From c64f8341700ea335c25062a3917cf069246cdf1d Mon Sep 17 00:00:00 2001
From: Aurelien Franky
Date: Sun, 25 Feb 2024 22:42:20 +0100
Subject: [PATCH 1/9] sdk updates
---
README.md | 2 +-
package-lock.json | 4909 ++++++-----------
packages/@pufflig/ps-chains/LICENSE | 21 -
packages/@pufflig/ps-chains/README.md | 17 -
packages/@pufflig/ps-chains/jest.config.js | 5 -
packages/@pufflig/ps-chains/package.json | 35 -
.../__snapshots__/runFlow.test.ts.snap | 366 --
.../updateNodeInput.test.ts.snap | 18 -
.../src/engines/dataflow/constants.ts | 32 -
.../src/engines/dataflow/runFlow.test.ts | 520 --
.../ps-chains/src/engines/dataflow/runFlow.ts | 185 -
.../engines/dataflow/updateNodeInput.test.ts | 36 -
.../src/engines/dataflow/updateNodeInput.ts | 42 -
.../dataflow/utils/extractVariables.test.ts | 32 -
.../dataflow/utils/extractVariables.ts | 20 -
.../dataflow/utils/getReachableNodes.ts | 28 -
.../dataflow/utils/resolveVariables.test.ts | 95 -
.../dataflow/utils/resolveVariables.ts | 40 -
.../dataflow/utils/sanitizeInput.test.ts | 19 -
.../engines/dataflow/utils/sanitizeInput.ts | 14 -
.../src/engines/dataflow/utils/utils.test.ts | 107 -
.../src/engines/dataflow/utils/utils.ts | 64 -
packages/@pufflig/ps-chains/src/index.ts | 5 -
.../@pufflig/ps-chains/src/mocks/chains.ts | 841 ---
.../@pufflig/ps-chains/src/mocks/nodes.ts | 265 -
packages/@pufflig/ps-chains/src/types.ts | 49 -
packages/@pufflig/ps-chains/tsconfig.json | 23 -
packages/@pufflig/ps-chains/vite.config.ts | 22 -
packages/@pufflig/ps-models/package.json | 9 +-
packages/@pufflig/ps-models/src/index.ts | 4 +-
packages/@pufflig/ps-models/src/models/hf.ts | 2 +-
.../ps-models/src/models/open_router.ts | 2 +-
.../@pufflig/ps-models/src/models/openai.ts | 3 +-
packages/@pufflig/ps-models/src/types.ts | 39 +
.../ps-models/src/utils/getModelFromPreset.ts | 26 +
packages/@pufflig/ps-nodes-config/LICENSE | 21 -
packages/@pufflig/ps-nodes-config/README.md | 5 -
.../@pufflig/ps-nodes-config/jest.config.js | 5 -
.../@pufflig/ps-nodes-config/package.json | 34 -
.../adapters/document_check/document_check.ts | 86 -
.../ps-nodes-config/src/adapters/index.ts | 22 -
.../src/adapters/llm/llm_completion.ts | 54 -
.../src/adapters/openai/openai_chat.ts | 54 -
.../src/adapters/openai/openai_completion.ts | 52 -
.../src/adapters/openai/openai_embedding.ts | 54 -
.../adapters/parse_document/parse_document.ts | 56 -
.../ps-nodes-config/src/core/forin.ts | 45 -
.../ps-nodes-config/src/core/index.ts | 15 -
.../ps-nodes-config/src/core/input.ts | 21 -
.../ps-nodes-config/src/core/output.ts | 17 -
.../ps-nodes-config/src/data/group/group.ts | 21 -
.../ps-nodes-config/src/data/index.ts | 27 -
.../ps-nodes-config/src/data/list/list.ts | 28 -
.../src/data/message/message.ts | 53 -
.../ps-nodes-config/src/data/model/model.ts | 37 -
.../ps-nodes-config/src/data/number/number.ts | 28 -
.../ps-nodes-config/src/data/prompt/prompt.ts | 28 -
.../ps-nodes-config/src/data/text/text.ts | 28 -
.../@pufflig/ps-nodes-config/src/index.ts | 27 -
.../src/modifiers/add_message/add_message.ts | 39 -
.../src/modifiers/add_text/add_text.ts | 35 -
.../ps-nodes-config/src/modifiers/index.ts | 21 -
.../src/modifiers/split_text/split_text.ts | 44 -
.../src/modifiers/template/template_chat.ts | 39 -
.../src/modifiers/template/template_text.ts | 35 -
.../@pufflig/ps-nodes-config/src/types.ts | 13 -
.../@pufflig/ps-nodes-config/tsconfig.json | 23 -
.../@pufflig/ps-nodes-config/vite.config.ts | 19 -
packages/@pufflig/ps-nodes/LICENSE | 21 -
packages/@pufflig/ps-nodes/README.md | 5 -
packages/@pufflig/ps-nodes/jest.config.js | 5 -
packages/@pufflig/ps-nodes/package.json | 47 -
.../__snapshots__/document_check.test.ts.snap | 264 -
.../document_check/document_check.test.ts | 231 -
.../adapters/document_check/document_check.ts | 159 -
.../@pufflig/ps-nodes/src/adapters/index.ts | 16 -
.../__snapshots__/llm_completion.test.ts.snap | 688 ---
.../src/adapters/llm/llm_completion.test.ts | 88 -
.../src/adapters/llm/llm_completion.ts | 92 -
.../src/adapters/openai/openai_chat.ts | 48 -
.../src/adapters/openai/openai_completion.ts | 36 -
.../src/adapters/openai/openai_embedding.ts | 34 -
.../parse_document/mock_data/long_text.ts | 199 -
.../parse_document/parse_document.test.ts | 92 -
.../adapters/parse_document/parse_document.ts | 182 -
packages/@pufflig/ps-nodes/src/core/forin.ts | 38 -
packages/@pufflig/ps-nodes/src/core/index.ts | 10 -
packages/@pufflig/ps-nodes/src/core/input.ts | 6 -
packages/@pufflig/ps-nodes/src/core/output.ts | 6 -
.../ps-nodes/src/data/group/group.test.ts | 49 -
.../@pufflig/ps-nodes/src/data/group/group.ts | 29 -
packages/@pufflig/ps-nodes/src/data/index.ts | 18 -
.../@pufflig/ps-nodes/src/data/list/list.ts | 6 -
.../ps-nodes/src/data/message/message.ts | 19 -
.../@pufflig/ps-nodes/src/data/model/model.ts | 6 -
.../ps-nodes/src/data/number/number.ts | 6 -
.../ps-nodes/src/data/prompt/prompt.test.ts | 111 -
.../ps-nodes/src/data/prompt/prompt.ts | 78 -
.../@pufflig/ps-nodes/src/data/text/text.ts | 6 -
packages/@pufflig/ps-nodes/src/index.ts | 19 -
.../modifiers/add_message/add_message.test.ts | 161 -
.../src/modifiers/add_message/add_message.ts | 55 -
.../src/modifiers/add_text/add_text.ts | 7 -
.../@pufflig/ps-nodes/src/modifiers/index.ts | 14 -
.../ps-nodes/src/modifiers/split_text/mock.ts | 335 --
.../modifiers/split_text/split_text.test.ts | 694 ---
.../src/modifiers/split_text/split_text.ts | 26 -
.../strategies/paragraph/splitText.ts | 99 -
.../split_text/strategies/strategies.ts | 5 -
.../modifiers/template/template_chat.test.ts | 298 -
.../src/modifiers/template/template_chat.ts | 96 -
.../modifiers/template/template_text.test.ts | 163 -
.../src/modifiers/template/template_text.ts | 74 -
packages/@pufflig/ps-nodes/src/types.ts | 4 -
.../ps-nodes/src/utils/countTokens.ts | 8 -
.../src/utils/extractVariables.test.ts | 50 -
.../ps-nodes/src/utils/extractVariables.ts | 26 -
.../ps-nodes/src/utils/getPromptStudioKey.ts | 5 -
.../src/utils/objectDefinitionToMap.ts | 9 -
packages/@pufflig/ps-nodes/tsconfig.json | 23 -
packages/@pufflig/ps-nodes/vite.config.ts | 24 -
packages/@pufflig/ps-sdk/README.md | 2 +-
packages/@pufflig/ps-sdk/package.json | 21 +-
packages/@pufflig/ps-sdk/src/constants.ts | 8 +-
.../ps-sdk/src/createCompletion.test.ts | 1 -
.../@pufflig/ps-sdk/src/createCompletion.ts | 38 +-
packages/@pufflig/ps-sdk/src/index.ts | 5 +-
.../@pufflig/ps-sdk/src/mapCompletion.test.ts | 87 -
packages/@pufflig/ps-sdk/src/mapCompletion.ts | 74 -
.../ps-sdk/src/refineCompletion.test.ts | 72 -
.../@pufflig/ps-sdk/src/refineCompletion.ts | 79 -
packages/@pufflig/ps-sdk/src/runDeployment.ts | 26 +
.../@pufflig/ps-sdk/src/streamCompletion.ts | 100 +
packages/@pufflig/ps-sdk/src/types.ts | 39 +
packages/@pufflig/ps-sdk/vite.config.ts | 2 +-
packages/@pufflig/ps-types/LICENSE | 21 -
packages/@pufflig/ps-types/package.json | 9 -
packages/@pufflig/ps-types/src/index.ts | 3 -
packages/@pufflig/ps-types/src/types/chat.ts | 49 -
packages/@pufflig/ps-types/src/types/nodes.ts | 49 -
.../@pufflig/ps-types/src/types/params.ts | 122 -
141 files changed, 2084 insertions(+), 12496 deletions(-)
delete mode 100644 packages/@pufflig/ps-chains/LICENSE
delete mode 100644 packages/@pufflig/ps-chains/README.md
delete mode 100644 packages/@pufflig/ps-chains/jest.config.js
delete mode 100644 packages/@pufflig/ps-chains/package.json
delete mode 100644 packages/@pufflig/ps-chains/src/engines/dataflow/__snapshots__/runFlow.test.ts.snap
delete mode 100644 packages/@pufflig/ps-chains/src/engines/dataflow/__snapshots__/updateNodeInput.test.ts.snap
delete mode 100644 packages/@pufflig/ps-chains/src/engines/dataflow/constants.ts
delete mode 100644 packages/@pufflig/ps-chains/src/engines/dataflow/runFlow.test.ts
delete mode 100644 packages/@pufflig/ps-chains/src/engines/dataflow/runFlow.ts
delete mode 100644 packages/@pufflig/ps-chains/src/engines/dataflow/updateNodeInput.test.ts
delete mode 100644 packages/@pufflig/ps-chains/src/engines/dataflow/updateNodeInput.ts
delete mode 100644 packages/@pufflig/ps-chains/src/engines/dataflow/utils/extractVariables.test.ts
delete mode 100644 packages/@pufflig/ps-chains/src/engines/dataflow/utils/extractVariables.ts
delete mode 100644 packages/@pufflig/ps-chains/src/engines/dataflow/utils/getReachableNodes.ts
delete mode 100644 packages/@pufflig/ps-chains/src/engines/dataflow/utils/resolveVariables.test.ts
delete mode 100644 packages/@pufflig/ps-chains/src/engines/dataflow/utils/resolveVariables.ts
delete mode 100644 packages/@pufflig/ps-chains/src/engines/dataflow/utils/sanitizeInput.test.ts
delete mode 100644 packages/@pufflig/ps-chains/src/engines/dataflow/utils/sanitizeInput.ts
delete mode 100644 packages/@pufflig/ps-chains/src/engines/dataflow/utils/utils.test.ts
delete mode 100644 packages/@pufflig/ps-chains/src/engines/dataflow/utils/utils.ts
delete mode 100644 packages/@pufflig/ps-chains/src/index.ts
delete mode 100644 packages/@pufflig/ps-chains/src/mocks/chains.ts
delete mode 100644 packages/@pufflig/ps-chains/src/mocks/nodes.ts
delete mode 100644 packages/@pufflig/ps-chains/src/types.ts
delete mode 100644 packages/@pufflig/ps-chains/tsconfig.json
delete mode 100644 packages/@pufflig/ps-chains/vite.config.ts
create mode 100644 packages/@pufflig/ps-models/src/types.ts
create mode 100644 packages/@pufflig/ps-models/src/utils/getModelFromPreset.ts
delete mode 100644 packages/@pufflig/ps-nodes-config/LICENSE
delete mode 100644 packages/@pufflig/ps-nodes-config/README.md
delete mode 100644 packages/@pufflig/ps-nodes-config/jest.config.js
delete mode 100644 packages/@pufflig/ps-nodes-config/package.json
delete mode 100644 packages/@pufflig/ps-nodes-config/src/adapters/document_check/document_check.ts
delete mode 100644 packages/@pufflig/ps-nodes-config/src/adapters/index.ts
delete mode 100644 packages/@pufflig/ps-nodes-config/src/adapters/llm/llm_completion.ts
delete mode 100644 packages/@pufflig/ps-nodes-config/src/adapters/openai/openai_chat.ts
delete mode 100644 packages/@pufflig/ps-nodes-config/src/adapters/openai/openai_completion.ts
delete mode 100644 packages/@pufflig/ps-nodes-config/src/adapters/openai/openai_embedding.ts
delete mode 100644 packages/@pufflig/ps-nodes-config/src/adapters/parse_document/parse_document.ts
delete mode 100644 packages/@pufflig/ps-nodes-config/src/core/forin.ts
delete mode 100644 packages/@pufflig/ps-nodes-config/src/core/index.ts
delete mode 100644 packages/@pufflig/ps-nodes-config/src/core/input.ts
delete mode 100644 packages/@pufflig/ps-nodes-config/src/core/output.ts
delete mode 100644 packages/@pufflig/ps-nodes-config/src/data/group/group.ts
delete mode 100644 packages/@pufflig/ps-nodes-config/src/data/index.ts
delete mode 100644 packages/@pufflig/ps-nodes-config/src/data/list/list.ts
delete mode 100644 packages/@pufflig/ps-nodes-config/src/data/message/message.ts
delete mode 100644 packages/@pufflig/ps-nodes-config/src/data/model/model.ts
delete mode 100644 packages/@pufflig/ps-nodes-config/src/data/number/number.ts
delete mode 100644 packages/@pufflig/ps-nodes-config/src/data/prompt/prompt.ts
delete mode 100644 packages/@pufflig/ps-nodes-config/src/data/text/text.ts
delete mode 100644 packages/@pufflig/ps-nodes-config/src/index.ts
delete mode 100644 packages/@pufflig/ps-nodes-config/src/modifiers/add_message/add_message.ts
delete mode 100644 packages/@pufflig/ps-nodes-config/src/modifiers/add_text/add_text.ts
delete mode 100644 packages/@pufflig/ps-nodes-config/src/modifiers/index.ts
delete mode 100644 packages/@pufflig/ps-nodes-config/src/modifiers/split_text/split_text.ts
delete mode 100644 packages/@pufflig/ps-nodes-config/src/modifiers/template/template_chat.ts
delete mode 100644 packages/@pufflig/ps-nodes-config/src/modifiers/template/template_text.ts
delete mode 100644 packages/@pufflig/ps-nodes-config/src/types.ts
delete mode 100644 packages/@pufflig/ps-nodes-config/tsconfig.json
delete mode 100644 packages/@pufflig/ps-nodes-config/vite.config.ts
delete mode 100644 packages/@pufflig/ps-nodes/LICENSE
delete mode 100644 packages/@pufflig/ps-nodes/README.md
delete mode 100644 packages/@pufflig/ps-nodes/jest.config.js
delete mode 100644 packages/@pufflig/ps-nodes/package.json
delete mode 100644 packages/@pufflig/ps-nodes/src/adapters/document_check/__snapshots__/document_check.test.ts.snap
delete mode 100644 packages/@pufflig/ps-nodes/src/adapters/document_check/document_check.test.ts
delete mode 100644 packages/@pufflig/ps-nodes/src/adapters/document_check/document_check.ts
delete mode 100644 packages/@pufflig/ps-nodes/src/adapters/index.ts
delete mode 100644 packages/@pufflig/ps-nodes/src/adapters/llm/__snapshots__/llm_completion.test.ts.snap
delete mode 100644 packages/@pufflig/ps-nodes/src/adapters/llm/llm_completion.test.ts
delete mode 100644 packages/@pufflig/ps-nodes/src/adapters/llm/llm_completion.ts
delete mode 100644 packages/@pufflig/ps-nodes/src/adapters/openai/openai_chat.ts
delete mode 100644 packages/@pufflig/ps-nodes/src/adapters/openai/openai_completion.ts
delete mode 100644 packages/@pufflig/ps-nodes/src/adapters/openai/openai_embedding.ts
delete mode 100644 packages/@pufflig/ps-nodes/src/adapters/parse_document/mock_data/long_text.ts
delete mode 100644 packages/@pufflig/ps-nodes/src/adapters/parse_document/parse_document.test.ts
delete mode 100644 packages/@pufflig/ps-nodes/src/adapters/parse_document/parse_document.ts
delete mode 100644 packages/@pufflig/ps-nodes/src/core/forin.ts
delete mode 100644 packages/@pufflig/ps-nodes/src/core/index.ts
delete mode 100644 packages/@pufflig/ps-nodes/src/core/input.ts
delete mode 100644 packages/@pufflig/ps-nodes/src/core/output.ts
delete mode 100644 packages/@pufflig/ps-nodes/src/data/group/group.test.ts
delete mode 100644 packages/@pufflig/ps-nodes/src/data/group/group.ts
delete mode 100644 packages/@pufflig/ps-nodes/src/data/index.ts
delete mode 100644 packages/@pufflig/ps-nodes/src/data/list/list.ts
delete mode 100644 packages/@pufflig/ps-nodes/src/data/message/message.ts
delete mode 100644 packages/@pufflig/ps-nodes/src/data/model/model.ts
delete mode 100644 packages/@pufflig/ps-nodes/src/data/number/number.ts
delete mode 100644 packages/@pufflig/ps-nodes/src/data/prompt/prompt.test.ts
delete mode 100644 packages/@pufflig/ps-nodes/src/data/prompt/prompt.ts
delete mode 100644 packages/@pufflig/ps-nodes/src/data/text/text.ts
delete mode 100644 packages/@pufflig/ps-nodes/src/index.ts
delete mode 100644 packages/@pufflig/ps-nodes/src/modifiers/add_message/add_message.test.ts
delete mode 100644 packages/@pufflig/ps-nodes/src/modifiers/add_message/add_message.ts
delete mode 100644 packages/@pufflig/ps-nodes/src/modifiers/add_text/add_text.ts
delete mode 100644 packages/@pufflig/ps-nodes/src/modifiers/index.ts
delete mode 100644 packages/@pufflig/ps-nodes/src/modifiers/split_text/mock.ts
delete mode 100644 packages/@pufflig/ps-nodes/src/modifiers/split_text/split_text.test.ts
delete mode 100644 packages/@pufflig/ps-nodes/src/modifiers/split_text/split_text.ts
delete mode 100644 packages/@pufflig/ps-nodes/src/modifiers/split_text/strategies/paragraph/splitText.ts
delete mode 100644 packages/@pufflig/ps-nodes/src/modifiers/split_text/strategies/strategies.ts
delete mode 100644 packages/@pufflig/ps-nodes/src/modifiers/template/template_chat.test.ts
delete mode 100644 packages/@pufflig/ps-nodes/src/modifiers/template/template_chat.ts
delete mode 100644 packages/@pufflig/ps-nodes/src/modifiers/template/template_text.test.ts
delete mode 100644 packages/@pufflig/ps-nodes/src/modifiers/template/template_text.ts
delete mode 100644 packages/@pufflig/ps-nodes/src/types.ts
delete mode 100644 packages/@pufflig/ps-nodes/src/utils/countTokens.ts
delete mode 100644 packages/@pufflig/ps-nodes/src/utils/extractVariables.test.ts
delete mode 100644 packages/@pufflig/ps-nodes/src/utils/extractVariables.ts
delete mode 100644 packages/@pufflig/ps-nodes/src/utils/getPromptStudioKey.ts
delete mode 100644 packages/@pufflig/ps-nodes/src/utils/objectDefinitionToMap.ts
delete mode 100644 packages/@pufflig/ps-nodes/tsconfig.json
delete mode 100644 packages/@pufflig/ps-nodes/vite.config.ts
delete mode 100644 packages/@pufflig/ps-sdk/src/mapCompletion.test.ts
delete mode 100644 packages/@pufflig/ps-sdk/src/mapCompletion.ts
delete mode 100644 packages/@pufflig/ps-sdk/src/refineCompletion.test.ts
delete mode 100644 packages/@pufflig/ps-sdk/src/refineCompletion.ts
create mode 100644 packages/@pufflig/ps-sdk/src/runDeployment.ts
create mode 100644 packages/@pufflig/ps-sdk/src/streamCompletion.ts
delete mode 100644 packages/@pufflig/ps-types/LICENSE
delete mode 100644 packages/@pufflig/ps-types/package.json
delete mode 100644 packages/@pufflig/ps-types/src/index.ts
delete mode 100644 packages/@pufflig/ps-types/src/types/chat.ts
delete mode 100644 packages/@pufflig/ps-types/src/types/nodes.ts
delete mode 100644 packages/@pufflig/ps-types/src/types/params.ts
diff --git a/README.md b/README.md
index b7f3268..eb2adeb 100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,7 @@
-> ⚠️ **Under Construction** the API and project structure are subject to change and no documentation was added yet. ⚠️
+> ⚠️ **Under Construction** the API and project structure are subject to change. ⚠️
# Prompt Studio Core
diff --git a/package-lock.json b/package-lock.json
index cc6771e..6fe1d43 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -172,10 +172,11 @@
}
},
"node_modules/@babel/code-frame": {
- "version": "7.22.13",
- "license": "MIT",
+ "version": "7.23.5",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz",
+ "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==",
"dependencies": {
- "@babel/highlight": "^7.22.13",
+ "@babel/highlight": "^7.23.4",
"chalk": "^2.4.2"
},
"engines": {
@@ -233,26 +234,28 @@
}
},
"node_modules/@babel/compat-data": {
- "version": "7.23.3",
- "license": "MIT",
+ "version": "7.23.5",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz",
+ "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/core": {
- "version": "7.23.3",
- "license": "MIT",
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.9.tgz",
+ "integrity": "sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==",
"dependencies": {
"@ampproject/remapping": "^2.2.0",
- "@babel/code-frame": "^7.22.13",
- "@babel/generator": "^7.23.3",
- "@babel/helper-compilation-targets": "^7.22.15",
+ "@babel/code-frame": "^7.23.5",
+ "@babel/generator": "^7.23.6",
+ "@babel/helper-compilation-targets": "^7.23.6",
"@babel/helper-module-transforms": "^7.23.3",
- "@babel/helpers": "^7.23.2",
- "@babel/parser": "^7.23.3",
- "@babel/template": "^7.22.15",
- "@babel/traverse": "^7.23.3",
- "@babel/types": "^7.23.3",
+ "@babel/helpers": "^7.23.9",
+ "@babel/parser": "^7.23.9",
+ "@babel/template": "^7.23.9",
+ "@babel/traverse": "^7.23.9",
+ "@babel/types": "^7.23.9",
"convert-source-map": "^2.0.0",
"debug": "^4.1.0",
"gensync": "^1.0.0-beta.2",
@@ -275,10 +278,11 @@
}
},
"node_modules/@babel/generator": {
- "version": "7.23.3",
- "license": "MIT",
+ "version": "7.23.6",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz",
+ "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==",
"dependencies": {
- "@babel/types": "^7.23.3",
+ "@babel/types": "^7.23.6",
"@jridgewell/gen-mapping": "^0.3.2",
"@jridgewell/trace-mapping": "^0.3.17",
"jsesc": "^2.5.1"
@@ -308,12 +312,13 @@
}
},
"node_modules/@babel/helper-compilation-targets": {
- "version": "7.22.15",
- "license": "MIT",
+ "version": "7.23.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz",
+ "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==",
"dependencies": {
- "@babel/compat-data": "^7.22.9",
- "@babel/helper-validator-option": "^7.22.15",
- "browserslist": "^4.21.9",
+ "@babel/compat-data": "^7.23.5",
+ "@babel/helper-validator-option": "^7.23.5",
+ "browserslist": "^4.22.2",
"lru-cache": "^5.1.1",
"semver": "^6.3.1"
},
@@ -546,8 +551,9 @@
}
},
"node_modules/@babel/helper-string-parser": {
- "version": "7.22.5",
- "license": "MIT",
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz",
+ "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==",
"engines": {
"node": ">=6.9.0"
}
@@ -560,8 +566,9 @@
}
},
"node_modules/@babel/helper-validator-option": {
- "version": "7.22.15",
- "license": "MIT",
+ "version": "7.23.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz",
+ "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==",
"engines": {
"node": ">=6.9.0"
}
@@ -579,20 +586,22 @@
}
},
"node_modules/@babel/helpers": {
- "version": "7.23.2",
- "license": "MIT",
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.9.tgz",
+ "integrity": "sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ==",
"dependencies": {
- "@babel/template": "^7.22.15",
- "@babel/traverse": "^7.23.2",
- "@babel/types": "^7.23.0"
+ "@babel/template": "^7.23.9",
+ "@babel/traverse": "^7.23.9",
+ "@babel/types": "^7.23.9"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/highlight": {
- "version": "7.22.20",
- "license": "MIT",
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz",
+ "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==",
"dependencies": {
"@babel/helper-validator-identifier": "^7.22.20",
"chalk": "^2.4.2",
@@ -604,7 +613,8 @@
},
"node_modules/@babel/highlight/node_modules/ansi-styles": {
"version": "3.2.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"dependencies": {
"color-convert": "^1.9.0"
},
@@ -614,7 +624,8 @@
},
"node_modules/@babel/highlight/node_modules/chalk": {
"version": "2.4.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
"dependencies": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
@@ -626,25 +637,29 @@
},
"node_modules/@babel/highlight/node_modules/color-convert": {
"version": "1.9.3",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
"dependencies": {
"color-name": "1.1.3"
}
},
"node_modules/@babel/highlight/node_modules/color-name": {
"version": "1.1.3",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
},
"node_modules/@babel/highlight/node_modules/has-flag": {
"version": "3.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
"engines": {
"node": ">=4"
}
},
"node_modules/@babel/highlight/node_modules/supports-color": {
"version": "5.5.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
"dependencies": {
"has-flag": "^3.0.0"
},
@@ -653,8 +668,9 @@
}
},
"node_modules/@babel/parser": {
- "version": "7.23.3",
- "license": "MIT",
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.9.tgz",
+ "integrity": "sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==",
"bin": {
"parser": "bin/babel-parser.js"
},
@@ -706,9 +722,7 @@
},
"node_modules/@babel/plugin-proposal-object-rest-spread": {
"version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz",
- "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==",
- "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead.",
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.10.4",
"@babel/plugin-syntax-object-rest-spread": "^7.8.0",
@@ -740,8 +754,9 @@
},
"node_modules/@babel/plugin-syntax-bigint": {
"version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz",
+ "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.8.0"
},
@@ -1923,30 +1938,32 @@
}
},
"node_modules/@babel/template": {
- "version": "7.22.15",
- "license": "MIT",
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.23.9.tgz",
+ "integrity": "sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==",
"dependencies": {
- "@babel/code-frame": "^7.22.13",
- "@babel/parser": "^7.22.15",
- "@babel/types": "^7.22.15"
+ "@babel/code-frame": "^7.23.5",
+ "@babel/parser": "^7.23.9",
+ "@babel/types": "^7.23.9"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/traverse": {
- "version": "7.23.3",
- "license": "MIT",
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.9.tgz",
+ "integrity": "sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==",
"dependencies": {
- "@babel/code-frame": "^7.22.13",
- "@babel/generator": "^7.23.3",
+ "@babel/code-frame": "^7.23.5",
+ "@babel/generator": "^7.23.6",
"@babel/helper-environment-visitor": "^7.22.20",
"@babel/helper-function-name": "^7.23.0",
"@babel/helper-hoist-variables": "^7.22.5",
"@babel/helper-split-export-declaration": "^7.22.6",
- "@babel/parser": "^7.23.3",
- "@babel/types": "^7.23.3",
- "debug": "^4.1.0",
+ "@babel/parser": "^7.23.9",
+ "@babel/types": "^7.23.9",
+ "debug": "^4.3.1",
"globals": "^11.1.0"
},
"engines": {
@@ -1954,10 +1971,11 @@
}
},
"node_modules/@babel/types": {
- "version": "7.23.3",
- "license": "MIT",
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.9.tgz",
+ "integrity": "sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==",
"dependencies": {
- "@babel/helper-string-parser": "^7.22.5",
+ "@babel/helper-string-parser": "^7.23.4",
"@babel/helper-validator-identifier": "^7.22.20",
"to-fast-properties": "^2.0.0"
},
@@ -1967,8 +1985,9 @@
},
"node_modules/@bcoe/v8-coverage": {
"version": "0.2.3",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz",
+ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
+ "dev": true
},
"node_modules/@colors/colors": {
"version": "1.5.0",
@@ -2030,8 +2049,7 @@
},
"node_modules/@docusaurus/core": {
"version": "2.4.3",
- "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-2.4.3.tgz",
- "integrity": "sha512-dWH5P7cgeNSIg9ufReX6gaCl/TmrGKD38Orbwuz05WPhAQtFXHd5B8Qym1TiXfvUNvwoYKkAJOJuGe8ou0Z7PA==",
+ "license": "MIT",
"dependencies": {
"@babel/core": "^7.18.6",
"@babel/generator": "^7.18.7",
@@ -2118,8 +2136,7 @@
},
"node_modules/@docusaurus/core/node_modules/chalk": {
"version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -2133,8 +2150,7 @@
},
"node_modules/@docusaurus/core/node_modules/fs-extra": {
"version": "10.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
- "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
+ "license": "MIT",
"dependencies": {
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
@@ -2146,8 +2162,7 @@
},
"node_modules/@docusaurus/cssnano-preset": {
"version": "2.4.3",
- "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-2.4.3.tgz",
- "integrity": "sha512-ZvGSRCi7z9wLnZrXNPG6DmVPHdKGd8dIn9pYbEOFiYihfv4uDR3UtxogmKf+rT8ZlKFf5Lqne8E8nt08zNM8CA==",
+ "license": "MIT",
"dependencies": {
"cssnano-preset-advanced": "^5.3.8",
"postcss": "^8.4.14",
@@ -2160,8 +2175,7 @@
},
"node_modules/@docusaurus/logger": {
"version": "2.4.3",
- "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-2.4.3.tgz",
- "integrity": "sha512-Zxws7r3yLufk9xM1zq9ged0YHs65mlRmtsobnFkdZTxWXdTYlWWLWdKyNKAsVC+D7zg+pv2fGbyabdOnyZOM3w==",
+ "license": "MIT",
"dependencies": {
"chalk": "^4.1.2",
"tslib": "^2.4.0"
@@ -2172,8 +2186,7 @@
},
"node_modules/@docusaurus/logger/node_modules/chalk": {
"version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -2187,8 +2200,7 @@
},
"node_modules/@docusaurus/mdx-loader": {
"version": "2.4.3",
- "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-2.4.3.tgz",
- "integrity": "sha512-b1+fDnWtl3GiqkL0BRjYtc94FZrcDDBV1j8446+4tptB9BAOlePwG2p/pK6vGvfL53lkOsszXMghr2g67M0vCw==",
+ "license": "MIT",
"dependencies": {
"@babel/parser": "^7.18.8",
"@babel/traverse": "^7.18.8",
@@ -2218,8 +2230,7 @@
},
"node_modules/@docusaurus/mdx-loader/node_modules/fs-extra": {
"version": "10.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
- "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
+ "license": "MIT",
"dependencies": {
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
@@ -2231,8 +2242,7 @@
},
"node_modules/@docusaurus/module-type-aliases": {
"version": "2.4.3",
- "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-2.4.3.tgz",
- "integrity": "sha512-cwkBkt1UCiduuvEAo7XZY01dJfRn7UR/75mBgOdb1hKknhrabJZ8YH+7savd/y9kLExPyrhe0QwdS9GuzsRRIA==",
+ "license": "MIT",
"dependencies": {
"@docusaurus/react-loadable": "5.5.2",
"@docusaurus/types": "2.4.3",
@@ -2250,8 +2260,7 @@
},
"node_modules/@docusaurus/plugin-content-blog": {
"version": "2.4.3",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-2.4.3.tgz",
- "integrity": "sha512-PVhypqaA0t98zVDpOeTqWUTvRqCEjJubtfFUQ7zJNYdbYTbS/E/ytq6zbLVsN/dImvemtO/5JQgjLxsh8XLo8Q==",
+ "license": "MIT",
"dependencies": {
"@docusaurus/core": "2.4.3",
"@docusaurus/logger": "2.4.3",
@@ -2280,8 +2289,7 @@
},
"node_modules/@docusaurus/plugin-content-blog/node_modules/fs-extra": {
"version": "10.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
- "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
+ "license": "MIT",
"dependencies": {
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
@@ -2293,8 +2301,7 @@
},
"node_modules/@docusaurus/plugin-content-docs": {
"version": "2.4.3",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-2.4.3.tgz",
- "integrity": "sha512-N7Po2LSH6UejQhzTCsvuX5NOzlC+HiXOVvofnEPj0WhMu1etpLEXE6a4aTxrtg95lQ5kf0xUIdjX9sh3d3G76A==",
+ "license": "MIT",
"dependencies": {
"@docusaurus/core": "2.4.3",
"@docusaurus/logger": "2.4.3",
@@ -2323,8 +2330,7 @@
},
"node_modules/@docusaurus/plugin-content-docs/node_modules/fs-extra": {
"version": "10.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
- "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
+ "license": "MIT",
"dependencies": {
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
@@ -2336,8 +2342,7 @@
},
"node_modules/@docusaurus/plugin-content-pages": {
"version": "2.4.3",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-2.4.3.tgz",
- "integrity": "sha512-txtDVz7y3zGk67q0HjG0gRttVPodkHqE0bpJ+7dOaTH40CQFLSh7+aBeGnPOTl+oCPG+hxkim4SndqPqXjQ8Bg==",
+ "license": "MIT",
"dependencies": {
"@docusaurus/core": "2.4.3",
"@docusaurus/mdx-loader": "2.4.3",
@@ -2358,8 +2363,7 @@
},
"node_modules/@docusaurus/plugin-content-pages/node_modules/fs-extra": {
"version": "10.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
- "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
+ "license": "MIT",
"dependencies": {
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
@@ -2371,8 +2375,7 @@
},
"node_modules/@docusaurus/plugin-debug": {
"version": "2.4.3",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-2.4.3.tgz",
- "integrity": "sha512-LkUbuq3zCmINlFb+gAd4ZvYr+bPAzMC0hwND4F7V9bZ852dCX8YoWyovVUBKq4er1XsOwSQaHmNGtObtn8Av8Q==",
+ "license": "MIT",
"dependencies": {
"@docusaurus/core": "2.4.3",
"@docusaurus/types": "2.4.3",
@@ -2391,8 +2394,7 @@
},
"node_modules/@docusaurus/plugin-debug/node_modules/fs-extra": {
"version": "10.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
- "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
+ "license": "MIT",
"dependencies": {
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
@@ -2404,8 +2406,7 @@
},
"node_modules/@docusaurus/plugin-google-analytics": {
"version": "2.4.3",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-2.4.3.tgz",
- "integrity": "sha512-KzBV3k8lDkWOhg/oYGxlK5o9bOwX7KpPc/FTWoB+SfKhlHfhq7qcQdMi1elAaVEIop8tgK6gD1E58Q+XC6otSQ==",
+ "license": "MIT",
"dependencies": {
"@docusaurus/core": "2.4.3",
"@docusaurus/types": "2.4.3",
@@ -2422,8 +2423,7 @@
},
"node_modules/@docusaurus/plugin-google-gtag": {
"version": "2.4.3",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-2.4.3.tgz",
- "integrity": "sha512-5FMg0rT7sDy4i9AGsvJC71MQrqQZwgLNdDetLEGDHLfSHLvJhQbTCUGbGXknUgWXQJckcV/AILYeJy+HhxeIFA==",
+ "license": "MIT",
"dependencies": {
"@docusaurus/core": "2.4.3",
"@docusaurus/types": "2.4.3",
@@ -2440,8 +2440,7 @@
},
"node_modules/@docusaurus/plugin-google-tag-manager": {
"version": "2.4.3",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-2.4.3.tgz",
- "integrity": "sha512-1jTzp71yDGuQiX9Bi0pVp3alArV0LSnHXempvQTxwCGAEzUWWaBg4d8pocAlTpbP9aULQQqhgzrs8hgTRPOM0A==",
+ "license": "MIT",
"dependencies": {
"@docusaurus/core": "2.4.3",
"@docusaurus/types": "2.4.3",
@@ -2458,8 +2457,7 @@
},
"node_modules/@docusaurus/plugin-sitemap": {
"version": "2.4.3",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-2.4.3.tgz",
- "integrity": "sha512-LRQYrK1oH1rNfr4YvWBmRzTL0LN9UAPxBbghgeFRBm5yloF6P+zv1tm2pe2hQTX/QP5bSKdnajCvfnScgKXMZQ==",
+ "license": "MIT",
"dependencies": {
"@docusaurus/core": "2.4.3",
"@docusaurus/logger": "2.4.3",
@@ -2481,8 +2479,7 @@
},
"node_modules/@docusaurus/plugin-sitemap/node_modules/fs-extra": {
"version": "10.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
- "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
+ "license": "MIT",
"dependencies": {
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
@@ -2494,8 +2491,7 @@
},
"node_modules/@docusaurus/preset-classic": {
"version": "2.4.3",
- "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-2.4.3.tgz",
- "integrity": "sha512-tRyMliepY11Ym6hB1rAFSNGwQDpmszvWYJvlK1E+md4SW8i6ylNHtpZjaYFff9Mdk3i/Pg8ItQq9P0daOJAvQw==",
+ "license": "MIT",
"dependencies": {
"@docusaurus/core": "2.4.3",
"@docusaurus/plugin-content-blog": "2.4.3",
@@ -2532,8 +2528,7 @@
},
"node_modules/@docusaurus/theme-classic": {
"version": "2.4.3",
- "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-2.4.3.tgz",
- "integrity": "sha512-QKRAJPSGPfDY2yCiPMIVyr+MqwZCIV2lxNzqbyUW0YkrlmdzzP3WuQJPMGLCjWgQp/5c9kpWMvMxjhpZx1R32Q==",
+ "license": "MIT",
"dependencies": {
"@docusaurus/core": "2.4.3",
"@docusaurus/mdx-loader": "2.4.3",
@@ -2571,8 +2566,7 @@
},
"node_modules/@docusaurus/theme-common": {
"version": "2.4.3",
- "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-2.4.3.tgz",
- "integrity": "sha512-7KaDJBXKBVGXw5WOVt84FtN8czGWhM0lbyWEZXGp8AFfL6sZQfRTluFp4QriR97qwzSyOfQb+nzcDZZU4tezUw==",
+ "license": "MIT",
"dependencies": {
"@docusaurus/mdx-loader": "2.4.3",
"@docusaurus/module-type-aliases": "2.4.3",
@@ -2601,8 +2595,7 @@
},
"node_modules/@docusaurus/theme-search-algolia": {
"version": "2.4.3",
- "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-2.4.3.tgz",
- "integrity": "sha512-jziq4f6YVUB5hZOB85ELATwnxBz/RmSLD3ksGQOLDPKVzat4pmI8tddNWtriPpxR04BNT+ZfpPUMFkNFetSW1Q==",
+ "license": "MIT",
"dependencies": {
"@docsearch/react": "^3.1.1",
"@docusaurus/core": "2.4.3",
@@ -2631,8 +2624,7 @@
},
"node_modules/@docusaurus/theme-search-algolia/node_modules/fs-extra": {
"version": "10.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
- "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
+ "license": "MIT",
"dependencies": {
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
@@ -2644,8 +2636,7 @@
},
"node_modules/@docusaurus/theme-translations": {
"version": "2.4.3",
- "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-2.4.3.tgz",
- "integrity": "sha512-H4D+lbZbjbKNS/Zw1Lel64PioUAIT3cLYYJLUf3KkuO/oc9e0QCVhIYVtUI2SfBCF2NNdlyhBDQEEMygsCedIg==",
+ "license": "MIT",
"dependencies": {
"fs-extra": "^10.1.0",
"tslib": "^2.4.0"
@@ -2656,8 +2647,7 @@
},
"node_modules/@docusaurus/theme-translations/node_modules/fs-extra": {
"version": "10.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
- "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
+ "license": "MIT",
"dependencies": {
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
@@ -2669,8 +2659,7 @@
},
"node_modules/@docusaurus/types": {
"version": "2.4.3",
- "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-2.4.3.tgz",
- "integrity": "sha512-W6zNLGQqfrp/EoPD0bhb9n7OobP+RHpmvVzpA+Z/IuU3Q63njJM24hmT0GYboovWcDtFmnIJC9wcyx4RVPQscw==",
+ "license": "MIT",
"dependencies": {
"@types/history": "^4.7.11",
"@types/react": "*",
@@ -2688,8 +2677,7 @@
},
"node_modules/@docusaurus/utils": {
"version": "2.4.3",
- "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-2.4.3.tgz",
- "integrity": "sha512-fKcXsjrD86Smxv8Pt0TBFqYieZZCPh4cbf9oszUq/AMhZn3ujwpKaVYZACPX8mmjtYx0JOgNx52CREBfiGQB4A==",
+ "license": "MIT",
"dependencies": {
"@docusaurus/logger": "2.4.3",
"@svgr/webpack": "^6.2.1",
@@ -2722,8 +2710,7 @@
},
"node_modules/@docusaurus/utils-common": {
"version": "2.4.3",
- "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-2.4.3.tgz",
- "integrity": "sha512-/jascp4GbLQCPVmcGkPzEQjNaAk3ADVfMtudk49Ggb+131B1WDD6HqlSmDf8MxGdy7Dja2gc+StHf01kiWoTDQ==",
+ "license": "MIT",
"dependencies": {
"tslib": "^2.4.0"
},
@@ -2741,8 +2728,7 @@
},
"node_modules/@docusaurus/utils-validation": {
"version": "2.4.3",
- "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-2.4.3.tgz",
- "integrity": "sha512-G2+Vt3WR5E/9drAobP+hhZQMaswRwDlp6qOMi7o7ZypB+VO7N//DZWhZEwhcRGepMDJGQEwtPv7UxtYwPL9PBw==",
+ "license": "MIT",
"dependencies": {
"@docusaurus/logger": "2.4.3",
"@docusaurus/utils": "2.4.3",
@@ -2756,8 +2742,7 @@
},
"node_modules/@docusaurus/utils/node_modules/escape-string-regexp": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
- "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "license": "MIT",
"engines": {
"node": ">=10"
},
@@ -2767,8 +2752,7 @@
},
"node_modules/@docusaurus/utils/node_modules/fs-extra": {
"version": "10.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
- "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
+ "license": "MIT",
"dependencies": {
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
@@ -2778,523 +2762,888 @@
"node": ">=12"
}
},
- "node_modules/@dqbd/tiktoken": {
- "version": "1.0.7",
- "license": "MIT"
- },
- "node_modules/@esbuild/linux-x64": {
- "version": "0.18.20",
+ "node_modules/@esbuild/aix-ppc64": {
+ "version": "0.19.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz",
+ "integrity": "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==",
"cpu": [
- "x64"
+ "ppc64"
],
"dev": true,
- "license": "MIT",
"optional": true,
"os": [
- "linux"
+ "aix"
],
- "peer": true,
"engines": {
"node": ">=12"
}
},
- "node_modules/@gar/promisify": {
- "version": "1.1.3",
+ "node_modules/@esbuild/android-arm": {
+ "version": "0.19.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz",
+ "integrity": "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==",
+ "cpu": [
+ "arm"
+ ],
"dev": true,
- "license": "MIT"
- },
- "node_modules/@hapi/hoek": {
- "version": "9.3.0",
- "license": "BSD-3-Clause"
- },
- "node_modules/@hapi/topo": {
- "version": "5.1.0",
- "license": "BSD-3-Clause",
- "dependencies": {
- "@hapi/hoek": "^9.0.0"
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
}
},
- "node_modules/@hutson/parse-repository-url": {
- "version": "3.0.2",
+ "node_modules/@esbuild/android-arm64": {
+ "version": "0.19.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz",
+ "integrity": "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==",
+ "cpu": [
+ "arm64"
+ ],
"dev": true,
- "license": "Apache-2.0",
+ "optional": true,
+ "os": [
+ "android"
+ ],
"engines": {
- "node": ">=6.9.0"
+ "node": ">=12"
}
},
- "node_modules/@isaacs/cliui": {
- "version": "8.0.2",
+ "node_modules/@esbuild/android-x64": {
+ "version": "0.19.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz",
+ "integrity": "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==",
+ "cpu": [
+ "x64"
+ ],
"dev": true,
- "license": "ISC",
- "dependencies": {
- "string-width": "^5.1.2",
- "string-width-cjs": "npm:string-width@^4.2.0",
- "strip-ansi": "^7.0.1",
- "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
- "wrap-ansi": "^8.1.0",
- "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
- },
+ "optional": true,
+ "os": [
+ "android"
+ ],
"engines": {
"node": ">=12"
}
},
- "node_modules/@isaacs/cliui/node_modules/ansi-regex": {
- "version": "6.0.1",
+ "node_modules/@esbuild/darwin-arm64": {
+ "version": "0.19.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz",
+ "integrity": "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==",
+ "cpu": [
+ "arm64"
+ ],
"dev": true,
- "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
"engines": {
"node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-regex?sponsor=1"
}
},
- "node_modules/@isaacs/cliui/node_modules/ansi-styles": {
- "version": "6.2.1",
+ "node_modules/@esbuild/darwin-x64": {
+ "version": "0.19.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz",
+ "integrity": "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==",
+ "cpu": [
+ "x64"
+ ],
"dev": true,
- "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
"engines": {
"node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/@isaacs/cliui/node_modules/emoji-regex": {
- "version": "9.2.2",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@isaacs/cliui/node_modules/string-width": {
- "version": "5.1.2",
+ "node_modules/@esbuild/freebsd-arm64": {
+ "version": "0.19.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz",
+ "integrity": "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==",
+ "cpu": [
+ "arm64"
+ ],
"dev": true,
- "license": "MIT",
- "dependencies": {
- "eastasianwidth": "^0.2.0",
- "emoji-regex": "^9.2.2",
- "strip-ansi": "^7.0.1"
- },
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
"engines": {
"node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/@isaacs/cliui/node_modules/strip-ansi": {
- "version": "7.1.0",
+ "node_modules/@esbuild/freebsd-x64": {
+ "version": "0.19.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz",
+ "integrity": "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==",
+ "cpu": [
+ "x64"
+ ],
"dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^6.0.1"
- },
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
"engines": {
"node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/strip-ansi?sponsor=1"
}
},
- "node_modules/@isaacs/cliui/node_modules/wrap-ansi": {
- "version": "8.1.0",
+ "node_modules/@esbuild/linux-arm": {
+ "version": "0.19.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz",
+ "integrity": "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==",
+ "cpu": [
+ "arm"
+ ],
"dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^6.1.0",
- "string-width": "^5.0.1",
- "strip-ansi": "^7.0.1"
- },
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
"node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
}
},
- "node_modules/@istanbuljs/load-nyc-config": {
- "version": "1.1.0",
+ "node_modules/@esbuild/linux-arm64": {
+ "version": "0.19.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz",
+ "integrity": "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==",
+ "cpu": [
+ "arm64"
+ ],
"dev": true,
- "license": "ISC",
- "dependencies": {
- "camelcase": "^5.3.1",
- "find-up": "^4.1.0",
- "get-package-type": "^0.1.0",
- "js-yaml": "^3.13.1",
- "resolve-from": "^5.0.0"
- },
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": ">=8"
+ "node": ">=12"
}
},
- "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": {
- "version": "1.0.10",
+ "node_modules/@esbuild/linux-ia32": {
+ "version": "0.19.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz",
+ "integrity": "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==",
+ "cpu": [
+ "ia32"
+ ],
"dev": true,
- "license": "MIT",
- "dependencies": {
- "sprintf-js": "~1.0.2"
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
}
},
- "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": {
- "version": "3.14.1",
+ "node_modules/@esbuild/linux-loong64": {
+ "version": "0.19.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz",
+ "integrity": "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==",
+ "cpu": [
+ "loong64"
+ ],
"dev": true,
- "license": "MIT",
- "dependencies": {
- "argparse": "^1.0.7",
- "esprima": "^4.0.0"
- },
- "bin": {
- "js-yaml": "bin/js-yaml.js"
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
}
},
- "node_modules/@istanbuljs/schema": {
- "version": "0.1.3",
+ "node_modules/@esbuild/linux-mips64el": {
+ "version": "0.19.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz",
+ "integrity": "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==",
+ "cpu": [
+ "mips64el"
+ ],
"dev": true,
- "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": ">=8"
+ "node": ">=12"
}
},
- "node_modules/@jest/console": {
- "version": "29.7.0",
+ "node_modules/@esbuild/linux-ppc64": {
+ "version": "0.19.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz",
+ "integrity": "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==",
+ "cpu": [
+ "ppc64"
+ ],
"dev": true,
- "license": "MIT",
- "dependencies": {
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "jest-message-util": "^29.7.0",
- "jest-util": "^29.7.0",
- "slash": "^3.0.0"
- },
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": ">=12"
}
},
- "node_modules/@jest/core": {
- "version": "29.7.0",
+ "node_modules/@esbuild/linux-riscv64": {
+ "version": "0.19.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz",
+ "integrity": "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==",
+ "cpu": [
+ "riscv64"
+ ],
"dev": true,
- "license": "MIT",
- "dependencies": {
- "@jest/console": "^29.7.0",
- "@jest/reporters": "^29.7.0",
- "@jest/test-result": "^29.7.0",
- "@jest/transform": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "ansi-escapes": "^4.2.1",
- "chalk": "^4.0.0",
- "ci-info": "^3.2.0",
- "exit": "^0.1.2",
- "graceful-fs": "^4.2.9",
- "jest-changed-files": "^29.7.0",
- "jest-config": "^29.7.0",
- "jest-haste-map": "^29.7.0",
- "jest-message-util": "^29.7.0",
- "jest-regex-util": "^29.6.3",
- "jest-resolve": "^29.7.0",
- "jest-resolve-dependencies": "^29.7.0",
- "jest-runner": "^29.7.0",
- "jest-runtime": "^29.7.0",
- "jest-snapshot": "^29.7.0",
- "jest-util": "^29.7.0",
- "jest-validate": "^29.7.0",
- "jest-watcher": "^29.7.0",
- "micromatch": "^4.0.4",
- "pretty-format": "^29.7.0",
- "slash": "^3.0.0",
- "strip-ansi": "^6.0.0"
- },
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- },
- "peerDependencies": {
- "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
- },
- "peerDependenciesMeta": {
- "node-notifier": {
- "optional": true
- }
+ "node": ">=12"
}
},
- "node_modules/@jest/environment": {
- "version": "29.7.0",
+ "node_modules/@esbuild/linux-s390x": {
+ "version": "0.19.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz",
+ "integrity": "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==",
+ "cpu": [
+ "s390x"
+ ],
"dev": true,
- "license": "MIT",
- "dependencies": {
- "@jest/fake-timers": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "jest-mock": "^29.7.0"
- },
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": ">=12"
}
},
- "node_modules/@jest/expect": {
- "version": "29.7.0",
+ "node_modules/@esbuild/linux-x64": {
+ "version": "0.19.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz",
+ "integrity": "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==",
+ "cpu": [
+ "x64"
+ ],
"dev": true,
- "license": "MIT",
- "dependencies": {
- "expect": "^29.7.0",
- "jest-snapshot": "^29.7.0"
- },
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": ">=12"
}
},
- "node_modules/@jest/expect-utils": {
- "version": "29.7.0",
+ "node_modules/@esbuild/netbsd-x64": {
+ "version": "0.19.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz",
+ "integrity": "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==",
+ "cpu": [
+ "x64"
+ ],
"dev": true,
- "license": "MIT",
- "dependencies": {
- "jest-get-type": "^29.6.3"
- },
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": ">=12"
}
},
- "node_modules/@jest/fake-timers": {
- "version": "29.7.0",
+ "node_modules/@esbuild/openbsd-x64": {
+ "version": "0.19.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz",
+ "integrity": "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==",
+ "cpu": [
+ "x64"
+ ],
"dev": true,
- "license": "MIT",
- "dependencies": {
- "@jest/types": "^29.6.3",
- "@sinonjs/fake-timers": "^10.0.2",
- "@types/node": "*",
- "jest-message-util": "^29.7.0",
- "jest-mock": "^29.7.0",
- "jest-util": "^29.7.0"
- },
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": ">=12"
}
},
- "node_modules/@jest/globals": {
- "version": "29.7.0",
+ "node_modules/@esbuild/sunos-x64": {
+ "version": "0.19.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz",
+ "integrity": "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==",
+ "cpu": [
+ "x64"
+ ],
"dev": true,
- "license": "MIT",
- "dependencies": {
- "@jest/environment": "^29.7.0",
- "@jest/expect": "^29.7.0",
- "@jest/types": "^29.6.3",
- "jest-mock": "^29.7.0"
- },
+ "optional": true,
+ "os": [
+ "sunos"
+ ],
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": ">=12"
}
},
- "node_modules/@jest/reporters": {
- "version": "29.7.0",
+ "node_modules/@esbuild/win32-arm64": {
+ "version": "0.19.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz",
+ "integrity": "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==",
+ "cpu": [
+ "arm64"
+ ],
"dev": true,
- "license": "MIT",
- "dependencies": {
- "@bcoe/v8-coverage": "^0.2.3",
- "@jest/console": "^29.7.0",
- "@jest/test-result": "^29.7.0",
- "@jest/transform": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@jridgewell/trace-mapping": "^0.3.18",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "collect-v8-coverage": "^1.0.0",
- "exit": "^0.1.2",
- "glob": "^7.1.3",
- "graceful-fs": "^4.2.9",
- "istanbul-lib-coverage": "^3.0.0",
- "istanbul-lib-instrument": "^6.0.0",
- "istanbul-lib-report": "^3.0.0",
- "istanbul-lib-source-maps": "^4.0.0",
- "istanbul-reports": "^3.1.3",
- "jest-message-util": "^29.7.0",
- "jest-util": "^29.7.0",
- "jest-worker": "^29.7.0",
- "slash": "^3.0.0",
- "string-length": "^4.0.1",
- "strip-ansi": "^6.0.0",
- "v8-to-istanbul": "^9.0.1"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- },
- "peerDependencies": {
- "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
- },
- "peerDependenciesMeta": {
- "node-notifier": {
- "optional": true
- }
- }
- },
- "node_modules/@jest/schemas": {
- "version": "29.6.3",
- "license": "MIT",
- "dependencies": {
- "@sinclair/typebox": "^0.27.8"
- },
+ "optional": true,
+ "os": [
+ "win32"
+ ],
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": ">=12"
}
},
- "node_modules/@jest/source-map": {
- "version": "29.6.3",
+ "node_modules/@esbuild/win32-ia32": {
+ "version": "0.19.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz",
+ "integrity": "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==",
+ "cpu": [
+ "ia32"
+ ],
"dev": true,
- "license": "MIT",
- "dependencies": {
- "@jridgewell/trace-mapping": "^0.3.18",
- "callsites": "^3.0.0",
- "graceful-fs": "^4.2.9"
- },
+ "optional": true,
+ "os": [
+ "win32"
+ ],
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": ">=12"
}
},
- "node_modules/@jest/test-result": {
- "version": "29.7.0",
+ "node_modules/@esbuild/win32-x64": {
+ "version": "0.19.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz",
+ "integrity": "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==",
+ "cpu": [
+ "x64"
+ ],
"dev": true,
- "license": "MIT",
- "dependencies": {
- "@jest/console": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/istanbul-lib-coverage": "^2.0.0",
- "collect-v8-coverage": "^1.0.0"
- },
+ "optional": true,
+ "os": [
+ "win32"
+ ],
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": ">=12"
}
},
- "node_modules/@jest/test-sequencer": {
- "version": "29.7.0",
+ "node_modules/@gar/promisify": {
+ "version": "1.1.3",
"dev": true,
- "license": "MIT",
- "dependencies": {
- "@jest/test-result": "^29.7.0",
- "graceful-fs": "^4.2.9",
- "jest-haste-map": "^29.7.0",
- "slash": "^3.0.0"
- },
+ "license": "MIT"
+ },
+ "node_modules/@hapi/hoek": {
+ "version": "9.3.0",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@hapi/topo": {
+ "version": "5.1.0",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@hapi/hoek": "^9.0.0"
+ }
+ },
+ "node_modules/@hutson/parse-repository-url": {
+ "version": "3.0.2",
+ "dev": true,
+ "license": "Apache-2.0",
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": ">=6.9.0"
}
},
- "node_modules/@jest/transform": {
- "version": "29.7.0",
+ "node_modules/@isaacs/cliui": {
+ "version": "8.0.2",
"dev": true,
- "license": "MIT",
+ "license": "ISC",
"dependencies": {
- "@babel/core": "^7.11.6",
- "@jest/types": "^29.6.3",
- "@jridgewell/trace-mapping": "^0.3.18",
- "babel-plugin-istanbul": "^6.1.1",
- "chalk": "^4.0.0",
- "convert-source-map": "^2.0.0",
- "fast-json-stable-stringify": "^2.1.0",
- "graceful-fs": "^4.2.9",
- "jest-haste-map": "^29.7.0",
- "jest-regex-util": "^29.6.3",
- "jest-util": "^29.7.0",
- "micromatch": "^4.0.4",
- "pirates": "^4.0.4",
- "slash": "^3.0.0",
- "write-file-atomic": "^4.0.2"
+ "string-width": "^5.1.2",
+ "string-width-cjs": "npm:string-width@^4.2.0",
+ "strip-ansi": "^7.0.1",
+ "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
+ "wrap-ansi": "^8.1.0",
+ "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": ">=12"
}
},
- "node_modules/@jest/transform/node_modules/write-file-atomic": {
- "version": "4.0.2",
+ "node_modules/@isaacs/cliui/node_modules/ansi-regex": {
+ "version": "6.0.1",
"dev": true,
- "license": "ISC",
- "dependencies": {
- "imurmurhash": "^0.1.4",
- "signal-exit": "^3.0.7"
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
},
+ "funding": {
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+ }
+ },
+ "node_modules/@isaacs/cliui/node_modules/ansi-styles": {
+ "version": "6.2.1",
+ "dev": true,
+ "license": "MIT",
"engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/@jest/types": {
- "version": "29.6.3",
+ "node_modules/@isaacs/cliui/node_modules/emoji-regex": {
+ "version": "9.2.2",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@isaacs/cliui/node_modules/string-width": {
+ "version": "5.1.2",
+ "dev": true,
"license": "MIT",
"dependencies": {
- "@jest/schemas": "^29.6.3",
- "@types/istanbul-lib-coverage": "^2.0.0",
- "@types/istanbul-reports": "^3.0.0",
- "@types/node": "*",
- "@types/yargs": "^17.0.8",
- "chalk": "^4.0.0"
+ "eastasianwidth": "^0.2.0",
+ "emoji-regex": "^9.2.2",
+ "strip-ansi": "^7.0.1"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/@jridgewell/gen-mapping": {
- "version": "0.3.3",
+ "node_modules/@isaacs/cliui/node_modules/strip-ansi": {
+ "version": "7.1.0",
+ "dev": true,
"license": "MIT",
"dependencies": {
- "@jridgewell/set-array": "^1.0.1",
- "@jridgewell/sourcemap-codec": "^1.4.10",
- "@jridgewell/trace-mapping": "^0.3.9"
+ "ansi-regex": "^6.0.1"
},
"engines": {
- "node": ">=6.0.0"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
}
},
- "node_modules/@jridgewell/resolve-uri": {
- "version": "3.1.1",
+ "node_modules/@isaacs/cliui/node_modules/wrap-ansi": {
+ "version": "8.1.0",
+ "dev": true,
"license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^6.1.0",
+ "string-width": "^5.0.1",
+ "strip-ansi": "^7.0.1"
+ },
"engines": {
- "node": ">=6.0.0"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
}
},
- "node_modules/@jridgewell/set-array": {
- "version": "1.1.2",
- "license": "MIT",
+ "node_modules/@istanbuljs/load-nyc-config": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
+ "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==",
+ "dev": true,
+ "dependencies": {
+ "camelcase": "^5.3.1",
+ "find-up": "^4.1.0",
+ "get-package-type": "^0.1.0",
+ "js-yaml": "^3.13.1",
+ "resolve-from": "^5.0.0"
+ },
"engines": {
- "node": ">=6.0.0"
+ "node": ">=8"
}
},
- "node_modules/@jridgewell/source-map": {
- "version": "0.3.5",
- "license": "MIT",
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "dev": true,
"dependencies": {
- "@jridgewell/gen-mapping": "^0.3.0",
- "@jridgewell/trace-mapping": "^0.3.9"
+ "sprintf-js": "~1.0.2"
}
},
- "node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.4.15",
- "license": "MIT"
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": {
+ "version": "3.14.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
+ "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
+ "dev": true,
+ "dependencies": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
},
- "node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.20",
- "license": "MIT",
+ "node_modules/@istanbuljs/schema": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
+ "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@jest/console": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz",
+ "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==",
+ "dev": true,
"dependencies": {
- "@jridgewell/resolve-uri": "^3.1.0",
- "@jridgewell/sourcemap-codec": "^1.4.14"
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "jest-message-util": "^29.7.0",
+ "jest-util": "^29.7.0",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "node_modules/@leichtgewicht/ip-codec": {
- "version": "2.0.4",
- "license": "MIT"
+ "node_modules/@jest/core": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz",
+ "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==",
+ "dev": true,
+ "dependencies": {
+ "@jest/console": "^29.7.0",
+ "@jest/reporters": "^29.7.0",
+ "@jest/test-result": "^29.7.0",
+ "@jest/transform": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "ansi-escapes": "^4.2.1",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "exit": "^0.1.2",
+ "graceful-fs": "^4.2.9",
+ "jest-changed-files": "^29.7.0",
+ "jest-config": "^29.7.0",
+ "jest-haste-map": "^29.7.0",
+ "jest-message-util": "^29.7.0",
+ "jest-regex-util": "^29.6.3",
+ "jest-resolve": "^29.7.0",
+ "jest-resolve-dependencies": "^29.7.0",
+ "jest-runner": "^29.7.0",
+ "jest-runtime": "^29.7.0",
+ "jest-snapshot": "^29.7.0",
+ "jest-util": "^29.7.0",
+ "jest-validate": "^29.7.0",
+ "jest-watcher": "^29.7.0",
+ "micromatch": "^4.0.4",
+ "pretty-format": "^29.7.0",
+ "slash": "^3.0.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ },
+ "peerDependencies": {
+ "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
+ },
+ "peerDependenciesMeta": {
+ "node-notifier": {
+ "optional": true
+ }
+ }
},
- "node_modules/@lerna/child-process": {
- "version": "7.4.2",
+ "node_modules/@jest/environment": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz",
+ "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "chalk": "^4.1.0",
- "execa": "^5.0.0",
- "strong-log-transformer": "^2.1.0"
+ "@jest/fake-timers": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "jest-mock": "^29.7.0"
},
"engines": {
- "node": ">=16.0.0"
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "node_modules/@lerna/create": {
- "version": "7.4.2",
+ "node_modules/@jest/expect": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz",
+ "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==",
"dev": true,
- "license": "MIT",
+ "dependencies": {
+ "expect": "^29.7.0",
+ "jest-snapshot": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/expect-utils": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz",
+ "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==",
+ "dev": true,
+ "dependencies": {
+ "jest-get-type": "^29.6.3"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/fake-timers": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz",
+ "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==",
+ "dev": true,
+ "dependencies": {
+ "@jest/types": "^29.6.3",
+ "@sinonjs/fake-timers": "^10.0.2",
+ "@types/node": "*",
+ "jest-message-util": "^29.7.0",
+ "jest-mock": "^29.7.0",
+ "jest-util": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/globals": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz",
+ "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==",
+ "dev": true,
+ "dependencies": {
+ "@jest/environment": "^29.7.0",
+ "@jest/expect": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "jest-mock": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/reporters": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz",
+ "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==",
+ "dev": true,
+ "dependencies": {
+ "@bcoe/v8-coverage": "^0.2.3",
+ "@jest/console": "^29.7.0",
+ "@jest/test-result": "^29.7.0",
+ "@jest/transform": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "@jridgewell/trace-mapping": "^0.3.18",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "collect-v8-coverage": "^1.0.0",
+ "exit": "^0.1.2",
+ "glob": "^7.1.3",
+ "graceful-fs": "^4.2.9",
+ "istanbul-lib-coverage": "^3.0.0",
+ "istanbul-lib-instrument": "^6.0.0",
+ "istanbul-lib-report": "^3.0.0",
+ "istanbul-lib-source-maps": "^4.0.0",
+ "istanbul-reports": "^3.1.3",
+ "jest-message-util": "^29.7.0",
+ "jest-util": "^29.7.0",
+ "jest-worker": "^29.7.0",
+ "slash": "^3.0.0",
+ "string-length": "^4.0.1",
+ "strip-ansi": "^6.0.0",
+ "v8-to-istanbul": "^9.0.1"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ },
+ "peerDependencies": {
+ "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
+ },
+ "peerDependenciesMeta": {
+ "node-notifier": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@jest/schemas": {
+ "version": "29.6.3",
+ "license": "MIT",
+ "dependencies": {
+ "@sinclair/typebox": "^0.27.8"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/source-map": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz",
+ "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==",
+ "dev": true,
+ "dependencies": {
+ "@jridgewell/trace-mapping": "^0.3.18",
+ "callsites": "^3.0.0",
+ "graceful-fs": "^4.2.9"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/test-result": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz",
+ "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==",
+ "dev": true,
+ "dependencies": {
+ "@jest/console": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "collect-v8-coverage": "^1.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/test-sequencer": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz",
+ "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==",
+ "dev": true,
+ "dependencies": {
+ "@jest/test-result": "^29.7.0",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^29.7.0",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/transform": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz",
+ "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/core": "^7.11.6",
+ "@jest/types": "^29.6.3",
+ "@jridgewell/trace-mapping": "^0.3.18",
+ "babel-plugin-istanbul": "^6.1.1",
+ "chalk": "^4.0.0",
+ "convert-source-map": "^2.0.0",
+ "fast-json-stable-stringify": "^2.1.0",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^29.7.0",
+ "jest-regex-util": "^29.6.3",
+ "jest-util": "^29.7.0",
+ "micromatch": "^4.0.4",
+ "pirates": "^4.0.4",
+ "slash": "^3.0.0",
+ "write-file-atomic": "^4.0.2"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/transform/node_modules/write-file-atomic": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz",
+ "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==",
+ "dev": true,
+ "dependencies": {
+ "imurmurhash": "^0.1.4",
+ "signal-exit": "^3.0.7"
+ },
+ "engines": {
+ "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ }
+ },
+ "node_modules/@jest/types": {
+ "version": "29.6.3",
+ "license": "MIT",
+ "dependencies": {
+ "@jest/schemas": "^29.6.3",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^17.0.8",
+ "chalk": "^4.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jridgewell/gen-mapping": {
+ "version": "0.3.3",
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/set-array": "^1.0.1",
+ "@jridgewell/sourcemap-codec": "^1.4.10",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/resolve-uri": {
+ "version": "3.1.1",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/set-array": {
+ "version": "1.1.2",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/source-map": {
+ "version": "0.3.5",
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.0",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ }
+ },
+ "node_modules/@jridgewell/sourcemap-codec": {
+ "version": "1.4.15",
+ "license": "MIT"
+ },
+ "node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.20",
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/resolve-uri": "^3.1.0",
+ "@jridgewell/sourcemap-codec": "^1.4.14"
+ }
+ },
+ "node_modules/@leichtgewicht/ip-codec": {
+ "version": "2.0.4",
+ "license": "MIT"
+ },
+ "node_modules/@lerna/child-process": {
+ "version": "7.4.2",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "chalk": "^4.1.0",
+ "execa": "^5.0.0",
+ "strong-log-transformer": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=16.0.0"
+ }
+ },
+ "node_modules/@lerna/create": {
+ "version": "7.4.2",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
"@lerna/child-process": "7.4.2",
"@npmcli/run-script": "6.0.2",
@@ -3368,8 +3717,7 @@
},
"node_modules/@mdx-js/mdx": {
"version": "1.6.22",
- "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-1.6.22.tgz",
- "integrity": "sha512-AMxuLxPz2j5/6TpF/XSdKpQP1NlG0z11dFOlq+2IP/lSgl11GY8ji6S/rgsViN/L0BDvHvUMruRb7ub+24LUYA==",
+ "license": "MIT",
"dependencies": {
"@babel/core": "7.12.9",
"@babel/plugin-syntax-jsx": "7.12.1",
@@ -3398,8 +3746,7 @@
},
"node_modules/@mdx-js/mdx/node_modules/@babel/core": {
"version": "7.12.9",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz",
- "integrity": "sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==",
+ "license": "MIT",
"dependencies": {
"@babel/code-frame": "^7.10.4",
"@babel/generator": "^7.12.5",
@@ -3428,8 +3775,7 @@
},
"node_modules/@mdx-js/mdx/node_modules/@babel/plugin-syntax-jsx": {
"version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz",
- "integrity": "sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.10.4"
},
@@ -3439,13 +3785,10 @@
},
"node_modules/@mdx-js/mdx/node_modules/convert-source-map": {
"version": "1.9.0",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz",
- "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A=="
+ "license": "MIT"
},
"node_modules/@mdx-js/mdx/node_modules/is-buffer": {
"version": "2.0.5",
- "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz",
- "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==",
"funding": [
{
"type": "github",
@@ -3460,38 +3803,35 @@
"url": "https://feross.org/support"
}
],
+ "license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/@mdx-js/mdx/node_modules/is-plain-obj": {
"version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
- "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/@mdx-js/mdx/node_modules/semver": {
"version": "5.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
- "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "license": "ISC",
"bin": {
"semver": "bin/semver"
}
},
"node_modules/@mdx-js/mdx/node_modules/source-map": {
"version": "0.5.7",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
- "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
+ "license": "BSD-3-Clause",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/@mdx-js/mdx/node_modules/unified": {
"version": "9.2.0",
- "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz",
- "integrity": "sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==",
+ "license": "MIT",
"dependencies": {
"bail": "^1.0.0",
"extend": "^3.0.0",
@@ -3507,8 +3847,7 @@
},
"node_modules/@mdx-js/react": {
"version": "1.6.22",
- "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-1.6.22.tgz",
- "integrity": "sha512-TDoPum4SHdfPiGSAaRBw7ECyI8VaHpK8GJugbJIJuqyh6kzw9ZLJZW3HGL3NNrJGxcAixUvqROm+YuQOo5eXtg==",
+ "license": "MIT",
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
@@ -3519,22 +3858,21 @@
},
"node_modules/@mdx-js/util": {
"version": "1.6.22",
- "resolved": "https://registry.npmjs.org/@mdx-js/util/-/util-1.6.22.tgz",
- "integrity": "sha512-H1rQc1ZOHANWBvPcW+JpGwr+juXSxM8Q8YCkm3GhZd8REu1fHR3z99CErO1p9pkcfcxZnMdIZdIsXkOHY0NilA==",
+ "license": "MIT",
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
"node_modules/@microsoft/api-extractor": {
- "version": "7.38.3",
+ "version": "7.39.0",
"dev": true,
"license": "MIT",
"dependencies": {
- "@microsoft/api-extractor-model": "7.28.2",
+ "@microsoft/api-extractor-model": "7.28.3",
"@microsoft/tsdoc": "0.14.2",
"@microsoft/tsdoc-config": "~0.16.1",
- "@rushstack/node-core-library": "3.61.0",
+ "@rushstack/node-core-library": "3.62.0",
"@rushstack/rig-package": "0.5.1",
"@rushstack/ts-command-line": "4.17.1",
"colors": "~1.2.1",
@@ -3542,32 +3880,20 @@
"resolve": "~1.22.1",
"semver": "~7.5.4",
"source-map": "~0.6.1",
- "typescript": "~5.0.4"
+ "typescript": "5.3.3"
},
"bin": {
"api-extractor": "bin/api-extractor"
}
},
"node_modules/@microsoft/api-extractor-model": {
- "version": "7.28.2",
+ "version": "7.28.3",
"dev": true,
"license": "MIT",
"dependencies": {
"@microsoft/tsdoc": "0.14.2",
"@microsoft/tsdoc-config": "~0.16.1",
- "@rushstack/node-core-library": "3.61.0"
- }
- },
- "node_modules/@microsoft/api-extractor/node_modules/typescript": {
- "version": "5.0.4",
- "dev": true,
- "license": "Apache-2.0",
- "bin": {
- "tsc": "bin/tsc",
- "tsserver": "bin/tsserver"
- },
- "engines": {
- "node": ">=12.20"
+ "@rushstack/node-core-library": "3.62.0"
}
},
"node_modules/@microsoft/tsdoc": {
@@ -4032,128 +4358,16 @@
"version": "1.0.0-next.23",
"license": "MIT"
},
- "node_modules/@pufflig/ps-chains": {
- "resolved": "packages/@pufflig/ps-chains",
- "link": true
- },
"node_modules/@pufflig/ps-models": {
"resolved": "packages/@pufflig/ps-models",
"link": true
},
- "node_modules/@pufflig/ps-nodes": {
- "resolved": "packages/@pufflig/ps-nodes",
- "link": true
- },
- "node_modules/@pufflig/ps-nodes-config": {
- "resolved": "packages/@pufflig/ps-nodes-config",
- "link": true
- },
"node_modules/@pufflig/ps-sdk": {
"resolved": "packages/@pufflig/ps-sdk",
"link": true
},
- "node_modules/@pufflig/ps-types": {
- "resolved": "packages/@pufflig/ps-types",
- "link": true
- },
- "node_modules/@reactflow/background": {
- "version": "11.3.6",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@reactflow/core": "11.10.1",
- "classcat": "^5.0.3",
- "zustand": "^4.4.1"
- },
- "peerDependencies": {
- "react": ">=17",
- "react-dom": ">=17"
- }
- },
- "node_modules/@reactflow/controls": {
- "version": "11.2.6",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@reactflow/core": "11.10.1",
- "classcat": "^5.0.3",
- "zustand": "^4.4.1"
- },
- "peerDependencies": {
- "react": ">=17",
- "react-dom": ">=17"
- }
- },
- "node_modules/@reactflow/core": {
- "version": "11.10.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/d3": "^7.4.0",
- "@types/d3-drag": "^3.0.1",
- "@types/d3-selection": "^3.0.3",
- "@types/d3-zoom": "^3.0.1",
- "classcat": "^5.0.3",
- "d3-drag": "^3.0.0",
- "d3-selection": "^3.0.0",
- "d3-zoom": "^3.0.0",
- "zustand": "^4.4.1"
- },
- "peerDependencies": {
- "react": ">=17",
- "react-dom": ">=17"
- }
- },
- "node_modules/@reactflow/minimap": {
- "version": "11.7.6",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@reactflow/core": "11.10.1",
- "@types/d3-selection": "^3.0.3",
- "@types/d3-zoom": "^3.0.1",
- "classcat": "^5.0.3",
- "d3-selection": "^3.0.0",
- "d3-zoom": "^3.0.0",
- "zustand": "^4.4.1"
- },
- "peerDependencies": {
- "react": ">=17",
- "react-dom": ">=17"
- }
- },
- "node_modules/@reactflow/node-resizer": {
- "version": "2.2.6",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@reactflow/core": "11.10.1",
- "classcat": "^5.0.4",
- "d3-drag": "^3.0.0",
- "d3-selection": "^3.0.0",
- "zustand": "^4.4.1"
- },
- "peerDependencies": {
- "react": ">=17",
- "react-dom": ">=17"
- }
- },
- "node_modules/@reactflow/node-toolbar": {
- "version": "1.3.6",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@reactflow/core": "11.10.1",
- "classcat": "^5.0.3",
- "zustand": "^4.4.1"
- },
- "peerDependencies": {
- "react": ">=17",
- "react-dom": ">=17"
- }
- },
"node_modules/@rollup/pluginutils": {
- "version": "5.0.5",
+ "version": "5.1.0",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4173,10 +4387,114 @@
}
}
},
+ "node_modules/@rollup/rollup-android-arm-eabi": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.12.0.tgz",
+ "integrity": "sha512-+ac02NL/2TCKRrJu2wffk1kZ+RyqxVUlbjSagNgPm94frxtr+XDL12E5Ll1enWskLrtrZ2r8L3wED1orIibV/w==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@rollup/rollup-android-arm64": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.12.0.tgz",
+ "integrity": "sha512-OBqcX2BMe6nvjQ0Nyp7cC90cnumt8PXmO7Dp3gfAju/6YwG0Tj74z1vKrfRz7qAv23nBcYM8BCbhrsWqO7PzQQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@rollup/rollup-darwin-arm64": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.12.0.tgz",
+ "integrity": "sha512-X64tZd8dRE/QTrBIEs63kaOBG0b5GVEd3ccoLtyf6IdXtHdh8h+I56C2yC3PtC9Ucnv0CpNFJLqKFVgCYe0lOQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@rollup/rollup-darwin-x64": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.12.0.tgz",
+ "integrity": "sha512-cc71KUZoVbUJmGP2cOuiZ9HSOP14AzBAThn3OU+9LcA1+IUqswJyR1cAJj3Mg55HbjZP6OLAIscbQsQLrpgTOg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.12.0.tgz",
+ "integrity": "sha512-a6w/Y3hyyO6GlpKL2xJ4IOh/7d+APaqLYdMf86xnczU3nurFTaVN9s9jOXQg97BE4nYm/7Ga51rjec5nfRdrvA==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm64-gnu": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.12.0.tgz",
+ "integrity": "sha512-0fZBq27b+D7Ar5CQMofVN8sggOVhEtzFUwOwPppQt0k+VR+7UHMZZY4y+64WJ06XOhBTKXtQB/Sv0NwQMXyNAA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm64-musl": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.12.0.tgz",
+ "integrity": "sha512-eTvzUS3hhhlgeAv6bfigekzWZjaEX9xP9HhxB0Dvrdbkk5w/b+1Sxct2ZuDxNJKzsRStSq1EaEkVSEe7A7ipgQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-riscv64-gnu": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.12.0.tgz",
+ "integrity": "sha512-ix+qAB9qmrCRiaO71VFfY8rkiAZJL8zQRXveS27HS+pKdjwUfEhqo2+YF2oI+H/22Xsiski+qqwIBxVewLK7sw==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
"node_modules/@rollup/rollup-linux-x64-gnu": {
- "version": "4.6.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.6.1.tgz",
- "integrity": "sha512-DNGZvZDO5YF7jN5fX8ZqmGLjZEXIJRdJEdTFMhiyXqyXubBa0WVLDWSNlQ5JR2PNgDbEV1VQowhVRUh+74D+RA==",
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.12.0.tgz",
+ "integrity": "sha512-TenQhZVOtw/3qKOPa7d+QgkeM6xY0LtwzR8OplmyL5LrgTWIXpTQg2Q2ycBf8jm+SFW2Wt/DTn1gf7nFp3ssVA==",
"cpu": [
"x64"
],
@@ -4187,9 +4505,9 @@
]
},
"node_modules/@rollup/rollup-linux-x64-musl": {
- "version": "4.6.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.6.1.tgz",
- "integrity": "sha512-RkJVNVRM+piYy87HrKmhbexCHg3A6Z6MU0W9GHnJwBQNBeyhCJG9KDce4SAMdicQnpURggSvtbGo9xAWOfSvIQ==",
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.12.0.tgz",
+ "integrity": "sha512-LfFdRhNnW0zdMvdCb5FNuWlls2WbbSridJvxOvYWgSBOYZtgBfW9UGNJG//rwMqTX1xQE9BAodvMH9tAusKDUw==",
"cpu": [
"x64"
],
@@ -4199,8 +4517,47 @@
"linux"
]
},
+ "node_modules/@rollup/rollup-win32-arm64-msvc": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.12.0.tgz",
+ "integrity": "sha512-JPDxovheWNp6d7AHCgsUlkuCKvtu3RB55iNEkaQcf0ttsDU/JZF+iQnYcQJSk/7PtT4mjjVG8N1kpwnI9SLYaw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-ia32-msvc": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.12.0.tgz",
+ "integrity": "sha512-fjtuvMWRGJn1oZacG8IPnzIV6GF2/XG+h71FKn76OYFqySXInJtseAqdprVTDTyqPxQOG9Exak5/E9Z3+EJ8ZA==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-x64-msvc": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.12.0.tgz",
+ "integrity": "sha512-ZYmr5mS2wd4Dew/JjT0Fqi2NPB/ZhZ2VvPp7SmvPZb4Y1CG/LRcS6tcRo2cYU7zLK5A7cdbhWnnWmUjoI4qapg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
"node_modules/@rushstack/node-core-library": {
- "version": "3.61.0",
+ "version": "3.62.0",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4560,24 +4917,25 @@
},
"node_modules/@sindresorhus/is": {
"version": "0.14.0",
- "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz",
- "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==",
+ "license": "MIT",
"engines": {
"node": ">=6"
}
},
"node_modules/@sinonjs/commons": {
- "version": "3.0.0",
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz",
+ "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==",
"dev": true,
- "license": "BSD-3-Clause",
"dependencies": {
"type-detect": "4.0.8"
}
},
"node_modules/@sinonjs/fake-timers": {
"version": "10.3.0",
+ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz",
+ "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==",
"dev": true,
- "license": "BSD-3-Clause",
"dependencies": {
"@sinonjs/commons": "^3.0.0"
}
@@ -4863,8 +5221,7 @@
},
"node_modules/@szmarczak/http-timer": {
"version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz",
- "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==",
+ "license": "MIT",
"dependencies": {
"defer-to-connect": "^1.0.1"
},
@@ -4887,53 +5244,6 @@
"node": ">=10.13.0"
}
},
- "node_modules/@ts-morph/common": {
- "version": "0.19.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "fast-glob": "^3.2.12",
- "minimatch": "^7.4.3",
- "mkdirp": "^2.1.6",
- "path-browserify": "^1.0.1"
- }
- },
- "node_modules/@ts-morph/common/node_modules/brace-expansion": {
- "version": "2.0.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
- "node_modules/@ts-morph/common/node_modules/minimatch": {
- "version": "7.4.6",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/@ts-morph/common/node_modules/mkdirp": {
- "version": "2.1.6",
- "dev": true,
- "license": "MIT",
- "bin": {
- "mkdirp": "dist/cjs/src/bin.js"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
"node_modules/@tufjs/canonical-json": {
"version": "1.0.0",
"dev": true,
@@ -4982,9 +5292,10 @@
"license": "MIT"
},
"node_modules/@types/babel__core": {
- "version": "7.20.4",
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz",
+ "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/parser": "^7.20.7",
"@babel/types": "^7.20.7",
@@ -4994,26 +5305,29 @@
}
},
"node_modules/@types/babel__generator": {
- "version": "7.6.7",
+ "version": "7.6.8",
+ "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz",
+ "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/types": "^7.0.0"
}
},
"node_modules/@types/babel__template": {
"version": "7.4.4",
+ "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz",
+ "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/parser": "^7.1.0",
"@babel/types": "^7.0.0"
}
},
"node_modules/@types/babel__traverse": {
- "version": "7.20.4",
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.5.tgz",
+ "integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/types": "^7.20.7"
}
@@ -5048,291 +5362,64 @@
"@types/node": "*"
}
},
- "node_modules/@types/d3": {
- "version": "7.4.3",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/d3-array": "*",
- "@types/d3-axis": "*",
- "@types/d3-brush": "*",
- "@types/d3-chord": "*",
- "@types/d3-color": "*",
- "@types/d3-contour": "*",
- "@types/d3-delaunay": "*",
- "@types/d3-dispatch": "*",
- "@types/d3-drag": "*",
- "@types/d3-dsv": "*",
- "@types/d3-ease": "*",
- "@types/d3-fetch": "*",
- "@types/d3-force": "*",
- "@types/d3-format": "*",
- "@types/d3-geo": "*",
- "@types/d3-hierarchy": "*",
- "@types/d3-interpolate": "*",
- "@types/d3-path": "*",
- "@types/d3-polygon": "*",
- "@types/d3-quadtree": "*",
- "@types/d3-random": "*",
- "@types/d3-scale": "*",
- "@types/d3-scale-chromatic": "*",
- "@types/d3-selection": "*",
- "@types/d3-shape": "*",
- "@types/d3-time": "*",
- "@types/d3-time-format": "*",
- "@types/d3-timer": "*",
- "@types/d3-transition": "*",
- "@types/d3-zoom": "*"
- }
- },
- "node_modules/@types/d3-array": {
- "version": "3.2.1",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@types/d3-axis": {
- "version": "3.0.6",
- "dev": true,
+ "node_modules/@types/eslint": {
+ "version": "8.44.7",
"license": "MIT",
"dependencies": {
- "@types/d3-selection": "*"
+ "@types/estree": "*",
+ "@types/json-schema": "*"
}
},
- "node_modules/@types/d3-brush": {
- "version": "3.0.6",
- "dev": true,
+ "node_modules/@types/eslint-scope": {
+ "version": "3.7.7",
"license": "MIT",
"dependencies": {
- "@types/d3-selection": "*"
+ "@types/eslint": "*",
+ "@types/estree": "*"
}
},
- "node_modules/@types/d3-chord": {
- "version": "3.0.6",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@types/d3-color": {
- "version": "3.1.3",
- "dev": true,
+ "node_modules/@types/estree": {
+ "version": "1.0.5",
"license": "MIT"
},
- "node_modules/@types/d3-contour": {
- "version": "3.0.6",
- "dev": true,
+ "node_modules/@types/express": {
+ "version": "4.17.21",
"license": "MIT",
"dependencies": {
- "@types/d3-array": "*",
- "@types/geojson": "*"
+ "@types/body-parser": "*",
+ "@types/express-serve-static-core": "^4.17.33",
+ "@types/qs": "*",
+ "@types/serve-static": "*"
}
},
- "node_modules/@types/d3-delaunay": {
- "version": "6.0.4",
- "dev": true,
- "license": "MIT"
+ "node_modules/@types/express-serve-static-core": {
+ "version": "4.17.41",
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*",
+ "@types/qs": "*",
+ "@types/range-parser": "*",
+ "@types/send": "*"
+ }
},
- "node_modules/@types/d3-dispatch": {
- "version": "3.0.6",
+ "node_modules/@types/graceful-fs": {
+ "version": "4.1.9",
+ "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz",
+ "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==",
"dev": true,
- "license": "MIT"
+ "dependencies": {
+ "@types/node": "*"
+ }
},
- "node_modules/@types/d3-drag": {
- "version": "3.0.7",
- "dev": true,
+ "node_modules/@types/hast": {
+ "version": "2.3.8",
"license": "MIT",
"dependencies": {
- "@types/d3-selection": "*"
+ "@types/unist": "^2"
}
},
- "node_modules/@types/d3-dsv": {
- "version": "3.0.7",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@types/d3-ease": {
- "version": "3.0.2",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@types/d3-fetch": {
- "version": "3.0.7",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/d3-dsv": "*"
- }
- },
- "node_modules/@types/d3-force": {
- "version": "3.0.9",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@types/d3-format": {
- "version": "3.0.4",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@types/d3-geo": {
- "version": "3.1.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/geojson": "*"
- }
- },
- "node_modules/@types/d3-hierarchy": {
- "version": "3.1.6",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@types/d3-interpolate": {
- "version": "3.0.4",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/d3-color": "*"
- }
- },
- "node_modules/@types/d3-path": {
- "version": "3.0.2",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@types/d3-polygon": {
- "version": "3.0.2",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@types/d3-quadtree": {
- "version": "3.0.5",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@types/d3-random": {
- "version": "3.0.3",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@types/d3-scale": {
- "version": "4.0.8",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/d3-time": "*"
- }
- },
- "node_modules/@types/d3-scale-chromatic": {
- "version": "3.0.2",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@types/d3-selection": {
- "version": "3.0.10",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@types/d3-shape": {
- "version": "3.1.5",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/d3-path": "*"
- }
- },
- "node_modules/@types/d3-time": {
- "version": "3.0.3",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@types/d3-time-format": {
- "version": "4.0.3",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@types/d3-timer": {
- "version": "3.0.2",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@types/d3-transition": {
- "version": "3.0.8",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/d3-selection": "*"
- }
- },
- "node_modules/@types/d3-zoom": {
- "version": "3.0.8",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/d3-interpolate": "*",
- "@types/d3-selection": "*"
- }
- },
- "node_modules/@types/eslint": {
- "version": "8.44.7",
- "license": "MIT",
- "dependencies": {
- "@types/estree": "*",
- "@types/json-schema": "*"
- }
- },
- "node_modules/@types/eslint-scope": {
- "version": "3.7.7",
- "license": "MIT",
- "dependencies": {
- "@types/eslint": "*",
- "@types/estree": "*"
- }
- },
- "node_modules/@types/estree": {
- "version": "1.0.5",
- "license": "MIT"
- },
- "node_modules/@types/express": {
- "version": "4.17.21",
- "license": "MIT",
- "dependencies": {
- "@types/body-parser": "*",
- "@types/express-serve-static-core": "^4.17.33",
- "@types/qs": "*",
- "@types/serve-static": "*"
- }
- },
- "node_modules/@types/express-serve-static-core": {
- "version": "4.17.41",
- "license": "MIT",
- "dependencies": {
- "@types/node": "*",
- "@types/qs": "*",
- "@types/range-parser": "*",
- "@types/send": "*"
- }
- },
- "node_modules/@types/geojson": {
- "version": "7946.0.13",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@types/graceful-fs": {
- "version": "4.1.9",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/hast": {
- "version": "2.3.8",
- "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.8.tgz",
- "integrity": "sha512-aMIqAlFd2wTIDZuvLbhUT+TGvMxrNC8ECUIVtH6xxy0sQLs3iu6NO8Kp/VT5je7i5ufnebXzdV1dNDMnvaH6IQ==",
- "dependencies": {
- "@types/unist": "^2"
- }
- },
- "node_modules/@types/history": {
- "version": "4.7.11",
+ "node_modules/@types/history": {
+ "version": "4.7.11",
"license": "MIT"
},
"node_modules/@types/html-minifier-terser": {
@@ -5369,9 +5456,10 @@
}
},
"node_modules/@types/jest": {
- "version": "29.5.8",
+ "version": "29.5.12",
+ "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.12.tgz",
+ "integrity": "sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"expect": "^29.0.0",
"pretty-format": "^29.0.0"
@@ -5383,20 +5471,13 @@
},
"node_modules/@types/linkify-it": {
"version": "3.0.5",
- "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.5.tgz",
- "integrity": "sha512-yg6E+u0/+Zjva+buc3EIb+29XEg4wltq7cSmd4Uc2EE/1nUVmxyzpX6gUXD0V8jIrG0r7YeOGVIbYRkxeooCtw==",
- "dev": true
- },
- "node_modules/@types/lodash": {
- "version": "4.14.201",
"dev": true,
"license": "MIT"
},
"node_modules/@types/markdown-it": {
"version": "13.0.7",
- "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-13.0.7.tgz",
- "integrity": "sha512-U/CBi2YUUcTHBt5tjO2r5QV/x0Po6nsYwQU4Y04fBS6vfoImaiZ6f8bi3CjTCxBPQSO1LMyUqkByzi8AidyxfA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/linkify-it": "*",
"@types/mdurl": "*"
@@ -5404,17 +5485,15 @@
},
"node_modules/@types/mdast": {
"version": "3.0.15",
- "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.15.tgz",
- "integrity": "sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==",
+ "license": "MIT",
"dependencies": {
"@types/unist": "^2"
}
},
"node_modules/@types/mdurl": {
"version": "1.0.5",
- "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.5.tgz",
- "integrity": "sha512-6L6VymKTzYSrEf4Nev4Xa1LCHKrlTlYCBMTlQKFuddo1CvQcE52I0mwfOJayueUC7MJuXOeHTcIU683lzd0cUA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/mime": {
"version": "1.3.5",
@@ -5430,11 +5509,6 @@
"dev": true,
"license": "MIT"
},
- "node_modules/@types/mustache": {
- "version": "4.2.5",
- "dev": true,
- "license": "MIT"
- },
"node_modules/@types/node": {
"version": "20.9.2",
"license": "MIT",
@@ -5442,14 +5516,6 @@
"undici-types": "~5.26.4"
}
},
- "node_modules/@types/node-fetch": {
- "version": "2.6.9",
- "license": "MIT",
- "dependencies": {
- "@types/node": "*",
- "form-data": "^4.0.0"
- }
- },
"node_modules/@types/node-forge": {
"version": "1.3.9",
"license": "MIT",
@@ -5468,8 +5534,7 @@
},
"node_modules/@types/parse5": {
"version": "5.0.3",
- "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-5.0.3.tgz",
- "integrity": "sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw=="
+ "license": "MIT"
},
"node_modules/@types/prop-types": {
"version": "15.7.10",
@@ -5492,14 +5557,6 @@
"csstype": "^3.0.2"
}
},
- "node_modules/@types/react-dom": {
- "version": "18.2.15",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/react": "*"
- }
- },
"node_modules/@types/react-router": {
"version": "5.1.20",
"license": "MIT",
@@ -5574,17 +5631,14 @@
},
"node_modules/@types/stack-utils": {
"version": "2.0.3",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz",
+ "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==",
+ "dev": true
},
"node_modules/@types/unist": {
"version": "2.0.10",
"license": "MIT"
},
- "node_modules/@types/uuid": {
- "version": "9.0.7",
- "license": "MIT"
- },
"node_modules/@types/web-bluetooth": {
"version": "0.0.20",
"dev": true,
@@ -5610,9 +5664,8 @@
},
"node_modules/@ungap/structured-clone": {
"version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
- "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
"node_modules/@vitejs/plugin-vue": {
"version": "4.5.0",
@@ -5627,15 +5680,15 @@
}
},
"node_modules/@volar/language-core": {
- "version": "1.10.10",
+ "version": "1.11.1",
"dev": true,
"license": "MIT",
"dependencies": {
- "@volar/source-map": "1.10.10"
+ "@volar/source-map": "1.11.1"
}
},
"node_modules/@volar/source-map": {
- "version": "1.10.10",
+ "version": "1.11.1",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5643,11 +5696,11 @@
}
},
"node_modules/@volar/typescript": {
- "version": "1.10.10",
+ "version": "1.11.1",
"dev": true,
"license": "MIT",
"dependencies": {
- "@volar/language-core": "1.10.10",
+ "@volar/language-core": "1.11.1",
"path-browserify": "^1.0.1"
}
},
@@ -5714,17 +5767,18 @@
"license": "MIT"
},
"node_modules/@vue/language-core": {
- "version": "1.8.22",
+ "version": "1.8.27",
"dev": true,
"license": "MIT",
"dependencies": {
- "@volar/language-core": "~1.10.5",
- "@volar/source-map": "~1.10.5",
+ "@volar/language-core": "~1.11.1",
+ "@volar/source-map": "~1.11.1",
"@vue/compiler-dom": "^3.3.0",
"@vue/shared": "^3.3.0",
"computeds": "^0.0.1",
"minimatch": "^9.0.3",
"muggle-string": "^0.3.1",
+ "path-browserify": "^1.0.1",
"vue-template-compiler": "^2.7.14"
},
"peerDependencies": {
@@ -6245,6 +6299,7 @@
},
"node_modules/agentkeepalive": {
"version": "4.5.0",
+ "dev": true,
"license": "MIT",
"dependencies": {
"humanize-ms": "^1.2.1"
@@ -6538,18 +6593,19 @@
}
},
"node_modules/axios": {
- "version": "1.6.2",
+ "version": "1.6.7",
"license": "MIT",
"dependencies": {
- "follow-redirects": "^1.15.0",
+ "follow-redirects": "^1.15.4",
"form-data": "^4.0.0",
"proxy-from-env": "^1.1.0"
}
},
"node_modules/babel-jest": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz",
+ "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@jest/transform": "^29.7.0",
"@types/babel__core": "^7.1.14",
@@ -6568,8 +6624,7 @@
},
"node_modules/babel-loader": {
"version": "8.3.0",
- "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz",
- "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==",
+ "license": "MIT",
"dependencies": {
"find-cache-dir": "^3.3.1",
"loader-utils": "^2.0.0",
@@ -6586,8 +6641,7 @@
},
"node_modules/babel-loader/node_modules/make-dir": {
"version": "3.1.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
- "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
+ "license": "MIT",
"dependencies": {
"semver": "^6.0.0"
},
@@ -6600,16 +6654,14 @@
},
"node_modules/babel-loader/node_modules/semver": {
"version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "license": "ISC",
"bin": {
"semver": "bin/semver.js"
}
},
"node_modules/babel-plugin-apply-mdx-type-prop": {
"version": "1.6.22",
- "resolved": "https://registry.npmjs.org/babel-plugin-apply-mdx-type-prop/-/babel-plugin-apply-mdx-type-prop-1.6.22.tgz",
- "integrity": "sha512-VefL+8o+F/DfK24lPZMtJctrCVOfgbqLAGZSkxwhazQv4VxPg3Za/i40fu22KR2m8eEda+IfSOlPLUSIiLcnCQ==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "7.10.4",
"@mdx-js/util": "1.6.22"
@@ -6624,8 +6676,7 @@
},
"node_modules/babel-plugin-apply-mdx-type-prop/node_modules/@babel/helper-plugin-utils": {
"version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz",
- "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg=="
+ "license": "MIT"
},
"node_modules/babel-plugin-dynamic-import-node": {
"version": "2.3.3",
@@ -6636,8 +6687,7 @@
},
"node_modules/babel-plugin-extract-import-names": {
"version": "1.6.22",
- "resolved": "https://registry.npmjs.org/babel-plugin-extract-import-names/-/babel-plugin-extract-import-names-1.6.22.tgz",
- "integrity": "sha512-yJ9BsJaISua7d8zNT7oRG1ZLBJCIdZ4PZqmH8qa9N5AK01ifk3fnkc98AXhtzE7UkfCsEumvoQWgoYLhOnJ7jQ==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "7.10.4"
},
@@ -6648,13 +6698,13 @@
},
"node_modules/babel-plugin-extract-import-names/node_modules/@babel/helper-plugin-utils": {
"version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz",
- "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg=="
+ "license": "MIT"
},
"node_modules/babel-plugin-istanbul": {
"version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz",
+ "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==",
"dev": true,
- "license": "BSD-3-Clause",
"dependencies": {
"@babel/helper-plugin-utils": "^7.0.0",
"@istanbuljs/load-nyc-config": "^1.0.0",
@@ -6668,8 +6718,9 @@
},
"node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": {
"version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz",
+ "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==",
"dev": true,
- "license": "BSD-3-Clause",
"dependencies": {
"@babel/core": "^7.12.3",
"@babel/parser": "^7.14.7",
@@ -6683,16 +6734,18 @@
},
"node_modules/babel-plugin-istanbul/node_modules/semver": {
"version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true,
- "license": "ISC",
"bin": {
"semver": "bin/semver.js"
}
},
"node_modules/babel-plugin-jest-hoist": {
"version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz",
+ "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/template": "^7.3.3",
"@babel/types": "^7.3.3",
@@ -6745,8 +6798,9 @@
},
"node_modules/babel-preset-current-node-syntax": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz",
+ "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/plugin-syntax-async-generators": "^7.8.4",
"@babel/plugin-syntax-bigint": "^7.8.3",
@@ -6767,8 +6821,9 @@
},
"node_modules/babel-preset-jest": {
"version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz",
+ "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"babel-plugin-jest-hoist": "^29.6.3",
"babel-preset-current-node-syntax": "^1.0.0"
@@ -6782,8 +6837,7 @@
},
"node_modules/bail": {
"version": "1.0.5",
- "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz",
- "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==",
+ "license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
@@ -6793,9 +6847,6 @@
"version": "1.0.2",
"license": "MIT"
},
- "node_modules/base-64": {
- "version": "0.1.0"
- },
"node_modules/base16": {
"version": "1.0.0",
"license": "MIT"
@@ -6841,10 +6892,6 @@
"node": ">=8"
}
},
- "node_modules/binary-search": {
- "version": "1.3.6",
- "license": "CC0-1.0"
- },
"node_modules/bl": {
"version": "4.1.0",
"dev": true,
@@ -7049,7 +7096,9 @@
}
},
"node_modules/browserslist": {
- "version": "4.22.1",
+ "version": "4.23.0",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz",
+ "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==",
"funding": [
{
"type": "opencollective",
@@ -7064,11 +7113,10 @@
"url": "https://github.com/sponsors/ai"
}
],
- "license": "MIT",
"dependencies": {
- "caniuse-lite": "^1.0.30001541",
- "electron-to-chromium": "^1.4.535",
- "node-releases": "^2.0.13",
+ "caniuse-lite": "^1.0.30001587",
+ "electron-to-chromium": "^1.4.668",
+ "node-releases": "^2.0.14",
"update-browserslist-db": "^1.0.13"
},
"bin": {
@@ -7078,21 +7126,11 @@
"node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
}
},
- "node_modules/bs-logger": {
- "version": "0.2.6",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "fast-json-stable-stringify": "2.x"
- },
- "engines": {
- "node": ">= 6"
- }
- },
"node_modules/bser": {
"version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz",
+ "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==",
"dev": true,
- "license": "Apache-2.0",
"dependencies": {
"node-int64": "^0.4.0"
}
@@ -7275,8 +7313,7 @@
},
"node_modules/cacheable-request": {
"version": "6.1.0",
- "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz",
- "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==",
+ "license": "MIT",
"dependencies": {
"clone-response": "^1.0.2",
"get-stream": "^5.1.0",
@@ -7292,8 +7329,7 @@
},
"node_modules/cacheable-request/node_modules/get-stream": {
"version": "5.2.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
- "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
+ "license": "MIT",
"dependencies": {
"pump": "^3.0.0"
},
@@ -7306,16 +7342,14 @@
},
"node_modules/cacheable-request/node_modules/lowercase-keys": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
- "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==",
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/cacheable-request/node_modules/normalize-url": {
"version": "4.5.1",
- "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz",
- "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==",
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -7357,8 +7391,7 @@
},
"node_modules/camelcase-css": {
"version": "2.0.1",
- "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
- "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==",
+ "license": "MIT",
"engines": {
"node": ">= 6"
}
@@ -7390,7 +7423,9 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001563",
+ "version": "1.0.30001589",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001589.tgz",
+ "integrity": "sha512-vNQWS6kI+q6sBlHbh71IIeC+sRwK2N3EDySc/updIGhIee2x5z00J4c1242/5/d6EpEMdOnk/m+6tuk4/tcsqg==",
"funding": [
{
"type": "opencollective",
@@ -7404,13 +7439,11 @@
"type": "github",
"url": "https://github.com/sponsors/ai"
}
- ],
- "license": "CC-BY-4.0"
+ ]
},
"node_modules/ccount": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.1.0.tgz",
- "integrity": "sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==",
+ "license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
@@ -7432,16 +7465,16 @@
},
"node_modules/char-regex": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz",
+ "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=10"
}
},
"node_modules/character-entities": {
"version": "1.2.4",
- "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz",
- "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==",
+ "license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
@@ -7449,9 +7482,8 @@
},
"node_modules/character-entities-html4": {
"version": "2.1.0",
- "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz",
- "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==",
"dev": true,
+ "license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
@@ -7459,8 +7491,7 @@
},
"node_modules/character-entities-legacy": {
"version": "1.1.4",
- "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz",
- "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==",
+ "license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
@@ -7468,8 +7499,7 @@
},
"node_modules/character-reference-invalid": {
"version": "1.1.4",
- "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz",
- "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==",
+ "license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
@@ -7480,13 +7510,6 @@
"dev": true,
"license": "MIT"
},
- "node_modules/charenc": {
- "version": "0.0.2",
- "license": "BSD-3-Clause",
- "engines": {
- "node": "*"
- }
- },
"node_modules/cheerio": {
"version": "1.0.0-rc.12",
"license": "MIT",
@@ -7576,13 +7599,9 @@
},
"node_modules/cjs-module-lexer": {
"version": "1.2.3",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/classcat": {
- "version": "5.0.4",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz",
+ "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==",
+ "dev": true
},
"node_modules/clean-css": {
"version": "5.3.2",
@@ -7715,8 +7734,7 @@
},
"node_modules/clone-response": {
"version": "1.0.3",
- "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz",
- "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==",
+ "license": "MIT",
"dependencies": {
"mimic-response": "^1.0.0"
},
@@ -7726,8 +7744,7 @@
},
"node_modules/clsx": {
"version": "1.2.1",
- "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz",
- "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==",
+ "license": "MIT",
"engines": {
"node": ">=6"
}
@@ -7742,22 +7759,17 @@
},
"node_modules/co": {
"version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
+ "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==",
"dev": true,
- "license": "MIT",
"engines": {
"iojs": ">= 1.0.0",
"node": ">= 0.12.0"
}
},
- "node_modules/code-block-writer": {
- "version": "12.0.0",
- "dev": true,
- "license": "MIT"
- },
"node_modules/collapse-white-space": {
"version": "1.0.6",
- "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.6.tgz",
- "integrity": "sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==",
+ "license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
@@ -7765,8 +7777,9 @@
},
"node_modules/collect-v8-coverage": {
"version": "1.0.2",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz",
+ "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==",
+ "dev": true
},
"node_modules/color-convert": {
"version": "2.0.1",
@@ -7837,8 +7850,7 @@
},
"node_modules/comma-separated-tokens": {
"version": "1.0.8",
- "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz",
- "integrity": "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==",
+ "license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
@@ -7853,8 +7865,7 @@
},
"node_modules/commondir": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
- "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg=="
+ "license": "MIT"
},
"node_modules/compare-func": {
"version": "2.0.0",
@@ -7931,8 +7942,7 @@
},
"node_modules/configstore": {
"version": "5.0.1",
- "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz",
- "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==",
+ "license": "BSD-2-Clause",
"dependencies": {
"dot-prop": "^5.2.0",
"graceful-fs": "^4.1.2",
@@ -7947,8 +7957,7 @@
},
"node_modules/configstore/node_modules/make-dir": {
"version": "3.1.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
- "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
+ "license": "MIT",
"dependencies": {
"semver": "^6.0.0"
},
@@ -7961,16 +7970,14 @@
},
"node_modules/configstore/node_modules/semver": {
"version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "license": "ISC",
"bin": {
"semver": "bin/semver.js"
}
},
"node_modules/configstore/node_modules/write-file-atomic": {
"version": "3.0.3",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
- "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
+ "license": "ISC",
"dependencies": {
"imurmurhash": "^0.1.4",
"is-typedarray": "^1.0.0",
@@ -8305,8 +8312,9 @@
},
"node_modules/create-jest": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz",
+ "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@jest/types": "^29.6.3",
"chalk": "^4.0.0",
@@ -8373,17 +8381,9 @@
"node": ">= 8"
}
},
- "node_modules/crypt": {
- "version": "0.0.2",
- "license": "BSD-3-Clause",
- "engines": {
- "node": "*"
- }
- },
"node_modules/crypto-random-string": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz",
- "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==",
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -8656,102 +8656,6 @@
"version": "3.1.2",
"license": "MIT"
},
- "node_modules/d3-color": {
- "version": "3.1.0",
- "dev": true,
- "license": "ISC",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-dispatch": {
- "version": "3.0.1",
- "dev": true,
- "license": "ISC",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-drag": {
- "version": "3.0.0",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "d3-dispatch": "1 - 3",
- "d3-selection": "3"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-ease": {
- "version": "3.0.1",
- "dev": true,
- "license": "BSD-3-Clause",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-interpolate": {
- "version": "3.0.1",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "d3-color": "1 - 3"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-selection": {
- "version": "3.0.0",
- "dev": true,
- "license": "ISC",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-timer": {
- "version": "3.0.1",
- "dev": true,
- "license": "ISC",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-transition": {
- "version": "3.0.1",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "d3-color": "1 - 3",
- "d3-dispatch": "1 - 3",
- "d3-ease": "1 - 3",
- "d3-interpolate": "1 - 3",
- "d3-timer": "1 - 3"
- },
- "engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "d3-selection": "2 - 3"
- }
- },
- "node_modules/d3-zoom": {
- "version": "3.0.0",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "d3-dispatch": "1 - 3",
- "d3-drag": "2 - 3",
- "d3-interpolate": "1 - 3",
- "d3-selection": "2 - 3",
- "d3-transition": "2 - 3"
- },
- "engines": {
- "node": ">=12"
- }
- },
"node_modules/dargs": {
"version": "7.0.0",
"dev": true,
@@ -8794,6 +8698,7 @@
},
"node_modules/decamelize": {
"version": "1.2.0",
+ "dev": true,
"license": "MIT",
"engines": {
"node": ">=0.10.0"
@@ -8824,8 +8729,7 @@
},
"node_modules/decompress-response": {
"version": "3.3.0",
- "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
- "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==",
+ "license": "MIT",
"dependencies": {
"mimic-response": "^1.0.0"
},
@@ -8875,8 +8779,7 @@
},
"node_modules/defer-to-connect": {
"version": "1.1.3",
- "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz",
- "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ=="
+ "license": "MIT"
},
"node_modules/define-data-property": {
"version": "1.1.1",
@@ -8971,9 +8874,8 @@
},
"node_modules/dequal": {
"version": "2.0.3",
- "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
- "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6"
}
@@ -8988,8 +8890,7 @@
},
"node_modules/detab": {
"version": "2.0.4",
- "resolved": "https://registry.npmjs.org/detab/-/detab-2.0.4.tgz",
- "integrity": "sha512-8zdsQA5bIkoRECvCrNKPla84lyoR7DSAyf7p0YgXzBO9PDJx8KntPUay7NS6yp+KdxdVtiE5SpHKtbp2ZQyA9g==",
+ "license": "MIT",
"dependencies": {
"repeat-string": "^1.5.4"
},
@@ -9008,8 +8909,9 @@
},
"node_modules/detect-newline": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz",
+ "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -9058,9 +8960,8 @@
},
"node_modules/devlop": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz",
- "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"dequal": "^2.0.0"
},
@@ -9077,14 +8978,6 @@
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "node_modules/digest-fetch": {
- "version": "1.3.0",
- "license": "ISC",
- "dependencies": {
- "base-64": "^0.1.0",
- "md5": "^2.3.0"
- }
- },
"node_modules/dir-glob": {
"version": "3.0.1",
"license": "MIT",
@@ -9210,8 +9103,7 @@
},
"node_modules/duplexer3": {
"version": "0.1.5",
- "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz",
- "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA=="
+ "license": "BSD-3-Clause"
},
"node_modules/eastasianwidth": {
"version": "0.2.0",
@@ -9236,13 +9128,15 @@
}
},
"node_modules/electron-to-chromium": {
- "version": "1.4.588",
- "license": "ISC"
+ "version": "1.4.681",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.681.tgz",
+ "integrity": "sha512-1PpuqJUFWoXZ1E54m8bsLPVYwIVCRzvaL+n5cjigGga4z854abDnFRc+cTa2th4S79kyGqya/1xoR7h+Y5G5lg=="
},
"node_modules/emittery": {
"version": "0.13.1",
+ "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz",
+ "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=12"
},
@@ -9263,8 +9157,7 @@
},
"node_modules/emoticon": {
"version": "3.2.0",
- "resolved": "https://registry.npmjs.org/emoticon/-/emoticon-3.2.0.tgz",
- "integrity": "sha512-SNujglcLTTg+lDAcApPNgEdudaqQFiAbJCqzjNxJkvN9vAwCGi0uu8IUVvx+f16h+V44KCY6Y2yboroc9pilHg==",
+ "license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
@@ -9371,10 +9264,11 @@
"license": "MIT"
},
"node_modules/esbuild": {
- "version": "0.18.20",
+ "version": "0.19.12",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz",
+ "integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==",
"dev": true,
"hasInstallScript": true,
- "license": "MIT",
"bin": {
"esbuild": "bin/esbuild"
},
@@ -9382,28 +9276,29 @@
"node": ">=12"
},
"optionalDependencies": {
- "@esbuild/android-arm": "0.18.20",
- "@esbuild/android-arm64": "0.18.20",
- "@esbuild/android-x64": "0.18.20",
- "@esbuild/darwin-arm64": "0.18.20",
- "@esbuild/darwin-x64": "0.18.20",
- "@esbuild/freebsd-arm64": "0.18.20",
- "@esbuild/freebsd-x64": "0.18.20",
- "@esbuild/linux-arm": "0.18.20",
- "@esbuild/linux-arm64": "0.18.20",
- "@esbuild/linux-ia32": "0.18.20",
- "@esbuild/linux-loong64": "0.18.20",
- "@esbuild/linux-mips64el": "0.18.20",
- "@esbuild/linux-ppc64": "0.18.20",
- "@esbuild/linux-riscv64": "0.18.20",
- "@esbuild/linux-s390x": "0.18.20",
- "@esbuild/linux-x64": "0.18.20",
- "@esbuild/netbsd-x64": "0.18.20",
- "@esbuild/openbsd-x64": "0.18.20",
- "@esbuild/sunos-x64": "0.18.20",
- "@esbuild/win32-arm64": "0.18.20",
- "@esbuild/win32-ia32": "0.18.20",
- "@esbuild/win32-x64": "0.18.20"
+ "@esbuild/aix-ppc64": "0.19.12",
+ "@esbuild/android-arm": "0.19.12",
+ "@esbuild/android-arm64": "0.19.12",
+ "@esbuild/android-x64": "0.19.12",
+ "@esbuild/darwin-arm64": "0.19.12",
+ "@esbuild/darwin-x64": "0.19.12",
+ "@esbuild/freebsd-arm64": "0.19.12",
+ "@esbuild/freebsd-x64": "0.19.12",
+ "@esbuild/linux-arm": "0.19.12",
+ "@esbuild/linux-arm64": "0.19.12",
+ "@esbuild/linux-ia32": "0.19.12",
+ "@esbuild/linux-loong64": "0.19.12",
+ "@esbuild/linux-mips64el": "0.19.12",
+ "@esbuild/linux-ppc64": "0.19.12",
+ "@esbuild/linux-riscv64": "0.19.12",
+ "@esbuild/linux-s390x": "0.19.12",
+ "@esbuild/linux-x64": "0.19.12",
+ "@esbuild/netbsd-x64": "0.19.12",
+ "@esbuild/openbsd-x64": "0.19.12",
+ "@esbuild/sunos-x64": "0.19.12",
+ "@esbuild/win32-arm64": "0.19.12",
+ "@esbuild/win32-ia32": "0.19.12",
+ "@esbuild/win32-x64": "0.19.12"
}
},
"node_modules/escalade": {
@@ -9415,8 +9310,7 @@
},
"node_modules/escape-goat": {
"version": "2.1.1",
- "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz",
- "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==",
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -9558,6 +9452,8 @@
},
"node_modules/exit": {
"version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
+ "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==",
"dev": true,
"engines": {
"node": ">= 0.8.0"
@@ -9565,8 +9461,9 @@
},
"node_modules/expect": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz",
+ "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@jest/expect-utils": "^29.7.0",
"jest-get-type": "^29.6.3",
@@ -9583,10 +9480,6 @@
"dev": true,
"license": "Apache-2.0"
},
- "node_modules/expr-eval": {
- "version": "2.0.2",
- "license": "MIT"
- },
"node_modules/express": {
"version": "4.18.2",
"license": "MIT",
@@ -9756,8 +9649,9 @@
},
"node_modules/fb-watchman": {
"version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz",
+ "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==",
"dev": true,
- "license": "Apache-2.0",
"dependencies": {
"bser": "2.1.1"
}
@@ -9917,8 +9811,7 @@
},
"node_modules/find-cache-dir": {
"version": "3.3.2",
- "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz",
- "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==",
+ "license": "MIT",
"dependencies": {
"commondir": "^1.0.1",
"make-dir": "^3.0.2",
@@ -9933,8 +9826,7 @@
},
"node_modules/find-cache-dir/node_modules/make-dir": {
"version": "3.1.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
- "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
+ "license": "MIT",
"dependencies": {
"semver": "^6.0.0"
},
@@ -9947,8 +9839,7 @@
},
"node_modules/find-cache-dir/node_modules/semver": {
"version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "license": "ISC",
"bin": {
"semver": "bin/semver.js"
}
@@ -9991,7 +9882,7 @@
}
},
"node_modules/follow-redirects": {
- "version": "1.15.3",
+ "version": "1.15.5",
"funding": [
{
"type": "individual",
@@ -10133,28 +10024,6 @@
"node": ">= 6"
}
},
- "node_modules/form-data-encoder": {
- "version": "1.7.2",
- "license": "MIT"
- },
- "node_modules/formdata-node": {
- "version": "4.4.1",
- "license": "MIT",
- "dependencies": {
- "node-domexception": "1.0.0",
- "web-streams-polyfill": "4.0.0-beta.3"
- },
- "engines": {
- "node": ">= 12.20"
- }
- },
- "node_modules/formdata-node/node_modules/web-streams-polyfill": {
- "version": "4.0.0-beta.3",
- "license": "MIT",
- "engines": {
- "node": ">= 14"
- }
- },
"node_modules/forwarded": {
"version": "0.2.0",
"license": "MIT",
@@ -10217,6 +10086,19 @@
"version": "1.0.0",
"license": "ISC"
},
+ "node_modules/fsevents": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+ "hasInstallScript": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
"node_modules/function-bind": {
"version": "1.1.2",
"license": "MIT",
@@ -10276,8 +10158,9 @@
},
"node_modules/get-package-type": {
"version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz",
+ "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=8.0.0"
}
@@ -10531,8 +10414,7 @@
},
"node_modules/got": {
"version": "9.6.0",
- "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz",
- "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==",
+ "license": "MIT",
"dependencies": {
"@sindresorhus/is": "^0.14.0",
"@szmarczak/http-timer": "^1.1.2",
@@ -10552,8 +10434,7 @@
},
"node_modules/got/node_modules/get-stream": {
"version": "4.1.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
- "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+ "license": "MIT",
"dependencies": {
"pump": "^3.0.0"
},
@@ -10685,8 +10566,7 @@
},
"node_modules/has-yarn": {
"version": "2.1.0",
- "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz",
- "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==",
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -10703,8 +10583,7 @@
},
"node_modules/hast-to-hyperscript": {
"version": "9.0.1",
- "resolved": "https://registry.npmjs.org/hast-to-hyperscript/-/hast-to-hyperscript-9.0.1.tgz",
- "integrity": "sha512-zQgLKqF+O2F72S1aa4y2ivxzSlko3MAvxkwG8ehGmNiqd98BIN3JM1rAJPmplEyLmGLO2QZYJtIneOSZ2YbJuA==",
+ "license": "MIT",
"dependencies": {
"@types/unist": "^2.0.3",
"comma-separated-tokens": "^1.0.0",
@@ -10721,8 +10600,7 @@
},
"node_modules/hast-util-from-parse5": {
"version": "6.0.1",
- "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-6.0.1.tgz",
- "integrity": "sha512-jeJUWiN5pSxW12Rh01smtVkZgZr33wBokLzKLwinYOUfSzm1Nl/c3GUGebDyOKjdsRgMvoVbV0VpAcpjF4NrJA==",
+ "license": "MIT",
"dependencies": {
"@types/parse5": "^5.0.0",
"hastscript": "^6.0.0",
@@ -10738,8 +10616,7 @@
},
"node_modules/hast-util-parse-selector": {
"version": "2.2.5",
- "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz",
- "integrity": "sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==",
+ "license": "MIT",
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
@@ -10747,8 +10624,7 @@
},
"node_modules/hast-util-raw": {
"version": "6.0.1",
- "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-6.0.1.tgz",
- "integrity": "sha512-ZMuiYA+UF7BXBtsTBNcLBF5HzXzkyE6MLzJnL605LKE8GJylNjGc4jjxazAHUtcwT5/CEt6afRKViYB4X66dig==",
+ "license": "MIT",
"dependencies": {
"@types/hast": "^2.0.0",
"hast-util-from-parse5": "^6.0.0",
@@ -10768,14 +10644,12 @@
},
"node_modules/hast-util-raw/node_modules/parse5": {
"version": "6.0.1",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
- "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw=="
+ "license": "MIT"
},
"node_modules/hast-util-to-html": {
"version": "9.0.0",
- "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.0.tgz",
- "integrity": "sha512-IVGhNgg7vANuUA2XKrT6sOIIPgaYZnmLx3l/CCOAK0PtgfoHrZwX7jCSYyFxHTrGmC6S9q8aQQekjp4JPZF+cw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/hast": "^3.0.0",
"@types/unist": "^3.0.0",
@@ -10797,33 +10671,29 @@
},
"node_modules/hast-util-to-html/node_modules/@types/hast": {
"version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.3.tgz",
- "integrity": "sha512-2fYGlaDy/qyLlhidX42wAH0KBi2TCjKMH8CHmBXgRlJ3Y+OXTiqsPQ6IWarZKwF1JoUcAJdPogv1d4b0COTpmQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/unist": "*"
}
},
"node_modules/hast-util-to-html/node_modules/@types/mdast": {
"version": "4.0.3",
- "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
- "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/unist": "*"
}
},
"node_modules/hast-util-to-html/node_modules/@types/unist": {
"version": "3.0.2",
- "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
- "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/hast-util-to-html/node_modules/ccount": {
"version": "2.0.1",
- "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz",
- "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==",
"dev": true,
+ "license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
@@ -10831,9 +10701,8 @@
},
"node_modules/hast-util-to-html/node_modules/comma-separated-tokens": {
"version": "2.0.3",
- "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz",
- "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==",
"dev": true,
+ "license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
@@ -10841,9 +10710,8 @@
},
"node_modules/hast-util-to-html/node_modules/hast-util-from-parse5": {
"version": "8.0.1",
- "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.1.tgz",
- "integrity": "sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/hast": "^3.0.0",
"@types/unist": "^3.0.0",
@@ -10861,9 +10729,8 @@
},
"node_modules/hast-util-to-html/node_modules/hast-util-parse-selector": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz",
- "integrity": "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/hast": "^3.0.0"
},
@@ -10874,9 +10741,8 @@
},
"node_modules/hast-util-to-html/node_modules/hast-util-raw": {
"version": "9.0.1",
- "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.0.1.tgz",
- "integrity": "sha512-5m1gmba658Q+lO5uqL5YNGQWeh1MYWZbZmWrM5lncdcuiXuo5E2HT/CIOp0rLF8ksfSwiCVJ3twlgVRyTGThGA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/hast": "^3.0.0",
"@types/unist": "^3.0.0",
@@ -10899,9 +10765,8 @@
},
"node_modules/hast-util-to-html/node_modules/hast-util-to-parse5": {
"version": "8.0.0",
- "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-8.0.0.tgz",
- "integrity": "sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/hast": "^3.0.0",
"comma-separated-tokens": "^2.0.0",
@@ -10918,9 +10783,8 @@
},
"node_modules/hast-util-to-html/node_modules/hastscript": {
"version": "8.0.0",
- "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-8.0.0.tgz",
- "integrity": "sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/hast": "^3.0.0",
"comma-separated-tokens": "^2.0.0",
@@ -10935,9 +10799,8 @@
},
"node_modules/hast-util-to-html/node_modules/html-void-elements": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz",
- "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==",
"dev": true,
+ "license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
@@ -10945,9 +10808,8 @@
},
"node_modules/hast-util-to-html/node_modules/mdast-util-to-hast": {
"version": "13.0.2",
- "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.0.2.tgz",
- "integrity": "sha512-U5I+500EOOw9e3ZrclN3Is3fRpw8c19SMyNZlZ2IS+7vLsNzb2Om11VpIVOR+/0137GhZsFEF6YiKD5+0Hr2Og==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/hast": "^3.0.0",
"@types/mdast": "^4.0.0",
@@ -10965,9 +10827,8 @@
},
"node_modules/hast-util-to-html/node_modules/property-information": {
"version": "6.4.0",
- "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.4.0.tgz",
- "integrity": "sha512-9t5qARVofg2xQqKtytzt+lZ4d1Qvj8t5B8fEwXK6qOfgRLgH/b13QlgEyDh033NOS31nXeFbYv7CLUDG1CeifQ==",
"dev": true,
+ "license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
@@ -10975,9 +10836,8 @@
},
"node_modules/hast-util-to-html/node_modules/space-separated-tokens": {
"version": "2.0.2",
- "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz",
- "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==",
"dev": true,
+ "license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
@@ -10985,9 +10845,8 @@
},
"node_modules/hast-util-to-html/node_modules/unist-util-is": {
"version": "6.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz",
- "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/unist": "^3.0.0"
},
@@ -10998,9 +10857,8 @@
},
"node_modules/hast-util-to-html/node_modules/unist-util-position": {
"version": "5.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
- "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/unist": "^3.0.0"
},
@@ -11011,9 +10869,8 @@
},
"node_modules/hast-util-to-html/node_modules/unist-util-stringify-position": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
- "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/unist": "^3.0.0"
},
@@ -11024,9 +10881,8 @@
},
"node_modules/hast-util-to-html/node_modules/unist-util-visit": {
"version": "5.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz",
- "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/unist": "^3.0.0",
"unist-util-is": "^6.0.0",
@@ -11039,9 +10895,8 @@
},
"node_modules/hast-util-to-html/node_modules/unist-util-visit-parents": {
"version": "6.0.1",
- "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz",
- "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/unist": "^3.0.0",
"unist-util-is": "^6.0.0"
@@ -11053,9 +10908,8 @@
},
"node_modules/hast-util-to-html/node_modules/vfile": {
"version": "6.0.1",
- "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
- "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/unist": "^3.0.0",
"unist-util-stringify-position": "^4.0.0",
@@ -11068,9 +10922,8 @@
},
"node_modules/hast-util-to-html/node_modules/vfile-location": {
"version": "5.0.2",
- "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-5.0.2.tgz",
- "integrity": "sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/unist": "^3.0.0",
"vfile": "^6.0.0"
@@ -11082,9 +10935,8 @@
},
"node_modules/hast-util-to-html/node_modules/vfile-message": {
"version": "4.0.2",
- "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
- "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/unist": "^3.0.0",
"unist-util-stringify-position": "^4.0.0"
@@ -11096,9 +10948,8 @@
},
"node_modules/hast-util-to-html/node_modules/web-namespaces": {
"version": "2.0.1",
- "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz",
- "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==",
"dev": true,
+ "license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
@@ -11106,9 +10957,8 @@
},
"node_modules/hast-util-to-html/node_modules/zwitch": {
"version": "2.0.4",
- "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz",
- "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==",
"dev": true,
+ "license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
@@ -11116,8 +10966,7 @@
},
"node_modules/hast-util-to-parse5": {
"version": "6.0.0",
- "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-6.0.0.tgz",
- "integrity": "sha512-Lu5m6Lgm/fWuz8eWnrKezHtVY83JeRGaNQ2kn9aJgqaxvVkFCZQBEhgodZUDUvoodgyROHDb3r5IxAEdl6suJQ==",
+ "license": "MIT",
"dependencies": {
"hast-to-hyperscript": "^9.0.0",
"property-information": "^5.0.0",
@@ -11132,9 +10981,8 @@
},
"node_modules/hast-util-whitespace": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz",
- "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/hast": "^3.0.0"
},
@@ -11145,17 +10993,15 @@
},
"node_modules/hast-util-whitespace/node_modules/@types/hast": {
"version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.3.tgz",
- "integrity": "sha512-2fYGlaDy/qyLlhidX42wAH0KBi2TCjKMH8CHmBXgRlJ3Y+OXTiqsPQ6IWarZKwF1JoUcAJdPogv1d4b0COTpmQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/unist": "*"
}
},
"node_modules/hastscript": {
"version": "6.0.0",
- "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-6.0.0.tgz",
- "integrity": "sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==",
+ "license": "MIT",
"dependencies": {
"@types/hast": "^2.0.0",
"comma-separated-tokens": "^1.0.0",
@@ -11299,8 +11145,7 @@
},
"node_modules/html-void-elements": {
"version": "1.0.5",
- "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-1.0.5.tgz",
- "integrity": "sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w==",
+ "license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
@@ -11448,6 +11293,7 @@
},
"node_modules/humanize-ms": {
"version": "1.2.1",
+ "dev": true,
"license": "MIT",
"dependencies": {
"ms": "^2.0.0"
@@ -11541,15 +11387,6 @@
"node": ">=14.0.0"
}
},
- "node_modules/immer": {
- "version": "10.0.3",
- "dev": true,
- "license": "MIT",
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/immer"
- }
- },
"node_modules/import-fresh": {
"version": "3.3.0",
"license": "MIT",
@@ -11573,8 +11410,7 @@
},
"node_modules/import-lazy": {
"version": "2.1.0",
- "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz",
- "integrity": "sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==",
+ "license": "MIT",
"engines": {
"node": ">=4"
}
@@ -11748,9 +11584,10 @@
}
},
"node_modules/ip": {
- "version": "2.0.0",
- "dev": true,
- "license": "MIT"
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.1.tgz",
+ "integrity": "sha512-lJUL9imLTNi1ZfXT+DU6rBBdbiKGBuay9B6xGSPVjUeQwaH1RIGqef8RZkUtHioLmSNpPR5M4HVKJGm1j8FWVQ==",
+ "dev": true
},
"node_modules/ipaddr.js": {
"version": "2.1.0",
@@ -11761,8 +11598,7 @@
},
"node_modules/is-alphabetical": {
"version": "1.0.4",
- "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz",
- "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==",
+ "license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
@@ -11770,8 +11606,7 @@
},
"node_modules/is-alphanumerical": {
"version": "1.0.4",
- "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz",
- "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==",
+ "license": "MIT",
"dependencies": {
"is-alphabetical": "^1.0.0",
"is-decimal": "^1.0.0"
@@ -11781,10 +11616,6 @@
"url": "https://github.com/sponsors/wooorm"
}
},
- "node_modules/is-any-array": {
- "version": "2.0.1",
- "license": "MIT"
- },
"node_modules/is-arrayish": {
"version": "0.2.1",
"license": "MIT"
@@ -11799,10 +11630,6 @@
"node": ">=8"
}
},
- "node_modules/is-buffer": {
- "version": "1.1.6",
- "license": "MIT"
- },
"node_modules/is-ci": {
"version": "3.0.1",
"dev": true,
@@ -11826,8 +11653,7 @@
},
"node_modules/is-decimal": {
"version": "1.0.4",
- "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz",
- "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==",
+ "license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
@@ -11869,8 +11695,9 @@
},
"node_modules/is-generator-fn": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz",
+ "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=6"
}
@@ -11887,8 +11714,7 @@
},
"node_modules/is-hexadecimal": {
"version": "1.0.4",
- "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz",
- "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==",
+ "license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
@@ -11923,8 +11749,7 @@
},
"node_modules/is-npm": {
"version": "5.0.0",
- "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz",
- "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==",
+ "license": "MIT",
"engines": {
"node": ">=10"
},
@@ -12032,8 +11857,7 @@
},
"node_modules/is-whitespace-character": {
"version": "1.0.4",
- "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz",
- "integrity": "sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==",
+ "license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
@@ -12041,8 +11865,7 @@
},
"node_modules/is-word-character": {
"version": "1.0.4",
- "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.4.tgz",
- "integrity": "sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==",
+ "license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
@@ -12060,8 +11883,7 @@
},
"node_modules/is-yarn-global": {
"version": "0.3.0",
- "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz",
- "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw=="
+ "license": "MIT"
},
"node_modules/isarray": {
"version": "1.0.0",
@@ -12080,20 +11902,22 @@
},
"node_modules/istanbul-lib-coverage": {
"version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz",
+ "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==",
"dev": true,
- "license": "BSD-3-Clause",
"engines": {
"node": ">=8"
}
},
"node_modules/istanbul-lib-instrument": {
- "version": "6.0.1",
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz",
+ "integrity": "sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==",
"dev": true,
- "license": "BSD-3-Clause",
"dependencies": {
- "@babel/core": "^7.12.3",
- "@babel/parser": "^7.14.7",
- "@istanbuljs/schema": "^0.1.2",
+ "@babel/core": "^7.23.9",
+ "@babel/parser": "^7.23.9",
+ "@istanbuljs/schema": "^0.1.3",
"istanbul-lib-coverage": "^3.2.0",
"semver": "^7.5.4"
},
@@ -12103,8 +11927,9 @@
},
"node_modules/istanbul-lib-report": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz",
+ "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==",
"dev": true,
- "license": "BSD-3-Clause",
"dependencies": {
"istanbul-lib-coverage": "^3.0.0",
"make-dir": "^4.0.0",
@@ -12116,8 +11941,9 @@
},
"node_modules/istanbul-lib-source-maps": {
"version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz",
+ "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==",
"dev": true,
- "license": "BSD-3-Clause",
"dependencies": {
"debug": "^4.1.1",
"istanbul-lib-coverage": "^3.0.0",
@@ -12128,9 +11954,10 @@
}
},
"node_modules/istanbul-reports": {
- "version": "3.1.6",
+ "version": "3.1.7",
+ "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz",
+ "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==",
"dev": true,
- "license": "BSD-3-Clause",
"dependencies": {
"html-escaper": "^2.0.0",
"istanbul-lib-report": "^3.0.0"
@@ -12186,8 +12013,9 @@
},
"node_modules/jest": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz",
+ "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@jest/core": "^29.7.0",
"@jest/types": "^29.6.3",
@@ -12211,8 +12039,9 @@
},
"node_modules/jest-changed-files": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz",
+ "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==",
"dev": true,
- "license": "MIT",
"dependencies": {
"execa": "^5.0.0",
"jest-util": "^29.7.0",
@@ -12224,8 +12053,9 @@
},
"node_modules/jest-changed-files/node_modules/p-limit": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
+ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"yocto-queue": "^0.1.0"
},
@@ -12238,8 +12068,9 @@
},
"node_modules/jest-circus": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz",
+ "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@jest/environment": "^29.7.0",
"@jest/expect": "^29.7.0",
@@ -12268,8 +12099,9 @@
},
"node_modules/jest-circus/node_modules/dedent": {
"version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz",
+ "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==",
"dev": true,
- "license": "MIT",
"peerDependencies": {
"babel-plugin-macros": "^3.1.0"
},
@@ -12281,8 +12113,9 @@
},
"node_modules/jest-circus/node_modules/p-limit": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
+ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"yocto-queue": "^0.1.0"
},
@@ -12295,8 +12128,9 @@
},
"node_modules/jest-cli": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz",
+ "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@jest/core": "^29.7.0",
"@jest/test-result": "^29.7.0",
@@ -12327,8 +12161,9 @@
},
"node_modules/jest-cli/node_modules/yargs": {
"version": "17.7.2",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
+ "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
"dev": true,
- "license": "MIT",
"dependencies": {
"cliui": "^8.0.1",
"escalade": "^3.1.1",
@@ -12344,16 +12179,18 @@
},
"node_modules/jest-cli/node_modules/yargs-parser": {
"version": "21.1.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
+ "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
"dev": true,
- "license": "ISC",
"engines": {
"node": ">=12"
}
},
"node_modules/jest-config": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz",
+ "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/core": "^7.11.6",
"@jest/test-sequencer": "^29.7.0",
@@ -12410,8 +12247,9 @@
},
"node_modules/jest-docblock": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz",
+ "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==",
"dev": true,
- "license": "MIT",
"dependencies": {
"detect-newline": "^3.0.0"
},
@@ -12421,8 +12259,9 @@
},
"node_modules/jest-each": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz",
+ "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@jest/types": "^29.6.3",
"chalk": "^4.0.0",
@@ -12436,8 +12275,9 @@
},
"node_modules/jest-environment-node": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz",
+ "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@jest/environment": "^29.7.0",
"@jest/fake-timers": "^29.7.0",
@@ -12460,8 +12300,9 @@
},
"node_modules/jest-haste-map": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz",
+ "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@jest/types": "^29.6.3",
"@types/graceful-fs": "^4.1.3",
@@ -12484,8 +12325,9 @@
},
"node_modules/jest-leak-detector": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz",
+ "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"jest-get-type": "^29.6.3",
"pretty-format": "^29.7.0"
@@ -12496,8 +12338,9 @@
},
"node_modules/jest-matcher-utils": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz",
+ "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==",
"dev": true,
- "license": "MIT",
"dependencies": {
"chalk": "^4.0.0",
"jest-diff": "^29.7.0",
@@ -12510,8 +12353,9 @@
},
"node_modules/jest-message-util": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz",
+ "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/code-frame": "^7.12.13",
"@jest/types": "^29.6.3",
@@ -12529,8 +12373,9 @@
},
"node_modules/jest-mock": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz",
+ "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@jest/types": "^29.6.3",
"@types/node": "*",
@@ -12542,8 +12387,9 @@
},
"node_modules/jest-pnp-resolver": {
"version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz",
+ "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=6"
},
@@ -12558,16 +12404,18 @@
},
"node_modules/jest-regex-util": {
"version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz",
+ "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==",
"dev": true,
- "license": "MIT",
"engines": {
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
"node_modules/jest-resolve": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz",
+ "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"chalk": "^4.0.0",
"graceful-fs": "^4.2.9",
@@ -12585,8 +12433,9 @@
},
"node_modules/jest-resolve-dependencies": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz",
+ "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"jest-regex-util": "^29.6.3",
"jest-snapshot": "^29.7.0"
@@ -12597,8 +12446,9 @@
},
"node_modules/jest-runner": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz",
+ "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@jest/console": "^29.7.0",
"@jest/environment": "^29.7.0",
@@ -12628,8 +12478,9 @@
},
"node_modules/jest-runner/node_modules/p-limit": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
+ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"yocto-queue": "^0.1.0"
},
@@ -12642,8 +12493,9 @@
},
"node_modules/jest-runtime": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz",
+ "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@jest/environment": "^29.7.0",
"@jest/fake-timers": "^29.7.0",
@@ -12674,8 +12526,9 @@
},
"node_modules/jest-snapshot": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz",
+ "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/core": "^7.11.6",
"@babel/generator": "^7.7.2",
@@ -12719,8 +12572,9 @@
},
"node_modules/jest-validate": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz",
+ "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@jest/types": "^29.6.3",
"camelcase": "^6.2.0",
@@ -12735,8 +12589,9 @@
},
"node_modules/jest-validate/node_modules/camelcase": {
"version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
+ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=10"
},
@@ -12746,8 +12601,9 @@
},
"node_modules/jest-watcher": {
"version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz",
+ "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@jest/test-result": "^29.7.0",
"@jest/types": "^29.6.3",
@@ -12811,13 +12667,6 @@
"@sideway/pinpoint": "^2.0.0"
}
},
- "node_modules/js-tiktoken": {
- "version": "1.0.8",
- "license": "MIT",
- "dependencies": {
- "base64-js": "^1.5.1"
- }
- },
"node_modules/js-tokens": {
"version": "4.0.0",
"license": "MIT"
@@ -12844,8 +12693,7 @@
},
"node_modules/json-buffer": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
- "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ=="
+ "license": "MIT"
},
"node_modules/json-parse-better-errors": {
"version": "1.0.2",
@@ -12898,13 +12746,6 @@
],
"license": "MIT"
},
- "node_modules/jsonpointer": {
- "version": "5.0.1",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/JSONStream": {
"version": "1.3.5",
"dev": true,
@@ -12922,8 +12763,7 @@
},
"node_modules/keyv": {
"version": "3.1.0",
- "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz",
- "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==",
+ "license": "MIT",
"dependencies": {
"json-buffer": "3.0.0"
}
@@ -12947,35 +12787,9 @@
"dev": true,
"license": "MIT"
},
- "node_modules/langchainhub": {
- "version": "0.0.6",
- "license": "MIT"
- },
- "node_modules/langsmith": {
- "version": "0.0.48",
- "license": "MIT",
- "dependencies": {
- "@types/uuid": "^9.0.1",
- "commander": "^10.0.1",
- "p-queue": "^6.6.2",
- "p-retry": "4",
- "uuid": "^9.0.0"
- },
- "bin": {
- "langsmith": "dist/cli/main.cjs"
- }
- },
- "node_modules/langsmith/node_modules/commander": {
- "version": "10.0.1",
- "license": "MIT",
- "engines": {
- "node": ">=14"
- }
- },
"node_modules/latest-version": {
"version": "5.1.0",
- "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz",
- "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==",
+ "license": "MIT",
"dependencies": {
"package-json": "^6.3.0"
},
@@ -13354,8 +13168,7 @@
},
"node_modules/lowercase-keys": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
- "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==",
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -13370,17 +13183,6 @@
"node": ">=10"
}
},
- "node_modules/magic-string": {
- "version": "0.29.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jridgewell/sourcemap-codec": "^1.4.13"
- },
- "engines": {
- "node": ">=12"
- }
- },
"node_modules/make-dir": {
"version": "4.0.0",
"dev": true,
@@ -13395,11 +13197,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/make-error": {
- "version": "1.3.6",
- "dev": true,
- "license": "ISC"
- },
"node_modules/make-fetch-happen": {
"version": "10.2.1",
"dev": true,
@@ -13436,8 +13233,9 @@
},
"node_modules/makeerror": {
"version": "1.0.12",
+ "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz",
+ "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==",
"dev": true,
- "license": "BSD-3-Clause",
"dependencies": {
"tmpl": "1.0.5"
}
@@ -13460,26 +13258,15 @@
},
"node_modules/markdown-escapes": {
"version": "1.0.4",
- "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.4.tgz",
- "integrity": "sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==",
+ "license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
}
},
- "node_modules/md5": {
- "version": "2.3.0",
- "license": "BSD-3-Clause",
- "dependencies": {
- "charenc": "0.0.2",
- "crypt": "0.0.2",
- "is-buffer": "~1.1.6"
- }
- },
"node_modules/mdast-squeeze-paragraphs": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/mdast-squeeze-paragraphs/-/mdast-squeeze-paragraphs-4.0.0.tgz",
- "integrity": "sha512-zxdPn69hkQ1rm4J+2Cs2j6wDEv7O17TfXTJ33tl/+JPIoEmtV9t2ZzBM5LPHE8QlHsmVD8t3vPKCyY3oH+H8MQ==",
+ "license": "MIT",
"dependencies": {
"unist-util-remove": "^2.0.0"
},
@@ -13490,8 +13277,7 @@
},
"node_modules/mdast-util-definitions": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-4.0.0.tgz",
- "integrity": "sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ==",
+ "license": "MIT",
"dependencies": {
"unist-util-visit": "^2.0.0"
},
@@ -13502,8 +13288,7 @@
},
"node_modules/mdast-util-to-hast": {
"version": "10.0.1",
- "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-10.0.1.tgz",
- "integrity": "sha512-BW3LM9SEMnjf4HXXVApZMt8gLQWVNXc3jryK0nJu/rOXPOnlkUjmdkDlmxMirpbU9ILncGFIwLH/ubnWBbcdgA==",
+ "license": "MIT",
"dependencies": {
"@types/mdast": "^3.0.0",
"@types/unist": "^2.0.0",
@@ -13521,8 +13306,7 @@
},
"node_modules/mdast-util-to-string": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz",
- "integrity": "sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==",
+ "license": "MIT",
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
@@ -13534,8 +13318,7 @@
},
"node_modules/mdurl": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz",
- "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g=="
+ "license": "MIT"
},
"node_modules/media-typer": {
"version": "0.3.0",
@@ -13683,8 +13466,6 @@
},
"node_modules/micromark-util-character": {
"version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.0.1.tgz",
- "integrity": "sha512-3wgnrmEAJ4T+mGXAUfMvMAbxU9RDG43XmGce4j6CwPtVxB3vfwXSZ6KhFwDzZ3mZHhmPimMAXg71veiBGzeAZw==",
"dev": true,
"funding": [
{
@@ -13696,6 +13477,7 @@
"url": "https://opencollective.com/unified"
}
],
+ "license": "MIT",
"dependencies": {
"micromark-util-symbol": "^2.0.0",
"micromark-util-types": "^2.0.0"
@@ -13703,8 +13485,6 @@
},
"node_modules/micromark-util-encode": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz",
- "integrity": "sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==",
"dev": true,
"funding": [
{
@@ -13715,12 +13495,11 @@
"type": "OpenCollective",
"url": "https://opencollective.com/unified"
}
- ]
+ ],
+ "license": "MIT"
},
"node_modules/micromark-util-sanitize-uri": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz",
- "integrity": "sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==",
"dev": true,
"funding": [
{
@@ -13732,6 +13511,7 @@
"url": "https://opencollective.com/unified"
}
],
+ "license": "MIT",
"dependencies": {
"micromark-util-character": "^2.0.0",
"micromark-util-encode": "^2.0.0",
@@ -13740,8 +13520,6 @@
},
"node_modules/micromark-util-symbol": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz",
- "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==",
"dev": true,
"funding": [
{
@@ -13752,12 +13530,11 @@
"type": "OpenCollective",
"url": "https://opencollective.com/unified"
}
- ]
+ ],
+ "license": "MIT"
},
"node_modules/micromark-util-types": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz",
- "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==",
"dev": true,
"funding": [
{
@@ -13768,7 +13545,8 @@
"type": "OpenCollective",
"url": "https://opencollective.com/unified"
}
- ]
+ ],
+ "license": "MIT"
},
"node_modules/micromatch": {
"version": "4.0.5",
@@ -13817,8 +13595,7 @@
},
"node_modules/mimic-response": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
- "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",
+ "license": "MIT",
"engines": {
"node": ">=4"
}
@@ -14009,9 +13786,8 @@
},
"node_modules/minisearch": {
"version": "6.3.0",
- "resolved": "https://registry.npmjs.org/minisearch/-/minisearch-6.3.0.tgz",
- "integrity": "sha512-ihFnidEeU8iXzcVHy74dhkxh/dn8Dc08ERl0xwoMMGqp4+LvRSCgicb+zGqWthVokQKvCSxITlh3P08OzdTYCQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/minizlib": {
"version": "2.1.2",
@@ -14036,41 +13812,6 @@
"node": ">=10"
}
},
- "node_modules/ml-array-mean": {
- "version": "1.1.6",
- "license": "MIT",
- "dependencies": {
- "ml-array-sum": "^1.1.6"
- }
- },
- "node_modules/ml-array-sum": {
- "version": "1.1.6",
- "license": "MIT",
- "dependencies": {
- "is-any-array": "^2.0.0"
- }
- },
- "node_modules/ml-distance": {
- "version": "4.0.1",
- "license": "MIT",
- "dependencies": {
- "ml-array-mean": "^1.1.6",
- "ml-distance-euclidean": "^2.0.0",
- "ml-tree-similarity": "^1.0.0"
- }
- },
- "node_modules/ml-distance-euclidean": {
- "version": "2.0.0",
- "license": "MIT"
- },
- "node_modules/ml-tree-similarity": {
- "version": "1.0.0",
- "license": "MIT",
- "dependencies": {
- "binary-search": "^1.3.5",
- "num-sort": "^2.0.0"
- }
- },
"node_modules/modify-values": {
"version": "1.0.1",
"dev": true,
@@ -14132,13 +13873,6 @@
"node": ">=8"
}
},
- "node_modules/mustache": {
- "version": "4.2.0",
- "license": "MIT",
- "bin": {
- "mustache": "bin/mustache"
- }
- },
"node_modules/mute-stream": {
"version": "0.0.8",
"dev": true,
@@ -14162,8 +13896,9 @@
},
"node_modules/natural-compare": {
"version": "1.4.0",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
+ "dev": true
},
"node_modules/negotiator": {
"version": "0.6.3",
@@ -14189,33 +13924,16 @@
"dev": true,
"license": "MIT"
},
- "node_modules/node-domexception": {
- "version": "1.0.0",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/jimmywarting"
- },
- {
- "type": "github",
- "url": "https://paypal.me/jimmywarting"
- }
- ],
- "license": "MIT",
- "engines": {
- "node": ">=10.5.0"
- }
- },
"node_modules/node-emoji": {
"version": "1.11.0",
- "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz",
- "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==",
+ "license": "MIT",
"dependencies": {
"lodash": "^4.17.21"
}
},
"node_modules/node-fetch": {
"version": "2.6.7",
+ "dev": true,
"license": "MIT",
"dependencies": {
"whatwg-url": "^5.0.0"
@@ -14303,8 +14021,9 @@
},
"node_modules/node-int64": {
"version": "0.4.0",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
+ "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==",
+ "dev": true
},
"node_modules/node-machine-id": {
"version": "1.1.12",
@@ -14312,8 +14031,9 @@
"license": "MIT"
},
"node_modules/node-releases": {
- "version": "2.0.13",
- "license": "MIT"
+ "version": "2.0.14",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz",
+ "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw=="
},
"node_modules/nopt": {
"version": "6.0.0",
@@ -14826,16 +14546,6 @@
"url": "https://github.com/fb55/nth-check?sponsor=1"
}
},
- "node_modules/num-sort": {
- "version": "2.1.0",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/nx": {
"version": "16.10.0",
"dev": true,
@@ -15062,35 +14772,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/openai": {
- "version": "4.19.0",
- "license": "Apache-2.0",
- "dependencies": {
- "@types/node": "^18.11.18",
- "@types/node-fetch": "^2.6.4",
- "abort-controller": "^3.0.0",
- "agentkeepalive": "^4.2.1",
- "digest-fetch": "^1.3.0",
- "form-data-encoder": "1.7.2",
- "formdata-node": "^4.3.2",
- "node-fetch": "^2.6.7",
- "web-streams-polyfill": "^3.2.1"
- },
- "bin": {
- "openai": "bin/cli"
- }
- },
- "node_modules/openai/node_modules/@types/node": {
- "version": "18.18.10",
- "license": "MIT",
- "dependencies": {
- "undici-types": "~5.26.4"
- }
- },
- "node_modules/openapi-types": {
- "version": "12.1.3",
- "license": "MIT"
- },
"node_modules/opener": {
"version": "1.5.2",
"license": "(WTFPL OR MIT)",
@@ -15130,14 +14811,14 @@
},
"node_modules/p-cancelable": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz",
- "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==",
+ "license": "MIT",
"engines": {
"node": ">=6"
}
},
"node_modules/p-finally": {
"version": "1.0.0",
+ "dev": true,
"license": "MIT",
"engines": {
"node": ">=4"
@@ -15200,6 +14881,7 @@
},
"node_modules/p-queue": {
"version": "6.6.2",
+ "dev": true,
"license": "MIT",
"dependencies": {
"eventemitter3": "^4.0.4",
@@ -15240,6 +14922,7 @@
},
"node_modules/p-timeout": {
"version": "3.2.0",
+ "dev": true,
"license": "MIT",
"dependencies": {
"p-finally": "^1.0.0"
@@ -15271,8 +14954,7 @@
},
"node_modules/package-json": {
"version": "6.5.0",
- "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz",
- "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==",
+ "license": "MIT",
"dependencies": {
"got": "^9.6.0",
"registry-auth-token": "^4.0.0",
@@ -15285,8 +14967,7 @@
},
"node_modules/package-json/node_modules/semver": {
"version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "license": "ISC",
"bin": {
"semver": "bin/semver.js"
}
@@ -15549,8 +15230,7 @@
},
"node_modules/parse-entities": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz",
- "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==",
+ "license": "MIT",
"dependencies": {
"character-entities": "^1.0.0",
"character-entities-legacy": "^1.0.0",
@@ -15749,7 +15429,7 @@
}
},
"node_modules/pino": {
- "version": "8.16.2",
+ "version": "8.19.0",
"license": "MIT",
"dependencies": {
"atomic-sleep": "^1.0.0",
@@ -15757,7 +15437,7 @@
"on-exit-leak-free": "^2.1.0",
"pino-abstract-transport": "v1.1.0",
"pino-std-serializers": "^6.0.0",
- "process-warning": "^2.0.0",
+ "process-warning": "^3.0.0",
"quick-format-unescaped": "^4.0.3",
"real-require": "^0.2.0",
"safe-stable-stringify": "^2.3.1",
@@ -15825,8 +15505,9 @@
},
"node_modules/pirates": {
"version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz",
+ "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">= 6"
}
@@ -15890,7 +15571,7 @@
}
},
"node_modules/postcss": {
- "version": "8.4.31",
+ "version": "8.4.35",
"funding": [
{
"type": "opencollective",
@@ -15907,7 +15588,7 @@
],
"license": "MIT",
"dependencies": {
- "nanoid": "^3.3.6",
+ "nanoid": "^3.3.7",
"picocolors": "^1.0.0",
"source-map-js": "^1.0.2"
},
@@ -16426,8 +16107,7 @@
},
"node_modules/prepend-http": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz",
- "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==",
+ "license": "MIT",
"engines": {
"node": ">=4"
}
@@ -16473,8 +16153,7 @@
},
"node_modules/prism-react-renderer": {
"version": "1.3.5",
- "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-1.3.5.tgz",
- "integrity": "sha512-IJ+MSwBWKG+SM3b2SUfdrhC+gu01QkV2KmRQgREThBfSQRoufqRfxfHUxpG1WcaFjP+kojcFyO9Qqtpgt3qLCg==",
+ "license": "MIT",
"peerDependencies": {
"react": ">=0.14.9"
}
@@ -16506,7 +16185,7 @@
"license": "MIT"
},
"node_modules/process-warning": {
- "version": "2.3.1",
+ "version": "3.0.0",
"license": "MIT"
},
"node_modules/promise": {
@@ -16574,8 +16253,7 @@
},
"node_modules/property-information": {
"version": "5.6.0",
- "resolved": "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz",
- "integrity": "sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==",
+ "license": "MIT",
"dependencies": {
"xtend": "^4.0.0"
},
@@ -16613,8 +16291,7 @@
},
"node_modules/pump": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
- "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "license": "MIT",
"dependencies": {
"end-of-stream": "^1.1.0",
"once": "^1.3.1"
@@ -16626,8 +16303,7 @@
},
"node_modules/pupa": {
"version": "2.1.1",
- "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz",
- "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==",
+ "license": "MIT",
"dependencies": {
"escape-goat": "^2.0.0"
},
@@ -16641,6 +16317,8 @@
},
"node_modules/pure-rand": {
"version": "6.0.4",
+ "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz",
+ "integrity": "sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==",
"dev": true,
"funding": [
{
@@ -16651,8 +16329,7 @@
"type": "opencollective",
"url": "https://opencollective.com/fast-check"
}
- ],
- "license": "MIT"
+ ]
},
"node_modules/qs": {
"version": "6.11.0",
@@ -16946,8 +16623,7 @@
},
"node_modules/react-json-view": {
"version": "1.21.3",
- "resolved": "https://registry.npmjs.org/react-json-view/-/react-json-view-1.21.3.tgz",
- "integrity": "sha512-13p8IREj9/x/Ye4WI/JpjhoIwuzEgUAtgJZNBJckfzJt1qyh24BdTm6UQNGnyTq9dapQdrqvquZTo3dz1X6Cjw==",
+ "license": "MIT",
"dependencies": {
"flux": "^4.0.1",
"react-base16-styling": "^0.6.0",
@@ -17040,8 +16716,7 @@
},
"node_modules/react-textarea-autosize": {
"version": "8.5.3",
- "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.5.3.tgz",
- "integrity": "sha512-XT1024o2pqCuZSuBt9FwHlaDeNtVrtCXu0Rnz88t1jUGheCLa3PhjE1GH8Ctm2axEtvdCl5SUHYschyQ0L5QHQ==",
+ "license": "MIT",
"dependencies": {
"@babel/runtime": "^7.20.13",
"use-composed-ref": "^1.3.0",
@@ -17054,23 +16729,6 @@
"react": "^16.8.0 || ^17.0.0 || ^18.0.0"
}
},
- "node_modules/reactflow": {
- "version": "11.10.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@reactflow/background": "11.3.6",
- "@reactflow/controls": "11.2.6",
- "@reactflow/core": "11.10.1",
- "@reactflow/minimap": "11.7.6",
- "@reactflow/node-resizer": "2.2.6",
- "@reactflow/node-toolbar": "1.3.6"
- },
- "peerDependencies": {
- "react": ">=17",
- "react-dom": ">=17"
- }
- },
"node_modules/read": {
"version": "2.1.0",
"dev": true,
@@ -17509,8 +17167,7 @@
},
"node_modules/registry-auth-token": {
"version": "4.2.2",
- "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.2.tgz",
- "integrity": "sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==",
+ "license": "MIT",
"dependencies": {
"rc": "1.2.8"
},
@@ -17520,8 +17177,7 @@
},
"node_modules/registry-url": {
"version": "5.1.0",
- "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz",
- "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==",
+ "license": "MIT",
"dependencies": {
"rc": "^1.2.8"
},
@@ -17554,8 +17210,7 @@
},
"node_modules/remark-emoji": {
"version": "2.2.0",
- "resolved": "https://registry.npmjs.org/remark-emoji/-/remark-emoji-2.2.0.tgz",
- "integrity": "sha512-P3cj9s5ggsUvWw5fS2uzCHJMGuXYRb0NnZqYlNecewXt8QBU9n5vW3DUUKOhepS8F9CwdMx9B8a3i7pqFWAI5w==",
+ "license": "MIT",
"dependencies": {
"emoticon": "^3.2.0",
"node-emoji": "^1.10.0",
@@ -17564,8 +17219,7 @@
},
"node_modules/remark-footnotes": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/remark-footnotes/-/remark-footnotes-2.0.0.tgz",
- "integrity": "sha512-3Clt8ZMH75Ayjp9q4CorNeyjwIxHFcTkaektplKGl2A1jNGEUey8cKL0ZC5vJwfcD5GFGsNLImLG/NGzWIzoMQ==",
+ "license": "MIT",
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
@@ -17573,8 +17227,7 @@
},
"node_modules/remark-mdx": {
"version": "1.6.22",
- "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-1.6.22.tgz",
- "integrity": "sha512-phMHBJgeV76uyFkH4rvzCftLfKCr2RZuF+/gmVcaKrpsihyzmhXjA0BEMDaPTXG5y8qZOKPVo83NAOX01LPnOQ==",
+ "license": "MIT",
"dependencies": {
"@babel/core": "7.12.9",
"@babel/helper-plugin-utils": "7.10.4",
@@ -17592,8 +17245,7 @@
},
"node_modules/remark-mdx/node_modules/@babel/core": {
"version": "7.12.9",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz",
- "integrity": "sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==",
+ "license": "MIT",
"dependencies": {
"@babel/code-frame": "^7.10.4",
"@babel/generator": "^7.12.5",
@@ -17622,13 +17274,11 @@
},
"node_modules/remark-mdx/node_modules/@babel/helper-plugin-utils": {
"version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz",
- "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg=="
+ "license": "MIT"
},
"node_modules/remark-mdx/node_modules/@babel/plugin-syntax-jsx": {
"version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz",
- "integrity": "sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.10.4"
},
@@ -17638,13 +17288,10 @@
},
"node_modules/remark-mdx/node_modules/convert-source-map": {
"version": "1.9.0",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz",
- "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A=="
+ "license": "MIT"
},
"node_modules/remark-mdx/node_modules/is-buffer": {
"version": "2.0.5",
- "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz",
- "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==",
"funding": [
{
"type": "github",
@@ -17659,38 +17306,35 @@
"url": "https://feross.org/support"
}
],
+ "license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/remark-mdx/node_modules/is-plain-obj": {
"version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
- "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/remark-mdx/node_modules/semver": {
"version": "5.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
- "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "license": "ISC",
"bin": {
"semver": "bin/semver"
}
},
"node_modules/remark-mdx/node_modules/source-map": {
"version": "0.5.7",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
- "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
+ "license": "BSD-3-Clause",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/remark-mdx/node_modules/unified": {
"version": "9.2.0",
- "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz",
- "integrity": "sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==",
+ "license": "MIT",
"dependencies": {
"bail": "^1.0.0",
"extend": "^3.0.0",
@@ -17706,8 +17350,7 @@
},
"node_modules/remark-parse": {
"version": "8.0.3",
- "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-8.0.3.tgz",
- "integrity": "sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q==",
+ "license": "MIT",
"dependencies": {
"ccount": "^1.0.0",
"collapse-white-space": "^1.0.2",
@@ -17733,8 +17376,7 @@
},
"node_modules/remark-squeeze-paragraphs": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/remark-squeeze-paragraphs/-/remark-squeeze-paragraphs-4.0.0.tgz",
- "integrity": "sha512-8qRqmL9F4nuLPIgl92XUuxI3pFxize+F1H0e/W3llTk0UsjJaj01+RrirkMw7P21RKe4X6goQhYRSvNWX+70Rw==",
+ "license": "MIT",
"dependencies": {
"mdast-squeeze-paragraphs": "^4.0.0"
},
@@ -17831,8 +17473,7 @@
},
"node_modules/repeat-string": {
"version": "1.6.1",
- "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
- "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==",
+ "license": "MIT",
"engines": {
"node": ">=0.10"
}
@@ -17902,16 +17543,16 @@
},
"node_modules/resolve.exports": {
"version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz",
+ "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=10"
}
},
"node_modules/responselike": {
"version": "1.0.2",
- "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz",
- "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==",
+ "license": "MIT",
"dependencies": {
"lowercase-keys": "^1.0.0"
}
@@ -18009,17 +17650,34 @@
}
},
"node_modules/rollup": {
- "version": "3.29.4",
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.12.0.tgz",
+ "integrity": "sha512-wz66wn4t1OHIJw3+XU7mJJQV/2NAfw5OAk6G6Hoo3zcvz/XOfQ52Vgi+AN4Uxoxi0KBBwk2g8zPrTDA4btSB/Q==",
"dev": true,
- "license": "MIT",
+ "dependencies": {
+ "@types/estree": "1.0.5"
+ },
"bin": {
"rollup": "dist/bin/rollup"
},
"engines": {
- "node": ">=14.18.0",
+ "node": ">=18.0.0",
"npm": ">=8.0.0"
},
"optionalDependencies": {
+ "@rollup/rollup-android-arm-eabi": "4.12.0",
+ "@rollup/rollup-android-arm64": "4.12.0",
+ "@rollup/rollup-darwin-arm64": "4.12.0",
+ "@rollup/rollup-darwin-x64": "4.12.0",
+ "@rollup/rollup-linux-arm-gnueabihf": "4.12.0",
+ "@rollup/rollup-linux-arm64-gnu": "4.12.0",
+ "@rollup/rollup-linux-arm64-musl": "4.12.0",
+ "@rollup/rollup-linux-riscv64-gnu": "4.12.0",
+ "@rollup/rollup-linux-x64-gnu": "4.12.0",
+ "@rollup/rollup-linux-x64-musl": "4.12.0",
+ "@rollup/rollup-win32-arm64-msvc": "4.12.0",
+ "@rollup/rollup-win32-ia32-msvc": "4.12.0",
+ "@rollup/rollup-win32-x64-msvc": "4.12.0",
"fsevents": "~2.3.2"
}
},
@@ -18029,8 +17687,7 @@
},
"node_modules/rtlcss": {
"version": "3.5.0",
- "resolved": "https://registry.npmjs.org/rtlcss/-/rtlcss-3.5.0.tgz",
- "integrity": "sha512-wzgMaMFHQTnyi9YOwsx9LjOxYXJPzS8sYnFaKm6R5ysvTkwzHiB0vxnbHwchHQT65PTdBjDG21/kQBWI7q9O7A==",
+ "license": "MIT",
"dependencies": {
"find-up": "^5.0.0",
"picocolors": "^1.0.0",
@@ -18043,8 +17700,7 @@
},
"node_modules/rtlcss/node_modules/find-up": {
"version": "5.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
- "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
+ "license": "MIT",
"dependencies": {
"locate-path": "^6.0.0",
"path-exists": "^4.0.0"
@@ -18058,8 +17714,7 @@
},
"node_modules/rtlcss/node_modules/locate-path": {
"version": "6.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
- "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
+ "license": "MIT",
"dependencies": {
"p-locate": "^5.0.0"
},
@@ -18072,8 +17727,7 @@
},
"node_modules/rtlcss/node_modules/p-limit": {
"version": "3.1.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
- "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
+ "license": "MIT",
"dependencies": {
"yocto-queue": "^0.1.0"
},
@@ -18086,8 +17740,7 @@
},
"node_modules/rtlcss/node_modules/p-locate": {
"version": "5.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
- "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
+ "license": "MIT",
"dependencies": {
"p-limit": "^3.0.2"
},
@@ -18177,8 +17830,7 @@
},
"node_modules/schema-utils": {
"version": "2.7.1",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz",
- "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==",
+ "license": "MIT",
"dependencies": {
"@types/json-schema": "^7.0.5",
"ajv": "^6.12.4",
@@ -18238,8 +17890,7 @@
},
"node_modules/semver-diff": {
"version": "3.1.1",
- "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz",
- "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==",
+ "license": "MIT",
"dependencies": {
"semver": "^6.3.0"
},
@@ -18249,8 +17900,7 @@
},
"node_modules/semver-diff/node_modules/semver": {
"version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "license": "ISC",
"bin": {
"semver": "bin/semver.js"
}
@@ -18507,18 +18157,16 @@
},
"node_modules/shikiji": {
"version": "0.7.5",
- "resolved": "https://registry.npmjs.org/shikiji/-/shikiji-0.7.5.tgz",
- "integrity": "sha512-He8lAcTZUVuUW+Z4VRPM+TP+HVZCe4R1qzrP7voUrmAKrFKE260YEUVgqcP7y/0ps0uVvKgVhu5vgIshGpGocQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"hast-util-to-html": "^9.0.0"
}
},
"node_modules/shikiji-transformers": {
"version": "0.7.5",
- "resolved": "https://registry.npmjs.org/shikiji-transformers/-/shikiji-transformers-0.7.5.tgz",
- "integrity": "sha512-9faGNS/3xI9QP8HZI2Xa1xtMQtaVkl/ulgMIOiaKY7XcETdUsz2yzors3UQkPUO2cwbQLS376wnZe4Xik8wMBA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"shikiji": "0.7.5"
}
@@ -18902,8 +18550,9 @@
},
"node_modules/source-map-support": {
"version": "0.5.13",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz",
+ "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==",
"dev": true,
- "license": "MIT",
"dependencies": {
"buffer-from": "^1.0.0",
"source-map": "^0.6.0"
@@ -18911,8 +18560,7 @@
},
"node_modules/space-separated-tokens": {
"version": "1.1.5",
- "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz",
- "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==",
+ "license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
@@ -19012,8 +18660,9 @@
},
"node_modules/stack-utils": {
"version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz",
+ "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"escape-string-regexp": "^2.0.0"
},
@@ -19023,16 +18672,16 @@
},
"node_modules/stack-utils/node_modules/escape-string-regexp": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
+ "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/state-toggle": {
"version": "1.0.3",
- "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.3.tgz",
- "integrity": "sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==",
+ "license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
@@ -19066,8 +18715,9 @@
},
"node_modules/string-length": {
"version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz",
+ "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"char-regex": "^1.0.2",
"strip-ansi": "^6.0.0"
@@ -19104,9 +18754,8 @@
},
"node_modules/stringify-entities": {
"version": "4.0.3",
- "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.3.tgz",
- "integrity": "sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"character-entities-html4": "^2.0.0",
"character-entities-legacy": "^3.0.0"
@@ -19118,9 +18767,8 @@
},
"node_modules/stringify-entities/node_modules/character-entities-legacy": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz",
- "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==",
"dev": true,
+ "license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
@@ -19228,8 +18876,7 @@
},
"node_modules/style-to-object": {
"version": "0.3.0",
- "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.3.0.tgz",
- "integrity": "sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==",
+ "license": "MIT",
"dependencies": {
"inline-style-parser": "0.1.1"
}
@@ -19510,8 +19157,9 @@
},
"node_modules/test-exclude": {
"version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
+ "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==",
"dev": true,
- "license": "ISC",
"dependencies": {
"@istanbuljs/schema": "^0.1.2",
"glob": "^7.1.4",
@@ -19620,8 +19268,9 @@
},
"node_modules/tmpl": {
"version": "1.0.5",
- "dev": true,
- "license": "BSD-3-Clause"
+ "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz",
+ "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==",
+ "dev": true
},
"node_modules/to-fast-properties": {
"version": "2.0.0",
@@ -19632,8 +19281,7 @@
},
"node_modules/to-readable-stream": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz",
- "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==",
+ "license": "MIT",
"engines": {
"node": ">=6"
}
@@ -19667,16 +19315,12 @@
"license": "MIT"
},
"node_modules/trim": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz",
- "integrity": "sha512-YzQV+TZg4AxpKxaTHK3c3D+kRDCGVEE7LemdlQZoQXn0iennk10RsIoY6ikzAqJTc9Xjl9C1/waHom/J86ziAQ==",
- "deprecated": "Use String.prototype.trim() instead"
+ "version": "0.0.1"
},
"node_modules/trim-lines": {
"version": "3.0.1",
- "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz",
- "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==",
"dev": true,
+ "license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
@@ -19692,8 +19336,7 @@
},
"node_modules/trim-trailing-lines": {
"version": "1.1.4",
- "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz",
- "integrity": "sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ==",
+ "license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
@@ -19701,91 +19344,31 @@
},
"node_modules/trough": {
"version": "1.0.5",
- "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz",
- "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==",
+ "license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
}
},
- "node_modules/ts-jest": {
- "version": "29.1.1",
+ "node_modules/tsconfig-paths": {
+ "version": "4.2.0",
"dev": true,
"license": "MIT",
"dependencies": {
- "bs-logger": "0.x",
- "fast-json-stable-stringify": "2.x",
- "jest-util": "^29.0.0",
- "json5": "^2.2.3",
- "lodash.memoize": "4.x",
- "make-error": "1.x",
- "semver": "^7.5.3",
- "yargs-parser": "^21.0.1"
- },
- "bin": {
- "ts-jest": "cli.js"
+ "json5": "^2.2.2",
+ "minimist": "^1.2.6",
+ "strip-bom": "^3.0.0"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- },
- "peerDependencies": {
- "@babel/core": ">=7.0.0-beta.0 <8",
- "@jest/types": "^29.0.0",
- "babel-jest": "^29.0.0",
- "jest": "^29.0.0",
- "typescript": ">=4.3 <6"
- },
- "peerDependenciesMeta": {
- "@babel/core": {
- "optional": true
- },
- "@jest/types": {
- "optional": true
- },
- "babel-jest": {
- "optional": true
- },
- "esbuild": {
- "optional": true
- }
+ "node": ">=6"
}
},
- "node_modules/ts-jest/node_modules/yargs-parser": {
- "version": "21.1.1",
+ "node_modules/tsconfig-paths/node_modules/strip-bom": {
+ "version": "3.0.0",
"dev": true,
- "license": "ISC",
+ "license": "MIT",
"engines": {
- "node": ">=12"
- }
- },
- "node_modules/ts-morph": {
- "version": "18.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@ts-morph/common": "~0.19.0",
- "code-block-writer": "^12.0.0"
- }
- },
- "node_modules/tsconfig-paths": {
- "version": "4.2.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "json5": "^2.2.2",
- "minimist": "^1.2.6",
- "strip-bom": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/tsconfig-paths/node_modules/strip-bom": {
- "version": "3.0.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=4"
+ "node": ">=4"
}
},
"node_modules/tslib": {
@@ -20016,8 +19599,9 @@
},
"node_modules/type-detect": {
"version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
+ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=4"
}
@@ -20057,7 +19641,7 @@
}
},
"node_modules/typescript": {
- "version": "5.2.2",
+ "version": "5.3.3",
"license": "Apache-2.0",
"bin": {
"tsc": "bin/tsc",
@@ -20106,8 +19690,7 @@
},
"node_modules/unherit": {
"version": "1.1.3",
- "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.3.tgz",
- "integrity": "sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==",
+ "license": "MIT",
"dependencies": {
"inherits": "^2.0.0",
"xtend": "^4.0.0"
@@ -20151,8 +19734,7 @@
},
"node_modules/unified": {
"version": "9.2.2",
- "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.2.tgz",
- "integrity": "sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ==",
+ "license": "MIT",
"dependencies": {
"bail": "^1.0.0",
"extend": "^3.0.0",
@@ -20168,8 +19750,6 @@
},
"node_modules/unified/node_modules/is-buffer": {
"version": "2.0.5",
- "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz",
- "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==",
"funding": [
{
"type": "github",
@@ -20184,14 +19764,14 @@
"url": "https://feross.org/support"
}
],
+ "license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/unified/node_modules/is-plain-obj": {
"version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
- "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -20220,8 +19800,7 @@
},
"node_modules/unique-string": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz",
- "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==",
+ "license": "MIT",
"dependencies": {
"crypto-random-string": "^2.0.0"
},
@@ -20231,8 +19810,7 @@
},
"node_modules/unist-builder": {
"version": "2.0.3",
- "resolved": "https://registry.npmjs.org/unist-builder/-/unist-builder-2.0.3.tgz",
- "integrity": "sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw==",
+ "license": "MIT",
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
@@ -20240,8 +19818,7 @@
},
"node_modules/unist-util-generated": {
"version": "1.1.6",
- "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-1.1.6.tgz",
- "integrity": "sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg==",
+ "license": "MIT",
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
@@ -20249,8 +19826,7 @@
},
"node_modules/unist-util-is": {
"version": "4.1.0",
- "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz",
- "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==",
+ "license": "MIT",
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
@@ -20258,8 +19834,7 @@
},
"node_modules/unist-util-position": {
"version": "3.1.0",
- "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-3.1.0.tgz",
- "integrity": "sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA==",
+ "license": "MIT",
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
@@ -20267,8 +19842,7 @@
},
"node_modules/unist-util-remove": {
"version": "2.1.0",
- "resolved": "https://registry.npmjs.org/unist-util-remove/-/unist-util-remove-2.1.0.tgz",
- "integrity": "sha512-J8NYPyBm4baYLdCbjmf1bhPu45Cr1MWTm77qd9istEkzWpnN6O9tMsEbB2JhNnBCqGENRqEWomQ+He6au0B27Q==",
+ "license": "MIT",
"dependencies": {
"unist-util-is": "^4.0.0"
},
@@ -20279,8 +19853,7 @@
},
"node_modules/unist-util-remove-position": {
"version": "2.0.1",
- "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz",
- "integrity": "sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA==",
+ "license": "MIT",
"dependencies": {
"unist-util-visit": "^2.0.0"
},
@@ -20291,8 +19864,7 @@
},
"node_modules/unist-util-stringify-position": {
"version": "2.0.3",
- "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz",
- "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==",
+ "license": "MIT",
"dependencies": {
"@types/unist": "^2.0.2"
},
@@ -20303,8 +19875,7 @@
},
"node_modules/unist-util-visit": {
"version": "2.0.3",
- "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz",
- "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==",
+ "license": "MIT",
"dependencies": {
"@types/unist": "^2.0.0",
"unist-util-is": "^4.0.0",
@@ -20317,8 +19888,7 @@
},
"node_modules/unist-util-visit-parents": {
"version": "3.1.1",
- "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz",
- "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==",
+ "license": "MIT",
"dependencies": {
"@types/unist": "^2.0.0",
"unist-util-is": "^4.0.0"
@@ -20347,6 +19917,16 @@
"node": ">= 0.8"
}
},
+ "node_modules/unws": {
+ "version": "0.2.4",
+ "license": "MIT",
+ "engines": {
+ "node": ">=16.14.0"
+ },
+ "peerDependencies": {
+ "ws": "*"
+ }
+ },
"node_modules/upath": {
"version": "2.0.1",
"dev": true,
@@ -20386,8 +19966,7 @@
},
"node_modules/update-notifier": {
"version": "5.1.0",
- "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz",
- "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==",
+ "license": "BSD-2-Clause",
"dependencies": {
"boxen": "^5.0.0",
"chalk": "^4.1.0",
@@ -20413,8 +19992,7 @@
},
"node_modules/update-notifier/node_modules/boxen": {
"version": "5.1.2",
- "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz",
- "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==",
+ "license": "MIT",
"dependencies": {
"ansi-align": "^3.0.0",
"camelcase": "^6.2.0",
@@ -20434,8 +20012,7 @@
},
"node_modules/update-notifier/node_modules/camelcase": {
"version": "6.3.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
- "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
+ "license": "MIT",
"engines": {
"node": ">=10"
},
@@ -20445,13 +20022,11 @@
},
"node_modules/update-notifier/node_modules/ci-info": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
- "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ=="
+ "license": "MIT"
},
"node_modules/update-notifier/node_modules/cli-boxes": {
"version": "2.2.1",
- "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz",
- "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==",
+ "license": "MIT",
"engines": {
"node": ">=6"
},
@@ -20461,8 +20036,7 @@
},
"node_modules/update-notifier/node_modules/is-ci": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz",
- "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==",
+ "license": "MIT",
"dependencies": {
"ci-info": "^2.0.0"
},
@@ -20472,8 +20046,7 @@
},
"node_modules/update-notifier/node_modules/type-fest": {
"version": "0.20.2",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
- "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+ "license": "(MIT OR CC0-1.0)",
"engines": {
"node": ">=10"
},
@@ -20483,8 +20056,7 @@
},
"node_modules/update-notifier/node_modules/widest-line": {
"version": "3.1.0",
- "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz",
- "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==",
+ "license": "MIT",
"dependencies": {
"string-width": "^4.0.0"
},
@@ -20494,8 +20066,7 @@
},
"node_modules/update-notifier/node_modules/wrap-ansi": {
"version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.0.0",
"string-width": "^4.1.0",
@@ -20565,8 +20136,7 @@
},
"node_modules/url-parse-lax": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
- "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==",
+ "license": "MIT",
"dependencies": {
"prepend-http": "^2.0.0"
},
@@ -20639,6 +20209,7 @@
},
"node_modules/uuid": {
"version": "9.0.1",
+ "dev": true,
"funding": [
"https://github.com/sponsors/broofa",
"https://github.com/sponsors/ctavan"
@@ -20654,9 +20225,10 @@
"license": "MIT"
},
"node_modules/v8-to-istanbul": {
- "version": "9.1.3",
+ "version": "9.2.0",
+ "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz",
+ "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==",
"dev": true,
- "license": "ISC",
"dependencies": {
"@jridgewell/trace-mapping": "^0.3.12",
"@types/istanbul-lib-coverage": "^2.0.1",
@@ -20707,8 +20279,7 @@
},
"node_modules/vfile": {
"version": "4.2.1",
- "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz",
- "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==",
+ "license": "MIT",
"dependencies": {
"@types/unist": "^2.0.0",
"is-buffer": "^2.0.0",
@@ -20722,8 +20293,7 @@
},
"node_modules/vfile-location": {
"version": "3.2.0",
- "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-3.2.0.tgz",
- "integrity": "sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA==",
+ "license": "MIT",
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
@@ -20731,8 +20301,7 @@
},
"node_modules/vfile-message": {
"version": "2.0.4",
- "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz",
- "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==",
+ "license": "MIT",
"dependencies": {
"@types/unist": "^2.0.0",
"unist-util-stringify-position": "^2.0.0"
@@ -20744,8 +20313,6 @@
},
"node_modules/vfile/node_modules/is-buffer": {
"version": "2.0.5",
- "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz",
- "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==",
"funding": [
{
"type": "github",
@@ -20760,34 +20327,35 @@
"url": "https://feross.org/support"
}
],
+ "license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/vite": {
- "version": "4.5.1",
- "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.1.tgz",
- "integrity": "sha512-AXXFaAJ8yebyqzoNB9fu2pHoo/nWX+xZlaRwoeYUxEqBO+Zj4msE5G+BhGBll9lYEKv9Hfks52PAF2X7qDYXQA==",
+ "version": "5.1.4",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-5.1.4.tgz",
+ "integrity": "sha512-n+MPqzq+d9nMVTKyewqw6kSt+R3CkvF9QAKY8obiQn8g1fwTscKxyfaYnC632HtBXAQGc1Yjomphwn1dtwGAHg==",
"dev": true,
"dependencies": {
- "esbuild": "^0.18.10",
- "postcss": "^8.4.27",
- "rollup": "^3.27.1"
+ "esbuild": "^0.19.3",
+ "postcss": "^8.4.35",
+ "rollup": "^4.2.0"
},
"bin": {
"vite": "bin/vite.js"
},
"engines": {
- "node": "^14.18.0 || >=16.0.0"
+ "node": "^18.0.0 || >=20.0.0"
},
"funding": {
"url": "https://github.com/vitejs/vite?sponsor=1"
},
"optionalDependencies": {
- "fsevents": "~2.3.2"
+ "fsevents": "~2.3.3"
},
"peerDependencies": {
- "@types/node": ">= 14",
+ "@types/node": "^18.0.0 || >=20.0.0",
"less": "*",
"lightningcss": "^1.21.0",
"sass": "*",
@@ -20820,54 +20388,35 @@
}
},
"node_modules/vite-plugin-dts": {
- "version": "2.3.0",
+ "version": "3.7.3",
+ "resolved": "https://registry.npmjs.org/vite-plugin-dts/-/vite-plugin-dts-3.7.3.tgz",
+ "integrity": "sha512-26eTlBYdpjRLWCsTJebM8vkCieE+p9gP3raf+ecDnzzK5E3FG6VE1wcy55OkRpfWWVlVvKkYFe6uvRHYWx7Nog==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@babel/parser": "^7.21.4",
- "@microsoft/api-extractor": "^7.34.4",
- "@rollup/pluginutils": "^5.0.2",
- "@rushstack/node-core-library": "^3.55.2",
+ "@microsoft/api-extractor": "7.39.0",
+ "@rollup/pluginutils": "^5.1.0",
+ "@vue/language-core": "^1.8.26",
"debug": "^4.3.4",
- "fast-glob": "^3.2.12",
- "fs-extra": "^10.1.0",
- "kolorist": "^1.7.0",
- "magic-string": "^0.29.0",
- "ts-morph": "18.0.0"
+ "kolorist": "^1.8.0",
+ "vue-tsc": "^1.8.26"
},
"engines": {
"node": "^14.18.0 || >=16.0.0"
},
"peerDependencies": {
- "vite": ">=2.9.0"
- }
- },
- "node_modules/vite-plugin-dts/node_modules/fs-extra": {
- "version": "10.1.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "graceful-fs": "^4.2.0",
- "jsonfile": "^6.0.1",
- "universalify": "^2.0.0"
+ "typescript": "*",
+ "vite": "*"
},
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/vite-plugin-wasm": {
- "version": "3.2.2",
- "dev": true,
- "license": "MIT",
- "peerDependencies": {
- "vite": "^2 || ^3 || ^4"
+ "peerDependenciesMeta": {
+ "vite": {
+ "optional": true
+ }
}
},
"node_modules/vitepress": {
"version": "1.0.0-rc.31",
- "resolved": "https://registry.npmjs.org/vitepress/-/vitepress-1.0.0-rc.31.tgz",
- "integrity": "sha512-ikH9pIjOOAbyoYAGBVfTz8TzuXp+UoWaIRMU4bw/oiTg8R65SbAaGKY84xx6TuL+f4VqUJ8lhzW82YyxSLvstA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@docsearch/css": "^3.5.2",
"@docsearch/js": "^3.5.2",
@@ -20901,142 +20450,6 @@
}
}
},
- "node_modules/vitepress/node_modules/@esbuild/linux-x64": {
- "version": "0.19.8",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.8.tgz",
- "integrity": "sha512-lytMAVOM3b1gPypL2TRmZ5rnXl7+6IIk8uB3eLsV1JwcizuolblXRrc5ShPrO9ls/b+RTp+E6gbsuLWHWi2zGg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/vitepress/node_modules/esbuild": {
- "version": "0.19.8",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.8.tgz",
- "integrity": "sha512-l7iffQpT2OrZfH2rXIp7/FkmaeZM0vxbxN9KfiCwGYuZqzMg/JdvX26R31Zxn/Pxvsrg3Y9N6XTcnknqDyyv4w==",
- "dev": true,
- "hasInstallScript": true,
- "bin": {
- "esbuild": "bin/esbuild"
- },
- "engines": {
- "node": ">=12"
- },
- "optionalDependencies": {
- "@esbuild/android-arm": "0.19.8",
- "@esbuild/android-arm64": "0.19.8",
- "@esbuild/android-x64": "0.19.8",
- "@esbuild/darwin-arm64": "0.19.8",
- "@esbuild/darwin-x64": "0.19.8",
- "@esbuild/freebsd-arm64": "0.19.8",
- "@esbuild/freebsd-x64": "0.19.8",
- "@esbuild/linux-arm": "0.19.8",
- "@esbuild/linux-arm64": "0.19.8",
- "@esbuild/linux-ia32": "0.19.8",
- "@esbuild/linux-loong64": "0.19.8",
- "@esbuild/linux-mips64el": "0.19.8",
- "@esbuild/linux-ppc64": "0.19.8",
- "@esbuild/linux-riscv64": "0.19.8",
- "@esbuild/linux-s390x": "0.19.8",
- "@esbuild/linux-x64": "0.19.8",
- "@esbuild/netbsd-x64": "0.19.8",
- "@esbuild/openbsd-x64": "0.19.8",
- "@esbuild/sunos-x64": "0.19.8",
- "@esbuild/win32-arm64": "0.19.8",
- "@esbuild/win32-ia32": "0.19.8",
- "@esbuild/win32-x64": "0.19.8"
- }
- },
- "node_modules/vitepress/node_modules/rollup": {
- "version": "4.6.1",
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.6.1.tgz",
- "integrity": "sha512-jZHaZotEHQaHLgKr8JnQiDT1rmatjgKlMekyksz+yk9jt/8z9quNjnKNRoaM0wd9DC2QKXjmWWuDYtM3jfF8pQ==",
- "dev": true,
- "bin": {
- "rollup": "dist/bin/rollup"
- },
- "engines": {
- "node": ">=18.0.0",
- "npm": ">=8.0.0"
- },
- "optionalDependencies": {
- "@rollup/rollup-android-arm-eabi": "4.6.1",
- "@rollup/rollup-android-arm64": "4.6.1",
- "@rollup/rollup-darwin-arm64": "4.6.1",
- "@rollup/rollup-darwin-x64": "4.6.1",
- "@rollup/rollup-linux-arm-gnueabihf": "4.6.1",
- "@rollup/rollup-linux-arm64-gnu": "4.6.1",
- "@rollup/rollup-linux-arm64-musl": "4.6.1",
- "@rollup/rollup-linux-x64-gnu": "4.6.1",
- "@rollup/rollup-linux-x64-musl": "4.6.1",
- "@rollup/rollup-win32-arm64-msvc": "4.6.1",
- "@rollup/rollup-win32-ia32-msvc": "4.6.1",
- "@rollup/rollup-win32-x64-msvc": "4.6.1",
- "fsevents": "~2.3.2"
- }
- },
- "node_modules/vitepress/node_modules/vite": {
- "version": "5.0.4",
- "resolved": "https://registry.npmjs.org/vite/-/vite-5.0.4.tgz",
- "integrity": "sha512-RzAr8LSvM8lmhB4tQ5OPcBhpjOZRZjuxv9zO5UcxeoY2bd3kP3Ticd40Qma9/BqZ8JS96Ll/jeBX9u+LJZrhVg==",
- "dev": true,
- "dependencies": {
- "esbuild": "^0.19.3",
- "postcss": "^8.4.31",
- "rollup": "^4.2.0"
- },
- "bin": {
- "vite": "bin/vite.js"
- },
- "engines": {
- "node": "^18.0.0 || >=20.0.0"
- },
- "funding": {
- "url": "https://github.com/vitejs/vite?sponsor=1"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.3"
- },
- "peerDependencies": {
- "@types/node": "^18.0.0 || >=20.0.0",
- "less": "*",
- "lightningcss": "^1.21.0",
- "sass": "*",
- "stylus": "*",
- "sugarss": "*",
- "terser": "^5.4.0"
- },
- "peerDependenciesMeta": {
- "@types/node": {
- "optional": true
- },
- "less": {
- "optional": true
- },
- "lightningcss": {
- "optional": true
- },
- "sass": {
- "optional": true
- },
- "stylus": {
- "optional": true
- },
- "sugarss": {
- "optional": true
- },
- "terser": {
- "optional": true
- }
- }
- },
"node_modules/vue": {
"version": "3.3.8",
"dev": true,
@@ -21067,12 +20480,12 @@
}
},
"node_modules/vue-tsc": {
- "version": "1.8.22",
+ "version": "1.8.27",
"dev": true,
"license": "MIT",
"dependencies": {
- "@volar/typescript": "~1.10.5",
- "@vue/language-core": "1.8.22",
+ "@volar/typescript": "~1.11.1",
+ "@vue/language-core": "1.8.27",
"semver": "^7.5.4"
},
"bin": {
@@ -21084,8 +20497,7 @@
},
"node_modules/wait-on": {
"version": "6.0.1",
- "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-6.0.1.tgz",
- "integrity": "sha512-zht+KASY3usTY5u2LgaNqn/Cd8MukxLGjdcZxT2ns5QzDmTFc4XoWBgC+C/na+sMRZTuVygQoMYwdcVjHnYIVw==",
+ "license": "MIT",
"dependencies": {
"axios": "^0.25.0",
"joi": "^17.6.0",
@@ -21102,16 +20514,16 @@
},
"node_modules/wait-on/node_modules/axios": {
"version": "0.25.0",
- "resolved": "https://registry.npmjs.org/axios/-/axios-0.25.0.tgz",
- "integrity": "sha512-cD8FOb0tRH3uuEe6+evtAbgJtfxr7ly3fQjYcMcuPlgkwVS9xboaVIpcDV+cYQe+yGykgwZCs1pzjntcGa6l5g==",
+ "license": "MIT",
"dependencies": {
"follow-redirects": "^1.14.7"
}
},
"node_modules/walker": {
"version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz",
+ "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==",
"dev": true,
- "license": "Apache-2.0",
"dependencies": {
"makeerror": "1.0.12"
}
@@ -21144,20 +20556,12 @@
},
"node_modules/web-namespaces": {
"version": "1.1.4",
- "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-1.1.4.tgz",
- "integrity": "sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==",
+ "license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
}
},
- "node_modules/web-streams-polyfill": {
- "version": "3.2.1",
- "license": "MIT",
- "engines": {
- "node": ">= 8"
- }
- },
"node_modules/webidl-conversions": {
"version": "3.0.1",
"license": "BSD-2-Clause"
@@ -21653,916 +21057,114 @@
"node_modules/wrappy": {
"version": "1.0.2",
"license": "ISC"
- },
- "node_modules/write-file-atomic": {
- "version": "5.0.1",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "imurmurhash": "^0.1.4",
- "signal-exit": "^4.0.1"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/write-file-atomic/node_modules/signal-exit": {
- "version": "4.1.0",
- "dev": true,
- "license": "ISC",
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/write-json-file": {
- "version": "3.2.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "detect-indent": "^5.0.0",
- "graceful-fs": "^4.1.15",
- "make-dir": "^2.1.0",
- "pify": "^4.0.1",
- "sort-keys": "^2.0.0",
- "write-file-atomic": "^2.4.2"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/write-json-file/node_modules/make-dir": {
- "version": "2.1.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "pify": "^4.0.1",
- "semver": "^5.6.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/write-json-file/node_modules/pify": {
- "version": "4.0.1",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/write-json-file/node_modules/semver": {
- "version": "5.7.2",
- "dev": true,
- "license": "ISC",
- "bin": {
- "semver": "bin/semver"
- }
- },
- "node_modules/write-json-file/node_modules/write-file-atomic": {
- "version": "2.4.3",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "graceful-fs": "^4.1.11",
- "imurmurhash": "^0.1.4",
- "signal-exit": "^3.0.2"
- }
- },
- "node_modules/write-pkg": {
- "version": "4.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "sort-keys": "^2.0.0",
- "type-fest": "^0.4.1",
- "write-json-file": "^3.2.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/write-pkg/node_modules/type-fest": {
- "version": "0.4.1",
- "dev": true,
- "license": "(MIT OR CC0-1.0)",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/ws": {
- "version": "7.5.9",
- "license": "MIT",
- "engines": {
- "node": ">=8.3.0"
- },
- "peerDependencies": {
- "bufferutil": "^4.0.1",
- "utf-8-validate": "^5.0.2"
- },
- "peerDependenciesMeta": {
- "bufferutil": {
- "optional": true
- },
- "utf-8-validate": {
- "optional": true
- }
- }
- },
- "node_modules/xdg-basedir": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz",
- "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/xml-js": {
- "version": "1.6.11",
- "license": "MIT",
- "dependencies": {
- "sax": "^1.2.4"
- },
- "bin": {
- "xml-js": "bin/cli.js"
- }
- },
- "node_modules/xtend": {
- "version": "4.0.2",
- "license": "MIT",
- "engines": {
- "node": ">=0.4"
- }
- },
- "node_modules/y18n": {
- "version": "5.0.8",
- "dev": true,
- "license": "ISC",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/yallist": {
- "version": "4.0.0",
- "license": "ISC"
- },
- "node_modules/yaml": {
- "version": "1.10.2",
- "license": "ISC",
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/yargs": {
- "version": "16.2.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "cliui": "^7.0.2",
- "escalade": "^3.1.1",
- "get-caller-file": "^2.0.5",
- "require-directory": "^2.1.1",
- "string-width": "^4.2.0",
- "y18n": "^5.0.5",
- "yargs-parser": "^20.2.2"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/yargs-parser": {
- "version": "20.2.4",
- "dev": true,
- "license": "ISC",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/yargs/node_modules/cliui": {
- "version": "7.0.4",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.0",
- "wrap-ansi": "^7.0.0"
- }
- },
- "node_modules/yargs/node_modules/wrap-ansi": {
- "version": "7.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
- }
- },
- "node_modules/yocto-queue": {
- "version": "0.1.0",
- "license": "MIT",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/z-schema": {
- "version": "5.0.5",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "lodash.get": "^4.4.2",
- "lodash.isequal": "^4.5.0",
- "validator": "^13.7.0"
- },
- "bin": {
- "z-schema": "bin/z-schema"
- },
- "engines": {
- "node": ">=8.0.0"
- },
- "optionalDependencies": {
- "commander": "^9.4.1"
- }
- },
- "node_modules/z-schema/node_modules/commander": {
- "version": "9.5.0",
- "dev": true,
- "license": "MIT",
- "optional": true,
- "engines": {
- "node": "^12.20.0 || >=14"
- }
- },
- "node_modules/zod": {
- "version": "3.22.4",
- "license": "MIT",
- "funding": {
- "url": "https://github.com/sponsors/colinhacks"
- }
- },
- "node_modules/zod-to-json-schema": {
- "version": "3.22.0",
- "license": "ISC",
- "peerDependencies": {
- "zod": "^3.22.4"
- }
- },
- "node_modules/zustand": {
- "version": "4.4.6",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "use-sync-external-store": "1.2.0"
- },
- "engines": {
- "node": ">=12.7.0"
- },
- "peerDependencies": {
- "@types/react": ">=16.8",
- "immer": ">=9.0",
- "react": ">=16.8"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "immer": {
- "optional": true
- },
- "react": {
- "optional": true
- }
- }
- },
- "node_modules/zwitch": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz",
- "integrity": "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "packages/@pufflig/ps-chains": {
- "version": "0.25.1",
- "license": "MIT",
- "dependencies": {
- "mustache": "^4.2.0",
- "pino": "^8.15.0"
- },
- "devDependencies": {
- "@pufflig/ps-types": "^0.25.1",
- "@types/react-dom": "^18.2.7",
- "immer": "^10.0.2",
- "prop-types": "^15.8.1",
- "react": "^18.2.0",
- "react-dom": "^18.2.0",
- "reactflow": "^11.8.1",
- "typescript": "^5.2.2",
- "vite": "^4.4.8",
- "vite-plugin-dts": "^2.3.0"
- }
- },
- "packages/@pufflig/ps-chains/node_modules/react": {
- "version": "18.2.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "loose-envify": "^1.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "packages/@pufflig/ps-chains/node_modules/react-dom": {
- "version": "18.2.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "loose-envify": "^1.1.0",
- "scheduler": "^0.23.0"
- },
- "peerDependencies": {
- "react": "^18.2.0"
- }
- },
- "packages/@pufflig/ps-chains/node_modules/scheduler": {
- "version": "0.23.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "loose-envify": "^1.1.0"
- }
- },
- "packages/@pufflig/ps-models": {
- "version": "0.25.1",
- "license": "MIT",
- "devDependencies": {
- "@pufflig/ps-types": "^0.25.1",
- "typescript": "^5.2.2",
- "vite": "^4.3.9",
- "vite-plugin-dts": "^2.3.0"
- }
- },
- "packages/@pufflig/ps-nodes": {
- "version": "0.25.1",
- "license": "MIT",
- "dependencies": {
- "@dqbd/tiktoken": "^1.0.7",
- "@pufflig/ps-models": "^0.25.1",
- "@pufflig/ps-nodes-config": "^0.25.1",
- "@pufflig/ps-sdk": "^0.25.1",
- "axios": "^1.6.2",
- "langchain": "^0.0.193",
- "lodash": "^4.17.21",
- "mustache": "^4.2.0",
- "openai": "^4.19.0",
- "uuid": "^9.0.1"
- },
- "devDependencies": {
- "@pufflig/ps-types": "^0.25.1",
- "@types/jest": "^29.5.8",
- "@types/lodash": "^4.14.196",
- "@types/mustache": "^4.2.2",
- "@types/uuid": "^9.0.2",
- "jest": "^29.7.0",
- "typescript": "^5.2.2",
- "vite": "^4.3.9",
- "vite-plugin-dts": "^3.6.3",
- "vite-plugin-wasm": "^3.2.2"
- }
- },
- "packages/@pufflig/ps-nodes-config": {
- "version": "0.25.1",
- "license": "MIT",
- "dependencies": {
- "@pufflig/ps-models": "^0.25.1"
- },
- "devDependencies": {
- "@pufflig/ps-types": "^0.25.1",
- "@types/jest": "^29.5.8",
- "jest": "^29.7.0",
- "ts-jest": "^29.1.0",
- "typescript": "^5.2.2",
- "vite": "^4.3.9",
- "vite-plugin-dts": "^2.3.0"
- }
- },
- "packages/@pufflig/ps-nodes/node_modules/@anthropic-ai/sdk": {
- "version": "0.9.1",
- "license": "MIT",
- "dependencies": {
- "@types/node": "^18.11.18",
- "@types/node-fetch": "^2.6.4",
- "abort-controller": "^3.0.0",
- "agentkeepalive": "^4.2.1",
- "digest-fetch": "^1.3.0",
- "form-data-encoder": "1.7.2",
- "formdata-node": "^4.3.2",
- "node-fetch": "^2.6.7",
- "web-streams-polyfill": "^3.2.1"
- }
- },
- "packages/@pufflig/ps-nodes/node_modules/@types/node": {
- "version": "18.18.10",
- "license": "MIT",
- "dependencies": {
- "undici-types": "~5.26.4"
- }
- },
- "packages/@pufflig/ps-nodes/node_modules/ansi-styles": {
- "version": "5.2.0",
- "license": "MIT",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "packages/@pufflig/ps-nodes/node_modules/camelcase": {
- "version": "6.3.0",
- "license": "MIT",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "packages/@pufflig/ps-nodes/node_modules/langchain": {
- "version": "0.0.193",
- "license": "MIT",
- "dependencies": {
- "@anthropic-ai/sdk": "^0.9.1",
- "ansi-styles": "^5.0.0",
- "binary-extensions": "^2.2.0",
- "camelcase": "6",
- "decamelize": "^1.2.0",
- "expr-eval": "^2.0.2",
- "flat": "^5.0.2",
- "js-tiktoken": "^1.0.7",
- "js-yaml": "^4.1.0",
- "jsonpointer": "^5.0.1",
- "langchainhub": "~0.0.6",
- "langsmith": "~0.0.48",
- "ml-distance": "^4.0.0",
- "openai": "^4.19.0",
- "openapi-types": "^12.1.3",
- "p-queue": "^6.6.2",
- "p-retry": "4",
- "uuid": "^9.0.0",
- "yaml": "^2.2.1",
- "zod": "^3.22.3",
- "zod-to-json-schema": "^3.20.4"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@aws-crypto/sha256-js": "^5.0.0",
- "@aws-sdk/client-bedrock-runtime": "^3.422.0",
- "@aws-sdk/client-dynamodb": "^3.310.0",
- "@aws-sdk/client-kendra": "^3.352.0",
- "@aws-sdk/client-lambda": "^3.310.0",
- "@aws-sdk/client-s3": "^3.310.0",
- "@aws-sdk/client-sagemaker-runtime": "^3.310.0",
- "@aws-sdk/client-sfn": "^3.310.0",
- "@aws-sdk/credential-provider-node": "^3.388.0",
- "@azure/storage-blob": "^12.15.0",
- "@clickhouse/client": "^0.0.14",
- "@cloudflare/ai": "^1.0.12",
- "@elastic/elasticsearch": "^8.4.0",
- "@getmetal/metal-sdk": "*",
- "@getzep/zep-js": "^0.9.0",
- "@gomomento/sdk": "^1.47.1",
- "@gomomento/sdk-core": "^1.47.1",
- "@gomomento/sdk-web": "^1.47.1",
- "@google-ai/generativelanguage": "^0.2.1",
- "@google-cloud/storage": "^6.10.1",
- "@huggingface/inference": "^2.6.4",
- "@mozilla/readability": "*",
- "@notionhq/client": "^2.2.10",
- "@opensearch-project/opensearch": "*",
- "@pinecone-database/pinecone": "^1.1.0",
- "@planetscale/database": "^1.8.0",
- "@qdrant/js-client-rest": "^1.2.0",
- "@raycast/api": "^1.55.2",
- "@rockset/client": "^0.9.1",
- "@smithy/eventstream-codec": "^2.0.5",
- "@smithy/protocol-http": "^3.0.6",
- "@smithy/signature-v4": "^2.0.10",
- "@smithy/util-utf8": "^2.0.0",
- "@supabase/postgrest-js": "^1.1.1",
- "@supabase/supabase-js": "^2.10.0",
- "@tensorflow-models/universal-sentence-encoder": "*",
- "@tensorflow/tfjs-converter": "*",
- "@tensorflow/tfjs-core": "*",
- "@upstash/redis": "^1.20.6",
- "@vercel/kv": "^0.2.3",
- "@vercel/postgres": "^0.5.0",
- "@writerai/writer-sdk": "^0.40.2",
- "@xata.io/client": "^0.25.1",
- "@xenova/transformers": "^2.5.4",
- "@zilliz/milvus2-sdk-node": ">=2.2.7",
- "apify-client": "^2.7.1",
- "assemblyai": "^2.0.2",
- "axios": "*",
- "cassandra-driver": "^4.7.2",
- "cheerio": "^1.0.0-rc.12",
- "chromadb": "*",
- "closevector-common": "0.1.0-alpha.1",
- "closevector-node": "0.1.0-alpha.10",
- "closevector-web": "0.1.0-alpha.16",
- "cohere-ai": ">=6.0.0",
- "convex": "^1.3.1",
- "d3-dsv": "^2.0.0",
- "epub2": "^3.0.1",
- "faiss-node": "^0.5.1",
- "fast-xml-parser": "^4.2.7",
- "firebase-admin": "^11.9.0",
- "google-auth-library": "^8.9.0",
- "googleapis": "^126.0.1",
- "hnswlib-node": "^1.4.2",
- "html-to-text": "^9.0.5",
- "ignore": "^5.2.0",
- "ioredis": "^5.3.2",
- "jsdom": "*",
- "llmonitor": "^0.5.9",
- "lodash": "^4.17.21",
- "mammoth": "*",
- "mongodb": "^5.2.0",
- "mysql2": "^3.3.3",
- "neo4j-driver": "*",
- "node-llama-cpp": "*",
- "notion-to-md": "^3.1.0",
- "pdf-parse": "1.1.1",
- "peggy": "^3.0.2",
- "pg": "^8.11.0",
- "pg-copy-streams": "^6.0.5",
- "pickleparser": "^0.2.1",
- "playwright": "^1.32.1",
- "portkey-ai": "^0.1.11",
- "puppeteer": "^19.7.2",
- "redis": "^4.6.4",
- "replicate": "^0.18.0",
- "sonix-speech-recognition": "^2.1.1",
- "srt-parser-2": "^1.2.2",
- "typeorm": "^0.3.12",
- "typesense": "^1.5.3",
- "usearch": "^1.1.1",
- "vectordb": "^0.1.4",
- "voy-search": "0.6.2",
- "weaviate-ts-client": "^1.4.0",
- "web-auth-library": "^1.0.3",
- "ws": "^8.14.2",
- "youtube-transcript": "^1.0.6",
- "youtubei.js": "^5.8.0"
- },
- "peerDependenciesMeta": {
- "@aws-crypto/sha256-js": {
- "optional": true
- },
- "@aws-sdk/client-bedrock-runtime": {
- "optional": true
- },
- "@aws-sdk/client-dynamodb": {
- "optional": true
- },
- "@aws-sdk/client-kendra": {
- "optional": true
- },
- "@aws-sdk/client-lambda": {
- "optional": true
- },
- "@aws-sdk/client-s3": {
- "optional": true
- },
- "@aws-sdk/client-sagemaker-runtime": {
- "optional": true
- },
- "@aws-sdk/client-sfn": {
- "optional": true
- },
- "@aws-sdk/credential-provider-node": {
- "optional": true
- },
- "@azure/storage-blob": {
- "optional": true
- },
- "@clickhouse/client": {
- "optional": true
- },
- "@cloudflare/ai": {
- "optional": true
- },
- "@elastic/elasticsearch": {
- "optional": true
- },
- "@getmetal/metal-sdk": {
- "optional": true
- },
- "@getzep/zep-js": {
- "optional": true
- },
- "@gomomento/sdk": {
- "optional": true
- },
- "@gomomento/sdk-core": {
- "optional": true
- },
- "@gomomento/sdk-web": {
- "optional": true
- },
- "@google-ai/generativelanguage": {
- "optional": true
- },
- "@google-cloud/storage": {
- "optional": true
- },
- "@huggingface/inference": {
- "optional": true
- },
- "@mozilla/readability": {
- "optional": true
- },
- "@notionhq/client": {
- "optional": true
- },
- "@opensearch-project/opensearch": {
- "optional": true
- },
- "@pinecone-database/pinecone": {
- "optional": true
- },
- "@planetscale/database": {
- "optional": true
- },
- "@qdrant/js-client-rest": {
- "optional": true
- },
- "@raycast/api": {
- "optional": true
- },
- "@rockset/client": {
- "optional": true
- },
- "@smithy/eventstream-codec": {
- "optional": true
- },
- "@smithy/protocol-http": {
- "optional": true
- },
- "@smithy/signature-v4": {
- "optional": true
- },
- "@smithy/util-utf8": {
- "optional": true
- },
- "@supabase/postgrest-js": {
- "optional": true
- },
- "@supabase/supabase-js": {
- "optional": true
- },
- "@tensorflow-models/universal-sentence-encoder": {
- "optional": true
- },
- "@tensorflow/tfjs-converter": {
- "optional": true
- },
- "@tensorflow/tfjs-core": {
- "optional": true
- },
- "@upstash/redis": {
- "optional": true
- },
- "@vercel/kv": {
- "optional": true
- },
- "@vercel/postgres": {
- "optional": true
- },
- "@writerai/writer-sdk": {
- "optional": true
- },
- "@xata.io/client": {
- "optional": true
- },
- "@xenova/transformers": {
- "optional": true
- },
- "@zilliz/milvus2-sdk-node": {
- "optional": true
- },
- "apify-client": {
- "optional": true
- },
- "assemblyai": {
- "optional": true
- },
- "axios": {
- "optional": true
- },
- "cassandra-driver": {
- "optional": true
- },
- "cheerio": {
- "optional": true
- },
- "chromadb": {
- "optional": true
- },
- "closevector-common": {
- "optional": true
- },
- "closevector-node": {
- "optional": true
- },
- "closevector-web": {
- "optional": true
- },
- "cohere-ai": {
- "optional": true
- },
- "convex": {
- "optional": true
- },
- "d3-dsv": {
- "optional": true
- },
- "epub2": {
- "optional": true
- },
- "faiss-node": {
- "optional": true
- },
- "fast-xml-parser": {
- "optional": true
- },
- "firebase-admin": {
- "optional": true
- },
- "google-auth-library": {
- "optional": true
- },
- "googleapis": {
- "optional": true
- },
- "hnswlib-node": {
- "optional": true
- },
- "html-to-text": {
- "optional": true
- },
- "ignore": {
- "optional": true
- },
- "ioredis": {
- "optional": true
- },
- "jsdom": {
- "optional": true
- },
- "llmonitor": {
- "optional": true
- },
- "lodash": {
- "optional": true
- },
- "mammoth": {
- "optional": true
- },
- "mongodb": {
- "optional": true
- },
- "mysql2": {
- "optional": true
- },
- "neo4j-driver": {
- "optional": true
- },
- "node-llama-cpp": {
- "optional": true
- },
- "notion-to-md": {
- "optional": true
- },
- "pdf-parse": {
- "optional": true
- },
- "peggy": {
- "optional": true
- },
- "pg": {
- "optional": true
- },
- "pg-copy-streams": {
- "optional": true
- },
- "pickleparser": {
- "optional": true
- },
- "playwright": {
- "optional": true
- },
- "portkey-ai": {
- "optional": true
- },
- "puppeteer": {
- "optional": true
- },
- "redis": {
- "optional": true
- },
- "replicate": {
- "optional": true
- },
- "sonix-speech-recognition": {
- "optional": true
- },
- "srt-parser-2": {
- "optional": true
- },
- "typeorm": {
- "optional": true
- },
- "typesense": {
- "optional": true
- },
- "usearch": {
- "optional": true
- },
- "vectordb": {
- "optional": true
- },
- "voy-search": {
- "optional": true
- },
- "weaviate-ts-client": {
- "optional": true
- },
- "web-auth-library": {
- "optional": true
- },
- "ws": {
- "optional": true
- },
- "youtube-transcript": {
- "optional": true
- },
- "youtubei.js": {
- "optional": true
- }
+ },
+ "node_modules/write-file-atomic": {
+ "version": "5.0.1",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "imurmurhash": "^0.1.4",
+ "signal-exit": "^4.0.1"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/write-file-atomic/node_modules/signal-exit": {
+ "version": "4.1.0",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "packages/@pufflig/ps-nodes/node_modules/vite-plugin-dts": {
- "version": "3.6.3",
+ "node_modules/write-json-file": {
+ "version": "3.2.0",
"dev": true,
"license": "MIT",
"dependencies": {
- "@microsoft/api-extractor": "^7.38.0",
- "@rollup/pluginutils": "^5.0.5",
- "@vue/language-core": "^1.8.20",
- "debug": "^4.3.4",
- "kolorist": "^1.8.0",
- "vue-tsc": "^1.8.20"
+ "detect-indent": "^5.0.0",
+ "graceful-fs": "^4.1.15",
+ "make-dir": "^2.1.0",
+ "pify": "^4.0.1",
+ "sort-keys": "^2.0.0",
+ "write-file-atomic": "^2.4.2"
},
"engines": {
- "node": "^14.18.0 || >=16.0.0"
+ "node": ">=6"
+ }
+ },
+ "node_modules/write-json-file/node_modules/make-dir": {
+ "version": "2.1.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "pify": "^4.0.1",
+ "semver": "^5.6.0"
},
- "peerDependencies": {
- "typescript": "*",
- "vite": "*"
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/write-json-file/node_modules/pify": {
+ "version": "4.0.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/write-json-file/node_modules/semver": {
+ "version": "5.7.2",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/write-json-file/node_modules/write-file-atomic": {
+ "version": "2.4.3",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "graceful-fs": "^4.1.11",
+ "imurmurhash": "^0.1.4",
+ "signal-exit": "^3.0.2"
+ }
+ },
+ "node_modules/write-pkg": {
+ "version": "4.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "sort-keys": "^2.0.0",
+ "type-fest": "^0.4.1",
+ "write-json-file": "^3.2.0"
},
- "peerDependenciesMeta": {
- "vite": {
- "optional": true
- }
+ "engines": {
+ "node": ">=8"
}
},
- "packages/@pufflig/ps-nodes/node_modules/ws": {
- "version": "8.14.2",
+ "node_modules/write-pkg/node_modules/type-fest": {
+ "version": "0.4.1",
+ "dev": true,
+ "license": "(MIT OR CC0-1.0)",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/ws": {
+ "version": "7.5.9",
"license": "MIT",
- "optional": true,
- "peer": true,
"engines": {
- "node": ">=10.0.0"
+ "node": ">=8.3.0"
},
"peerDependencies": {
"bufferutil": "^4.0.1",
- "utf-8-validate": ">=5.0.2"
+ "utf-8-validate": "^5.0.2"
},
"peerDependenciesMeta": {
"bufferutil": {
@@ -22573,54 +21175,171 @@
}
}
},
- "packages/@pufflig/ps-nodes/node_modules/yaml": {
- "version": "2.3.4",
+ "node_modules/xdg-basedir": {
+ "version": "4.0.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/xml-js": {
+ "version": "1.6.11",
+ "license": "MIT",
+ "dependencies": {
+ "sax": "^1.2.4"
+ },
+ "bin": {
+ "xml-js": "bin/cli.js"
+ }
+ },
+ "node_modules/xtend": {
+ "version": "4.0.2",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.4"
+ }
+ },
+ "node_modules/y18n": {
+ "version": "5.0.8",
+ "dev": true,
"license": "ISC",
"engines": {
- "node": ">= 14"
+ "node": ">=10"
}
},
- "packages/@pufflig/ps-sdk": {
- "version": "0.25.1",
+ "node_modules/yallist": {
+ "version": "4.0.0",
+ "license": "ISC"
+ },
+ "node_modules/yaml": {
+ "version": "1.10.2",
+ "license": "ISC",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/yargs": {
+ "version": "16.2.0",
+ "dev": true,
"license": "MIT",
"dependencies": {
- "@pufflig/ps-models": "^0.25.1",
- "axios": "^1.5.0"
+ "cliui": "^7.0.2",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.0",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^20.2.2"
},
- "devDependencies": {
- "typescript": "^5.2.2",
- "vite": "^4.4.9",
- "vite-plugin-dts": "^3.5.3"
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/yargs-parser": {
+ "version": "20.2.4",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/yargs/node_modules/cliui": {
+ "version": "7.0.4",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^7.0.0"
}
},
- "packages/@pufflig/ps-sdk/node_modules/vite-plugin-dts": {
- "version": "3.6.3",
+ "node_modules/yargs/node_modules/wrap-ansi": {
+ "version": "7.0.0",
"dev": true,
"license": "MIT",
"dependencies": {
- "@microsoft/api-extractor": "^7.38.0",
- "@rollup/pluginutils": "^5.0.5",
- "@vue/language-core": "^1.8.20",
- "debug": "^4.3.4",
- "kolorist": "^1.8.0",
- "vue-tsc": "^1.8.20"
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
},
"engines": {
- "node": "^14.18.0 || >=16.0.0"
+ "node": ">=10"
},
- "peerDependencies": {
- "typescript": "*",
- "vite": "*"
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/yocto-queue": {
+ "version": "0.1.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
},
- "peerDependenciesMeta": {
- "vite": {
- "optional": true
- }
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/z-schema": {
+ "version": "5.0.5",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "lodash.get": "^4.4.2",
+ "lodash.isequal": "^4.5.0",
+ "validator": "^13.7.0"
+ },
+ "bin": {
+ "z-schema": "bin/z-schema"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ },
+ "optionalDependencies": {
+ "commander": "^9.4.1"
+ }
+ },
+ "node_modules/z-schema/node_modules/commander": {
+ "version": "9.5.0",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": "^12.20.0 || >=14"
+ }
+ },
+ "node_modules/zwitch": {
+ "version": "1.0.5",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
}
},
- "packages/@pufflig/ps-types": {
+ "packages/@pufflig/ps-models": {
"version": "0.25.1",
- "license": "MIT"
+ "license": "MIT",
+ "devDependencies": {
+ "typescript": "^5.3.3",
+ "vite": "^5.1.4",
+ "vite-plugin-dts": "^3.7.3"
+ }
+ },
+ "packages/@pufflig/ps-sdk": {
+ "version": "0.25.1",
+ "license": "MIT",
+ "dependencies": {
+ "@pufflig/ps-models": "*",
+ "axios": "^1.6.7",
+ "pino": "^8.17.2",
+ "unws": "^0.2.4"
+ },
+ "devDependencies": {
+ "@types/jest": "^29.5.12",
+ "jest": "^29.7.0",
+ "typescript": "^5.3.3",
+ "vite": "^5.1.4",
+ "vite-plugin-dts": "^3.7.3"
+ }
},
"websites/blog": {
"name": "prompt-studio-blog",
diff --git a/packages/@pufflig/ps-chains/LICENSE b/packages/@pufflig/ps-chains/LICENSE
deleted file mode 100644
index 348250a..0000000
--- a/packages/@pufflig/ps-chains/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2023 Pufflig AB
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/packages/@pufflig/ps-chains/README.md b/packages/@pufflig/ps-chains/README.md
deleted file mode 100644
index af8981e..0000000
--- a/packages/@pufflig/ps-chains/README.md
+++ /dev/null
@@ -1,17 +0,0 @@
-# @pufflig/ps-chains
-
-[![Version](https://img.shields.io/npm/v/@pufflig/ps-chains?style=flat&colorA=000000&colorB=000000)](https://www.npmjs.com/package/@pufflig/ps-chains)
-
-Flow runner that updates the state of nodes based on how they are connected with each other.
-
-## Documentation
-
-You can find the documentation for this package [here]().
-
-## Storybook
-
-You can preview the chain in a storybook by running:
-
-```
-npm run storybook
-```
diff --git a/packages/@pufflig/ps-chains/jest.config.js b/packages/@pufflig/ps-chains/jest.config.js
deleted file mode 100644
index 3abcbd9..0000000
--- a/packages/@pufflig/ps-chains/jest.config.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/** @type {import('ts-jest').JestConfigWithTsJest} */
-module.exports = {
- preset: "ts-jest",
- testEnvironment: "node",
-};
diff --git a/packages/@pufflig/ps-chains/package.json b/packages/@pufflig/ps-chains/package.json
deleted file mode 100644
index 6d2e84e..0000000
--- a/packages/@pufflig/ps-chains/package.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
- "name": "@pufflig/ps-chains",
- "version": "0.25.1",
- "license": "MIT",
- "main": "./dist/ps-chains.umd.js",
- "module": "./dist/ps-chains.es.js",
- "types": "./dist/ps-chains.d.ts",
- "files": [
- "dist"
- ],
- "scripts": {
- "build": "tsc && vite build",
- "prepublishOnly": "npm run build",
- "storybook": "storybook dev -p 6006",
- "build-storybook": "storybook build",
- "test": "jest"
- },
- "devDependencies": {
- "@pufflig/ps-types": "^0.25.1",
- "@types/react-dom": "^18.2.7",
- "immer": "^10.0.2",
- "prop-types": "^15.8.1",
- "react": "^18.2.0",
- "react-dom": "^18.2.0",
- "reactflow": "^11.8.1",
- "typescript": "^5.2.2",
- "vite": "^4.4.8",
- "vite-plugin-dts": "^2.3.0"
- },
- "dependencies": {
- "mustache": "^4.2.0",
- "pino": "^8.15.0"
- },
- "gitHead": "534ff07d186327e38133c0c14a5badd04ced0a9c"
-}
diff --git a/packages/@pufflig/ps-chains/src/engines/dataflow/__snapshots__/runFlow.test.ts.snap b/packages/@pufflig/ps-chains/src/engines/dataflow/__snapshots__/runFlow.test.ts.snap
deleted file mode 100644
index 2c2135f..0000000
--- a/packages/@pufflig/ps-chains/src/engines/dataflow/__snapshots__/runFlow.test.ts.snap
+++ /dev/null
@@ -1,366 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`a node can run its children multiple times 1`] = `
-{
- "n1": {
- "input": {
- "data": "",
- },
- },
- "n2": {
- "input": {
- "list": [
- "a",
- "b",
- ],
- },
- "status": "idle",
- },
- "n3": {
- "input": {
- "data": "b",
- },
- },
- "n4": {
- "input": {
- "data": "b",
- },
- },
-}
-`;
-
-exports[`a node can run its children multiple times 2 1`] = `
-{
- "n0": {
- "input": {
- "data": "",
- },
- },
- "n1": {
- "input": {
- "list": [
- "a",
- "b",
- ],
- },
- "status": "idle",
- },
- "n2": {
- "input": {
- "data": "",
- "list": [
- "a",
- "b",
- ],
- },
- },
- "n3": {
- "input": {
- "data": [
- "a",
- "b",
- ],
- },
- },
-}
-`;
-
-exports[`avoid hanging on loops 1`] = `
-{
- "n1": {
- "input": {
- "data": "Hello {{World}}",
- },
- },
-}
-`;
-
-exports[`can handle input from multiple origins 1`] = `
-{
- "n1": {
- "input": {
- "data": "Hello {{World}}",
- },
- },
- "n2": {
- "input": {
- "data": "Hello {{World}}",
- },
- },
- "n3": {
- "input": {
- "data1": "Hello {{World}}",
- "data2": "Hello {{World}}",
- },
- },
-}
-`;
-
-exports[`can resolve variables correctly 1`] = `
-{
- "n1": {
- "input": {
- "data": "\${{ps:ref:file:MY_FILE}} {{keep}}",
- },
- "status": "idle",
- },
- "n2": {
- "input": {
- "data": "INSERTED_FILE {{keep}}",
- },
- },
-}
-`;
-
-exports[`correctly map output from one node onto another 1`] = `
-{
- "n1": {
- "input": {
- "data": "test data",
- },
- },
- "n2": {
- "input": {
- "data1": "test data",
- "data2": "",
- },
- },
- "n3": {
- "input": {
- "data": "test data",
- },
- },
-}
-`;
-
-exports[`do not run an executable node unless the parent was run already 1`] = `
-{
- "n2": {
- "input": {
- "data": "",
- },
- },
-}
-`;
-
-exports[`ignore inputs from nested unreachable nodes 1`] = `
-{
- "n1": {
- "input": {
- "data": "Hello {{World}}",
- },
- },
- "n4": {
- "input": {
- "data1": "Hello {{World}}",
- "data2": "",
- },
- },
- "n5": {
- "input": {
- "data": "Hello {{World}}",
- },
- },
-}
-`;
-
-exports[`ignore inputs from unreachable nodes 1`] = `
-{
- "n1": {
- "input": {
- "data": "Hello {{World}}",
- },
- },
- "n3": {
- "input": {
- "data1": "Hello {{World}}",
- "data2": "",
- },
- },
- "n4": {
- "input": {
- "data": "Hello {{World}}",
- },
- },
-}
-`;
-
-exports[`merge existing state on input 1`] = `
-{
- "n1": {
- "input": {
- "data1": "IS_OVERWRITTEN",
- "data2": "KEEP",
- },
- "status": "idle",
- },
-}
-`;
-
-exports[`nodes with an execution input are not run without an execution connection 1`] = `
-{
- "n1": {
- "input": {
- "data": "Hello {{World}}",
- },
- },
-}
-`;
-
-exports[`only run a node once all inputs are resolved 1`] = `
-{
- "n1": {
- "input": {
- "data": "Hello {{World}}",
- },
- },
- "n2": {
- "input": {
- "data": "Hello {{World}}",
- },
- },
- "n3": {
- "input": {
- "data1": "Hello {{World}}",
- "data2": "Hello {{World}}",
- },
- },
- "n4": {
- "input": {
- "data": "Hello {{World}}",
- },
- },
-}
-`;
-
-exports[`run a flow with a single node 1`] = `
-{
- "n1": {
- "input": {
- "data": "Hello World",
- },
- "status": "idle",
- },
-}
-`;
-
-exports[`run nodes connected through execution nodes 1`] = `
-{
- "n1": {
- "input": {
- "data": "",
- },
- },
- "n2": {
- "input": {
- "data": "",
- },
- },
- "n3": {
- "input": {
- "data": "",
- },
- },
-}
-`;
-
-exports[`running a node updates the input of its children 1`] = `
-{
- "n1": {
- "input": {
- "data": "Hello {{World}}",
- },
- },
- "n2": {
- "input": {
- "data": "Hello {{World}}",
- },
- },
-}
-`;
-
-exports[`running a node with a missing value does not override the default value in the target node 1`] = `
-{
- "n1": {
- "input": {
- "data1": "TEST DATA",
- },
- },
- "n2": {
- "input": {
- "data1": "TEST DATA",
- "data2": "DEFAULT_DATA_2",
- },
- },
-}
-`;
-
-exports[`running a node with several connections to a child should update the child correctly 1`] = `
-{
- "n1": {
- "input": {
- "data": "TEST DATA",
- },
- },
- "n2": {
- "input": {
- "data1": "TEST DATA",
- "data2": "TEST DATA",
- },
- },
-}
-`;
-
-exports[`should run even when lifecycle methods are missing 1`] = `
-{
- "n1": {
- "input": {
- "data": "Hello World",
- },
- "status": "idle",
- },
-}
-`;
-
-exports[`should throw error if the node is undefined 1`] = `[Error: Definition for node not_a_node not found]`;
-
-exports[`update array variables 1`] = `
-{
- "n2": {
- "input": {
- "data": "",
- "variables": [
- {
- "defaultValue": "test1",
- "description": "",
- "id": "world",
- "name": "world",
- "type": "text",
- },
- {
- "defaultValue": "test2",
- "description": "",
- "id": "hello",
- "name": "hello",
- "type": "text",
- },
- ],
- },
- },
-}
-`;
-
-exports[`when running a flow in dataflow mode, do no run child executable nodes 1`] = `
-{
- "n1": {
- "input": {
- "data": "",
- },
- },
- "n2": {
- "input": {
- "data": "",
- },
- },
-}
-`;
diff --git a/packages/@pufflig/ps-chains/src/engines/dataflow/__snapshots__/updateNodeInput.test.ts.snap b/packages/@pufflig/ps-chains/src/engines/dataflow/__snapshots__/updateNodeInput.test.ts.snap
deleted file mode 100644
index ecd1772..0000000
--- a/packages/@pufflig/ps-chains/src/engines/dataflow/__snapshots__/updateNodeInput.test.ts.snap
+++ /dev/null
@@ -1,18 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`updateNodeInput - simpleFlow, the children nodes are not updated 1`] = `
-{
- "input": {
- "data": "Hello World",
- },
-}
-`;
-
-exports[`updateNodeInput - singleNodeFlow 1`] = `
-{
- "input": {
- "data": "Hello World",
- },
- "status": "idle",
-}
-`;
diff --git a/packages/@pufflig/ps-chains/src/engines/dataflow/constants.ts b/packages/@pufflig/ps-chains/src/engines/dataflow/constants.ts
deleted file mode 100644
index 3ec20f2..0000000
--- a/packages/@pufflig/ps-chains/src/engines/dataflow/constants.ts
+++ /dev/null
@@ -1,32 +0,0 @@
-import { Execute, GetTargets, NextNode, Node, ParamValueMap } from "@pufflig/ps-types";
-
-export const delimiterStart = "${{ps:ref:" as const;
-export const delimiterEnd = "}}" as const;
-export const executionPrefix = "exec:";
-
-/**
- * Placeholder function for executing a node.
- * Simply returns the nodes inputs.
- * @param input
- * @param _
- * @returns
- */
-export const identity: Execute = async (input, _) => input;
-
-/**
- * Given a node, returns the default targets for the node.
- * The default target is the first executable output.
- * @param node
- * @returns
- */
-export const getDefaultTargets =
- (node: Node): GetTargets =>
- async (_, results) => {
- if (!node.execution?.outputs?.[0]?.id) return [];
- return [
- {
- execSource: node.execution.outputs[0].id,
- inputs: results,
- } as NextNode,
- ];
- };
diff --git a/packages/@pufflig/ps-chains/src/engines/dataflow/runFlow.test.ts b/packages/@pufflig/ps-chains/src/engines/dataflow/runFlow.test.ts
deleted file mode 100644
index 6eb19a3..0000000
--- a/packages/@pufflig/ps-chains/src/engines/dataflow/runFlow.test.ts
+++ /dev/null
@@ -1,520 +0,0 @@
-import {
- configOnlyFlow,
- execWithLoop,
- loopWithJoin,
- mappedExample,
- multiInput,
- multiInputWithOutput,
- multiNodes,
- multistep,
- severalConnections,
- simpleExec,
- simpleExecWithData,
- simpleExistingState,
- simpleFlow,
- simpleFlowWithExec,
- simpleFlowWithVars,
- simpleLoop,
- singleNodeFlow,
-} from "../../mocks/chains";
-import { runFlow } from "./runFlow";
-import { produce } from "immer";
-
-/**
- * -> error
- */
-test("should throw error if the node is undefined", async () => {
- try {
- await runFlow(singleNodeFlow, "not_a_node", { data: "Hello World" });
- } catch (err) {
- expect(err).toMatchSnapshot();
- }
-});
-
-test("should run even when lifecycle methods are missing", async () => {
- const onNodeInputUpdate = jest.fn();
- const onNodeRunComplete = jest.fn();
- const onNodeRunError = jest.fn();
- const res = await runFlow(
- configOnlyFlow,
- "n1",
- { data: "Hello World" },
- {
- onNodeInputUpdate,
- onNodeRunError: () => {},
- }
- );
- expect(onNodeInputUpdate).toHaveBeenCalledTimes(1);
- expect(onNodeRunComplete).toHaveBeenCalledTimes(0);
- expect(onNodeRunError).toHaveBeenCalledTimes(0);
- expect(res).toMatchSnapshot();
-});
-
-/**
- * -> (1)
- */
-test("run a flow with a single node", async () => {
- const onNodeInputUpdate = jest.fn();
- const onNodeRunComplete = jest.fn();
- const onNodeRunError = jest.fn();
- const res = await runFlow(
- singleNodeFlow,
- "n1",
- { data: "Hello World" },
- {
- onNodeInputUpdate,
- onNodeRunError: () => {},
- }
- );
- expect(onNodeInputUpdate).toHaveBeenCalledTimes(1);
- expect(onNodeRunComplete).toHaveBeenCalledTimes(0);
- expect(onNodeRunError).toHaveBeenCalledTimes(0);
- expect(res).toMatchSnapshot();
-});
-
-/**
- * -> (1) -> (2)
- */
-test("running a node updates the input of its children", async () => {
- const onNodeInputUpdate = jest.fn();
- const onNodeRunComplete = jest.fn();
- const onNodeRunError = jest.fn();
- const res = await runFlow(
- simpleFlow,
- "n1",
- { data: "Hello {{World}}" },
- {
- onNodeRunComplete,
- onNodeInputUpdate,
- onNodeRunError,
- }
- );
- expect(onNodeInputUpdate).toHaveBeenCalledTimes(2);
- expect(onNodeRunComplete).toHaveBeenCalledTimes(1);
- expect(onNodeRunError).toHaveBeenCalledTimes(0);
- expect(res).toMatchSnapshot();
-});
-
-/**
- * -> (1x) (x2x)
- * -> (2) -> (X)
- */
-test("nodes with an execution input are not run without an execution connection", async () => {
- const onNodeInputUpdate = jest.fn();
- const onNodeRunComplete = jest.fn();
- const onNodeRunError = jest.fn();
- const res = await runFlow(
- simpleFlowWithExec,
- "n1",
- { data: "Hello {{World}}" },
- {
- onNodeInputUpdate,
- onNodeRunComplete,
- onNodeRunError,
- }
- );
- expect(onNodeInputUpdate).toHaveBeenCalledTimes(1);
- expect(onNodeRunComplete).toHaveBeenCalledTimes(0);
- expect(onNodeRunError).toHaveBeenCalledTimes(0);
- expect(res).toMatchSnapshot();
-});
-
-/**
- * -> (1) -> (1)
- */
-test("avoid hanging on loops", async () => {
- const onNodeInputUpdate = jest.fn();
- const onNodeRunComplete = jest.fn();
- const onNodeRunError = jest.fn();
- const res = await runFlow(
- simpleLoop,
- "n1",
- { data: "Hello {{World}}" },
- {
- onNodeInputUpdate,
- onNodeRunComplete,
- onNodeRunError,
- }
- );
- expect(onNodeInputUpdate).toHaveBeenCalledTimes(2);
- expect(onNodeRunComplete).toHaveBeenCalledTimes(1);
- expect(onNodeRunError).toHaveBeenCalledTimes(0);
- expect(res).toMatchSnapshot();
-});
-
-/**
- * -> (1)
- */
-test("merge existing state on input", async () => {
- const onNodeInputUpdate = jest.fn();
- const onNodeRunComplete = jest.fn();
- const onNodeRunError = jest.fn();
- const res = await runFlow(
- simpleExistingState,
- "n1",
- { data1: "IS_OVERWRITTEN" },
- {
- onNodeInputUpdate,
- onNodeRunComplete,
- onNodeRunError,
- }
- );
- expect(onNodeInputUpdate).toHaveBeenCalledTimes(1);
- expect(onNodeRunComplete).toHaveBeenCalledTimes(0);
- expect(onNodeRunError).toHaveBeenCalledTimes(0);
- expect(res).toMatchSnapshot();
-});
-
-/**
- * -> (1a) -> (b2c) -> (a3)
- */
-test("correctly map output from one node onto another", async () => {
- const onNodeInputUpdate = jest.fn();
- const onNodeRunComplete = jest.fn();
- const onNodeRunError = jest.fn();
- const res = await runFlow(
- mappedExample,
- "n1",
- { data: "test data" },
- {
- onNodeInputUpdate,
- onNodeRunComplete,
- onNodeRunError,
- }
- );
- expect(onNodeInputUpdate).toHaveBeenCalledTimes(3);
- expect(onNodeRunComplete).toHaveBeenCalledTimes(2);
- expect(onNodeRunError).toHaveBeenCalledTimes(0);
- expect(res).toMatchSnapshot();
-});
-
-/**
- * -> (1a) -----------> (a4)
- * \--> (a3b) --> (b4)
- */
-test("can handle input from multiple origins", async () => {
- const onNodeInputUpdate = jest.fn();
- const onNodeRunComplete = jest.fn();
- const onNodeRunError = jest.fn();
- const res = await runFlow(
- multiInput,
- "n1",
- { data: "Hello {{World}}" },
- {
- onNodeRunComplete,
- onNodeInputUpdate,
- onNodeRunError,
- }
- );
- expect(onNodeInputUpdate).toHaveBeenCalledTimes(4);
- expect(onNodeRunComplete).toHaveBeenCalledTimes(2);
- expect(onNodeRunError).toHaveBeenCalledTimes(0);
- expect(res).toMatchSnapshot();
-});
-
-/**
- * -> (1a) -----------> (a4c) --> (a5)
- * \--> (a3b) --> (b4)
- */
-test("only run a node once all inputs are resolved", async () => {
- const onNodeInputUpdate = jest.fn();
- const onNodeRunComplete = jest.fn();
- const onNodeRunError = jest.fn();
- const res = await runFlow(
- multiInputWithOutput,
- "n1",
- { data: "Hello {{World}}" },
- {
- onNodeRunComplete,
- onNodeInputUpdate,
- onNodeRunError,
- }
- );
- expect(onNodeInputUpdate).toHaveBeenCalledTimes(5);
- expect(onNodeRunComplete).toHaveBeenCalledTimes(3);
- expect(onNodeRunError).toHaveBeenCalledTimes(0);
- expect(res).toMatchSnapshot();
-});
-
-/**
- * -> (1a) ---------> (a4c) --> (a5)
- * (X) --> (b4)
- */
-test("ignore inputs from unreachable nodes", async () => {
- const onNodeInputUpdate = jest.fn();
- const onNodeRunComplete = jest.fn();
- const onNodeRunError = jest.fn();
-
- const chain = produce(multiInputWithOutput, (draftState) => {
- delete draftState.definition.edges.e1;
- });
-
- const res = await runFlow(
- chain,
- "n1",
- { data: "Hello {{World}}" },
- {
- onNodeRunComplete,
- onNodeInputUpdate,
- onNodeRunError,
- }
- );
- expect(onNodeInputUpdate).toHaveBeenCalledTimes(3);
- expect(onNodeRunComplete).toHaveBeenCalledTimes(2);
- expect(onNodeRunError).toHaveBeenCalledTimes(0);
- expect(res).toMatchSnapshot();
-});
-
-/**
- * -> (1a) -----------------> (a4c) --> (a5)
- * (X) --> (X) --> (b4)
- */
-test("ignore inputs from nested unreachable nodes", async () => {
- const onNodeInputUpdate = jest.fn();
- const onNodeRunComplete = jest.fn();
- const onNodeRunError = jest.fn();
-
- const chain = produce(multistep, (draftState) => {
- delete draftState.definition.edges.e1;
- });
-
- const res = await runFlow(
- chain,
- "n1",
- { data: "Hello {{World}}" },
- {
- onNodeRunComplete,
- onNodeInputUpdate,
- onNodeRunError,
- }
- );
- expect(onNodeInputUpdate).toHaveBeenCalledTimes(3);
- expect(onNodeRunComplete).toHaveBeenCalledTimes(2);
- expect(onNodeRunError).toHaveBeenCalledTimes(0);
- expect(res).toMatchSnapshot();
-});
-
-/**
- * (1) -> (2)
- * ^
- */
-test("update array variables", async () => {
- const onNodeInputUpdate = jest.fn();
- const onNodeRunComplete = jest.fn();
- const onNodeRunError = jest.fn();
- const res = await runFlow(
- simpleFlow,
- "n2",
- {
- variables: [
- { id: "world", name: "world", type: "text", description: "", defaultValue: "test1" },
- { id: "hello", name: "hello", type: "text", description: "", defaultValue: "test2" },
- ],
- },
- {
- onNodeInputUpdate,
- onNodeRunComplete,
- onNodeRunError,
- }
- );
- expect(onNodeInputUpdate).toHaveBeenCalledTimes(1);
- expect(onNodeRunComplete).toHaveBeenCalledTimes(0);
- expect(onNodeRunError).toHaveBeenCalledTimes(0);
- expect(res).toMatchSnapshot();
-});
-
-/**
- * -> (1*ref) -> (2)
- */
-test("can resolve variables correctly", async () => {
- const onNodeInputUpdate = jest.fn();
- const onNodeRunComplete = jest.fn();
- const onNodeRunError = jest.fn();
- const res = await runFlow(
- simpleFlowWithVars,
- "n1",
- {},
- {
- onNodeRunComplete,
- onNodeInputUpdate,
- onNodeRunError,
- resolveReferences: async (variable) => {
- if (variable === "file:MY_FILE") {
- return "INSERTED_FILE";
- }
- return "${{ps:ref:" + variable + "}}";
- },
- }
- );
- expect(onNodeInputUpdate).toHaveBeenCalledTimes(2);
- expect(onNodeRunComplete).toHaveBeenCalledTimes(1);
- expect(onNodeRunError).toHaveBeenCalledTimes(0);
- expect(res).toMatchSnapshot();
-});
-
-/**
- * -> (1) => (2) => (3)
- */
-test("run nodes connected through execution nodes", async () => {
- const onNodeInputUpdate = jest.fn();
- const onNodeRunComplete = jest.fn();
- const onNodeRunError = jest.fn();
- const res = await runFlow(
- simpleExec,
- "n1",
- {},
- {
- onNodeRunComplete,
- onNodeInputUpdate,
- onNodeRunError,
- }
- );
- expect(onNodeInputUpdate).toHaveBeenCalledTimes(3);
- expect(onNodeRunComplete).toHaveBeenCalledTimes(2);
- expect(onNodeRunError).toHaveBeenCalledTimes(0);
- expect(res).toMatchSnapshot();
-});
-
-/**
- * (1) => (2) => (3)
- * ^
- */
-test("do not run an executable node unless the parent was run already", async () => {
- const onNodeInputUpdate = jest.fn();
- const onNodeRunComplete = jest.fn();
- const onNodeRunError = jest.fn();
- const res = await runFlow(
- simpleExec,
- "n2",
- {},
- {
- onNodeRunComplete,
- onNodeInputUpdate,
- onNodeRunError,
- }
- );
- expect(onNodeInputUpdate).toHaveBeenCalledTimes(1);
- expect(onNodeRunComplete).toHaveBeenCalledTimes(0);
- expect(onNodeRunError).toHaveBeenCalledTimes(0);
- expect(res).toMatchSnapshot();
-});
-
-/**
- * (1) => (2) => (X)
- *
- */
-test("when running a flow in dataflow mode, do no run child executable nodes", async () => {
- const onNodeInputUpdate = jest.fn();
- const onNodeRunComplete = jest.fn();
- const onNodeRunError = jest.fn();
- const res = await runFlow(
- simpleExecWithData,
- "n1",
- {},
- {
- mode: "dataflow",
- onNodeRunComplete,
- onNodeInputUpdate,
- onNodeRunError,
- }
- );
- expect(onNodeInputUpdate).toHaveBeenCalledTimes(2);
- expect(onNodeRunComplete).toHaveBeenCalledTimes(1);
- expect(onNodeRunError).toHaveBeenCalledTimes(0);
- expect(res).toMatchSnapshot();
-});
-
-/**
- * (1) => (🔄2) =2> (3) =2> (4)
- *
- */
-test("a node can run its children multiple times", async () => {
- const onNodeInputUpdate = jest.fn();
- const onNodeRunComplete = jest.fn();
- const onNodeRunError = jest.fn();
- const res = await runFlow(
- execWithLoop,
- "n1",
- {},
- {
- onNodeRunComplete,
- onNodeInputUpdate,
- onNodeRunError,
- }
- );
- expect(onNodeInputUpdate).toHaveBeenCalledTimes(6);
- expect(onNodeRunComplete).toHaveBeenCalledTimes(4);
- expect(onNodeRunError).toHaveBeenCalledTimes(0);
- expect(res).toMatchSnapshot();
-});
-
-/**
- * (0) => (🔄1) =2> (2) =2> (3)
- */
-test("a node can run its children multiple times 2", async () => {
- const onNodeInputUpdate = jest.fn();
- const onNodeRunComplete = jest.fn();
- const onNodeRunError = jest.fn();
- const res = await runFlow(
- loopWithJoin,
- "n0",
- {},
- {
- onNodeRunComplete,
- onNodeInputUpdate,
- onNodeRunError,
- }
- );
- expect(onNodeInputUpdate).toHaveBeenCalledTimes(8);
- expect(onNodeRunComplete).toHaveBeenCalledTimes(4);
- expect(onNodeRunError).toHaveBeenCalledTimes(0);
- expect(res).toMatchSnapshot();
-});
-
-/**
- * (1.1) -> (2.1)
- * -> (2.2)
- */
-test("running a node with several connections to a child should update the child correctly", async () => {
- const onNodeInputUpdate = jest.fn();
- const onNodeRunComplete = jest.fn();
- const onNodeRunError = jest.fn();
- const res = await runFlow(
- severalConnections,
- "n1",
- { data: "TEST DATA" },
- {
- onNodeRunComplete,
- onNodeInputUpdate,
- onNodeRunError,
- }
- );
- expect(onNodeInputUpdate).toHaveBeenCalledTimes(3);
- expect(onNodeRunComplete).toHaveBeenCalledTimes(1);
- expect(onNodeRunError).toHaveBeenCalledTimes(0);
- expect(res).toMatchSnapshot();
-});
-
-/**
- * (1.1)a -> (2.1)a
- * (1.2)x -> (2.2)b
- */
-test("running a node with a missing value does not override the default value in the target node", async () => {
- const onNodeInputUpdate = jest.fn();
- const onNodeRunComplete = jest.fn();
- const onNodeRunError = jest.fn();
- const res = await runFlow(
- multiNodes,
- "n1",
- { data1: "TEST DATA" },
- {
- onNodeRunComplete,
- onNodeInputUpdate,
- onNodeRunError,
- }
- );
- expect(onNodeInputUpdate).toHaveBeenCalledTimes(2);
- expect(onNodeRunComplete).toHaveBeenCalledTimes(1);
- expect(onNodeRunError).toHaveBeenCalledTimes(0);
- expect(res).toMatchSnapshot();
-});
diff --git a/packages/@pufflig/ps-chains/src/engines/dataflow/runFlow.ts b/packages/@pufflig/ps-chains/src/engines/dataflow/runFlow.ts
deleted file mode 100644
index dcbb633..0000000
--- a/packages/@pufflig/ps-chains/src/engines/dataflow/runFlow.ts
+++ /dev/null
@@ -1,185 +0,0 @@
-import { ParamValue } from "@pufflig/ps-types";
-import pino from "pino";
-import { Flow, RunOptions } from "../../types";
-import { executionPrefix, getDefaultTargets, identity } from "./constants";
-import { updateNodeInput } from "./updateNodeInput";
-import { getReachableNodes } from "./utils/getReachableNodes";
-import { resolveVariables } from "./utils/resolveVariables";
-import { getEdgeMap, mapOutputToInput } from "./utils/utils";
-
-const logger = pino();
-
-/**
- * This function updates the input state of a node and executes the node with the new input.
- * Read all target nodes and update their input state. Repeat until there are no more data target nodes.
- * Nodes that are run on execution are run separately.
- *
- * @param flow
- * @param nodeId
- * @param input
- * @param runOptions
- * @returns
- */
-export async function runFlow(flow: Flow, nodeId: string, input: Record, runOptions?: RunOptions) {
- logger.level = runOptions?.logLevel || "error";
-
- const newState = { ...flow.state };
-
- // track nodes that are reachable from the current node
- const reachableNodes = getReachableNodes(nodeId, flow.definition);
-
- // avoid hanging on loops by keeping track of the edges that have been visited
- const visitedEdges: string[] = [];
- // track the number of times a node has been run
- const runs: Record = {};
-
- const run_flow_recursive = async (nodeId: string, input: Record) => {
- const previousState = { ...newState[nodeId] };
- const nodeConfig = flow.definition.nodes[nodeId];
- const node = flow.nodeTypes[nodeConfig?.type];
-
- // update node state with the input values
- const updatedFlow = { ...flow, state: newState };
- const newNodeState = await updateNodeInput(updatedFlow, nodeId, input, runOptions);
- newState[nodeId] = { ...newNodeState };
- logger.debug({ nodeId, input, newState: newState[nodeId] }, "Updated node input");
-
- const targets = Object.values(flow.definition.edges).filter((edge) => edge.source === nodeId);
-
- // guard against infinite loops
- const isAlreadyRun = (runs[nodeId] || 0) > 0;
-
- if (isAlreadyRun) {
- logger.debug({ nodeId }, "Node already run");
- return;
- }
-
- // break execution if there are no targets
- if (targets.length === 0) {
- logger.debug("No targets found");
- return;
- }
-
- // if the node is executable, only run it if the execution parent is complete and exists
- const parentNodeId = Object.values(flow.definition.edges).find(
- (e) => e.target === nodeId && e.targetHandle.startsWith(executionPrefix)
- )?.source;
- const isParentComplete = parentNodeId ? runs[parentNodeId] > 0 : true;
- const isExecutableNode = !!node.execution?.inputs.length;
- const skipExecution = isExecutableNode && (!isParentComplete || !parentNodeId);
-
- if (skipExecution) {
- logger.debug("Parent node is not complete, skip execution");
- return;
- }
-
- // resolve variables to use during the run
- const newInput = newState[nodeId]?.input;
- let resolvedInput: Record = {};
- try {
- logger.debug("Resolving node variables");
- resolvedInput = await resolveVariables(newInput, runOptions?.resolveReferences || (async (i) => i));
- } catch (error) {
- logger.error({ error, nodeId }, "Error resolving variables");
- runOptions?.onNodeRunError?.(nodeId, error as Error);
- return;
- }
-
- const execute = node.execute || identity;
- const getTargets = node.getTargets || getDefaultTargets(node);
-
- // run the node
- let result: Record | null = null;
- try {
- // resolve references in the input
- const nodeOptions = { prevInput: previousState.input, globals: runOptions?.globals || {} };
- result = await execute(resolvedInput, nodeOptions);
- runOptions?.onNodeRunComplete?.(nodeId, result);
- logger.debug({ nodeId, result }, "Node run complete");
- // track the run
- runs[nodeId] = runs[nodeId] ? runs[nodeId] + 1 : 1;
- // break the chain if the node returns null
- if (result === null) return;
- } catch (error) {
- logger.error({ error, nodeId }, "Error running node");
- // if running the node fails, stop the chain
- runOptions?.onNodeRunError?.(nodeId, error as Error);
- return;
- }
-
- // ignore target nodes that are not connected to the values that have been edited
- const editedKeys = Object.keys(result);
- const dataTargetIds = targets.filter((e) => editedKeys.includes(e.sourceHandle)).map((e) => e.target);
- logger.debug({ nodeId, dataTargetIds }, "Data targets");
-
- // update the input of all target nodes
- for (const targetNodeId of dataTargetIds) {
- // data edges between this node and the target node
- const dataEdges = Object.values(flow.definition.edges).filter(
- (e) => e.source === nodeId && e.target === targetNodeId && !e.sourceHandle.startsWith(executionPrefix)
- );
- const edgeMap = getEdgeMap(dataEdges);
- const mappedInput = mapOutputToInput(result, edgeMap);
-
- // append to visited edges
- visitedEdges.push(...dataEdges.map((e) => e.id));
-
- // only run the node if all incoming edges have been resolved and ignore parents that are not reachable
- const incomingEdges = Object.values(flow.definition.edges).filter(
- (e) => e.target === targetNodeId && reachableNodes.has(e.source)
- );
-
- const areIncomingEdgesVisited = incomingEdges.every((e) => visitedEdges.includes(e.id));
- const targetConfig = flow.definition.nodes[targetNodeId];
- const targetDefinition = flow.nodeTypes[targetConfig?.type];
- const targetIsExecutable = !!targetDefinition?.execution?.inputs?.length;
- const shouldRunTarget = areIncomingEdgesVisited && !targetIsExecutable;
-
- if (shouldRunTarget) {
- logger.debug({ nodeId, targetNodeId, mappedInput }, "Running target node");
- await run_flow_recursive(targetNodeId, mappedInput);
- } else {
- logger.debug({ nodeId, targetNodeId, mappedInput }, "Updating target node inputs");
- const newNodeState = await updateNodeInput(updatedFlow, targetNodeId, mappedInput, runOptions);
- newState[targetNodeId] = { ...newNodeState };
- }
- }
-
- // run the execution target
- if (runOptions?.mode === "dataflow") return;
-
- // define the execution order
- const executionOrder = await getTargets(resolvedInput, result, { prevInput: previousState.input });
- const executionTargets = targets.filter(
- (edge) => edge.sourceHandle.startsWith(executionPrefix) && edge.source === nodeId
- );
-
- logger.debug({ executions: executionOrder }, "Execution Order");
-
- for (const execution of executionOrder) {
- visitedEdges.push(...executionTargets.map((e) => e.id));
- const targetId = executionTargets.find((e) => e.sourceHandle === execution.execSource)?.target;
-
- if (targetId) {
- // override the infinite loop guard
- runs[targetId] = runs[targetId] ? runs[targetId] - 1 : 0;
-
- // data edges between this node and the target node
- const dataEdges = Object.values(flow.definition.edges).filter(
- (e) => e.source === nodeId && e.target === targetId && !e.sourceHandle.startsWith(executionPrefix)
- );
-
- const edgeMap = getEdgeMap(dataEdges);
- const mappedInput = edgeMap ? mapOutputToInput(execution.inputs, edgeMap) : {};
-
- logger.debug({ nodeId, targetId, mappedInput }, "Running executable node");
- await run_flow_recursive(targetId, mappedInput);
- } else {
- logger.debug({ executionTargets, executionSource: execution.execSource }, "No target found for source");
- }
- }
- };
-
- await run_flow_recursive(nodeId, input);
- return newState;
-}
diff --git a/packages/@pufflig/ps-chains/src/engines/dataflow/updateNodeInput.test.ts b/packages/@pufflig/ps-chains/src/engines/dataflow/updateNodeInput.test.ts
deleted file mode 100644
index cc8bb46..0000000
--- a/packages/@pufflig/ps-chains/src/engines/dataflow/updateNodeInput.test.ts
+++ /dev/null
@@ -1,36 +0,0 @@
-import { simpleFlow, singleNodeFlow } from "../../mocks/chains";
-import { updateNodeInput } from "./updateNodeInput";
-
-test("updateNodeInput - singleNodeFlow", async () => {
- const onNodeInputUpdate = jest.fn();
- const onNodeRunError = jest.fn();
- const res = await updateNodeInput(
- singleNodeFlow,
- "n1",
- { data: "Hello World" },
- {
- onNodeInputUpdate,
- onNodeRunError,
- }
- );
- expect(onNodeInputUpdate).toHaveBeenCalledTimes(1);
- expect(onNodeRunError).toHaveBeenCalledTimes(0);
- expect(res).toMatchSnapshot();
-});
-
-test("updateNodeInput - simpleFlow, the children nodes are not updated", async () => {
- const onNodeInputUpdate = jest.fn();
- const onNodeRunError = jest.fn();
- const res = await updateNodeInput(
- simpleFlow,
- "n1",
- { data: "Hello World" },
- {
- onNodeInputUpdate,
- onNodeRunError,
- }
- );
- expect(onNodeInputUpdate).toHaveBeenCalledTimes(1);
- expect(onNodeRunError).toHaveBeenCalledTimes(0);
- expect(res).toMatchSnapshot();
-});
diff --git a/packages/@pufflig/ps-chains/src/engines/dataflow/updateNodeInput.ts b/packages/@pufflig/ps-chains/src/engines/dataflow/updateNodeInput.ts
deleted file mode 100644
index 7d75270..0000000
--- a/packages/@pufflig/ps-chains/src/engines/dataflow/updateNodeInput.ts
+++ /dev/null
@@ -1,42 +0,0 @@
-import { ParamValue } from "@pufflig/ps-types";
-import { Flow, NodeState, RunOptions } from "../../types";
-import { applyDefaultInputs } from "./utils/utils";
-import { identity } from "./constants";
-
-/**
- * This function updates the input state of a node without executing the chain.
- *
- * @param flow flow to update
- * @param nodeId id of the node to run
- * @param input input to update the node with, empty object if existing inputs should be kept
- * @param runOptions
- * @returns
- */
-export async function updateNodeInput(
- flow: Flow,
- nodeId: string,
- input: Record,
- runOptions?: RunOptions
-) {
- const flowState: Record = { ...flow.state };
- const nodeConfig = flow.definition.nodes[nodeId];
- const nodeDefinition = flow.nodeTypes[nodeConfig?.type];
- const mapInput = nodeDefinition?.mapInput || identity;
-
- if (!nodeConfig || !nodeDefinition) {
- throw new Error(`Definition for node ${nodeId} not found`);
- }
-
- // parse the input
- const nodeState = flowState[nodeId];
- const prevInput = nodeState?.input;
- const parsedInput = await mapInput(input, { prevInput, globals: runOptions?.globals });
-
- // compile the new state of the node
- const newInput = { ...applyDefaultInputs(prevInput, nodeDefinition), ...parsedInput };
- const newState: NodeState = { ...nodeState, input: newInput };
-
- runOptions?.onNodeInputUpdate?.(nodeId, newState);
-
- return newState;
-}
diff --git a/packages/@pufflig/ps-chains/src/engines/dataflow/utils/extractVariables.test.ts b/packages/@pufflig/ps-chains/src/engines/dataflow/utils/extractVariables.test.ts
deleted file mode 100644
index 394a96f..0000000
--- a/packages/@pufflig/ps-chains/src/engines/dataflow/utils/extractVariables.test.ts
+++ /dev/null
@@ -1,32 +0,0 @@
-import { delimiterEnd, delimiterStart } from "../constants";
-import { extractVariables } from "./extractVariables";
-
-test("extractVariables - extract loops and first level variables", () => {
- const variables = extractVariables(`Hello world \${{name}} ${delimiterStart}surname${delimiterEnd}
- {{#names}}
- * {{.}}
- {{/names}}`);
-
- expect(variables).toMatchInlineSnapshot(`
- [
- "surname",
- ]
- `);
-});
-
-test("extractVariables - malformed handlebar does not impact extraction", () => {
- const stub = jest.fn();
- const variables = extractVariables(`Hello {{name} ${delimiterStart}surname${delimiterEnd}`, stub);
- expect(variables).toMatchInlineSnapshot(`
- [
- "surname",
- ]
- `);
-});
-
-test("extractVariables - returns null if the template is malformed", () => {
- const stub = jest.fn();
- const variables = extractVariables(`Hello ${delimiterStart}surname}!`, stub);
- expect(stub).toHaveBeenCalled();
- expect(variables).toMatchInlineSnapshot(`null`);
-});
diff --git a/packages/@pufflig/ps-chains/src/engines/dataflow/utils/extractVariables.ts b/packages/@pufflig/ps-chains/src/engines/dataflow/utils/extractVariables.ts
deleted file mode 100644
index b0ef9fb..0000000
--- a/packages/@pufflig/ps-chains/src/engines/dataflow/utils/extractVariables.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-import Mustache from "mustache";
-import { delimiterEnd, delimiterStart } from "../constants";
-
-/**
- * Extract the top level variables from a handlebar template, prefixed by variablePrefix
- * If resolving the variable fails, return null.
- * @param template the handlebar template
- * @param onError callback to handle errors
- * @returns the list of variables or null if the template is malformed
- */
-export const extractVariables = (template: string, onError: (err: any) => void = () => {}) => {
- try {
- return Mustache.parse(template, [delimiterStart, delimiterEnd])
- .filter((v) => v[0] === "name" || v[0] === "#")
- .map((v) => v[1]);
- } catch (err: any) {
- onError(err);
- return null;
- }
-};
diff --git a/packages/@pufflig/ps-chains/src/engines/dataflow/utils/getReachableNodes.ts b/packages/@pufflig/ps-chains/src/engines/dataflow/utils/getReachableNodes.ts
deleted file mode 100644
index 61e2c5e..0000000
--- a/packages/@pufflig/ps-chains/src/engines/dataflow/utils/getReachableNodes.ts
+++ /dev/null
@@ -1,28 +0,0 @@
-import { FlowDefinition, FlowEdge } from "../../../types";
-
-/**
- * recursively get all nodes that are reachable from a node
- * @param nodeId
- * @param flow_definition
- * @returns
- */
-export function getReachableNodes(nodeId: string, flow_definition: FlowDefinition) {
- const edges = flow_definition.edges;
- const reachableNodes = new Set();
-
- function _getReachableNodes(nodeId: string) {
- reachableNodes.add(nodeId);
- const targetNodes = Object.values(edges)
- // do not consider self to be a valid target
- .filter((edge: FlowEdge) => edge.source === nodeId && edge.target !== nodeId)
- .map((edge) => edge.target);
-
- targetNodes.forEach((targetNode) => {
- _getReachableNodes(targetNode);
- });
- }
-
- _getReachableNodes(nodeId);
-
- return reachableNodes;
-}
diff --git a/packages/@pufflig/ps-chains/src/engines/dataflow/utils/resolveVariables.test.ts b/packages/@pufflig/ps-chains/src/engines/dataflow/utils/resolveVariables.test.ts
deleted file mode 100644
index 5bdb35a..0000000
--- a/packages/@pufflig/ps-chains/src/engines/dataflow/utils/resolveVariables.test.ts
+++ /dev/null
@@ -1,95 +0,0 @@
-import { resolveVariables } from "./resolveVariables";
-
-test("resolveVariables - extract variables", async () => {
- const resolver = jest.fn(async (variableName) => {
- return `RESOLVED_WITH_${variableName}`;
- });
-
- expect(
- await resolveVariables(
- {
- "param-1": "not_a_variable",
- "param-2": "${{ps:ref:variable-1}}",
- "param-3": "${{ps:ref:variable-2}}",
- "param-4": "{{}}",
- "param-5": "${{ps:ref:variable-1}} ${{ps:ref:variable-2}}",
- "param-6": "{{dont_replace}} ${{ps:ref:variable-2}}",
- "param-7": "{{faulty}",
- "param-8": "{{faulty} ${{ps:ref:variable-2}}",
- },
- resolver
- )
- ).toMatchInlineSnapshot(`
- {
- "param-1": "not_a_variable",
- "param-2": "RESOLVED_WITH_variable-1",
- "param-3": "RESOLVED_WITH_variable-2",
- "param-4": "{{}}",
- "param-5": "RESOLVED_WITH_variable-1 RESOLVED_WITH_variable-2",
- "param-6": "{{dont_replace}} RESOLVED_WITH_variable-2",
- "param-7": "{{faulty}",
- "param-8": "{{faulty} RESOLVED_WITH_variable-2",
- }
- `);
-});
-
-test("resolveVariables - handles special chars", async () => {
- const resolver = jest.fn(async (variableName) => {
- return `RESOLVED_WITH_${variableName}
-
- "I'm on a separate line"
-
-`;
- });
-
- expect(
- await resolveVariables(
- {
- "param-1": "not_a_variable",
- "param-2": "${{ps:ref:variable-1}}",
- "param-3": "${{ps:ref:variable-2}}",
- "param-4": "{{}}",
- "param-5": "${{ps:ref:variable-1}} ${{ps:ref:variable-2}}",
- "param-6": "{{dont_replace}} ${{ps:ref:variable-2}}",
- "param-7": "{{faulty}",
- "param-8": "{{faulty} ${{ps:ref:variable-2}}",
- },
- resolver
- )
- ).toMatchInlineSnapshot(`
- {
- "param-1": "not_a_variable",
- "param-2": "RESOLVED_WITH_variable-1
-
- "I'm on a separate line"
-
- ",
- "param-3": "RESOLVED_WITH_variable-2
-
- "I'm on a separate line"
-
- ",
- "param-4": "{{}}",
- "param-5": "RESOLVED_WITH_variable-1
-
- "I'm on a separate line"
-
- RESOLVED_WITH_variable-2
-
- "I'm on a separate line"
-
- ",
- "param-6": "{{dont_replace}} RESOLVED_WITH_variable-2
-
- "I'm on a separate line"
-
- ",
- "param-7": "{{faulty}",
- "param-8": "{{faulty} RESOLVED_WITH_variable-2
-
- "I'm on a separate line"
-
- ",
- }
- `);
-});
diff --git a/packages/@pufflig/ps-chains/src/engines/dataflow/utils/resolveVariables.ts b/packages/@pufflig/ps-chains/src/engines/dataflow/utils/resolveVariables.ts
deleted file mode 100644
index 2c06e45..0000000
--- a/packages/@pufflig/ps-chains/src/engines/dataflow/utils/resolveVariables.ts
+++ /dev/null
@@ -1,40 +0,0 @@
-import { ParamValue } from "@pufflig/ps-types";
-import { delimiterEnd, delimiterStart } from "../constants";
-import { extractVariables } from "./extractVariables";
-
-export const resolveVariables = async (
- input: Record,
- resolver: (variableName: string) => Promise
-) => {
- // remove duplicate variables
- const vars = Object.keys(
- extractVariables(JSON.stringify(input))?.reduce((acc, variable) => {
- return {
- ...acc,
- [variable]: true,
- };
- }, {} as Record) || []
- );
-
- if (!vars) return input;
-
- // fetch variables
- const promises: Promise[] = [];
- vars.forEach((variable) => promises.push(resolver(variable)));
- const resolvedVariables = await Promise.all(promises);
-
- // replace variables with resolved variables, text might contain special characters
- const result = vars.reduce((acc, name, index) => {
- const regexString = "\\" + delimiterStart + name + delimiterEnd;
- const regex = new RegExp(regexString, "g");
- const value = resolvedVariables[index];
- return Object.entries(acc).reduce((acc2, [key, val]) => {
- return {
- ...acc2,
- [key]: typeof val === "string" ? val?.replace(regex, value) : val,
- };
- }, {} as Record);
- }, input);
-
- return result;
-};
diff --git a/packages/@pufflig/ps-chains/src/engines/dataflow/utils/sanitizeInput.test.ts b/packages/@pufflig/ps-chains/src/engines/dataflow/utils/sanitizeInput.test.ts
deleted file mode 100644
index 70fd25b..0000000
--- a/packages/@pufflig/ps-chains/src/engines/dataflow/utils/sanitizeInput.test.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-import { sanitizeInput } from "./sanitizeInput";
-
-test("sanitizeInput - remove variables", async () => {
- const variables = await sanitizeInput({
- "param-1": "not_a_variable",
- "param-2": "${{ps:ref:variable-1}}",
- "param-3": "${{ps:ref:variable-2}",
- "param-4": "${{variable-4}}",
- });
-
- expect(variables).toMatchInlineSnapshot(`
- {
- "param-1": "not_a_variable",
- "param-2": "",
- "param-3": "\${{ps:ref:variable-2}",
- "param-4": "\${{variable-4}}",
- }
- `);
-});
diff --git a/packages/@pufflig/ps-chains/src/engines/dataflow/utils/sanitizeInput.ts b/packages/@pufflig/ps-chains/src/engines/dataflow/utils/sanitizeInput.ts
deleted file mode 100644
index 40f09e0..0000000
--- a/packages/@pufflig/ps-chains/src/engines/dataflow/utils/sanitizeInput.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-import { ParamValue } from "@pufflig/ps-types";
-import { resolveVariables } from "./resolveVariables";
-
-/**
- * Remove all variables from an input object
- *
- * @param input
- * @returns
- */
-export const sanitizeInput = (input: Record) => {
- return resolveVariables(input, async () => {
- return "";
- });
-};
diff --git a/packages/@pufflig/ps-chains/src/engines/dataflow/utils/utils.test.ts b/packages/@pufflig/ps-chains/src/engines/dataflow/utils/utils.test.ts
deleted file mode 100644
index 2ad14de..0000000
--- a/packages/@pufflig/ps-chains/src/engines/dataflow/utils/utils.test.ts
+++ /dev/null
@@ -1,107 +0,0 @@
-import { simpleDataNode } from "../../../mocks/nodes";
-import { applyDefaultInputs, getEdgeMap, mapOutputToInput } from "./utils";
-
-test("apply default inputs without overwriting them", async () => {
- const res = applyDefaultInputs(
- {
- variables: [
- {
- id: "template",
- name: "hello",
- type: "text",
- defaultValue: "TEST",
- description: "",
- },
- ],
- },
- simpleDataNode
- );
-
- expect(res).toMatchInlineSnapshot(`
- {
- "data": "",
- "variables": [
- {
- "defaultValue": "TEST",
- "description": "",
- "id": "template",
- "name": "hello",
- "type": "text",
- },
- ],
- }
- `);
-});
-
-test("return a map of edges between two nodes", async () => {
- const res = getEdgeMap([
- {
- id: "1",
- source: "1",
- sourceHandle: "1",
- target: "2",
- targetHandle: "1",
- },
- {
- id: "2",
- source: "1",
- sourceHandle: "2",
- target: "2",
- targetHandle: "2",
- },
- {
- id: "3",
- source: "1",
- sourceHandle: "1",
- target: "2",
- targetHandle: "3",
- },
- ]);
-
- expect(res).toMatchInlineSnapshot(`
- {
- "1": [
- "1",
- "3",
- ],
- "2": [
- "2",
- ],
- }
- `);
-});
-
-test("map the outputs of a node to the inputs of a node", async () => {
- const res = mapOutputToInput(
- { 1: "a", 2: "b" },
- {
- "1": ["1", "3"],
- "2": ["2"],
- }
- );
-
- expect(res).toMatchInlineSnapshot(`
- {
- "1": "a",
- "2": "b",
- "3": "a",
- }
- `);
-});
-
-test("ignore undefined values that are part of the output", async () => {
- const res = mapOutputToInput(
- { 1: "a" },
- {
- "1": ["1", "3"],
- "2": ["2"],
- }
- );
-
- expect(res).toMatchInlineSnapshot(`
- {
- "1": "a",
- "3": "a",
- }
- `);
-});
diff --git a/packages/@pufflig/ps-chains/src/engines/dataflow/utils/utils.ts b/packages/@pufflig/ps-chains/src/engines/dataflow/utils/utils.ts
deleted file mode 100644
index bbaaba5..0000000
--- a/packages/@pufflig/ps-chains/src/engines/dataflow/utils/utils.ts
+++ /dev/null
@@ -1,64 +0,0 @@
-import { NodeConfig, Param, ParamValue } from "@pufflig/ps-types";
-import { FlowEdge } from "../../../types";
-
-/**
- * Create a record of the default values for a list of parameters
- * @param params parameter configuration
- * @returns record of the default values
- */
-export function paramToDefaults(params: Param[]) {
- const defaults: Record = {};
- for (const param of params) {
- defaults[param.id] = param.defaultValue;
- }
- return defaults;
-}
-
-/**
- * Apply default values to the node State
- * @param nodeStateData existing node state
- * @param node node configuration
- * @returns node state with default values
- */
-export function applyDefaultInputs(nodeStateData: Record | undefined, node: NodeConfig) {
- const inputs = [...node.inputs];
- const defaults = paramToDefaults(inputs);
- return { ...defaults, ...(nodeStateData || {}) };
-}
-
-/**
- * Create a record of corresponding source and target handles
- * @param edges chain edges
- * @returns record of source and target handles
- */
-export function getEdgeMap(edges: FlowEdge[]): Record {
- const res: Record = {};
- for (const e of edges) {
- if (!res[e.sourceHandle]) {
- res[e.sourceHandle] = [e.targetHandle];
- } else {
- res[e.sourceHandle].push(e.targetHandle);
- }
- }
- return res;
-}
-
-/**
- * Map the output of a node to the input of the next node
- * @param output
- * @param map
- * @returns
- */
-export function mapOutputToInput(output: Record, map: Record) {
- const res: Record = {};
- for (const [key, value] of Object.entries(map)) {
- value.forEach((v) => {
- // if a value is not part of the output, do not map it
- if (output[key] !== undefined) {
- // assign the output value to the input at the target key
- res[v] = output[key];
- }
- });
- }
- return res;
-}
diff --git a/packages/@pufflig/ps-chains/src/index.ts b/packages/@pufflig/ps-chains/src/index.ts
deleted file mode 100644
index e0ce071..0000000
--- a/packages/@pufflig/ps-chains/src/index.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-export { runFlow } from "./engines/dataflow/runFlow";
-export { updateNodeInput } from "./engines/dataflow/updateNodeInput";
-export * from "./types";
-export { resolveVariables } from "./engines/dataflow/utils/resolveVariables";
-export { sanitizeInput } from "./engines/dataflow/utils/sanitizeInput";
diff --git a/packages/@pufflig/ps-chains/src/mocks/chains.ts b/packages/@pufflig/ps-chains/src/mocks/chains.ts
deleted file mode 100644
index f67ac6b..0000000
--- a/packages/@pufflig/ps-chains/src/mocks/chains.ts
+++ /dev/null
@@ -1,841 +0,0 @@
-import { Flow } from "../types";
-import {
- configOnlyNode,
- joinNodeConfig,
- loopNodeConfig,
- multiInputDataNode,
- passthroughNode,
- simpleDataNode,
- simpleExecNode,
- startNode,
-} from "./nodes";
-
-export const singleNodeFlow: Flow = {
- nodeTypes: {
- simple_node: simpleDataNode,
- },
- definition: {
- edges: {},
- nodes: {
- n1: {
- id: "n1",
- type: "simple_node",
- },
- },
- },
- state: {
- n1: {
- input: {},
- status: "idle",
- },
- },
-};
-
-export const configOnlyFlow: Flow = {
- nodeTypes: {
- simple_node: configOnlyNode,
- },
- definition: {
- edges: {},
- nodes: {
- n1: {
- id: "n1",
- type: "simple_node",
- },
- },
- },
- state: {
- n1: {
- input: {},
- status: "idle",
- },
- },
-};
-
-export const simpleFlow: Flow = {
- nodeTypes: {
- simple_node: simpleDataNode,
- },
- definition: {
- edges: {
- e1: {
- id: "e1",
- source: "n1",
- target: "n2",
- sourceHandle: "data",
- targetHandle: "data",
- },
- },
- nodes: {
- n1: {
- id: "n1",
- type: "simple_node",
- },
- n2: {
- id: "n2",
- type: "simple_node",
- },
- },
- },
- state: {},
-};
-
-export const simpleLoop: Flow = {
- nodeTypes: {
- simple_node: simpleDataNode,
- },
- definition: {
- edges: {
- e1: {
- id: "e1",
- source: "n1",
- target: "n1",
- sourceHandle: "data",
- targetHandle: "data",
- },
- },
- nodes: {
- n1: {
- id: "n1",
- type: "simple_node",
- },
- },
- },
- state: {},
-};
-
-export const simpleExistingState: Flow = {
- nodeTypes: {
- multi_input: multiInputDataNode,
- },
- definition: {
- nodes: {
- n1: {
- id: "n1",
- type: "multi_input",
- },
- },
- edges: {},
- },
- state: {
- n1: {
- status: "idle",
- input: { data1: "REPLACE", data2: "KEEP" },
- },
- },
-};
-
-export const mappedExample: Flow = {
- nodeTypes: {
- simple_node: simpleDataNode,
- multi_input: multiInputDataNode,
- },
- definition: {
- edges: {
- e1: {
- id: "e1",
- source: "n1",
- target: "n2",
- sourceHandle: "data",
- targetHandle: "data1",
- },
- e2: {
- id: "e2",
- source: "n2",
- target: "n3",
- sourceHandle: "data1",
- targetHandle: "data",
- },
- },
- nodes: {
- n1: {
- id: "n1",
- type: "simple_node",
- },
- n2: {
- id: "n2",
- type: "multi_input",
- },
- n3: {
- id: "n3",
- type: "simple_node",
- },
- },
- },
- state: {},
-};
-
-export const existingState: Flow = {
- nodeTypes: {
- simple_node: simpleDataNode,
- multi_node: multiInputDataNode,
- },
- definition: {
- nodes: {
- n1: {
- id: "n1",
- type: "simple_node",
- },
- n2: {
- id: "n2",
- type: "template_node",
- },
- n3: {
- id: "n3",
- type: "async_node",
- },
-
- n4: {
- id: "n4",
- type: "multi_input_node",
- },
- },
- edges: {
- e1: {
- id: "e1",
- source: "n1",
- target: "n2",
- sourceHandle: "template",
- targetHandle: "template",
- },
- e2: {
- id: "e2",
- source: "n2",
- target: "n3",
- sourceHandle: "text",
- targetHandle: "prompt",
- },
- e3: {
- id: "e3",
- source: "n2",
- target: "n4",
- sourceHandle: "text",
- targetHandle: "prompt",
- },
- e4: {
- id: "e4",
- source: "n3",
- target: "n4",
- sourceHandle: "completion",
- targetHandle: "completion",
- },
- },
- },
- state: {
- n3: {
- status: "idle",
- input: { template: "This is a test!" },
- },
- },
-};
-
-export const multiInput: Flow = {
- nodeTypes: {
- simple_node: simpleDataNode,
- multi_input: multiInputDataNode,
- },
- definition: {
- nodes: {
- n1: {
- id: "n1",
- type: "simple_node",
- },
- n2: {
- id: "n2",
- type: "simple_node",
- },
- n3: {
- id: "n3",
- type: "multi_input",
- },
- },
- edges: {
- e1: {
- id: "e1",
- source: "n1",
- target: "n2",
- sourceHandle: "data",
- targetHandle: "data",
- },
- e2: {
- id: "e2",
- source: "n1",
- target: "n3",
- sourceHandle: "data",
- targetHandle: "data1",
- },
- e3: {
- id: "e3",
- source: "n2",
- target: "n3",
- sourceHandle: "data",
- targetHandle: "data2",
- },
- },
- },
- state: {},
-};
-
-export const multiInputWithOutput: Flow = {
- nodeTypes: {
- simple_node: simpleDataNode,
- multi_input: multiInputDataNode,
- },
- definition: {
- nodes: {
- n1: {
- id: "n1",
- type: "simple_node",
- },
- n2: {
- id: "n2",
- type: "simple_node",
- },
- n3: {
- id: "n3",
- type: "multi_input",
- },
- n4: {
- id: "n4",
- type: "simple_node",
- },
- },
- edges: {
- e1: {
- id: "e1",
- source: "n1",
- target: "n2",
- sourceHandle: "data",
- targetHandle: "data",
- },
- e2: {
- id: "e2",
- source: "n1",
- target: "n3",
- sourceHandle: "data",
- targetHandle: "data1",
- },
- e3: {
- id: "e3",
- source: "n2",
- target: "n3",
- sourceHandle: "data",
- targetHandle: "data2",
- },
- e4: {
- id: "e4",
- source: "n3",
- target: "n4",
- sourceHandle: "data1",
- targetHandle: "data",
- },
- },
- },
- state: {},
-};
-
-export const multistep: Flow = {
- nodeTypes: {
- simple_node: simpleDataNode,
- multi_input: multiInputDataNode,
- },
- definition: {
- nodes: {
- n1: {
- id: "n1",
- type: "simple_node",
- },
- n2: {
- id: "n2",
- type: "simple_node",
- },
- n3: {
- id: "n3",
- type: "simple_node",
- },
- n4: {
- id: "n4",
- type: "multi_input",
- },
- n5: {
- id: "n5",
- type: "simple_node",
- },
- },
- edges: {
- e1: {
- id: "e1",
- source: "n1",
- target: "n2",
- sourceHandle: "data",
- targetHandle: "data",
- },
- e2: {
- id: "e2",
- source: "n2",
- target: "n3",
- sourceHandle: "data",
- targetHandle: "data",
- },
- e3: {
- id: "e3",
- source: "n3",
- target: "n4",
- sourceHandle: "data",
- targetHandle: "data2",
- },
- e4: {
- id: "e4",
- source: "n1",
- target: "n4",
- sourceHandle: "data",
- targetHandle: "data1",
- },
- e5: {
- id: "e1",
- source: "n4",
- target: "n5",
- sourceHandle: "data1",
- targetHandle: "data",
- },
- },
- },
- state: {},
-};
-
-export const simpleFlowWithVars: Flow = {
- nodeTypes: {
- simple_node: simpleDataNode,
- multi_node: multiInputDataNode,
- },
- definition: {
- edges: {
- e1: {
- id: "e1",
- source: "n1",
- target: "n2",
- sourceHandle: "data",
- targetHandle: "data",
- },
- },
- nodes: {
- n1: {
- id: "n1",
- type: "simple_node",
- },
- n2: {
- id: "n2",
- type: "simple_node",
- },
- },
- },
- state: {
- n1: {
- input: {
- data: "${{ps:ref:file:MY_FILE}} {{keep}}",
- },
- status: "idle",
- },
- },
-};
-
-export const simpleFlowWithExec: Flow = {
- nodeTypes: {
- simple_node: simpleExecNode,
- },
- definition: {
- edges: {
- e1: {
- id: "e1",
- source: "n1",
- target: "n2",
- sourceHandle: "data",
- targetHandle: "data",
- },
- e2: {
- id: "e2",
- source: "n2",
- target: "n3",
- sourceHandle: "data",
- targetHandle: "data",
- },
- },
- nodes: {
- n1: {
- id: "n1",
- type: "simple_node",
- },
- n2: {
- id: "n2",
- type: "simple_node",
- },
- n3: {
- id: "n3",
- type: "simple_node",
- },
- },
- },
- state: {},
-};
-
-export const simpleExec: Flow = {
- nodeTypes: {
- start_node: startNode,
- simple_node: simpleExecNode,
- },
- definition: {
- edges: {
- e1: {
- id: "e1",
- source: "n1",
- target: "n2",
- sourceHandle: "exec:output",
- targetHandle: "exec:input",
- },
- e2: {
- id: "e2",
- source: "n2",
- target: "n3",
- sourceHandle: "exec:output",
- targetHandle: "exec:input",
- },
- },
- nodes: {
- n1: {
- id: "n1",
- type: "start_node",
- },
- n2: {
- id: "n2",
- type: "simple_node",
- },
- n3: {
- id: "n3",
- type: "simple_node",
- },
- },
- },
- state: {},
-};
-
-export const simpleExecWithData: Flow = {
- nodeTypes: {
- start_node: startNode,
- simple_node: simpleExecNode,
- },
- definition: {
- edges: {
- e1: {
- id: "e1",
- source: "n1",
- target: "n2",
- sourceHandle: "exec:output",
- targetHandle: "exec:input",
- },
- e2: {
- id: "e2",
- source: "n2",
- target: "n3",
- sourceHandle: "exec:output",
- targetHandle: "exec:input",
- },
- e3: {
- id: "e3",
- source: "n1",
- target: "n2",
- sourceHandle: "data",
- targetHandle: "data",
- },
- e4: {
- id: "e4",
- source: "n2",
- target: "n3",
- sourceHandle: "data",
- targetHandle: "data",
- },
- },
- nodes: {
- n1: {
- id: "n1",
- type: "start_node",
- },
- n2: {
- id: "n2",
- type: "simple_node",
- },
- n3: {
- id: "n3",
- type: "simple_node",
- },
- },
- },
- state: {},
-};
-
-export const execWithLoop: Flow = {
- nodeTypes: {
- start_node: startNode,
- simple_node: simpleExecNode,
- loop_node: loopNodeConfig,
- },
- definition: {
- edges: {
- e1: {
- id: "e1",
- source: "n1",
- target: "n2",
- sourceHandle: "exec:output",
- targetHandle: "exec:input",
- },
- e2: {
- id: "e2",
- source: "n2",
- target: "n3",
- sourceHandle: "exec:output",
- targetHandle: "exec:input",
- },
- e3: {
- id: "e3",
- source: "n2",
- target: "n3",
- sourceHandle: "data",
- targetHandle: "data",
- },
- e4: {
- id: "e4",
- source: "n3",
- target: "n4",
- sourceHandle: "data",
- targetHandle: "data",
- },
- },
- nodes: {
- n1: {
- id: "n1",
- type: "start_node",
- },
- n2: {
- id: "n2",
- type: "loop_node",
- },
- n3: {
- id: "n3",
- type: "simple_node",
- },
- n4: {
- id: "n4",
- type: "simple_node",
- },
- },
- },
- state: {
- n2: {
- status: "idle",
- input: {
- list: ["a", "b"],
- },
- },
- },
-};
-
-export const loopWithJoin: Flow = {
- nodeTypes: {
- start_node: startNode,
- simple_node: simpleExecNode,
- loop_node: loopNodeConfig,
- join_node: joinNodeConfig,
- },
- definition: {
- edges: {
- e0: {
- id: "e0",
- source: "n0",
- target: "n1",
- sourceHandle: "exec:output",
- targetHandle: "exec:input",
- },
- e1: {
- id: "e1",
- source: "n1",
- target: "n2",
- sourceHandle: "exec:output",
- targetHandle: "exec:input",
- },
- e2: {
- id: "e2",
- source: "n2",
- target: "n3",
- sourceHandle: "exec:output",
- targetHandle: "exec:input",
- },
- e3: {
- id: "e3",
- source: "n1",
- target: "n2",
- sourceHandle: "data",
- targetHandle: "data",
- },
- e4: {
- id: "e4",
- source: "n2",
- target: "n3",
- sourceHandle: "list",
- targetHandle: "data",
- },
- },
- nodes: {
- n0: {
- id: "n0",
- type: "start_node",
- },
- n1: {
- id: "n1",
- type: "loop_node",
- },
- n2: {
- id: "n2",
- type: "join_node",
- },
- n3: {
- id: "n3",
- type: "simple_node",
- },
- },
- },
- state: {
- n1: {
- status: "idle",
- input: {
- list: ["a", "b"],
- },
- },
- },
-};
-
-export const severalConnections: Flow = {
- nodeTypes: {
- simple_node: simpleDataNode,
- multi_node: multiInputDataNode,
- },
- definition: {
- edges: {
- e1: {
- id: "e1",
- source: "n1",
- target: "n2",
- sourceHandle: "data",
- targetHandle: "data1",
- },
- e2: {
- id: "e2",
- source: "n1",
- target: "n2",
- sourceHandle: "data",
- targetHandle: "data2",
- },
- },
- nodes: {
- n1: {
- id: "n1",
- type: "simple_node",
- },
- n2: {
- id: "n2",
- type: "multi_node",
- },
- },
- },
- state: {},
-};
-
-export const multiNodes: Flow = {
- nodeTypes: {
- multi_output_node: {
- name: "multiOutputNode",
- inputs: [
- {
- name: "data1",
- type: "text",
- defaultValue: "DEFAULT_DATA_1",
- description: "",
- id: "data1",
- },
- ],
- outputs: [
- {
- name: "data1",
- type: "text",
- defaultValue: "",
- description: "",
- id: "data1",
- },
- {
- name: "data2",
- type: "text",
- defaultValue: "",
- description: "",
- id: "data2",
- },
- ],
- ...passthroughNode,
- },
- multi_input_node: {
- name: "multiInputNode",
- inputs: [
- {
- name: "data1",
- type: "text",
- defaultValue: "DEFAULT_DATA_1",
- description: "",
- id: "data1",
- },
- {
- name: "data2",
- type: "text",
- defaultValue: "DEFAULT_DATA_2",
- description: "",
- id: "data2",
- },
- ],
- outputs: [
- {
- name: "data1",
- type: "text",
- defaultValue: "",
- description: "",
- id: "data1",
- },
- ],
- ...passthroughNode,
- },
- },
- definition: {
- edges: {
- e1: {
- id: "e1",
- source: "n1",
- target: "n2",
- sourceHandle: "data1",
- targetHandle: "data1",
- },
- e2: {
- id: "e2",
- source: "n1",
- target: "n2",
- sourceHandle: "data2",
- targetHandle: "data2",
- },
- },
- nodes: {
- n1: {
- id: "n1",
- type: "multi_output_node",
- },
- n2: {
- id: "n2",
- type: "multi_input_node",
- },
- },
- },
- state: {},
-};
diff --git a/packages/@pufflig/ps-chains/src/mocks/nodes.ts b/packages/@pufflig/ps-chains/src/mocks/nodes.ts
deleted file mode 100644
index 174ddf2..0000000
--- a/packages/@pufflig/ps-chains/src/mocks/nodes.ts
+++ /dev/null
@@ -1,265 +0,0 @@
-import { Node, NodeActions } from "@pufflig/ps-types";
-
-export const passthroughNode: NodeActions = {
- execute: async (i) => i,
- mapInput: async (i) => i,
-};
-
-export const loopNode: NodeActions = {
- getTargets: async ({ list }) => {
- return [
- { execSource: "exec:output", inputs: { data: list?.[0] } },
- { execSource: "exec:output", inputs: { data: list?.[1] } },
- { execSource: "exec:complete", inputs: {} },
- ];
- },
-};
-
-export const joinNode: NodeActions<{ data: string; list: string[] }> = {
- mapInput: async ({ data }, options) => {
- return { list: [...(options?.prevInput?.list || []), data] };
- },
-};
-
-export const simpleDataNode: Node = {
- name: "simpleNode",
- inputs: [
- {
- name: "data",
- type: "text",
- defaultValue: "",
- description: "",
- id: "data",
- },
- ],
- outputs: [
- {
- name: "data",
- type: "text",
- defaultValue: "",
- description: "",
- id: "data",
- },
- ],
- ...passthroughNode,
-};
-
-export const configOnlyNode: Node = {
- name: "simpleNode",
- inputs: [
- {
- name: "data",
- type: "text",
- defaultValue: "",
- description: "",
- id: "data",
- },
- ],
- outputs: [
- {
- name: "data",
- type: "text",
- defaultValue: "",
- description: "",
- id: "data",
- },
- ],
-};
-
-export const multiInputDataNode: Node = {
- name: "multiInputNode",
- inputs: [
- {
- name: "data1",
- type: "text",
- defaultValue: "",
- description: "",
- id: "data1",
- },
- {
- name: "data2",
- type: "text",
- defaultValue: "",
- description: "",
- id: "data2",
- },
- ],
- outputs: [
- {
- name: "data1",
- type: "text",
- defaultValue: "",
- description: "",
- id: "data1",
- },
- ],
- ...passthroughNode,
-};
-
-export const multiOutputDataNode: Node = {
- name: "multiOutputNode",
- inputs: [
- {
- name: "input1",
- type: "text",
- defaultValue: "",
- description: "",
- id: "input1",
- },
- ],
- outputs: [
- {
- name: "output1",
- type: "text",
- defaultValue: "",
- description: "",
- id: "output1",
- },
- {
- name: "output2",
- type: "text",
- defaultValue: "",
- description: "",
- id: "output2",
- },
- ],
- ...passthroughNode,
-};
-
-export const startNode: Node = {
- name: "startNode",
- execution: {
- inputs: [],
- outputs: [
- {
- id: "exec:output",
- name: "Completed",
- },
- ],
- },
- inputs: [
- {
- name: "data",
- type: "text",
- defaultValue: "",
- description: "",
- id: "data",
- },
- ],
- outputs: [
- {
- name: "data",
- type: "text",
- defaultValue: "",
- description: "",
- id: "data",
- },
- ],
- ...passthroughNode,
-};
-
-export const simpleExecNode: Node = {
- name: "simpleNode",
- execution: {
- inputs: [
- {
- id: "exec:input",
- },
- ],
- outputs: [
- {
- id: "exec:output",
- name: "Completed",
- },
- ],
- },
- inputs: [
- {
- name: "data",
- type: "text",
- defaultValue: "",
- description: "",
- id: "data",
- },
- ],
- outputs: [
- {
- name: "data",
- type: "text",
- defaultValue: "",
- description: "",
- id: "data",
- },
- ],
- ...passthroughNode,
-};
-
-export const loopNodeConfig: Node = {
- name: "loopNode",
- execution: {
- inputs: [
- {
- id: "exec:input",
- },
- ],
- outputs: [
- {
- id: "exec:output",
- },
- ],
- },
- inputs: [
- {
- name: "list",
- type: "list",
- defaultValue: [],
- description: "",
- id: "list",
- },
- ],
- outputs: [
- {
- name: "data",
- type: "text",
- defaultValue: "",
- description: "",
- id: "data",
- },
- ],
- ...loopNode,
-};
-
-export const joinNodeConfig: Node = {
- name: "joinNode",
- execution: {
- inputs: [
- {
- id: "exec:input",
- },
- ],
- outputs: [
- {
- id: "exec:output",
- },
- ],
- },
- inputs: [
- {
- name: "data",
- type: "text",
- defaultValue: "",
- description: "",
- id: "data",
- },
- ],
- outputs: [
- {
- name: "list",
- type: "list",
- defaultValue: [],
- description: "",
- id: "list",
- },
- ],
- ...joinNode,
-};
diff --git a/packages/@pufflig/ps-chains/src/types.ts b/packages/@pufflig/ps-chains/src/types.ts
deleted file mode 100644
index 8cf4776..0000000
--- a/packages/@pufflig/ps-chains/src/types.ts
+++ /dev/null
@@ -1,49 +0,0 @@
-import { Node, NodeConfig, ParamValue } from "@pufflig/ps-types";
-
-export interface FlowNode {
- id: string;
- type: string;
- editor?: {
- position: { x: number; y: number };
- };
-}
-
-export interface FlowEdge {
- id: string;
- source: string;
- target: string;
- sourceHandle: string;
- targetHandle: string;
-}
-
-export interface FlowDefinition {
- nodes: Record;
- edges: Record;
-}
-
-export interface Flow {
- nodeTypes: Record;
- definition: FlowDefinition;
- state: Record;
-}
-
-export interface FlowConfiguration {
- nodeTypes: Record;
- definition: FlowDefinition;
- state: Record;
-}
-
-export interface NodeState {
- status: "idle" | "running" | "streaming" | "error";
- input: Record;
-}
-
-export interface RunOptions {
- mode?: "dataflow" | "controlflow";
- logLevel?: "debug" | "error";
- globals?: Record;
- resolveReferences?: (variable: string) => Promise;
- onNodeInputUpdate?: (id: string, input: NodeState) => void;
- onNodeRunError?: (id: string, error: Error) => void;
- onNodeRunComplete?: (id: string, output: Record | null) => void;
-}
diff --git a/packages/@pufflig/ps-chains/tsconfig.json b/packages/@pufflig/ps-chains/tsconfig.json
deleted file mode 100644
index ad4c213..0000000
--- a/packages/@pufflig/ps-chains/tsconfig.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "compilerOptions": {
- "target": "ES2020",
- "useDefineForClassFields": true,
- "lib": ["ES2020"],
- "module": "commonjs",
- "skipLibCheck": true,
-
- /* Bundler mode */
- "esModuleInterop": true,
- "allowImportingTsExtensions": true,
- "resolveJsonModule": true,
- "isolatedModules": true,
- "noEmit": true,
-
- /* Linting */
- "strict": true,
- "noUnusedLocals": true,
- "noUnusedParameters": true,
- "noFallthroughCasesInSwitch": true
- },
- "include": ["src"]
-}
diff --git a/packages/@pufflig/ps-chains/vite.config.ts b/packages/@pufflig/ps-chains/vite.config.ts
deleted file mode 100644
index d4b4017..0000000
--- a/packages/@pufflig/ps-chains/vite.config.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-import path from "node:path";
-import { defineConfig } from "vite";
-import dts from "vite-plugin-dts";
-
-export default defineConfig({
- plugins: [
- dts({
- insertTypesEntry: true,
- }),
- ],
- build: {
- lib: {
- entry: path.resolve(__dirname, "src/index.ts"),
- name: "@pufflig/ps-chains",
- formats: ["es", "umd"],
- fileName: (format) => `ps-chains.${format}.js`,
- },
- rollupOptions: {
- external: ["axios", "lodash", "uuid", "openai"],
- },
- },
-});
diff --git a/packages/@pufflig/ps-models/package.json b/packages/@pufflig/ps-models/package.json
index cc63ab6..68ca052 100644
--- a/packages/@pufflig/ps-models/package.json
+++ b/packages/@pufflig/ps-models/package.json
@@ -16,13 +16,12 @@
"author": "Pufflig AB",
"license": "MIT",
"devDependencies": {
- "@pufflig/ps-types": "^0.25.1",
- "typescript": "^5.2.2",
- "vite": "^4.3.9",
- "vite-plugin-dts": "^2.3.0"
+ "typescript": "^5.3.3",
+ "vite": "^5.1.4",
+ "vite-plugin-dts": "^3.7.3"
},
"volta": {
- "node": "18.16.0"
+ "node": "18.19.1"
},
"gitHead": "534ff07d186327e38133c0c14a5badd04ced0a9c"
}
diff --git a/packages/@pufflig/ps-models/src/index.ts b/packages/@pufflig/ps-models/src/index.ts
index cab8eaa..b8de7bb 100644
--- a/packages/@pufflig/ps-models/src/index.ts
+++ b/packages/@pufflig/ps-models/src/index.ts
@@ -1,7 +1,7 @@
-import { ModelConfig } from "@pufflig/ps-types";
import { hf_completion, hf_settings } from "./models/hf";
import { open_router_completion, open_router_settings } from "./models/open_router";
import { openai_chat, openai_completion, openai_embedding, openai_settings } from "./models/openai";
+import { ModelConfig } from "./types";
export const chat_models = { ...openai_chat };
export const completion_models = { ...openai_completion, ...open_router_completion, ...hf_completion };
@@ -66,3 +66,5 @@ export const models = Object.entries({ ...completion_models, ...chat_models })
}, {} as Record);
export { getDefaultModelParams } from "./utils/getDefaultModelParams";
+export { getModelFromPreset } from "./utils/getModelFromPreset";
+export * from "./types";
diff --git a/packages/@pufflig/ps-models/src/models/hf.ts b/packages/@pufflig/ps-models/src/models/hf.ts
index cf125a0..f2d3dee 100644
--- a/packages/@pufflig/ps-models/src/models/hf.ts
+++ b/packages/@pufflig/ps-models/src/models/hf.ts
@@ -1,4 +1,4 @@
-import { ModelDefinition } from "@pufflig/ps-types";
+import { ModelDefinition } from "../types";
export const HF_ACCESS_TOKEN = "hf/access_token";
diff --git a/packages/@pufflig/ps-models/src/models/open_router.ts b/packages/@pufflig/ps-models/src/models/open_router.ts
index 7f9fd35..00e0efa 100755
--- a/packages/@pufflig/ps-models/src/models/open_router.ts
+++ b/packages/@pufflig/ps-models/src/models/open_router.ts
@@ -1,4 +1,4 @@
-import { ModelDefinition } from "@pufflig/ps-types";
+import { ModelDefinition } from "../types";
export const OPEN_ROUTER_API_KEY = "open_router/api_key";
diff --git a/packages/@pufflig/ps-models/src/models/openai.ts b/packages/@pufflig/ps-models/src/models/openai.ts
index 27a6b17..8a58b38 100644
--- a/packages/@pufflig/ps-models/src/models/openai.ts
+++ b/packages/@pufflig/ps-models/src/models/openai.ts
@@ -1,4 +1,4 @@
-import { ModelDefinition } from "@pufflig/ps-types";
+import { ModelDefinition } from "../types";
export const OPENAI_API_KEY = "openai/api_key";
@@ -534,6 +534,7 @@ export const openai_chat: ModelDefinition = {
export const openai_embedding: ModelDefinition = {
"text-embedding-ada-002": {
modelId: "text-embedding-ada-002",
+ contextLength: 2048,
description: "Designed to replace the previous 16 first-generation embedding models at a fraction of the cost",
settings: openai_settings,
streaming: true,
diff --git a/packages/@pufflig/ps-models/src/types.ts b/packages/@pufflig/ps-models/src/types.ts
new file mode 100644
index 0000000..1e15c8d
--- /dev/null
+++ b/packages/@pufflig/ps-models/src/types.ts
@@ -0,0 +1,39 @@
+export interface BaseParam {
+ id: string;
+ name: string;
+ description: string;
+}
+
+export interface TextParam extends BaseParam {
+ type: "text";
+ defaultValue: string;
+ singleLine?: boolean;
+}
+
+export interface NumberParam extends BaseParam {
+ type: "number";
+ defaultValue: number;
+ min?: number;
+ max?: number;
+ step?: number;
+}
+
+export interface ModelConfig {
+ modelId: string;
+ description?: string;
+ settings?: BaseParam[];
+ streaming?: boolean;
+ contextLength: number;
+ parameters: (NumberParam | TextParam)[];
+}
+
+export interface ModelValue {
+ modelId: string;
+ parameters: {
+ [key: string]: number | string;
+ };
+}
+
+export interface ModelDefinition {
+ [key: string]: ModelConfig;
+}
diff --git a/packages/@pufflig/ps-models/src/utils/getModelFromPreset.ts b/packages/@pufflig/ps-models/src/utils/getModelFromPreset.ts
new file mode 100644
index 0000000..c8e7a0c
--- /dev/null
+++ b/packages/@pufflig/ps-models/src/utils/getModelFromPreset.ts
@@ -0,0 +1,26 @@
+import { ModelValue } from "../types";
+
+const presets: Record = {
+ accurate: {
+ modelId: "gpt-4-1106-preview",
+ parameters: {
+ temperature: 0,
+ },
+ },
+ casual: {
+ modelId: "gpt-3.5-turbo-instruct",
+ parameters: {
+ temperature: 0.5,
+ },
+ },
+ creative: {
+ modelId: "gpt-3.5-turbo-instruct",
+ parameters: {
+ temperature: 1,
+ },
+ },
+};
+
+export const getModelFromPreset = (presetBehavior: keyof typeof presets) => {
+ return presets[presetBehavior];
+};
diff --git a/packages/@pufflig/ps-nodes-config/LICENSE b/packages/@pufflig/ps-nodes-config/LICENSE
deleted file mode 100644
index 348250a..0000000
--- a/packages/@pufflig/ps-nodes-config/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2023 Pufflig AB
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/packages/@pufflig/ps-nodes-config/README.md b/packages/@pufflig/ps-nodes-config/README.md
deleted file mode 100644
index a248084..0000000
--- a/packages/@pufflig/ps-nodes-config/README.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# @pufflig/ps-nodes-config
-
-[![Version](https://img.shields.io/npm/v/@pufflig/ps-nodes-config?style=flat&colorA=000000&colorB=000000)](https://www.npmjs.com/package/@pufflig/ps-nodes-config)
-
-Configuration of all nodes used by Prompt Studio.
diff --git a/packages/@pufflig/ps-nodes-config/jest.config.js b/packages/@pufflig/ps-nodes-config/jest.config.js
deleted file mode 100644
index 3abcbd9..0000000
--- a/packages/@pufflig/ps-nodes-config/jest.config.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/** @type {import('ts-jest').JestConfigWithTsJest} */
-module.exports = {
- preset: "ts-jest",
- testEnvironment: "node",
-};
diff --git a/packages/@pufflig/ps-nodes-config/package.json b/packages/@pufflig/ps-nodes-config/package.json
deleted file mode 100644
index 39441ca..0000000
--- a/packages/@pufflig/ps-nodes-config/package.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "name": "@pufflig/ps-nodes-config",
- "private": false,
- "version": "0.25.1",
- "description": "Configuration files for nodes used in prompt studio.",
- "files": [
- "dist"
- ],
- "main": "./dist/ps-nodes-config.umd.js",
- "module": "./dist/ps-nodes-config.es.js",
- "types": "./dist/ps-nodes-config.d.ts",
- "scripts": {
- "build": "tsc && vite build",
- "prepublishOnly": "npm run build"
- },
- "author": "Pufflig AB",
- "license": "MIT",
- "dependencies": {
- "@pufflig/ps-models": "^0.25.1"
- },
- "devDependencies": {
- "@pufflig/ps-types": "^0.25.1",
- "@types/jest": "^29.5.8",
- "jest": "^29.7.0",
- "ts-jest": "^29.1.0",
- "typescript": "^5.2.2",
- "vite": "^4.3.9",
- "vite-plugin-dts": "^2.3.0"
- },
- "volta": {
- "node": "18.16.0"
- },
- "gitHead": "534ff07d186327e38133c0c14a5badd04ced0a9c"
-}
diff --git a/packages/@pufflig/ps-nodes-config/src/adapters/document_check/document_check.ts b/packages/@pufflig/ps-nodes-config/src/adapters/document_check/document_check.ts
deleted file mode 100644
index 5efb98b..0000000
--- a/packages/@pufflig/ps-nodes-config/src/adapters/document_check/document_check.ts
+++ /dev/null
@@ -1,86 +0,0 @@
-import { default_completion_model, models } from "@pufflig/ps-models";
-import { NodeConfig } from "@pufflig/ps-types";
-
-export const documentCheckNodeType = "modifier/document_check" as const;
-
-export const documentCheck: NodeConfig = {
- name: "Checklist",
- description: "Run a checklist on a document.",
- tags: ["adapter", "document", "text"],
- status: "stable",
- execution: {
- inputs: [
- {
- id: "exec:input",
- },
- ],
- outputs: [
- {
- id: "exec:output",
- name: "Completed",
- },
- ],
- },
- outputs: [
- {
- id: "checklist",
- name: "Checklist",
- description: "A checklist of items to run on the document",
- type: "text",
- defaultValue: "",
- },
- ],
- inputs: [
- {
- id: "model",
- name: "AI Settings",
- description: "The model to use",
- type: "model",
- definition: models,
- defaultValue: {
- modelId: default_completion_model,
- parameters: {},
- },
- },
- {
- id: "instructions",
- name: "Instructions",
- description: "Instructions for the AI",
- type: "text",
- defaultValue: ``,
- },
- {
- id: "document",
- name: "Document",
- description: "Document to be checked",
- type: "text",
- defaultValue: "",
- },
- {
- id: "checks",
- name: "Checks",
- description: "The checklist to run on the document",
- type: "object",
- editableSchema: true,
- defaultValue: [],
- },
- {
- id: "fields",
- name: "Fields",
- description: "Custom fields to include in the output for each checklist item",
- type: "list",
- defaultValue: ["ok (yes/no)"],
- },
- {
- id: "format",
- name: "Format",
- description: "The format in which to return the cheklist results",
- type: "selection",
- defaultValue: "markdown",
- options: [
- { id: "csv", name: "CSV" },
- { id: "markdown", name: "Markdown" },
- ],
- },
- ],
-};
diff --git a/packages/@pufflig/ps-nodes-config/src/adapters/index.ts b/packages/@pufflig/ps-nodes-config/src/adapters/index.ts
deleted file mode 100644
index ad04901..0000000
--- a/packages/@pufflig/ps-nodes-config/src/adapters/index.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-import { llmCompletionConfig, llmCompletionNodeType } from "./llm/llm_completion";
-import { openaiChatConfig } from "./openai/openai_chat";
-import { openaiCompletionConfig } from "./openai/openai_completion";
-import { openaiEmbeddingConfig, openaiEmbeddingNodeType } from "./openai/openai_embedding";
-import { documentCheck, documentCheckNodeType } from "./document_check/document_check";
-import { parseDocument, parseDocumentNodeType } from "./parse_document/parse_document";
-
-export const adapterNodes = {
- "adapter/openai_chat": openaiChatConfig,
- "adapter/openai_completion": openaiCompletionConfig,
- [openaiEmbeddingNodeType]: openaiEmbeddingConfig,
- [llmCompletionNodeType]: llmCompletionConfig,
- [documentCheckNodeType]: documentCheck,
- [parseDocumentNodeType]: parseDocument,
-};
-
-export const adapterNodeTypes = {
- openaiEmbeddingNodeType,
- llmCompletionNodeType,
- documentCheckNodeType,
- parseDocumentNodeType,
-};
diff --git a/packages/@pufflig/ps-nodes-config/src/adapters/llm/llm_completion.ts b/packages/@pufflig/ps-nodes-config/src/adapters/llm/llm_completion.ts
deleted file mode 100644
index 2158cf3..0000000
--- a/packages/@pufflig/ps-nodes-config/src/adapters/llm/llm_completion.ts
+++ /dev/null
@@ -1,54 +0,0 @@
-import { default_completion_model, models, getDefaultModelParams } from "@pufflig/ps-models";
-import { NodeConfig } from "@pufflig/ps-types";
-
-export const llmCompletionNodeType = "adapter/llm_completion" as const;
-
-export const llmCompletionConfig: NodeConfig = {
- name: "Instruction",
- description: "Generate a completion using an LLM",
- status: "stable",
- tags: ["adapter", "text"],
- globals: [],
- execution: {
- inputs: [
- {
- id: "exec:input",
- },
- ],
- outputs: [
- {
- id: "exec:output",
- name: "Completed",
- },
- ],
- },
- outputs: [
- {
- id: "completion",
- name: "Completion",
- description: "Text generated by the LLM",
- type: "text",
- defaultValue: "",
- },
- ],
- inputs: [
- {
- id: "model",
- name: "AI Settings",
- description: "The model to use",
- type: "model",
- definition: models,
- defaultValue: {
- modelId: default_completion_model,
- parameters: getDefaultModelParams(default_completion_model),
- },
- },
- {
- id: "prompt",
- name: "Prompt",
- description: "The prompt to send to the LLM",
- type: "text",
- defaultValue: "",
- },
- ],
-};
diff --git a/packages/@pufflig/ps-nodes-config/src/adapters/openai/openai_chat.ts b/packages/@pufflig/ps-nodes-config/src/adapters/openai/openai_chat.ts
deleted file mode 100644
index 75467d4..0000000
--- a/packages/@pufflig/ps-nodes-config/src/adapters/openai/openai_chat.ts
+++ /dev/null
@@ -1,54 +0,0 @@
-import { openai, OPENAI_API_KEY } from "@pufflig/ps-models";
-import { NodeConfig } from "@pufflig/ps-types";
-
-export const openaiChatConfig: NodeConfig = {
- name: "OpenAI (Chat)",
- description: "OpenAI Chat",
- status: "deprecated",
- tags: ["adapter", "chat"],
- globals: [OPENAI_API_KEY],
- execution: {
- inputs: [
- {
- id: "exec:input",
- },
- ],
- outputs: [
- {
- id: "exec:output",
- name: "Completed",
- },
- ],
- },
- outputs: [
- {
- id: "message",
- name: "Message",
- description: "A message from OpenAI",
- type: "message",
- defaultValue: null,
- },
- ],
- inputs: [
- {
- id: "chat",
- name: "Chat",
- description: "The chat to send to OpenAI",
- type: "chat",
- defaultValue: {
- messages: [],
- },
- },
- {
- id: "model",
- name: "Model",
- description: "The model to use",
- type: "model",
- definition: openai.chat_models,
- defaultValue: {
- modelId: "gpt-3.5-turbo",
- parameters: {},
- },
- },
- ],
-};
diff --git a/packages/@pufflig/ps-nodes-config/src/adapters/openai/openai_completion.ts b/packages/@pufflig/ps-nodes-config/src/adapters/openai/openai_completion.ts
deleted file mode 100644
index 5681487..0000000
--- a/packages/@pufflig/ps-nodes-config/src/adapters/openai/openai_completion.ts
+++ /dev/null
@@ -1,52 +0,0 @@
-import { default_completion_model, openai, OPENAI_API_KEY } from "@pufflig/ps-models";
-import { NodeConfig } from "@pufflig/ps-types";
-
-export const openaiCompletionConfig: NodeConfig = {
- name: "OpenAI (Completion)",
- description: "OpenAI Completion",
- status: "deprecated",
- tags: ["adapter", "text"],
- globals: [OPENAI_API_KEY],
- execution: {
- inputs: [
- {
- id: "exec:input",
- },
- ],
- outputs: [
- {
- id: "exec:output",
- name: "Completed",
- },
- ],
- },
- outputs: [
- {
- id: "completion",
- name: "Completion",
- description: "The completion from OpenAI",
- type: "text",
- defaultValue: "",
- },
- ],
- inputs: [
- {
- id: "prompt",
- name: "Prompt",
- description: "The prompt to send to OpenAI",
- type: "text",
- defaultValue: "",
- },
- {
- id: "model",
- name: "Model",
- description: "The model to use",
- type: "model",
- definition: openai.completion_models,
- defaultValue: {
- modelId: default_completion_model,
- parameters: {},
- },
- },
- ],
-};
diff --git a/packages/@pufflig/ps-nodes-config/src/adapters/openai/openai_embedding.ts b/packages/@pufflig/ps-nodes-config/src/adapters/openai/openai_embedding.ts
deleted file mode 100644
index a33a855..0000000
--- a/packages/@pufflig/ps-nodes-config/src/adapters/openai/openai_embedding.ts
+++ /dev/null
@@ -1,54 +0,0 @@
-import { openai, OPENAI_API_KEY } from "@pufflig/ps-models";
-import { NodeConfig } from "@pufflig/ps-types";
-
-export const openaiEmbeddingNodeType = "adapter/openai_embedding" as const;
-
-export const openaiEmbeddingConfig: NodeConfig = {
- name: "OpenAI (Embedding)",
- description: "OpenAI Embedding",
- status: "deprecated",
- tags: ["adapter", "embedding"],
- globals: [OPENAI_API_KEY],
- execution: {
- inputs: [
- {
- id: "exec:input",
- },
- ],
- outputs: [
- {
- id: "exec:output",
- name: "Completed",
- },
- ],
- },
- outputs: [
- {
- id: "embedding",
- name: "Embedding",
- description: "Embedding generated by OpenAI",
- type: "vector",
- defaultValue: [],
- },
- ],
- inputs: [
- {
- id: "text",
- name: "Text",
- description: "The text to generate an embedding for",
- type: "text",
- defaultValue: "",
- },
- {
- id: "model",
- name: "Model",
- description: "The model to use",
- type: "model",
- definition: openai.embedding_models,
- defaultValue: {
- modelId: "text-embedding-ada-002",
- parameters: {},
- },
- },
- ],
-};
diff --git a/packages/@pufflig/ps-nodes-config/src/adapters/parse_document/parse_document.ts b/packages/@pufflig/ps-nodes-config/src/adapters/parse_document/parse_document.ts
deleted file mode 100644
index 972a074..0000000
--- a/packages/@pufflig/ps-nodes-config/src/adapters/parse_document/parse_document.ts
+++ /dev/null
@@ -1,56 +0,0 @@
-import { NodeConfig } from "@pufflig/ps-types";
-
-export const parseDocumentNodeType = "modifier/parse_document" as const;
-
-export const parseDocument: NodeConfig = {
- name: "Parse Document",
- description: "Run a prompt over a document",
- tags: ["adapter", "document", "text"],
- status: "deprecated",
- execution: {
- inputs: [
- {
- id: "exec:input",
- },
- ],
- outputs: [
- {
- id: "exec:output",
- name: "Completed",
- },
- ],
- },
- outputs: [
- {
- id: "text",
- name: "Text",
- description: "The parsed output",
- type: "text",
- defaultValue: "",
- },
- ],
- inputs: [
- {
- id: "prompt",
- name: "Prompt",
- description: "Prompt to parse the document with",
- type: "text",
- defaultValue: "Summarize the following:\n[[document]]",
- },
- {
- id: "join",
- name: "Join Instruction",
- description:
- "Describe how the output should be put together if the document was to long. Leave empty if you don't want to join the outputs.",
- type: "text",
- defaultValue: "",
- },
- {
- id: "document",
- name: "Document",
- description: "Document to be processed",
- type: "text",
- defaultValue: "",
- },
- ],
-};
diff --git a/packages/@pufflig/ps-nodes-config/src/core/forin.ts b/packages/@pufflig/ps-nodes-config/src/core/forin.ts
deleted file mode 100644
index bae9462..0000000
--- a/packages/@pufflig/ps-nodes-config/src/core/forin.ts
+++ /dev/null
@@ -1,45 +0,0 @@
-import { NodeConfig } from "@pufflig/ps-types";
-
-export const forinNodeType = "core/forin" as const;
-
-export const forinNodeConfig: NodeConfig = {
- name: "Loop",
- description: "Loop over items in a list",
- tags: ["core", "forin"],
- status: "experimental",
- execution: {
- inputs: [
- {
- id: "exec:input",
- },
- ],
- outputs: [
- {
- id: "exec:output",
- name: "Step",
- },
- {
- id: "exec:complete",
- name: "Complete",
- },
- ],
- },
- outputs: [
- {
- id: "item",
- type: "text",
- defaultValue: "",
- description: "Single item from the loop",
- name: "Item",
- },
- ],
- inputs: [
- {
- id: "list",
- type: "list",
- defaultValue: [],
- description: "List of items to loop over",
- name: "List",
- },
- ],
-};
diff --git a/packages/@pufflig/ps-nodes-config/src/core/index.ts b/packages/@pufflig/ps-nodes-config/src/core/index.ts
deleted file mode 100644
index 1879dd8..0000000
--- a/packages/@pufflig/ps-nodes-config/src/core/index.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-import { forinNodeConfig, forinNodeType } from "./forin";
-import { inputNodeConfig, inputNodeType } from "./input";
-import { outputNodeConfig, outputNodeType } from "./output";
-
-export const coreNodes = {
- [inputNodeType]: inputNodeConfig,
- [outputNodeType]: outputNodeConfig,
- [forinNodeType]: forinNodeConfig,
-};
-
-export const coreNodeTypes = {
- forinNodeType,
- inputNodeType,
- outputNodeType,
-};
diff --git a/packages/@pufflig/ps-nodes-config/src/core/input.ts b/packages/@pufflig/ps-nodes-config/src/core/input.ts
deleted file mode 100644
index a434143..0000000
--- a/packages/@pufflig/ps-nodes-config/src/core/input.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-import { NodeConfig } from "@pufflig/ps-types";
-
-export const inputNodeType = "core/input" as const;
-
-export const inputNodeConfig: NodeConfig = {
- name: "Start",
- description: "First node in a workflow",
- tags: ["core", "input"],
- status: "stable",
- execution: {
- inputs: [],
- outputs: [
- {
- id: "exec:output",
- },
- ],
- },
- customSchema: "output",
- outputs: [],
- inputs: [],
-};
diff --git a/packages/@pufflig/ps-nodes-config/src/core/output.ts b/packages/@pufflig/ps-nodes-config/src/core/output.ts
deleted file mode 100644
index 7e7646e..0000000
--- a/packages/@pufflig/ps-nodes-config/src/core/output.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import { NodeConfig } from "@pufflig/ps-types";
-
-export const outputNodeType = "core/output" as const;
-
-export const outputNodeConfig: NodeConfig = {
- name: "End",
- description: "Pass the values you want to send to your app here.",
- tags: ["core", "output"],
- status: "stable",
- execution: {
- inputs: [],
- outputs: [],
- },
- customSchema: "input",
- outputs: [],
- inputs: [],
-};
diff --git a/packages/@pufflig/ps-nodes-config/src/data/group/group.ts b/packages/@pufflig/ps-nodes-config/src/data/group/group.ts
deleted file mode 100644
index 0094f9f..0000000
--- a/packages/@pufflig/ps-nodes-config/src/data/group/group.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-import { NodeConfig } from "@pufflig/ps-types";
-
-export const groupNodeType = "data/group" as const;
-
-export const groupNode: NodeConfig = {
- name: "Group",
- description: "Group different values together.",
- tags: ["data", "group"],
- status: "experimental",
- customSchema: "input",
- inputs: [],
- outputs: [
- {
- id: "group",
- name: "Group",
- description: "",
- type: "object",
- defaultValue: [],
- },
- ],
-};
diff --git a/packages/@pufflig/ps-nodes-config/src/data/index.ts b/packages/@pufflig/ps-nodes-config/src/data/index.ts
deleted file mode 100644
index 567a685..0000000
--- a/packages/@pufflig/ps-nodes-config/src/data/index.ts
+++ /dev/null
@@ -1,27 +0,0 @@
-import { groupNode, groupNodeType } from "./group/group";
-import { list, listNodeType } from "./list/list";
-import { message, messageNodeType } from "./message/message";
-import { model, modelNodeType } from "./model/model";
-import { number, numberNodeType } from "./number/number";
-import { prompt, promptNodeType } from "./prompt/prompt";
-import { text, textNodeType } from "./text/text";
-
-export const dataNodes = {
- [groupNodeType]: groupNode,
- [listNodeType]: list,
- [messageNodeType]: message,
- [modelNodeType]: model,
- [numberNodeType]: number,
- [promptNodeType]: prompt,
- [textNodeType]: text,
-};
-
-export const dataNodeTypes = {
- groupNodeType,
- listNodeType,
- messageNodeType,
- modelNodeType,
- numberNodeType,
- promptNodeType,
- textNodeType,
-};
diff --git a/packages/@pufflig/ps-nodes-config/src/data/list/list.ts b/packages/@pufflig/ps-nodes-config/src/data/list/list.ts
deleted file mode 100644
index b0ab8a0..0000000
--- a/packages/@pufflig/ps-nodes-config/src/data/list/list.ts
+++ /dev/null
@@ -1,28 +0,0 @@
-import { NodeConfig } from "@pufflig/ps-types";
-
-export const listNodeType = "data/list" as const;
-
-export const list: NodeConfig = {
- name: "List",
- description: "A list of text values.",
- tags: ["data", "list"],
- status: "experimental",
- outputs: [
- {
- id: "list",
- name: "List",
- description: "",
- type: "list",
- defaultValue: [],
- },
- ],
- inputs: [
- {
- id: "list",
- name: "List",
- description: "",
- type: "list",
- defaultValue: [],
- },
- ],
-};
diff --git a/packages/@pufflig/ps-nodes-config/src/data/message/message.ts b/packages/@pufflig/ps-nodes-config/src/data/message/message.ts
deleted file mode 100644
index cb34705..0000000
--- a/packages/@pufflig/ps-nodes-config/src/data/message/message.ts
+++ /dev/null
@@ -1,53 +0,0 @@
-import { NodeConfig } from "@pufflig/ps-types";
-
-export const messageNodeType = "data/message" as const;
-
-export const message: NodeConfig = {
- name: "Message",
- description: "Can be used to create a message that can be added to a chat.",
- tags: ["data", "message"],
- status: "experimental",
- outputs: [
- {
- id: "message",
- name: "Message",
- description: "",
- type: "message",
- defaultValue: null,
- },
- ],
- inputs: [
- {
- id: "content",
- name: "Content",
- description: "The content of the message.",
- type: "text",
- defaultValue: "",
- },
- {
- id: "role",
- name: "Role",
- description: "The role of the author of the message.",
- type: "selection",
- defaultValue: "user",
- options: [
- {
- id: "user",
- name: "User",
- },
- {
- id: "assistant",
- name: "Assistant",
- },
- {
- id: "system",
- name: "System",
- },
- {
- id: "function",
- name: "Function",
- },
- ],
- },
- ],
-};
diff --git a/packages/@pufflig/ps-nodes-config/src/data/model/model.ts b/packages/@pufflig/ps-nodes-config/src/data/model/model.ts
deleted file mode 100644
index 1b4fbef..0000000
--- a/packages/@pufflig/ps-nodes-config/src/data/model/model.ts
+++ /dev/null
@@ -1,37 +0,0 @@
-import { default_completion_model, models } from "@pufflig/ps-models";
-import { NodeConfig } from "@pufflig/ps-types";
-
-export const modelNodeType = "data/model" as const;
-
-export const model: NodeConfig = {
- name: "LLM",
- description: "Configuration for a Large Language Model.",
- tags: ["data", "model", "completion"],
- status: "experimental",
- outputs: [
- {
- id: "model",
- name: "Model",
- description: "Configuration of the selected LLM.",
- type: "model",
- definition: { ...models },
- defaultValue: {
- modelId: default_completion_model,
- parameters: {},
- },
- },
- ],
- inputs: [
- {
- id: "modelId",
- name: "Model Name",
- description: "The name of the model to use.",
- type: "selection",
- defaultValue: default_completion_model,
- options: Object.keys({ ...models }).map((modelId) => ({
- id: modelId,
- name: modelId,
- })),
- },
- ],
-};
diff --git a/packages/@pufflig/ps-nodes-config/src/data/number/number.ts b/packages/@pufflig/ps-nodes-config/src/data/number/number.ts
deleted file mode 100644
index ef0c7e3..0000000
--- a/packages/@pufflig/ps-nodes-config/src/data/number/number.ts
+++ /dev/null
@@ -1,28 +0,0 @@
-import { NodeConfig } from "@pufflig/ps-types";
-
-export const numberNodeType = "data/number" as const;
-
-export const number: NodeConfig = {
- name: "Number",
- description: "A numerical value.",
- tags: ["data", "number"],
- status: "experimental",
- outputs: [
- {
- id: "number",
- name: "Number",
- description: "",
- type: "number",
- defaultValue: 0,
- },
- ],
- inputs: [
- {
- id: "number",
- name: "Number",
- description: "",
- type: "number",
- defaultValue: 0,
- },
- ],
-};
diff --git a/packages/@pufflig/ps-nodes-config/src/data/prompt/prompt.ts b/packages/@pufflig/ps-nodes-config/src/data/prompt/prompt.ts
deleted file mode 100644
index 02dad5b..0000000
--- a/packages/@pufflig/ps-nodes-config/src/data/prompt/prompt.ts
+++ /dev/null
@@ -1,28 +0,0 @@
-import { NodeConfig } from "@pufflig/ps-types";
-
-export const promptNodeType = "data/prompt" as const;
-
-export const prompt: NodeConfig = {
- name: "Template",
- description: "A text template with variables.",
- tags: ["data", "text", "prompt"],
- status: "stable",
- outputs: [
- {
- id: "prompt",
- name: "Template",
- description: "Template with variables filled in",
- type: "text",
- defaultValue: "",
- },
- ],
- inputs: [
- {
- id: "template",
- name: "Template",
- description: "Template with variables",
- type: "text",
- defaultValue: "",
- },
- ],
-};
diff --git a/packages/@pufflig/ps-nodes-config/src/data/text/text.ts b/packages/@pufflig/ps-nodes-config/src/data/text/text.ts
deleted file mode 100644
index 88c43a1..0000000
--- a/packages/@pufflig/ps-nodes-config/src/data/text/text.ts
+++ /dev/null
@@ -1,28 +0,0 @@
-import { NodeConfig } from "@pufflig/ps-types";
-
-export const textNodeType = "data/text" as const;
-
-export const text: NodeConfig = {
- name: "File",
- description: "Can be used to store text.",
- tags: ["data", "text"],
- status: "stable",
- outputs: [
- {
- id: "text",
- name: "Text",
- description: "",
- type: "text",
- defaultValue: "",
- },
- ],
- inputs: [
- {
- id: "text",
- name: "Text",
- description: "",
- type: "text",
- defaultValue: "",
- },
- ],
-};
diff --git a/packages/@pufflig/ps-nodes-config/src/index.ts b/packages/@pufflig/ps-nodes-config/src/index.ts
deleted file mode 100644
index 7ffbf7e..0000000
--- a/packages/@pufflig/ps-nodes-config/src/index.ts
+++ /dev/null
@@ -1,27 +0,0 @@
-import { adapterNodeTypes, adapterNodes } from "./adapters";
-import { coreNodeTypes, coreNodes } from "./core";
-import { dataNodeTypes, dataNodes } from "./data";
-import { modifierNodeTypes, modifierNodes } from "./modifiers";
-
-export const nodes = {
- ...adapterNodes,
- ...dataNodes,
- ...modifierNodes,
- ...coreNodes,
-};
-
-export const adapters = adapterNodes;
-export const data = dataNodes;
-export const modifiers = modifierNodes;
-export const core = coreNodes;
-
-export const nodeTypes = {
- ...adapterNodeTypes,
- ...coreNodeTypes,
- ...dataNodeTypes,
- ...modifierNodeTypes,
-};
-
-export * from "./types";
-
-export type NodeType = keyof typeof nodes;
diff --git a/packages/@pufflig/ps-nodes-config/src/modifiers/add_message/add_message.ts b/packages/@pufflig/ps-nodes-config/src/modifiers/add_message/add_message.ts
deleted file mode 100644
index d19f77f..0000000
--- a/packages/@pufflig/ps-nodes-config/src/modifiers/add_message/add_message.ts
+++ /dev/null
@@ -1,39 +0,0 @@
-import { NodeConfig } from "@pufflig/ps-types";
-
-export const addMessageNodeType = "modifier/add_message" as const;
-
-export const addMessage: NodeConfig = {
- name: "Add Message",
- description: "Add a message to a chat",
- tags: ["modifier", "chat", "message"],
- status: "experimental",
- outputs: [
- {
- id: "chat",
- name: "Chat",
- description: "The chat with the appended message",
- type: "chat",
- defaultValue: {
- messages: [],
- },
- },
- ],
- inputs: [
- {
- id: "chat",
- name: "Chat",
- description: "Chat to which append a message",
- type: "chat",
- defaultValue: {
- messages: [],
- },
- },
- {
- id: "message",
- name: "Message",
- description: "Message to append to the chat",
- type: "message",
- defaultValue: null,
- },
- ],
-};
diff --git a/packages/@pufflig/ps-nodes-config/src/modifiers/add_text/add_text.ts b/packages/@pufflig/ps-nodes-config/src/modifiers/add_text/add_text.ts
deleted file mode 100644
index da0166a..0000000
--- a/packages/@pufflig/ps-nodes-config/src/modifiers/add_text/add_text.ts
+++ /dev/null
@@ -1,35 +0,0 @@
-import { NodeConfig } from "@pufflig/ps-types";
-
-export const addTextNodeType = "modifier/add_text" as const;
-
-export const addText: NodeConfig = {
- name: "Add Text",
- description: "Add tex to a list",
- tags: ["modifier", "list", "text"],
- status: "deprecated",
- outputs: [
- {
- id: "list",
- name: "List",
- description: "The list with the appended text",
- type: "list",
- defaultValue: [],
- },
- ],
- inputs: [
- {
- id: "list",
- name: "List",
- description: "The list to append the text to",
- type: "list",
- defaultValue: [],
- },
- {
- id: "text",
- name: "Text",
- description: "Text to append to the list",
- type: "text",
- defaultValue: "",
- },
- ],
-};
diff --git a/packages/@pufflig/ps-nodes-config/src/modifiers/index.ts b/packages/@pufflig/ps-nodes-config/src/modifiers/index.ts
deleted file mode 100644
index 6d8c5b6..0000000
--- a/packages/@pufflig/ps-nodes-config/src/modifiers/index.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-import { addMessage, addMessageNodeType } from "./add_message/add_message";
-import { addText, addTextNodeType } from "./add_text/add_text";
-import { splitText, splitTextNodeType } from "./split_text/split_text";
-import { templateChat, templateChatNodeType } from "./template/template_chat";
-import { templateText, templateTextNodeType } from "./template/template_text";
-
-export const modifierNodes = {
- [addMessageNodeType]: addMessage,
- [addTextNodeType]: addText,
- [splitTextNodeType]: splitText,
- [templateChatNodeType]: templateChat,
- [templateTextNodeType]: templateText,
-};
-
-export const modifierNodeTypes = {
- addMessageNodeType,
- addTextNodeType,
- splitTextNodeType,
- templateChatNodeType,
- templateTextNodeType,
-};
diff --git a/packages/@pufflig/ps-nodes-config/src/modifiers/split_text/split_text.ts b/packages/@pufflig/ps-nodes-config/src/modifiers/split_text/split_text.ts
deleted file mode 100644
index 67ba660..0000000
--- a/packages/@pufflig/ps-nodes-config/src/modifiers/split_text/split_text.ts
+++ /dev/null
@@ -1,44 +0,0 @@
-import { NodeConfig } from "@pufflig/ps-types";
-
-export const splitTextNodeType = "modifier/split_text" as const;
-
-export const splitText: NodeConfig = {
- name: "Split Text",
- description: "Can be used to split text into sections.",
- tags: ["modifier", "text", "split"],
- status: "experimental",
- outputs: [
- {
- id: "list",
- name: "List",
- description: "List of the parts that the text was split into.",
- type: "list",
- defaultValue: [],
- },
- ],
- inputs: [
- {
- id: "method",
- name: "Method",
- description: "How should the text be split.",
- type: "selection",
- defaultValue: "paragraph",
- options: [{ id: "paragraph", name: "paragraph" }],
- },
- {
- id: "chunkSize",
- name: "Chunk Size",
- description: "How many characters each chunk should have.",
- type: "number",
- defaultValue: 1200,
- min: 1,
- },
- {
- id: "text",
- name: "Text",
- description: "The text to be split.",
- type: "text",
- defaultValue: "",
- },
- ],
-};
diff --git a/packages/@pufflig/ps-nodes-config/src/modifiers/template/template_chat.ts b/packages/@pufflig/ps-nodes-config/src/modifiers/template/template_chat.ts
deleted file mode 100644
index 223039e..0000000
--- a/packages/@pufflig/ps-nodes-config/src/modifiers/template/template_chat.ts
+++ /dev/null
@@ -1,39 +0,0 @@
-import { NodeConfig } from "@pufflig/ps-types";
-
-export const templateChatNodeType = "modifier/template_chat" as const;
-
-export const templateChat: NodeConfig = {
- name: "Chat Template",
- description: "Using this template, you can insert text into a chat.",
- tags: ["modifier", "chat", "template"],
- status: "experimental",
- outputs: [
- {
- id: "chat",
- name: "Chat",
- description: "The chat with variables filled in",
- type: "chat",
- defaultValue: {
- messages: [],
- },
- },
- ],
- inputs: [
- {
- id: "chat",
- name: "Chat",
- description: "Chat template to fill in",
- type: "chat",
- defaultValue: {
- messages: [],
- },
- },
- {
- id: "variables",
- name: "Variables",
- description: "Chat variables to use on the template",
- type: "object",
- defaultValue: [],
- },
- ],
-};
diff --git a/packages/@pufflig/ps-nodes-config/src/modifiers/template/template_text.ts b/packages/@pufflig/ps-nodes-config/src/modifiers/template/template_text.ts
deleted file mode 100644
index 8a75a4e..0000000
--- a/packages/@pufflig/ps-nodes-config/src/modifiers/template/template_text.ts
+++ /dev/null
@@ -1,35 +0,0 @@
-import { NodeConfig } from "@pufflig/ps-types";
-
-export const templateTextNodeType = "modifier/template_text" as const;
-
-export const templateText: NodeConfig = {
- name: "Text Template",
- description: "Using this template, you can insert variables into text.",
- tags: ["modifier", "text"],
- status: "deprecated",
- outputs: [
- {
- id: "text",
- name: "Text",
- description: "The text from the handlebar template filled in",
- type: "text",
- defaultValue: "",
- },
- ],
- inputs: [
- {
- id: "template",
- name: "Template",
- description: "Template to fill in",
- type: "text",
- defaultValue: "",
- },
- {
- id: "variables",
- name: "Variables",
- description: "Chat variables to use on the template",
- type: "object",
- defaultValue: [],
- },
- ],
-};
diff --git a/packages/@pufflig/ps-nodes-config/src/types.ts b/packages/@pufflig/ps-nodes-config/src/types.ts
deleted file mode 100644
index 15684e0..0000000
--- a/packages/@pufflig/ps-nodes-config/src/types.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-export type DataFormat = "text" | "chat";
-
-export interface UserSettings {
- name: string;
- description: string;
- settings: {
- [key: string]: {
- name: string;
- description: string;
- type: "secret" | "text";
- };
- };
-}
diff --git a/packages/@pufflig/ps-nodes-config/tsconfig.json b/packages/@pufflig/ps-nodes-config/tsconfig.json
deleted file mode 100644
index ad4c213..0000000
--- a/packages/@pufflig/ps-nodes-config/tsconfig.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "compilerOptions": {
- "target": "ES2020",
- "useDefineForClassFields": true,
- "lib": ["ES2020"],
- "module": "commonjs",
- "skipLibCheck": true,
-
- /* Bundler mode */
- "esModuleInterop": true,
- "allowImportingTsExtensions": true,
- "resolveJsonModule": true,
- "isolatedModules": true,
- "noEmit": true,
-
- /* Linting */
- "strict": true,
- "noUnusedLocals": true,
- "noUnusedParameters": true,
- "noFallthroughCasesInSwitch": true
- },
- "include": ["src"]
-}
diff --git a/packages/@pufflig/ps-nodes-config/vite.config.ts b/packages/@pufflig/ps-nodes-config/vite.config.ts
deleted file mode 100644
index 0510f34..0000000
--- a/packages/@pufflig/ps-nodes-config/vite.config.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-import path from "node:path";
-import { defineConfig } from "vite";
-import dts from "vite-plugin-dts";
-
-export default defineConfig({
- plugins: [
- dts({
- insertTypesEntry: true,
- }),
- ],
- build: {
- lib: {
- entry: path.resolve(__dirname, "src/index.ts"),
- name: "@pufflig/ps-nodes-config",
- formats: ["es", "umd"],
- fileName: (format) => `ps-nodes-config.${format}.js`,
- },
- },
-});
diff --git a/packages/@pufflig/ps-nodes/LICENSE b/packages/@pufflig/ps-nodes/LICENSE
deleted file mode 100644
index 348250a..0000000
--- a/packages/@pufflig/ps-nodes/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2023 Pufflig AB
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/packages/@pufflig/ps-nodes/README.md b/packages/@pufflig/ps-nodes/README.md
deleted file mode 100644
index be21944..0000000
--- a/packages/@pufflig/ps-nodes/README.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# @pufflig/ps-nodes
-
-[![Version](https://img.shields.io/npm/v/@pufflig/ps-nodes?style=flat&colorA=000000&colorB=000000)](https://www.npmjs.com/package/@pufflig/ps-nodes)
-
-Implementation of all nodes used by Prompt Studio.
diff --git a/packages/@pufflig/ps-nodes/jest.config.js b/packages/@pufflig/ps-nodes/jest.config.js
deleted file mode 100644
index 3abcbd9..0000000
--- a/packages/@pufflig/ps-nodes/jest.config.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/** @type {import('ts-jest').JestConfigWithTsJest} */
-module.exports = {
- preset: "ts-jest",
- testEnvironment: "node",
-};
diff --git a/packages/@pufflig/ps-nodes/package.json b/packages/@pufflig/ps-nodes/package.json
deleted file mode 100644
index c1fe3c2..0000000
--- a/packages/@pufflig/ps-nodes/package.json
+++ /dev/null
@@ -1,47 +0,0 @@
-{
- "name": "@pufflig/ps-nodes",
- "private": false,
- "version": "0.25.1",
- "description": "Collection of nodes used in Prompt Studio",
- "files": [
- "dist"
- ],
- "main": "./dist/ps-nodes.umd.js",
- "module": "./dist/ps-nodes.es.js",
- "types": "./dist/ps-nodes.d.ts",
- "scripts": {
- "build": "tsc && vite build",
- "prepublishOnly": "npm run build",
- "test": "jest"
- },
- "author": "Pufflig AB",
- "license": "MIT",
- "devDependencies": {
- "@pufflig/ps-types": "^0.25.1",
- "@types/jest": "^29.5.8",
- "@types/lodash": "^4.14.196",
- "@types/mustache": "^4.2.2",
- "@types/uuid": "^9.0.2",
- "jest": "^29.7.0",
- "typescript": "^5.2.2",
- "vite": "^4.3.9",
- "vite-plugin-dts": "^3.6.3",
- "vite-plugin-wasm": "^3.2.2"
- },
- "volta": {
- "node": "18.16.0"
- },
- "dependencies": {
- "@dqbd/tiktoken": "^1.0.7",
- "@pufflig/ps-models": "^0.25.1",
- "@pufflig/ps-nodes-config": "^0.25.1",
- "@pufflig/ps-sdk": "^0.25.1",
- "axios": "^1.6.2",
- "langchain": "^0.0.193",
- "lodash": "^4.17.21",
- "mustache": "^4.2.0",
- "openai": "^4.19.0",
- "uuid": "^9.0.1"
- },
- "gitHead": "534ff07d186327e38133c0c14a5badd04ced0a9c"
-}
diff --git a/packages/@pufflig/ps-nodes/src/adapters/document_check/__snapshots__/document_check.test.ts.snap b/packages/@pufflig/ps-nodes/src/adapters/document_check/__snapshots__/document_check.test.ts.snap
deleted file mode 100644
index 47f4995..0000000
--- a/packages/@pufflig/ps-nodes/src/adapters/document_check/__snapshots__/document_check.test.ts.snap
+++ /dev/null
@@ -1,264 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`documentCheck should extract variables correctly 1`] = `
-[
- {
- "defaultValue": {
- "modelId": "gpt-3.5-turbo-instruct",
- "parameters": {},
- },
- "definition": {
- "anthropic/claude-2": {
- "contextLength": 8192,
- "description": "Claude: superior performance on tasks that require complex reasoning",
- "modelId": "anthropic/claude-2",
- "parameters": [
- {
- "defaultValue": 1,
- "description": "Amount of randomness injected into the response.",
- "id": "temperature",
- "max": 1,
- "min": 0,
- "name": "Temperature",
- "step": 0.1,
- "type": "number",
- },
- {
- "defaultValue": 0.7,
- "description": "In nucleus sampling, we compute the cumulative distribution over all the options for each subsequent token in decreasing probability order and cut it off once it reaches a particular probability specified by top_p. You should either alter temperature or top_p, but not both.",
- "id": "top_p",
- "max": 1,
- "min": 0,
- "name": "Top P",
- "step": 0.1,
- "type": "number",
- },
- {
- "defaultValue": 5,
- "description": "Only sample from the top K options for each subsequent token.",
- "id": "top_k",
- "max": 100,
- "min": 0,
- "name": "Top K",
- "step": 1,
- "type": "number",
- },
- ],
- "settings": [
- {
- "description": "Your Open Router API key",
- "id": "open_router/api_key",
- "name": "Open Router API Key",
- },
- ],
- },
- "gpt-3.5-turbo-instruct": {
- "contextLength": 4096,
- "description": "Similar capabilities as text-davinci-003 but compatible with legacy Completions endpoint and not Chat Completions.",
- "modelId": "gpt-3.5-turbo-instruct",
- "parameters": [
- {
- "defaultValue": 0.4,
- "description": "What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.",
- "id": "temperature",
- "max": 2,
- "min": 0,
- "name": "Temperature",
- "step": 0.1,
- "type": "number",
- },
- {
- "defaultValue": 1024,
- "description": "The maximum number of tokens to generate in the completion. The total length of input tokens and generated tokens is limited by the model's context length.",
- "id": "max_tokens",
- "max": 4096,
- "min": 1,
- "name": "Max Tokens",
- "step": 20,
- "type": "number",
- },
- {
- "defaultValue": 1,
- "description": "An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered.",
- "id": "top_p",
- "max": 1,
- "min": 0,
- "name": "Top P",
- "step": 0.1,
- "type": "number",
- },
- {
- "defaultValue": 0,
- "description": "Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.",
- "id": "frequency_penalty",
- "max": 2,
- "min": -2,
- "name": "Frequency penalty",
- "step": 0.1,
- "type": "number",
- },
- {
- "defaultValue": 0,
- "description": "Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.",
- "id": "presence_penalty",
- "max": 2,
- "min": -2,
- "name": "Presence penalty",
- "step": 0.1,
- "type": "number",
- },
- ],
- "settings": [
- {
- "description": "Your OpenAI API key",
- "id": "openai/api_key",
- "name": "API Key",
- },
- ],
- "streaming": true,
- },
- "gpt-4-1106-preview": {
- "contextLength": 4096,
- "description": "More capable than any GPT-3.5 model, able to do more complex tasks, and optimized for chat.",
- "modelId": "gpt-4-1106-preview",
- "parameters": [
- {
- "defaultValue": 0.4,
- "description": "What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.",
- "id": "temperature",
- "max": 2,
- "min": 0,
- "name": "Temperature",
- "step": 0.1,
- "type": "number",
- },
- {
- "defaultValue": 1024,
- "description": "The maximum number of tokens to generate in the completion. The total length of input tokens and generated tokens is limited by the model's context length.",
- "id": "max_tokens",
- "max": 4096,
- "min": 1,
- "name": "Max Tokens",
- "step": 20,
- "type": "number",
- },
- {
- "defaultValue": 1,
- "description": "An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered.",
- "id": "top_p",
- "max": 1,
- "min": 0,
- "name": "Top P",
- "step": 0.1,
- "type": "number",
- },
- {
- "defaultValue": 0,
- "description": "Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.",
- "id": "frequency_penalty",
- "max": 2,
- "min": -2,
- "name": "Frequency penalty",
- "step": 0.1,
- "type": "number",
- },
- {
- "defaultValue": 0,
- "description": "Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.",
- "id": "presence_penalty",
- "max": 2,
- "min": -2,
- "name": "Presence penalty",
- "step": 0.1,
- "type": "number",
- },
- ],
- "settings": [
- {
- "description": "Your OpenAI API key",
- "id": "openai/api_key",
- "name": "API Key",
- },
- ],
- "streaming": true,
- },
- "meta-llama/llama-2-13b-chat": {
- "contextLength": 4096,
- "description": "Meta: Llama v2 13B Chat (beta)",
- "modelId": "meta-llama/llama-2-13b-chat",
- "parameters": [
- {
- "defaultValue": 0.4,
- "description": "",
- "id": "temperature",
- "max": 2,
- "min": 0,
- "name": "Temperature",
- "step": 0.1,
- "type": "number",
- },
- ],
- "settings": [
- {
- "description": "Your Open Router API key",
- "id": "open_router/api_key",
- "name": "Open Router API Key",
- },
- ],
- },
- },
- "description": "The model to use",
- "id": "model",
- "name": "AI Settings",
- "type": "model",
- },
- {
- "defaultValue": "",
- "description": "Instructions for the AI",
- "id": "instructions",
- "name": "Instructions",
- "type": "text",
- },
- {
- "defaultValue": "",
- "description": "Document to be checked",
- "id": "document",
- "name": "Document",
- "type": "text",
- },
- {
- "defaultValue": [],
- "description": "The checklist to run on the document",
- "editableSchema": true,
- "id": "checks",
- "name": "Checks",
- "type": "object",
- },
- {
- "defaultValue": [
- "ok (yes/no)",
- ],
- "description": "Custom fields to include in the output for each checklist item",
- "id": "fields",
- "name": "Fields",
- "type": "list",
- },
- {
- "defaultValue": "markdown",
- "description": "The format in which to return the cheklist results",
- "id": "format",
- "name": "Format",
- "options": [
- {
- "id": "csv",
- "name": "CSV",
- },
- {
- "id": "markdown",
- "name": "Markdown",
- },
- ],
- "type": "selection",
- },
-]
-`;
diff --git a/packages/@pufflig/ps-nodes/src/adapters/document_check/document_check.test.ts b/packages/@pufflig/ps-nodes/src/adapters/document_check/document_check.test.ts
deleted file mode 100644
index f22fecc..0000000
--- a/packages/@pufflig/ps-nodes/src/adapters/document_check/document_check.test.ts
+++ /dev/null
@@ -1,231 +0,0 @@
-import axios from "axios";
-import { execute, getInputDefinition, LLMCompletionInput } from "./document_check";
-
-jest.mock("axios");
-
-describe("documentCheck", () => {
- beforeEach(() => {
- jest.resetAllMocks();
- });
-
- it("should return the resulting checklist", async () => {
- const input: LLMCompletionInput = {
- instructions: "Hello, world!",
- model: {
- modelId: "test_model",
- parameters: {},
- },
- document: "This is a test document.",
- checks: [{ id: "is_greeting", defaultValue: "test_table", type: "text", name: "is_greeting", description: "" }],
- fields: ["ok"],
- format: "csv",
- };
-
- const expectedOutput = { result: "mock checklist" };
- const mockedAxiosResponse = { data: expectedOutput };
- (axios.post as jest.MockedFunction).mockResolvedValueOnce(mockedAxiosResponse);
-
- const output = await execute(input);
-
- expect(output).toEqual({ checklist: expectedOutput.result });
- expect(axios.post).toHaveBeenCalledTimes(1);
- });
-
- it("should parse input variables", async () => {
- const input: LLMCompletionInput = {
- instructions: "Hello, {{world}}! Run a checklist on the following document:",
- model: {
- modelId: "test_model",
- parameters: {},
- },
- document: "This is a test document.",
- checks: [
- {
- id: "is_greeting",
- defaultValue: "is the text a greeting?",
- type: "text",
- name: "is_greeting",
- description: "",
- },
- {
- id: "is_formal",
- defaultValue: "is the greeting formal?",
- type: "text",
- name: "is_formal",
- description: "",
- },
- ],
- fields: ["ok"],
- format: "csv",
- world: "test",
- };
-
- const expectedOutput = { result: "This is a test completion." };
- const mockedAxiosResponse = { data: expectedOutput };
- (axios.post as jest.MockedFunction).mockResolvedValueOnce(mockedAxiosResponse);
-
- const output = await execute(input);
-
- expect(output).toEqual({ checklist: expectedOutput.result });
- expect(axios.post).toHaveBeenCalledTimes(1);
- expect(axios.post).toHaveBeenCalledWith(
- expect.any(String),
- {
- document: "This is a test document.",
- format: `check,ok
-is_greeting,
-is_formal,`,
- modelId: "test_model",
- options: {
- cache: true,
- track: true,
- },
- parameters: {},
- prompt: `Hello, test! Run a checklist on the following document:
-DOCUMENT:
-{{document}}
-
-CHECKLIST DESCRIPTION:
-check,description
-is_greeting, is the text a greeting?
-is_formal, is the greeting formal?
-
-TABLE FORMAT:
-{{table}}
-
-Return only the TABLE IN CSV FORMAT:`,
- },
- {
- headers: {
- Authorization: "Bearer undefined",
- "Content-Type": "application/json",
- },
- }
- );
- });
-
- it("should parse input variables", async () => {
- const input: LLMCompletionInput = {
- instructions: "Hello, {{world}}! Run a checklist on the following document:",
- model: {
- modelId: "test_model",
- parameters: {},
- },
- document: "This is a test document.",
- checks: [
- {
- id: "is_greeting",
- defaultValue: "is the text a greeting?",
- type: "text",
- name: "is_greeting",
- description: "",
- },
- {
- id: "is_formal",
- defaultValue: "is the greeting formal?",
- type: "text",
- name: "is_formal",
- description: "",
- },
- ],
- fields: ["ok"],
- format: "markdown",
- world: "test",
- };
-
- const expectedOutput = { result: "This is a test completion." };
- const mockedAxiosResponse = { data: expectedOutput };
- (axios.post as jest.MockedFunction).mockResolvedValueOnce(mockedAxiosResponse);
-
- const output = await execute(input);
-
- expect(output).toEqual({ checklist: expectedOutput.result });
- expect(axios.post).toHaveBeenCalledTimes(1);
- expect(axios.post).toHaveBeenCalledWith(
- expect.any(String),
- {
- document: "This is a test document.",
- format: `|check|ok|
-|is_greeting||
-|is_formal||`,
- modelId: "test_model",
- options: {
- cache: true,
- track: true,
- },
- parameters: {},
- prompt: `Hello, test! Run a checklist on the following document:
-DOCUMENT:
-{{document}}
-
-CHECKLIST DESCRIPTION:
-|check|description|
-|is_greeting|is the text a greeting?|
-|is_formal|is the greeting formal?|
-
-TABLE FORMAT:
-{{table}}
-
-Return only the TABLE IN MARKDOWN FORMAT:`,
- },
- {
- headers: {
- Authorization: "Bearer undefined",
- "Content-Type": "application/json",
- },
- }
- );
- });
-
- it("should extract variables correctly", async () => {
- const output = getInputDefinition({
- instructions: "Hello, {{world}}!",
- model: {
- modelId: "test_model",
- parameters: {},
- },
- document: "This is a test document.",
- checks: [
- {
- id: "is_greeting",
- defaultValue: "is the text a greeting?",
- type: "text",
- name: "is_greeting",
- description: "",
- },
- {
- id: "is_formal",
- defaultValue: "is the greeting formal?",
- type: "text",
- name: "is_formal",
- description: "",
- },
- ],
- fields: ["ok"],
- format: "csv",
- world: "test",
- });
-
- expect(output).toMatchSnapshot();
- });
-
- it("should throw an error if the API call fails", async () => {
- const input: LLMCompletionInput = {
- instructions: "Hello, world!",
- model: {
- modelId: "test_model",
- parameters: {},
- },
- document: "This is a test document.",
- checks: [{ id: "is_greeting", defaultValue: "test_table", type: "text", name: "is_greeting", description: "" }],
- fields: ["ok"],
- format: "csv",
- };
-
- const expectedError = new Error("API call failed.");
- (axios.post as jest.MockedFunction).mockRejectedValueOnce(expectedError);
-
- await expect(execute(input)).rejects.toThrow(expectedError);
- expect(axios.post).toHaveBeenCalledTimes(1);
- });
-});
diff --git a/packages/@pufflig/ps-nodes/src/adapters/document_check/document_check.ts b/packages/@pufflig/ps-nodes/src/adapters/document_check/document_check.ts
deleted file mode 100644
index 3dc9128..0000000
--- a/packages/@pufflig/ps-nodes/src/adapters/document_check/document_check.ts
+++ /dev/null
@@ -1,159 +0,0 @@
-import { nodeTypes, nodes } from "@pufflig/ps-nodes-config";
-import { refineCompletion } from "@pufflig/ps-sdk";
-import { Execute, GetInputDefinition, ModelValue, Node, ObjectDefinition, Param } from "@pufflig/ps-types";
-import { getPromptStudioKey } from "../../utils/getPromptStudioKey";
-import { extractVariables } from "../../utils/extractVariables";
-import Mustache from "mustache";
-
-export interface LLMCompletionInput {
- instructions: string;
- model: ModelValue;
- document: string;
- checks: ObjectDefinition;
- format: string;
- fields: string[];
- [key: string]: any;
-}
-
-export interface LLMCompletionOutput {
- checklist: string;
-}
-
-const makeCSVChecklist = (checklist: ObjectDefinition, fields: string[]) => {
- const header = "check," + fields.join(",");
- const rows = checklist.map((row) => {
- return row.id + "," + fields.map(() => "").join(",");
- });
-
- return `${header}\n${rows.join("\n")}`;
-};
-
-const makeMarkdownChecklist = (checklist: ObjectDefinition, fields: string[]) => {
- const header = "|check|" + fields.join("|") + "|";
- const rows = checklist.map((row) => {
- return "|" + row.id + "|" + fields.map(() => "").join("|") + "|";
- });
-
- return `${header}\n${rows.join("\n")}`;
-};
-
-const makeCSVDescription = (checklist: ObjectDefinition) => {
- const header = "check,description";
- const rows = checklist.map((item) => {
- return `${item.id}, ${(item.defaultValue as string).replace(/,/g, "")}`;
- });
- return `${header}\n${rows.join("\n")}`;
-};
-
-const makeMarkdownDescription = (checklist: ObjectDefinition) => {
- const header = "|check|description|";
- const rows = (checklist || []).map((item) => {
- return `|${item.id}|${(item.defaultValue as string).replace(/,/g, "")}|`;
- });
- return `${header}\n${rows.join("\n")}`;
-};
-
-export const execute: Execute = async (input, options = {}) => {
- const { instructions, model, document, checks, fields, format, ...variables } = input;
- const { modelId, parameters } = model;
- const { globals } = options;
-
- const isCSV = format === "csv";
-
- // checklist format
- const checkListFormat = isCSV ? makeCSVChecklist(checks, fields) : makeMarkdownChecklist(checks, fields);
-
- // checklist description
- const description = isCSV ? makeCSVDescription(checks) : makeMarkdownDescription(checks);
-
- // TODO: move into the API
- const instructionsWithChecklist = `${instructions}
-DOCUMENT:
-{{document}}
-
-CHECKLIST DESCRIPTION:
-${description}
-
-TABLE FORMAT:
-{{table}}
-
-Return only the TABLE IN ${format.toUpperCase()} FORMAT:`;
-
- // render the prompt without overwriting the document and table variables
- const renderedPrompt = Mustache.render(instructionsWithChecklist, {
- ...variables,
- document: "{{document}}",
- table: "{{table}}",
- });
-
- const { result } = await refineCompletion({
- apiKey: getPromptStudioKey(globals || {}),
- modelId,
- prompt: renderedPrompt,
- document: document,
- format: checkListFormat,
- parameters,
- config: globals,
- options: {
- cache: true,
- track: true,
- },
- });
-
- return {
- checklist: result || "",
- };
-};
-
-/**
- * Returns a new input definition given variables extracted from the template.
- *
- * @param input
- * @param prev
- * @returns
- */
-export const getInputDefinition: GetInputDefinition = (input) => {
- const { prompt, document, model, table, ...rest } = input;
-
- if (prompt === undefined) {
- return nodes[nodeTypes.documentCheckNodeType].inputs;
- }
-
- const defaults = { prompt, document, model, table };
-
- const definitionsWithDefaults = nodes[nodeTypes.documentCheckNodeType].inputs.map((input) => {
- if (Object.keys(defaults).includes(input.id)) {
- return {
- ...input,
- defaultValue: defaults[input.id as keyof typeof defaults],
- } as Param;
- }
-
- return input;
- });
-
- const extractedVariables = extractVariables(prompt);
-
- if (extractedVariables) {
- const extractedVariablesWithDefaults = extractedVariables
- .filter((param) => {
- return !Object.keys(defaults).includes(param.id);
- })
- .map((variable) => {
- return {
- ...variable,
- defaultValue: rest[variable.id] || "",
- } as Param;
- });
-
- return [...definitionsWithDefaults, ...extractedVariablesWithDefaults];
- }
-
- return definitionsWithDefaults;
-};
-
-export const documentCheck: Node = {
- ...nodes[nodeTypes.documentCheckNodeType],
- execute,
- getInputDefinition,
-};
diff --git a/packages/@pufflig/ps-nodes/src/adapters/index.ts b/packages/@pufflig/ps-nodes/src/adapters/index.ts
deleted file mode 100644
index c21e681..0000000
--- a/packages/@pufflig/ps-nodes/src/adapters/index.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-import { nodeTypes } from "@pufflig/ps-nodes-config";
-import { llmCompletion } from "./llm/llm_completion";
-import { openaiChat, openaiChatNodeType } from "./openai/openai_chat";
-import { openaiCompletion, openaiCompletionNodeType } from "./openai/openai_completion";
-import { openaiEmbedding } from "./openai/openai_embedding";
-import { documentCheck } from "./document_check/document_check";
-import { parseDocument } from "./parse_document/parse_document";
-
-export const adapterNodes = {
- [openaiChatNodeType]: openaiChat,
- [openaiCompletionNodeType]: openaiCompletion,
- [nodeTypes.openaiEmbeddingNodeType]: openaiEmbedding,
- [nodeTypes.llmCompletionNodeType]: llmCompletion,
- [nodeTypes.parseDocumentNodeType]: parseDocument,
- [nodeTypes.documentCheckNodeType]: documentCheck,
-};
diff --git a/packages/@pufflig/ps-nodes/src/adapters/llm/__snapshots__/llm_completion.test.ts.snap b/packages/@pufflig/ps-nodes/src/adapters/llm/__snapshots__/llm_completion.test.ts.snap
deleted file mode 100644
index d4e1c3b..0000000
--- a/packages/@pufflig/ps-nodes/src/adapters/llm/__snapshots__/llm_completion.test.ts.snap
+++ /dev/null
@@ -1,688 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`getInputDefinition - if you pass a template and a variable, take value of the variable 1`] = `
-[
- {
- "defaultValue": {
- "modelId": "test",
- "parameters": {},
- },
- "definition": {
- "anthropic/claude-2": {
- "contextLength": 8192,
- "description": "Claude: superior performance on tasks that require complex reasoning",
- "modelId": "anthropic/claude-2",
- "parameters": [
- {
- "defaultValue": 1,
- "description": "Amount of randomness injected into the response.",
- "id": "temperature",
- "max": 1,
- "min": 0,
- "name": "Temperature",
- "step": 0.1,
- "type": "number",
- },
- {
- "defaultValue": 0.7,
- "description": "In nucleus sampling, we compute the cumulative distribution over all the options for each subsequent token in decreasing probability order and cut it off once it reaches a particular probability specified by top_p. You should either alter temperature or top_p, but not both.",
- "id": "top_p",
- "max": 1,
- "min": 0,
- "name": "Top P",
- "step": 0.1,
- "type": "number",
- },
- {
- "defaultValue": 5,
- "description": "Only sample from the top K options for each subsequent token.",
- "id": "top_k",
- "max": 100,
- "min": 0,
- "name": "Top K",
- "step": 1,
- "type": "number",
- },
- ],
- "settings": [
- {
- "description": "Your Open Router API key",
- "id": "open_router/api_key",
- "name": "Open Router API Key",
- },
- ],
- },
- "gpt-3.5-turbo-instruct": {
- "contextLength": 4096,
- "description": "Similar capabilities as text-davinci-003 but compatible with legacy Completions endpoint and not Chat Completions.",
- "modelId": "gpt-3.5-turbo-instruct",
- "parameters": [
- {
- "defaultValue": 0.4,
- "description": "What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.",
- "id": "temperature",
- "max": 2,
- "min": 0,
- "name": "Temperature",
- "step": 0.1,
- "type": "number",
- },
- {
- "defaultValue": 1024,
- "description": "The maximum number of tokens to generate in the completion. The total length of input tokens and generated tokens is limited by the model's context length.",
- "id": "max_tokens",
- "max": 4096,
- "min": 1,
- "name": "Max Tokens",
- "step": 20,
- "type": "number",
- },
- {
- "defaultValue": 1,
- "description": "An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered.",
- "id": "top_p",
- "max": 1,
- "min": 0,
- "name": "Top P",
- "step": 0.1,
- "type": "number",
- },
- {
- "defaultValue": 0,
- "description": "Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.",
- "id": "frequency_penalty",
- "max": 2,
- "min": -2,
- "name": "Frequency penalty",
- "step": 0.1,
- "type": "number",
- },
- {
- "defaultValue": 0,
- "description": "Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.",
- "id": "presence_penalty",
- "max": 2,
- "min": -2,
- "name": "Presence penalty",
- "step": 0.1,
- "type": "number",
- },
- ],
- "settings": [
- {
- "description": "Your OpenAI API key",
- "id": "openai/api_key",
- "name": "API Key",
- },
- ],
- "streaming": true,
- },
- "gpt-4-1106-preview": {
- "contextLength": 4096,
- "description": "More capable than any GPT-3.5 model, able to do more complex tasks, and optimized for chat.",
- "modelId": "gpt-4-1106-preview",
- "parameters": [
- {
- "defaultValue": 0.4,
- "description": "What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.",
- "id": "temperature",
- "max": 2,
- "min": 0,
- "name": "Temperature",
- "step": 0.1,
- "type": "number",
- },
- {
- "defaultValue": 1024,
- "description": "The maximum number of tokens to generate in the completion. The total length of input tokens and generated tokens is limited by the model's context length.",
- "id": "max_tokens",
- "max": 4096,
- "min": 1,
- "name": "Max Tokens",
- "step": 20,
- "type": "number",
- },
- {
- "defaultValue": 1,
- "description": "An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered.",
- "id": "top_p",
- "max": 1,
- "min": 0,
- "name": "Top P",
- "step": 0.1,
- "type": "number",
- },
- {
- "defaultValue": 0,
- "description": "Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.",
- "id": "frequency_penalty",
- "max": 2,
- "min": -2,
- "name": "Frequency penalty",
- "step": 0.1,
- "type": "number",
- },
- {
- "defaultValue": 0,
- "description": "Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.",
- "id": "presence_penalty",
- "max": 2,
- "min": -2,
- "name": "Presence penalty",
- "step": 0.1,
- "type": "number",
- },
- ],
- "settings": [
- {
- "description": "Your OpenAI API key",
- "id": "openai/api_key",
- "name": "API Key",
- },
- ],
- "streaming": true,
- },
- "meta-llama/llama-2-13b-chat": {
- "contextLength": 4096,
- "description": "Meta: Llama v2 13B Chat (beta)",
- "modelId": "meta-llama/llama-2-13b-chat",
- "parameters": [
- {
- "defaultValue": 0.4,
- "description": "",
- "id": "temperature",
- "max": 2,
- "min": 0,
- "name": "Temperature",
- "step": 0.1,
- "type": "number",
- },
- ],
- "settings": [
- {
- "description": "Your Open Router API key",
- "id": "open_router/api_key",
- "name": "Open Router API Key",
- },
- ],
- },
- },
- "description": "The model to use",
- "id": "model",
- "name": "AI Settings",
- "type": "model",
- },
- {
- "defaultValue": "summarize {{longText}}",
- "description": "The prompt to send to the LLM",
- "id": "prompt",
- "name": "Prompt",
- "type": "text",
- },
- {
- "defaultValue": "some long text",
- "description": "",
- "id": "longText",
- "name": "longText",
- "type": "text",
- },
-]
-`;
-
-exports[`getInputDefinition - ignores non existing variables 1`] = `
-[
- {
- "defaultValue": {
- "modelId": "test",
- "parameters": {},
- },
- "definition": {
- "anthropic/claude-2": {
- "contextLength": 8192,
- "description": "Claude: superior performance on tasks that require complex reasoning",
- "modelId": "anthropic/claude-2",
- "parameters": [
- {
- "defaultValue": 1,
- "description": "Amount of randomness injected into the response.",
- "id": "temperature",
- "max": 1,
- "min": 0,
- "name": "Temperature",
- "step": 0.1,
- "type": "number",
- },
- {
- "defaultValue": 0.7,
- "description": "In nucleus sampling, we compute the cumulative distribution over all the options for each subsequent token in decreasing probability order and cut it off once it reaches a particular probability specified by top_p. You should either alter temperature or top_p, but not both.",
- "id": "top_p",
- "max": 1,
- "min": 0,
- "name": "Top P",
- "step": 0.1,
- "type": "number",
- },
- {
- "defaultValue": 5,
- "description": "Only sample from the top K options for each subsequent token.",
- "id": "top_k",
- "max": 100,
- "min": 0,
- "name": "Top K",
- "step": 1,
- "type": "number",
- },
- ],
- "settings": [
- {
- "description": "Your Open Router API key",
- "id": "open_router/api_key",
- "name": "Open Router API Key",
- },
- ],
- },
- "gpt-3.5-turbo-instruct": {
- "contextLength": 4096,
- "description": "Similar capabilities as text-davinci-003 but compatible with legacy Completions endpoint and not Chat Completions.",
- "modelId": "gpt-3.5-turbo-instruct",
- "parameters": [
- {
- "defaultValue": 0.4,
- "description": "What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.",
- "id": "temperature",
- "max": 2,
- "min": 0,
- "name": "Temperature",
- "step": 0.1,
- "type": "number",
- },
- {
- "defaultValue": 1024,
- "description": "The maximum number of tokens to generate in the completion. The total length of input tokens and generated tokens is limited by the model's context length.",
- "id": "max_tokens",
- "max": 4096,
- "min": 1,
- "name": "Max Tokens",
- "step": 20,
- "type": "number",
- },
- {
- "defaultValue": 1,
- "description": "An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered.",
- "id": "top_p",
- "max": 1,
- "min": 0,
- "name": "Top P",
- "step": 0.1,
- "type": "number",
- },
- {
- "defaultValue": 0,
- "description": "Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.",
- "id": "frequency_penalty",
- "max": 2,
- "min": -2,
- "name": "Frequency penalty",
- "step": 0.1,
- "type": "number",
- },
- {
- "defaultValue": 0,
- "description": "Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.",
- "id": "presence_penalty",
- "max": 2,
- "min": -2,
- "name": "Presence penalty",
- "step": 0.1,
- "type": "number",
- },
- ],
- "settings": [
- {
- "description": "Your OpenAI API key",
- "id": "openai/api_key",
- "name": "API Key",
- },
- ],
- "streaming": true,
- },
- "gpt-4-1106-preview": {
- "contextLength": 4096,
- "description": "More capable than any GPT-3.5 model, able to do more complex tasks, and optimized for chat.",
- "modelId": "gpt-4-1106-preview",
- "parameters": [
- {
- "defaultValue": 0.4,
- "description": "What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.",
- "id": "temperature",
- "max": 2,
- "min": 0,
- "name": "Temperature",
- "step": 0.1,
- "type": "number",
- },
- {
- "defaultValue": 1024,
- "description": "The maximum number of tokens to generate in the completion. The total length of input tokens and generated tokens is limited by the model's context length.",
- "id": "max_tokens",
- "max": 4096,
- "min": 1,
- "name": "Max Tokens",
- "step": 20,
- "type": "number",
- },
- {
- "defaultValue": 1,
- "description": "An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered.",
- "id": "top_p",
- "max": 1,
- "min": 0,
- "name": "Top P",
- "step": 0.1,
- "type": "number",
- },
- {
- "defaultValue": 0,
- "description": "Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.",
- "id": "frequency_penalty",
- "max": 2,
- "min": -2,
- "name": "Frequency penalty",
- "step": 0.1,
- "type": "number",
- },
- {
- "defaultValue": 0,
- "description": "Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.",
- "id": "presence_penalty",
- "max": 2,
- "min": -2,
- "name": "Presence penalty",
- "step": 0.1,
- "type": "number",
- },
- ],
- "settings": [
- {
- "description": "Your OpenAI API key",
- "id": "openai/api_key",
- "name": "API Key",
- },
- ],
- "streaming": true,
- },
- "meta-llama/llama-2-13b-chat": {
- "contextLength": 4096,
- "description": "Meta: Llama v2 13B Chat (beta)",
- "modelId": "meta-llama/llama-2-13b-chat",
- "parameters": [
- {
- "defaultValue": 0.4,
- "description": "",
- "id": "temperature",
- "max": 2,
- "min": 0,
- "name": "Temperature",
- "step": 0.1,
- "type": "number",
- },
- ],
- "settings": [
- {
- "description": "Your Open Router API key",
- "id": "open_router/api_key",
- "name": "Open Router API Key",
- },
- ],
- },
- },
- "description": "The model to use",
- "id": "model",
- "name": "AI Settings",
- "type": "model",
- },
- {
- "defaultValue": "summarize {{longText}}",
- "description": "The prompt to send to the LLM",
- "id": "prompt",
- "name": "Prompt",
- "type": "text",
- },
- {
- "defaultValue": "",
- "description": "",
- "id": "longText",
- "name": "longText",
- "type": "text",
- },
-]
-`;
-
-exports[`getInputDefinition - no variables 1`] = `
-[
- {
- "defaultValue": {
- "modelId": "test",
- "parameters": {},
- },
- "definition": {
- "anthropic/claude-2": {
- "contextLength": 8192,
- "description": "Claude: superior performance on tasks that require complex reasoning",
- "modelId": "anthropic/claude-2",
- "parameters": [
- {
- "defaultValue": 1,
- "description": "Amount of randomness injected into the response.",
- "id": "temperature",
- "max": 1,
- "min": 0,
- "name": "Temperature",
- "step": 0.1,
- "type": "number",
- },
- {
- "defaultValue": 0.7,
- "description": "In nucleus sampling, we compute the cumulative distribution over all the options for each subsequent token in decreasing probability order and cut it off once it reaches a particular probability specified by top_p. You should either alter temperature or top_p, but not both.",
- "id": "top_p",
- "max": 1,
- "min": 0,
- "name": "Top P",
- "step": 0.1,
- "type": "number",
- },
- {
- "defaultValue": 5,
- "description": "Only sample from the top K options for each subsequent token.",
- "id": "top_k",
- "max": 100,
- "min": 0,
- "name": "Top K",
- "step": 1,
- "type": "number",
- },
- ],
- "settings": [
- {
- "description": "Your Open Router API key",
- "id": "open_router/api_key",
- "name": "Open Router API Key",
- },
- ],
- },
- "gpt-3.5-turbo-instruct": {
- "contextLength": 4096,
- "description": "Similar capabilities as text-davinci-003 but compatible with legacy Completions endpoint and not Chat Completions.",
- "modelId": "gpt-3.5-turbo-instruct",
- "parameters": [
- {
- "defaultValue": 0.4,
- "description": "What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.",
- "id": "temperature",
- "max": 2,
- "min": 0,
- "name": "Temperature",
- "step": 0.1,
- "type": "number",
- },
- {
- "defaultValue": 1024,
- "description": "The maximum number of tokens to generate in the completion. The total length of input tokens and generated tokens is limited by the model's context length.",
- "id": "max_tokens",
- "max": 4096,
- "min": 1,
- "name": "Max Tokens",
- "step": 20,
- "type": "number",
- },
- {
- "defaultValue": 1,
- "description": "An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered.",
- "id": "top_p",
- "max": 1,
- "min": 0,
- "name": "Top P",
- "step": 0.1,
- "type": "number",
- },
- {
- "defaultValue": 0,
- "description": "Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.",
- "id": "frequency_penalty",
- "max": 2,
- "min": -2,
- "name": "Frequency penalty",
- "step": 0.1,
- "type": "number",
- },
- {
- "defaultValue": 0,
- "description": "Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.",
- "id": "presence_penalty",
- "max": 2,
- "min": -2,
- "name": "Presence penalty",
- "step": 0.1,
- "type": "number",
- },
- ],
- "settings": [
- {
- "description": "Your OpenAI API key",
- "id": "openai/api_key",
- "name": "API Key",
- },
- ],
- "streaming": true,
- },
- "gpt-4-1106-preview": {
- "contextLength": 4096,
- "description": "More capable than any GPT-3.5 model, able to do more complex tasks, and optimized for chat.",
- "modelId": "gpt-4-1106-preview",
- "parameters": [
- {
- "defaultValue": 0.4,
- "description": "What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.",
- "id": "temperature",
- "max": 2,
- "min": 0,
- "name": "Temperature",
- "step": 0.1,
- "type": "number",
- },
- {
- "defaultValue": 1024,
- "description": "The maximum number of tokens to generate in the completion. The total length of input tokens and generated tokens is limited by the model's context length.",
- "id": "max_tokens",
- "max": 4096,
- "min": 1,
- "name": "Max Tokens",
- "step": 20,
- "type": "number",
- },
- {
- "defaultValue": 1,
- "description": "An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered.",
- "id": "top_p",
- "max": 1,
- "min": 0,
- "name": "Top P",
- "step": 0.1,
- "type": "number",
- },
- {
- "defaultValue": 0,
- "description": "Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.",
- "id": "frequency_penalty",
- "max": 2,
- "min": -2,
- "name": "Frequency penalty",
- "step": 0.1,
- "type": "number",
- },
- {
- "defaultValue": 0,
- "description": "Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.",
- "id": "presence_penalty",
- "max": 2,
- "min": -2,
- "name": "Presence penalty",
- "step": 0.1,
- "type": "number",
- },
- ],
- "settings": [
- {
- "description": "Your OpenAI API key",
- "id": "openai/api_key",
- "name": "API Key",
- },
- ],
- "streaming": true,
- },
- "meta-llama/llama-2-13b-chat": {
- "contextLength": 4096,
- "description": "Meta: Llama v2 13B Chat (beta)",
- "modelId": "meta-llama/llama-2-13b-chat",
- "parameters": [
- {
- "defaultValue": 0.4,
- "description": "",
- "id": "temperature",
- "max": 2,
- "min": 0,
- "name": "Temperature",
- "step": 0.1,
- "type": "number",
- },
- ],
- "settings": [
- {
- "description": "Your Open Router API key",
- "id": "open_router/api_key",
- "name": "Open Router API Key",
- },
- ],
- },
- },
- "description": "The model to use",
- "id": "model",
- "name": "AI Settings",
- "type": "model",
- },
- {
- "defaultValue": "summarize {{longText}}",
- "description": "The prompt to send to the LLM",
- "id": "prompt",
- "name": "Prompt",
- "type": "text",
- },
- {
- "defaultValue": "",
- "description": "",
- "id": "longText",
- "name": "longText",
- "type": "text",
- },
-]
-`;
diff --git a/packages/@pufflig/ps-nodes/src/adapters/llm/llm_completion.test.ts b/packages/@pufflig/ps-nodes/src/adapters/llm/llm_completion.test.ts
deleted file mode 100644
index 6d772df..0000000
--- a/packages/@pufflig/ps-nodes/src/adapters/llm/llm_completion.test.ts
+++ /dev/null
@@ -1,88 +0,0 @@
-import { execute, getInputDefinition } from "./llm_completion";
-
-jest.mock("@pufflig/ps-sdk", () => ({
- createCompletion: jest.fn(async () => ({
- datapoint: {
- model_output: "test output",
- },
- })),
-}));
-
-const { createCompletion } = require("@pufflig/ps-sdk");
-
-describe("llm_completion - execute", () => {
- it("should return a completion given correct input values", async () => {
- const input = {
- prompt: "prompt",
- model: {
- modelId: "modelId",
- parameters: {
- parameter: 1,
- },
- },
- };
-
- const globals = {
- ["ps/api_key"]: "token",
- testValue: "value",
- };
-
- const result = await execute(input, { globals });
-
- expect(createCompletion).toHaveBeenCalledWith({
- apiKey: "token",
- modelId: "modelId",
- prompt: "prompt",
- parameters: {
- parameter: 1,
- },
- config: {
- ["ps/api_key"]: "token",
- testValue: "value",
- },
- options: {
- cache: true,
- track: true,
- },
- });
-
- expect(result).toEqual({
- completion: "test output",
- });
- });
-});
-
-test("getInputDefinition - no variables", () => {
- const variables = getInputDefinition({
- prompt: `summarize {{longText}}`,
- model: {
- modelId: "test",
- parameters: {},
- },
- });
- expect(variables).toMatchSnapshot();
-});
-
-test("getInputDefinition - if you pass a template and a variable, take value of the variable", () => {
- const variables = getInputDefinition({
- prompt: `summarize {{longText}}`,
- model: {
- modelId: "test",
- parameters: {},
- },
- longText: "some long text",
- });
- expect(variables).toMatchSnapshot();
-});
-
-test("getInputDefinition - ignores non existing variables", () => {
- const variables = getInputDefinition({
- prompt: `summarize {{longText}}`,
- model: {
- modelId: "test",
- parameters: {},
- },
- otherVariable: "",
- });
- expect(variables).toMatchSnapshot();
-});
diff --git a/packages/@pufflig/ps-nodes/src/adapters/llm/llm_completion.ts b/packages/@pufflig/ps-nodes/src/adapters/llm/llm_completion.ts
deleted file mode 100644
index d60564e..0000000
--- a/packages/@pufflig/ps-nodes/src/adapters/llm/llm_completion.ts
+++ /dev/null
@@ -1,92 +0,0 @@
-import { nodes, nodeTypes } from "@pufflig/ps-nodes-config";
-import { createCompletion } from "@pufflig/ps-sdk";
-import { Execute, GetInputDefinition, ModelValue, Node, Param } from "@pufflig/ps-types";
-import { getPromptStudioKey } from "../../utils/getPromptStudioKey";
-import { extractVariables } from "../../utils/extractVariables";
-import Mustache from "mustache";
-
-export interface LLMCompletionInput {
- prompt: string;
- model: ModelValue;
- [key: string]: any;
-}
-
-export interface LLMCompletionOutput {
- completion: string;
-}
-
-export const execute: Execute = async (input, options = {}) => {
- const { prompt, model, ...variables } = input;
- const { modelId, parameters } = model;
- const { globals } = options;
-
- const renderedTemplate = Mustache.render(prompt, variables);
-
- const result = await createCompletion({
- apiKey: getPromptStudioKey(globals || {}),
- modelId,
- prompt: renderedTemplate,
- parameters,
- config: globals,
- options: {
- cache: true,
- track: true,
- },
- });
-
- return {
- completion: result?.datapoint?.model_output || "",
- };
-};
-
-/**
- * Returns a new input definition given variables extracted from the template.
- *
- * @param input
- * @param prev
- * @returns
- */
-export const getInputDefinition: GetInputDefinition = (input) => {
- const { prompt, model, ...rest } = input;
-
- if (prompt === undefined) {
- return nodes[nodeTypes.llmCompletionNodeType].inputs;
- }
-
- const defaults = { prompt, model };
-
- const definitionsWithDefaults = nodes[nodeTypes.llmCompletionNodeType].inputs.map((input) => {
- if (Object.keys(defaults).includes(input.id)) {
- return {
- ...input,
- defaultValue: defaults[input.id as keyof typeof defaults],
- } as Param;
- }
- return input;
- });
-
- const extractedVariables = extractVariables(prompt);
-
- if (extractedVariables) {
- const extractedVariablesWithDefaults = extractedVariables
- .filter((param) => {
- return !Object.keys(defaults).includes(param.id);
- })
- .map((variable) => {
- return {
- ...variable,
- defaultValue: rest[variable.id] || "",
- } as Param;
- });
-
- return [...definitionsWithDefaults, ...extractedVariablesWithDefaults];
- }
-
- return definitionsWithDefaults;
-};
-
-export const llmCompletion: Node = {
- ...nodes[nodeTypes.llmCompletionNodeType],
- execute,
- getInputDefinition,
-};
diff --git a/packages/@pufflig/ps-nodes/src/adapters/openai/openai_chat.ts b/packages/@pufflig/ps-nodes/src/adapters/openai/openai_chat.ts
deleted file mode 100644
index a29d23a..0000000
--- a/packages/@pufflig/ps-nodes/src/adapters/openai/openai_chat.ts
+++ /dev/null
@@ -1,48 +0,0 @@
-import { nodes } from "@pufflig/ps-nodes-config";
-import { OPENAI_API_KEY } from "@pufflig/ps-models";
-import { Chat, ChatMessage, Execute, ModelValue, Node, ParamValueMap } from "@pufflig/ps-types";
-import OpenAI from "openai";
-import { v4 as uuid } from "uuid";
-
-export const openaiChatNodeType = "adapter/openai_chat" as const;
-
-export interface OpenAIChatInput extends ParamValueMap {
- chat: Chat;
- model: ModelValue;
-}
-
-export interface OpenAIChatOutput extends ParamValueMap {
- message: ChatMessage;
-}
-
-export const execute: Execute = async (input, options = {}) => {
- const { chat, model } = input;
- const { modelId, parameters } = model;
- const { globals } = options;
- const openai = new OpenAI({ apiKey: globals?.[OPENAI_API_KEY] });
-
- const params = { ...parameters, model: modelId };
- const messages: any = (chat?.messages || []).map((m) => ({
- content: m.content,
- role: m.role,
- }));
-
- const completion = await openai.chat.completions.create({ ...params, messages });
- const chatCompletion = completion.choices[0].message;
-
- return {
- message: {
- id: uuid(),
- provider: "openai",
- model,
- createdAt: new Date().toISOString(),
- content: chatCompletion?.content || "",
- role: chatCompletion?.role || "user",
- },
- };
-};
-
-export const openaiChat: Node = {
- ...nodes[openaiChatNodeType],
- execute,
-};
diff --git a/packages/@pufflig/ps-nodes/src/adapters/openai/openai_completion.ts b/packages/@pufflig/ps-nodes/src/adapters/openai/openai_completion.ts
deleted file mode 100644
index 69f183c..0000000
--- a/packages/@pufflig/ps-nodes/src/adapters/openai/openai_completion.ts
+++ /dev/null
@@ -1,36 +0,0 @@
-import { OPENAI_API_KEY } from "@pufflig/ps-models";
-import { nodes } from "@pufflig/ps-nodes-config";
-import { Execute, ModelValue, Node, ParamValueMap } from "@pufflig/ps-types";
-import OpenAI from "openai";
-
-export const openaiCompletionNodeType = "adapter/openai_completion" as const;
-
-export interface OpenAICompletionInput {
- prompt: string;
- model: ModelValue;
-}
-
-export interface OpenAICompletionOutput extends ParamValueMap {
- completion: string;
-}
-
-export const execute: Execute = async (input, options = {}) => {
- const { prompt, model } = input;
- const { modelId, parameters } = model;
- const { globals } = options;
- const openai = new OpenAI({ apiKey: globals?.[OPENAI_API_KEY] });
-
- const params = { ...parameters, model: modelId };
- const completion = await openai.completions.create({ prompt, ...params });
-
- const completionText = completion.choices[0].text || "";
-
- return {
- completion: completionText,
- };
-};
-
-export const openaiCompletion: Node = {
- ...nodes[openaiCompletionNodeType],
- execute,
-};
diff --git a/packages/@pufflig/ps-nodes/src/adapters/openai/openai_embedding.ts b/packages/@pufflig/ps-nodes/src/adapters/openai/openai_embedding.ts
deleted file mode 100644
index a085c29..0000000
--- a/packages/@pufflig/ps-nodes/src/adapters/openai/openai_embedding.ts
+++ /dev/null
@@ -1,34 +0,0 @@
-import { OPENAI_API_KEY } from "@pufflig/ps-models";
-import { nodes, nodeTypes } from "@pufflig/ps-nodes-config";
-import { Execute, ModelValue, Node } from "@pufflig/ps-types";
-import OpenAI from "openai";
-
-export interface OpenAIEmbeddingInput {
- api_key: string;
- text: string;
- model: ModelValue;
-}
-
-export interface OpenAIEmbeddingOutput {
- embedding: number[];
-}
-
-export const execute: Execute = async (input, options = {}) => {
- const { model, text } = input;
- const { globals } = options;
- const openai = new OpenAI({ apiKey: globals?.[OPENAI_API_KEY] });
-
- const response = await openai.embeddings.create({
- input: text,
- model: model.modelId,
- });
-
- const embedding = response.data[0].embedding;
-
- return { embedding };
-};
-
-export const openaiEmbedding: Node = {
- ...nodes[nodeTypes.openaiEmbeddingNodeType],
- execute,
-};
diff --git a/packages/@pufflig/ps-nodes/src/adapters/parse_document/mock_data/long_text.ts b/packages/@pufflig/ps-nodes/src/adapters/parse_document/mock_data/long_text.ts
deleted file mode 100644
index d07f9e7..0000000
--- a/packages/@pufflig/ps-nodes/src/adapters/parse_document/mock_data/long_text.ts
+++ /dev/null
@@ -1,199 +0,0 @@
-export const long_text = `Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam tempus, nulla quis tempus dapibus, metus diam rutrum dui, ac rutrum lorem nibh quis ex. Cras ac libero convallis, feugiat erat id, pulvinar eros. Mauris eget suscipit eros. Sed vestibulum purus quis massa sagittis, eu posuere neque condimentum. Duis sagittis dapibus purus, eu tristique orci facilisis et. Ut ullamcorper elit ut sapien cursus consequat. Nam non tellus at lectus laoreet blandit. Maecenas vitae risus in orci maximus ornare sed in enim. Ut pretium vitae ante vitae volutpat.
-
-Sed dignissim at neque id laoreet. Duis varius sapien aliquet dignissim elementum. Morbi commodo consequat ligula, a convallis elit malesuada a. Proin iaculis leo eget scelerisque mollis. Sed eget posuere augue, molestie rutrum magna. Ut porta libero id orci porttitor, malesuada hendrerit nisi semper. Suspendisse potenti.
-
-Etiam dignissim sollicitudin nisi id tincidunt. Sed commodo, magna et bibendum placerat, dolor mi bibendum mi, id euismod tortor nunc sed purus. Aenean eu lectus et nisl dictum faucibus id sed nisl. Praesent at enim ut nulla dapibus viverra eget fringilla ipsum. Quisque molestie turpis at ullamcorper malesuada. In placerat neque nec gravida maximus. Ut aliquam pellentesque mauris sed facilisis. Nunc sed justo rhoncus, vehicula tellus at, tempor ligula. Vivamus ornare tempus felis quis suscipit. Nullam viverra convallis quam sit amet vulputate. Vivamus vel massa cursus sem vestibulum fringilla vel nec mi. Integer non commodo metus. Suspendisse non risus ornare, mollis tellus at, tincidunt lectus.
-
-In quis volutpat lectus. Nullam vehicula suscipit nunc, eget bibendum ligula vulputate non. Aenean sit amet porta massa, sit amet sollicitudin sem. Fusce porttitor vel velit nec feugiat. Aenean ornare ligula eu elit tincidunt, vitae elementum nulla ornare. Mauris gravida efficitur vulputate. Vivamus iaculis quam nec justo volutpat sodales.
-
-Ut rhoncus aliquam eros sit amet semper. Quisque eleifend lorem eu nunc feugiat, vitae imperdiet augue semper. Fusce ullamcorper aliquet placerat. Aliquam neque lacus, egestas ut nibh non, accumsan sagittis enim. Nullam nec diam imperdiet turpis imperdiet laoreet id vitae diam. Nunc ligula neque, laoreet eget aliquam quis, molestie sed quam. Aliquam eu augue mauris. Donec venenatis mauris ut risus lobortis hendrerit. Praesent vehicula porta justo. Donec eu iaculis ligula, nec accumsan nulla. Quisque at magna augue. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Morbi et odio eleifend, interdum ligula sed, placerat eros.
-
-In hac habitasse platea dictumst. Praesent hendrerit suscipit odio id hendrerit. Interdum et malesuada fames ac ante ipsum primis in faucibus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur eros tortor, fermentum quis felis ac, consectetur vestibulum enim. Nam sit amet lorem velit. Donec non dictum neque. Nam metus elit, pretium quis risus eu, luctus ullamcorper turpis. Aliquam lectus massa, vehicula eget tempus id, faucibus sit amet risus. Nunc sodales, tortor in egestas aliquam, eros magna aliquet ante, laoreet eleifend dui mi a dolor. Nullam porttitor, massa eu ultrices tempor, nisl justo fringilla lorem, quis ultricies lectus sapien ac quam. In hac habitasse platea dictumst. Aenean ut neque nulla. In vitae turpis nec leo dapibus semper. Vivamus a feugiat diam, non facilisis felis.
-
-Vivamus sit amet dictum ex. Nunc a metus non quam volutpat commodo. Fusce sollicitudin, tortor ac auctor porttitor, arcu felis ullamcorper turpis, sagittis scelerisque dui felis non enim. Nullam tortor metus, laoreet sit amet tempus id, sagittis id lacus. Proin vel malesuada ipsum, quis tincidunt erat. Donec accumsan turpis lacinia porta porttitor. Mauris vitae justo sit amet nisl sodales tempus. Maecenas nec tellus luctus, venenatis dolor non, iaculis diam. Curabitur nec facilisis nisi. Integer scelerisque ante ut augue sollicitudin molestie. Ut accumsan lorem eget ipsum dictum, non tincidunt dui mattis. Suspendisse nec elementum lacus, ut vestibulum nibh.
-
-Suspendisse mattis non enim vitae sagittis. Sed et molestie nunc. Quisque rutrum tincidunt velit sed tempus. Nulla euismod eros et diam porta finibus. Quisque rhoncus, ipsum vitae vestibulum dictum, dui felis ornare dolor, eu ornare augue arcu eget nisi. Integer tristique placerat lacinia. Morbi cursus ex id commodo suscipit. Cras sed tortor sed libero fringilla hendrerit non in lectus. In dignissim id sapien id varius. Proin leo erat, luctus in pellentesque nec, elementum eu sapien. Aliquam auctor tristique lacinia.
-
-Donec eu urna elementum, mollis nulla at, posuere eros. Proin urna dolor, venenatis vitae porttitor eu, posuere vel nunc. Quisque rutrum, dolor quis scelerisque suscipit, dui enim pellentesque elit, vel sollicitudin orci augue sit amet lacus. Aenean convallis interdum dapibus. In faucibus, nibh et sodales lobortis, nulla leo hendrerit sem, vel faucibus sem dui ac libero. Aliquam tincidunt aliquet ligula, at semper sem facilisis sed. Cras at convallis magna, vel scelerisque nunc.
-
-Praesent sit amet nunc tortor. Quisque vestibulum nibh vel erat viverra, eu mollis nunc lacinia. Fusce efficitur maximus felis, eget convallis dolor vulputate sit amet. Cras rhoncus congue sem, vitae pretium massa placerat at. Pellentesque finibus, nunc at fringilla volutpat, arcu nunc vehicula lorem, id gravida magna neque ac ex. Suspendisse dignissim erat ac erat gravida semper. Vivamus efficitur neque ligula, eget semper risus fermentum non. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Maecenas varius, diam id vulputate imperdiet, enim felis placerat eros, nec malesuada est massa vel purus.
-
-In vulputate mattis arcu, non mattis lectus sodales non. Aliquam venenatis auctor sem, eu egestas est ultricies id. Aliquam nec justo vel ipsum feugiat feugiat. Proin purus nulla, tincidunt nec suscipit nec, condimentum et ligula. Curabitur lorem nibh, semper at ullamcorper aliquet, eleifend elementum dolor. Nunc vel augue nulla. Morbi faucibus enim quis consequat pellentesque.
-
-Pellentesque non dui felis. Integer laoreet, justo ut sollicitudin hendrerit, dui metus elementum mauris, ut ornare erat augue a sapien. Sed vel nibh ut nulla vestibulum aliquet eget et urna. Nulla quis orci magna. Phasellus egestas nisi purus, quis accumsan nisi aliquam et. In fermentum bibendum ornare. Quisque nec molestie nisl. Etiam malesuada purus a risus ultrices, quis placerat eros aliquet. Praesent sit amet mauris quis nibh tempor tempor. Vestibulum auctor fringilla sollicitudin. Curabitur a suscipit est.
-
-Mauris lacus sem, viverra et tellus blandit, congue fermentum diam. Donec volutpat tortor congue molestie dictum. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum non eros elementum, sollicitudin quam ut, feugiat nunc. Maecenas eget euismod lacus. Ut volutpat ultrices hendrerit. Maecenas pulvinar, felis sed facilisis ultrices, metus risus aliquam mi, sollicitudin gravida sem arcu in urna. Suspendisse vel nisl posuere, euismod magna eu, lacinia ligula. Aliquam facilisis ullamcorper quam ac tincidunt. Curabitur sit amet nunc vel nulla tristique luctus non egestas turpis. Aenean commodo dictum lacinia. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Praesent ut elit non lorem posuere lobortis. Curabitur suscipit magna nisl, sit amet ultrices odio fermentum et.
-
-Aliquam placerat velit lorem, at fermentum est mollis at. Sed sollicitudin quam in leo dictum, vel laoreet risus mollis. Sed et erat at orci consectetur condimentum vitae a nibh. Vivamus justo nisi, sagittis et laoreet non, aliquam ut libero. Praesent posuere metus at auctor mollis. Vivamus sagittis nulla condimentum nibh feugiat consequat. Aenean vulputate rutrum eros, dignissim egestas tortor dapibus eget. Nam neque diam, dapibus sed dignissim at, accumsan quis tellus. Nunc consequat sagittis mauris, id iaculis eros congue non. Donec ornare dui at enim vestibulum, a commodo erat sodales.
-
-Phasellus nec elit sem. Vestibulum efficitur turpis ex, eget vehicula est aliquam quis. Ut id tincidunt orci. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Mauris non metus venenatis, interdum mi id, vulputate metus. Donec hendrerit lobortis sapien. Nunc sed metus vulputate est pellentesque vestibulum vitae at neque. Proin sagittis, lectus mattis porttitor tempor, sapien ante porta urna, non suscipit augue ligula nec ipsum. Etiam venenatis aliquet faucibus. Donec non purus convallis sapien dapibus consequat. Nam sollicitudin et tortor ac vulputate. Nunc egestas venenatis condimentum. Integer vitae libero convallis quam pharetra finibus. Cras quis urna purus.
-
-Nullam interdum arcu diam, in egestas nulla vulputate vel. Nulla facilisi. In sit amet interdum massa, convallis placerat magna. Maecenas mi libero, eleifend quis tellus ultricies, tincidunt faucibus erat. Quisque tincidunt nunc felis, ac maximus tellus vestibulum id. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Donec id dolor sit amet risus commodo accumsan sed ac eros. Sed tristique augue metus, consequat posuere purus ultricies ultricies. Sed nec lectus sapien. Duis tempor diam magna, vitae lobortis quam sollicitudin sed. Vestibulum aliquam sodales maximus. Integer erat nunc, ullamcorper vitae felis sed, dignissim congue magna. Phasellus nec luctus mi. Nam sit amet neque ac turpis facilisis pretium.
-
-Nam eget accumsan mi. Morbi cursus accumsan mi, vel facilisis tortor faucibus vulputate. Interdum et malesuada fames ac ante ipsum primis in faucibus. Integer vel mi et elit dictum tristique commodo at magna. Nulla eleifend sit amet lorem non aliquet. Pellentesque ullamcorper, velit nec eleifend venenatis, metus est sodales orci, at scelerisque tellus felis quis leo. Integer odio ante, pellentesque nec metus sit amet, suscipit aliquet velit. Nullam ipsum metus, rhoncus et pulvinar at, tincidunt ornare leo.
-
-Duis quis tortor sapien. Proin feugiat ante varius dolor aliquet porta. Quisque ut nibh porta, rhoncus arcu et, fringilla mauris. Nulla vitae iaculis nunc. Quisque tincidunt nunc ipsum, non vestibulum augue fermentum varius. Ut consectetur elit nec velit ultricies tincidunt. Morbi a quam urna. Fusce sodales tellus a vehicula scelerisque. Phasellus blandit justo non dignissim maximus. Praesent augue magna, condimentum ac nisl ac, eleifend semper metus. Donec lacinia purus sed efficitur vulputate. Nunc porttitor nunc dolor, vel mollis justo suscipit ut. Nulla quis tortor eu elit dignissim lacinia. Suspendisse potenti. Aliquam ultrices, augue eget fringilla dapibus, diam nisl sollicitudin neque, in pulvinar metus elit id est.
-
-Nam non ligula lacus. Sed risus quam, mattis at iaculis nec, imperdiet vel neque. Praesent tempor bibendum arcu, at porttitor tortor gravida sed. Ut consequat nunc at lacus ultricies mattis. Mauris bibendum bibendum tortor ultricies mattis. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Duis bibendum aliquet dapibus. Nunc ut finibus purus. Cras a convallis mi. Nulla eleifend tempor risus pellentesque volutpat. Curabitur semper varius metus scelerisque volutpat. Sed accumsan commodo varius. Nulla feugiat justo at dui venenatis consectetur. Nulla vel blandit tortor.
-
-Curabitur eget mi tincidunt tortor dapibus fringilla. Morbi bibendum eleifend diam sit amet condimentum. Pellentesque gravida auctor libero, nec mattis quam porttitor quis. Mauris velit diam, consectetur vel cursus et, posuere a felis. Pellentesque vulputate suscipit velit, nec efficitur odio volutpat ac. Quisque dui sem, mattis in congue vel, convallis sit amet quam. Nunc commodo diam nunc, sed posuere lorem aliquam eu. Nam condimentum lectus ut magna luctus condimentum. Nam quis dapibus erat. Nam imperdiet nulla in lorem luctus, in commodo erat faucibus. Curabitur neque nisi, consectetur eget justo ut, hendrerit vestibulum velit. Vivamus tincidunt lacus luctus massa commodo efficitur. Suspendisse tortor nibh, volutpat eu nulla in, fermentum porta mi.
-
-Phasellus eget lorem in arcu dictum aliquam. Sed a nibh euismod, venenatis arcu sit amet, pretium enim. Donec congue justo sit amet mauris cursus vestibulum. In ultrices nunc vitae sem suscipit, id sollicitudin mauris volutpat. Suspendisse potenti. Fusce efficitur sapien ac fermentum lacinia. Morbi efficitur congue auctor. Ut ac quam non arcu tincidunt tincidunt non non dolor. Etiam volutpat mauris at justo euismod commodo. Morbi nec odio nec eros fringilla volutpat. Sed risus tortor, porta id consequat quis, eleifend nec magna. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Sed sit amet velit enim.
-
-Morbi ornare purus vel erat venenatis volutpat. Nulla cursus, diam id ullamcorper ultrices, metus nunc condimentum ligula, sed commodo enim lorem ut odio. Sed vulputate, leo nec aliquet tristique, odio tortor pharetra lacus, eget placerat quam sapien et urna. Aliquam et dui vitae ipsum sodales fermentum. Praesent libero purus, accumsan vel tortor non, lobortis ornare lacus. Proin enim ex, egestas id vulputate non, ultrices consectetur enim. Vivamus neque erat, suscipit ac blandit a, euismod et orci. Interdum et malesuada fames ac ante ipsum primis in faucibus. Mauris nisi dui, facilisis ac ex sed, condimentum consectetur tortor. Aliquam lobortis, diam sed venenatis porttitor, dui tortor rutrum eros, at interdum ipsum leo vitae mauris. Nullam euismod dui id semper euismod. Vivamus eget ex urna. Suspendisse euismod interdum molestie. Quisque felis enim, malesuada eu nibh a, facilisis finibus sapien. Etiam faucibus bibendum dictum.
-
-Fusce quis elit id ligula ultricies convallis. Sed ultrices venenatis orci eget dictum. Cras erat metus, sagittis dignissim tincidunt scelerisque, sagittis nec nisl. Nunc sed arcu odio. Suspendisse a tristique mauris. Suspendisse ac nibh ipsum. Nullam vitae commodo augue, non tristique ante. Curabitur pharetra consequat erat in eleifend. Ut maximus nisl et egestas eleifend. Sed sit amet lorem elit. Donec ut tristique augue. Proin eu lorem viverra lectus laoreet bibendum. Aenean in urna ut tellus tempus bibendum. Donec lacinia porttitor feugiat. Proin nec libero lacus. Integer nisl diam, iaculis sit amet pellentesque sed, euismod at nisi.
-
-Fusce suscipit neque metus, sed pellentesque nibh imperdiet ac. Integer tincidunt est a elit tempor maximus. Sed sed enim lobortis, finibus tortor ut, hendrerit justo. Cras blandit lacus nec ex condimentum, quis fringilla odio faucibus. Quisque vestibulum purus pretium, ullamcorper justo fermentum, laoreet odio. Phasellus mollis ex at neque varius, id vestibulum libero gravida. Sed elementum in erat sed congue. Mauris laoreet iaculis semper. Morbi condimentum suscipit imperdiet.
-
-Donec commodo mauris at odio pretium, et tristique enim varius. Aenean at augue est. In vestibulum tortor quis leo mollis mollis. Vivamus vitae nibh et arcu bibendum hendrerit. Phasellus sodales risus vitae risus malesuada, ac maximus neque dictum. Nullam a tortor quam. Integer sit amet ultrices magna. Donec viverra porta ligula, sit amet porta eros porttitor vel. Curabitur non consectetur dolor, non finibus mauris. Praesent nec enim felis. In semper turpis eget quam facilisis, sit amet tempus odio scelerisque. Duis eget vestibulum purus. Aenean tempus cursus tincidunt. Donec venenatis tincidunt tempus. Sed vitae ex sem. Fusce sed ex nec est scelerisque finibus ac sed nulla.
-
-Maecenas nec tristique libero. In hac habitasse platea dictumst. Curabitur et lacus rhoncus, interdum mi a, aliquam odio. Mauris vitae ultrices tortor. Aliquam arcu enim, venenatis sit amet felis feugiat, fermentum malesuada risus. Donec libero justo, blandit vehicula enim non, volutpat imperdiet urna. Nunc ut sem ex. Fusce hendrerit quis lorem sit amet maximus. Maecenas quis varius ante. Ut commodo commodo purus sed sagittis.
-
-Quisque vitae dictum nunc. Nunc eleifend vehicula porta. Integer in vehicula nunc. Pellentesque semper, elit at porta rutrum, mi velit dictum ligula, luctus dignissim arcu justo aliquam nulla. Fusce quis dignissim mi. Suspendisse dictum, neque sit amet fermentum accumsan, risus nisi tristique ante, quis finibus tellus enim vel felis. Maecenas tempus tincidunt diam, sit amet posuere augue consequat at. Proin iaculis molestie placerat. Nulla malesuada lacus mauris, in blandit sem porta malesuada. Nullam ut vestibulum eros. Donec id pulvinar nisi, id aliquam lorem. Curabitur vehicula, ex sed suscipit mollis, dolor erat euismod ipsum, in mattis velit metus pellentesque lorem. Praesent vitae ex ut lacus euismod lacinia in in tellus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Aliquam sodales egestas nunc vel bibendum.
-
-Quisque sit amet aliquam mauris. Suspendisse euismod interdum dui, ut rhoncus purus vulputate eget. Maecenas dui dolor, vulputate non turpis non, ultrices consectetur ipsum. Mauris scelerisque volutpat ex quis aliquam. In hac habitasse platea dictumst. Vestibulum pellentesque dolor a erat congue, quis vulputate nisl consectetur. Donec non tempor libero, eu tempor neque. Duis vestibulum ac ipsum vel rhoncus. Ut dapibus lacus vitae laoreet vulputate. Mauris ultricies pulvinar sodales. Donec vitae enim orci. Vestibulum rutrum iaculis nisi blandit consequat. Nunc ac est velit. Curabitur varius condimentum nibh, nec ultrices nibh molestie tincidunt.
-
-Morbi facilisis efficitur augue eget congue. Donec varius mauris non leo semper sodales. Vivamus ac sem maximus, molestie purus in, porta sapien. Quisque consectetur mollis mattis. Mauris arcu elit, maximus ut sodales eu, ultricies sed risus. Cras sed maximus massa, vel lobortis est. Nunc gravida est sed magna ultrices, cursus varius metus vestibulum.
-
-Pellentesque luctus, risus sed suscipit consectetur, dui enim rutrum massa, id semper libero ex at sapien. Vivamus nec eleifend diam. Fusce mollis fermentum orci eu accumsan. Nulla orci orci, eleifend in mattis nec, semper non neque. Nullam consectetur, augue ut tempor sollicitudin, eros velit ultrices arcu, sit amet mattis erat mauris eu arcu. Vestibulum semper nibh non odio dignissim bibendum. Quisque vestibulum laoreet diam, nec lacinia ipsum laoreet sed. Sed viverra sodales efficitur. Duis tincidunt ex eu dignissim condimentum. Morbi lacinia malesuada purus, nec molestie lectus congue at. Mauris imperdiet purus ipsum, vel porttitor nibh ornare id. Curabitur nulla nulla, vestibulum ac eros vel, auctor efficitur neque. Ut sodales sagittis mi, ac laoreet purus dictum nec. Sed ultricies placerat orci ac viverra. Quisque efficitur eros dolor.
-
-Cras blandit leo ligula. Quisque consequat libero lorem, vitae eleifend ex faucibus ac. Curabitur efficitur suscipit mauris, eget tincidunt elit. Quisque condimentum at nibh quis vulputate. Donec sit amet pellentesque justo. Duis et urna et mi interdum tincidunt. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus libero elit, faucibus non massa in, pharetra maximus tellus.
-
-Phasellus orci arcu, mattis et pretium et, convallis sed risus. Integer libero justo, vehicula ut semper non, mollis id lacus. Vestibulum imperdiet, ligula vitae imperdiet consectetur, odio lacus facilisis eros, in luctus ex dui a mi. Duis at tincidunt nulla. Aliquam pulvinar lacus suscipit elit dictum imperdiet ut a diam. Vestibulum lobortis pharetra lorem at porttitor. Quisque vulputate enim in lobortis dignissim. Maecenas vel mi nec orci tincidunt hendrerit at sed ligula. Ut fringilla quis quam sit amet scelerisque. Ut urna leo, tempus vitae lacus at, viverra molestie ante. Suspendisse lacinia tortor nec cursus sollicitudin.
-
-Vestibulum lacinia pretium neque et hendrerit. Suspendisse scelerisque tellus et tincidunt tristique. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Sed iaculis risus ut odio cursus blandit. Aenean malesuada arcu quis mattis tempus. Suspendisse potenti. Duis auctor libero eu ex dictum, at aliquam enim tempus. In hac habitasse platea dictumst. Curabitur ullamcorper lobortis quam vitae rhoncus.
-
-Fusce sit amet tortor iaculis, vehicula sapien molestie, maximus metus. Vestibulum ac congue ex. Duis tempus, lectus in rutrum congue, nunc nisi scelerisque orci, vel ultrices massa turpis in tellus. Morbi eu tempor eros. Suspendisse euismod, tellus cursus pharetra finibus, dui velit lobortis ex, id ullamcorper diam mi nec urna. Nulla euismod vehicula ex, eget ultricies ligula ornare ultrices. Suspendisse maximus felis eu ligula malesuada, ac varius mi lobortis. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Nullam sed consectetur purus. Mauris sollicitudin cursus est ac rhoncus. Sed et sodales orci. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Cras non felis nec ex condimentum blandit ac id quam. Sed iaculis leo tellus, nec pretium lacus molestie sit amet.
-
-Mauris vestibulum sed metus non pulvinar. Vestibulum tortor justo, varius vitae diam at, ultrices placerat felis. Proin dignissim dapibus urna eu euismod. Vestibulum malesuada malesuada ipsum. Nulla ultricies a velit id varius. In at vehicula lacus. Aliquam rutrum commodo eros eu pellentesque. Donec consequat commodo ante a laoreet. Donec euismod odio in ante sollicitudin consectetur. Vestibulum ut mauris at odio ultricies commodo in ut justo. Etiam aliquam nibh mauris, vel lacinia justo dignissim id. Vivamus risus massa, volutpat vel volutpat a, dapibus pharetra dui. Duis aliquam dui vel neque pellentesque ultrices. Morbi sapien purus, auctor vitae pellentesque non, mollis finibus mauris.
-
-Quisque efficitur turpis sem, sit amet accumsan ipsum feugiat vitae. Nullam quis sapien congue nulla elementum fringilla at aliquam tortor. Donec sollicitudin odio quam, eget mattis erat auctor bibendum. Donec hendrerit nunc ut auctor congue. Proin porta neque vitae diam tempor congue id ac urna. Maecenas fermentum rutrum tempor. Nunc tincidunt cursus purus eget blandit. Nam sit amet lacinia purus. Aliquam porta nibh eget ex facilisis tristique in eu mi. Proin turpis leo, malesuada eget augue eu, ullamcorper ornare eros. Ut eleifend tincidunt dolor vel faucibus. Donec condimentum magna a commodo pellentesque. Duis nibh neque, lobortis id accumsan eget, varius eu mauris.
-
-Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Sed aliquet non ipsum quis pharetra. Suspendisse et viverra elit, nec porttitor diam. Cras efficitur tristique aliquam. Morbi quis ullamcorper dui. Curabitur vel diam in dolor auctor euismod. Phasellus ac egestas ipsum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Phasellus imperdiet imperdiet ligula id eleifend. Aliquam erat volutpat. Nullam molestie ipsum id dui imperdiet, in sagittis quam varius.
-
-Sed egestas sapien sed rhoncus iaculis. Morbi bibendum rhoncus lacus consequat laoreet. Vivamus condimentum purus et metus finibus euismod. Mauris condimentum eu orci faucibus molestie. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Fusce tincidunt est vel est aliquet, a molestie ipsum dictum. Etiam id tortor maximus, sodales ante sit amet, blandit sapien.
-
-Pellentesque venenatis euismod purus id dictum. Proin placerat euismod accumsan. Suspendisse vulputate ipsum ac massa pulvinar congue. Ut sapien nibh, dictum vitae aliquam a, tristique eget nunc. Sed pharetra pellentesque nulla nec euismod. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Duis in ex a felis suscipit ullamcorper. Nam ultrices ut magna vel elementum. Praesent id nunc nec leo suscipit tempor nec eget lectus. Praesent commodo metus a sem ullamcorper, ac luctus ex suscipit. Fusce rhoncus, odio sit amet condimentum maximus, leo augue feugiat est, vitae porta purus elit vel urna. Vestibulum non sagittis magna, id aliquam ligula. Nulla ut justo sapien. Pellentesque malesuada magna dolor, quis mollis justo euismod in.
-
-Pellentesque sapien dolor, rutrum ac erat vel, laoreet viverra turpis. Aliquam tortor urna, venenatis eget justo quis, blandit dignissim arcu. Morbi laoreet, lorem ac ornare scelerisque, elit diam porta justo, eget facilisis tortor tortor et leo. Nullam et consectetur lectus, nec bibendum dui. Cras cursus dui euismod lectus scelerisque, eu consectetur risus consequat. Nunc volutpat aliquet tempor. Ut a vehicula leo. Fusce ut volutpat nulla. Donec molestie convallis ligula, et varius nulla fringilla eu. Duis in tempor tellus.
-
-Maecenas ac sollicitudin eros, laoreet pellentesque quam. Donec a malesuada ante. Fusce suscipit id elit vitae placerat. Pellentesque mollis sit amet tellus vel molestie. Quisque accumsan est tortor, a congue dui auctor quis. Cras nibh sem, hendrerit sit amet est pretium, mollis sollicitudin quam. Morbi ornare maximus ante eu efficitur. Donec egestas augue nec urna aliquam, sed convallis nisi feugiat. Donec blandit, magna nec mattis molestie, erat libero varius metus, nec venenatis odio nibh eu dolor. Integer at facilisis mauris. Maecenas vitae libero vitae erat maximus elementum eu id nisl. Fusce sit amet ante sodales, tristique nunc fermentum, rhoncus velit.
-
-Aliquam nec augue auctor, sagittis felis sit amet, sodales ex. Donec condimentum finibus nunc sit amet dapibus. Nullam imperdiet eu augue eget ornare. Praesent eros eros, efficitur in molestie scelerisque, elementum a eros. Fusce eu enim tellus. Nullam dui arcu, lobortis non quam vitae, bibendum sollicitudin ante. Quisque sit amet bibendum nisl, viverra fringilla quam. Fusce vitae mollis est. Etiam justo lectus, rhoncus vitae mi non, lobortis facilisis est. Nunc sed felis in est congue varius. Curabitur sed fermentum eros. Aliquam pulvinar eros laoreet sapien suscipit, eget venenatis turpis dictum.
-
-Nullam placerat aliquet eros, at consectetur purus vehicula ac. Nunc at est odio. Sed fermentum justo tincidunt orci venenatis blandit. Nullam tempor orci sed euismod ultricies. Cras ac enim ut justo accumsan ullamcorper. Nunc ac finibus felis, sit amet cursus diam. Morbi convallis vel dui iaculis euismod. In dictum in dolor quis volutpat. Proin nunc nulla, dapibus ut facilisis vitae, malesuada vitae enim. Nulla quis nisl posuere, maximus eros id, consequat erat. Phasellus tristique, enim in convallis faucibus, nunc elit pulvinar urna, a dignissim metus nulla sed magna. Nunc ultricies imperdiet libero, quis rutrum quam blandit sed. Sed aliquam rhoncus purus, placerat tempus enim pretium eu.
-
-Vestibulum ut ex a orci pharetra tempor. Aenean interdum neque ut gravida gravida. Aenean id ultrices augue, sed gravida sapien. Nam dolor diam, efficitur sit amet velit a, malesuada accumsan ante. Donec in felis et leo commodo consequat sed sed mi. Etiam est ex, gravida at sollicitudin id, dignissim at mi. Donec quis ultrices mi. Phasellus eget ante libero. Suspendisse nec lectus erat. Duis sem elit, scelerisque quis hendrerit vel, mattis pharetra dolor. Fusce viverra lorem vitae ante rhoncus, vel posuere tortor luctus. In magna erat, dictum at consectetur quis, molestie a libero. Aenean molestie venenatis ullamcorper.
-
-Donec feugiat placerat justo sit amet elementum. Morbi cursus sapien a dui vestibulum, ac gravida nisl vehicula. Fusce posuere ligula ex, sed aliquet dolor porttitor ac. Sed purus metus, congue sit amet leo ac, efficitur efficitur ligula. Integer at suscipit velit. Fusce sed faucibus enim. Donec nec elementum diam. Aenean a vehicula orci, et pharetra sem. Integer non finibus dui.
-
-Vivamus lacinia, ligula nec commodo tempus, eros tortor semper nunc, ac vestibulum tortor ante eu felis. Nam facilisis ut magna varius pulvinar. Proin ut est sit amet odio condimentum mattis et at enim. Sed condimentum ligula ex, posuere auctor ipsum gravida vitae. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Curabitur tempor odio in risus eleifend, in pellentesque quam feugiat. Suspendisse potenti. Duis sed magna sit amet dolor porttitor imperdiet ut quis felis.
-
-Maecenas maximus nec augue ut iaculis. Duis ac blandit nisl. Donec iaculis odio sit amet justo egestas, vel cursus leo hendrerit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam eu est aliquam, sagittis dui a, eleifend mauris. Nullam facilisis viverra urna, ut porttitor lacus euismod sit amet. Nulla id tortor tempor, auctor quam convallis, hendrerit est. Donec auctor mauris ac risus lacinia, in vulputate tellus efficitur. Donec iaculis lorem quis scelerisque feugiat. Fusce in tortor pharetra, tincidunt neque eget, molestie ipsum. Nulla risus ipsum, egestas vel malesuada nec, feugiat vel erat. Mauris posuere lacinia orci a molestie. Integer sit amet orci ut risus accumsan viverra. In luctus odio ut odio scelerisque sollicitudin a ut neque.
-
-Vestibulum elementum sapien et est lacinia, in vestibulum arcu scelerisque. Nunc fermentum mi a nibh feugiat tempor. Sed felis risus, mattis quis congue et, bibendum ac neque. Praesent in ipsum a velit cursus ultrices sed et ex. Nam faucibus dui tellus, ac aliquam nulla dignissim at. Aliquam nunc sem, tristique et molestie sit amet, vestibulum id quam. Sed luctus accumsan porttitor. Proin aliquet pharetra neque quis mattis.
-
-Pellentesque malesuada velit dui, quis volutpat felis feugiat et. Etiam lacinia at velit sed viverra. Maecenas maximus ullamcorper quam. Sed id sagittis lorem. Ut in metus interdum felis finibus imperdiet. Pellentesque venenatis bibendum nulla et posuere. Etiam a porttitor dolor. Integer volutpat id massa eu varius. Aenean pellentesque nec tellus mattis mollis. Sed nisl mi, lobortis ac ipsum ac, placerat lacinia eros. Nulla eu iaculis lectus. Fusce blandit, nunc vel facilisis congue, nunc metus vehicula nulla, nec molestie libero nulla vel dui.
-
-Duis ac est risus. Maecenas blandit quam lorem, quis placerat mi fermentum in. Vivamus egestas tempus leo et interdum. Nullam ultrices malesuada molestie. Sed eleifend felis sit amet nibh pulvinar tristique. Nullam sollicitudin sed nunc ut mattis. Ut placerat, diam eget iaculis feugiat, arcu orci faucibus justo, quis volutpat ex lorem at odio.
-
-Sed malesuada mi sit amet ante varius, ut dictum elit imperdiet. Quisque sollicitudin eleifend purus non vehicula. Praesent congue dui et nisl porta vulputate. Mauris tincidunt sagittis gravida. Vivamus vel justo sapien. In auctor mi euismod arcu lacinia, non elementum diam lacinia. Aliquam varius a felis in viverra. Etiam ultricies porta justo.
-
-Integer vitae dui dolor. Phasellus vehicula eget eros id convallis. Proin eu aliquam lorem, quis laoreet lacus. Donec tempus libero non sapien sollicitudin lacinia. Nunc pharetra maximus consectetur. Nulla facilisi. Integer mattis augue pulvinar nunc interdum tristique. Mauris molestie venenatis facilisis. Morbi commodo, enim consequat iaculis lacinia, felis quam tempus quam, vitae fringilla purus nibh ut nunc. Etiam iaculis malesuada faucibus. Pellentesque ac nisl tincidunt, pharetra nulla eu, lacinia enim.
-
-Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Etiam maximus gravida auctor. Interdum et malesuada fames ac ante ipsum primis in faucibus. Nulla in iaculis lacus, in convallis massa. Vivamus orci purus, tincidunt sit amet molestie vitae, commodo ac orci. Nunc dignissim enim vitae sodales vulputate. Praesent in fringilla sapien. Morbi posuere tempus velit, a consequat purus semper id. Praesent malesuada accumsan sapien sed imperdiet. Aliquam pretium ante sit amet arcu imperdiet, ac feugiat orci congue. Donec placerat turpis eget dolor viverra sodales nec non diam. Morbi malesuada risus eget arcu sodales, in scelerisque massa lacinia. Phasellus nec nisi at nibh porttitor dapibus.
-
-Mauris lobortis placerat lacus, non interdum nisi sodales at. Phasellus vel nisl quis sapien tincidunt vestibulum vitae eu lacus. Vivamus varius diam euismod metus facilisis, sit amet sagittis sem lacinia. Sed et sapien porta, malesuada nunc at, consectetur tellus. Suspendisse feugiat tempor lectus quis eleifend. Morbi dapibus diam vel faucibus viverra. Morbi condimentum ultrices diam, eget venenatis purus.
-
-Aenean nec pretium odio. Vestibulum luctus tristique lectus, eu iaculis turpis porta eu. Donec iaculis dui lacinia, sodales nibh in, egestas lacus. Aenean id purus vel sem pharetra tincidunt. Cras eget mattis odio, non consectetur risus. Vivamus eget pulvinar velit. Pellentesque sit amet dapibus ligula. Sed eget quam tristique, pharetra lectus at, blandit ligula. Donec ornare massa vitae lacus imperdiet, non congue est hendrerit.
-
-Mauris viverra finibus enim ut porta. Aenean non leo dui. Praesent sed risus condimentum libero aliquam lobortis quis id elit. Suspendisse potenti. Sed id pulvinar ex. Pellentesque eleifend lacus ex, sit amet pulvinar nibh venenatis a. Sed eleifend luctus lectus, at venenatis odio convallis quis. Vivamus ullamcorper facilisis ullamcorper. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Suspendisse potenti. In auctor orci at augue tempus, eget volutpat orci maximus. Nam suscipit vestibulum dolor feugiat dignissim. Nulla orci felis, tempus eget nulla ac, lacinia pellentesque magna. Ut dui felis, convallis sed euismod nec, rutrum nec orci.
-
-Donec vestibulum, neque eu tincidunt molestie, nulla sem lobortis ipsum, in luctus eros orci a massa. Cras nec augue in orci varius dignissim eget et lorem. Proin rhoncus eu justo ut vestibulum. In ut lacus id leo facilisis imperdiet. Duis quis nisi sem. Morbi ipsum nisl, imperdiet sit amet nisl pretium, auctor egestas arcu. Duis posuere ut felis eget vulputate. Sed quis pharetra odio. Proin rhoncus consectetur lectus in iaculis. Integer vel ligula congue, elementum nibh et, ultricies tellus. Mauris tempus sem at nisi lobortis suscipit. Pellentesque tincidunt eros ac odio volutpat blandit. Fusce ultricies fermentum diam, in blandit augue tincidunt nec. Fusce ullamcorper commodo pharetra.
-
-Vestibulum in bibendum ipsum. Mauris varius nisl venenatis metus laoreet, vel efficitur augue fermentum. Etiam ante nibh, cursus ut augue nec, dapibus fringilla ipsum. Donec quis ex id tellus ullamcorper rutrum eget nec enim. Integer rhoncus sit amet felis vel congue. Praesent tempor hendrerit tellus, sit amet vehicula orci dictum sit amet. Morbi tempus, purus at maximus finibus, odio nulla ullamcorper urna, ac finibus lorem mi non diam.
-
-Integer rhoncus rutrum arcu, ac vestibulum sapien molestie in. Nulla facilisi. Aenean euismod urna at turpis condimentum porta. Cras non mi vitae dui consequat varius ac euismod diam. Donec ultricies felis viverra mauris convallis, nec bibendum est convallis. Sed aliquam consectetur felis, a consequat ligula commodo eget. In ut luctus massa, nec porta sapien. Nulla eget neque non magna bibendum pharetra. Integer cursus efficitur nisl id volutpat. Curabitur pretium eu mauris id sollicitudin. Aenean eu finibus nisl, ut placerat nibh. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Etiam ac orci odio.
-
-Nullam malesuada libero orci, quis commodo lacus cursus id. Donec mollis nisl nec nibh hendrerit, rutrum lobortis risus cursus. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Quisque sit amet lectus sagittis massa gravida euismod. In vel tristique diam. Aenean tincidunt tincidunt tempus. Praesent id libero id magna rhoncus convallis vel in justo. Proin non convallis enim, vel malesuada erat. Proin suscipit pulvinar ipsum, sit amet accumsan lectus scelerisque quis. Donec dictum pharetra mi sit amet lobortis. Aliquam pellentesque nunc vel ornare molestie. Mauris interdum, neque eget rutrum mattis, turpis mi consectetur nisi, quis egestas velit elit sed enim. Quisque id nunc elit.
-
-Vivamus lacinia id leo et iaculis. Praesent a lectus ut est suscipit vulputate. Donec pulvinar, lacus vel facilisis scelerisque, metus orci facilisis neque, in fringilla dui ex ut justo. Duis id nulla quis mauris vulputate cursus. Nullam metus dui, condimentum at enim sit amet, hendrerit fermentum eros. Aenean sed suscipit dolor, tincidunt semper mi. Nullam porttitor felis vel magna semper varius. Phasellus id nibh vitae magna imperdiet eleifend. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Mauris vel libero id tortor iaculis placerat eget blandit diam. Sed nec urna accumsan, rhoncus arcu ac, tempor neque. Curabitur et eleifend elit. Donec eget tortor mauris. Donec quis sapien purus.
-
-Suspendisse pellentesque varius nunc, vitae fermentum dolor vehicula vel. Phasellus pharetra, lectus nec vehicula cursus, justo neque hendrerit tortor, eu hendrerit risus nibh vel urna. Pellentesque pulvinar diam nec sapien egestas, et sagittis nulla auctor. Fusce ante nibh, maximus ac ipsum sit amet, ornare tincidunt massa. Curabitur molestie mi id lectus lobortis accumsan. Aliquam gravida ante sed nisi congue vehicula. Sed quam dolor, iaculis consequat suscipit sed, sollicitudin nec lectus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Donec vel lectus lectus. Curabitur dapibus scelerisque ante feugiat ullamcorper. Donec ultricies vitae urna eu ultrices. Mauris blandit, augue in eleifend hendrerit, est purus sagittis orci, nec iaculis enim ipsum eget justo. Maecenas volutpat euismod mauris eu vehicula. Cras lorem felis, sollicitudin at felis vitae, commodo fermentum justo. Quisque tellus turpis, laoreet ac nisl sit amet, pretium mollis odio. Proin vel sagittis metus.
-
-Fusce auctor feugiat venenatis. Integer tincidunt tempor massa, eget suscipit ligula posuere et. Nunc accumsan posuere mauris, vel aliquet nulla iaculis eget. Duis tincidunt mi quam, eget aliquam velit pulvinar a. Sed posuere venenatis nulla, eget pretium nisl ultricies id. Aliquam ac sem rutrum, porta dui vel, euismod turpis. Ut laoreet urna sit amet odio dignissim laoreet. Cras a erat sit amet dui laoreet eleifend ut quis nisl. Aenean ac diam massa. Duis id libero id quam rutrum consequat quis a nunc. Suspendisse vitae mollis eros.
-
-Sed at orci vestibulum, gravida elit fermentum, vestibulum arcu. Suspendisse viverra massa dolor, vel porttitor est molestie sed. Sed non lorem ac erat porttitor venenatis non vitae sem. Nulla vulputate feugiat sapien sit amet vehicula. Sed malesuada diam quis sollicitudin finibus. Pellentesque aliquet tellus quis justo sodales, et consequat est euismod. Suspendisse aliquet congue justo quis posuere. Donec tincidunt efficitur nulla vitae mollis. Mauris rutrum sem a dui dictum pulvinar. Cras varius vestibulum justo.
-
-Nullam vulputate libero sed enim posuere euismod. Sed eget convallis ligula. Sed vel neque hendrerit, faucibus enim quis, laoreet tortor. Proin hendrerit leo elit, id sollicitudin tortor luctus sed. Quisque volutpat lacinia imperdiet. Fusce venenatis faucibus velit nec sollicitudin. Nam nisl nulla, ultricies ut mattis non, porta non mi.
-
-Proin vehicula augue sapien, non facilisis tellus tristique in. Nulla at nulla ultrices, malesuada leo vel, pharetra felis. Phasellus dignissim nibh velit. Ut scelerisque rhoncus laoreet. Vestibulum posuere ante in tellus molestie, quis posuere risus ullamcorper. Nam luctus eros sit amet enim iaculis, eu tincidunt felis dictum. Aliquam suscipit, nibh eget mollis viverra, erat lacus tempus mauris, nec eleifend tortor nibh ut erat. In vestibulum mauris neque, sit amet auctor ante mollis vel. In laoreet sed urna cursus dignissim. Vivamus bibendum sem et faucibus auctor. Vivamus sed diam ut sapien vehicula semper. Integer rutrum sem ac nunc varius tincidunt. Aliquam erat volutpat.
-
-Sed id molestie diam. Quisque nec ante eu nisl fermentum vehicula quis id leo. Vivamus vestibulum ligula ligula, eget tristique lorem euismod vitae. Vestibulum malesuada rhoncus efficitur. Quisque odio elit, venenatis nec placerat sit amet, pharetra a lectus. Nullam nisl lacus, consectetur et pellentesque a, ullamcorper non arcu. Pellentesque a arcu placerat, blandit sapien vel, faucibus purus. In facilisis tempor dolor, ac aliquam massa molestie a. Etiam suscipit egestas efficitur. Suspendisse laoreet finibus tortor, sit amet faucibus nibh elementum nec. Ut egestas est lacinia dolor convallis, sit amet commodo est ullamcorper. Aliquam tincidunt est sit amet odio accumsan imperdiet. Fusce non lectus dictum felis lobortis ultrices vitae quis urna. Suspendisse non turpis erat. Suspendisse dapibus nisl sem, malesuada consectetur massa fermentum sit amet. Phasellus aliquet id sem nec accumsan.
-
-Fusce rhoncus scelerisque purus, vitae ullamcorper metus aliquam vitae. Suspendisse bibendum lacus ultrices justo dignissim eleifend. Integer ultrices est id est ullamcorper maximus. Nulla arcu leo, dictum sit amet eleifend a, pulvinar sed nulla. Curabitur posuere dui accumsan turpis finibus pellentesque. Nunc at pulvinar nulla, ac mattis tellus. Morbi sit amet dictum dolor, ac sagittis metus. Etiam a lorem ut sapien faucibus consequat. Aliquam sit amet suscipit ante. Sed ullamcorper, tortor nec lobortis scelerisque, metus leo tempus ipsum, id placerat augue justo vel arcu. Praesent quis est malesuada, efficitur tellus eget, suscipit mauris. Praesent tristique augue eget dui fringilla fringilla. Aliquam massa turpis, tempor ut mollis in, dapibus sit amet nisl. Duis tempus aliquet augue vel faucibus.
-
-Aliquam erat volutpat. Nam fringilla eros a leo rhoncus laoreet ac sit amet orci. Nunc accumsan nibh vitae arcu posuere bibendum. Morbi rutrum justo vehicula mauris accumsan, sed facilisis turpis mattis. Pellentesque mattis sapien sed lacus commodo consequat. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vestibulum maximus scelerisque ipsum vel porttitor. Nullam sit amet dapibus nisl. Duis rutrum nibh et diam viverra, at facilisis mauris tempor. Phasellus vehicula libero et nibh imperdiet blandit eget ut sapien. Maecenas feugiat massa et convallis cursus.
-
-Etiam id sapien risus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Nulla urna neque, bibendum id efficitur eu, iaculis eget dolor. Donec gravida maximus dui, nec pellentesque nunc. Pellentesque fermentum lorem finibus risus dapibus, at efficitur nunc dignissim. Aenean a quam sed ex vulputate tempus. Praesent tempor dictum neque, eu placerat ligula sollicitudin nec. Quisque nulla risus, pellentesque id ligula eget, dignissim interdum mauris. Praesent sollicitudin, erat vel aliquam imperdiet, tellus eros convallis nisl, quis venenatis nibh orci egestas erat. Nunc consectetur laoreet sodales. Maecenas pharetra sem sed est luctus, et euismod purus mollis. Duis vitae diam neque. Suspendisse consectetur semper aliquam.
-
-In quam quam, pharetra ut faucibus et, iaculis eu libero. Fusce sagittis faucibus arcu, sagittis pellentesque libero. Proin imperdiet mi non massa convallis, non venenatis magna sagittis. Praesent ultricies faucibus justo vitae consequat. Donec molestie velit vel elit sagittis commodo eget sollicitudin ligula. Nam aliquet facilisis est eget malesuada. Nunc sed vestibulum magna. Donec finibus leo tellus, dictum tempus massa feugiat id. In hac habitasse platea dictumst. Nunc porta risus dui, at sollicitudin nisl sollicitudin sed. Quisque id elementum ex, quis sodales odio. Nam accumsan ligula nibh, sit amet semper sem vehicula a. Suspendisse blandit erat ut feugiat iaculis. Sed porta tellus et tincidunt sollicitudin. Sed pharetra risus tempus sollicitudin venenatis. Mauris vehicula eget magna sit amet consectetur.
-
-Aenean orci ante, rhoncus euismod orci sit amet, gravida mattis est. Nullam ultricies malesuada aliquam. Sed justo ligula, dictum non mauris at, laoreet rhoncus leo. Nunc eu dapibus ante. Nullam sagittis quam nulla, a gravida ipsum porta a. Nullam ultricies faucibus sapien eu fermentum. Donec varius velit vel lorem viverra, sed tincidunt dolor ullamcorper. Duis dignissim risus id facilisis lobortis. In condimentum risus vel dui rhoncus mattis. Aliquam non quam scelerisque, dictum dolor non, volutpat quam. Morbi rutrum consequat sem. Suspendisse vitae volutpat elit.
-
-Etiam sed magna ante. Phasellus a elit orci. In in dolor placerat, tincidunt elit ut, lacinia turpis. Duis ullamcorper arcu a est cursus dapibus. In posuere sit amet nibh vitae condimentum. Nam mollis consequat justo, eget imperdiet sem accumsan quis. Nunc nec magna sagittis, bibendum sapien nec, auctor erat. Curabitur lorem orci, sodales vitae erat ut, sollicitudin mollis erat. Duis convallis dui in nibh commodo, a rhoncus nunc ultrices. Maecenas sed cursus dui.
-
-Sed imperdiet volutpat pretium. Donec sollicitudin at odio euismod hendrerit. Morbi vitae tellus eget leo suscipit fermentum. Proin vel purus varius, eleifend ligula vitae, mattis sapien. Cras hendrerit velit tincidunt arcu bibendum, quis faucibus nulla posuere. Duis semper nisi vitae ante luctus pharetra. Aliquam id massa ante. Quisque a odio non sem pellentesque feugiat. Etiam ac neque vitae mauris fringilla rutrum. Nunc euismod sagittis nunc quis rhoncus. Proin vestibulum dui at lorem elementum iaculis. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vivamus sed arcu est.
-
-Nam a lectus at diam luctus sollicitudin non non libero. In justo lorem, feugiat sed ipsum eget, dignissim condimentum ex. Nunc id mollis risus. Curabitur fermentum scelerisque libero vitae vehicula. Duis convallis risus lectus, eu feugiat velit consequat vitae. Donec ac fringilla nibh. Mauris tincidunt, neque et fringilla ultricies, dui libero molestie metus, eu bibendum tortor orci consectetur leo. Phasellus tristique tempus ipsum, ac consectetur mi iaculis eu. Suspendisse imperdiet massa a ipsum ornare volutpat. Nulla turpis orci, aliquam ac placerat eget, elementum vitae magna. Nam libero risus, mattis sed leo nec, malesuada bibendum metus. Phasellus vel egestas lorem.
-
-Integer a facilisis quam. Morbi velit tortor, malesuada et lorem ac, cursus suscipit elit. Vestibulum eu enim mauris. Pellentesque eget porta risus, vel ornare eros. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Phasellus nec sagittis justo, a pharetra felis. Nulla sed quam felis. Proin dui dolor, vulputate sit amet egestas vel, suscipit a risus.
-
-Pellentesque id orci velit. In porttitor lectus fermentum placerat hendrerit. In in erat et felis commodo luctus vitae nec ipsum. Vivamus ut odio vitae lectus sagittis molestie vel non massa. Donec et ultrices magna. Aliquam in felis eros. Quisque nec sapien sed neque iaculis placerat eget a neque. Sed posuere molestie egestas. Mauris mollis justo leo, eu pellentesque velit blandit id. Cras imperdiet rhoncus diam eget vehicula. Nunc at convallis velit. Cras tincidunt metus sit amet vulputate scelerisque. Aliquam erat volutpat. Cras quis purus nec erat volutpat lacinia a et mauris. Cras tristique sit amet risus egestas imperdiet.
-
-Nam nec feugiat lorem. Quisque eu faucibus ante, a pretium elit. Quisque euismod est in mauris sodales ultricies. Maecenas augue elit, eleifend vitae varius sit amet, molestie ac odio. Nullam tincidunt fringilla lectus, bibendum lacinia massa molestie in. Sed ullamcorper tellus eu felis facilisis consectetur non nec neque. Nunc lacinia, lectus nec porta laoreet, arcu velit viverra sem, vitae lobortis magna ligula in ex.
-
-Cras sed dui dignissim, semper leo sed, dapibus dolor. Quisque eleifend arcu lacus, non bibendum lacus tempor nec. Nunc luctus, nibh at tempor eleifend, risus lectus malesuada sapien, vitae tempus nisi diam nec diam. Integer vulputate hendrerit blandit. Quisque dictum a tortor vitae dapibus. Curabitur ut quam leo. Proin posuere pulvinar lectus, ac viverra lacus tempus id. Donec congue rhoncus tortor eget tempor. Interdum et malesuada fames ac ante ipsum primis in faucibus. Suspendisse vulputate ultrices imperdiet. Etiam et ante vel leo finibus tincidunt quis sit amet tellus. Aenean iaculis, nulla vitae pulvinar sollicitudin, nunc nisi porttitor sapien, eu luctus tellus tortor nec orci. Vivamus sed dapibus quam, eget condimentum justo.
-
-Proin tempus tincidunt erat, quis pharetra risus posuere et. Donec porta eros vel pellentesque convallis. Etiam dignissim elit eu lacinia faucibus. Proin quis sem felis. Nulla facilisi. Fusce efficitur commodo augue, in cursus neque cursus id. Mauris gravida magna et metus dapibus mollis. Proin ac lectus vel magna efficitur placerat. Pellentesque sollicitudin velit porta, ultricies justo sit amet, posuere eros. Vestibulum tincidunt libero non nibh congue gravida. Phasellus gravida ac felis quis facilisis. Morbi dignissim diam nec nibh viverra aliquam. Nulla eu suscipit nulla. Phasellus ultricies nisl a eleifend sodales.
-
-Ut semper risus ante, quis consectetur urna facilisis ut. Mauris facilisis lacus est, varius elementum dolor auctor eu. Morbi sagittis nulla dui, id ultrices ligula scelerisque in. Suspendisse ultricies consequat ligula sit amet convallis. Pellentesque vulputate mauris sollicitudin facilisis gravida. Etiam non est nec quam rutrum auctor id interdum nunc. Integer mattis leo eget odio tincidunt consequat. Donec ac pulvinar orci. Sed vitae ex in metus malesuada scelerisque. Sed interdum, turpis ac rutrum gravida, nunc enim efficitur ipsum, nec eleifend massa ligula vitae magna. Vivamus sit amet congue quam. Vestibulum pellentesque lacus at massa mollis egestas. Pellentesque vel sapien nec orci posuere volutpat. Integer pulvinar, turpis molestie sagittis scelerisque, justo nisl malesuada tortor, eget venenatis enim purus quis tellus. Proin suscipit dui sit amet mi sollicitudin, vitae egestas magna mattis.
-
-Sed eget magna a mauris pretium semper. Sed non tincidunt diam, nec suscipit mi. Nam rutrum nisl est, vel commodo ligula facilisis a. Maecenas pulvinar leo risus, non ultrices risus ornare sed. Nulla a erat tincidunt, rhoncus eros bibendum, pretium turpis. Etiam fermentum dui ac urna dictum porttitor. In dignissim augue nec nulla imperdiet, nec tristique lacus rhoncus.
-
-Mauris ut scelerisque ipsum. Praesent rutrum luctus leo. Nulla facilisis faucibus dolor et interdum. Sed lobortis molestie enim, in porta neque. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Cras fringilla urna sapien. Etiam sit amet porttitor mauris. Pellentesque gravida, lacus non tempus gravida, ante libero pulvinar lorem, sit amet dapibus turpis justo id neque. Cras faucibus pellentesque mauris, vel ornare quam mattis ac. Aenean et nisi vitae purus fringilla rutrum vel vel libero. Vestibulum non tincidunt felis, sit amet vehicula nunc. Aenean a gravida elit, ac lacinia lectus. Donec nec maximus eros, a euismod magna.
-
-Aliquam facilisis enim posuere elit mollis, vel laoreet nunc consectetur. Ut finibus sagittis sapien tempus viverra. Phasellus fermentum augue orci, id pulvinar lectus viverra at. Vivamus et ullamcorper purus, ut elementum mauris. Pellentesque erat lacus, viverra ac justo id, blandit euismod ante. Nulla semper justo et magna malesuada, ut aliquet felis molestie. Nulla facilisi. Vivamus ac convallis odio, in auctor eros. Nullam quis convallis nibh. Integer efficitur urna ut metus molestie, in consectetur lacus gravida. Duis libero sem, hendrerit in urna et, luctus feugiat ante. Proin at viverra mauris. Vestibulum eget ultrices arcu. Ut mattis sed massa ac posuere.
-
-Ut tempus massa vel arcu eleifend sodales. Morbi a augue et mauris blandit gravida ac non nulla. Sed porttitor porttitor metus, eu rutrum nisl placerat eu. Cras eleifend nibh sit amet ligula pharetra, sed ullamcorper arcu mollis. Aenean vestibulum turpis mi, ac tempus eros semper vitae. Phasellus malesuada rhoncus nisi, id imperdiet nisl. Praesent venenatis metus sed erat pulvinar, lobortis malesuada ex pretium. Nam viverra magna mi, non placerat lorem fermentum non. Donec vel tempus diam. Vivamus sed rutrum massa, et dictum dui. Duis aliquam mauris magna, vitae interdum orci viverra quis. Morbi in metus porttitor, viverra enim sit amet, euismod lorem.
-
-Etiam tristique velit non porttitor blandit. Integer sodales elit id gravida luctus. Nulla at purus ipsum. Nunc sapien augue, ornare eget massa vel, elementum pulvinar ipsum. Etiam vel bibendum velit. Maecenas eleifend lectus at pharetra pretium. Quisque sit amet commodo ligula. Nulla vitae fringilla quam. Suspendisse potenti. Etiam condimentum nec sapien at placerat. Cras ultricies leo quam, eu eleifend nisi tincidunt ut. Etiam tincidunt magna nec neque aliquet rutrum. Aenean id dictum odio.
-
-Aliquam interdum nulla vitae vestibulum molestie. Cras luctus efficitur euismod. Proin luctus aliquet tellus, non euismod magna dignissim at. Suspendisse potenti. Curabitur urna lacus, mattis vel molestie vitae, dapibus vitae massa. Etiam lobortis risus placerat dui suscipit rhoncus. Ut vel sapien vel diam scelerisque volutpat. Vestibulum dignissim, tortor eu egestas cursus, urna diam dapibus sapien, auctor eleifend sem est convallis nulla. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin rutrum, turpis sit amet scelerisque ultrices, ante turpis suscipit lectus, ac euismod erat nunc non lorem. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Quisque ultricies diam urna, ut gravida libero pellentesque id.
-
-Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Fusce non mi ut lorem fermentum vestibulum. Nullam tempor erat odio, nec sagittis mi luctus ut. In at est non orci dignissim facilisis venenatis a lectus. Etiam non arcu fringilla, interdum dui quis, ornare sem. Curabitur quis accumsan diam. Mauris fermentum nisl sit amet tortor sagittis, et consequat odio mollis. Morbi rutrum euismod sapien in consequat. Nam tempus tellus nibh, ut dignissim justo iaculis vel. Nullam tincidunt, risus vel varius rhoncus, arcu neque fermentum felis, eget mattis eros nulla ut justo. Vestibulum ac blandit felis, eget fermentum neque. Etiam congue porta auctor. Fusce porttitor leo id odio congue efficitur.
-
-Vivamus eu quam quis urna laoreet molestie non id erat. Nam eget odio nulla. Vivamus sit amet accumsan sapien. Cras non iaculis tortor. Duis at libero vestibulum, placerat tortor ac, eleifend purus. Sed venenatis tempor suscipit. Aliquam quis ligula ac odio laoreet tristique a non ante. Donec id massa suscipit, pulvinar mi non, egestas velit. Pellentesque vestibulum condimentum eros. Nam lobortis, lorem sit amet semper maximus, velit ante dictum felis, eget tristique justo orci a enim. Fusce vulputate vel urna ut porta. Nulla cursus ut turpis vel imperdiet. Fusce fringilla blandit justo. Suspendisse porta orci eu tortor tincidunt rhoncus. Sed ultrices mi bibendum aliquet finibus. Nunc convallis nisi tincidunt ex mollis, eu posuere lorem finibus.
-
-Ut sit amet porttitor orci. Praesent eu nunc nec nunc venenatis varius. Vestibulum vulputate sed odio sit amet lobortis. Fusce sed efficitur lorem. Etiam nisl nulla, gravida at nisi quis, accumsan dictum velit. Pellentesque et risus non tortor molestie hendrerit. Interdum et malesuada fames ac ante ipsum primis in faucibus. Ut porta faucibus ligula quis consectetur. Morbi consectetur laoreet nisi, vel imperdiet nibh tempor id. Curabitur nec eros vel nunc ornare volutpat non id augue. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Aliquam erat volutpat. Mauris tempus, magna elementum fermentum posuere, massa turpis fringilla leo, quis feugiat neque mauris vel ante. Aenean tellus massa, rhoncus in porttitor eget, semper sit amet arcu.
-
-Aenean tempus urna non aliquet posuere. Suspendisse tempus velit quis egestas porta. Curabitur ac pulvinar tellus. Integer semper ligula eget enim facilisis, pellentesque varius ligula malesuada. Cras venenatis tellus velit, sodales volutpat neque imperdiet hendrerit. Suspendisse vel metus ultricies, condimentum risus nec, hendrerit urna. Nulla in metus at orci viverra accumsan. In cursus sapien mi, sed eleifend ante tristique vel. Nullam porttitor arcu vitae tincidunt porttitor. Aliquam sit amet viverra nisi. Aliquam sed lobortis ante. Aenean a diam arcu. Nullam pharetra libero vel nulla vehicula, vitae elementum felis aliquet. Praesent ut mattis risus, at finibus arcu.
-
-Ut rhoncus nulla at egestas accumsan. Quisque iaculis vulputate cursus. Phasellus dignissim euismod enim, id ultricies metus fermentum vitae. Sed lacus augue, facilisis at risus non, semper pharetra ex. Cras sit amet dolor vitae nisi tincidunt faucibus sed vel purus. Proin sagittis nunc vitae dictum gravida. Donec congue pellentesque tempor. Aliquam ornare risus vel diam posuere posuere. Donec interdum risus vitae tortor viverra, sed tempus dolor fermentum. Nunc ante neque, interdum vel molestie nec, lacinia a ex. Vestibulum mattis sem id ultricies sagittis. In nulla velit, malesuada at molestie sit amet, lobortis nec orci. In elementum vehicula sapien, sit amet sollicitudin tortor. Sed eu iaculis libero. Etiam quis nulla auctor, volutpat ipsum nec, blandit nulla. Integer porttitor eu mauris ut mollis.
-
-Sed accumsan, justo eget convallis viverra, ipsum eros rutrum dui, in congue nunc urna in magna. Proin consequat vitae mauris pharetra congue. Donec et magna risus. Integer sit amet leo sapien. Proin nec est massa. Curabitur scelerisque lorem diam, molestie cursus ligula pretium non. Curabitur eu rutrum metus. Cras magna sapien, gravida nec elit quis, vestibulum bibendum leo. Aenean hendrerit lorem a nunc feugiat vestibulum.
-
-Phasellus tortor orci, semper vel lorem in, hendrerit scelerisque dolor. Aliquam erat volutpat. Maecenas auctor aliquet urna in interdum. Integer eget felis ultrices dui tempor gravida. Curabitur volutpat pulvinar ligula nec sagittis. Donec porttitor ullamcorper purus id hendrerit. Mauris sit amet enim pellentesque, viverra enim vel, tempus augue. In consequat pulvinar nunc sed ullamcorper. Sed nec sem nec quam porttitor mollis. Phasellus ac dui sit amet dolor vulputate elementum sit amet a ex. Fusce tellus tortor, rhoncus quis eros non, volutpat accumsan dolor.
-
-In porttitor dolor eu leo mollis volutpat. Donec euismod finibus felis. Aliquam ullamcorper venenatis dolor. Mauris bibendum rhoncus pretium. Suspendisse maximus tellus egestas nunc sodales, at gravida turpis venenatis. Aenean vulputate tincidunt ipsum. Proin euismod sagittis urna, sit amet maximus erat ornare vehicula. Phasellus commodo, ligula eu sagittis semper, dui nulla interdum sem, vel volutpat nulla diam vitae metus. Aliquam congue odio suscipit libero feugiat, eu pretium elit vehicula. Morbi tortor diam, laoreet sed luctus non, rutrum at odio. Pellentesque rhoncus egestas sem nec laoreet. Mauris ultricies sapien id nibh molestie, vitae semper erat ultrices. Quisque rhoncus odio non purus convallis, suscipit convallis enim elementum. Praesent pretium nibh elit, consectetur vulputate mi vestibulum a. Pellentesque scelerisque ipsum consequat felis accumsan aliquam.
-
-Sed semper nibh molestie, pharetra augue eu, fermentum metus. Praesent sit amet odio efficitur, mattis magna sed, mattis nisi. Cras ac finibus nisl, quis vestibulum ipsum. Donec interdum enim ut velit efficitur finibus. Pellentesque at urna odio. Pellentesque quis eros vitae elit tristique scelerisque sit amet sit amet nisi. Quisque tincidunt fringilla nulla quis pretium. Fusce mollis nunc ut dui rhoncus auctor. Donec non massa odio. In hac habitasse platea dictumst.
-
-Maecenas gravida erat a aliquet semper. In lorem leo, feugiat sit amet lorem non, maximus aliquam ex. In hac habitasse platea dictumst. Morbi sed pellentesque ex. Vestibulum tristique dolor vulputate nulla sodales, sit amet volutpat odio efficitur. In ligula arcu, luctus et justo ac, fermentum semper metus. Duis dapibus libero in feugiat auctor. Praesent vehicula in mi eu porta. Proin sem nulla, vulputate porta dignissim et, condimentum at ipsum. Praesent in sapien tempor, sodales ex in, iaculis lectus. Sed blandit laoreet lobortis. Integer imperdiet interdum massa, ac luctus leo ultricies sodales. In molestie sed neque interdum mattis. Duis nec nisl varius, aliquam nisi pulvinar, interdum mi. Sed iaculis, augue nec scelerisque vulputate, nulla nisl suscipit tellus, vitae tristique mauris est nec odio.
-
-Fusce quis lacus vel libero auctor ultricies vel sed nisi. Nullam vel velit quis eros vehicula vulputate. Ut interdum massa et fringilla bibendum. Aliquam sollicitudin felis felis, vel malesuada sem ultricies vel. Mauris et vulputate elit. Vestibulum interdum facilisis varius. Donec pulvinar hendrerit lorem, et varius ante egestas et. Ut fringilla ac purus ac rutrum. Donec a sem nisi. Vivamus hendrerit mi et nulla consequat scelerisque. Ut vulputate turpis vel sem vulputate vehicula. Nulla scelerisque erat lacus, vel vehicula orci tincidunt quis. Donec massa nisi, euismod eu pellentesque sit amet, euismod id orci. Quisque eu erat tincidunt, viverra massa vitae, eleifend sapien.
-
-Aenean imperdiet ultrices nulla, nec condimentum purus convallis malesuada. Aenean egestas euismod sem a tempor. Cras pulvinar, orci non condimentum mattis, dolor nisl imperdiet urna, sit amet interdum nulla elit quis massa. In elementum odio et neque elementum tempor. Nunc sodales tempor metus, at fermentum felis auctor ac. Fusce elementum nibh at nisl auctor, et pellentesque ex lacinia. Nam rutrum lacus eget metus tempor condimentum. Maecenas eleifend convallis neque at dapibus. Nullam venenatis, risus sed auctor tincidunt, massa dui tempus neque, eget lobortis sapien ipsum sed ante. Nunc ornare in orci aliquam feugiat. Nunc interdum condimentum nisl a sollicitudin.
-
-Donec interdum eu velit nec lacinia. Aliquam tincidunt, eros sit amet placerat vehicula, nunc massa imperdiet metus, suscipit faucibus leo sapien ac lectus. Praesent ultrices, nisl vel commodo porta, odio mi condimentum ante, nec tristique leo nunc at metus. Donec eu felis nisl. Aliquam a velit facilisis, aliquam orci non, rutrum diam. Aenean sed volutpat lorem. Praesent in feugiat erat. `;
diff --git a/packages/@pufflig/ps-nodes/src/adapters/parse_document/parse_document.test.ts b/packages/@pufflig/ps-nodes/src/adapters/parse_document/parse_document.test.ts
deleted file mode 100644
index 167c0c1..0000000
--- a/packages/@pufflig/ps-nodes/src/adapters/parse_document/parse_document.test.ts
+++ /dev/null
@@ -1,92 +0,0 @@
-import OpenAI from "openai";
-import { long_text } from "./mock_data/long_text";
-import { parseDocument, ParseDocumentInput } from "./parse_document";
-
-// Mock the OpenAI API module
-jest.mock("openai");
-const mockedOpenAI = jest.mocked(OpenAI);
-
-describe.skip("parseDocument", () => {
- afterEach(() => {
- mockedOpenAI.prototype.chat.completions.create.mockReset();
- });
-
- it("runs the prompt once if the document is short", async () => {
- const input: ParseDocumentInput = {
- prompt: "This is a prompt [[document]]",
- document: "This is a document",
- join: "",
- };
-
- const mockResponse = {
- data: {
- choices: [
- {
- message: { content: "This is the generated text" },
- },
- ],
- },
- };
-
- mockedOpenAI.prototype.chat.completions.create.mockResolvedValueOnce(
- new Promise((res) => res(mockResponse)) as any
- );
-
- const output = await parseDocument.execute?.(input);
-
- expect(output?.text).toEqual(mockResponse.data.choices[0].message.content);
- expect(mockedOpenAI.prototype.chat.completions.create).toHaveBeenCalledTimes(1);
- });
-
- it("runs the prompt several times if the document is too long", async () => {
- const input: ParseDocumentInput = {
- prompt: "This is a prompt [[document]]",
- document: long_text,
- join: "",
- };
-
- const mockResponse = {
- data: {
- choices: [
- {
- message: { content: "This is the generated text" },
- },
- ],
- },
- };
-
- mockedOpenAI.prototype.chat.completions.create.mockResolvedValue(new Promise((res) => res(mockResponse)) as any);
-
- const output = await parseDocument.execute?.(input);
-
- const result = "This is the generated text\nThis is the generated text\nThis is the generated text";
-
- expect(output?.text).toEqual(result);
- expect(mockedOpenAI.prototype.chat.completions.create).toHaveBeenCalledTimes(3);
- });
-
- it("if there are several resulting outputs, they are joined using the join prompt", async () => {
- const input: ParseDocumentInput = {
- prompt: "Summarize the document:\n[[document]]",
- document: long_text,
- join: "Join the sections below:\n[[document]]",
- };
-
- const mockResponse = {
- data: {
- choices: [
- {
- message: { content: "This is the generated text" },
- },
- ],
- },
- };
-
- mockedOpenAI.prototype.chat.completions.create.mockResolvedValue(new Promise((res) => res(mockResponse)) as any);
-
- const output = await parseDocument.execute?.(input);
-
- expect(output?.text).toEqual(mockResponse.data.choices[0].message.content);
- expect(mockedOpenAI.prototype.chat.completions.create).toHaveBeenCalledTimes(4);
- });
-});
diff --git a/packages/@pufflig/ps-nodes/src/adapters/parse_document/parse_document.ts b/packages/@pufflig/ps-nodes/src/adapters/parse_document/parse_document.ts
deleted file mode 100644
index 9216840..0000000
--- a/packages/@pufflig/ps-nodes/src/adapters/parse_document/parse_document.ts
+++ /dev/null
@@ -1,182 +0,0 @@
-import { OPENAI_API_KEY } from "@pufflig/ps-models";
-import { nodeTypes, nodes } from "@pufflig/ps-nodes-config";
-import { Execute, Node } from "@pufflig/ps-types";
-import { Document } from "langchain/document";
-import { RecursiveCharacterTextSplitter } from "langchain/text_splitter";
-import Mustache from "mustache";
-import OpenAI from "openai";
-import { countTokens } from "../../utils/countTokens";
-
-export interface ParseDocumentInput {
- prompt: string;
- document: string;
- join: string;
-}
-
-export interface ParseDocumentOutput {
- text: string;
-}
-
-function delay(time: number) {
- return new Promise((resolve) => setTimeout(resolve, time));
-}
-
-const model = "gpt-3.5-turbo-16k";
-const MAX_TOKENS = 8000;
-const MAX_CONCURRENCY = 2;
-
-const tags = ["[[", "]]"] as [string, string];
-
-/**
- * Runs a prompt across a variable length input. Map the prompt across chunks, concatenate or reduce the result
- * using the join prompt. If no join prompt is provided, the first result will be returned.
- *
- * @param input
- * @param options
- * @returns
- */
-export const execute: Execute = async (input, options = {}) => {
- const { prompt, document } = input;
- const { globals } = options;
-
- // check the number of chunks required
- const promptLength = countTokens(prompt);
- const remainingTokens = MAX_TOKENS - promptLength;
-
- const splitter = new RecursiveCharacterTextSplitter({
- chunkSize: remainingTokens * 2.9,
- chunkOverlap: 10,
- });
-
- const chunks = await splitter.createDocuments([document]);
-
- // group chunks based on the max concurrency
- const chunkGroups: Document[][] = [];
- let chunkGroup: Document[] = [];
- for (const chunk of chunks) {
- if (chunkGroup.length >= MAX_CONCURRENCY) {
- chunkGroups.push(chunkGroup);
- chunkGroup = [];
- }
- chunkGroup.push(chunk);
- }
- chunkGroups.push(chunkGroup);
- // --
-
- const openai = new OpenAI({ apiKey: globals?.[OPENAI_API_KEY] });
-
- const completions = [];
-
- for (const chunkGroup of chunkGroups) {
- const promises: Promise[] = [];
-
- for (const chunk of chunkGroup) {
- const content = Mustache.render(prompt, { document: chunk.pageContent }, {}, { tags });
- const message = { content, role: "system" as const };
- promises.push(
- openai.chat.completions.create({
- model,
- messages: [message],
- temperature: 0,
- max_tokens: remainingTokens - 1,
- })
- );
- await delay(500);
- }
-
- const results = (await Promise.all(promises)).map((completion) => {
- const chatCompletion = completion.data.choices[0].message?.content || "";
- return chatCompletion;
- });
-
- completions.push(...results);
- }
-
- // if there is only one chunk, return the result
- if (completions.length <= 1) {
- return {
- text: completions[0] || "",
- };
- }
-
- // if there is no join prompt, return the concatenated results
- if (!input.join) {
- return {
- text: completions.reduce((acc, cur) => {
- if (!acc) return cur;
- return acc + "\n" + cur;
- }, ""),
- };
- }
-
- // join the chunks while respecting the max tokens
- const reduced = [];
- let rejoined = "";
-
- for (const completion of completions) {
- if (countTokens(input.join) + countTokens(rejoined) + countTokens(completion) > MAX_TOKENS) {
- reduced.push(rejoined);
- rejoined = "";
- }
- rejoined += "\n\n####\n\n" + completion;
- }
- reduced.push(rejoined);
-
- // group items based on the max concurrency
- const reducedGroups: string[][] = [];
- let reduceGroup: string[] = [];
- for (const r of reduced) {
- if (reduceGroup.length >= MAX_CONCURRENCY) {
- reducedGroups.push(reduceGroup);
- reduceGroup = [];
- }
- reduceGroup.push(r);
- }
- reducedGroups.push(reduceGroup);
- // --
-
- // Recursively reduce the chunks if we cannot fit them into the max tokens.
- // TODO: Currently we only return the first result of the reduction.
-
- // reduce using the join prompt
- const reduceCompletions = [];
-
- for (const reducedAnswers of reducedGroups) {
- const promises: Promise[] = [];
-
- for (const answer of reducedAnswers) {
- // insert the chunk into the prompt
- const joinPrompt = Mustache.render(input.join, { document: answer }, {}, { tags });
- const message = { content: joinPrompt, role: "system" as const };
- // run the completion on the chunk
- const remainingTokens = MAX_TOKENS - countTokens(joinPrompt);
- promises.push(
- openai.chat.completions.create({
- model,
- messages: [message],
- temperature: 0,
- max_tokens: remainingTokens - 1,
- })
- );
- // avoid 429 errors from the Openai API.
- await delay(500);
- }
-
- const results = (await Promise.all(promises)).map((completion) => {
- const result = completion.data.choices[0].message?.content || "";
- return result;
- });
-
- reduceCompletions.push(...results);
- }
-
- return {
- // temporary solution
- text: reduceCompletions[0],
- };
-};
-
-export const parseDocument: Node = {
- ...nodes[nodeTypes.parseDocumentNodeType],
- execute,
-};
diff --git a/packages/@pufflig/ps-nodes/src/core/forin.ts b/packages/@pufflig/ps-nodes/src/core/forin.ts
deleted file mode 100644
index 33bf4f6..0000000
--- a/packages/@pufflig/ps-nodes/src/core/forin.ts
+++ /dev/null
@@ -1,38 +0,0 @@
-import { nodeTypes, nodes } from "@pufflig/ps-nodes-config";
-import { NextNode, Node } from "@pufflig/ps-types";
-
-export interface ForinNodeInputs {
- list: Array;
-}
-
-export interface ForinNodeOutputs {
- item: string;
-}
-
-const getTargets = async (input: ForinNodeInputs) => {
- const stack: NextNode[] = [];
- const { list } = input;
-
- for (let i = 0; i < list.length; i++) {
- const item = list[i];
- const nextNode: NextNode = {
- execSource: "output",
- inputs: {
- item,
- },
- };
- stack.push(nextNode);
- }
-
- stack.push({
- execSource: "complete",
- inputs: {},
- });
-
- return stack;
-};
-
-export const forinNode: Node = {
- ...nodes[nodeTypes.forinNodeType],
- getTargets,
-};
diff --git a/packages/@pufflig/ps-nodes/src/core/index.ts b/packages/@pufflig/ps-nodes/src/core/index.ts
deleted file mode 100644
index f3942d0..0000000
--- a/packages/@pufflig/ps-nodes/src/core/index.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import { nodeTypes } from "@pufflig/ps-nodes-config";
-import { forinNode } from "./forin";
-import { inputNode } from "./input";
-import { outputNode } from "./output";
-
-export const coreNodes = {
- [nodeTypes.inputNodeType]: inputNode,
- [nodeTypes.outputNodeType]: outputNode,
- [nodeTypes.forinNodeType]: forinNode,
-};
diff --git a/packages/@pufflig/ps-nodes/src/core/input.ts b/packages/@pufflig/ps-nodes/src/core/input.ts
deleted file mode 100644
index 5639980..0000000
--- a/packages/@pufflig/ps-nodes/src/core/input.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { nodeTypes, nodes } from "@pufflig/ps-nodes-config";
-import { Node } from "@pufflig/ps-types";
-
-export const inputNode: Node = {
- ...nodes[nodeTypes.inputNodeType],
-};
diff --git a/packages/@pufflig/ps-nodes/src/core/output.ts b/packages/@pufflig/ps-nodes/src/core/output.ts
deleted file mode 100644
index ddf1c6d..0000000
--- a/packages/@pufflig/ps-nodes/src/core/output.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { nodeTypes, nodes } from "@pufflig/ps-nodes-config";
-import { Node } from "@pufflig/ps-types";
-
-export const outputNode: Node = {
- ...nodes[nodeTypes.outputNodeType],
-};
diff --git a/packages/@pufflig/ps-nodes/src/data/group/group.test.ts b/packages/@pufflig/ps-nodes/src/data/group/group.test.ts
deleted file mode 100644
index 9b2476a..0000000
--- a/packages/@pufflig/ps-nodes/src/data/group/group.test.ts
+++ /dev/null
@@ -1,49 +0,0 @@
-import { groupNode } from "./group";
-
-test("correctly map empty inputs", async () => {
- expect(await groupNode.execute?.({})).toMatchInlineSnapshot(`
- {
- "group": [],
- }
- `);
-});
-
-test("correctly map different inputs", async () => {
- expect(
- await groupNode.execute?.({
- a: "b",
- c: 0.1,
- d: ["1", "2", "3"],
- })
- ).toMatchInlineSnapshot(`
- {
- "group": [
- {
- "defaultValue": "b",
- "description": "",
- "id": "a",
- "name": "a",
- "type": "text",
- },
- {
- "defaultValue": 0.1,
- "description": "",
- "id": "c",
- "name": "c",
- "type": "number",
- },
- {
- "defaultValue": [
- "1",
- "2",
- "3",
- ],
- "description": "",
- "id": "d",
- "name": "d",
- "type": "list",
- },
- ],
- }
- `);
-});
diff --git a/packages/@pufflig/ps-nodes/src/data/group/group.ts b/packages/@pufflig/ps-nodes/src/data/group/group.ts
deleted file mode 100644
index 88cd7f8..0000000
--- a/packages/@pufflig/ps-nodes/src/data/group/group.ts
+++ /dev/null
@@ -1,29 +0,0 @@
-import { nodes, nodeTypes } from "@pufflig/ps-nodes-config";
-import { Node, NumberParam, Param, ParamValue, TextParam } from "@pufflig/ps-types";
-
-const getTypeFromValue = (value: ParamValue): Param["type"] => {
- if (typeof value === "number") {
- return "number";
- }
- if (Array.isArray(value)) {
- return "list";
- }
- return "text";
-};
-
-export const groupNode: Node = {
- ...nodes[nodeTypes.groupNodeType],
- execute: async (inputs) => {
- return {
- group: Object.entries(inputs).map(([key, value]) => {
- return {
- id: key,
- name: key,
- type: getTypeFromValue(value as ParamValue),
- defaultValue: value,
- description: "",
- } as NumberParam | TextParam;
- }),
- };
- },
-};
diff --git a/packages/@pufflig/ps-nodes/src/data/index.ts b/packages/@pufflig/ps-nodes/src/data/index.ts
deleted file mode 100644
index a3b7a9b..0000000
--- a/packages/@pufflig/ps-nodes/src/data/index.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-import { nodeTypes } from "@pufflig/ps-nodes-config";
-import { groupNode } from "./group/group";
-import { listNode } from "./list/list";
-import { messageNode } from "./message/message";
-import { modelNode } from "./model/model";
-import { numberNode } from "./number/number";
-import { textNode } from "./text/text";
-import { promptNode } from "./prompt/prompt";
-
-export const dataNodes = {
- [nodeTypes.groupNodeType]: groupNode,
- [nodeTypes.listNodeType]: listNode,
- [nodeTypes.messageNodeType]: messageNode,
- [nodeTypes.modelNodeType]: modelNode,
- [nodeTypes.numberNodeType]: numberNode,
- [nodeTypes.textNodeType]: textNode,
- [nodeTypes.promptNodeType]: promptNode,
-};
diff --git a/packages/@pufflig/ps-nodes/src/data/list/list.ts b/packages/@pufflig/ps-nodes/src/data/list/list.ts
deleted file mode 100644
index 6010fea..0000000
--- a/packages/@pufflig/ps-nodes/src/data/list/list.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { nodeTypes, nodes } from "@pufflig/ps-nodes-config";
-import { Node } from "@pufflig/ps-types";
-
-export const listNode: Node = {
- ...nodes[nodeTypes.messageNodeType],
-};
diff --git a/packages/@pufflig/ps-nodes/src/data/message/message.ts b/packages/@pufflig/ps-nodes/src/data/message/message.ts
deleted file mode 100644
index db21590..0000000
--- a/packages/@pufflig/ps-nodes/src/data/message/message.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-import { nodes, nodeTypes } from "@pufflig/ps-nodes-config";
-import { Node } from "@pufflig/ps-types";
-
-interface MessageNodeInput {
- content: string;
- role: string;
-}
-
-export const messageNode: Node = {
- ...nodes[nodeTypes.messageNodeType],
- execute: async (input: MessageNodeInput) => {
- return {
- message: {
- role: input.role,
- content: input.content,
- },
- };
- },
-};
diff --git a/packages/@pufflig/ps-nodes/src/data/model/model.ts b/packages/@pufflig/ps-nodes/src/data/model/model.ts
deleted file mode 100644
index 52b1213..0000000
--- a/packages/@pufflig/ps-nodes/src/data/model/model.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { nodes, nodeTypes } from "@pufflig/ps-nodes-config";
-import { Node } from "@pufflig/ps-types";
-
-export const modelNode: Node = {
- ...nodes[nodeTypes.modelNodeType],
-};
diff --git a/packages/@pufflig/ps-nodes/src/data/number/number.ts b/packages/@pufflig/ps-nodes/src/data/number/number.ts
deleted file mode 100644
index 81ae351..0000000
--- a/packages/@pufflig/ps-nodes/src/data/number/number.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { nodeTypes, nodes } from "@pufflig/ps-nodes-config";
-import { Node } from "@pufflig/ps-types";
-
-export const numberNode: Node = {
- ...nodes[nodeTypes.numberNodeType],
-};
diff --git a/packages/@pufflig/ps-nodes/src/data/prompt/prompt.test.ts b/packages/@pufflig/ps-nodes/src/data/prompt/prompt.test.ts
deleted file mode 100644
index a889f6a..0000000
--- a/packages/@pufflig/ps-nodes/src/data/prompt/prompt.test.ts
+++ /dev/null
@@ -1,111 +0,0 @@
-import { execute, getInputDefinition } from "./prompt";
-
-test("execute - no variables", async () => {
- const variables = await execute({
- template: `summarize {{longText}}`,
- });
- expect(variables).toMatchInlineSnapshot(`
- {
- "prompt": "summarize {{longText}}",
- }
- `);
-});
-
-test("execute - empty variables", async () => {
- const variables = await execute({
- template: `summarize {{longText}}`,
- longText: "",
- });
- expect(variables).toMatchInlineSnapshot(`
- {
- "prompt": "summarize {{longText}}",
- }
- `);
-});
-
-test("execute - some variables", async () => {
- const variables = await execute({
- template: `summarize {{longText}}`,
- longText: "some long text",
- ignoreThis: "this should be ignored",
- });
- expect(variables).toMatchInlineSnapshot(`
- {
- "prompt": "summarize some long text",
- }
- `);
-});
-
-test("getInputDefinition - no variables", () => {
- const variables = getInputDefinition({
- template: `summarize {{longText}}`,
- });
- expect(variables).toMatchInlineSnapshot(`
-[
- {
- "defaultValue": "summarize {{longText}}",
- "description": "Template with variables",
- "id": "template",
- "name": "Template",
- "type": "text",
- },
- {
- "defaultValue": "",
- "description": "",
- "id": "longText",
- "name": "longText",
- "type": "text",
- },
-]
-`);
-});
-
-test("getInputDefinition - if you pass a template and a variable, take value of the variable", () => {
- const variables = getInputDefinition({
- template: `summarize {{longText}}`,
- longText: "some long text",
- });
- expect(variables).toMatchInlineSnapshot(`
-[
- {
- "defaultValue": "summarize {{longText}}",
- "description": "Template with variables",
- "id": "template",
- "name": "Template",
- "type": "text",
- },
- {
- "defaultValue": "some long text",
- "description": "",
- "id": "longText",
- "name": "longText",
- "type": "text",
- },
-]
-`);
-});
-
-test("getInputDefinition - ignores non existing variables", () => {
- const variables = getInputDefinition({
- template: `summarize {{longText}}`,
- otherVariable: "",
- });
- expect(variables).toMatchInlineSnapshot(`
-[
- {
- "defaultValue": "summarize {{longText}}",
- "description": "Template with variables",
- "id": "template",
- "name": "Template",
- "type": "text",
- },
- {
- "defaultValue": "",
- "description": "",
- "id": "longText",
- "name": "longText",
- "type": "text",
- },
-]
-`);
-});
diff --git a/packages/@pufflig/ps-nodes/src/data/prompt/prompt.ts b/packages/@pufflig/ps-nodes/src/data/prompt/prompt.ts
deleted file mode 100644
index 444013c..0000000
--- a/packages/@pufflig/ps-nodes/src/data/prompt/prompt.ts
+++ /dev/null
@@ -1,78 +0,0 @@
-import { nodeTypes, nodes } from "@pufflig/ps-nodes-config";
-import { GetInputDefinition, Node, Param } from "@pufflig/ps-types";
-import Mustache from "mustache";
-import { extractVariables } from "../../utils/extractVariables";
-
-export interface TemplateTextInput {
- template: string;
- [key: string]: string;
-}
-
-export interface TemplateTextOutput {
- prompt: string;
-}
-
-export const execute = async (input: TemplateTextInput) => {
- const { template, ...variables } = input;
-
- // keep template values for undefined variables
- const extractedVariables = extractVariables(template) || [];
- const variablesWithDefaults = extractedVariables.reduce((acc, param) => {
- return {
- ...acc,
- [param.id]:
- variables[param.id] === undefined || variables[param.id] === "" ? `{{${param.id}}}` : variables[param.id],
- };
- }, {} as Record);
-
- const renderedTemplate = Mustache.render(template, variablesWithDefaults);
- return {
- prompt: renderedTemplate,
- };
-};
-
-/**
- * Returns a new input definition given variables extracted from the template.
- *
- * @param input
- * @param prev
- * @returns
- */
-export const getInputDefinition: GetInputDefinition = (input) => {
- const { template, ...rest } = input;
-
- if (template === undefined) {
- return nodes[nodeTypes.promptNodeType].inputs;
- }
-
- const definitionsWithDefaults = nodes[nodeTypes.promptNodeType].inputs.map((input) => {
- if (input.id === "template") {
- return {
- ...input,
- defaultValue: template,
- } as Param;
- }
- return input;
- });
-
- const extractedVariables = extractVariables(template);
-
- if (extractedVariables) {
- const extractedVariablesWithDefaults = extractedVariables.map((variable) => {
- return {
- ...variable,
- defaultValue: rest[variable.id] || "",
- } as Param;
- });
-
- return [...definitionsWithDefaults, ...extractedVariablesWithDefaults];
- }
-
- return definitionsWithDefaults;
-};
-
-export const promptNode: Node = {
- ...nodes[nodeTypes.promptNodeType],
- execute,
- getInputDefinition,
-};
diff --git a/packages/@pufflig/ps-nodes/src/data/text/text.ts b/packages/@pufflig/ps-nodes/src/data/text/text.ts
deleted file mode 100644
index fbe75e0..0000000
--- a/packages/@pufflig/ps-nodes/src/data/text/text.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { nodes, nodeTypes } from "@pufflig/ps-nodes-config";
-import { Node } from "@pufflig/ps-types";
-
-export const textNode: Node = {
- ...nodes[nodeTypes.textNodeType],
-};
diff --git a/packages/@pufflig/ps-nodes/src/index.ts b/packages/@pufflig/ps-nodes/src/index.ts
deleted file mode 100644
index 2a42939..0000000
--- a/packages/@pufflig/ps-nodes/src/index.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-import { adapterNodes } from "./adapters";
-import { coreNodes } from "./core";
-import { dataNodes } from "./data";
-import { modifierNodes } from "./modifiers";
-import { Nodes } from "./types";
-
-export const nodes: Nodes = {
- ...adapterNodes,
- ...dataNodes,
- ...modifierNodes,
- ...coreNodes,
-};
-
-export const adapters = adapterNodes;
-export const data = dataNodes;
-export const modifiers = modifierNodes;
-export const core = coreNodes;
-
-export * from "./types";
diff --git a/packages/@pufflig/ps-nodes/src/modifiers/add_message/add_message.test.ts b/packages/@pufflig/ps-nodes/src/modifiers/add_message/add_message.test.ts
deleted file mode 100644
index 20629a7..0000000
--- a/packages/@pufflig/ps-nodes/src/modifiers/add_message/add_message.test.ts
+++ /dev/null
@@ -1,161 +0,0 @@
-import { Chat, ChatMessage } from "@pufflig/ps-types";
-import { addMessage } from "./add_message";
-
-const chat: Chat = {
- messages: [],
-};
-
-const chatMessage: ChatMessage = {
- id: "1",
- content: "hello",
- createdAt: "2021-01-01",
- role: "user",
- provider: "user",
-};
-
-test("append_to_chat - append message", async () => {
- const variables = await addMessage.execute?.({
- chat,
- message: chatMessage,
- messageId: "1",
- });
- expect(variables).toMatchInlineSnapshot(`
- {
- "chat": {
- "messages": [
- {
- "content": "hello",
- "createdAt": "2021-01-01",
- "id": "1",
- "provider": "user",
- "role": "user",
- },
- ],
- },
- }
- `);
-});
-
-test("append_to_chat - append message with existing messages", async () => {
- const chat = {
- messages: [chatMessage, chatMessage],
- };
- const variables = await addMessage.execute?.({
- chat,
- message: { ...chatMessage, id: "2" },
- messageId: "",
- });
- expect(variables).toMatchInlineSnapshot(`
- {
- "chat": {
- "messages": [
- {
- "content": "hello",
- "createdAt": "2021-01-01",
- "id": "1",
- "provider": "user",
- "role": "user",
- },
- {
- "content": "hello",
- "createdAt": "2021-01-01",
- "id": "1",
- "provider": "user",
- "role": "user",
- },
- {
- "content": "hello",
- "createdAt": "2021-01-01",
- "id": "2",
- "provider": "user",
- "role": "user",
- },
- ],
- },
- }
- `);
-});
-
-test("append_to_chat - don't append message if it hasn't changed", async () => {
- const chat = {
- messages: [chatMessage, chatMessage],
- };
- const variables = await addMessage.execute?.({
- chat,
- message: chatMessage,
- messageId: "",
- });
- expect(variables).toMatchInlineSnapshot(`
- {
- "chat": {
- "messages": [
- {
- "content": "hello",
- "createdAt": "2021-01-01",
- "id": "1",
- "provider": "user",
- "role": "user",
- },
- {
- "content": "hello",
- "createdAt": "2021-01-01",
- "id": "1",
- "provider": "user",
- "role": "user",
- },
- ],
- },
- }
- `);
-});
-
-test("append_to_chat - append to an existing message given the same id", async () => {
- const chat = {
- messages: [
- {
- id: "2",
- content: "hello",
- createdAt: "2021-01-01",
- role: "user" as const,
- provider: "user",
- },
- chatMessage,
- ],
- };
- const variables = await addMessage.execute?.({
- chat,
- message: { ...chatMessage, id: "3" },
- messageId: "2",
- });
- expect(variables).toMatchInlineSnapshot(`
- {
- "chat": {
- "messages": [
- {
- "content": "hello",
- "createdAt": "2021-01-01",
- "id": "2",
- "provider": "user",
- "role": "user",
- "versions": [
- {
- "content": "hello",
- "createdAt": "2021-01-01",
- "id": "3",
- "provider": "user",
- "role": "user",
- },
- ],
- },
- {
- "content": "hello",
- "createdAt": "2021-01-01",
- "id": "1",
- "provider": "user",
- "role": "user",
- },
- ],
- },
- }
- `);
-});
diff --git a/packages/@pufflig/ps-nodes/src/modifiers/add_message/add_message.ts b/packages/@pufflig/ps-nodes/src/modifiers/add_message/add_message.ts
deleted file mode 100644
index 609cb0c..0000000
--- a/packages/@pufflig/ps-nodes/src/modifiers/add_message/add_message.ts
+++ /dev/null
@@ -1,55 +0,0 @@
-import { nodeTypes, nodes } from "@pufflig/ps-nodes-config";
-import { Chat, ChatMessage, Node } from "@pufflig/ps-types";
-
-export interface AddMessageInput {
- chat: Chat;
- message: ChatMessage | null;
- messageId: string;
-}
-
-export interface AddMessageOutput {
- chat: Chat;
-}
-
-export const execute = async (input: AddMessageInput): Promise => {
- // if there is no message, return the chat without change
- if (!input.message) {
- return {
- chat: input.chat,
- };
- }
-
- // if the message already exists, return the chat without change
- const messageIds = input.chat.messages.map((m) => m.id);
- if (messageIds.includes(input.message.id)) {
- return {
- chat: input.chat,
- };
- }
-
- const { chat, message, messageId } = input;
-
- const messageIndex = chat.messages.findIndex((m) => m.id === messageId);
-
- // add message as new version
- if (messageIndex !== -1) {
- const messageToVersion = chat.messages[messageIndex];
- messageToVersion.versions ||= [];
- messageToVersion.versions.push(message);
- return {
- chat,
- };
- }
-
- return {
- chat: {
- ...chat,
- messages: [...chat.messages, message],
- },
- };
-};
-
-export const addMessage: Node = {
- ...nodes[nodeTypes.addMessageNodeType],
- execute,
-};
diff --git a/packages/@pufflig/ps-nodes/src/modifiers/add_text/add_text.ts b/packages/@pufflig/ps-nodes/src/modifiers/add_text/add_text.ts
deleted file mode 100644
index 3ab4492..0000000
--- a/packages/@pufflig/ps-nodes/src/modifiers/add_text/add_text.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import { nodeTypes, nodes } from "@pufflig/ps-nodes-config";
-import { Node } from "@pufflig/ps-types";
-
-export const addText: Node = {
- ...nodes[nodeTypes.addTextNodeType],
- // TODO: implement
-};
diff --git a/packages/@pufflig/ps-nodes/src/modifiers/index.ts b/packages/@pufflig/ps-nodes/src/modifiers/index.ts
deleted file mode 100644
index 0194e4a..0000000
--- a/packages/@pufflig/ps-nodes/src/modifiers/index.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-import { nodeTypes } from "@pufflig/ps-nodes-config";
-import { addMessage } from "./add_message/add_message";
-import { addText } from "./add_text/add_text";
-import { splitText } from "./split_text/split_text";
-import { templateChat } from "./template/template_chat";
-import { templateText } from "./template/template_text";
-
-export const modifierNodes = {
- [nodeTypes.addMessageNodeType]: addMessage,
- [nodeTypes.addTextNodeType]: addText,
- [nodeTypes.splitTextNodeType]: splitText,
- [nodeTypes.templateChatNodeType]: templateChat,
- [nodeTypes.templateTextNodeType]: templateText,
-};
diff --git a/packages/@pufflig/ps-nodes/src/modifiers/split_text/mock.ts b/packages/@pufflig/ps-nodes/src/modifiers/split_text/mock.ts
deleted file mode 100644
index 860755f..0000000
--- a/packages/@pufflig/ps-nodes/src/modifiers/split_text/mock.ts
+++ /dev/null
@@ -1,335 +0,0 @@
-export const Hamlet = `
-ACT 1, SCENE 1 Elsinore. A platform before the castle
-
-FRANCISCO at his post. Enter to him BERNARDO
-
-BERNARDO
-Who’s there?
-
-FRANCISCO
-Nay, answer me: stand, and unfold yourself.
-
-BERNARDO
-Long live the king!
-
-FRANCISCO
-Bernardo?
-
-BERNARDO
-He.
-
-FRANCISCO
-You come most carefully upon your hour.
-
-BERNARDO
-‘Tis now struck twelve; get thee to bed, Francisco.
-
-FRANCISCO
-For this relief much thanks: ’tis bitter cold,
-And I am sick at heart.
-
-BERNARDO
-Have you had quiet guard?
-
-FRANCISCO
-Not a mouse stirring.
-
-BERNARDO
-Well, good night.
-If you do meet Horatio and Marcellus,
-The rivals of my watch, bid them make haste.
-
-FRANCISCO
-I think I hear them. Stand, ho! Who’s there?
-
-Enter HORATIO and MARCELLUS
-
-HORATIO
-Friends to this ground.
-
-MARCELLUS
-And liegemen to the Dane.
-
-FRANCISCO
-Give you good night.
-
-MARCELLUS
-O, farewell, honest soldier:
-Who hath relieved you?
-
-FRANCISCO
-Bernardo has my place.
-Give you good night.
-
-Exit
-
-MARCELLUS
-Holla! Bernardo!
-
-BERNARDO
-Say,
-What, is Horatio there?
-
-HORATIO
-A piece of him.
-
-BERNARDO
-Welcome, Horatio: welcome, good Marcellus.
-
-MARCELLUS
-What, has this thing appear’d again to-night?
-
-BERNARDO
-I have seen nothing.
-
-MARCELLUS
-Horatio says ’tis but our fantasy,
-And will not let belief take hold of him
-Touching this dreaded sight, twice seen of us:
-Therefore I have entreated him along
-With us to watch the minutes of this night;
-That if again this apparition come,
-He may approve our eyes and speak to it.
-
-HORATIO
-Tush, tush, ’twill not appear.
-
-BERNARDO
-Sit down awhile;
-And let us once again assail your ears,
-That are so fortified against our story
-What we have two nights seen.
-
-HORATIO
-Well, sit we down,
-And let us hear Bernardo speak of this.
-
-BERNARDO
-Last night of all,
-When yond same star that’s westward from the pole
-Had made his course to illume that part of heaven
-Where now it burns, Marcellus and myself,
-The bell then beating one,–
-
-Enter Ghost
-
-MARCELLUS
-Peace, break thee off; look, where it comes again!
-
-BERNARDO
-
-In the same figure, like the king that’s dead.
-
-MARCELLUS
-Thou art a scholar; speak to it, Horatio.
-
-BERNARDO
-Looks it not like the king? mark it, Horatio.
-
-HORATIO
-Most like: it harrows me with fear and wonder.
-
-BERNARDO
-It would be spoke to.
-
-MARCELLUS
-Question it, Horatio.
-
-HORATIO
-What art thou that usurp’st this time of night,
-Together with that fair and warlike form
-In which the majesty of buried Denmark
-Did sometimes march? by heaven I charge thee, speak!
-
-MARCELLUS
-It is offended.
-
-BERNARDO
-See, it stalks away!
-
-HORATIO
-Stay! speak, speak! I charge thee, speak!
-
-Exit Ghost
-
-MARCELLUS
-‘Tis gone, and will not answer.
-
-BERNARDO
-How now, Horatio! you tremble and look pale:
-Is not this something more than fantasy?
-What think you on’t?
-
-HORATIO
-Before my God, I might not this believe
-Without the sensible and true avouch
-Of mine own eyes.
-
-MARCELLUS
-Is it not like the king?
-
-HORATIO
-As thou art to thyself:
-Such was the very armour he had on
-When he the ambitious Norway combated;
-So frown’d he once, when, in an angry parle,
-He smote the sledded Polacks on the ice.
-‘Tis strange.
-
-MARCELLUS
-Thus twice before, and jump at this dead hour,
-With martial stalk hath he gone by our watch.
-
-HORATIO
-In what particular thought to work I know not;
-But in the gross and scope of my opinion,
-This bodes some strange eruption to our state.
-
-MARCELLUS
-Good now, sit down, and tell me, he that knows,
-Why this same strict and most observant watch
-So nightly toils the subject of the land,
-And why such daily cast of brazen cannon,
-And foreign mart for implements of war;
-Why such impress of shipwrights, whose sore task
-Does not divide the Sunday from the week;
-What might be toward, that this sweaty haste
-Doth make the night joint-labourer with the day:
-Who is’t that can inform me?
-
-HORATIO
-That can I;
-At least, the whisper goes so. Our last king,
-Whose image even but now appear’d to us,
-Was, as you know, by Fortinbras of Norway,
-Thereto prick’d on by a most emulate pride,
-Dared to the combat; in which our valiant Hamlet–
-For so this side of our known world esteem’d him–
-Did slay this Fortinbras; who by a seal’d compact,
-Well ratified by law and heraldry,
-Did forfeit, with his life, all those his lands
-Which he stood seized of, to the conqueror:
-Against the which, a moiety competent
-Was gaged by our king; which had return’d
-To the inheritance of Fortinbras,
-Had he been vanquisher; as, by the same covenant,
-And carriage of the article design’d,
-His fell to Hamlet. Now, sir, young Fortinbras,
-Of unimproved mettle hot and full,
-Hath in the skirts of Norway here and there
-Shark’d up a list of lawless resolutes,
-For food and diet, to some enterprise
-That hath a stomach in’t; which is no other–
-As it doth well appear unto our state–
-But to recover of us, by strong hand
-And terms compulsatory, those foresaid lands
-So by his father lost: and this, I take it,
-Is the main motive of our preparations,
-The source of this our watch and the chief head
-Of this post-haste and romage in the land.
-
-BERNARDO
-I think it be no other but e’en so:
-Well may it sort that this portentous figure
-Comes armed through our watch; so like the king
-That was and is the question of these wars.
-
-HORATIO
-A mote it is to trouble the mind’s eye.
-In the most high and palmy state of Rome,
-A little ere the mightiest Julius fell,
-The graves stood tenantless and the sheeted dead
-Did squeak and gibber in the Roman streets:
-As stars with trains of fire and dews of blood,
-Disasters in the sun; and the moist star
-Upon whose influence Neptune’s empire stands
-Was sick almost to doomsday with eclipse:
-And even the like precurse of fierce events,
-As harbingers preceding still the fates
-And prologue to the omen coming on,
-Have heaven and earth together demonstrated
-Unto our climatures and countrymen.–
-But soft, behold! lo, where it comes again!
-
-Re-enter Ghost
-
-I’ll cross it, though it blast me. Stay, illusion!
-If thou hast any sound, or use of voice,
-Speak to me:
-If there be any good thing to be done,
-That may to thee do ease and grace to me,
-Speak to me:
-Cock crows
-
-If thou art privy to thy country’s fate,
-Which, happily, foreknowing may avoid, O, speak!
-Or if thou hast uphoarded in thy life
-Extorted treasure in the womb of earth,
-For which, they say, you spirits oft walk in death,
-Speak of it: stay, and speak! Stop it, Marcellus.
-
-MARCELLUS
-Shall I strike at it with my partisan?
-
-HORATIO
-Do, if it will not stand.
-
-BERNARDO
-‘Tis here!
-
-HORATIO
-‘Tis here!
-
-MARCELLUS
-‘Tis gone!
-
-Exit Ghost
-
-We do it wrong, being so majestical,
-To offer it the show of violence;
-For it is, as the air, invulnerable,
-And our vain blows malicious mockery.
-
-BERNARDO
-It was about to speak, when the cock crew.
-
-HORATIO
-And then it started like a guilty thing
-Upon a fearful summons. I have heard,
-The cock, that is the trumpet to the morn,
-Doth with his lofty and shrill-sounding throat
-Awake the god of day; and, at his warning,
-Whether in sea or fire, in earth or air,
-The extravagant and erring spirit hies
-To his confine: and of the truth herein
-This present object made probation.
-
-MARCELLUS
-It faded on the crowing of the cock.
-Some say that ever ‘gainst that season comes
-Wherein our Saviour’s birth is celebrated,
-The bird of dawning singeth all night long:
-And then, they say, no spirit dares stir abroad;
-The nights are wholesome; then no planets strike,
-No fairy takes, nor witch hath power to charm,
-So hallow’d and so gracious is the time.
-
-HORATIO
-So have I heard and do in part believe it.
-But, look, the morn, in russet mantle clad,
-Walks o’er the dew of yon high eastward hill:
-Break we our watch up; and by my advice,
-Let us impart what we have seen to-night
-Unto young Hamlet; for, upon my life,
-This spirit, dumb to us, will speak to him.
-Do you consent we shall acquaint him with it,
-As needful in our loves, fitting our duty?
-
-MARCELLUS
-Let’s do’t, I pray; and I this morning know
-Where we shall find him most conveniently.
-
-Exeunt
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-`;
diff --git a/packages/@pufflig/ps-nodes/src/modifiers/split_text/split_text.test.ts b/packages/@pufflig/ps-nodes/src/modifiers/split_text/split_text.test.ts
deleted file mode 100644
index 0d2a9e5..0000000
--- a/packages/@pufflig/ps-nodes/src/modifiers/split_text/split_text.test.ts
+++ /dev/null
@@ -1,694 +0,0 @@
-import { Hamlet } from "./mock";
-import { splitText } from "./split_text";
-
-test("split_text.execute - splits a text according to the paragraph split strategy", async () => {
- expect(
- await splitText.execute?.({
- text: "Hello world",
- method: "paragraph",
- chunkSize: 5,
- })
- ).toMatchInlineSnapshot(`
- {
- "list": [
- "Hello",
- "world",
- ],
- }
- `);
-
- const split_c1200 = await splitText.execute?.({
- text: Hamlet,
- method: "paragraph",
- chunkSize: 1200,
- });
-
- expect(split_c1200.list.length).toEqual(9);
- expect(split_c1200).toMatchInlineSnapshot(`
- {
- "list": [
- "ACT 1, SCENE 1 Elsinore. A platform before the castle
-
- FRANCISCO at his post. Enter to him BERNARDO
-
- BERNARDO
- Who’s there?
-
- FRANCISCO
- Nay, answer me: stand, and unfold yourself.
-
- BERNARDO
- Long live the king!
-
- FRANCISCO
- Bernardo?
-
- BERNARDO
- He.
-
- FRANCISCO
- You come most carefully upon your hour.
-
- BERNARDO
- ‘Tis now struck twelve; get thee to bed, Francisco.
-
- FRANCISCO
- For this relief much thanks: ’tis bitter cold,
- And I am sick at heart.
-
- BERNARDO
- Have you had quiet guard?
-
- FRANCISCO
- Not a mouse stirring.
-
- BERNARDO
- Well, good night.
- If you do meet Horatio and Marcellus,
- The rivals of my watch, bid them make haste.
-
- FRANCISCO
- I think I hear them. Stand, ho! Who’s there?
-
- Enter HORATIO and MARCELLUS
-
- HORATIO
- Friends to this ground.
-
- MARCELLUS
- And liegemen to the Dane.
-
- FRANCISCO
- Give you good night.
-
- MARCELLUS
- O, farewell, honest soldier:
- Who hath relieved you?
-
- FRANCISCO
- Bernardo has my place.
- Give you good night.
-
- Exit
-
- MARCELLUS
- Holla! Bernardo!
-
- BERNARDO
- Say,
- What, is Horatio there?
-
- HORATIO
- A piece of him.
-
- BERNARDO
- Welcome, Horatio: welcome, good Marcellus.
-
- MARCELLUS
- What, has this thing appear’d again to-night?",
- "BERNARDO
- I have seen nothing.
-
- MARCELLUS
- Horatio says ’tis but our fantasy,
- And will not let belief take hold of him
- Touching this dreaded sight, twice seen of us:
- Therefore I have entreated him along
- With us to watch the minutes of this night;
- That if again this apparition come,
- He may approve our eyes and speak to it.
-
- HORATIO
- Tush, tush, ’twill not appear.
-
- BERNARDO
- Sit down awhile;
- And let us once again assail your ears,
- That are so fortified against our story
- What we have two nights seen.
-
- HORATIO
- Well, sit we down,
- And let us hear Bernardo speak of this.
-
- BERNARDO
- Last night of all,
- When yond same star that’s westward from the pole
- Had made his course to illume that part of heaven
- Where now it burns, Marcellus and myself,
- The bell then beating one,–
-
- Enter Ghost
-
- MARCELLUS
- Peace, break thee off; look, where it comes again!
-
- BERNARDO
-
- In the same figure, like the king that’s dead.
-
- MARCELLUS
- Thou art a scholar; speak to it, Horatio.
-
- BERNARDO
- Looks it not like the king? mark it, Horatio.
-
- HORATIO
- Most like: it harrows me with fear and wonder.
-
- BERNARDO
- It would be spoke to.
-
- MARCELLUS
- Question it, Horatio.",
- "HORATIO
- What art thou that usurp’st this time of night,
- Together with that fair and warlike form
- In which the majesty of buried Denmark
- Did sometimes march? by heaven I charge thee, speak!
-
- MARCELLUS
- It is offended.
-
- BERNARDO
- See, it stalks away!
-
- HORATIO
- Stay! speak, speak! I charge thee, speak!
-
- Exit Ghost
-
- MARCELLUS
- ‘Tis gone, and will not answer.
-
- BERNARDO
- How now, Horatio! you tremble and look pale:
- Is not this something more than fantasy?
- What think you on’t?
-
- HORATIO
- Before my God, I might not this believe
- Without the sensible and true avouch
- Of mine own eyes.
-
- MARCELLUS
- Is it not like the king?
-
- HORATIO
- As thou art to thyself:
- Such was the very armour he had on
- When he the ambitious Norway combated;
- So frown’d he once, when, in an angry parle,
- He smote the sledded Polacks on the ice.
- ‘Tis strange.
-
- MARCELLUS
- Thus twice before, and jump at this dead hour,
- With martial stalk hath he gone by our watch.
-
- HORATIO
- In what particular thought to work I know not;
- But in the gross and scope of my opinion,
- This bodes some strange eruption to our state.",
- "MARCELLUS
- Good now, sit down, and tell me, he that knows,
- Why this same strict and most observant watch
- So nightly toils the subject of the land,
- And why such daily cast of brazen cannon,
- And foreign mart for implements of war;
- Why such impress of shipwrights, whose sore task
- Does not divide the Sunday from the week;
- What might be toward, that this sweaty haste
- Doth make the night joint-labourer with the day:
- Who is’t that can inform me?",
- "HORATIO
- That can I;
- At least, the whisper goes so . Our last king,
- Whose image even but now appear’d to us,
- Was, as you know, by Fortinbras of Norway,
- Thereto prick’d on by a most emulate pride,
- Dared to the combat; in which our valiant Hamlet–
- For so this side of our known world esteem’d him–
- Did slay this Fortinbras; who by a seal’d compact,
- Well ratified by law and heraldry,
- Did forfeit, with his life, all those his lands
- Which he stood seized of, to the conqueror:
- Against the which, a moiety competent
- Was gaged by our king; which had return’d
- To the inheritance of Fortinbras,
- Had he been vanquisher; as, by the same covenant,
- And carriage of the article design’d,
- His fell to Hamlet .",
- "Now, sir, young Fortinbras,
- Of unimproved mettle hot and full,
- Hath in the skirts of Norway here and there
- Shark’d up a list of lawless resolutes,
- For food and diet, to some enterprise
- That hath a stomach in’t; which is no other–
- As it doth well appear unto our state–
- But to recover of us, by strong hand
- And terms compulsatory, those foresaid lands
- So by his father lost: and this, I take it,
- Is the main motive of our preparations,
- The source of this our watch and the chief head
- Of this post-haste and romage in the land .",
- "BERNARDO
- I think it be no other but e’en so:
- Well may it sort that this portentous figure
- Comes armed through our watch; so like the king
- That was and is the question of these wars.
-
- HORATIO
- A mote it is to trouble the mind’s eye.
- In the most high and palmy state of Rome,
- A little ere the mightiest Julius fell,
- The graves stood tenantless and the sheeted dead
- Did squeak and gibber in the Roman streets:
- As stars with trains of fire and dews of blood,
- Disasters in the sun; and the moist star
- Upon whose influence Neptune’s empire stands
- Was sick almost to doomsday with eclipse:
- And even the like precurse of fierce events,
- As harbingers preceding still the fates
- And prologue to the omen coming on,
- Have heaven and earth together demonstrated
- Unto our climatures and countrymen.–
- But soft, behold! lo, where it comes again!
-
- Re-enter Ghost
-
- I’ll cross it, though it blast me. Stay, illusion!
- If thou hast any sound, or use of voice,
- Speak to me:
- If there be any good thing to be done,
- That may to thee do ease and grace to me,
- Speak to me:
- Cock crows",
- "If thou art privy to thy country’s fate,
- Which, happily, foreknowing may avoid, O, speak!
- Or if thou hast uphoarded in thy life
- Extorted treasure in the womb of earth,
- For which, they say, you spirits oft walk in death,
- Speak of it: stay, and speak! Stop it, Marcellus.
-
- MARCELLUS
- Shall I strike at it with my partisan?
-
- HORATIO
- Do, if it will not stand.
-
- BERNARDO
- ‘Tis here!
-
- HORATIO
- ‘Tis here!
-
- MARCELLUS
- ‘Tis gone!
-
- Exit Ghost
-
- We do it wrong, being so majestical,
- To offer it the show of violence;
- For it is, as the air, invulnerable,
- And our vain blows malicious mockery.
-
- BERNARDO
- It was about to speak, when the cock crew.
-
- HORATIO
- And then it started like a guilty thing
- Upon a fearful summons. I have heard,
- The cock, that is the trumpet to the morn,
- Doth with his lofty and shrill-sounding throat
- Awake the god of day; and, at his warning,
- Whether in sea or fire, in earth or air,
- The extravagant and erring spirit hies
- To his confine: and of the truth herein
- This present object made probation.",
- "MARCELLUS
- It faded on the crowing of the cock.
- Some say that ever ‘gainst that season comes
- Wherein our Saviour’s birth is celebrated,
- The bird of dawning singeth all night long:
- And then, they say, no spirit dares stir abroad;
- The nights are wholesome; then no planets strike,
- No fairy takes, nor witch hath power to charm,
- So hallow’d and so gracious is the time.
-
- HORATIO
- So have I heard and do in part believe it.
- But, look, the morn, in russet mantle clad,
- Walks o’er the dew of yon high eastward hill:
- Break we our watch up; and by my advice,
- Let us impart what we have seen to-night
- Unto young Hamlet; for, upon my life,
- This spirit, dumb to us, will speak to him.
- Do you consent we shall acquaint him with it,
- As needful in our loves, fitting our duty?
-
- MARCELLUS
- Let’s do’t, I pray; and I this morning know
- Where we shall find him most conveniently.
-
- Exeunt
-
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~",
- ],
- }
- `);
-
- const split_c500 = await splitText.execute?.({
- text: Hamlet,
- method: "paragraph",
- chunkSize: 500,
- });
- expect(split_c500).toMatchInlineSnapshot(`
- {
- "list": [
- "ACT 1, SCENE 1 Elsinore. A platform before the castle
-
- FRANCISCO at his post. Enter to him BERNARDO
-
- BERNARDO
- Who’s there?
-
- FRANCISCO
- Nay, answer me: stand, and unfold yourself.
-
- BERNARDO
- Long live the king!
-
- FRANCISCO
- Bernardo?
-
- BERNARDO
- He.
-
- FRANCISCO
- You come most carefully upon your hour.
-
- BERNARDO
- ‘Tis now struck twelve; get thee to bed, Francisco.
-
- FRANCISCO
- For this relief much thanks: ’tis bitter cold,
- And I am sick at heart.
-
- BERNARDO
- Have you had quiet guard?",
- "FRANCISCO
- Not a mouse stirring.
-
- BERNARDO
- Well, good night.
- If you do meet Horatio and Marcellus,
- The rivals of my watch, bid them make haste.
-
- FRANCISCO
- I think I hear them. Stand, ho! Who’s there?
-
- Enter HORATIO and MARCELLUS
-
- HORATIO
- Friends to this ground.
-
- MARCELLUS
- And liegemen to the Dane.
-
- FRANCISCO
- Give you good night.
-
- MARCELLUS
- O, farewell, honest soldier:
- Who hath relieved you?
-
- FRANCISCO
- Bernardo has my place.
- Give you good night.
-
- Exit",
- "MARCELLUS
- Holla! Bernardo!
-
- BERNARDO
- Say,
- What, is Horatio there?
-
- HORATIO
- A piece of him.
-
- BERNARDO
- Welcome, Horatio: welcome, good Marcellus.
-
- MARCELLUS
- What, has this thing appear’d again to-night?
-
- BERNARDO
- I have seen nothing.",
- "MARCELLUS
- Horatio says ’tis but our fantasy,
- And will not let belief take hold of him
- Touching this dreaded sight, twice seen of us:
- Therefore I have entreated him along
- With us to watch the minutes of this night;
- That if again this apparition come,
- He may approve our eyes and speak to it.
-
- HORATIO
- Tush, tush, ’twill not appear.
-
- BERNARDO
- Sit down awhile;
- And let us once again assail your ears,
- That are so fortified against our story
- What we have two nights seen.",
- "HORATIO
- Well, sit we down,
- And let us hear Bernardo speak of this.
-
- BERNARDO
- Last night of all,
- When yond same star that’s westward from the pole
- Had made his course to illume that part of heaven
- Where now it burns, Marcellus and myself,
- The bell then beating one,–
-
- Enter Ghost
-
- MARCELLUS
- Peace, break thee off; look, where it comes again!
-
- BERNARDO
-
- In the same figure, like the king that’s dead.
-
- MARCELLUS
- Thou art a scholar; speak to it, Horatio.",
- "BERNARDO
- Looks it not like the king? mark it, Horatio.
-
- HORATIO
- Most like: it harrows me with fear and wonder.
-
- BERNARDO
- It would be spoke to.
-
- MARCELLUS
- Question it, Horatio.
-
- HORATIO
- What art thou that usurp’st this time of night,
- Together with that fair and warlike form
- In which the majesty of buried Denmark
- Did sometimes march? by heaven I charge thee, speak!
-
- MARCELLUS
- It is offended.
-
- BERNARDO
- See, it stalks away!
-
- HORATIO
- Stay! speak, speak! I charge thee, speak!",
- "Exit Ghost
-
- MARCELLUS
- ‘Tis gone, and will not answer.
-
- BERNARDO
- How now, Horatio! you tremble and look pale:
- Is not this something more than fantasy?
- What think you on’t?
-
- HORATIO
- Before my God, I might not this believe
- Without the sensible and true avouch
- Of mine own eyes.
-
- MARCELLUS
- Is it not like the king?",
- "HORATIO
- As thou art to thyself:
- Such was the very armour he had on
- When he the ambitious Norway combated;
- So frown’d he once, when, in an angry parle,
- He smote the sledded Polacks on the ice.
- ‘Tis strange.
-
- MARCELLUS
- Thus twice before, and jump at this dead hour,
- With martial stalk hath he gone by our watch.
-
- HORATIO
- In what particular thought to work I know not;
- But in the gross and scope of my opinion,
- This bodes some strange eruption to our state.",
- "MARCELLUS
- Good now, sit down, and tell me, he that knows,
- Why this same strict and most observant watch
- So nightly toils the subject of the land,
- And why such daily cast of brazen cannon,
- And foreign mart for implements of war;
- Why such impress of shipwrights, whose sore task
- Does not divide the Sunday from the week;
- What might be toward, that this sweaty haste
- Doth make the night joint-labourer with the day:
- Who is’t that can inform me?",
- "HORATIO
- That can I;
- At least, the whisper goes so .",
- "Our last king,
- Whose image even but now appear’d to us,
- Was, as you know, by Fortinbras of Norway,
- Thereto prick’d on by a most emulate pride,
- Dared to the combat; in which our valiant Hamlet–
- For so this side of our known world esteem’d him–
- Did slay this Fortinbras; who by a seal’d compact,
- Well ratified by law and heraldry,
- Did forfeit, with his life, all those his lands
- Which he stood seized of, to the conqueror:
- Against the which, a moiety competent
- Was gaged by our king; which had",
- "return’d
- To the inheritance of Fortinbras,
- Had he been vanquisher; as, by the same covenant,
- And carriage of the article design’d,
- His fell to Hamlet",
- ".",
- "Now, sir, young Fortinbras,
- Of unimproved mettle hot and full,
- Hath in the skirts of Norway here and there
- Shark’d up a list of lawless resolutes,
- For food and diet, to some enterprise
- That hath a stomach in’t; which is no other–
- As it doth well appear unto our state–
- But to recover of us, by strong hand
- And terms compulsatory, those foresaid lands
- So by his father lost: and this, I take it,
- Is the main motive of our preparations,
- The source of this our watch and the chief head
- Of this",
- "post-haste and romage in the land",
- "BERNARDO
- I think it be no other but e’en so:
- Well may it sort that this portentous figure
- Comes armed through our watch; so like the king
- That was and is the question of these wars.",
- "HORATIO
- A mote it is to trouble the mind’s eye",
- "In the most high and palmy state of Rome,
- A little ere the mightiest Julius fell,
- The graves stood tenantless and the sheeted dead
- Did squeak and gibber in the Roman streets:
- As stars with trains of fire and dews of blood,
- Disasters in the sun; and the moist star
- Upon whose influence Neptune’s empire stands
- Was sick almost to doomsday with eclipse:
- And even the like precurse of fierce events,
- As harbingers preceding still the fates
- And prologue to the omen coming on,
- Have heaven and earth",
- "together demonstrated
- Unto our climatures and countrymen",
- ". –
- But soft, behold! lo, where it comes again!",
- "Re-enter Ghost
-
- I’ll cross it, though it blast me. Stay, illusion!
- If thou hast any sound, or use of voice,
- Speak to me:
- If there be any good thing to be done,
- That may to thee do ease and grace to me,
- Speak to me:
- Cock crows",
- "If thou art privy to thy country’s fate,
- Which, happily, foreknowing may avoid, O, speak!
- Or if thou hast uphoarded in thy life
- Extorted treasure in the womb of earth,
- For which, they say, you spirits oft walk in death,
- Speak of it: stay, and speak! Stop it, Marcellus.
-
- MARCELLUS
- Shall I strike at it with my partisan?
-
- HORATIO
- Do, if it will not stand.
-
- BERNARDO
- ‘Tis here!
-
- HORATIO
- ‘Tis here!
-
- MARCELLUS
- ‘Tis gone!
-
- Exit Ghost",
- "We do it wrong, being so majestical,
- To offer it the show of violence;
- For it is, as the air, invulnerable,
- And our vain blows malicious mockery.
-
- BERNARDO
- It was about to speak, when the cock crew.",
- "HORATIO
- And then it started like a guilty thing
- Upon a fearful summons. I have heard,
- The cock, that is the trumpet to the morn,
- Doth with his lofty and shrill-sounding throat
- Awake the god of day; and, at his warning,
- Whether in sea or fire, in earth or air,
- The extravagant and erring spirit hies
- To his confine: and of the truth herein
- This present object made probation.",
- "MARCELLUS
- It faded on the crowing of the cock.
- Some say that ever ‘gainst that season comes
- Wherein our Saviour’s birth is celebrated,
- The bird of dawning singeth all night long:
- And then, they say, no spirit dares stir abroad;
- The nights are wholesome; then no planets strike,
- No fairy takes, nor witch hath power to charm,
- So hallow’d and so gracious is the time.",
- "HORATIO
- So have I heard and do in part believe it.
- But, look, the morn, in russet mantle clad,
- Walks o’er the dew of yon high eastward hill:
- Break we our watch up; and by my advice,
- Let us impart what we have seen to-night
- Unto young Hamlet; for, upon my life,
- This spirit, dumb to us, will speak to him.
- Do you consent we shall acquaint him with it,
- As needful in our loves, fitting our duty?
-
- MARCELLUS
- Let’s do’t, I pray; and I this morning know
- Where we shall find him most conveniently.",
- "Exeunt
-
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~",
- ],
- }
- `);
-});
diff --git a/packages/@pufflig/ps-nodes/src/modifiers/split_text/split_text.ts b/packages/@pufflig/ps-nodes/src/modifiers/split_text/split_text.ts
deleted file mode 100644
index 760ef3b..0000000
--- a/packages/@pufflig/ps-nodes/src/modifiers/split_text/split_text.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-import { nodeTypes, nodes } from "@pufflig/ps-nodes-config";
-import { Node } from "@pufflig/ps-types";
-import { split } from "./strategies/strategies";
-
-interface SplitTextInput {
- text: string;
- method: "paragraph";
- chunkSize: number;
-}
-
-export const splitText: Node = {
- ...nodes[nodeTypes.splitTextNodeType],
- execute: async (input: SplitTextInput) => {
- const { text, method, chunkSize } = input;
-
- if (!text) {
- return { list: [] };
- }
-
- const list = split[method](text, chunkSize);
-
- return {
- list: list,
- };
- },
-};
diff --git a/packages/@pufflig/ps-nodes/src/modifiers/split_text/strategies/paragraph/splitText.ts b/packages/@pufflig/ps-nodes/src/modifiers/split_text/strategies/paragraph/splitText.ts
deleted file mode 100644
index 6c7960b..0000000
--- a/packages/@pufflig/ps-nodes/src/modifiers/split_text/strategies/paragraph/splitText.ts
+++ /dev/null
@@ -1,99 +0,0 @@
-const filterEmptySections = (section: string) => section;
-
-const joinSmallChunks = (chunks: string[], CHUNK_LENGTH = 1500) => {
- const joinedChunks: string[] = [];
- let currentChunk = "";
- chunks.forEach((chunk) => {
- if ((currentChunk + chunk).length < CHUNK_LENGTH) {
- currentChunk += " " + chunk;
- } else {
- joinedChunks.push(currentChunk);
- currentChunk = chunk;
- }
- });
- return [...joinedChunks, currentChunk];
-};
-
-const splitBySections =
- (CHUNK_LENGTH = 1500) =>
- (text: string) => {
- if (text.length < CHUNK_LENGTH) return [text];
- const sections = text.split(/(\n\s*\n)/);
- return joinSmallChunks(sections, CHUNK_LENGTH);
- };
-
-const splitByParagraph =
- (CHUNK_LENGTH = 1500) =>
- (text: string) => {
- if (text.length < CHUNK_LENGTH) return [text];
- const paragraphs = text.split(/\.\n/);
- return joinSmallChunks(paragraphs, CHUNK_LENGTH);
- };
-
-const splitByEnumeration =
- (CHUNK_LENGTH = 1500) =>
- (text: string) => {
- if (text.length < CHUNK_LENGTH) return [text];
- const enumerationSteps = text.split(/(\n[0-9].)/);
- return joinSmallChunks(enumerationSteps, CHUNK_LENGTH);
- };
-
-const splitBySentence =
- (CHUNK_LENGTH = 1500) =>
- (text: string) => {
- if (text.length < CHUNK_LENGTH) return [text];
- const sentences = text.split(/(\.)/);
- return joinSmallChunks(sentences, CHUNK_LENGTH);
- };
-
-const catchAllSplit =
- (CHUNK_LENGTH = 1500) =>
- (text: string) => {
- if (text.length < CHUNK_LENGTH) return [text];
- const sentences = text.split(/ /);
- return joinSmallChunks(sentences, CHUNK_LENGTH);
- };
-
-/**
- * remove duplicate sections - some parts of the input text might be repeated
- * we want to avoid presenting the same information twice to the language model
- * @param split
- * @returns
- */
-const deduplicateInput = (split: string[]) => {
- const duplicateIndexes: number[] = [];
-
- split
- .map((value) => value.toLowerCase().replace(/ |\n|\.|-|,/g, ""))
- .forEach((values, index, self) => {
- if (self.indexOf(values) !== index) {
- duplicateIndexes.push(index);
- }
- });
-
- return split.filter((_, index) => !duplicateIndexes.includes(index));
-};
-
-/**
- * Split text into chunks of CHUNK_LENGTH_LIMIT characters trying to preserve in order:
- * - sections
- * - paragraphs
- * - sentences
- * - words
- */
-export const splitText = (text: string, CHUNK_LENGTH_LIMIT = 1500) => {
- const split = splitBySections(CHUNK_LENGTH_LIMIT)(text)
- .map(splitByParagraph(CHUNK_LENGTH_LIMIT))
- .flat()
- .map(splitByEnumeration(CHUNK_LENGTH_LIMIT))
- .flat()
- .map(splitBySentence(CHUNK_LENGTH_LIMIT))
- .flat()
- .map(catchAllSplit(CHUNK_LENGTH_LIMIT))
- .flat()
- .map((chunk) => chunk.trim())
- .filter(filterEmptySections);
-
- const dedup = deduplicateInput(split);
- return dedup;
-};
diff --git a/packages/@pufflig/ps-nodes/src/modifiers/split_text/strategies/strategies.ts b/packages/@pufflig/ps-nodes/src/modifiers/split_text/strategies/strategies.ts
deleted file mode 100644
index f8b12f1..0000000
--- a/packages/@pufflig/ps-nodes/src/modifiers/split_text/strategies/strategies.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import { splitText } from "./paragraph/splitText";
-
-export const split = {
- paragraph: splitText,
-};
diff --git a/packages/@pufflig/ps-nodes/src/modifiers/template/template_chat.test.ts b/packages/@pufflig/ps-nodes/src/modifiers/template/template_chat.test.ts
deleted file mode 100644
index fafa129..0000000
--- a/packages/@pufflig/ps-nodes/src/modifiers/template/template_chat.test.ts
+++ /dev/null
@@ -1,298 +0,0 @@
-import { mapInput } from "./template_chat";
-
-test("mapInput - several variables with two of the same variable", async () => {
- const variables = await mapInput({
- chat: {
- messages: [
- {
- id: "id",
- role: "user",
- content: "hello {{name}}",
- createdAt: "date",
- provider: "openAi",
- },
- {
- id: "id",
- role: "user",
- content: "summarize this text: {{text}}",
- createdAt: "date",
- provider: "openAi",
- },
- {
- id: "id",
- role: "user",
- content: "and then tell me the tone of this text: {{text}}",
- createdAt: "date",
- provider: "openAi",
- },
- ],
- },
- variables: [],
- });
- expect(variables).toMatchInlineSnapshot(`
- {
- "chat": {
- "messages": [
- {
- "content": "hello {{name}}",
- "createdAt": "date",
- "id": "id",
- "provider": "openAi",
- "role": "user",
- },
- {
- "content": "summarize this text: {{text}}",
- "createdAt": "date",
- "id": "id",
- "provider": "openAi",
- "role": "user",
- },
- {
- "content": "and then tell me the tone of this text: {{text}}",
- "createdAt": "date",
- "id": "id",
- "provider": "openAi",
- "role": "user",
- },
- ],
- },
- "variables": [
- {
- "defaultValue": "",
- "description": "",
- "id": "name",
- "name": "name",
- "type": "text",
- },
- {
- "defaultValue": "",
- "description": "",
- "id": "text",
- "name": "text",
- "type": "text",
- },
- ],
- }
- `);
-});
-
-test("mapInput - if you pass a template and a variable, take value of the variable", async () => {
- const variables = await mapInput(
- {
- chat: {
- messages: [
- {
- id: "id",
- role: "user",
- content: "summarize this text: {{longText}}",
- createdAt: "date",
- provider: "openAi",
- },
- ],
- },
- variables: [
- {
- id: "longText",
- name: "longText",
- type: "text",
- defaultValue: "some long text",
- description: "",
- },
- ],
- },
- {}
- );
- expect(variables).toMatchInlineSnapshot(`
- {
- "chat": {
- "messages": [
- {
- "content": "summarize this text: {{longText}}",
- "createdAt": "date",
- "id": "id",
- "provider": "openAi",
- "role": "user",
- },
- ],
- },
- "variables": [
- {
- "defaultValue": "some long text",
- "description": "",
- "id": "longText",
- "name": "longText",
- "type": "text",
- },
- ],
- }
- `);
-});
-
-test("mapInput - removes non existing variables", async () => {
- const variables = await mapInput({
- chat: {
- messages: [
- {
- id: "id",
- role: "user",
- content: "summarize this text: {{longText}}",
- createdAt: "date",
- provider: "openAi",
- },
- ],
- },
- variables: [
- {
- id: "otherVariable",
- name: "otherVariable",
- type: "text",
- defaultValue: "",
- description: "",
- },
- ],
- });
- expect(variables).toMatchInlineSnapshot(`
- {
- "chat": {
- "messages": [
- {
- "content": "summarize this text: {{longText}}",
- "createdAt": "date",
- "id": "id",
- "provider": "openAi",
- "role": "user",
- },
- ],
- },
- "variables": [
- {
- "defaultValue": "",
- "description": "",
- "id": "longText",
- "name": "longText",
- "type": "text",
- },
- ],
- }
- `);
-});
-
-test("mapInput - keep default values from the previous state", async () => {
- const variables = await mapInput(
- {
- chat: {
- messages: [
- {
- id: "id",
- role: "user",
- content: "summarize this text: {{longText}}",
- createdAt: "date",
- provider: "openAi",
- },
- ],
- },
- variables: [],
- },
- {
- prevInput: {
- variables: [
- {
- id: "longText",
- name: "longText",
- type: "text",
- defaultValue: "some long text",
- description: "",
- },
- ],
- },
- }
- );
- expect(variables).toMatchInlineSnapshot(`
- {
- "chat": {
- "messages": [
- {
- "content": "summarize this text: {{longText}}",
- "createdAt": "date",
- "id": "id",
- "provider": "openAi",
- "role": "user",
- },
- ],
- },
- "variables": [
- {
- "defaultValue": "some long text",
- "description": "",
- "id": "longText",
- "name": "longText",
- "type": "text",
- },
- ],
- }
- `);
-});
-
-test("mapInput - override values from the previous state with the new value", async () => {
- const variables = await mapInput(
- {
- chat: {
- messages: [
- {
- id: "id",
- role: "user",
- content: "summarize this text: {{longText}}",
- createdAt: "date",
- provider: "openAi",
- },
- ],
- },
- variables: [
- {
- id: "longText",
- name: "longText",
- type: "text",
- defaultValue: "new long text",
- description: "",
- },
- ],
- },
- {
- prevInput: {
- variables: [
- {
- id: "longText",
- name: "longText",
- type: "text",
- defaultValue: "old long text",
- description: "",
- },
- ],
- },
- }
- );
- expect(variables).toMatchInlineSnapshot(`
- {
- "chat": {
- "messages": [
- {
- "content": "summarize this text: {{longText}}",
- "createdAt": "date",
- "id": "id",
- "provider": "openAi",
- "role": "user",
- },
- ],
- },
- "variables": [
- {
- "defaultValue": "new long text",
- "description": "",
- "id": "longText",
- "name": "longText",
- "type": "text",
- },
- ],
- }
- `);
-});
diff --git a/packages/@pufflig/ps-nodes/src/modifiers/template/template_chat.ts b/packages/@pufflig/ps-nodes/src/modifiers/template/template_chat.ts
deleted file mode 100644
index 8b0accd..0000000
--- a/packages/@pufflig/ps-nodes/src/modifiers/template/template_chat.ts
+++ /dev/null
@@ -1,96 +0,0 @@
-import { nodeTypes, nodes } from "@pufflig/ps-nodes-config";
-import { Chat, MapInput, Node, ObjectDefinition, Param } from "@pufflig/ps-types";
-import _ from "lodash";
-import Mustache from "mustache";
-import { extractVariables } from "../../utils/extractVariables";
-import { objectDefinitionToMap } from "../../utils/objectDefinitionToMap";
-
-export interface TemplateChatInput {
- chat: Chat;
- variables: ObjectDefinition;
-}
-
-export interface templateChatOutput {
- chat: Chat;
-}
-
-export const execute = async (input: TemplateChatInput) => {
- const { chat, variables } = input;
- const variablesObject = objectDefinitionToMap(variables);
-
- const renderedMessages = chat.messages.map((message) => {
- const renderedTemplate = Mustache.render(message.content, variablesObject);
- return {
- ...message,
- content: renderedTemplate,
- };
- });
-
- return {
- chat: {
- messages: renderedMessages,
- },
- };
-};
-
-/**
- * Parse the input and extract variables from the template.
- * If no template is provided, the input is returned as is.
- * @param input
- * @param prev
- * @returns
- */
-export const mapInput: MapInput = async (input, options = {}) => {
- const { chat, variables } = input;
- const { prevInput } = options;
-
- if (chat === undefined) {
- return input;
- }
- const extractedVariableArrays = chat.messages.map((message) => {
- var messageVars = extractVariables(message.content);
- return messageVars;
- });
-
- const extractedVariables = _.flatten(extractedVariableArrays);
-
- const uniqueVariables = extractedVariables.reduce((uniqueArr: (Param | null)[], currentVariable: Param | null) => {
- const existingVariable = uniqueArr.find((variable) => variable?.id === currentVariable?.id);
- if (!existingVariable) {
- uniqueArr.push(currentVariable);
- }
- return uniqueArr;
- }, []);
-
- if (uniqueVariables) {
- // extracted variables that already existed in the previous input are assigned the previous value
- const variablesObject = uniqueVariables.map((variable) => {
- const prevVariable = (prevInput?.variables || []).find((v) => v.id === variable?.id);
- if (prevVariable) {
- return {
- ...variable,
- defaultValue: prevVariable.defaultValue,
- };
- }
- return variable;
- });
-
- const newVariables = _.unionBy(_.intersectionBy(variables, variablesObject, "id"), variablesObject as any, "id");
-
- return {
- ...input,
- variables: newVariables,
- };
- }
-
- return {
- ...input,
- variables,
- };
-};
-
-export const templateChat: Node = {
- ...nodes[nodeTypes.templateChatNodeType],
- execute,
- mapInput,
-};
diff --git a/packages/@pufflig/ps-nodes/src/modifiers/template/template_text.test.ts b/packages/@pufflig/ps-nodes/src/modifiers/template/template_text.test.ts
deleted file mode 100644
index 2a58eca..0000000
--- a/packages/@pufflig/ps-nodes/src/modifiers/template/template_text.test.ts
+++ /dev/null
@@ -1,163 +0,0 @@
-import { mapInput } from "./template_text";
-
-test("mapInput - no variables", async () => {
- const variables = await mapInput({
- template: `summarize {{longText}}`,
- variables: [],
- });
- expect(variables).toMatchInlineSnapshot(`
- {
- "template": "summarize {{longText}}",
- "variables": [
- {
- "defaultValue": "",
- "description": "",
- "id": "longText",
- "name": "longText",
- "type": "text",
- },
- ],
- }
- `);
-});
-
-test("mapInput - if you pass a template and a variable, take value of the variable", async () => {
- const variables = await mapInput(
- {
- template: `summarize {{longText}}`,
- variables: [
- {
- id: "longText",
- name: "longText",
- type: "text",
- defaultValue: "some long text",
- description: "",
- },
- ],
- },
- {}
- );
- expect(variables).toMatchInlineSnapshot(`
- {
- "template": "summarize {{longText}}",
- "variables": [
- {
- "defaultValue": "some long text",
- "description": "",
- "id": "longText",
- "name": "longText",
- "type": "text",
- },
- ],
- }
- `);
-});
-
-test("mapInput - removes non existing variables", async () => {
- const variables = await mapInput({
- template: `summarize {{longText}}`,
- variables: [
- {
- id: "otherVariable",
- name: "otherVariable",
- type: "text",
- defaultValue: "",
- description: "",
- },
- ],
- });
- expect(variables).toMatchInlineSnapshot(`
- {
- "template": "summarize {{longText}}",
- "variables": [
- {
- "defaultValue": "",
- "description": "",
- "id": "longText",
- "name": "longText",
- "type": "text",
- },
- ],
- }
- `);
-});
-
-test("mapInput - keep default values from the previous state", async () => {
- const variables = await mapInput(
- {
- template: `summarize {{longText}}`,
- variables: [],
- },
- {
- prevInput: {
- variables: [
- {
- id: "longText",
- name: "longText",
- type: "text",
- defaultValue: "some long text",
- description: "",
- },
- ],
- },
- }
- );
- expect(variables).toMatchInlineSnapshot(`
- {
- "template": "summarize {{longText}}",
- "variables": [
- {
- "defaultValue": "some long text",
- "description": "",
- "id": "longText",
- "name": "longText",
- "type": "text",
- },
- ],
- }
- `);
-});
-
-test("mapInput - override values from the previous state with the new value", async () => {
- const variables = await mapInput(
- {
- template: `summarize {{longText}}`,
- variables: [
- {
- id: "longText",
- name: "longText",
- type: "text",
- defaultValue: "new long text",
- description: "",
- },
- ],
- },
- {
- prevInput: {
- variables: [
- {
- id: "longText",
- name: "longText",
- type: "text",
- defaultValue: "old long text",
- description: "",
- },
- ],
- },
- }
- );
- expect(variables).toMatchInlineSnapshot(`
- {
- "template": "summarize {{longText}}",
- "variables": [
- {
- "defaultValue": "new long text",
- "description": "",
- "id": "longText",
- "name": "longText",
- "type": "text",
- },
- ],
- }
- `);
-});
diff --git a/packages/@pufflig/ps-nodes/src/modifiers/template/template_text.ts b/packages/@pufflig/ps-nodes/src/modifiers/template/template_text.ts
deleted file mode 100644
index 6dfcee8..0000000
--- a/packages/@pufflig/ps-nodes/src/modifiers/template/template_text.ts
+++ /dev/null
@@ -1,74 +0,0 @@
-import { nodeTypes, nodes } from "@pufflig/ps-nodes-config";
-import { MapInput, Node, ObjectDefinition } from "@pufflig/ps-types";
-import _ from "lodash";
-import Mustache from "mustache";
-import { objectDefinitionToMap } from "../../utils/objectDefinitionToMap";
-import { extractVariables } from "../../utils/extractVariables";
-
-export interface TemplateTextInput {
- template: string;
- variables: ObjectDefinition;
-}
-
-export interface TemplateTextOutput {
- text: string;
-}
-
-export const execute = async (input: TemplateTextInput) => {
- const { template, variables } = input;
- const variablesObject = objectDefinitionToMap(variables);
- const renderedTemplate = Mustache.render(template, variablesObject);
- return {
- text: renderedTemplate,
- };
-};
-
-/**
- * Parse the input and extract variables from the template.
- * If no template is provided, the input is returned as is.
- * @param input
- * @param prev
- * @returns
- */
-export const mapInput: MapInput = async (input, options = {}) => {
- const { template, variables } = input;
- const { prevInput } = options;
-
- if (template === undefined) {
- return input;
- }
-
- const extractedVariables = extractVariables(template);
-
- if (extractedVariables) {
- // extracted variables that already existed in the previous input are assigned the previous value
- const variablesObject = extractedVariables.map((variable) => {
- const prevVariable = (prevInput?.variables || []).find((v) => v.id === variable.id);
- if (prevVariable) {
- return {
- ...variable,
- defaultValue: prevVariable.defaultValue,
- };
- }
- return variable;
- });
-
- const newVariables = _.unionBy(_.intersectionBy(variables, variablesObject, "id"), variablesObject as any, "id");
-
- return {
- ...input,
- variables: newVariables,
- };
- }
-
- return {
- ...input,
- variables,
- };
-};
-
-export const templateText: Node = {
- ...nodes[nodeTypes.templateTextNodeType],
- execute,
- mapInput,
-};
diff --git a/packages/@pufflig/ps-nodes/src/types.ts b/packages/@pufflig/ps-nodes/src/types.ts
deleted file mode 100644
index 5bd210a..0000000
--- a/packages/@pufflig/ps-nodes/src/types.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-import { NodeType } from "@pufflig/ps-nodes-config";
-import { Node } from "@pufflig/ps-types";
-
-export type Nodes = Record;
diff --git a/packages/@pufflig/ps-nodes/src/utils/countTokens.ts b/packages/@pufflig/ps-nodes/src/utils/countTokens.ts
deleted file mode 100644
index 9fb5249..0000000
--- a/packages/@pufflig/ps-nodes/src/utils/countTokens.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { TiktokenModel, encoding_for_model } from "@dqbd/tiktoken";
-
-export const countTokens = (code: string, model: TiktokenModel = "gpt-4") => {
- const encoding = encoding_for_model(model);
- const tokens = encoding.encode(code);
- encoding.free();
- return tokens.length;
-};
diff --git a/packages/@pufflig/ps-nodes/src/utils/extractVariables.test.ts b/packages/@pufflig/ps-nodes/src/utils/extractVariables.test.ts
deleted file mode 100644
index b9efb95..0000000
--- a/packages/@pufflig/ps-nodes/src/utils/extractVariables.test.ts
+++ /dev/null
@@ -1,50 +0,0 @@
-import { extractVariables } from "./extractVariables";
-
-test("extractVariables - extract loops and first level variables", () => {
- const variables = extractVariables(`
- Hello world
-
- {{name}} {{surname}}
-
- {{#names}}
- * {{.}}
- {{/names}}`);
-
- expect(variables).toMatchInlineSnapshot(`
- [
- {
- "defaultValue": "",
- "description": "",
- "id": "name",
- "name": "name",
- "type": "text",
- },
- {
- "defaultValue": "",
- "description": "",
- "id": "surname",
- "name": "surname",
- "type": "text",
- },
- {
- "defaultValue": [],
- "description": "",
- "id": "names",
- "name": "names",
- "type": "list",
- },
- ]
- `);
-});
-
-test("extractVariables - returns null if the template is malformed", () => {
- const stub = jest.fn();
- const variables = extractVariables(
- `
- Hello world
- {{name}`,
- stub
- );
- expect(stub).toHaveBeenCalled();
- expect(variables).toMatchInlineSnapshot(`null`);
-});
diff --git a/packages/@pufflig/ps-nodes/src/utils/extractVariables.ts b/packages/@pufflig/ps-nodes/src/utils/extractVariables.ts
deleted file mode 100644
index 790a13b..0000000
--- a/packages/@pufflig/ps-nodes/src/utils/extractVariables.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-import { NumberParam, Param, TextParam } from "@pufflig/ps-types";
-import Mustache from "mustache";
-
-/**
- * extract the top level variables from a handlebar template.
- * @param template
- * @returns
- */
-export const extractVariables = (template: string, onError: (err: any) => void = () => {}): Param[] | null => {
- try {
- return Mustache.parse(template)
- .filter((v) => v[0] === "name" || v[0] === "#")
- .map((v) => {
- return {
- defaultValue: v[0] === "#" ? [] : "",
- description: "",
- id: v[1],
- name: v[1],
- type: v[0] === "#" ? "list" : "text",
- } as NumberParam | TextParam;
- });
- } catch (err: any) {
- onError(err);
- return null;
- }
-};
diff --git a/packages/@pufflig/ps-nodes/src/utils/getPromptStudioKey.ts b/packages/@pufflig/ps-nodes/src/utils/getPromptStudioKey.ts
deleted file mode 100644
index d5634d6..0000000
--- a/packages/@pufflig/ps-nodes/src/utils/getPromptStudioKey.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-const promptStudioKey = "ps/api_key";
-
-export const getPromptStudioKey = (globals: Record) => {
- return globals[promptStudioKey];
-};
diff --git a/packages/@pufflig/ps-nodes/src/utils/objectDefinitionToMap.ts b/packages/@pufflig/ps-nodes/src/utils/objectDefinitionToMap.ts
deleted file mode 100644
index eb57178..0000000
--- a/packages/@pufflig/ps-nodes/src/utils/objectDefinitionToMap.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import { ObjectDefinition } from "@pufflig/ps-types";
-
-export const objectDefinitionToMap = (definition: ObjectDefinition) => {
- const map = {} as Record;
- definition.forEach((item) => {
- map[item.id] = item.defaultValue;
- });
- return map;
-};
diff --git a/packages/@pufflig/ps-nodes/tsconfig.json b/packages/@pufflig/ps-nodes/tsconfig.json
deleted file mode 100644
index ad4c213..0000000
--- a/packages/@pufflig/ps-nodes/tsconfig.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "compilerOptions": {
- "target": "ES2020",
- "useDefineForClassFields": true,
- "lib": ["ES2020"],
- "module": "commonjs",
- "skipLibCheck": true,
-
- /* Bundler mode */
- "esModuleInterop": true,
- "allowImportingTsExtensions": true,
- "resolveJsonModule": true,
- "isolatedModules": true,
- "noEmit": true,
-
- /* Linting */
- "strict": true,
- "noUnusedLocals": true,
- "noUnusedParameters": true,
- "noFallthroughCasesInSwitch": true
- },
- "include": ["src"]
-}
diff --git a/packages/@pufflig/ps-nodes/vite.config.ts b/packages/@pufflig/ps-nodes/vite.config.ts
deleted file mode 100644
index ca36eaa..0000000
--- a/packages/@pufflig/ps-nodes/vite.config.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-import path from "node:path";
-import { defineConfig } from "vite";
-import dts from "vite-plugin-dts";
-import wasm from "vite-plugin-wasm";
-
-export default defineConfig({
- plugins: [
- wasm(),
- dts({
- insertTypesEntry: true,
- }),
- ],
- build: {
- lib: {
- entry: path.resolve(__dirname, "src/index.ts"),
- name: "@pufflig/ps-nodes",
- formats: ["es", "umd"],
- fileName: (format) => `ps-nodes.${format}.js`,
- },
- rollupOptions: {
- external: ["axios", "lodash", "uuid", "openai", "@dqbd/tiktoken"],
- },
- },
-});
diff --git a/packages/@pufflig/ps-sdk/README.md b/packages/@pufflig/ps-sdk/README.md
index da0ccfa..22931d7 100644
--- a/packages/@pufflig/ps-sdk/README.md
+++ b/packages/@pufflig/ps-sdk/README.md
@@ -2,4 +2,4 @@
[![Version](https://img.shields.io/npm/v/@pufflig/ps-sdk?style=flat&colorA=000000&colorB=000000)](https://www.npmjs.com/package/@pufflig/ps-sdk)
-Prompt Studio Node SDK to simplify calling workflows and completions.
+Prompt Studio Node SDK to simplify calling your recipes.
diff --git a/packages/@pufflig/ps-sdk/package.json b/packages/@pufflig/ps-sdk/package.json
index 9826afc..870ffa9 100644
--- a/packages/@pufflig/ps-sdk/package.json
+++ b/packages/@pufflig/ps-sdk/package.json
@@ -11,18 +11,23 @@
"scripts": {
"build": "tsc && vite build",
"prepublishOnly": "npm run build",
- "storybook": "storybook dev -p 6006",
- "build-storybook": "storybook build",
"test": "jest"
},
"devDependencies": {
- "typescript": "^5.2.2",
- "vite": "^4.4.9",
- "vite-plugin-dts": "^3.5.3"
+ "@types/jest": "^29.5.12",
+ "jest": "^29.7.0",
+ "typescript": "^5.3.3",
+ "vite": "^5.1.4",
+ "vite-plugin-dts": "^3.7.3"
},
"dependencies": {
- "@pufflig/ps-models": "^0.25.1",
- "axios": "^1.5.0"
+ "@pufflig/ps-models": "*",
+ "axios": "^1.6.7",
+ "pino": "^8.17.2",
+ "unws": "^0.2.4"
},
- "gitHead": "534ff07d186327e38133c0c14a5badd04ced0a9c"
+ "gitHead": "534ff07d186327e38133c0c14a5badd04ced0a9c",
+ "volta": {
+ "node": "18.19.1"
+ }
}
diff --git a/packages/@pufflig/ps-sdk/src/constants.ts b/packages/@pufflig/ps-sdk/src/constants.ts
index 7c7a8c5..37bf066 100644
--- a/packages/@pufflig/ps-sdk/src/constants.ts
+++ b/packages/@pufflig/ps-sdk/src/constants.ts
@@ -1,5 +1,9 @@
-export const SERVICE_URL = "https://api.prompt.studio";
+export const DEFAULT_SERVICE_URL = "https://api.prompt.studio";
export const getServiceUrl = () => {
- return `${process.env.PROMPT_STUDIO_SERVICE_BASE_URL || SERVICE_URL}`;
+ return `${process.env.PROMPT_STUDIO_API_SERVICE_URL || DEFAULT_SERVICE_URL}`;
+};
+
+export const getApiServiceWebSocketUrl = () => {
+ return `${process.env.PROMPT_STUDIO_API_SERVICE_WEBSOCKET_URL || ""}`;
};
diff --git a/packages/@pufflig/ps-sdk/src/createCompletion.test.ts b/packages/@pufflig/ps-sdk/src/createCompletion.test.ts
index 2c8d46e..8ded0a3 100644
--- a/packages/@pufflig/ps-sdk/src/createCompletion.test.ts
+++ b/packages/@pufflig/ps-sdk/src/createCompletion.test.ts
@@ -39,7 +39,6 @@ describe("createCompletion", () => {
modelId: "model_123",
prompt: "Hello",
parameters: { name: "John" },
- config: { temperature: 0.5 },
options: { track: true },
},
{
diff --git a/packages/@pufflig/ps-sdk/src/createCompletion.ts b/packages/@pufflig/ps-sdk/src/createCompletion.ts
index 605a9e5..c658daa 100644
--- a/packages/@pufflig/ps-sdk/src/createCompletion.ts
+++ b/packages/@pufflig/ps-sdk/src/createCompletion.ts
@@ -1,39 +1,9 @@
import axios from "axios";
import { getServiceUrl } from "./constants";
-
-interface CreateCompletionInput {
- apiKey: string;
- modelId: string;
- prompt: string;
- parameters?: Record;
- config?: Record;
- options?: {
- track?: boolean;
- cache?: boolean;
- };
-}
-
-interface Completion {
- datapoint?: {
- model_output: string;
- model_input: string;
- model_id: string;
- };
-}
-
-interface CreateCompletionPayload {
- modelId: string;
- prompt: string;
- parameters?: Record;
- config?: Record;
- options?: {
- track?: boolean;
- cache?: boolean;
- };
-}
+import { CreateCompletionInput, Completion, CreateCompletionPayload } from "./types";
export async function createCompletion(input: CreateCompletionInput): Promise {
- const { modelId, prompt, apiKey, config, options, parameters = {} } = input;
+ const { modelId, prompt, apiKey, tags, options, parameters = {} } = input;
const payload: CreateCompletionPayload = {
modelId,
@@ -48,8 +18,8 @@ export async function createCompletion(input: CreateCompletionInput): Promise {
- const mockAxios = axios as jest.Mocked;
-
- beforeEach(() => {
- jest.clearAllMocks();
- });
-
- it("should return completions for each chunk of the document", async () => {
- const input = {
- apiKey: "myApiKey",
- modelId: "myModelId",
- prompt: "myPrompt",
- document: "myDocument",
- parameters: { myParam: "myValue" },
- config: { myConfig: "myValue" },
- options: { track: true, cache: false },
- };
-
- const mockResponse = {
- data: {
- completions: [
- {
- datapoints: {
- model_output: "output1",
- model_input: "input1",
- model_id: "id1",
- },
- },
- {
- datapoints: {
- model_output: "output2",
- model_input: "input2",
- model_id: "id2",
- },
- },
- ],
- },
- };
-
- mockAxios.post.mockResolvedValueOnce(mockResponse);
-
- const result = await mapCompletion(input);
-
- expect(mockAxios.post).toHaveBeenCalledTimes(1);
- expect(mockAxios.post).toHaveBeenCalledWith(
- "https://api.prompt.studio/api/v1/completion/mapped",
- {
- prompt: "myPrompt",
- document: "myDocument",
- modelId: "myModelId",
- parameters: { myParam: "myValue" },
- config: { myConfig: "myValue" },
- options: { track: true, cache: false },
- },
- {
- headers: {
- Authorization: "Bearer myApiKey",
- "Content-Type": "application/json",
- },
- }
- );
-
- expect(result).toEqual({
- completions: [
- {
- datapoints: {
- model_output: "output1",
- model_input: "input1",
- model_id: "id1",
- },
- },
- {
- datapoints: {
- model_output: "output2",
- model_input: "input2",
- model_id: "id2",
- },
- },
- ],
- });
- });
-});
diff --git a/packages/@pufflig/ps-sdk/src/mapCompletion.ts b/packages/@pufflig/ps-sdk/src/mapCompletion.ts
deleted file mode 100644
index 40e95d5..0000000
--- a/packages/@pufflig/ps-sdk/src/mapCompletion.ts
+++ /dev/null
@@ -1,74 +0,0 @@
-import axios from "axios";
-import { getServiceUrl } from "./constants";
-
-interface MapCompletionInput {
- apiKey: string;
- modelId: string;
- prompt: string;
- document: string;
- parameters?: Record;
- config?: Record;
- options?: {
- track?: boolean;
- cache?: boolean;
- };
-}
-
-interface Completion {
- datapoints?: {
- model_output: string;
- model_input: string;
- model_id: string;
- };
-}
-
-interface MapCompletionPayload {
- modelId: string;
- prompt: string;
- document: string;
- parameters?: Record;
- config?: Record;
- options?: {
- track?: boolean;
- cache?: boolean;
- };
-}
-
-/**
- * Map a prompt over a document of variable length. Return a completion for each chunk.
- *
- * @param input.document - The document to be processed
- * @param input.parameters - Parameters to be passed to the model
- * @param input.modelId - Name of the LLM to be used
- *
- * @returns The completion
- */
-export async function mapCompletion(input: MapCompletionInput): Promise<{ completions: Completion[] }> {
- const { modelId, prompt, document, apiKey, config, options, parameters = {} } = input;
-
- const payload: MapCompletionPayload = {
- modelId,
- prompt,
- document,
- parameters,
- };
-
- const requestConfig = {
- headers: {
- "Content-Type": "application/json",
- Authorization: `Bearer ${apiKey}`,
- },
- };
-
- if (config) {
- payload.config = config;
- }
-
- if (options) {
- payload.options = options;
- }
-
- const response = await axios.post(`${getServiceUrl()}/api/v1/completion/mapped`, payload, requestConfig);
-
- return response.data;
-}
diff --git a/packages/@pufflig/ps-sdk/src/refineCompletion.test.ts b/packages/@pufflig/ps-sdk/src/refineCompletion.test.ts
deleted file mode 100644
index 4c84f33..0000000
--- a/packages/@pufflig/ps-sdk/src/refineCompletion.test.ts
+++ /dev/null
@@ -1,72 +0,0 @@
-import { refineCompletion } from "./refineCompletion";
-import axios from "axios";
-
-jest.mock("axios");
-
-describe("refineCompletion", () => {
- const mockAxios = axios as jest.Mocked;
-
- afterEach(() => {
- jest.resetAllMocks();
- });
-
- it("should return the completion object", async () => {
- const mockCompletion = {
- datapoint: {
- model_output: "output",
- model_input: "input",
- model_id: "id",
- },
- };
- mockAxios.post.mockResolvedValue({ data: mockCompletion });
-
- const input = {
- apiKey: "api-key",
- modelId: "model-id",
- prompt: "prompt",
- format: "format",
- document: "document",
- parameters: { param1: "value1", param2: "value2" },
- config: { config1: "value1", config2: "value2" },
- options: { track: true, cache: false },
- };
-
- const result = await refineCompletion(input);
-
- expect(mockAxios.post).toHaveBeenCalledTimes(1);
- expect(mockAxios.post).toHaveBeenCalledWith(
- "https://api.prompt.studio/api/v1/completion/looped",
- {
- prompt: "prompt",
- format: "format",
- document: "document",
- modelId: "model-id",
- parameters: { param1: "value1", param2: "value2" },
- config: { config1: "value1", config2: "value2" },
- options: { track: true, cache: false },
- },
- {
- headers: {
- Authorization: "Bearer api-key",
- "Content-Type": "application/json",
- },
- }
- );
- expect(result).toEqual(mockCompletion);
- });
-
- it("should throw an error if the API call fails", async () => {
- const mockError = new Error("API call failed");
- mockAxios.post.mockRejectedValueOnce(mockError);
-
- const input = {
- apiKey: "api-key",
- modelId: "model-id",
- prompt: "prompt",
- format: "format",
- document: "document",
- };
-
- await expect(refineCompletion(input)).rejects.toThrow(mockError);
- });
-});
diff --git a/packages/@pufflig/ps-sdk/src/refineCompletion.ts b/packages/@pufflig/ps-sdk/src/refineCompletion.ts
deleted file mode 100644
index b90670d..0000000
--- a/packages/@pufflig/ps-sdk/src/refineCompletion.ts
+++ /dev/null
@@ -1,79 +0,0 @@
-import axios from "axios";
-import { getServiceUrl } from "./constants";
-
-interface RefineCompletionInput {
- apiKey: string;
- modelId: string;
- prompt: string;
- format: string;
- document: string;
- parameters?: Record;
- config?: Record;
- options?: {
- track?: boolean;
- cache?: boolean;
- };
-}
-
-interface Completion {
- result: string;
- datapoints?: {
- model_output: string;
- model_input: string;
- model_id: string;
- }[];
-}
-
-interface RefineCompletionPayload {
- modelId: string;
- prompt: string;
- format: string;
- document: string;
- parameters?: Record;
- config?: Record;
- options?: {
- track?: boolean;
- cache?: boolean;
- };
-}
-
-/**
- * Loop a prompt over documents of variable size, refining the outcome for each chunk.
- *
- * @param input.format - The value to be refined, e.g. a json or csv table
- * @param input.document - The document to be processed
- * @param input.parameters - Parameters to be passed to the model
- * @param input.modelId - Name of the LLM to be used
- *
- * @returns The completion
- */
-export async function refineCompletion(input: RefineCompletionInput): Promise {
- const { modelId, prompt, format, document, apiKey, config, options, parameters = {} } = input;
-
- const payload: RefineCompletionPayload = {
- modelId,
- prompt,
- format,
- document,
- parameters,
- };
-
- const requestConfig = {
- headers: {
- "Content-Type": "application/json",
- Authorization: `Bearer ${apiKey}`,
- },
- };
-
- if (config) {
- payload.config = config;
- }
-
- if (options) {
- payload.options = options;
- }
-
- const response = await axios.post(`${getServiceUrl()}/api/v1/completion/looped`, payload, requestConfig);
-
- return response.data;
-}
diff --git a/packages/@pufflig/ps-sdk/src/runDeployment.ts b/packages/@pufflig/ps-sdk/src/runDeployment.ts
new file mode 100644
index 0000000..227e24e
--- /dev/null
+++ b/packages/@pufflig/ps-sdk/src/runDeployment.ts
@@ -0,0 +1,26 @@
+import axios from "axios";
+import { getServiceUrl } from "./constants";
+import { Completion, RunDeploymentInput, RunDeploymentPayload } from "./types";
+
+export async function runDeployment(input: RunDeploymentInput): Promise {
+ const { apiKey, deploymentId, deploymentInput } = input;
+
+ const payload: RunDeploymentPayload = {
+ input: deploymentInput,
+ };
+
+ const requestConfig = {
+ headers: {
+ "Content-Type": "application/json",
+ Authorization: `Bearer ${apiKey}`,
+ },
+ };
+
+ const response = await axios.post(
+ `${getServiceUrl()}/api/v1/instructions/${deploymentId}/run`,
+ payload,
+ requestConfig
+ );
+
+ return response.data;
+}
diff --git a/packages/@pufflig/ps-sdk/src/streamCompletion.ts b/packages/@pufflig/ps-sdk/src/streamCompletion.ts
new file mode 100644
index 0000000..56d4a61
--- /dev/null
+++ b/packages/@pufflig/ps-sdk/src/streamCompletion.ts
@@ -0,0 +1,100 @@
+import pino from "pino";
+import { WebSocket } from "unws";
+import { getApiServiceWebSocketUrl } from "./constants";
+import { CreateCompletionInput, CreateCompletionPayload } from "./types";
+
+const logger = pino();
+
+interface MessageData {
+ datapoint: any;
+ request: { is_cached: boolean };
+}
+
+enum MessageType {
+ chunk = "chunk",
+ end = "end",
+}
+
+class StreamedCompletionResponseMessage {
+ type: MessageType;
+ data: MessageData | undefined;
+
+ constructor(type: MessageType, data?: MessageData) {
+ this.type = type;
+ this.data = data;
+ }
+}
+enum StreamedCompletionRequestType {
+ CompletionRequestStart = "CompletionRequestStart",
+}
+
+class StreamedCompletionRequestMessage {
+ type: StreamedCompletionRequestType;
+ token: string;
+ payload: CreateCompletionPayload;
+
+ constructor(type: StreamedCompletionRequestType, token: string, payload: CreateCompletionPayload) {
+ this.type = type;
+ this.token = token;
+ this.payload = payload;
+ }
+}
+
+export async function* streamCompletion(input: CreateCompletionInput) {
+ //TODO: get logger level from env variables
+ logger.level = "info";
+
+ const { modelId, prompt, apiKey, tags, options, parameters = {} } = input;
+ const completionChunks: any[] = [];
+ let streamEnded = false;
+
+ const payload: CreateCompletionPayload = {
+ modelId,
+ prompt,
+ parameters,
+ };
+
+ if (tags) {
+ payload.tags = tags;
+ }
+
+ if (options) {
+ payload.options = options;
+ }
+
+ let websocket: any;
+ try {
+ websocket = new WebSocket(`${getApiServiceWebSocketUrl()}/api/v1/completion/streamed`);
+ } catch (error) {
+ logger.error("Couldn't create websocket", error);
+ return;
+ }
+
+ websocket.onopen = () => {
+ const requestStartMessage = new StreamedCompletionRequestMessage(
+ StreamedCompletionRequestType.CompletionRequestStart,
+ apiKey,
+ payload
+ );
+ websocket.send(JSON.stringify(requestStartMessage));
+ };
+
+ websocket.onerror = (err: Error) => logger.error("SDK:CompletionStreamError", err.message);
+
+ websocket.onmessage = (event: any) => {
+ const message = JSON.parse(event.data) as StreamedCompletionResponseMessage;
+ if (message.type === MessageType.end) {
+ streamEnded = true;
+ } else {
+ completionChunks.push(message.data);
+ }
+ };
+
+ while (completionChunks.length > 0 || !streamEnded) {
+ if (completionChunks.length > 0) {
+ yield completionChunks.shift();
+ } else {
+ await new Promise((resolve) => setTimeout(resolve, 50)); // Wait for chunks to arrive
+ }
+ }
+}
diff --git a/packages/@pufflig/ps-sdk/src/types.ts b/packages/@pufflig/ps-sdk/src/types.ts
index 35005a9..eb698fb 100644
--- a/packages/@pufflig/ps-sdk/src/types.ts
+++ b/packages/@pufflig/ps-sdk/src/types.ts
@@ -1,5 +1,44 @@
+import { available_models } from "@pufflig/ps-models";
+
export interface Datapoint {
model_output: string;
model_input: string;
model_id: string;
}
+
+export interface Completion {
+ datapoint?: Datapoint;
+}
+
+export interface CreateCompletionInput {
+ apiKey: string;
+ modelId: (typeof available_models)[number];
+ prompt: string;
+ parameters?: Record;
+ tags?: string[];
+ options?: {
+ track?: boolean;
+ cache?: boolean;
+ };
+}
+
+export interface RunDeploymentInput {
+ apiKey: string;
+ deploymentId: string;
+ deploymentInput: any;
+}
+
+export interface RunDeploymentPayload {
+ input: any;
+}
+
+export interface CreateCompletionPayload {
+ modelId: (typeof available_models)[number];
+ prompt: string;
+ parameters?: Record;
+ tags?: string[];
+ options?: {
+ track?: boolean;
+ cache?: boolean;
+ };
+}
diff --git a/packages/@pufflig/ps-sdk/vite.config.ts b/packages/@pufflig/ps-sdk/vite.config.ts
index c62f90f..eb45c79 100644
--- a/packages/@pufflig/ps-sdk/vite.config.ts
+++ b/packages/@pufflig/ps-sdk/vite.config.ts
@@ -16,7 +16,7 @@ export default defineConfig({
fileName: (format) => `ps-sdk.${format}.js`,
},
rollupOptions: {
- external: ["axios"],
+ external: ["axios", "unws"],
},
},
});
diff --git a/packages/@pufflig/ps-types/LICENSE b/packages/@pufflig/ps-types/LICENSE
deleted file mode 100644
index 348250a..0000000
--- a/packages/@pufflig/ps-types/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2023 Pufflig AB
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/packages/@pufflig/ps-types/package.json b/packages/@pufflig/ps-types/package.json
deleted file mode 100644
index 460c0a4..0000000
--- a/packages/@pufflig/ps-types/package.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "@pufflig/ps-types",
- "version": "0.25.1",
- "description": "Typescript definitions for Prompt Studio",
- "main": "src/index.ts",
- "author": "Pufflig AB",
- "license": "MIT",
- "gitHead": "534ff07d186327e38133c0c14a5badd04ced0a9c"
-}
diff --git a/packages/@pufflig/ps-types/src/index.ts b/packages/@pufflig/ps-types/src/index.ts
deleted file mode 100644
index c3172dd..0000000
--- a/packages/@pufflig/ps-types/src/index.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-export * from "./types/nodes";
-export * from "./types/params";
-export * from "./types/chat";
diff --git a/packages/@pufflig/ps-types/src/types/chat.ts b/packages/@pufflig/ps-types/src/types/chat.ts
deleted file mode 100644
index 83b7524..0000000
--- a/packages/@pufflig/ps-types/src/types/chat.ts
+++ /dev/null
@@ -1,49 +0,0 @@
-import { ModelValue } from "./params";
-
-export type ChatMessageRole = "user" | "assistant" | "system" | "tool";
-
-export interface BaseMessage {
- name?: string;
- function_call?: {
- name: string;
- arguments: string;
- };
- tool_call_id?: string;
- content: string;
- role: ChatMessageRole;
-}
-
-export interface ChatMessage extends BaseMessage {
- id: string;
- createdAt: string;
- tool?: ToolCall;
- isDisabled?: boolean;
- versions?: ChatMessage[];
- model?: ModelValue;
- provider: string;
- user?: {
- name: string;
- picture: string;
- };
-}
-
-export interface ToolDefinition {
- description: string;
- name: string;
- parameters: Record;
-}
-
-export interface ToolCall {
- index: number;
- id?: string;
- function?: {
- arguments?: string;
- name?: string;
- };
- type?: "function";
-}
-
-export interface Chat {
- messages: ChatMessage[];
- tools?: ToolDefinition[];
-}
diff --git a/packages/@pufflig/ps-types/src/types/nodes.ts b/packages/@pufflig/ps-types/src/types/nodes.ts
deleted file mode 100644
index 2c846dc..0000000
--- a/packages/@pufflig/ps-types/src/types/nodes.ts
+++ /dev/null
@@ -1,49 +0,0 @@
-import { Param } from "./params";
-
-export interface Exec {
- id: string;
- name?: string;
-}
-
-export interface NextNode {
- execSource: string;
- inputs: I;
-}
-
-export interface NodeConfig {
- name: string;
- description?: string;
- status?: "stable" | "experimental" | "deprecated";
- tags?: string[];
- customSchema?: "input" | "output" | "both";
- globals?: string[];
- execution?: {
- inputs: Exec[];
- outputs: Exec[];
- };
- inputs: Param[];
- outputs: Param[];
-}
-
-export interface NodeOptions {
- prevInput?: Partial;
- globals?: Record;
-}
-
-export type Execute = (input: I, options?: NodeOptions) => Promise;
-export type MapInput = (input: I, options?: NodeOptions) => Promise | null>;
-export type GetTargets = (
- input: I,
- result?: O,
- options?: NodeOptions
-) => Promise>[]>;
-export type GetInputDefinition = (input: I, options?: NodeOptions) => Param[];
-
-export interface NodeActions {
- execute?: Execute;
- mapInput?: MapInput;
- getTargets?: GetTargets;
- getInputDefinition?: GetInputDefinition;
-}
-
-export type Node = NodeConfig & NodeActions;
diff --git a/packages/@pufflig/ps-types/src/types/params.ts b/packages/@pufflig/ps-types/src/types/params.ts
deleted file mode 100644
index d687a5d..0000000
--- a/packages/@pufflig/ps-types/src/types/params.ts
+++ /dev/null
@@ -1,122 +0,0 @@
-import { Chat, ChatMessage } from "./chat";
-
-export interface BaseParam {
- id: string;
- name: string;
- description: string;
-}
-
-export interface NumberParam extends BaseParam {
- type: "number";
- defaultValue: number;
- min?: number;
- max?: number;
- step?: number;
-}
-
-export interface TextParam extends BaseParam {
- type: "text";
- defaultValue: string;
- singleLine?: boolean;
-}
-
-export interface SelectionParam extends BaseParam {
- type: "selection";
- defaultValue: string;
- options: { id: string; name: string }[];
-}
-
-export interface APIDefinition {
- url: string;
- header: string;
- body: string;
- method: string;
- completionPath: string;
- promptPath: string;
-}
-
-export interface APIParam extends BaseParam {
- type: "api";
- defaultValue: APIDefinition | null;
-}
-
-export interface ModelConfig {
- modelId: string;
- description?: string;
- settings?: BaseParam[];
- streaming?: boolean;
- contextLength?: number;
- parameters: (NumberParam | TextParam)[];
-}
-
-export interface ModelValue {
- modelId: string;
- parameters: {
- [key: string]: number | string;
- };
-}
-
-export interface ModelDefinition {
- [key: string]: ModelConfig;
-}
-
-export interface ModelParam extends BaseParam {
- type: "model";
- defaultValue: ModelValue;
- definition: ModelDefinition;
-}
-
-export interface ChatParam extends BaseParam {
- type: "chat";
- defaultValue: Chat;
-}
-
-export interface MessageParam extends BaseParam {
- type: "message";
- defaultValue: ChatMessage | null;
-}
-
-export type ObjectDefinition = (NumberParam | TextParam)[];
-
-export interface ObjectParam extends BaseParam {
- type: "object";
- defaultValue: ObjectDefinition;
- editableSchema?: boolean;
-}
-
-export interface ListParam extends BaseParam {
- type: "list";
- files?: boolean;
- defaultValue: string[];
-}
-
-export interface VectorParam extends BaseParam {
- type: "vector";
- defaultValue: [];
-}
-
-export type ParamValue =
- | number
- | string
- | APIDefinition
- | ModelValue
- | Chat
- | ChatMessage
- | null
- | ObjectDefinition
- | Array
- | Array;
-
-export type Param =
- | NumberParam
- | TextParam
- | SelectionParam
- | APIParam
- | ModelParam
- | ChatParam
- | MessageParam
- | ObjectParam
- | ListParam
- | VectorParam;
-
-export type ParamValueMap = Record;
From 7cd4ace50eac03beeea8a1d1e5d3131d7bf5e2e5 Mon Sep 17 00:00:00 2001
From: Aurelien Franky
Date: Sun, 25 Feb 2024 22:45:47 +0100
Subject: [PATCH 2/9] organize sdk
---
.../ps-sdk/src/{ => completionAPI}/createCompletion.test.ts | 2 +-
.../ps-sdk/src/{ => completionAPI}/createCompletion.ts | 4 ++--
.../ps-sdk/src/{ => completionAPI}/streamCompletion.ts | 4 ++--
.../ps-sdk/src/{ => deploymentAPI}/runDeployment.ts | 4 ++--
packages/@pufflig/ps-sdk/src/index.ts | 6 +++---
5 files changed, 10 insertions(+), 10 deletions(-)
rename packages/@pufflig/ps-sdk/src/{ => completionAPI}/createCompletion.test.ts (95%)
rename packages/@pufflig/ps-sdk/src/{ => completionAPI}/createCompletion.ts (91%)
rename packages/@pufflig/ps-sdk/src/{ => completionAPI}/streamCompletion.ts (97%)
rename packages/@pufflig/ps-sdk/src/{ => deploymentAPI}/runDeployment.ts (90%)
diff --git a/packages/@pufflig/ps-sdk/src/createCompletion.test.ts b/packages/@pufflig/ps-sdk/src/completionAPI/createCompletion.test.ts
similarity index 95%
rename from packages/@pufflig/ps-sdk/src/createCompletion.test.ts
rename to packages/@pufflig/ps-sdk/src/completionAPI/createCompletion.test.ts
index 8ded0a3..4a0dc11 100644
--- a/packages/@pufflig/ps-sdk/src/createCompletion.test.ts
+++ b/packages/@pufflig/ps-sdk/src/completionAPI/createCompletion.test.ts
@@ -1,5 +1,5 @@
import axios from "axios";
-import { createCompletion } from "./createCompletion";
+import { createCompletion } from "../completionAPI/createCompletion";
jest.mock("axios");
diff --git a/packages/@pufflig/ps-sdk/src/createCompletion.ts b/packages/@pufflig/ps-sdk/src/completionAPI/createCompletion.ts
similarity index 91%
rename from packages/@pufflig/ps-sdk/src/createCompletion.ts
rename to packages/@pufflig/ps-sdk/src/completionAPI/createCompletion.ts
index c658daa..1c7b6b6 100644
--- a/packages/@pufflig/ps-sdk/src/createCompletion.ts
+++ b/packages/@pufflig/ps-sdk/src/completionAPI/createCompletion.ts
@@ -1,6 +1,6 @@
import axios from "axios";
-import { getServiceUrl } from "./constants";
-import { CreateCompletionInput, Completion, CreateCompletionPayload } from "./types";
+import { getServiceUrl } from "../constants";
+import { CreateCompletionInput, Completion, CreateCompletionPayload } from "../types";
export async function createCompletion(input: CreateCompletionInput): Promise {
const { modelId, prompt, apiKey, tags, options, parameters = {} } = input;
diff --git a/packages/@pufflig/ps-sdk/src/streamCompletion.ts b/packages/@pufflig/ps-sdk/src/completionAPI/streamCompletion.ts
similarity index 97%
rename from packages/@pufflig/ps-sdk/src/streamCompletion.ts
rename to packages/@pufflig/ps-sdk/src/completionAPI/streamCompletion.ts
index 56d4a61..9936091 100644
--- a/packages/@pufflig/ps-sdk/src/streamCompletion.ts
+++ b/packages/@pufflig/ps-sdk/src/completionAPI/streamCompletion.ts
@@ -1,7 +1,7 @@
import pino from "pino";
import { WebSocket } from "unws";
-import { getApiServiceWebSocketUrl } from "./constants";
-import { CreateCompletionInput, CreateCompletionPayload } from "./types";
+import { getApiServiceWebSocketUrl } from "../constants";
+import { CreateCompletionInput, CreateCompletionPayload } from "../types";
const logger = pino();
diff --git a/packages/@pufflig/ps-sdk/src/runDeployment.ts b/packages/@pufflig/ps-sdk/src/deploymentAPI/runDeployment.ts
similarity index 90%
rename from packages/@pufflig/ps-sdk/src/runDeployment.ts
rename to packages/@pufflig/ps-sdk/src/deploymentAPI/runDeployment.ts
index 227e24e..1ac65aa 100644
--- a/packages/@pufflig/ps-sdk/src/runDeployment.ts
+++ b/packages/@pufflig/ps-sdk/src/deploymentAPI/runDeployment.ts
@@ -1,6 +1,6 @@
import axios from "axios";
-import { getServiceUrl } from "./constants";
-import { Completion, RunDeploymentInput, RunDeploymentPayload } from "./types";
+import { getServiceUrl } from "../constants";
+import { Completion, RunDeploymentInput, RunDeploymentPayload } from "../types";
export async function runDeployment(input: RunDeploymentInput): Promise {
const { apiKey, deploymentId, deploymentInput } = input;
diff --git a/packages/@pufflig/ps-sdk/src/index.ts b/packages/@pufflig/ps-sdk/src/index.ts
index 550eb35..c39e40d 100644
--- a/packages/@pufflig/ps-sdk/src/index.ts
+++ b/packages/@pufflig/ps-sdk/src/index.ts
@@ -1,4 +1,4 @@
-export { createCompletion } from "./createCompletion";
-export { streamCompletion } from "./streamCompletion";
-export { runDeployment } from "./runDeployment";
+export { createCompletion } from "./completionAPI/createCompletion";
+export { streamCompletion } from "./completionAPI/streamCompletion";
+export { runDeployment } from "./deploymentAPI/runDeployment";
export { type Completion, type CreateCompletionInput } from "./types";
From aea7b59ff3cdc449277cfc51ab91524fe64ca408 Mon Sep 17 00:00:00 2001
From: Aurelien Franky
Date: Sun, 25 Feb 2024 22:48:20 +0100
Subject: [PATCH 3/9] add missing package
---
package-lock.json | 71 +++++++++++++++++++++++++++
packages/@pufflig/ps-sdk/package.json | 1 +
2 files changed, 72 insertions(+)
diff --git a/package-lock.json b/package-lock.json
index 6fe1d43..d0a984f 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -7126,6 +7126,18 @@
"node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
}
},
+ "node_modules/bs-logger": {
+ "version": "0.2.6",
+ "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz",
+ "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==",
+ "dev": true,
+ "dependencies": {
+ "fast-json-stable-stringify": "2.x"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
"node_modules/bser": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz",
@@ -13197,6 +13209,12 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/make-error": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
+ "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
+ "dev": true
+ },
"node_modules/make-fetch-happen": {
"version": "10.2.1",
"dev": true,
@@ -19350,6 +19368,58 @@
"url": "https://github.com/sponsors/wooorm"
}
},
+ "node_modules/ts-jest": {
+ "version": "29.1.2",
+ "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.2.tgz",
+ "integrity": "sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==",
+ "dev": true,
+ "dependencies": {
+ "bs-logger": "0.x",
+ "fast-json-stable-stringify": "2.x",
+ "jest-util": "^29.0.0",
+ "json5": "^2.2.3",
+ "lodash.memoize": "4.x",
+ "make-error": "1.x",
+ "semver": "^7.5.3",
+ "yargs-parser": "^21.0.1"
+ },
+ "bin": {
+ "ts-jest": "cli.js"
+ },
+ "engines": {
+ "node": "^16.10.0 || ^18.0.0 || >=20.0.0"
+ },
+ "peerDependencies": {
+ "@babel/core": ">=7.0.0-beta.0 <8",
+ "@jest/types": "^29.0.0",
+ "babel-jest": "^29.0.0",
+ "jest": "^29.0.0",
+ "typescript": ">=4.3 <6"
+ },
+ "peerDependenciesMeta": {
+ "@babel/core": {
+ "optional": true
+ },
+ "@jest/types": {
+ "optional": true
+ },
+ "babel-jest": {
+ "optional": true
+ },
+ "esbuild": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/ts-jest/node_modules/yargs-parser": {
+ "version": "21.1.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
+ "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ }
+ },
"node_modules/tsconfig-paths": {
"version": "4.2.0",
"dev": true,
@@ -21336,6 +21406,7 @@
"devDependencies": {
"@types/jest": "^29.5.12",
"jest": "^29.7.0",
+ "ts-jest": "^29.1.2",
"typescript": "^5.3.3",
"vite": "^5.1.4",
"vite-plugin-dts": "^3.7.3"
diff --git a/packages/@pufflig/ps-sdk/package.json b/packages/@pufflig/ps-sdk/package.json
index 870ffa9..820f137 100644
--- a/packages/@pufflig/ps-sdk/package.json
+++ b/packages/@pufflig/ps-sdk/package.json
@@ -16,6 +16,7 @@
"devDependencies": {
"@types/jest": "^29.5.12",
"jest": "^29.7.0",
+ "ts-jest": "^29.1.2",
"typescript": "^5.3.3",
"vite": "^5.1.4",
"vite-plugin-dts": "^3.7.3"
From 307b0163d361149a35519698ed27c1f68e3ac872 Mon Sep 17 00:00:00 2001
From: Aurelien Franky
Date: Sun, 25 Feb 2024 22:49:11 +0100
Subject: [PATCH 4/9] v1.0.0-alpha.0
---
lerna.json | 2 +-
package-lock.json | 6 +++---
packages/@pufflig/ps-models/package.json | 2 +-
packages/@pufflig/ps-sdk/package.json | 4 ++--
4 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/lerna.json b/lerna.json
index d8346ae..2bde849 100644
--- a/lerna.json
+++ b/lerna.json
@@ -1,4 +1,4 @@
{
"$schema": "node_modules/lerna/schemas/lerna-schema.json",
- "version": "0.25.1"
+ "version": "1.0.0-alpha.0"
}
diff --git a/package-lock.json b/package-lock.json
index d0a984f..ebafd22 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -21386,7 +21386,7 @@
}
},
"packages/@pufflig/ps-models": {
- "version": "0.25.1",
+ "version": "1.0.0-alpha.0",
"license": "MIT",
"devDependencies": {
"typescript": "^5.3.3",
@@ -21395,10 +21395,10 @@
}
},
"packages/@pufflig/ps-sdk": {
- "version": "0.25.1",
+ "version": "1.0.0-alpha.0",
"license": "MIT",
"dependencies": {
- "@pufflig/ps-models": "*",
+ "@pufflig/ps-models": "^1.0.0-alpha.0",
"axios": "^1.6.7",
"pino": "^8.17.2",
"unws": "^0.2.4"
diff --git a/packages/@pufflig/ps-models/package.json b/packages/@pufflig/ps-models/package.json
index 68ca052..e1cb467 100644
--- a/packages/@pufflig/ps-models/package.json
+++ b/packages/@pufflig/ps-models/package.json
@@ -1,7 +1,7 @@
{
"name": "@pufflig/ps-models",
"private": false,
- "version": "0.25.1",
+ "version": "1.0.0-alpha.0",
"description": "Configuration of models used in Prompt Studio",
"files": [
"dist"
diff --git a/packages/@pufflig/ps-sdk/package.json b/packages/@pufflig/ps-sdk/package.json
index 820f137..13c4f10 100644
--- a/packages/@pufflig/ps-sdk/package.json
+++ b/packages/@pufflig/ps-sdk/package.json
@@ -1,6 +1,6 @@
{
"name": "@pufflig/ps-sdk",
- "version": "0.25.1",
+ "version": "1.0.0-alpha.0",
"license": "MIT",
"main": "./dist/ps-sdk.umd.js",
"module": "./dist/ps-sdk.es.js",
@@ -22,7 +22,7 @@
"vite-plugin-dts": "^3.7.3"
},
"dependencies": {
- "@pufflig/ps-models": "*",
+ "@pufflig/ps-models": "^1.0.0-alpha.0",
"axios": "^1.6.7",
"pino": "^8.17.2",
"unws": "^0.2.4"
From 79175e42b8f7a682600c92720ec0ea68e369c79d Mon Sep 17 00:00:00 2001
From: Aurelien Franky
Date: Sun, 25 Feb 2024 23:02:24 +0100
Subject: [PATCH 5/9] update banner with new logo
---
assets/banner.png | Bin 8642 -> 16771 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
diff --git a/assets/banner.png b/assets/banner.png
index f6455e902a871294ee058bad18c7c1f240e9f6a8..65bcbb08bc565e4f2c6e9bb5f310098af7d711ad 100644
GIT binary patch
literal 16771
zcmeIZcT`i|(>8oS1XQXBC{;j3se02pQWX?Xst}5RRH>nNl_DUZA}YNq9YkuVO0@u?
z_kh$uC=n?ELg3rS-~BxQynlahS?ggfR#tM(*=O&WJu}zLTsvA%N0at6+i3`bXm8(A
zyAMGWSO_AAs42lO-?ykMz{e@~TMv*BbcPB3CxcSb&VwJxkoPrJpt4?$74U_^{^s4A
z5LA(H=J4T32)cRxw%SbtKeBa<_RAr|4AI~7%Ogb?b87W)MndOv!^fS1lI~K%RbhfZ
z9Jrd!CogN5KaWiKXd^!1k>+Eo5@h~0;<<*ZC|jR{$tl@i7@7#{2AqJ0wa>XaPyG*a
zZNHa9dDht$?)m@mI65vt^Yfml7Z%vcJjU*4%*bFP-RxQp6v@D(pkVKL-5cIjbHzeK8&R+B=c&R+pl3GK9MdFx)i%m;aRf->i{=gf)%;w-Q!pmvy
zPRhYythhoj59tvuR$NSMk_KDn@c6MKUqORRT-@|q4fgU!wW2OZr=Ty@nBP5X#xr1q
z5QgkYZu;YE>53%Bg9MGM{NX>Dn7x0pWn-4^vJVt7{~Y`_r+x|wYpLICaC2h@mXp^)
z>Di^USMcDnCPCdB^KA0SLXQe^j|RqN^81QT=4~o^?z?zyrEHb5gqp`}ZjF+8NpV?p
zkX80s@bnp@aL)z{f7K+!!-`Ms@%-F6W|HyzP*{WputFhe6_iuV%Z)FSfkM1wkkD0N
zp;lj?^Aw9VH}bDzd@tTJzcD2tu+n`S+)Dvpy!qS-rO6d2dpEP?Wr3oqIayc)>8U2_+Ye$0Q}0abc3Ud>OD!8@$)KVBxS8O<;vX_l*4vNyqIsn)L6<5%DIAOq
zIs%=8r;Ne!vfgq9t6Wvp6059qY(v*d9v#9@z5@CvNH>AzhT4-Uc#5w2Ci^l#1=o=9
ze9qqN=2Uu+_{&psW-`;L%p?PXaII-bNO`@TL8I=qCRgahZzCwn2l!287Y_NLc6lVi
z(7z3(7C;3*_s5{8zf3hM-W0_Q6`TalThB4_>TABG
zj7m?ze{UI}YYr5@8UHMbQw~zzIfaG7e#AsvymF=Y(zky35FNP?D9nioe%;Oy75`bU
zITF3j6(~&L?@!)q&l1jh@v=lhP{BX&=(lfVxA2sD3B>1qFBClsDH~#dMg^9KpdMyP
z*#I-s5x=+>LRx&Wtfb`@%`oxcqo3lz8!BSAKFhlJb~GYw;_%#1Rtzki%XjYtrQn=w
zH-#OyK5kYyE&kECS|v_PkC_^2QSx=Uepx
zE(9@GKAayhrFG_XqHs5pOvvAHHqJK`e4Fno>$i6cmXP=(KfAXDCWmV_v9S;|jD&-p
z04&0lP$AP4+(i{s!HL-#zHkMvIks7d9gdERDa~S3@i;OZF_X7{0ENZChM%NAJbXK~%|uE5exB)u6Yr(NVH+5
zoKZIYlqyxq)q&2YbS{V7CRaN(JKKM`%=I8mT^y+RKO4PHZl;af%)>Je(qS>E=ZzDBaD!(u?p`Y%&ylmtWC8IdD*2
zJorQ7%Sg1zCF`6`i!McJFnU4Ff15H7yQHg2r1oW(=_;P}5Q$J}=WtKA4Y`-oLC&F*
z#b}KV3yNpJ>*XVW#jeCRj2QSVPKLzdw<{BLfjbgF!Jby4gc2EzH{x$%8L*6OF~c|H_%zw&jmXBI6ar3`H}7JO1Xyn6)Y{H
zMKeB4e>8qDwwY;ax@kj@!8>5RR`CTXKQHL8-JFQbbaUwy9Cf+(&u%89n
z^AeDM-6bOj7vC}ztEGRg=vTx~;5L)5O1b*Ixo)D?v%{G#t)znoW$LTaqiTt4gWwAmoskxHyr!sxILP
z5VRcyCXtnmiMXg!EmKm(8qcXTK7vkoQB@lUE@ps>7u6q)yKEheCy$Sd4==?OHubqG
z*OkP%fcYuG^P^Q&RRx#7pQb=&W6=G*lH~vDU}*X!+Jq+O^aP2ct!)WRq<{@rh_b4g
zV0A`09OINpV5ft>zaUjPMxCoUgMf|~s=-}@APf&Y^Y`iL=>#;Lq3uSE&(il3P*%#{
zH;RdEm8Y5c5C;rSYO~A?jG&DlB|U(kBP}p!-}U|dasT7T1|_t#N#z-4Ev|RXlxBMS
z%pvGN6Yb1hg)2
z7nK5Fo&vDCUy2y@R*S76hhr99jLWN%JWuz?C#{MDG?%8fKk1*r(=7;A92bG=M|Zuh+o;
z*EHp
zGksL$KNvYgdoQ~7I9*|7ADf{ilXKeLdhQN6lvV$C2PbDVzueuJ%=A=Kt|bnqub{az
z9q8117_+C!GySB4cfWsM8@94%pS2Eu0i-kuyB_XnD`(P#gyZAwnm2qZ_2**(M4mR+
z(&y;cf!ixpUr7^BNT#wm@Vv
zcPHBeld^!v-1-DORTAwothgOmcJK44m#tqt7l^Q80@j>4Ehh3F*u^#2F4(Q<>Wd5t
zI}miSjS2%r39V2ZntJD{~Z6Ib4Q;@S{ke(a7+3qmLt1nJ`^-ahNd9L@n
zzbn(V8M`nvPVui{$@bB713ZY?OqA$(S;m^=b?+K$HeySGj=&E)7bRCM2=Xdn9*6)Q
zNN1I;9FDfHI%4m~Q!nVGABl6yh49|h34R4Z=kLI86A3)t`@SUjB2M@&FuK4@7BO}RN`c?E5{Kn7VoVF0^(yU&)-A=X&1
zXxB`ZU6tTJXLv7=s}S7Q&-PBWRM{&`G1pNrL<}_SUd)L012T<>SZn^z4{F>MIvE>;6zKZ^iS_M1~1?E!-CIz59Lm<Rv8=>Eba!42R(4B?$E;G7i0FS{Lkcm5QV
z^#klN48tz0K?2NMiigx?3o@86dI7b9ShF4?Wn6;zON0>Z(reyCG*azmHz
zDQlTEa2fzs>;e(+!wZzm3E0>fwYcSeSuP{UWEf0C4*uE5sMN&OgF56=WTor4G>pps
z4%6$F5j6JOD8xz{tj-?3(Z||v6$WD2*{Mv2N9&l#N^+UJu2_fh$+xD_{0Tu^IogdxxoC
zXJtmV8LgazC}BKh6?V8ZAa5($lvD5Y(&Uf~I&bh_`my?wCL4U^zp@#%U|L#CT1Mzb
z;nI&r2zs{kS4ChlG$qJE)`1aA7hQdQ%S$->$6k&HB)Nvc*B!BEL52k&E=XOzd@=p!
z^Hov{eZu>wvPiBepHSeWL%woA*MA!TD?FoO(64Z?H|RLGovh|v3RZ=5MFHD~b2fVu
zLFm&jkmg)k57?(g_8Z>m7G}+!f^`RqVi6!XnS2WO8fM5w&^!zVSlh8~(-$PHaM?)6
zk8z+0g%4BbJ9rG7HXIYG9t{Soz-cSI`w{=hc-LGQ07*hoN||Pk*2c7VF?;q@oy;Nx
zy@sP+j83}ZU`au0+JTC?d6WilF(c)ci6iCa>75$yie3ZX35RcY&Waza3t0QX_7&a1
zg@ti(F=F+X4FTTgv5>3n_Z)E_qKo73kHxrSw|nH!FW5k!Wb0*T3g4aYKtRo}~Il5zQ*x{7HqR)XI6wnV@(Z~5B-zJl9&e9yIl_-9QKyB1mr!q;j6IO
z42l4vStqWp{g=H#eSC~>T=w=yij69Ih8@)>K~+Mk9Hdj^^$CjduOn%ZC$C;Gt#=hWSF5-RmRoU%hl
zEvEu!4phmrgy13ijBgM|*1AU>?R<7)juj#&Xz6Jm+J+mP
z5<-HHk%Eb9$bdqO3^wO1bJ)Sz-mm1$arx%ujjxUd9JafA-}-08Mj91YFsr`XFt5Gh
zGG294kIFy?!GG+xr@OMfqRXCs!4h%9D~2wrC(e27ZQQ(Lb~GMKn&%(L_Dzs1Uu_z}
z9Y#afx91w%*0-F!5yA_>I@MmLJ2h%!GoiawVuk@i|?_dz)&@_~5?j>uSp%fqz|kd9Y9Ebz=s<
zg;sdfEE9H`0jTpnHmT86)$^p6viY453pCv;=V+^q4=J?c!3&%DhE)|-LKhwk(JWgR
z;Hu$ZyM=|FKXeuCRI2P!MJ}7@dScs>^BD^4(d-
z-gM_Qs?B41T6&2S|A}cuAZQH5gwbUk&rO(hS(QEd%&7B4h3O%PX%l9bS;GDaM=Aq{
zFyq;A9C~p0uF%-Dc&@{p1_}_BRS)3V;JNo5xv%x=28~474kl&PRS$c70-^*_qweGT
zL|af%t|Vg?4Cu)F+7=f%6jU@KB3ag(kHm_CL_Jf|cqbKie@CSxhV_iPeBJsHg)$z5
z);#B};7)}{r21G@9Kf8%SKlU2D>_%FtDRGhExY~C(l!B&`b>>Y?)+f~1vig4kua_pXP5jCQhVD`DV{FVb=fjf%dfdarkOYu8Hd!P(8DVAoN@74msuFd
zAprn+&oR>$CmfM<9lb!J=Zsf8qY7=ewznt0;S*Q_MXk#6LAolC`uuQ>4s+Mc<)i)!
zdX+ueR8?1&1BsO<>YLn1JY;?56~A@LW?CxclFk~A-k2EO$F_GHj;mw{Q);=4$qnx6@#Ev=sdzbs;B1)^A3M9<7$w%EClxN~29!QdH7KWz
zi0yZUl|5+rK*#gHxA#R;i+|U&yMNkiytny}xK-@q_Ou6y`j+AZednW+5klX@$jB}M
z8QOzIc4TU6ut-HMCdtRw^VE3wEUj{L#u`s971Xn}&sT_8Ck=4`gnd=Lu;G?
z$m!8o1zxW3-Q3OHgs9`8y~gA5!zr0e39hH_K$5mPGM#>ej%je(fjB0Qk2aYc=jL@&
zyE+zZExs@iol7b(tD|Kb6BW!ne+t27JwDW)NA}otzZ;8151*-UVcckUN~z%Xtd)8p
zUPk+qZL-n2BfVOVYxQx!!Ou7Itf>Kkaq~Y+v54^7NObkmP9q~nQnSU->{jCyLNp
z(HV?f+wI)($Ka}pDil7n)f+|K3Xc^wJjIBe=9_Ew+nCya(#%he05y?7G$5RbGeN7$NTSW;yqtqCalRo4RF7keEqrE8a3fe;#F7W{
zAkl02cmFnb9Qr+br@2UTtzXCfdDBVGq(-VyJ
zDVf1RyxuvJ^e;vSj2qzwo{xALKqc(k$}n(~j}vV1@RRdwHqa6q03x`HXL$Q
z{~grfdpOyN)LJ2`-HBr0)8xHK0rz3_WKgpRxh;S7Z%BdyftjA=ijtdKNYyhu*IlJ1
z`^NiEZpr%*4zgE$~wz0zSHjm+2T`n8zD<3m7iIHw6}
z4rE1>Wc4@ovQaTRVUf9)+X>^bSw&{Z!dgT}8h9#XPl^FDxKhBl7por;T&k_)N6UJL+*k7Svy^0)O
z5IOR^d_#a|V|>$oxZVEj06AQtq3lHY%Rg4Hb1zV#?b`2sa`x+#b{tglV=gexV#PJ`
zX2myU`CIHy-|(~XHq?7fsV&}4>P_E&?!sLa=K3)2@5bI-^Suw*
zgflk<4~zaNGz@2t#Kste=}=?Co>VNz-ZZ8_B%NMjqn+8OnJrblK6;jZsb&4Xp|!lS
z(jOBy<25tt9P7M6r{eQE4@Q3^-aNDXcH86rmSHl}A1OgrZr_djI)d+ut#?MUionAI
zB|_Z4_HRE409kI*VC;{VehkH?Uv~Oxh~-2v@6(_&0Ih2%vp$K5L2W#b>DLiR#wlJB
zBCo%BVWh?{FBEva2DJGNF(aY4&hpdsy}}hgY$q)qr)@n&9Xa03)yog`DSp~3ak?NT
z^{jHo_T0@C5?9F`sn2_F;TD_SNd%24JJsU9R(2
z6&6C0EO+JQ_8bY!>G}C1#?iQu>VWSbh$MtZPfCX33?cAVl9w}AZJkv6CKuYs_@HcF
zVa{Km>~_T-+8|0*e|~z8zGW&Sz7e!!-+&q!u=m=)s?A?P5?zXWSG}EFzg2>g8+XL%
z(SHW)p4AVZ!9?#hGIq*ue;HW~88K4!!cR!_9CI?&;{*2N;<;)v_wz#=&QscjpTbbv
z=GOl#|gz6(vTPEh_z!}+>!8GmFLM&KmuRVu}&GxpZA0^urk4cjaOk1p7W>QPzFZ8y7
z^Ukb!T#v6Gjorhyy)!SL=VBQxmENE-_X_d~aG7p&RGn|&YS|#wk26mAb)eV%tOLag
zCU<^h#5ZF{s%TN^#t;THlm+bPw(|?k+l&joBs<$(2`zZMy|Cfu8Mu3>En|Jlo}a#9
z^W}w18L9B+Q44+@eOd4R!LB-$zE2+HOP8xcVJbEAI=PWUm8Cs^amE947_nM4~j7l-Q
zkE|okxwPUFxpxmfn~#EYI%#iMZhAHMVq}LzDbLp7x`_
zBg+h2-9Y8=R|c~C`Lp+u)a{-44P!hM{6LfBb7px?y(^(uE_G(hk7_v3!!nw#>1N{<
zvK^2G3-H@hV?d?VVygv9L9;qi=Bk)SXt>Ei*7}u>rEJff&(E(wTj5KKBSp|X;q!(;
zGW1RTe3)|Ot6YEhsMki0Vxo?6<7R4i-c6KTa*{JX(w8
zU|inLQ7L8CQ`}nXT?;--`+ZMg>%of;`WS}=4~k)V9cFD$ogNo0ABj=9II`AlUSw
zu2@4aYTz$!@+eu3azPZ<+H)
zP}ua2XQEsv(7i8JF(D>q)?mjkKl4^X^&6UVz5B_u{9&rVz4@18h?^!W)XJ?v8A<-<+&
zt{pPs4s-s(QlAp=MCEze>Gg}^vgMx7j>fn~xw9^TNOlcHKUz#_%av>Q;la`Zk&!}O
zT~D-%{1rzj4pm<-U4qB!$5U~Sr3CQoYSKtN9<_~1v^V~~p<(jI?Bw~b1(noKP5K^j
zB=32)LBZ0P*@DxgOl?uRYYDhpf|6p~>1l(dr$r_biH$6V8|Y*05dMYgc9JZ4{S;kw
zi1!t81Yl$oykM1kZ||aa+z{YFR%F7pLV!Db-2I
z&pcl?9)FE4*}AcjdoOzCr@DX2@FIReI4@_O^6G7X-c<~4HNHW$nszVV?;2(m9sQ0#
z!X08jHE0_zE+1(Ma22w#-kpjNUgBd*k|A2#*|`h6vTixtuspi4I7S@dKD)kZtSn_r
z6B_4_+o=25XB;9_R=H2;jf%ZvdCwR1&_TX<8^mqmPI+c`gU(7FnHH#4cBreazUulD
zSjLyePLcl)d)hsT(eh4p{)gX)oI*uG-9He8arqO0lOT+qO!E
zJY!!+tC;FZS#?uYOPl!mf{)K^y0$iii;bonH{)qMEPw9z=BgG>BIhi$8;yG489=&79Y?iWI5Ymo8>1zI|%dt1Nb_qlTLj_n$SXw?EVE
z<{MfmiYA4OttKtCS#_!~kV;Zg1+h=0*ap2VURp62PqLr8!EN1pI#@sPS*5bZsh$Yy
z>FGhl<$%1tzAq>q%n&5(*Ls-#qs~|3@^)6Y;iOyFKXMXUK{KeN09n_tv!DVnQ*~uO
zUQeWGQRlALh?vYRLnJDDxM_7H@2n@c-;TzhpbRs@W4gzLw#uf$>W6)1+EuOr(sst?
z_N0AjJ?dq92>L?NOmR{V>(lQqbmHn1-!0#Ip;Mivrw1hU)SYfQntE>TiA;b=<~}yP
zM|lGPOiWsL!=PT-Wurs3bEs^?!i;0TUp<8eDTjxTpIVqC$>0&?*prA`raTxt=KpVMte4B;*|TOqPjA%yShO~Oc6K*%
zYbUp&VLtk+=|kasPmwE?A}B4FaGrHKJ~@e3Qc?^EU5>m19)KtXuax
zR}u3T44m}$ZlueJn#9*pVMvw46i(^gb*t1gr@uQVR6*Ecuf-|v+
z2{|Bq;ewmd5C8?SMc*3m7j(;8cAqlKP>pSaq}$vkH#GHIqFA}j%5`xZ7$KJblkju_O4uh*Q
zIO_`PViaB3cl2b7@7s;BqRO=17XuF+!k@{EUf`5cZYfMV;l%e8g(;_CDMlX-wn#(`7e2iJ
z3a;xjN>q+oFGA#en@L(7uP!gP;43O7CpMn|dxPY89S_UB)76N!P
zNdu=BL2b$QpeJ#1$DKZFN@h1K;#$!PZ(ghbPDl3g+(d2wU7Kk#{VYcx=w@e~g=quzPJNN6lY&S97?xd&OkSc;R&7)531z)`
zM+m{tcFS6NU~JhXu0@okv*#7jyjzkj+53=dRrZ)>*#6sgD+3{kN#?BF}-
zpx@AnZ}@&T3qSG|ACv6z+pBM^MKi
z*{q8Aa4vq*p*J~kZsPOPGB^5FG|bZ@DvELqqLoFnhL~zZPPsK?Xho
zZ1qgiR#@tBT8co!oNw*Iw486#p+-)yO)b{&03W?ztUVB5__EoJH2^CwYWsK`f)1I-T=McQ&MmK?X7rQ@h&>s(
z`R`Fo%BNao!eShH7yl>|k*IJ@?w^6wE~6us3a>rY7_4szVp!T9Ao+cc)l-KhWr|hk
zS{p4GCE@NIH+i3fRoBi^EqX&pR_G5PyxQW4h6*L`g$y6OXL{S7_Tky}Dv6DBGuZ;b
zqje^Fo+v5ESnVQk5+c(gEc4#kbMKcLg&bflp9m(3P(
z*?xm!);q&1q`9rt+7G5Dt@z(!%{C6dn#d_++o!{f|2(<1^f54RQ(-%>&Vhe8i}4d(
z>y&ePH#5sh|D28FAS!i`r?$(W(ruIYc
z^^heLkGWKF*PQ9OmdZigN1tLpB&(@|A*FXcI-we6rP|v!^44w{v*=ze)A&2nS2EOB
zNe!eQ{#>S8*EAf4O6O~$Z7Erfpog0bm~$
zn6SI#k_$h5`YbBpc
zn-=Zu@H8_>#yd$?;rF_#ifm(yYlj~;WskmU
za$3fkdKUT3i(%Kc_6`|Y+7S*O3Ylod1e-(95Dghy8pCpvh?z?Yd9p0(&ym7XSq|&9
zdkSW3SS=kxgGK^42T@o|Eaim3R?7Rms@zrewBic9QEB7(-5x?(x?p_r`HYG8r`_F(L=_T2`(TXVG%QO-4*FakC?h`t2{%dg_O4t2O>XWYWc
zH)AL_KUaK+>l{h%p_-YU&9>uHinQqI?v~{CPODeuU;*%es1InH5HY*lLkf>2&n`SiVBrx*a
zNqaUrvAY+NL&h;05%L^;F0(W-m|^m4c^zeSJ09`bc9WjRrkM9e$VSv^zZW5@bHk6f
ze3Nt7A$@JDDb7aG0!i?9;M@YOb^o4VuC8vtG(xYEtTWZ6nVH?w9U{C+krI(!qOL)^
zdn9d<^>XB3sCkoA4bQH5xCds!moJ$RzxM(lTa`-B3jGR&(lC#WqlN(m@jJms>c-{f
zs&RyZXF76BZHuE_1)k}F-PO%l>FJM($LKOH=NoAfwS$ydser@6%uJsLSe}DP8l7t&
zBK2DYF68iVB>m%#8mSm_!%)ZOG9KJ#U3!_CCO;X}LtDDUN1iw%(fTgL5UqaFuolbf
zY}9dg34P&RZlYDqpi|Y`so-f-1KVc9$D97SDFy6p{}6*`-aD5(BWfC0cKH9f!x}ZX
zv;lbfWy)r)AUT%8uB~cBAXghUqNICy`zQ;@k-$(*ieKI1XY9VvtCgfy{XnX9ZlrJI
zb$qZp?~b;?8=9SK)N4u9OG{?{K9?)d+GzFRji6^9jR`|_PBOa>%yt^QnrPOr}`SQSydIw
z?QZvA;~oQ6cENig6nZlK7;inivoS$g%y`Y3KQw2{mP-I4tNpDk&&wk@`XKCRy)ZDA91
z4K{#3Aip7HA$1})BB-RsW{lvaUTXC*l^KalqA7_yBi?A1e!}}y0LUi^G*459aDb(vXu2vu8zoC|MOtYM_hhsmPoqV5F6
z!$d2(0#J7mx>)Qa9(uc$_D4-^z=z^LeeA_8A=`LO*$nPwPs1ro!^1n?DTxJ^B9hJV
z+d(&9pJkTun0_~bWz^{)n08S5Y7737>01_BR)7A$IN;f)9D!I83)w8_y&KsbwHfi}ba2B*OhA)AKdGhO
z9BGUyy+nFKxYSv9xHZGUPt#!+9L@-2`yC!)^w2!*Q;06kz`4cHCHwh^%w#d~+u~gF
zpYpg>)wLD@juwxpPVC+mKYx7yW@0KgW|o5y_pZ^RyGhbuJ(>KMC#Yp&wjR3qmvQs(oV=OnxiNza-hnC%$TYmHnY{Il*6asUs#U
zZ-(&VX9uxUkyu`7ACq2L`sp+Czz%WGC724H?((j`c{MiuXA3^$s<#WY-2Pu&ls7Qt
zzX_(x$jA|Q5{_URPYUg`BtiUR`R*AhJ$ec3N6|d<^0nJt@tKXdnsQTA;{%@R4=PRQ
zEyl?j!g^;&x^&{lkIlC*XX#PkRE<<%y0&;8d`e(?%J)~yqr9>1uV8rVDy2wIN>gKcIyP=VE}0r_)?
zc;ZcY%k9;=IHc$3PdCKY1JT|O6_akOt6Mr8zD)0$@vdCHr8dGfkAmk-n7)yDd;aH;
z(6f^wY(HUA^2g0zEKR8u2lFcaS&lA&=efAp3S1JRX1=4*lH5Tc0g^oNc4f=bf-uw3
z=0YL(la0PEH_mvNO}_$dJvnDW`$5SpO{%i8GKqL+a1h(zqvOlg+vC0O;lEjFQRkG!
z7}u5Ei5i#X${oCD;VrFeGnwPT5!d(qyXXL_vm&t6rRi`gmNKZt*lztJHH9^CzJ73G
zbUmDFGnht-eNuby+iUe6i05fs5&gWYi!a5ZSe&zJxWecJwj!>=ymY?7;MbU}1(rB2
z>brmBO$QgsbsPgQ30kNfw
zc&J5)LlK>`y>StO7**B@)RcDVs#@`u^j^l3n=l=@tk4qBp&=nP#@+{j(E0<{x;a@4>0H$tB$lNRiV7<@$Yhh4b
zJZxeBi{<^h*N@j*VD2qoA7^O1719C}3D+Y|2&$`LZz1j)fwjK;z}!bmOZ#CK<|9K@
z{H>@|aBME}Rfm!1NhnMw8Tmg4tAV(|-~S2v=>PiWi{N}aOq2u@`oHj8^ZzCd)cG!V@bea2wtSx7Bsj%2ceL{(tMbPMrV%
literal 8642
zcmeHMX;>54wk>c%Q6YjNHY5rPA}9nWWK=tVLkO)PqB038f((XvN`l%d0VFEgARs8(
zpv;KOglIPyX;4%QAP@pcGlnFFA%Q^Por>Oj|GoF?_I=-beeyvnr>f35wa?mXuf2=>
z6V7(kiVZ6u2wHXc5au`pE$M+Exk-hkphx$*zyN$LzkKLaFa#;8z<+X3TE=?NDHnX)
z_8?UBUSkCOSnPek?f?XpQWWRTE`gv;Cl6x|I7Z0vn9O58j8w$-Q(Wu!n#pejp9F>2
z?;j%sgxF}iF%Hs@Q-0m25OZP5lIOYp`BdfRO(T(cTU~4pZEp%j2O1W-%}6Wd!6Xor
zIA8@v2W@?N-)h;x^2On@??W4_7QqMm|)2cxsk-uEKb`AJi`F$2iAA*cx6?nP1xeSciPkChV#6)mExGNs`
z&3<=uV?B-L&KC$2zXqat#IP`@B@qzxOA37QN$LgGmoI3>Y68Yj5Mr8b2EAG{YcB`I
zA{)ZiXDqmZf&0N_C)t}4b#!`AC{*+4sIMI4QJo5W^-+F8f?}zrjq(ChLsN4t7?ZLb
z`1t(5;Gm7s&*(-=vFr()k+456yeKU_Tci0#wbTO40yY1BL>*k(KR@s0cXP3jbv#B6
zDlvyCV!mG_s(|**i5Ej9E(Q1GpgvSV@)h&^{QQAp+Wa;MGFYYp2xCq-Ik~yw$Lz|=
zy$g17kO2ZVla-shyW(wq+&M6qhHS7BiTt=!GL;W~?*Mf2*AS39;OUqkE|Q?M50b3SCBDoh86)gsPa^WDbYM(=OU7dlhuI`c><>lok
z2#w^lI6jL;G6Z{J2U{}h&D2!rK67&eqoip^Oh(m=Wa?6NRn=B-e*2EJ70|2P%VA+U
z70IJ>b9JZf7ei2+7GPYXVDudgyy}ZavIbboI(RJ)5*~INEl2kU`~iOWAOP8>R)eL<
zC$CXEz6A8Z^qX4EU@$F82}$mEU>t=FOY($*}+bgBLIGK~R77w1>q~1B|;=#<;cB)p{V@FL}{O+YU!D
zYyybFuUf4Atbpg=);l=c*k}z836t@(Y8S7<a3(!dZ;qW{6
z@D1-pJf43C;17?{dJtl!F`h$VF`7UdfWX_{-o9c|MTG~pm!Z4GW%F7n_LOYcd!t`h
zgIHk*$5zn(19IErD!e!#0uI26KlKsdOL^#3kWB9DoFfpZ1w}>cfSkAn>wcq6GNSw@
z4q}(@Gc(f%q^bmys)zh)C8hlP#{c?_ty}~dpx|>GPc?+K@xUCm@EnI;R#u*b>Gz)<
zFMwwh6&J%Dhh5z
za_%(3NVyBU)4JmgQ&qPIdVAf#j(kJPbrrJ;vxiCd(ZC}erMck0Jh@3!TWeMdo-NfB
z2GjMRu&@g!K}1iD+{+Br(wvZHF5JCu}^2IlAMfi|41^Ur7GCHVjhNrG=gv^;t8
zgd`|m7=EgLB-ZT<7jUd}TObuK^&zwmky%`Zv
z*rAEyqancO+Ff=5`m>3Sj%F;;XC=H+cfVF(NS1yn4V>i=R&Enzk$P4kDVm6g+pkQ=
zICR3Bkhw?by81`n{vS*?6szI*`*AG0EBlbz>tFYiYCU;gx~@{wMmWDJGF<
zGIJU@i2`gFRc08KCjR>MC!Oa$=dsk_`olCIeyXov_s3rQ#q6A)+=~x3t!tZj(lBI_
zd6=+m(~qP9eWugm6QV;cx%hJFiq#htX=Nj>-;Kcw5p9)?tI<&dAS*t
zAKj@Zb}j@Ri5(l;mlD>|h|L!kFJt1BAkEkUR&G>5d~J4>
z_f+d5_PStfY%-A{?0jOwC#rdBHg$^XBQ~^rZ7?J~h-1!ux|7-sUN8
zZ0a76@4qUD0m{zkhC;8ct?eyzct(Q1XvJ$_)`Irey9&>ezjlp;97*;m)*0D5f@%%V
zuwT@0`a$QHUY;~ASqnhjl~n9gW5LNTRcBLsS**aAR^yY99Q3LLjxHOl>v-!jwTEpW
z-roBb{Kh>Tw9OZPBwYhPQ#PiVmDAkZybViI)!m_Wh?FtCU;vyTo221h%jDPIoZtBn
zWUn6kV2tkaJI?hPB;CFiq+d(P-yV@
zGzQ0BPfydRj1kdUhFJ@!Wmx(9ElhDwa$3vUJ15hy3)AE)kzbg-o88JzWpn}+MuC_6
ziP83kgEgRNIlXQ0TCGwz>)P;=wITVe9apOm-Pp_ZEEVW>c`Xq4PQ1w6lC*Qa@YI$?
z06}n(^L9?A5s66Tt4G^bx0)j9Cmn7lQ3qf;Trbt>=loXiAWihq+kQZt9u!zJ>{pzS
zPh2D!SWWG?s=(2k^pbhXgIYHBzyF1>)S`
z16XghJXH7-lqf7n$SX4-^IbVQJzX`_>N!qGo%J0jhD&VmT4&cdbmOy_qICMi=pF{D
zGE{gBBo4P=IpPxE#LF?#P_y?>(;*qQx9{TJKn>PMkvn@sP<9_lF27@kz3nD|8I57V
zn|c)SHr*+!VN&$*<1uwdhl@$GU0=Sa@2jELPsWL;4diQa^T}((tVwcg+DI6fg96Xd
zGa4>zIqTGnxgAh*(WgOlEIWEESy1t5fJ$tWsI$>&In&&3pe~-Mz*Ag84`i0F&S4Q6
zrG9>Xj>!|$9WOSFQU&<#s$t(`H?#J##tGlFpuNo15XAX*2ZB6XcuhT|9E+_|G9DlV
z2Rqo+78exUO~UC+Z)cxNun;nFTN_vp0+vDFv`q_@$o25t
zKxGD`91vVeot~SVbYzmGyN7oX8br93S1Ow=RBX!e;)$KOjh}DRsezKmK8-$
zoEnD06g(!+aw{id9PvROU8Pc~mz9-O3TQDT!PpJl!kw`EoS|%J5qiiGF93@8i=Y2yBD6>gcO2$)2`WgpuX_`)Z#W_qg1oZ`<
z`Swa+<(6!Mi_z|Sn$k3)OZ#mC7f6*D*uOwKLV{H#iUEq9pcpsT!9reZ|NDCy#b%?LTR
zp)~vgH6tVAo;!^=MWsb())Qu(G+Vd6iQFN~YzQU`gqGJMaKdtsc!Y(A=W`Z8vDT&I
zv#^#P`~cFnwV6LI?lJAPIaIu8uD}0mM+D)U&Wq{|pEJFGVT%(5HO$d;Tb1Nvx~F)
zR>z*+EM>997#gsz_xayIIIdPr?n7Mi8kfw91+KZTIRfpuuyl-I&x85i_wR9Q6U`pt
zW(uN~EKt~y4P50-<_E*)-ak_jNETP^&
zOX_WOsM0?d(ks{mh_^^YtnD298Wt9o*WsVBb_blLizN=rIPofaxNKmSV%Rwbk7F-_
zWYNjtBM=lIw|KJRZRrJ@7!;PONXqDQqYDeD5@CH89J1?VRCxxyia8RJ_Z6wullTG2
z(ykW>1ZV6%*$y^()0wRKJITO)E!r~ssX2TEp&HH_R(wS;y~a&-dhPA)6(@8j&H-1%
zHp692#m!DF4JWaO++AE8)tpuV;<--B%Y92HcjNmR%DN`TIXyd*mV=sbLwKvLfE|A;((y_7#%?
zKdJNzO-ebIxI>9Rvua!d84@SHa|gV2t*|B5ofb8kFC(-#mm0@UQ}Ma)mmOO+4g#Zb
zlF568Kk+>rVtgNXZy+IFz6^-W11Te@m!|S0py;qisXr1shmkZDhar#xod4uWBV??P
zQ*24nx3pF+o?tLesGl$wgMd1k`sQH`K((w;;(Rf5GIKEPZj^6KCuC8$ToA`YRB=Pi
zIC+MS(L|!<_&HLY(}RCO?4;HoHbzJc)|KwBz0^Lq94k}ayGvbdCy82)wk1g;qQkfd
zIu}6+j)}=IX1XOPetvVQ4!oP8+WwAoaOvDLn+lfRCENHTnmIry{P24~gUEE=W@TnY
z>gS@96_e>9l-DhurDZ1Gq$BZ~mL
zmp`1Yw%kdDXtlNa;B|uxMO}zX+~pz#9zgfBN+7q1>ywZ`wu!YgHOnprq_Ls0l_(L+f_b_I8UQ7Jqq>cCJSFbiqF?77RXACi=xW0
z8eCh%Q_jz?OY$Ark<|M7J-s?^H>dMZUiVJy*4Ni(l&+f9yAn|(%+N0AP%9!B;*2nH
zln+R{0t6+%?~XnAjf=xIL$xujp4kLteBzX~HJ2
Date: Sun, 25 Feb 2024 23:31:48 +0100
Subject: [PATCH 6/9] fix context length issues
---
packages/@pufflig/ps-models/src/index.ts | 4 +-
packages/@pufflig/ps-models/src/models/hf.ts | 1 +
.../ps-models/src/models/open_router.ts | 3 +
.../@pufflig/ps-models/src/models/openai.ts | 76 ++++++++++++++++++-
packages/@pufflig/ps-models/src/types.ts | 1 +
.../ps-models/src/utils/getModelFromPreset.ts | 6 +-
6 files changed, 85 insertions(+), 6 deletions(-)
diff --git a/packages/@pufflig/ps-models/src/index.ts b/packages/@pufflig/ps-models/src/index.ts
index b8de7bb..2e4b1e4 100644
--- a/packages/@pufflig/ps-models/src/index.ts
+++ b/packages/@pufflig/ps-models/src/index.ts
@@ -53,6 +53,7 @@ export const default_assistant_model = "gpt-4-1106-preview";
export const available_models = [
"gpt-3.5-turbo-instruct",
+ "gpt-3.5-turbo-0125",
"gpt-4-1106-preview",
"anthropic/claude-2",
"meta-llama/llama-2-13b-chat",
@@ -66,5 +67,4 @@ export const models = Object.entries({ ...completion_models, ...chat_models })
}, {} as Record);
export { getDefaultModelParams } from "./utils/getDefaultModelParams";
-export { getModelFromPreset } from "./utils/getModelFromPreset";
-export * from "./types";
+export { getModelFromPreset, presets } from "./utils/getModelFromPreset";
diff --git a/packages/@pufflig/ps-models/src/models/hf.ts b/packages/@pufflig/ps-models/src/models/hf.ts
index f2d3dee..dabff3e 100644
--- a/packages/@pufflig/ps-models/src/models/hf.ts
+++ b/packages/@pufflig/ps-models/src/models/hf.ts
@@ -17,6 +17,7 @@ export const hf_completion: ModelDefinition = {
settings: hf_settings,
streaming: false,
contextLength: 512,
+ maxTokens: 1024,
parameters: [
{
id: "temperature",
diff --git a/packages/@pufflig/ps-models/src/models/open_router.ts b/packages/@pufflig/ps-models/src/models/open_router.ts
index 00e0efa..d56dd10 100755
--- a/packages/@pufflig/ps-models/src/models/open_router.ts
+++ b/packages/@pufflig/ps-models/src/models/open_router.ts
@@ -16,6 +16,7 @@ export const open_router_completion: ModelDefinition = {
description: "An improved, potentially even perfected variant of MythoMix.",
settings: open_router_settings,
contextLength: 4096,
+ maxTokens: 2048,
parameters: [
{
id: "temperature",
@@ -34,6 +35,7 @@ export const open_router_completion: ModelDefinition = {
description: "Meta: Llama v2 13B Chat (beta)",
settings: open_router_settings,
contextLength: 4096,
+ maxTokens: 2048,
parameters: [
{
id: "temperature",
@@ -52,6 +54,7 @@ export const open_router_completion: ModelDefinition = {
description: "Claude: superior performance on tasks that require complex reasoning",
settings: open_router_settings,
contextLength: 8192,
+ maxTokens: 2048,
parameters: [
{
id: "temperature",
diff --git a/packages/@pufflig/ps-models/src/models/openai.ts b/packages/@pufflig/ps-models/src/models/openai.ts
index 8a58b38..d7295b8 100644
--- a/packages/@pufflig/ps-models/src/models/openai.ts
+++ b/packages/@pufflig/ps-models/src/models/openai.ts
@@ -18,6 +18,7 @@ export const openai_completion: ModelDefinition = {
settings: openai_settings,
streaming: true,
contextLength: 4096,
+ maxTokens: 4096,
parameters: [
{
id: "temperature",
@@ -82,6 +83,7 @@ export const openai_completion: ModelDefinition = {
settings: openai_settings,
streaming: true,
contextLength: 16384,
+ maxTokens: 16384,
parameters: [
{
id: "temperature",
@@ -146,6 +148,7 @@ export const openai_completion: ModelDefinition = {
settings: openai_settings,
streaming: true,
contextLength: 16384,
+ maxTokens: 16384,
parameters: [
{
id: "temperature",
@@ -212,7 +215,8 @@ export const openai_chat: ModelDefinition = {
description: "More capable than any GPT-3.5 model, able to do more complex tasks, and optimized for chat.",
settings: openai_settings,
streaming: true,
- contextLength: 4096,
+ contextLength: 120000,
+ maxTokens: 4096,
parameters: [
{
id: "temperature",
@@ -277,6 +281,7 @@ export const openai_chat: ModelDefinition = {
description: "More capable than any GPT-3.5 model, able to do more complex tasks, and optimized for chat.",
settings: openai_settings,
streaming: true,
+ maxTokens: 4096,
contextLength: 4096,
parameters: [
{
@@ -342,6 +347,7 @@ export const openai_chat: ModelDefinition = {
description: "Same capabilities as the standard gpt-4 mode but with 4x the context length. ",
settings: openai_settings,
streaming: true,
+ maxTokens: 32768,
contextLength: 32768,
parameters: [
{
@@ -401,11 +407,77 @@ export const openai_chat: ModelDefinition = {
},
],
},
+ "gpt-3.5-turbo-0125": {
+ modelId: "gpt-3.5-turbo-0125",
+ description: "Most capable GPT-3.5 model and optimized for chat at 1/10th the cost of text-davinci-003.",
+ settings: openai_settings,
+ streaming: true,
+ maxTokens: 4096,
+ contextLength: 16000,
+ parameters: [
+ {
+ id: "temperature",
+ type: "number",
+ name: "Temperature",
+ max: 2,
+ min: 0,
+ step: 0.1,
+ defaultValue: 0.4,
+ description:
+ "What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.",
+ },
+ {
+ id: "max_tokens",
+ type: "number",
+ name: "Max Tokens",
+ max: 4096,
+ min: 1,
+ step: 20,
+ defaultValue: 1024,
+ description:
+ "The maximum number of tokens to generate in the completion. The total length of input tokens and generated tokens is limited by the model's context length.",
+ },
+ {
+ id: "top_p",
+ type: "number",
+ name: "Top P",
+ max: 1,
+ min: 0,
+ step: 0.1,
+ defaultValue: 1,
+ description:
+ "An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered.",
+ },
+ {
+ id: "frequency_penalty",
+ type: "number",
+ name: "Frequency penalty",
+ max: 2,
+ min: -2,
+ step: 0.1,
+ defaultValue: 0,
+ description:
+ "Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.",
+ },
+ {
+ id: "presence_penalty",
+ type: "number",
+ name: "Presence penalty",
+ max: 2,
+ min: -2,
+ step: 0.1,
+ defaultValue: 0,
+ description:
+ "Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.",
+ },
+ ],
+ },
"gpt-3.5-turbo": {
modelId: "gpt-3.5-turbo",
description: "Most capable GPT-3.5 model and optimized for chat at 1/10th the cost of text-davinci-003.",
settings: openai_settings,
streaming: true,
+ maxTokens: 4096,
contextLength: 4096,
parameters: [
{
@@ -471,6 +543,7 @@ export const openai_chat: ModelDefinition = {
settings: openai_settings,
streaming: true,
contextLength: 16385,
+ maxTokens: 16385,
parameters: [
{
id: "temperature",
@@ -535,6 +608,7 @@ export const openai_embedding: ModelDefinition = {
"text-embedding-ada-002": {
modelId: "text-embedding-ada-002",
contextLength: 2048,
+ maxTokens: 2048,
description: "Designed to replace the previous 16 first-generation embedding models at a fraction of the cost",
settings: openai_settings,
streaming: true,
diff --git a/packages/@pufflig/ps-models/src/types.ts b/packages/@pufflig/ps-models/src/types.ts
index 1e15c8d..33c70de 100644
--- a/packages/@pufflig/ps-models/src/types.ts
+++ b/packages/@pufflig/ps-models/src/types.ts
@@ -24,6 +24,7 @@ export interface ModelConfig {
settings?: BaseParam[];
streaming?: boolean;
contextLength: number;
+ maxTokens: number;
parameters: (NumberParam | TextParam)[];
}
diff --git a/packages/@pufflig/ps-models/src/utils/getModelFromPreset.ts b/packages/@pufflig/ps-models/src/utils/getModelFromPreset.ts
index c8e7a0c..9361ef8 100644
--- a/packages/@pufflig/ps-models/src/utils/getModelFromPreset.ts
+++ b/packages/@pufflig/ps-models/src/utils/getModelFromPreset.ts
@@ -1,6 +1,6 @@
import { ModelValue } from "../types";
-const presets: Record = {
+export const presets: Record = {
accurate: {
modelId: "gpt-4-1106-preview",
parameters: {
@@ -8,13 +8,13 @@ const presets: Record = {
},
},
casual: {
- modelId: "gpt-3.5-turbo-instruct",
+ modelId: "gpt-3.5-turbo-0125",
parameters: {
temperature: 0.5,
},
},
creative: {
- modelId: "gpt-3.5-turbo-instruct",
+ modelId: "gpt-3.5-turbo-0125",
parameters: {
temperature: 1,
},
From 119c537f0741be85a34c42702229d8824f8de4b5 Mon Sep 17 00:00:00 2001
From: Aurelien Franky
Date: Sun, 25 Feb 2024 23:33:02 +0100
Subject: [PATCH 7/9] v1.0.1-alpha.0
---
lerna.json | 2 +-
package-lock.json | 6 +++---
packages/@pufflig/ps-models/package.json | 2 +-
packages/@pufflig/ps-sdk/package.json | 4 ++--
4 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/lerna.json b/lerna.json
index 2bde849..010314e 100644
--- a/lerna.json
+++ b/lerna.json
@@ -1,4 +1,4 @@
{
"$schema": "node_modules/lerna/schemas/lerna-schema.json",
- "version": "1.0.0-alpha.0"
+ "version": "1.0.1-alpha.0"
}
diff --git a/package-lock.json b/package-lock.json
index ebafd22..f1dd2ab 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -21386,7 +21386,7 @@
}
},
"packages/@pufflig/ps-models": {
- "version": "1.0.0-alpha.0",
+ "version": "1.0.1-alpha.0",
"license": "MIT",
"devDependencies": {
"typescript": "^5.3.3",
@@ -21395,10 +21395,10 @@
}
},
"packages/@pufflig/ps-sdk": {
- "version": "1.0.0-alpha.0",
+ "version": "1.0.1-alpha.0",
"license": "MIT",
"dependencies": {
- "@pufflig/ps-models": "^1.0.0-alpha.0",
+ "@pufflig/ps-models": "^1.0.1-alpha.0",
"axios": "^1.6.7",
"pino": "^8.17.2",
"unws": "^0.2.4"
diff --git a/packages/@pufflig/ps-models/package.json b/packages/@pufflig/ps-models/package.json
index e1cb467..ac8a2be 100644
--- a/packages/@pufflig/ps-models/package.json
+++ b/packages/@pufflig/ps-models/package.json
@@ -1,7 +1,7 @@
{
"name": "@pufflig/ps-models",
"private": false,
- "version": "1.0.0-alpha.0",
+ "version": "1.0.1-alpha.0",
"description": "Configuration of models used in Prompt Studio",
"files": [
"dist"
diff --git a/packages/@pufflig/ps-sdk/package.json b/packages/@pufflig/ps-sdk/package.json
index 13c4f10..937e7c5 100644
--- a/packages/@pufflig/ps-sdk/package.json
+++ b/packages/@pufflig/ps-sdk/package.json
@@ -1,6 +1,6 @@
{
"name": "@pufflig/ps-sdk",
- "version": "1.0.0-alpha.0",
+ "version": "1.0.1-alpha.0",
"license": "MIT",
"main": "./dist/ps-sdk.umd.js",
"module": "./dist/ps-sdk.es.js",
@@ -22,7 +22,7 @@
"vite-plugin-dts": "^3.7.3"
},
"dependencies": {
- "@pufflig/ps-models": "^1.0.0-alpha.0",
+ "@pufflig/ps-models": "^1.0.1-alpha.0",
"axios": "^1.6.7",
"pino": "^8.17.2",
"unws": "^0.2.4"
From 4704b6afd689eaad0574d7bdc689dc848abfa991 Mon Sep 17 00:00:00 2001
From: Aurelien Franky
Date: Sun, 25 Feb 2024 23:45:32 +0100
Subject: [PATCH 8/9] fix failed publish
---
package-lock.json | 6 +++---
packages/@pufflig/ps-models/package.json | 2 +-
packages/@pufflig/ps-sdk/package.json | 4 ++--
3 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index f1dd2ab..3b6b244 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -21386,7 +21386,7 @@
}
},
"packages/@pufflig/ps-models": {
- "version": "1.0.1-alpha.0",
+ "version": "1.0.1-alpha.1",
"license": "MIT",
"devDependencies": {
"typescript": "^5.3.3",
@@ -21395,10 +21395,10 @@
}
},
"packages/@pufflig/ps-sdk": {
- "version": "1.0.1-alpha.0",
+ "version": "1.0.1-alpha.1",
"license": "MIT",
"dependencies": {
- "@pufflig/ps-models": "^1.0.1-alpha.0",
+ "@pufflig/ps-models": "^1.0.1-alpha.1",
"axios": "^1.6.7",
"pino": "^8.17.2",
"unws": "^0.2.4"
diff --git a/packages/@pufflig/ps-models/package.json b/packages/@pufflig/ps-models/package.json
index ac8a2be..3405ff1 100644
--- a/packages/@pufflig/ps-models/package.json
+++ b/packages/@pufflig/ps-models/package.json
@@ -1,7 +1,7 @@
{
"name": "@pufflig/ps-models",
"private": false,
- "version": "1.0.1-alpha.0",
+ "version": "1.0.1-alpha.1",
"description": "Configuration of models used in Prompt Studio",
"files": [
"dist"
diff --git a/packages/@pufflig/ps-sdk/package.json b/packages/@pufflig/ps-sdk/package.json
index 937e7c5..0649c44 100644
--- a/packages/@pufflig/ps-sdk/package.json
+++ b/packages/@pufflig/ps-sdk/package.json
@@ -1,6 +1,6 @@
{
"name": "@pufflig/ps-sdk",
- "version": "1.0.1-alpha.0",
+ "version": "1.0.1-alpha.1",
"license": "MIT",
"main": "./dist/ps-sdk.umd.js",
"module": "./dist/ps-sdk.es.js",
@@ -22,7 +22,7 @@
"vite-plugin-dts": "^3.7.3"
},
"dependencies": {
- "@pufflig/ps-models": "^1.0.1-alpha.0",
+ "@pufflig/ps-models": "^1.0.1-alpha.1",
"axios": "^1.6.7",
"pino": "^8.17.2",
"unws": "^0.2.4"
From fd4ebea50f778ec6ffe3d777148fa99cbab83469 Mon Sep 17 00:00:00 2001
From: Aurelien Franky
Date: Sun, 25 Feb 2024 23:46:13 +0100
Subject: [PATCH 9/9] v1.0.1-alpha.1
---
lerna.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lerna.json b/lerna.json
index 010314e..cecc2b0 100644
--- a/lerna.json
+++ b/lerna.json
@@ -1,4 +1,4 @@
{
"$schema": "node_modules/lerna/schemas/lerna-schema.json",
- "version": "1.0.1-alpha.0"
+ "version": "1.0.1-alpha.1"
}
|