@nats-io/obj 3.0.0-33 → 3.0.0-35

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.
@@ -1,5 +1,4 @@
1
1
  export type { ObjectInfo, ObjectResult, ObjectStore, ObjectStoreLink, ObjectStoreMeta, ObjectStoreMetaOptions, ObjectStoreOptions, ObjectStorePutOpts, ObjectStoreStatus, ObjectWatchInfo, Placement, } from "./types";
2
2
  export { StorageType } from "./types";
3
3
  export { Objm } from "./objectstore";
4
- export { SHA256, sha256 } from "./sha256";
5
4
  export { Base64Codec, Base64UrlCodec, Base64UrlPaddedCodec } from "./base64";
@@ -1,13 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Base64UrlPaddedCodec = exports.Base64UrlCodec = exports.Base64Codec = exports.sha256 = exports.SHA256 = exports.Objm = exports.StorageType = void 0;
3
+ exports.Base64UrlPaddedCodec = exports.Base64UrlCodec = exports.Base64Codec = exports.Objm = exports.StorageType = void 0;
4
4
  var types_1 = require("./types");
5
5
  Object.defineProperty(exports, "StorageType", { enumerable: true, get: function () { return types_1.StorageType; } });
6
6
  var objectstore_1 = require("./objectstore");
7
7
  Object.defineProperty(exports, "Objm", { enumerable: true, get: function () { return objectstore_1.Objm; } });
8
- var sha256_1 = require("./sha256");
9
- Object.defineProperty(exports, "SHA256", { enumerable: true, get: function () { return sha256_1.SHA256; } });
10
- Object.defineProperty(exports, "sha256", { enumerable: true, get: function () { return sha256_1.sha256; } });
11
8
  var base64_1 = require("./base64");
12
9
  Object.defineProperty(exports, "Base64Codec", { enumerable: true, get: function () { return base64_1.Base64Codec; } });
13
10
  Object.defineProperty(exports, "Base64UrlCodec", { enumerable: true, get: function () { return base64_1.Base64UrlCodec; } });
