mirror of
https://github.com/tvytlx/ai-agent-deep-dive.git
synced 2026-04-05 00:24:50 +08:00
Add extracted source directory and README navigation
This commit is contained in:
42
extracted-source/node_modules/@smithy/hash-node/dist-cjs/index.js
generated
vendored
Normal file
42
extracted-source/node_modules/@smithy/hash-node/dist-cjs/index.js
generated
vendored
Normal file
@@ -0,0 +1,42 @@
|
||||
'use strict';
|
||||
|
||||
var utilBufferFrom = require('@smithy/util-buffer-from');
|
||||
var utilUtf8 = require('@smithy/util-utf8');
|
||||
var buffer = require('buffer');
|
||||
var crypto = require('crypto');
|
||||
|
||||
class Hash {
|
||||
algorithmIdentifier;
|
||||
secret;
|
||||
hash;
|
||||
constructor(algorithmIdentifier, secret) {
|
||||
this.algorithmIdentifier = algorithmIdentifier;
|
||||
this.secret = secret;
|
||||
this.reset();
|
||||
}
|
||||
update(toHash, encoding) {
|
||||
this.hash.update(utilUtf8.toUint8Array(castSourceData(toHash, encoding)));
|
||||
}
|
||||
digest() {
|
||||
return Promise.resolve(this.hash.digest());
|
||||
}
|
||||
reset() {
|
||||
this.hash = this.secret
|
||||
? crypto.createHmac(this.algorithmIdentifier, castSourceData(this.secret))
|
||||
: crypto.createHash(this.algorithmIdentifier);
|
||||
}
|
||||
}
|
||||
function castSourceData(toCast, encoding) {
|
||||
if (buffer.Buffer.isBuffer(toCast)) {
|
||||
return toCast;
|
||||
}
|
||||
if (typeof toCast === "string") {
|
||||
return utilBufferFrom.fromString(toCast, encoding);
|
||||
}
|
||||
if (ArrayBuffer.isView(toCast)) {
|
||||
return utilBufferFrom.fromArrayBuffer(toCast.buffer, toCast.byteOffset, toCast.byteLength);
|
||||
}
|
||||
return utilBufferFrom.fromArrayBuffer(toCast);
|
||||
}
|
||||
|
||||
exports.Hash = Hash;
|
||||
Reference in New Issue
Block a user