Skip to content
Snippets Groups Projects
Unverified Commit 444b59c5 authored by yisding's avatar yisding Committed by GitHub
Browse files

Merge pull request #218 from run-llama/ms/use-cryptojs

feat: use cryptojs instead of crypto
parents b4963cab b2e1df94
No related branches found
No related tags found
No related merge requests found
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
"dependencies": { "dependencies": {
"@anthropic-ai/sdk": "^0.9.0", "@anthropic-ai/sdk": "^0.9.0",
"@notionhq/client": "^2.2.13", "@notionhq/client": "^2.2.13",
"crypto-js": "^4.2.0",
"js-tiktoken": "^1.0.7", "js-tiktoken": "^1.0.7",
"lodash": "^4.17.21", "lodash": "^4.17.21",
"mammoth": "^1.6.0", "mammoth": "^1.6.0",
...@@ -22,6 +23,7 @@ ...@@ -22,6 +23,7 @@
"wink-nlp": "^1.14.3" "wink-nlp": "^1.14.3"
}, },
"devDependencies": { "devDependencies": {
"@types/crypto-js": "^4.2.1",
"@types/lodash": "^4.14.200", "@types/lodash": "^4.14.200",
"@types/node": "^18.18.8", "@types/node": "^18.18.8",
"@types/papaparse": "^5.3.10", "@types/papaparse": "^5.3.10",
...@@ -44,4 +46,4 @@ ...@@ -44,4 +46,4 @@
"build": "tsup src/index.ts --format esm,cjs --dts", "build": "tsup src/index.ts --format esm,cjs --dts",
"dev": "tsup src/index.ts --format esm,cjs --dts --watch" "dev": "tsup src/index.ts --format esm,cjs --dts --watch"
} }
} }
\ No newline at end of file
import crypto from "crypto"; // TODO Node dependency import CryptoJS from "crypto-js";
import { v4 as uuidv4 } from "uuid"; import { v4 as uuidv4 } from "uuid";
export enum NodeRelationship { export enum NodeRelationship {
...@@ -175,13 +175,13 @@ export class TextNode<T extends Metadata = Metadata> extends BaseNode<T> { ...@@ -175,13 +175,13 @@ export class TextNode<T extends Metadata = Metadata> extends BaseNode<T> {
* @returns * @returns
*/ */
generateHash() { generateHash() {
const hashFunction = crypto.createHash("sha256"); const hashFunction = CryptoJS.algo.SHA256.create();
hashFunction.update(`type=${this.getType()}`); hashFunction.update(`type=${this.getType()}`);
hashFunction.update( hashFunction.update(
`startCharIdx=${this.startCharIdx} endCharIdx=${this.endCharIdx}`, `startCharIdx=${this.startCharIdx} endCharIdx=${this.endCharIdx}`,
); );
hashFunction.update(this.getContent(MetadataMode.ALL)); hashFunction.update(this.getContent(MetadataMode.ALL));
return hashFunction.digest("base64"); return hashFunction.finalize().toString(CryptoJS.enc.Base64);
} }
getType(): ObjectType { getType(): ObjectType {
......
import { TextNode } from "../Node";
describe("TextNode", () => {
let node: TextNode;
beforeEach(() => {
node = new TextNode({ text: "Hello World" });
});
describe("generateHash", () => {
it("should generate a hash", () => {
expect(node.hash).toBe("nTSKdUTYqR52MPv/brvb4RTGeqedTEqG9QN8KSAj2Do=");
});
});
});
...@@ -153,6 +153,9 @@ importers: ...@@ -153,6 +153,9 @@ importers:
'@notionhq/client': '@notionhq/client':
specifier: ^2.2.13 specifier: ^2.2.13
version: 2.2.13 version: 2.2.13
crypto-js:
specifier: ^4.2.0
version: 4.2.0
js-tiktoken: js-tiktoken:
specifier: ^1.0.7 specifier: ^1.0.7
version: 1.0.7 version: 1.0.7
...@@ -199,6 +202,9 @@ importers: ...@@ -199,6 +202,9 @@ importers:
specifier: ^1.14.3 specifier: ^1.14.3
version: 1.14.3 version: 1.14.3
devDependencies: devDependencies:
'@types/crypto-js':
specifier: ^4.2.1
version: 4.2.1
'@types/lodash': '@types/lodash':
specifier: ^4.14.200 specifier: ^4.14.200
version: 4.14.200 version: 4.14.200
...@@ -463,7 +469,7 @@ packages: ...@@ -463,7 +469,7 @@ packages:
engines: {node: '>=6.0.0'} engines: {node: '>=6.0.0'}
dependencies: dependencies:
'@jridgewell/gen-mapping': 0.3.3 '@jridgewell/gen-mapping': 0.3.3
'@jridgewell/trace-mapping': 0.3.19 '@jridgewell/trace-mapping': 0.3.20
   
/@anthropic-ai/sdk@0.9.0: /@anthropic-ai/sdk@0.9.0:
resolution: {integrity: sha512-qNoNld9luBWNcmCFTIZrsmusCQIdxIxQXyHJ64IDUsrvPvy2lM0kA9+E6bHeeFut463zdGkVz0Ux0U+WDppLGg==} resolution: {integrity: sha512-qNoNld9luBWNcmCFTIZrsmusCQIdxIxQXyHJ64IDUsrvPvy2lM0kA9+E6bHeeFut463zdGkVz0Ux0U+WDppLGg==}
...@@ -568,7 +574,7 @@ packages: ...@@ -568,7 +574,7 @@ packages:
dependencies: dependencies:
'@babel/types': 7.23.0 '@babel/types': 7.23.0
'@jridgewell/gen-mapping': 0.3.3 '@jridgewell/gen-mapping': 0.3.3
'@jridgewell/trace-mapping': 0.3.19 '@jridgewell/trace-mapping': 0.3.20
jsesc: 2.5.2 jsesc: 2.5.2
   
/@babel/generator@7.23.3: /@babel/generator@7.23.3:
...@@ -3596,12 +3602,6 @@ packages: ...@@ -3596,12 +3602,6 @@ packages:
/@jridgewell/sourcemap-codec@1.4.15: /@jridgewell/sourcemap-codec@1.4.15:
resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
   
/@jridgewell/trace-mapping@0.3.19:
resolution: {integrity: sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==}
dependencies:
'@jridgewell/resolve-uri': 3.1.1
'@jridgewell/sourcemap-codec': 1.4.15
/@jridgewell/trace-mapping@0.3.20: /@jridgewell/trace-mapping@0.3.20:
resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==} resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==}
dependencies: dependencies:
...@@ -4207,6 +4207,10 @@ packages: ...@@ -4207,6 +4207,10 @@ packages:
'@types/node': 18.18.8 '@types/node': 18.18.8
dev: true dev: true
   
/@types/crypto-js@4.2.1:
resolution: {integrity: sha512-FSPGd9+OcSok3RsM0UZ/9fcvMOXJ1ENE/ZbLfOPlBWj7BgXtEAM8VYfTtT760GiLbQIMoVozwVuisjvsVwqYWw==}
dev: true
/@types/eslint-scope@3.7.5: /@types/eslint-scope@3.7.5:
resolution: {integrity: sha512-JNvhIEyxVW6EoMIFIvj93ZOywYFatlpu9deeH6eSx6PE3WHYvHaQtmHmQeNw7aA81bYGBPPQqdtBm6b1SsQMmA==} resolution: {integrity: sha512-JNvhIEyxVW6EoMIFIvj93ZOywYFatlpu9deeH6eSx6PE3WHYvHaQtmHmQeNw7aA81bYGBPPQqdtBm6b1SsQMmA==}
dependencies: dependencies:
...@@ -4811,12 +4815,12 @@ packages: ...@@ -4811,12 +4815,12 @@ packages:
/acorn-walk@8.2.0: /acorn-walk@8.2.0:
resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==}
engines: {node: '>=0.4.0'} engines: {node: '>=0.4.0'}
dev: false dev: true
   
/acorn-walk@8.3.0: /acorn-walk@8.3.0:
resolution: {integrity: sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==} resolution: {integrity: sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==}
engines: {node: '>=0.4.0'} engines: {node: '>=0.4.0'}
dev: true dev: false
   
/acorn@8.10.0: /acorn@8.10.0:
resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==}
...@@ -6423,6 +6427,10 @@ packages: ...@@ -6423,6 +6427,10 @@ packages:
randomfill: 1.0.4 randomfill: 1.0.4
dev: true dev: true
   
/crypto-js@4.2.0:
resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==}
dev: false
/crypto-random-string@2.0.0: /crypto-random-string@2.0.0:
resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==}
engines: {node: '>=8'} engines: {node: '>=8'}
...@@ -12273,10 +12281,6 @@ packages: ...@@ -12273,10 +12281,6 @@ packages:
/punycode@1.4.1: /punycode@1.4.1:
resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==}
   
