From c80c6f3588f556fa3de26e4f54b26a17b456ca30 Mon Sep 17 00:00:00 2001 From: Hein Date: Thu, 20 Mar 2025 21:11:09 +0200 Subject: [PATCH 1/5] Split export. Added llm and better readme --- README.md | 104 +++++++++++++++++++++++++++++++++++++++++- package.json | 83 +++++++++++++++++++++++++++++---- src/llm/index.test.ts | 0 src/llm/index.ts | 9 ++++ src/llm/openapi.ts | 82 +++++++++++++++++++++++++++++++++ vite.config.js | 8 ++++ 6 files changed, 277 insertions(+), 9 deletions(-) create mode 100644 src/llm/index.test.ts create mode 100644 src/llm/index.ts create mode 100644 src/llm/openapi.ts diff --git a/README.md b/README.md index ccabe4d..e639a7e 100644 --- a/README.md +++ b/README.md @@ -5,33 +5,135 @@ A comprehensive TypeScript/JavaScript utility library focused on precision and e ## Features ### String Tools + - Advanced string manipulation - Pattern matching and validation - Text transformation utilities - Unicode handling +- i18n support ### Blob Tools + - Blob creation and modification - Binary data handling - Stream processing - MIME type management ### File Conversion Tools + - Format conversions - File type transformations - Encoding/decoding utilities - Batch processing capabilities +### Data Queue Tools + +- Efficient data processing +- Batch operations support + +### DOM + +- DOM shortcuts like opening file links + +### LLM + +- LLM tools for text processing and generation + ## Installation ```bash pnpm install @warkypublic/artemis-kit ``` +## Usage/Import examples + +```typescript +import { getNestedValue } from "@warkypublic/artemis-kit/object"; +import { NestedQueue } from "@warkypublic/artemis-kit/dataqueue"; +import { camelCase, formatPercent } from "@warkypublic/artemis-kit/strings"; +import { + b64DecodeUnicode, + b64EncodeUnicode, +} from "@warkypublic/artemis-kit/base64"; +``` + +## Available Methods + +### Strings + +- trimLeft +- trimRight +- replaceStr +- replaceStrAll +- formatNumber +- formatCurrency +- formatDate +- getPlural +- formatPercent +- titleCase +- initCaps +- camelCase +- snakeCase +- reverseSnakeCase +- splitCamelCase +- humanFileSize +- getUUID +- newUUID +- blankValue +- ... + +### i18n + +- createI18nManager +- \_t +- \_tt +- ... + +### Base64 + +- b64DecodeUnicode +- b64EncodeUnicode +- base64ToBlob +- blobToBase64 +- FileToBase64 +- FileToBlob +- BlobToString + +### Object + +- getNestedValue +- setNestedValue +- objectCompare +- createSelectOptions + +### Queue + +- NestedQueue + +### Dom + +- openFileLink + +### Mime + +- getExtFromMime +- getExtFromFilename +- getMimeFromExt +- isValidExtForMime +- getAllExtensionsForMime + +### LLM + +These are still work in progress. + +## Requests + +Requests are welcome! Please read our contributing guidelines and send me a message on Discord or add a github issue. + ## Contributing Contributions are welcome! Please read our contributing guidelines before submitting PRs. ## License -MIT \ No newline at end of file +MIT diff --git a/package.json b/package.json index 1297e11..03a5e94 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,15 @@ "exports": { ".": "./src/index.ts", "./dataqueue": "./src/dataqueue/index.ts", - "./object": "./src/object/index.ts" + "./object": "./src/object/index.ts", + "./strings": "./src/strings/index.ts", + "./mime": "./src/mime/index.ts", + "./base64": "./src/base64/index.ts", + "./promise": "./src/promise/index.ts", + "./dom": "./src/dom/index.ts", + "./i18n": "./src/i18n/index.ts", + "./logger": "./src/logger/index.ts", + "./llm": "./src/llm/index.ts" }, "typesVersions": { "*": { @@ -21,6 +29,30 @@ ], "object": [ "./src/object/index.ts" + ], + "strings": [ + "./src/strings/index.ts" + ], + "mime": [ + "./src/mime/index.ts" + ], + "base64": [ + "./src/base64/index.ts" + ], + "promise": [ + "./src/promise/index.ts" + ], + "dom": [ + "./src/dom/index.ts" + ], + "i18n": [ + "./src/i18n/index.ts" + ], + "logger": [ + "./src/logger/index.ts" + ], + "llm": [ + "./src/llm/index.ts" ] } }, @@ -32,7 +64,15 @@ "exports": { ".": "./dist/index.js", "./dataqueue": "./dist/dataqueue.js", - "./object": "./dist/object.js" + "./object": "./dist/object.js", + "./strings": "./dist/strings.js", + "./mime": "./dist/mime.js", + "./base64": "./dist/base64.js", + "./promise": "./dist/promise.js", + "./dom": "./dist/dom.js", + "./i18n": "./dist/i18n.js", + "./logger": "./dist/logger.js", + "./llm": "./dist/llm.js" }, "typesVersions": { "*": { @@ -40,10 +80,34 @@ "./dist/index.d.ts" ], "dataqueue": [ - "./dist/dataqueue..d.ts" + "./dist/dataqueue.d.ts" ], "object": [ "./dist/object.d.ts" + ], + "strings": [ + "./dist/strings.d.ts" + ], + "mime": [ + "./dist/mime.d.ts" + ], + "base64": [ + "./dist/base64.d.ts" + ], + "promise": [ + "./dist/promise.d.ts" + ], + "dom": [ + "./dist/dom.d.ts" + ], + "i18n": [ + "./dist/i18n.d.ts" + ], + "logger": [ + "./dist/logger.d.ts" + ], + "llm": [ + "./dist/llm.d.ts" ] } } @@ -62,14 +126,17 @@ }, "keywords": [ "string", + "trim", + "queue", "blob", - "dependencies", - "workspace", - "package", + "base64", + "file", + "replace", + "tools", + "llm", + "clarion", "cli", "tools", - "npm", - "yarn", "pnpm" ], "author": "Hein (Warkanum) Puth", diff --git a/src/llm/index.test.ts b/src/llm/index.test.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/llm/index.ts b/src/llm/index.ts new file mode 100644 index 0000000..ce3f6dc --- /dev/null +++ b/src/llm/index.ts @@ -0,0 +1,9 @@ +import { getTextCompletion } from "./openapi"; + +export const OpenAPI = { + getTextCompletion, +}; + +export default { + OpenAPI, +}; diff --git a/src/llm/openapi.ts b/src/llm/openapi.ts new file mode 100644 index 0000000..f50ed10 --- /dev/null +++ b/src/llm/openapi.ts @@ -0,0 +1,82 @@ +interface OpenAICompletionResponse { + choices: { + text: string; + index: number; + logprobs: any; + finish_reason: string; + }[]; + created: number; + id: string; + model: string; + object: string; +} + +interface CompletionOptions { + prompt: string; + options?: { + url?: string; + apiKey?: string; + maxTokens?: number; + temperature?: number; + topP?: number; + n?: number; + stream?: boolean; + stop?: string | string[]; + }; +} + +export async function getTextCompletion({ + prompt, + options: { + url = "https://api.openai.com/v1/completions", + apiKey = "x-demo", + maxTokens = 50, + temperature = 0.7, + topP = 1, + n = 1, + stream = false, + stop = null, + }, +}: CompletionOptions): Promise { + try { + if (!prompt) { + throw new Error("Blank prompt"); + } + + if (!url) { + throw new Error("OpenAI API URL is not set"); + } + + if (!apiKey) { + throw new Error("OpenAI API key is not set"); + } + + const response = await fetch(url, { + method: "POST", + headers: { + "Content-Type": "application/json", + Authorization: `Bearer ${apiKey}`, + }, + body: JSON.stringify({ + model: "text-davinci-003", + prompt, + max_tokens: maxTokens, + temperature, + top_p: topP, + n, + stream, + stop, + }), + }); + + if (!response.ok) { + throw new Error(`OpenAI API error: ${response.statusText}`); + } + + const data: OpenAICompletionResponse = await response.json(); + return data.choices[0].text.trim(); + } catch (error) { + console.error("Error:", error); + throw error; + } +} diff --git a/vite.config.js b/vite.config.js index 43bff93..19907df 100644 --- a/vite.config.js +++ b/vite.config.js @@ -10,6 +10,14 @@ export default defineConfig({ index: resolve(__dirname, "src/index.ts"), object: resolve(__dirname, "src/object/index.ts"), dataqueue: resolve(__dirname, "src/dataqueue/index.ts"), + strings: resolve(__dirname, "src/strings/index.ts"), + mime: resolve(__dirname, "src/mime/index.ts"), + base64: resolve(__dirname, "src/base64/index.ts"), + promise: resolve(__dirname, "src/promise/index.ts"), + dom: resolve(__dirname, "src/dom/index.ts"), + i18n: resolve(__dirname, "src/i18n/index.ts"), + logger: resolve(__dirname, "src/logger/index.ts"), + llm: resolve(__dirname, "src/llm/index.ts"), }, formats: ["es"], fileName: (format, entryname) => { From 6b6f418d6557b23e91ca492a395b9d676f5320db Mon Sep 17 00:00:00 2001 From: Hein Date: Thu, 20 Mar 2025 21:13:02 +0200 Subject: [PATCH 2/5] docs(changeset): Release split export changes --- .changeset/brown-spiders-crash.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/brown-spiders-crash.md diff --git a/.changeset/brown-spiders-crash.md b/.changeset/brown-spiders-crash.md new file mode 100644 index 0000000..004f0c2 --- /dev/null +++ b/.changeset/brown-spiders-crash.md @@ -0,0 +1,5 @@ +--- +"@warkypublic/artemis-kit": patch +--- + +Release split export changes From 8fdb9d41e4cf6345c193b3d240f183cd30434688 Mon Sep 17 00:00:00 2001 From: Hein Date: Thu, 20 Mar 2025 21:13:05 +0200 Subject: [PATCH 3/5] RELEASING: Releasing 1 package(s) Releases: @warkypublic/artemis-kit@1.0.5 [skip ci] --- .changeset/brown-spiders-crash.md | 5 ----- CHANGELOG.md | 6 ++++++ package.json | 2 +- 3 files changed, 7 insertions(+), 6 deletions(-) delete mode 100644 .changeset/brown-spiders-crash.md diff --git a/.changeset/brown-spiders-crash.md b/.changeset/brown-spiders-crash.md deleted file mode 100644 index 004f0c2..0000000 --- a/.changeset/brown-spiders-crash.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@warkypublic/artemis-kit": patch ---- - -Release split export changes diff --git a/CHANGELOG.md b/CHANGELOG.md index 77996a1..b259039 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # @warkypublic/artemis-kit +## 1.0.5 + +### Patch Changes + +- 6b6f418: Release split export changes + ## 1.0.4 ### Patch Changes diff --git a/package.json b/package.json index 03a5e94..c4c37e7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@warkypublic/artemis-kit", - "version": "1.0.4", + "version": "1.0.5", "description": "A comprehensive TypeScript/JavaScript utility library focused on precision and efficiency.", "type": "module", "main": "./src/index.ts", From 0347718b4cae4b725c4b7bcb1c54a31731406584 Mon Sep 17 00:00:00 2001 From: Hein Date: Thu, 20 Mar 2025 21:13:59 +0200 Subject: [PATCH 4/5] docs(changeset): Bump version --- .changeset/small-apples-cheat.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/small-apples-cheat.md diff --git a/.changeset/small-apples-cheat.md b/.changeset/small-apples-cheat.md new file mode 100644 index 0000000..e87de9c --- /dev/null +++ b/.changeset/small-apples-cheat.md @@ -0,0 +1,5 @@ +--- +"@warkypublic/artemis-kit": patch +--- + +Bump version From 2cfd4c54901774c655d65e1bd19e2ebbc35b2949 Mon Sep 17 00:00:00 2001 From: Hein Date: Thu, 20 Mar 2025 21:14:00 +0200 Subject: [PATCH 5/5] RELEASING: Releasing 1 package(s) Releases: @warkypublic/artemis-kit@1.0.6 [skip ci] --- .changeset/small-apples-cheat.md | 5 ----- CHANGELOG.md | 6 ++++++ package.json | 2 +- 3 files changed, 7 insertions(+), 6 deletions(-) delete mode 100644 .changeset/small-apples-cheat.md diff --git a/.changeset/small-apples-cheat.md b/.changeset/small-apples-cheat.md deleted file mode 100644 index e87de9c..0000000 --- a/.changeset/small-apples-cheat.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@warkypublic/artemis-kit": patch ---- - -Bump version diff --git a/CHANGELOG.md b/CHANGELOG.md index b259039..3eed987 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # @warkypublic/artemis-kit +## 1.0.6 + +### Patch Changes + +- 0347718: Bump version + ## 1.0.5 ### Patch Changes diff --git a/package.json b/package.json index c4c37e7..e7cdcf0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@warkypublic/artemis-kit", - "version": "1.0.5", + "version": "1.0.6", "description": "A comprehensive TypeScript/JavaScript utility library focused on precision and efficiency.", "type": "module", "main": "./src/index.ts",