@@ -1 +1 @@
1
- {"version":3,"file":"internal_mod.js","sourceRoot":"","sources":["../build/src/internal_mod.ts"],"names":[],"mappings":";;;AAcA,iCAAsC;AAA7B,oGAAA,WAAW,OAAA;AAEpB,6CAAqC;AAA5B,mGAAA,IAAI,OAAA;AAEb,mCAA0C;AAAjC,gGAAA,MAAM,OAAA;AAAE,gGAAA,MAAM,OAAA;AAEvB,mCAA6E;AAApE,qGAAA,WAAW,OAAA;AAAE,wGAAA,cAAc,OAAA;AAAE,8GAAA,oBAAoB,OAAA"}
1
+ {"version":3,"file":"internal_mod.js","sourceRoot":"","sources":["../build/src/internal_mod.ts"],"names":[],"mappings":";;;AAcA,iCAAsC;AAA7B,oGAAA,WAAW,OAAA;AAEpB,6CAAqC;AAA5B,mGAAA,IAAI,OAAA;AAEb,mCAA6E;AAApE,qGAAA,WAAW,OAAA;AAAE,wGAAA,cAAc,OAAA;AAAE,8GAAA,oBAAoB,OAAA"}
@@ -32,7 +32,7 @@ export declare class Objm {
32
32
  */
33
33
  open(name: string, check?: boolean): Promise<ObjectStore>;
34
34
  /**
35
- * Returns a list of ObjectStoreInfo for all streams that are identified as
35
+ * Returns a list of ObjectStoreStatus for all streams that are identified as
36
36
  * being a ObjectStore (that is having names that have the prefix `OBJ_`)
37
37
  */
38
38
  list(): Lister<ObjectStoreStatus>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  /*
3
- * Copyright 2022-2024 The NATS Authors
3
+ * Copyright 2022-2025 The NATS Authors
4
4
  * Licensed under the Apache License, Version 2.0 (the "License");
5
5
  * you may not use this file except in compliance with the License.
6
6
  * You may obtain a copy of the License at
@@ -20,8 +20,9 @@ exports.objectStoreBucketName = objectStoreBucketName;
20
20
  exports.validateBucket = validateBucket;
21
21
  const internal_1 = require("@nats-io/nats-core/internal");
22
22
  const internal_2 = require("@nats-io/jetstream/internal");
23
- const sha256_1 = require("./sha256");
24
23
  const base64_1 = require("./base64");
24
+ const js_sha256_1 = require("js-sha256");
25
+ const sha_digest_parser_1 = require("./sha_digest.parser");
25
26
  exports.osPrefix = "OBJ_";
26
27
  exports.digestType = "SHA-256=";
27
28
  function objectStoreStreamName(bucket) {
@@ -82,7 +83,7 @@ class Objm {
82
83
  return ObjectStoreImpl.create(this.js, name, opts);
83
84
  }
84
85
  /**
85
- * Returns a list of ObjectStoreInfo for all streams that are identified as
86
+ * Returns a list of ObjectStoreStatus for all streams that are identified as
86
87
  * being a ObjectStore (that is having names that have the prefix `OBJ_`)
87
88
  */
88
89
  list() {
@@ -346,7 +347,7 @@ class ObjectStoreImpl {
346
347
  const db = new internal_1.DataBuffer();
347
348
  try {
348
349
  const reader = rs ? rs.getReader() : null;
349
- const sha = new sha256_1.SHA256();
350
+ const sha = js_sha256_1.sha256.create();
350
351
  while (true) {
351
352
  const { done, value } = reader
352
353
  ? await reader.read()
@@ -365,10 +366,8 @@ class ObjectStoreImpl {
365
366
  proms.length = 0;
366
367
  // prepare the metadata
367
368
  info.mtime = new Date().toISOString();
368
- const digest = sha.digest("base64");
369
- const pad = digest.length % 3;
370
- const padding = pad > 0 ? "=".repeat(pad) : "";
371
- info.digest = `${exports.digestType}${digest}${padding}`;
369
+ const digest = base64_1.Base64UrlPaddedCodec.encode(Uint8Array.from(sha.digest()));
370
+ info.digest = `${exports.digestType}${digest}`;
372
371
  info.deleted = false;
373
372
  // trailing md for the object
374
373
  const h = (0, internal_1.headers)();
@@ -483,6 +482,13 @@ class ObjectStoreImpl {
483
482
  : this;
484
483
  return os.get(ln);
485
484
  }
485
+ if (!info.digest.startsWith(exports.digestType)) {
486
+ return Promise.reject(new Error(`unknown digest type: ${info.digest}`));
487
+ }
488
+ const digest = (0, sha_digest_parser_1.parseSha256)(info.digest.substring(8));
489
+ if (digest === null) {
490
+ return Promise.reject(new Error(`unable to parse digest: ${info.digest}`));
491
+ }
486
492
  const d = (0, internal_1.deferred)();
487
493
  const r = {
488
494
  info: new ObjectInfoImpl(info),
@@ -493,7 +499,7 @@ class ObjectStoreImpl {
493
499
  d.resolve(null);
494
500
  return Promise.resolve(r);
495
501
  }
496
- const sha = new sha256_1.SHA256();
502
+ const sha = js_sha256_1.sha256.create();
497
503
  let controller;
498
504
  const cc = {};
499
505
  cc.filter_subject = `$O.${this.name}.C.${info.nuid}`;
@@ -506,12 +512,8 @@ class ObjectStoreImpl {
506
512
  controller.enqueue(jm.data);
507
513
  }
508
514
  if (jm.info.pending === 0) {
509
- const hash = sha.digest("base64");
510
- // go pads the hash - which should be multiple of 3 - otherwise pads with '='
511
- const pad = hash.length % 3;
512
- const padding = pad > 0 ? "=".repeat(pad) : "";
513
- const digest = `${exports.digestType}${hash}${padding}`;
514
- if (digest !== info.digest) {
515
+ const digest = Uint8Array.from(sha.digest());
516
+ if (!(0, sha_digest_parser_1.checkSha256)(digest, Uint8Array.from(sha.digest()))) {
515
517
  controller.error(new Error(`received a corrupt object, digests do not match received: ${info.digest} calculated ${digest}`));
516
518
  }
517
519
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"objectstore.js","sourceRoot":"","sources":["../build/src/objectstore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"objectstore.js","sourceRoot":"","sources":["../build/src/objectstore.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;;;AAgEH,sDAGC;AAED,sDAKC;AAyID,wCAKC;AAjND,0DAQqC;AAkBrC,0DAWqC;AAarC,qCAAgD;AAChD,yCAAmC;AACnC,2DAA+D;AAElD,QAAA,QAAQ,GAAG,MAAM,CAAC;AAClB,QAAA,UAAU,GAAG,UAAU,CAAC;AAErC,SAAgB,qBAAqB,CAAC,MAAc;IAClD,cAAc,CAAC,MAAM,CAAC,CAAC;IACvB,OAAO,GAAG,gBAAQ,GAAG,MAAM,EAAE,CAAC;AAChC,CAAC;AAED,SAAgB,qBAAqB,CAAC,MAAc;IAClD,IAAI,MAAM,CAAC,UAAU,CAAC,gBAAQ,CAAC,EAAE,CAAC;QAChC,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAa,IAAI;IACf,EAAE,CAAsB;IAExB;;;;;OAKG;IACH,YAAY,EAAoC;QAC9C,IAAI,CAAC,EAAE,GAAG,IAAA,4BAAiB,EAAC,EAAE,CAAwB,CAAC;IACzD,CAAC;IAED;;;;;OAKG;IACH,MAAM,CACJ,IAAY,EACZ,OAAoC,EAAE;QAEtC,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACvC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,IAAI,CAAC,IAAY,EAAE,KAAK,GAAG,IAAI;QACnC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC;QAC7C,MAAM,EAAE,GAAG,IAAI,eAAe,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QACnD,EAAE,CAAC,MAAM,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC;QACpB,CAAC;QACD,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC;IAED,YAAY,CACV,IAAY,EACZ,OAAoC,EAAE;QAEtC,IAAI,OAAO,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,UAAU,EAAE,CAAC;YACjD,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,KAAK,CACP,gGAAgG,CACjG,CACF,CAAC;QACJ,CAAC;QACD,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,kBAAO,CAAC,cAAc,CAAC,CAAC;QACpE,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,KAAK,CAAC,4CAA4C,GAAG,YAAY,CAAC,CACvE,CAAC;QACJ,CAAC;QAED,OAAO,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACrD,CAAC;IAED;;;OAGG;IACH,IAAI;QACF,MAAM,MAAM,GAAyC,CACnD,CAAU,EACW,EAAE;YACvB,MAAM,GAAG,GAAG,CAAuB,CAAC;YACpC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;gBACvC,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAQ,CAAC,CAAC;YAC5C,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;gBACrB,EAAE,CAAC,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC;gBAC7C,EAAE,CAAC,MAAM,CAAC,WAAW,GAAG,EAAE,CAAC,MAAM,CAAC,WAAW,IAAI,KAAK,CAAC;gBACvD,EAAE,CAAC,MAAM,CAAC,UAAU,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,IAAI,KAAK,CAAC;gBACrD,EAAE,CAAC,MAAM,CAAC,iBAAiB,GAAG,EAAE,CAAC,MAAM,CAAC,iBAAiB,IAAI,KAAK,CAAC;YACrE,CAAC,CAAC,CAAC;YACH,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;gBACxB,OAAO,IAAI,qBAAqB,CAAC,EAAE,CAAC,CAAC;YACvC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QACF,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,cAAc,CAAC;QAC7C,OAAO,IAAI,qBAAU,CAAoB,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC;CACF;AAvFD,oBAuFC;AAED,MAAa,qBAAqB;IAChC,EAAE,CAAa;IACf,YAAY,CAAS;IAErB,YAAY,EAAc;QACxB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;IAClC,CAAC;IACD,IAAI,MAAM;QACR,OAAO,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC;IACD,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;IAC1C,CAAC;IACD,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC;IAChC,CAAC;IACD,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC;IAChC,CAAC;IACD,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC;IACrC,CAAC;IACD,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;IAC/B,CAAC;IACD,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;IAC7B,CAAC;IACD,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IACD,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;IACjC,CAAC;IAED,IAAI,WAAW;QACb,IAAI,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,KAAK,2BAAgB,CAAC,IAAI,CAAC;QAC9D,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AA1CD,sDA0CC;AACD,SAAgB,cAAc,CAAC,IAAY;IACzC,MAAM,aAAa,GAAG,UAAU,CAAC;IACjC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC;AACH,CAAC;AAqBD,MAAM,cAAc;IAClB,IAAI,CAAmB;IACvB,IAAI,CAAW;IACf,YAAY,EAAoB;QAC9B,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;IACjB,CAAC;IACD,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACxB,CAAC;IACD,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;IACrC,CAAC;IACD,IAAI,OAAO;QACT,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,IAAI,CAAC,IAAI,GAAG,sBAAW,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IACD,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;IAC3B,CAAC;IACD,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IAC1B,CAAC;IACD,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IAC1B,CAAC;IACD,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC;IACpC,CAAC;IACD,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IAC1B,CAAC;IACD,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;IACzB,CAAC;IACD,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACxB,CAAC;IACD,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACxB,CAAC;IACD,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IAC5B,CAAC;IACD,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;IAClC,CAAC;IACD,MAAM;QACJ,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,KAAK,SAAS,CAAC;YAC5C,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,KAAK,IAAI,CAAC,CAAC;IACvC,CAAC;CACF;AAED,SAAS,uBAAuB,CAC9B,IAA8B;IAE9B,MAAM,CAAC,GAAG;QACR,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE;QACnC,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;KACC,CAAC;IAE3B,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAsB,CAAC;QACxC,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;IAC7B,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,mBAAmB;IAC1B,OAAO,IAAI,cAAc,CAAC;QACxB,IAAI,CAAC,CAAC;YACJ,CAAC,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7B,CAAC,CAAC,KAAK,EAAE,CAAC;QACZ,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED,MAAa,eAAe;IAC1B,GAAG,CAAmB;IACtB,EAAE,CAAkB;IACpB,MAAM,CAAU;IAChB,IAAI,CAAS;IAEb,YAAY,IAAY,EAAE,GAAqB,EAAE,EAAmB;QAClE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,CAAC;IAED,cAAc,CAAC,IAAY;QACzB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,sBAAsB,CAAC,EAAE,CAAC;QAC5D,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,IAAY;QACrB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,GAAG,GAAiB,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC;YAC5B,aAAa,EAAE,IAAI;YACnB,cAAc,EAAE,IAAI;YACpB,oBAAoB;YACpB,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;QAEH,qCAAqC;QACrC,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;YAC9B,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;QACD,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAY;QACxB,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACvD,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE;gBACvD,YAAY,EAAE,IAAI;aACnB,CAAC,CAAC;YACH,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;gBACf,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,EAAoB,CAAC;YACvC,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC;YACrB,OAAO,GAAG,CAAC;QACb,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CACP,IAAwC;QAExC,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACxD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IACE,GAAG,YAAY,4BAAiB;gBAChC,GAAG,CAAC,IAAI,KAAK,4BAAiB,CAAC,cAAc,EAC7C,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5B,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC;QAC7D,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;QAC1B,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/D,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,MAAM,CACV,IAAwC;QAExC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC;QAC7D,CAAC;QACD,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,IAAI,CACR,IAAqB,EACrB,EAAqC,EACrC,IAAyB;QAEzB,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC;QACpC,IAAI,GAAG,IAAI,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;QAC3C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC;QAC9C,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,IAAI,SAAS,CAAC;QAC3D,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC;QAC3C,MAAM,EAAE,GAAI,IAAI,CAAC,EAAwC,CAAC,EAAE,CAAC,IAAI,CAAC;QAClE,MAAM,UAAU,GAAG,EAAE,EAAE,WAAW,IAAI,IAAI,CAAC;QAC3C,IAAI,GAAG,IAAI,IAAI,EAAqB,CAAC;QACrC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;QAClC,IAAI,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,cAAc,IAAI,GAAG,GAAG,IAAI,CAAC;QAC1D,QAAQ,GAAG,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC;QACzD,IAAI,CAAC,OAAO,CAAC,cAAc,GAAG,QAAQ,CAAC;QAEvC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QAED,MAAM,EAAE,GAAG,eAAI,CAAC,IAAI,EAAE,CAAC;QACvB,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAEtC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;YACzB,MAAM,EAAE,IAAI,CAAC,IAAI;YACjB,IAAI,EAAE,EAAE;YACR,IAAI,EAAE,CAAC;YACP,MAAM,EAAE,CAAC;SACV,EAAE,uBAAuB,CAAC,IAAI,CAAC,CAAqB,CAAC;QAEtD,MAAM,CAAC,GAAG,IAAA,mBAAQ,GAAc,CAAC;QAEjC,MAAM,KAAK,GAAuB,EAAE,CAAC;QACrC,MAAM,EAAE,GAAG,IAAI,qBAAU,EAAE,CAAC;QAC5B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YAC1C,MAAM,GAAG,GAAG,kBAAM,CAAC,MAAM,EAAE,CAAC;YAE5B,OAAO,IAAI,EAAE,CAAC;gBACZ,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM;oBAC5B,CAAC,CAAC,MAAM,MAAM,CAAC,IAAI,EAAE;oBACrB,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;gBACrC,IAAI,IAAI,EAAE,CAAC;oBACT,2BAA2B;oBAC3B,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;wBAClB,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC;wBAC3B,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;wBACpB,IAAI,CAAC,MAAO,EAAE,CAAC;wBACf,IAAI,CAAC,IAAK,IAAI,OAAO,CAAC,MAAM,CAAC;wBAC7B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;oBAC/D,CAAC;oBACD,mCAAmC;oBACnC,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBACzB,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;oBAEjB,uBAAuB;oBACvB,IAAI,CAAC,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;oBACtC,MAAM,MAAM,GAAG,6BAAoB,CAAC,MAAM,CACxC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAC9B,CAAC;oBACF,IAAI,CAAC,MAAM,GAAG,GAAG,kBAAU,GAAG,MAAM,EAAE,CAAC;oBAEvC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;oBAErB,6BAA6B;oBAC7B,MAAM,CAAC,GAAG,IAAA,kBAAO,GAAE,CAAC;oBACpB,IAAI,OAAO,gBAAgB,KAAK,QAAQ,EAAE,CAAC;wBACzC,CAAC,CAAC,GAAG,CACH,qBAAU,CAAC,8BAA8B,EACzC,GAAG,gBAAgB,EAAE,CACtB,CAAC;oBACJ,CAAC;oBACD,CAAC,CAAC,GAAG,CAAC,oBAAS,CAAC,SAAS,EAAE,oBAAS,CAAC,kBAAkB,CAAC,CAAC;oBAEzD,6BAA6B;oBAC7B,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;wBAC/D,OAAO,EAAE,CAAC;wBACV,OAAO;qBACR,CAAC,CAAC;oBACH,iEAAiE;oBACjE,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,GAAG,CAAC;oBAEvB,wCAAwC;oBACxC,IAAI,GAAG,EAAE,CAAC;wBACR,IAAI,CAAC;4BACH,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE;gCACxC,MAAM,EAAE,MAAM,IAAI,CAAC,IAAI,MAAM,GAAG,CAAC,IAAI,EAAE;6BACxC,CAAC,CAAC;wBACL,CAAC;wBAAC,OAAO,IAAI,EAAE,CAAC;4BACd,mDAAmD;4BACnD,0DAA0D;wBAC5D,CAAC;oBACH,CAAC;oBAED,yBAAyB;oBACzB,CAAC,CAAC,OAAO,CAAC,IAAI,cAAc,CAAC,IAAK,CAAC,CAAC,CAAC;oBACrC,OAAO;oBACP,MAAM;gBACR,CAAC;gBACD,IAAI,KAAK,EAAE,CAAC;oBACV,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACf,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,QAAQ,EAAE,CAAC;wBAC5B,IAAI,CAAC,MAAO,EAAE,CAAC;wBACf,IAAI,CAAC,IAAK,IAAI,QAAQ,CAAC;wBACvB,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;wBACtD,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;wBACpB,KAAK,CAAC,IAAI,CACR,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,CACjD,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,iCAAiC;YACjC,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;YACjE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAChB,CAAC;QAED,OAAO,CAAC,CAAC;IACX,CAAC;IAED,OAAO,CACL,IAAqB,EACrB,IAAuB,EACvB,IAAyB;QAEzB,SAAS,kBAAkB,CAAC,IAAgB;YAC1C,OAAO,IAAI,cAAc,CAAa;gBACpC,IAAI,CAAC,UAAU;oBACb,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBACzB,UAAU,CAAC,KAAK,EAAE,CAAC;gBACrB,CAAC;aACF,CAAC,CAAC;QACL,CAAC;QACD,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,IAAI,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC;QACD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,kBAAkB,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;IACxD,CAAC;IAED,GAAG,CACD,IAAqB,EACrB,EAAqC,EACrC,IAAyB;QAEzB,IAAI,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YACxB,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAClE,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAY;QACxB,KAAK,UAAU,kBAAkB,CAC/B,EAA8B;YAE9B,MAAM,GAAG,GAAG,IAAI,qBAAU,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC;YAC9B,OAAO,IAAI,EAAE,CAAC;gBACZ,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC5C,IAAI,IAAI,EAAE,CAAC;oBACT,OAAO,GAAG,CAAC,KAAK,EAAE,CAAC;gBACrB,CAAC;gBACD,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;oBAC1B,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;YACf,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;QAED,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACV,OAAO,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,IAAY;QACpB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACtC,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;YACxC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;YACtC,CAAC;YACD,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI;gBAC/C,CAAC,CAAC,MAAM,eAAe,CAAC,MAAM,CAC5B,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CACzB;gBACD,CAAC,CAAC,IAAI,CAAC;YACT,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpB,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,kBAAU,CAAC,EAAE,CAAC;YACxC,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,wBAAwB,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC1E,CAAC;QACD,MAAM,MAAM,GAAG,IAAA,+BAAW,EAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QACrD,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,KAAK,CAAC,2BAA2B,IAAI,CAAC,MAAM,EAAE,CAAC,CACpD,CAAC;QACJ,CAAC;QAED,MAAM,CAAC,GAAG,IAAA,mBAAQ,GAAgB,CAAC;QAEnC,MAAM,CAAC,GAA0B;YAC/B,IAAI,EAAE,IAAI,cAAc,CAAC,IAAI,CAAC;YAC9B,KAAK,EAAE,CAAC;SACT,CAAC;QACF,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACpB,CAAC,CAAC,IAAI,GAAG,mBAAmB,EAAE,CAAC;YAC/B,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,OAAO,OAAO,CAAC,OAAO,CAAC,CAAiB,CAAC,CAAC;QAC5C,CAAC;QAED,MAAM,GAAG,GAAG,kBAAM,CAAC,MAAM,EAAE,CAAC;QAC5B,IAAI,UAA2C,CAAC;QAEhD,MAAM,EAAE,GAA4B,EAAE,CAAC;QACvC,EAAE,CAAC,cAAc,GAAG,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QACrD,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACpE,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC;QAEhC,CAAC,KAAK,IAAI,EAAE;YACV,IAAI,KAAK,EAAE,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;gBAC5B,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACvB,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;oBACpB,UAAW,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;gBAC/B,CAAC;gBACD,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;oBAC1B,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;oBAC7C,IAAI,CAAC,IAAA,+BAAW,EAAC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC;wBACxD,UAAW,CAAC,KAAK,CACf,IAAI,KAAK,CACP,6DAA6D,IAAI,CAAC,MAAM,eAAe,MAAM,EAAE,CAChG,CACF,CAAC;oBACJ,CAAC;yBAAM,CAAC;wBACN,UAAW,CAAC,KAAK,EAAE,CAAC;oBACtB,CAAC;oBACD,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC,CAAC,EAAE;aACD,IAAI,CAAC,GAAG,EAAE;YACT,CAAC,CAAC,OAAO,EAAE,CAAC;QACd,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACb,UAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACvB,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;QAEL,CAAC,CAAC,IAAI,GAAG,IAAI,cAAc,CAAC;YAC1B,KAAK,CAAC,CAAC;gBACL,UAAU,GAAG,CAAC,CAAC;YACjB,CAAC;YACD,MAAM;gBACJ,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,CAAC;SACF,CAAC,CAAC;QAEH,OAAO,CAAiB,CAAC;IAC3B,CAAC;IAED,SAAS,CAAC,IAAY,EAAE,MAAmB;QACzC,IAAI,CAAC,CAAC,MAAM,YAAY,eAAe,CAAC,EAAE,CAAC;YACzC,OAAO,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAC3C,CAAC;QACD,MAAM,GAAG,GAAG,MAAyB,CAAC;QACtC,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QAED,MAAM,IAAI,GAAG;YACX,IAAI,EAAE,CAAC;YACP,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE;SACxC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,IAAY,EAAE,IAAgB;QACvC,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC;QAC5D,CAAC;QACD,IAAK,IAAuB,CAAC,MAAM,EAAE,EAAE,CAAC;YACtC,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC;QAC3D,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACnC,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,KAAK,CAAC,yCAAyC,CAAC,CACrD,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;QACtD,MAAM,EAAE,GAAG;YACT,IAAI,EAAE,CAAC;YACP,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;SACL,CAAC;QACrB,MAAM,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;QACnE,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChC,OAAO,OAAO,CAAC,OAAO,CAAC,CAAE,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAY;QACvB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QACxD,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QACd,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QAEjB,MAAM,CAAC,GAAG,IAAA,kBAAO,GAAE,CAAC;QACpB,CAAC,CAAC,GAAG,CAAC,oBAAS,CAAC,SAAS,EAAE,oBAAS,CAAC,kBAAkB,CAAC,CAAC;QAEzD,MAAM,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACxE,OAAO,EAAE,CAAC;SACX,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE;YACzC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;SACtC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CACV,IAAY,EACZ,OAAiC,EAAE;QAEnC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;QACvD,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,KAAK,CAAC,yCAAyC,CAAC,CACrD,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC;QACnC,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QACD,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;YACvB,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,KAAK,CAAC,yCAAyC,CAAC,CACrD,CAAC;YACJ,CAAC;QACH,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QACd,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,uBAAuB,CAAC,IAAK,CAAC,CAAC,CAAC;QACnE,2CAA2C;QAC3C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,OAAO,CAC/B,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,EAC1B,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CACnB,CAAC;QACF,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;YACvB,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE;gBACxC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;aAChC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,OAKR,EAAE;QACJ,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,IAAI,KAAK,CAAC;QACnD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC;QACjD,0BAA0B;QAC1B,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC;QAC9C,MAAM,EAAE,GAAG,IAAI,6BAAkB,EAAmB,CAAC;QACrD,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACpC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;QACzE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,IAAA,4BAAiB,EAAC,GAAY,CAAC,EAAE,CAAC;gBACrC,EAAE,CAAC,IAAI,CAAC,GAAY,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;QACD,MAAM,EAAE,GAA4B,EAAE,CAAC;QACvC,EAAE,CAAC,IAAI,GAAG,eAAe,eAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QACvC,EAAE,CAAC,cAAc,GAAG,IAAI,CAAC;QACzB,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,EAAE,CAAC,cAAc,GAAG,wBAAa,CAAC,cAAc,CAAC;QACnD,CAAC;aAAM,CAAC;YACN,8EAA8E;YAC9E,gEAAgE;YAChE,EAAE,CAAC,cAAc,GAAG,wBAAa,CAAC,GAAG,CAAC;QACxC,CAAC;QAED,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACpE,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;QAC/B,IAAI,QAAQ,GAAG,EAAE,CAAC,cAAc,KAAK,wBAAa,CAAC,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC;QACtE,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC;QACd,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC;YAC5B,QAAQ,EAAE,CAAC,EAAS,EAAE,EAAE;gBACtB,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,CAAC,EAAE,CAAC;oBACJ,QAAQ,GAAG,CAAC,IAAI,KAAK,CAAC;gBACxB,CAAC;gBACD,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,EAAmB,CAAC;gBACtC,EAAE,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBACvB,IAAI,EAAE,CAAC,OAAO,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,EAAE,CAAC;oBAC9C,aAAa;gBACf,CAAC;qBAAM,CAAC;oBACN,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACd,CAAC;gBACD,IAAI,WAAW,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC;oBAC/B,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,CAAC;YACH,CAAC;SACF,CAAC,CAAC;QAEH,IAAI,WAAW,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;YACtB,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;gBACX,EAAE,CAAC,IAAI,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE;YACtB,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,CAAC,CAAC,CAAC;QAEH,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,aAAa,CAAC,EAAU;QACtB,OAAO,MAAM,IAAI,CAAC,IAAI,MAAM,EAAE,EAAE,CAAC;IACnC,CAAC;IAED,YAAY,CAAC,CAAS;QACpB,OAAO,MAAM,IAAI,CAAC,IAAI,MAAM,6BAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/D,CAAC;IAED,eAAe;QACb,OAAO,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAoC,EAAE;QAC/C,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,GAAG,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC,GAAG,CAAC;QAChB,qCAAqC;QACrC,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,IAAI,CAA4B,CAAC;QACvE,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;QACtB,EAAE,CAAC,YAAY,GAAG,IAAI,CAAC;QACvB,EAAE,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC5B,EAAE,CAAC,OAAO,GAAG,wBAAa,CAAC,GAAG,CAAC;QAC/B,EAAE,CAAC,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,MAAM,EAAE,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC,CAAC;QAC7D,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,EAAE,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,CAAC;QACD,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YAC1C,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW;gBAC/B,CAAC,CAAC,2BAAgB,CAAC,EAAE;gBACrB,CAAC,CAAC,2BAAgB,CAAC,IAAI,CAAC;QAC5B,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAK,GAAa,CAAC,OAAO,KAAK,kBAAkB,EAAE,CAAC;gBAClD,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,MAAM,CACjB,EAAmB,EACnB,IAAY,EACZ,OAAoC,EAAE;QAEtC,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;QACxC,MAAM,EAAE,GAAG,IAAI,eAAe,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QAC9C,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpB,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC;CACF;AA9mBD,0CA8mBC"}
@@ -0,0 +1,2 @@
1
+ export declare function parseSha256(s: string): Uint8Array | null;
2
+ export declare function checkSha256(a: string | Uint8Array, b: string | Uint8Array): boolean;
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright 2025 The NATS Authors
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.parseSha256 = parseSha256;
18
+ exports.checkSha256 = checkSha256;
19
+ function parseSha256(s) {
20
+ return toByteArray(s);
21
+ }
22
+ function isHex(s) {
23
+ // contains valid hex characters only
24
+ const hexRegex = /^[0-9A-Fa-f]+$/;
25
+ if (!hexRegex.test(s)) {
26
+ // non-hex characters
27
+ return false;
28
+ }
29
+ // check for mixed-case strings - paranoid base64 sneaked in
30
+ const isAllUpperCase = /^[0-9A-F]+$/.test(s);
31
+ const isAllLowerCase = /^[0-9a-f]+$/.test(s);
32
+ if (!(isAllUpperCase || isAllLowerCase)) {
33
+ return false;
34
+ }
35
+ // ensure the input string length is even
36
+ return s.length % 2 === 0;
37
+ }
38
+ function isBase64(s) {
39
+ // test for padded or normal base64
40
+ return /^[A-Za-z0-9\-_]*(={0,2})?$/.test(s) ||
41
+ /^[A-Za-z0-9+/]*(={0,2})?$/.test(s);
42
+ }
43
+ function detectEncoding(input) {
44
+ // hex is more reliable to flush out...
45
+ if (isHex(input)) {
46
+ return "hex";
47
+ }
48
+ else if (isBase64(input)) {
49
+ return "b64";
50
+ }
51
+ return "";
52
+ }
53
+ function hexToByteArray(s) {
54
+ if (s.length % 2 !== 0) {
55
+ throw new Error("hex string must have an even length");
56
+ }
57
+ const a = new Uint8Array(s.length / 2);
58
+ for (let i = 0; i < s.length; i += 2) {
59
+ // parse hex two chars at a time
60
+ a[i / 2] = parseInt(s.substring(i, i + 2), 16);
61
+ }
62
+ return a;
63
+ }
64
+ function base64ToByteArray(s) {
65
+ // could be url friendly
66
+ s = s.replace(/-/g, "+");
67
+ s = s.replace(/_/g, "/");
68
+ const sbin = atob(s);
69
+ return Uint8Array.from(sbin, (c) => c.charCodeAt(0));
70
+ }
71
+ function toByteArray(input) {
72
+ const encoding = detectEncoding(input);
73
+ switch (encoding) {
74
+ case "hex":
75
+ return hexToByteArray(input);
76
+ case "b64":
77
+ return base64ToByteArray(input);
78
+ }
79
+ return null;
80
+ }
81
+ function checkSha256(a, b) {
82
+ const aBytes = typeof a === "string" ? parseSha256(a) : a;
83
+ const bBytes = typeof b === "string" ? parseSha256(b) : b;
84
+ if (aBytes === null || bBytes === null) {
85
+ return false;
86
+ }
87
+ if (aBytes.length !== bBytes.length) {
88
+ return false;
89
+ }
90
+ for (let i = 0; i < aBytes.length; i++) {
91
+ if (aBytes[i] !== bBytes[i]) {
92
+ return false;
93
+ }
94
+ }
95
+ return true;
96
+ }
97
+ //# sourceMappingURL=sha_digest.parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sha_digest.parser.js","sourceRoot":"","sources":["../build/src/sha_digest.parser.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nats-io/obj",
3
- "version": "3.0.0-33",
3
+ "version": "3.0.0-35",
4
4
  "files": [
5
5
  "lib/",
6
6
  "LICENSE",
@@ -33,12 +33,13 @@
33
33
  },
34
34
  "description": "obj library - this library implements all the base functionality for NATS objectstore for javascript clients",
35
35
  "dependencies": {
36
- "@nats-io/jetstream": "3.0.0-37",
37
- "@nats-io/nats-core": "3.0.0-50"
36
+ "@nats-io/jetstream": "3.0.0-39",
37
+ "@nats-io/nats-core": "3.0.0-53",
38
+ "js-sha256": "^0.11.0"
38
39
  },
39
40
  "devDependencies": {
40
41
  "@types/node": "^22.10.10",
41
42
  "shx": "^0.3.4",
42
- "typescript": "5.6.3"
43
+ "typescript": "^5.8.2"
43
44
  }
44
45
  }
package/lib/sha256.d.ts DELETED
@@ -1,19 +0,0 @@
1
- declare const BYTES: number;
2
- declare class SHA256 {
3
- hashSize: number;
4
- _buf: Uint8Array;
5
- _bufIdx: number;
6
- _count: Uint32Array;
7
- _K: Uint32Array;
8
- _H: Uint32Array;
9
- _finalized: boolean;
10
- constructor();
11
- init(): this;
12
- update(msg: string | Uint8Array | null, inputEncoding?: string): this;
13
- digest(outputEncoding: string): string | Uint8Array;
14
- _transform(): void;
15
- }
16
- declare function sha256(msg: string | Uint8Array | null, inputEncoding: string, outputEncoding: string): string | Uint8Array;
17
- export { BYTES as BYTES };
18
- export { SHA256 as SHA256 };
19
- export { sha256 as sha256 };
package/lib/sha256.js DELETED
@@ -1,371 +0,0 @@
1
- "use strict";
2
- // deno-fmt-ignore-file
3
- // deno-lint-ignore-file
4
- // This code was bundled using `deno bundle` and it's not recommended to edit it manually
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.SHA256 = exports.BYTES = void 0;
7
- exports.sha256 = sha256;
8
- // deno bundle https://deno.land/x/sha256@v1.0.2/mod.ts
9
- // The MIT License (MIT)
10
- //
11
- // Original work (c) Marco Paland (marco@paland.com) 2015-2018, PALANDesign Hannover, Germany
12
- //
13
- // Deno port Copyright (c) 2019 Noah Anabiik Schwarz
14
- //
15
- // Permission is hereby granted, free of charge, to any person obtaining a copy
16
- // of this software and associated documentation files (the "Software"), to deal
17
- // in the Software without restriction, including without limitation the rights
18
- // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
19
- // copies of the Software, and to permit persons to whom the Software is
20
- // furnished to do so, subject to the following conditions:
21
- //
22
- // The above copyright notice and this permission notice shall be included in
23
- // all copies or substantial portions of the Software.
24
- //
25
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
26
- // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
27
- // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
28
- // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
29
- // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
30
- // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
31
- // THE SOFTWARE.
32
- function getLengths(b64) {
33
- const len = b64.length;
34
- let validLen = b64.indexOf("=");
35
- if (validLen === -1) {
36
- validLen = len;
37
- }
38
- const placeHoldersLen = validLen === len ? 0 : 4 - validLen % 4;
39
- return [
40
- validLen,
41
- placeHoldersLen
42
- ];
43
- }
44
- function init(lookup, revLookup, urlsafe = false) {
45
- function _byteLength(validLen, placeHoldersLen) {
46
- return Math.floor((validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen);
47
- }
48
- function tripletToBase64(num) {
49
- return lookup[num >> 18 & 0x3f] + lookup[num >> 12 & 0x3f] + lookup[num >> 6 & 0x3f] + lookup[num & 0x3f];
50
- }
51
- function encodeChunk(buf, start, end) {
52
- const out = new Array((end - start) / 3);
53
- for (let i = start, curTriplet = 0; i < end; i += 3) {
54
- out[curTriplet++] = tripletToBase64((buf[i] << 16) + (buf[i + 1] << 8) + buf[i + 2]);
55
- }
56
- return out.join("");
57
- }
58
- return {
59
- byteLength(b64) {
60
- return _byteLength.apply(null, getLengths(b64));
61
- },
62
- toUint8Array(b64) {
63
- const [validLen, placeHoldersLen] = getLengths(b64);
64
- const buf = new Uint8Array(_byteLength(validLen, placeHoldersLen));
65
- const len = placeHoldersLen ? validLen - 4 : validLen;
66
- let tmp;
67
- let curByte = 0;
68
- let i;
69
- for (i = 0; i < len; i += 4) {
70
- tmp = revLookup[b64.charCodeAt(i)] << 18 | revLookup[b64.charCodeAt(i + 1)] << 12 | revLookup[b64.charCodeAt(i + 2)] << 6 | revLookup[b64.charCodeAt(i + 3)];
71
- buf[curByte++] = tmp >> 16 & 0xff;
72
- buf[curByte++] = tmp >> 8 & 0xff;
73
- buf[curByte++] = tmp & 0xff;
74
- }
75
- if (placeHoldersLen === 2) {
76
- tmp = revLookup[b64.charCodeAt(i)] << 2 | revLookup[b64.charCodeAt(i + 1)] >> 4;
77
- buf[curByte++] = tmp & 0xff;
78
- }
79
- else if (placeHoldersLen === 1) {
80
- tmp = revLookup[b64.charCodeAt(i)] << 10 | revLookup[b64.charCodeAt(i + 1)] << 4 | revLookup[b64.charCodeAt(i + 2)] >> 2;
81
- buf[curByte++] = tmp >> 8 & 0xff;
82
- buf[curByte++] = tmp & 0xff;
83
- }
84
- return buf;
85
- },
86
- fromUint8Array(buf) {
87
- const maxChunkLength = 16383;
88
- const len = buf.length;
89
- const extraBytes = len % 3;
90
- const len2 = len - extraBytes;
91
- const parts = new Array(Math.ceil(len2 / 16383) + (extraBytes ? 1 : 0));
92
- let curChunk = 0;
93
- let chunkEnd;
94
- for (let i = 0; i < len2; i += maxChunkLength) {
95
- chunkEnd = i + maxChunkLength;
96
- parts[curChunk++] = encodeChunk(buf, i, chunkEnd > len2 ? len2 : chunkEnd);
97
- }
98
- let tmp;
99
- if (extraBytes === 1) {
100
- tmp = buf[len2];
101
- parts[curChunk] = lookup[tmp >> 2] + lookup[tmp << 4 & 0x3f];
102
- if (!urlsafe)
103
- parts[curChunk] += "==";
104
- }
105
- else if (extraBytes === 2) {
106
- tmp = buf[len2] << 8 | buf[len2 + 1] & 0xff;
107
- parts[curChunk] = lookup[tmp >> 10] + lookup[tmp >> 4 & 0x3f] + lookup[tmp << 2 & 0x3f];
108
- if (!urlsafe)
109
- parts[curChunk] += "=";
110
- }
111
- return parts.join("");
112
- }
113
- };
114
- }
115
- const lookup = [];
116
- const revLookup = [];
117
- const code = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";
118
- for (let i = 0, l = code.length; i < l; ++i) {
119
- lookup[i] = code[i];
120
- revLookup[code.charCodeAt(i)] = i;
121
- }
122
- const { byteLength, toUint8Array, fromUint8Array } = init(lookup, revLookup, true);
123
- const decoder = new TextDecoder();
124
- const encoder = new TextEncoder();
125
- function toHexString(buf) {
126
- return buf.reduce((hex, __byte) => `${hex}${__byte < 16 ? "0" : ""}${__byte.toString(16)}`, "");
127
- }
128
- function fromHexString(hex) {
129
- const len = hex.length;
130
- if (len % 2 || !/^[0-9a-fA-F]+$/.test(hex)) {
131
- throw new TypeError("Invalid hex string.");
132
- }
133
- hex = hex.toLowerCase();
134
- const buf = new Uint8Array(Math.floor(len / 2));
135
- const end = len / 2;
136
- for (let i = 0; i < end; ++i) {
137
- buf[i] = parseInt(hex.substr(i * 2, 2), 16);
138
- }
139
- return buf;
140
- }
141
- function decode(buf, encoding = "utf8") {
142
- if (/^utf-?8$/i.test(encoding)) {
143
- return decoder.decode(buf);
144
- }
145
- else if (/^base64$/i.test(encoding)) {
146
- return fromUint8Array(buf);
147
- }
148
- else if (/^hex(?:adecimal)?$/i.test(encoding)) {
149
- return toHexString(buf);
150
- }
151
- else {
152
- throw new TypeError("Unsupported string encoding.");
153
- }
154
- }
155
- function encode(str, encoding = "utf8") {
156
- if (/^utf-?8$/i.test(encoding)) {
157
- return encoder.encode(str);
158
- }
159
- else if (/^base64$/i.test(encoding)) {
160
- return toUint8Array(str);
161
- }
162
- else if (/^hex(?:adecimal)?$/i.test(encoding)) {
163
- return fromHexString(str);
164
- }
165
- else {
166
- throw new TypeError("Unsupported string encoding.");
167
- }
168
- }
169
- const BYTES = 32;
170
- exports.BYTES = BYTES;
171
- class SHA256 {
172
- hashSize = 32;
173
- _buf;
174
- _bufIdx;
175
- _count;
176
- _K;
177
- _H;
178
- _finalized;
179
- constructor() {
180
- this._buf = new Uint8Array(64);
181
- this._K = new Uint32Array([
182
- 0x428a2f98,
183
- 0x71374491,
184
- 0xb5c0fbcf,
185
- 0xe9b5dba5,
186
- 0x3956c25b,
187
- 0x59f111f1,
188
- 0x923f82a4,
189
- 0xab1c5ed5,
190
- 0xd807aa98,
191
- 0x12835b01,
192
- 0x243185be,
193
- 0x550c7dc3,
194
- 0x72be5d74,
195
- 0x80deb1fe,
196
- 0x9bdc06a7,
197
- 0xc19bf174,
198
- 0xe49b69c1,
199
- 0xefbe4786,
200
- 0x0fc19dc6,
201
- 0x240ca1cc,
202
- 0x2de92c6f,
203
- 0x4a7484aa,
204
- 0x5cb0a9dc,
205
- 0x76f988da,
206
- 0x983e5152,
207
- 0xa831c66d,
208
- 0xb00327c8,
209
- 0xbf597fc7,
210
- 0xc6e00bf3,
211
- 0xd5a79147,
212
- 0x06ca6351,
213
- 0x14292967,
214
- 0x27b70a85,
215
- 0x2e1b2138,
216
- 0x4d2c6dfc,
217
- 0x53380d13,
218
- 0x650a7354,
219
- 0x766a0abb,
220
- 0x81c2c92e,
221
- 0x92722c85,
222
- 0xa2bfe8a1,
223
- 0xa81a664b,
224
- 0xc24b8b70,
225
- 0xc76c51a3,
226
- 0xd192e819,
227
- 0xd6990624,
228
- 0xf40e3585,
229
- 0x106aa070,
230
- 0x19a4c116,
231
- 0x1e376c08,
232
- 0x2748774c,
233
- 0x34b0bcb5,
234
- 0x391c0cb3,
235
- 0x4ed8aa4a,
236
- 0x5b9cca4f,
237
- 0x682e6ff3,
238
- 0x748f82ee,
239
- 0x78a5636f,
240
- 0x84c87814,
241
- 0x8cc70208,
242
- 0x90befffa,
243
- 0xa4506ceb,
244
- 0xbef9a3f7,
245
- 0xc67178f2
246
- ]);
247
- this.init();
248
- }
249
- init() {
250
- this._H = new Uint32Array([
251
- 0x6a09e667,
252
- 0xbb67ae85,
253
- 0x3c6ef372,
254
- 0xa54ff53a,
255
- 0x510e527f,
256
- 0x9b05688c,
257
- 0x1f83d9ab,
258
- 0x5be0cd19
259
- ]);
260
- this._bufIdx = 0;
261
- this._count = new Uint32Array(2);
262
- this._buf.fill(0);
263
- this._finalized = false;
264
- return this;
265
- }
266
- update(msg, inputEncoding) {
267
- if (msg === null) {
268
- throw new TypeError("msg must be a string or Uint8Array.");
269
- }
270
- else if (typeof msg === "string") {
271
- msg = encode(msg, inputEncoding);
272
- }
273
- for (let i = 0, len = msg.length; i < len; i++) {
274
- this._buf[this._bufIdx++] = msg[i];
275
- if (this._bufIdx === 64) {
276
- this._transform();
277
- this._bufIdx = 0;
278
- }
279
- }
280
- const c = this._count;
281
- if ((c[0] += msg.length << 3) < msg.length << 3) {
282
- c[1]++;
283
- }
284
- c[1] += msg.length >>> 29;
285
- return this;
286
- }
287
- digest(outputEncoding) {
288
- if (this._finalized) {
289
- throw new Error("digest has already been called.");
290
- }
291
- this._finalized = true;
292
- const b = this._buf;
293
- let idx = this._bufIdx;
294
- b[idx++] = 0x80;
295
- while (idx !== 56) {
296
- if (idx === 64) {
297
- this._transform();
298
- idx = 0;
299
- }
300
- b[idx++] = 0;
301
- }
302
- const c = this._count;
303
- b[56] = c[1] >>> 24 & 0xff;
304
- b[57] = c[1] >>> 16 & 0xff;
305
- b[58] = c[1] >>> 8 & 0xff;
306
- b[59] = c[1] >>> 0 & 0xff;
307
- b[60] = c[0] >>> 24 & 0xff;
308
- b[61] = c[0] >>> 16 & 0xff;
309
- b[62] = c[0] >>> 8 & 0xff;
310
- b[63] = c[0] >>> 0 & 0xff;
311
- this._transform();
312
- const hash = new Uint8Array(32);
313
- for (let i = 0; i < 8; i++) {
314
- hash[(i << 2) + 0] = this._H[i] >>> 24 & 0xff;
315
- hash[(i << 2) + 1] = this._H[i] >>> 16 & 0xff;
316
- hash[(i << 2) + 2] = this._H[i] >>> 8 & 0xff;
317
- hash[(i << 2) + 3] = this._H[i] >>> 0 & 0xff;
318
- }
319
- this.init();
320
- return outputEncoding ? decode(hash, outputEncoding) : hash;
321
- }
322
- _transform() {
323
- const h = this._H;
324
- let h0 = h[0];
325
- let h1 = h[1];
326
- let h2 = h[2];
327
- let h3 = h[3];
328
- let h4 = h[4];
329
- let h5 = h[5];
330
- let h6 = h[6];
331
- let h7 = h[7];
332
- const w = new Uint32Array(16);
333
- let i;
334
- for (i = 0; i < 16; i++) {
335
- w[i] = this._buf[(i << 2) + 3] | this._buf[(i << 2) + 2] << 8 | this._buf[(i << 2) + 1] << 16 | this._buf[i << 2] << 24;
336
- }
337
- for (i = 0; i < 64; i++) {
338
- let tmp;
339
- if (i < 16) {
340
- tmp = w[i];
341
- }
342
- else {
343
- let a = w[i + 1 & 15];
344
- let b = w[i + 14 & 15];
345
- tmp = w[i & 15] = (a >>> 7 ^ a >>> 18 ^ a >>> 3 ^ a << 25 ^ a << 14) + (b >>> 17 ^ b >>> 19 ^ b >>> 10 ^ b << 15 ^ b << 13) + w[i & 15] + w[i + 9 & 15] | 0;
346
- }
347
- tmp = tmp + h7 + (h4 >>> 6 ^ h4 >>> 11 ^ h4 >>> 25 ^ h4 << 26 ^ h4 << 21 ^ h4 << 7) + (h6 ^ h4 & (h5 ^ h6)) + this._K[i] | 0;
348
- h7 = h6;
349
- h6 = h5;
350
- h5 = h4;
351
- h4 = h3 + tmp;
352
- h3 = h2;
353
- h2 = h1;
354
- h1 = h0;
355
- h0 = tmp + (h1 & h2 ^ h3 & (h1 ^ h2)) + (h1 >>> 2 ^ h1 >>> 13 ^ h1 >>> 22 ^ h1 << 30 ^ h1 << 19 ^ h1 << 10) | 0;
356
- }
357
- h[0] = h[0] + h0 | 0;
358
- h[1] = h[1] + h1 | 0;
359
- h[2] = h[2] + h2 | 0;
360
- h[3] = h[3] + h3 | 0;
361
- h[4] = h[4] + h4 | 0;
362
- h[5] = h[5] + h5 | 0;
363
- h[6] = h[6] + h6 | 0;
364
- h[7] = h[7] + h7 | 0;
365
- }
366
- }
367
- exports.SHA256 = SHA256;
368
- function sha256(msg, inputEncoding, outputEncoding) {
369
- return new SHA256().update(msg, inputEncoding).digest(outputEncoding);
370
- }
371
- //# sourceMappingURL=sha256.js.map
package/lib/sha256.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"sha256.js","sourceRoot":"","sources":["../build/src/sha256.ts"],"names":[],"mappings":"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"}