/punycode@2.3.0:
resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==}
engines: {node: '>=6'}
/punycode@2.3.1: /punycode@2.3.1:
resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
engines: {node: '>=6'} engines: {node: '>=6'}
...@@ -13979,7 +13983,7 @@ packages: ...@@ -13979,7 +13983,7 @@ packages:
uglify-js: uglify-js:
optional: true optional: true
dependencies: dependencies:
'@jridgewell/trace-mapping': 0.3.19 '@jridgewell/trace-mapping': 0.3.20
jest-worker: 27.5.1 jest-worker: 27.5.1
schema-utils: 3.3.0 schema-utils: 3.3.0
serialize-javascript: 6.0.1 serialize-javascript: 6.0.1
...@@ -14002,7 +14006,7 @@ packages: ...@@ -14002,7 +14006,7 @@ packages:
uglify-js: uglify-js:
optional: true optional: true
dependencies: dependencies:
'@jridgewell/trace-mapping': 0.3.19 '@jridgewell/trace-mapping': 0.3.20
jest-worker: 27.5.1 jest-worker: 27.5.1
schema-utils: 3.3.0 schema-utils: 3.3.0
serialize-javascript: 6.0.1 serialize-javascript: 6.0.1
...@@ -14228,8 +14232,8 @@ packages: ...@@ -14228,8 +14232,8 @@ packages:
'@tsconfig/node14': 1.0.3 '@tsconfig/node14': 1.0.3
'@tsconfig/node16': 1.0.4 '@tsconfig/node16': 1.0.4
'@types/node': 18.18.7 '@types/node': 18.18.7
acorn: 8.11.2 acorn: 8.10.0
acorn-walk: 8.3.0 acorn-walk: 8.2.0
arg: 4.1.3 arg: 4.1.3
create-require: 1.1.1 create-require: 1.1.1
diff: 4.0.2 diff: 4.0.2
...@@ -14259,8 +14263,8 @@ packages: ...@@ -14259,8 +14263,8 @@ packages:
'@tsconfig/node14': 1.0.3 '@tsconfig/node14': 1.0.3
'@tsconfig/node16': 1.0.4 '@tsconfig/node16': 1.0.4
'@types/node': 18.18.8 '@types/node': 18.18.8
acorn: 8.11.2 acorn: 8.10.0
acorn-walk: 8.3.0 acorn-walk: 8.2.0
arg: 4.1.3 arg: 4.1.3
create-require: 1.1.1 create-require: 1.1.1
diff: 4.0.2 diff: 4.0.2
...@@ -14763,7 +14767,7 @@ packages: ...@@ -14763,7 +14767,7 @@ packages:
/uri-js@4.4.1: /uri-js@4.4.1:
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
dependencies: dependencies:
punycode: 2.3.0 punycode: 2.3.1
   
/url-loader@4.1.1(file-loader@6.2.0)(webpack@5.88.2): /url-loader@4.1.1(file-loader@6.2.0)(webpack@5.88.2):
resolution: {integrity: sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==} resolution: {integrity: sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==}
...@@ -15019,8 +15023,8 @@ packages: ...@@ -15019,8 +15023,8 @@ packages:
hasBin: true hasBin: true
dependencies: dependencies:
'@discoveryjs/json-ext': 0.5.7 '@discoveryjs/json-ext': 0.5.7
acorn: 8.10.0 acorn: 8.11.2
acorn-walk: 8.2.0 acorn-walk: 8.3.0
commander: 7.2.0 commander: 7.2.0
escape-string-regexp: 4.0.0 escape-string-regexp: 4.0.0
gzip-size: 6.0.0 gzip-size: 6.0.0
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment