@alquimia-ai/tools 1.13.1 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/dist/actions/index.d.mts +7 -17
  2. package/dist/actions/index.d.ts +7 -17
  3. package/dist/actions/index.js +45 -152
  4. package/dist/actions/index.js.map +1 -1
  5. package/dist/actions/index.mjs +45 -152
  6. package/dist/actions/index.mjs.map +1 -1
  7. package/dist/adapters/fetch.d.mts +12 -0
  8. package/dist/adapters/fetch.d.ts +12 -0
  9. package/dist/adapters/fetch.js +44 -0
  10. package/dist/adapters/fetch.js.map +1 -0
  11. package/dist/adapters/fetch.mjs +23 -0
  12. package/dist/adapters/fetch.mjs.map +1 -0
  13. package/dist/adapters/index.d.mts +11 -0
  14. package/dist/adapters/index.d.ts +11 -0
  15. package/dist/adapters/index.js +19 -0
  16. package/dist/adapters/index.js.map +1 -0
  17. package/dist/adapters/index.mjs +1 -0
  18. package/dist/adapters/index.mjs.map +1 -0
  19. package/dist/adapters/next.d.mts +10 -0
  20. package/dist/adapters/next.d.ts +10 -0
  21. package/dist/adapters/next.js +42 -0
  22. package/dist/adapters/next.js.map +1 -0
  23. package/dist/adapters/next.mjs +21 -0
  24. package/dist/adapters/next.mjs.map +1 -0
  25. package/dist/hooks/index.d.mts +22 -2
  26. package/dist/hooks/index.d.ts +22 -2
  27. package/dist/hooks/index.js +283 -66
  28. package/dist/hooks/index.js.map +1 -1
  29. package/dist/hooks/index.mjs +274 -67
  30. package/dist/hooks/index.mjs.map +1 -1
  31. package/dist/next/index.d.mts +49 -0
  32. package/dist/next/index.d.ts +49 -0
  33. package/dist/next/index.js +332 -0
  34. package/dist/next/index.js.map +1 -0
  35. package/dist/next/index.mjs +309 -0
  36. package/dist/next/index.mjs.map +1 -0
  37. package/dist/providers/index.d.mts +7 -3
  38. package/dist/providers/index.d.ts +7 -3
  39. package/dist/providers/index.js +15 -14
  40. package/dist/providers/index.js.map +1 -1
  41. package/dist/providers/index.mjs +15 -14
  42. package/dist/providers/index.mjs.map +1 -1
  43. package/dist/proxy.d.mts +15 -0
  44. package/dist/proxy.d.ts +15 -0
  45. package/dist/proxy.js +147 -0
  46. package/dist/proxy.js.map +1 -0
  47. package/dist/proxy.mjs +126 -0
  48. package/dist/proxy.mjs.map +1 -0
  49. package/dist/sdk/index.d.mts +8 -14
  50. package/dist/sdk/index.d.ts +8 -14
  51. package/dist/sdk/index.js +49 -49
  52. package/dist/sdk/index.js.map +1 -1
  53. package/dist/sdk/index.mjs +49 -49
  54. package/dist/sdk/index.mjs.map +1 -1
  55. package/dist/services/index.d.mts +25 -3
  56. package/dist/services/index.d.ts +25 -3
  57. package/dist/types/index.d.mts +2 -1
  58. package/dist/types/index.d.ts +2 -1
  59. package/dist/types/index.js.map +1 -1
  60. package/dist/types/index.mjs.map +1 -1
  61. package/dist/utils/index.d.mts +1 -2
  62. package/dist/utils/index.d.ts +1 -2
  63. package/dist/utils/index.js +0 -17
  64. package/dist/utils/index.js.map +1 -1
  65. package/dist/utils/index.mjs +0 -17
  66. package/dist/utils/index.mjs.map +1 -1
  67. package/package.json +35 -5
  68. package/dist/providers/elastic/index.d.mts +0 -23
  69. package/dist/providers/elastic/index.d.ts +0 -23
  70. package/dist/providers/elastic/index.js +0 -102
  71. package/dist/providers/elastic/index.js.map +0 -1
  72. package/dist/providers/elastic/index.mjs +0 -69
  73. package/dist/providers/elastic/index.mjs.map +0 -1
  74. package/dist/services/apm/index.d.mts +0 -26
  75. package/dist/services/apm/index.d.ts +0 -26
  76. package/dist/services/apm/index.js +0 -86
  77. package/dist/services/apm/index.js.map +0 -1
  78. package/dist/services/apm/index.mjs +0 -63
  79. package/dist/services/apm/index.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/utils.ts"],"sourcesContent":["import {\n BaseAPIConfig,\n ApiError,\n ConversationsMap,\n ThinkingsInferenceResponse,\n Tooler,\n ToolEvent,\n} from \"../types/type\";\n\nexport function generateTranslatePrompt(text: string) {\n const prompt = `\n Arrange the following text according to the given object structure and return it as plain json, values summarized to one word, no formatting:\n {\n restrictions: {\n value: [''],\n description: 'Restrictions to certain foods'\n },\n alergies: {\n value: [''],\n description: 'Alergies to certain foods'\n },\n wine_preference: {\n value: [''],\n description: 'Preferences for the wine'\n },\n meal_preference: {\n value: [''],\n description: 'Preferences for the meal'\n }\n }\n\n Text: \"${text}\"\n\n Output:\n `;\n\n return prompt;\n}\n\nexport function getCookies(name: string) {\n if (typeof document === \"undefined\") return undefined;\n const value = `; ${document.cookie}`;\n const parts = value.split(`; ${name}=`);\n if (parts.length === 2) return parts.pop()?.split(\";\").shift();\n}\n\nexport function generateHeaders(config: BaseAPIConfig): HeadersInit {\n const headers: HeadersInit = {\n \"Content-Type\": \"application/json\",\n };\n\n if (config.token) {\n headers[\"Authorization\"] = `Bearer ${config.token}`;\n }\n\n if (config.headers) {\n Object.entries(config.headers).forEach(([key, value]) => {\n headers[key] = value;\n });\n }\n\n return headers;\n}\n\nexport function isTextContent(buffer: ArrayBuffer): boolean {\n try {\n const text = new TextDecoder().decode(buffer);\n const trimmedText = text.trim();\n\n return (\n /^[\\w\\#\\-\\*\\|\\[\\]\\-\\+\\=\\s\\n\\r\\t\\!]/.test(trimmedText) ||\n trimmedText.startsWith(\"#\") ||\n trimmedText.startsWith(\"![\") ||\n trimmedText.startsWith(\"```\") ||\n trimmedText.startsWith(\"---\") ||\n /^[a-zA-Z0-9\\s\\n\\r\\t]/.test(trimmedText) ||\n /^\\!\\[.*\\]\\(.*\\)/.test(trimmedText)\n );\n } catch {\n return false;\n }\n}\n\nexport function getQueryParam(param: string): string | null {\n if (typeof window !== \"undefined\") {\n const urlParams = new URLSearchParams(window.location.search);\n return urlParams.get(param);\n }\n return null;\n}\n\nexport function defineAssistantId(defaultId: string): string {\n if (typeof window !== \"undefined\" && window.location.pathname === \"/\") {\n const queryAssistantId = getQueryParam(\"talkwith\");\n if (queryAssistantId) {\n localStorage.setItem(\"assistantId\", queryAssistantId);\n return queryAssistantId;\n }\n const storedAssistantId = localStorage.getItem(\"assistantId\");\n return storedAssistantId || defaultId;\n }\n return defaultId;\n}\n\nexport function formatTimeWithUnit(timeMs: number): string {\n if (timeMs >= 1000) {\n return `${(timeMs / 1000).toFixed(1)}s`;\n }\n return `${Math.round(timeMs)}ms`;\n}\n\nexport function serializeAxiosError(error: unknown) {\n if (error instanceof Error) {\n const customError = error as ApiError;\n return {\n message: customError?.message,\n name: customError?.name,\n stack: customError?.stack,\n code: customError?.code,\n status: customError?.status,\n };\n }\n return {\n message: String(error),\n name: \"Unknown Error\",\n };\n}\n\nexport function parseConversationsMapCookie(\n cookieValue: string\n): ConversationsMap {\n try {\n const decodedValue = decodeURIComponent(cookieValue);\n return JSON.parse(decodedValue) as ConversationsMap;\n } catch (e) {\n console.error(\"Error parsing conversations cookie:\", e);\n return {};\n }\n}\n\nexport function getTopicSessionId(topicId: string): string {\n const conversationsStr = getCookies(\"alquimia-sessions\") || \"{}\";\n if (!conversationsStr) {\n const sessionCookie = getCookies(\"alquimia-session\");\n return sessionCookie || \"\";\n }\n\n const conversationsMap = parseConversationsMapCookie(conversationsStr);\n return conversationsMap[topicId] || \"\";\n}\n\nexport function createMessageId() {\n return Math.floor(Math.random() * 1000000).toString();\n}\n\nexport function hasToolSummary(data: any) {\n return data.tool_summary && Object.keys(data.tool_summary).length > 0;\n}\n\nexport function mergeThinkingsByControlId(\n existingThinkings: ThinkingsInferenceResponse[] = [],\n newThinkings: ThinkingsInferenceResponse[] = []\n): ThinkingsInferenceResponse[] {\n const thinkingsMap = new Map(existingThinkings.map((t) => [t.control_id, t]));\n for (const t of newThinkings) {\n if (t && t.control_id) {\n thinkingsMap.set(t.control_id, t);\n }\n }\n return Array.from(thinkingsMap.values());\n}\n\nexport function extractAnswerContent(content: string): string {\n if (typeof content !== \"string\") return \"\";\n const trimmed = content.trim();\n if (trimmed.startsWith(\"{\")) {\n try {\n const repaired = trimmed.replace(/(?<!\\\\)\\n/g, \"\\\\n\");\n const parsed = JSON.parse(repaired);\n if (parsed && typeof parsed === \"object\" && \"answer\" in parsed) {\n return parsed.answer;\n }\n } catch (e) {\n return content;\n }\n }\n return content;\n}\n\nexport function mergeToolerByControlId(\n currentTooler: Tooler[],\n toolEvent: ToolEvent\n): Tooler[] {\n const { event_class, control_id, data, status } = toolEvent;\n const existingTool = currentTooler.find((t) => t.control_id === control_id);\n const base: Tooler = existingTool || { control_id };\n\n let updated: Tooler;\n switch (event_class) {\n case \"ServerToolExecutionCommand\":\n updated = {\n ...base,\n tool_summary: {\n name: data.name,\n parameters: data,\n },\n };\n break;\n case \"ToolExecutionResponse\":\n updated = {\n ...base,\n tool_output: {\n result: data,\n status,\n },\n };\n break;\n case \"A2AInferenceCommand\":\n updated = {\n ...base,\n tool_summary: {\n name: data.name,\n parameters: { ...data, type: \"A2A\" },\n },\n };\n break;\n default:\n return currentTooler;\n }\n\n return currentTooler.some(tool => tool.control_id === control_id)\n ? currentTooler.map(tool => (tool.control_id === control_id ? updated : tool))\n : [...currentTooler, updated];\n}\n\nexport function mergeToolEvents(\n initial: Tooler[],\n toolEvents?: ToolEvent[]\n): Tooler[] {\n return (toolEvents ?? []).reduce(\n (acc, toolEvent) => mergeToolerByControlId(acc, toolEvent),\n initial\n );\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/utils/utils.ts"],"sourcesContent":["import {\n BaseAPIConfig,\n ApiError,\n ConversationsMap,\n ThinkingsInferenceResponse,\n Tooler,\n ToolEvent,\n} from \"../types/type\";\n\nexport function generateTranslatePrompt(text: string) {\n const prompt = `\n Arrange the following text according to the given object structure and return it as plain json, values summarized to one word, no formatting:\n {\n restrictions: {\n value: [''],\n description: 'Restrictions to certain foods'\n },\n alergies: {\n value: [''],\n description: 'Alergies to certain foods'\n },\n wine_preference: {\n value: [''],\n description: 'Preferences for the wine'\n },\n meal_preference: {\n value: [''],\n description: 'Preferences for the meal'\n }\n }\n\n Text: \"${text}\"\n\n Output:\n `;\n\n return prompt;\n}\n\nexport function getCookies(name: string) {\n if (typeof document === \"undefined\") return undefined;\n const value = `; ${document.cookie}`;\n const parts = value.split(`; ${name}=`);\n if (parts.length === 2) return parts.pop()?.split(\";\").shift();\n}\n\nexport function generateHeaders(config: BaseAPIConfig): HeadersInit {\n const headers: HeadersInit = {\n \"Content-Type\": \"application/json\",\n };\n\n if (config.token) {\n headers[\"Authorization\"] = `Bearer ${config.token}`;\n }\n\n if (config.headers) {\n Object.entries(config.headers).forEach(([key, value]) => {\n headers[key] = value;\n });\n }\n\n return headers;\n}\n\nexport function isTextContent(buffer: ArrayBuffer): boolean {\n try {\n const text = new TextDecoder().decode(buffer);\n const trimmedText = text.trim();\n\n return (\n /^[\\w\\#\\-\\*\\|\\[\\]\\-\\+\\=\\s\\n\\r\\t\\!]/.test(trimmedText) ||\n trimmedText.startsWith(\"#\") ||\n trimmedText.startsWith(\"![\") ||\n trimmedText.startsWith(\"```\") ||\n trimmedText.startsWith(\"---\") ||\n /^[a-zA-Z0-9\\s\\n\\r\\t]/.test(trimmedText) ||\n /^\\!\\[.*\\]\\(.*\\)/.test(trimmedText)\n );\n } catch {\n return false;\n }\n}\n\nexport function getQueryParam(param: string): string | null {\n if (typeof window !== \"undefined\") {\n const urlParams = new URLSearchParams(window.location.search);\n return urlParams.get(param);\n }\n return null;\n}\n\nexport function defineAssistantId(defaultId: string): string {\n if (typeof window !== \"undefined\" && window.location.pathname === \"/\") {\n const queryAssistantId = getQueryParam(\"talkwith\");\n if (queryAssistantId) {\n localStorage.setItem(\"assistantId\", queryAssistantId);\n return queryAssistantId;\n }\n const storedAssistantId = localStorage.getItem(\"assistantId\");\n return storedAssistantId || defaultId;\n }\n return defaultId;\n}\n\nexport function formatTimeWithUnit(timeMs: number): string {\n if (timeMs >= 1000) {\n return `${(timeMs / 1000).toFixed(1)}s`;\n }\n return `${Math.round(timeMs)}ms`;\n}\n\nexport function serializeAxiosError(error: unknown) {\n if (error instanceof Error) {\n const customError = error as ApiError;\n return {\n message: customError?.message,\n name: customError?.name,\n stack: customError?.stack,\n code: customError?.code,\n status: customError?.status,\n };\n }\n return {\n message: String(error),\n name: \"Unknown Error\",\n };\n}\n\nexport function parseConversationsMapCookie(\n cookieValue: string\n): ConversationsMap {\n try {\n const decodedValue = decodeURIComponent(cookieValue);\n return JSON.parse(decodedValue) as ConversationsMap;\n } catch (e) {\n console.error(\"Error parsing conversations cookie:\", e);\n return {};\n }\n}\n\nexport function getTopicSessionId(topicId: string): string {\n const conversationsStr = getCookies(\"alquimia-sessions\") || \"{}\";\n if (!conversationsStr) {\n const sessionCookie = getCookies(\"alquimia-session\");\n return sessionCookie || \"\";\n }\n\n const conversationsMap = parseConversationsMapCookie(conversationsStr);\n return conversationsMap[topicId] || \"\";\n}\n\nexport function createMessageId() {\n return Math.floor(Math.random() * 1000000).toString();\n}\n\nexport function hasToolSummary(data: any) {\n return data.tool_summary && Object.keys(data.tool_summary).length > 0;\n}\n\nexport function mergeThinkingsByControlId(\n existingThinkings: ThinkingsInferenceResponse[] = [],\n newThinkings: ThinkingsInferenceResponse[] = []\n): ThinkingsInferenceResponse[] {\n const thinkingsMap = new Map(existingThinkings.map((t) => [t.control_id, t]));\n for (const t of newThinkings) {\n if (t && t.control_id) {\n thinkingsMap.set(t.control_id, t);\n }\n }\n return Array.from(thinkingsMap.values());\n}\n\n\nexport function mergeToolerByControlId(\n currentTooler: Tooler[],\n toolEvent: ToolEvent\n): Tooler[] {\n const { event_class, control_id, data, status } = toolEvent;\n const existingTool = currentTooler.find((t) => t.control_id === control_id);\n const base: Tooler = existingTool || { control_id };\n\n let updated: Tooler;\n switch (event_class) {\n case \"ServerToolExecutionCommand\":\n updated = {\n ...base,\n tool_summary: {\n name: data.name,\n parameters: data,\n },\n };\n break;\n case \"ToolExecutionResponse\":\n updated = {\n ...base,\n tool_output: {\n result: data,\n status,\n },\n };\n break;\n case \"A2AInferenceCommand\":\n updated = {\n ...base,\n tool_summary: {\n name: data.name,\n parameters: { ...data, type: \"A2A\" },\n },\n };\n break;\n default:\n return currentTooler;\n }\n\n return currentTooler.some(tool => tool.control_id === control_id)\n ? currentTooler.map(tool => (tool.control_id === control_id ? updated : tool))\n : [...currentTooler, updated];\n}\n\nexport function mergeToolEvents(\n initial: Tooler[],\n toolEvents?: ToolEvent[]\n): Tooler[] {\n return (toolEvents ?? []).reduce(\n (acc, toolEvent) => mergeToolerByControlId(acc, toolEvent),\n initial\n );\n}\n"],"mappings":"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","names":[]}
package/package.json CHANGED
@@ -1,11 +1,36 @@
1
1
  {
2
2
  "name": "@alquimia-ai/tools",
3
- "version": "1.13.1",
3
+ "version": "2.0.1",
4
4
  "author": "Alquimia AI",
5
5
  "description": "tools for Alquimia SDK",
6
6
  "private": false,
7
7
  "license": "MIT",
8
8
  "exports": {
9
+ "./adapters": {
10
+ "types": "./dist/adapters/index.d.ts",
11
+ "import": "./dist/adapters/index.mjs",
12
+ "require": "./dist/adapters/index.js"
13
+ },
14
+ "./adapters/next": {
15
+ "types": "./dist/adapters/next.d.ts",
16
+ "import": "./dist/adapters/next.mjs",
17
+ "require": "./dist/adapters/next.js"
18
+ },
19
+ "./adapters/fetch": {
20
+ "types": "./dist/adapters/fetch.d.ts",
21
+ "import": "./dist/adapters/fetch.mjs",
22
+ "require": "./dist/adapters/fetch.js"
23
+ },
24
+ "./next": {
25
+ "types": "./dist/next/index.d.ts",
26
+ "import": "./dist/next/index.mjs",
27
+ "require": "./dist/next/index.js"
28
+ },
29
+ "./proxy": {
30
+ "types": "./dist/proxy.d.ts",
31
+ "import": "./dist/proxy.mjs",
32
+ "require": "./dist/proxy.js"
33
+ },
9
34
  "./sdk": {
10
35
  "types": "./dist/sdk/index.d.ts",
11
36
  "import": "./dist/sdk/index.mjs",
@@ -51,9 +76,9 @@
51
76
  "scripts": {
52
77
  "lint": "eslint . --max-warnings 0",
53
78
  "generate:component": "turbo gen react-component",
54
- "build": "tsup src/index.ts src/**/index.ts src/**/**/index.ts --format esm,cjs --target es2020",
79
+ "build": "tsup",
55
80
  "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist",
56
- "dev": "tsup src/index.ts src/**/index.ts src/**/**/index.ts --format esm,cjs --target es2020 --watch"
81
+ "dev": "tsup --watch"
57
82
  },
58
83
  "files": [
59
84
  "dist/**",
@@ -88,8 +113,13 @@
88
113
  "react": "^18.2.0"
89
114
  },
90
115
  "peerDependencies": {
91
- "next": "^14.2.15",
92
116
  "react": ">=18.0.0",
93
- "react-dom": ">=18.0.0"
117
+ "react-dom": ">=18.0.0",
118
+ "next": ">=14.0.0"
119
+ },
120
+ "peerDependenciesMeta": {
121
+ "next": {
122
+ "optional": true
123
+ }
94
124
  }
95
125
  }
@@ -1,23 +0,0 @@
1
- import { L as LoggerProvider } from '../../providers-0Gi78uNQ.mjs';
2
- import '../../types/index.mjs';
3
- import '@elastic/apm-rum';
4
- import 'ai';
5
-
6
- interface ElasticLoggerConfig {
7
- endpoint: string;
8
- username: string;
9
- password: string;
10
- index?: string;
11
- esVersion?: number;
12
- flushBytes?: number;
13
- }
14
- declare class ElasticLoggerProvider extends LoggerProvider {
15
- private logger;
16
- private constructor();
17
- static create(config: ElasticLoggerConfig): Promise<ElasticLoggerProvider>;
18
- private initialize;
19
- logInfo(message: string, data?: Record<string, any>): void;
20
- logError(message: string, error: Error, data?: Record<string, any>): void;
21
- }
22
-
23
- export { ElasticLoggerProvider };
@@ -1,23 +0,0 @@
1
- import { L as LoggerProvider } from '../../providers-BJTXCtI3.js';
2
- import '../../types/index.js';
3
- import '@elastic/apm-rum';
4
- import 'ai';
5
-
6
- interface ElasticLoggerConfig {
7
- endpoint: string;
8
- username: string;
9
- password: string;
10
- index?: string;
11
- esVersion?: number;
12
- flushBytes?: number;
13
- }
14
- declare class ElasticLoggerProvider extends LoggerProvider {
15
- private logger;
16
- private constructor();
17
- static create(config: ElasticLoggerConfig): Promise<ElasticLoggerProvider>;
18
- private initialize;
19
- logInfo(message: string, data?: Record<string, any>): void;
20
- logError(message: string, error: Error, data?: Record<string, any>): void;
21
- }
22
-
23
- export { ElasticLoggerProvider };
@@ -1,102 +0,0 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
28
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
-
30
- // src/providers/elastic/index.ts
31
- var elastic_exports = {};
32
- __export(elastic_exports, {
33
- ElasticLoggerProvider: () => ElasticLoggerProvider
34
- });
35
- module.exports = __toCommonJS(elastic_exports);
36
-
37
- // src/providers/providers.ts
38
- var LoggerProvider = class {
39
- constructor(config) {
40
- this.config = config;
41
- }
42
- };
43
-
44
- // src/providers/elastic/elastic-search.ts
45
- var import_pino = __toESM(require("pino"));
46
- var ElasticLoggerProvider = class _ElasticLoggerProvider extends LoggerProvider {
47
- constructor(config) {
48
- super(config);
49
- this.logger = console;
50
- }
51
- static async create(config) {
52
- const provider = new _ElasticLoggerProvider(config);
53
- await provider.initialize(config);
54
- return provider;
55
- }
56
- async initialize(config) {
57
- if (typeof window === "undefined") {
58
- const [pinoElastic] = await Promise.all([
59
- import("pino-elasticsearch")
60
- ]);
61
- const streamToElastic = pinoElastic.default({
62
- index: config.index || "logs-index",
63
- node: config.endpoint,
64
- esVersion: config.esVersion || 7,
65
- flushBytes: config.flushBytes || 1e3,
66
- auth: {
67
- username: config.username || "",
68
- password: config.password || ""
69
- },
70
- tls: {
71
- rejectUnauthorized: false
72
- },
73
- op_type: "create"
74
- });
75
- streamToElastic.on("error", (err) => {
76
- console.error("Elasticsearch stream error:", err);
77
- });
78
- streamToElastic.on("insertError", (err) => {
79
- console.error("Elasticsearch insert error:", err);
80
- });
81
- streamToElastic.on("insert", () => {
82
- console.log("Successfully sent log to Elasticsearch");
83
- });
84
- this.logger = (0, import_pino.default)({
85
- level: "info",
86
- timestamp: () => `,"time":"${(/* @__PURE__ */ new Date()).toISOString()}"`
87
- }, streamToElastic);
88
- }
89
- }
90
- logInfo(message, data) {
91
- this.logger.info({ ...data }, message);
92
- }
93
- logError(message, error, data) {
94
- const errorDetails = {
95
- message: error.message,
96
- name: error.name,
97
- stack: error.stack
98
- };
99
- this.logger.error({ error, ...data, ...errorDetails }, message);
100
- }
101
- };
102
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/providers/elastic/index.ts","../../../src/providers/providers.ts","../../../src/providers/elastic/elastic-search.ts"],"sourcesContent":["export * from \"./elastic-search\";","import { TTSResult } from \"../types\";\n\nexport abstract class GenerativeProvider {\n private config: Record<string, any>;\n\n constructor(config: Record<string, any>) {\n this.config = config;\n }\n}\n\nexport abstract class WhisperProvider {\n protected config: Record<string, any>;\n\n constructor(config: Record<string, any>) {\n this.config = config;\n }\n\n abstract textToSpeech(text: string): Promise<TTSResult>\n\n abstract speechToText(audio: string): Promise<string>\n} \n\nexport abstract class StableDiffusionProvider {\n protected config: Record<string, any>;\n\n constructor(config: Record<string, any>) {\n this.config = config;\n }\n\n abstract generateImage(query: string): Promise<string>\n}\n\nexport abstract class CharacterizationProvider {\n protected config: Record<string, any>;\n\n constructor(config: Record<string, any>) {\n this.config = config;\n }\n\n abstract analyzeCharacterization(text: string): Promise<Record<string, any>>\n}\n\nexport abstract class RatingsProvider {\n protected config: Record<string, any>;\n\n constructor(config: Record<string, any>) {\n this.config = config;\n }\n\n abstract rate(data: Record<string, any>): Promise<Record<string, any>>;\n}\n\nexport abstract class LoggerProvider {\n protected config: Record<string, any>;\n\n constructor(config: Record<string, any>) {\n this.config = config;\n }\n\n abstract logInfo(message: string, data?: Record<string, any>): void;\n abstract logError(message: string, error: Error, data?: Record<string, any>): void;\n}\n","import { LoggerProvider } from \"../providers\";\nimport pino from \"pino\";\n\ninterface ElasticLoggerConfig {\n endpoint: string;\n username: string;\n password: string;\n index?: string;\n esVersion?: number;\n flushBytes?: number;\n}\n\nclass ElasticLoggerProvider extends LoggerProvider {\n private logger: pino.Logger;\n\n private constructor(config: ElasticLoggerConfig) {\n super(config);\n this.logger = console as any;\n }\n\n public static async create(config: ElasticLoggerConfig): Promise<ElasticLoggerProvider> {\n const provider = new ElasticLoggerProvider(config);\n await provider.initialize(config);\n return provider;\n }\n\n private async initialize(config: ElasticLoggerConfig) {\n if (typeof window === 'undefined') {\n const [pinoElastic] = await Promise.all([\n import('pino-elasticsearch')\n ]);\n\n const streamToElastic = pinoElastic.default({\n index: config.index || \"logs-index\",\n node: config.endpoint,\n esVersion: config.esVersion || 7,\n flushBytes: config.flushBytes || 1000,\n auth: {\n username: config.username || \"\",\n password: config.password || \"\",\n },\n tls: {\n rejectUnauthorized: false,\n },\n op_type: 'create',\n });\n\n streamToElastic.on('error', (err) => {\n console.error('Elasticsearch stream error:', err);\n });\n\n streamToElastic.on('insertError', (err) => {\n console.error('Elasticsearch insert error:', err);\n });\n\n streamToElastic.on('insert', () => {\n console.log('Successfully sent log to Elasticsearch');\n });\n\n\n this.logger = pino({\n level: 'info',\n timestamp: () => `,\"time\":\"${new Date().toISOString()}\"`,\n }, streamToElastic);\n }\n }\n\n logInfo(message: string, data?: Record<string, any>): void {\n this.logger.info({ ...data }, message);\n }\n\n logError(message: string, error: Error, data?: Record<string, any>): void {\n const errorDetails = {\n message: error.message,\n name: error.name,\n stack: error.stack,\n };\n this.logger.error({ error, ...data, ...errorDetails }, message);\n }\n}\n\nexport { ElasticLoggerProvider };"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACoDO,IAAe,iBAAf,MAA8B;AAAA,EAGjC,YAAY,QAA6B;AACrC,SAAK,SAAS;AAAA,EAClB;AAIJ;;;AC5DA,kBAAiB;AAWjB,IAAM,wBAAN,MAAM,+BAA8B,eAAe;AAAA,EAGzC,YAAY,QAA6B;AAC/C,UAAM,MAAM;AACZ,SAAK,SAAS;AAAA,EAChB;AAAA,EAEA,aAAoB,OAAO,QAA6D;AACtF,UAAM,WAAW,IAAI,uBAAsB,MAAM;AACjD,UAAM,SAAS,WAAW,MAAM;AAChC,WAAO;AAAA,EACT;AAAA,EAEA,MAAc,WAAW,QAA6B;AACpD,QAAI,OAAO,WAAW,aAAa;AACjC,YAAM,CAAC,WAAW,IAAI,MAAM,QAAQ,IAAI;AAAA,QACtC,OAAO,oBAAoB;AAAA,MAC7B,CAAC;AAED,YAAM,kBAAkB,YAAY,QAAQ;AAAA,QAC1C,OAAO,OAAO,SAAS;AAAA,QACvB,MAAM,OAAO;AAAA,QACb,WAAW,OAAO,aAAa;AAAA,QAC/B,YAAY,OAAO,cAAc;AAAA,QACjC,MAAM;AAAA,UACJ,UAAU,OAAO,YAAY;AAAA,UAC7B,UAAU,OAAO,YAAY;AAAA,QAC/B;AAAA,QACA,KAAK;AAAA,UACH,oBAAoB;AAAA,QACtB;AAAA,QACA,SAAS;AAAA,MACX,CAAC;AAED,sBAAgB,GAAG,SAAS,CAAC,QAAQ;AACnC,gBAAQ,MAAM,+BAA+B,GAAG;AAAA,MAClD,CAAC;AAED,sBAAgB,GAAG,eAAe,CAAC,QAAQ;AACzC,gBAAQ,MAAM,+BAA+B,GAAG;AAAA,MAClD,CAAC;AAED,sBAAgB,GAAG,UAAU,MAAM;AACjC,gBAAQ,IAAI,wCAAwC;AAAA,MACtD,CAAC;AAGD,WAAK,aAAS,YAAAA,SAAK;AAAA,QACjB,OAAO;AAAA,QACP,WAAW,MAAM,aAAY,oBAAI,KAAK,GAAE,YAAY,CAAC;AAAA,MACvD,GAAG,eAAe;AAAA,IACpB;AAAA,EACF;AAAA,EAEA,QAAQ,SAAiB,MAAkC;AACzD,SAAK,OAAO,KAAK,EAAE,GAAG,KAAK,GAAG,OAAO;AAAA,EACvC;AAAA,EAEA,SAAS,SAAiB,OAAc,MAAkC;AACxE,UAAM,eAAe;AAAA,MACnB,SAAS,MAAM;AAAA,MACf,MAAM,MAAM;AAAA,MACZ,OAAO,MAAM;AAAA,IACf;AACA,SAAK,OAAO,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,aAAa,GAAG,OAAO;AAAA,EAChE;AACF;","names":["pino"]}
@@ -1,69 +0,0 @@
1
- // src/providers/providers.ts
2
- var LoggerProvider = class {
3
- constructor(config) {
4
- this.config = config;
5
- }
6
- };
7
-
8
- // src/providers/elastic/elastic-search.ts
9
- import pino from "pino";
10
- var ElasticLoggerProvider = class _ElasticLoggerProvider extends LoggerProvider {
11
- constructor(config) {
12
- super(config);
13
- this.logger = console;
14
- }
15
- static async create(config) {
16
- const provider = new _ElasticLoggerProvider(config);
17
- await provider.initialize(config);
18
- return provider;
19
- }
20
- async initialize(config) {
21
- if (typeof window === "undefined") {
22
- const [pinoElastic] = await Promise.all([
23
- import("pino-elasticsearch")
24
- ]);
25
- const streamToElastic = pinoElastic.default({
26
- index: config.index || "logs-index",
27
- node: config.endpoint,
28
- esVersion: config.esVersion || 7,
29
- flushBytes: config.flushBytes || 1e3,
30
- auth: {
31
- username: config.username || "",
32
- password: config.password || ""
33
- },
34
- tls: {
35
- rejectUnauthorized: false
36
- },
37
- op_type: "create"
38
- });
39
- streamToElastic.on("error", (err) => {
40
- console.error("Elasticsearch stream error:", err);
41
- });
42
- streamToElastic.on("insertError", (err) => {
43
- console.error("Elasticsearch insert error:", err);
44
- });
45
- streamToElastic.on("insert", () => {
46
- console.log("Successfully sent log to Elasticsearch");
47
- });
48
- this.logger = pino({
49
- level: "info",
50
- timestamp: () => `,"time":"${(/* @__PURE__ */ new Date()).toISOString()}"`
51
- }, streamToElastic);
52
- }
53
- }
54
- logInfo(message, data) {
55
- this.logger.info({ ...data }, message);
56
- }
57
- logError(message, error, data) {
58
- const errorDetails = {
59
- message: error.message,
60
- name: error.name,
61
- stack: error.stack
62
- };
63
- this.logger.error({ error, ...data, ...errorDetails }, message);
64
- }
65
- };
66
- export {
67
- ElasticLoggerProvider
68
- };
69
- //# sourceMappingURL=index.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/providers/providers.ts","../../../src/providers/elastic/elastic-search.ts"],"sourcesContent":["import { TTSResult } from \"../types\";\n\nexport abstract class GenerativeProvider {\n private config: Record<string, any>;\n\n constructor(config: Record<string, any>) {\n this.config = config;\n }\n}\n\nexport abstract class WhisperProvider {\n protected config: Record<string, any>;\n\n constructor(config: Record<string, any>) {\n this.config = config;\n }\n\n abstract textToSpeech(text: string): Promise<TTSResult>\n\n abstract speechToText(audio: string): Promise<string>\n} \n\nexport abstract class StableDiffusionProvider {\n protected config: Record<string, any>;\n\n constructor(config: Record<string, any>) {\n this.config = config;\n }\n\n abstract generateImage(query: string): Promise<string>\n}\n\nexport abstract class CharacterizationProvider {\n protected config: Record<string, any>;\n\n constructor(config: Record<string, any>) {\n this.config = config;\n }\n\n abstract analyzeCharacterization(text: string): Promise<Record<string, any>>\n}\n\nexport abstract class RatingsProvider {\n protected config: Record<string, any>;\n\n constructor(config: Record<string, any>) {\n this.config = config;\n }\n\n abstract rate(data: Record<string, any>): Promise<Record<string, any>>;\n}\n\nexport abstract class LoggerProvider {\n protected config: Record<string, any>;\n\n constructor(config: Record<string, any>) {\n this.config = config;\n }\n\n abstract logInfo(message: string, data?: Record<string, any>): void;\n abstract logError(message: string, error: Error, data?: Record<string, any>): void;\n}\n","import { LoggerProvider } from \"../providers\";\nimport pino from \"pino\";\n\ninterface ElasticLoggerConfig {\n endpoint: string;\n username: string;\n password: string;\n index?: string;\n esVersion?: number;\n flushBytes?: number;\n}\n\nclass ElasticLoggerProvider extends LoggerProvider {\n private logger: pino.Logger;\n\n private constructor(config: ElasticLoggerConfig) {\n super(config);\n this.logger = console as any;\n }\n\n public static async create(config: ElasticLoggerConfig): Promise<ElasticLoggerProvider> {\n const provider = new ElasticLoggerProvider(config);\n await provider.initialize(config);\n return provider;\n }\n\n private async initialize(config: ElasticLoggerConfig) {\n if (typeof window === 'undefined') {\n const [pinoElastic] = await Promise.all([\n import('pino-elasticsearch')\n ]);\n\n const streamToElastic = pinoElastic.default({\n index: config.index || \"logs-index\",\n node: config.endpoint,\n esVersion: config.esVersion || 7,\n flushBytes: config.flushBytes || 1000,\n auth: {\n username: config.username || \"\",\n password: config.password || \"\",\n },\n tls: {\n rejectUnauthorized: false,\n },\n op_type: 'create',\n });\n\n streamToElastic.on('error', (err) => {\n console.error('Elasticsearch stream error:', err);\n });\n\n streamToElastic.on('insertError', (err) => {\n console.error('Elasticsearch insert error:', err);\n });\n\n streamToElastic.on('insert', () => {\n console.log('Successfully sent log to Elasticsearch');\n });\n\n\n this.logger = pino({\n level: 'info',\n timestamp: () => `,\"time\":\"${new Date().toISOString()}\"`,\n }, streamToElastic);\n }\n }\n\n logInfo(message: string, data?: Record<string, any>): void {\n this.logger.info({ ...data }, message);\n }\n\n logError(message: string, error: Error, data?: Record<string, any>): void {\n const errorDetails = {\n message: error.message,\n name: error.name,\n stack: error.stack,\n };\n this.logger.error({ error, ...data, ...errorDetails }, message);\n }\n}\n\nexport { ElasticLoggerProvider };"],"mappings":";AAoDO,IAAe,iBAAf,MAA8B;AAAA,EAGjC,YAAY,QAA6B;AACrC,SAAK,SAAS;AAAA,EAClB;AAIJ;;;AC5DA,OAAO,UAAU;AAWjB,IAAM,wBAAN,MAAM,+BAA8B,eAAe;AAAA,EAGzC,YAAY,QAA6B;AAC/C,UAAM,MAAM;AACZ,SAAK,SAAS;AAAA,EAChB;AAAA,EAEA,aAAoB,OAAO,QAA6D;AACtF,UAAM,WAAW,IAAI,uBAAsB,MAAM;AACjD,UAAM,SAAS,WAAW,MAAM;AAChC,WAAO;AAAA,EACT;AAAA,EAEA,MAAc,WAAW,QAA6B;AACpD,QAAI,OAAO,WAAW,aAAa;AACjC,YAAM,CAAC,WAAW,IAAI,MAAM,QAAQ,IAAI;AAAA,QACtC,OAAO,oBAAoB;AAAA,MAC7B,CAAC;AAED,YAAM,kBAAkB,YAAY,QAAQ;AAAA,QAC1C,OAAO,OAAO,SAAS;AAAA,QACvB,MAAM,OAAO;AAAA,QACb,WAAW,OAAO,aAAa;AAAA,QAC/B,YAAY,OAAO,cAAc;AAAA,QACjC,MAAM;AAAA,UACJ,UAAU,OAAO,YAAY;AAAA,UAC7B,UAAU,OAAO,YAAY;AAAA,QAC/B;AAAA,QACA,KAAK;AAAA,UACH,oBAAoB;AAAA,QACtB;AAAA,QACA,SAAS;AAAA,MACX,CAAC;AAED,sBAAgB,GAAG,SAAS,CAAC,QAAQ;AACnC,gBAAQ,MAAM,+BAA+B,GAAG;AAAA,MAClD,CAAC;AAED,sBAAgB,GAAG,eAAe,CAAC,QAAQ;AACzC,gBAAQ,MAAM,+BAA+B,GAAG;AAAA,MAClD,CAAC;AAED,sBAAgB,GAAG,UAAU,MAAM;AACjC,gBAAQ,IAAI,wCAAwC;AAAA,MACtD,CAAC;AAGD,WAAK,SAAS,KAAK;AAAA,QACjB,OAAO;AAAA,QACP,WAAW,MAAM,aAAY,oBAAI,KAAK,GAAE,YAAY,CAAC;AAAA,MACvD,GAAG,eAAe;AAAA,IACpB;AAAA,EACF;AAAA,EAEA,QAAQ,SAAiB,MAAkC;AACzD,SAAK,OAAO,KAAK,EAAE,GAAG,KAAK,GAAG,OAAO;AAAA,EACvC;AAAA,EAEA,SAAS,SAAiB,OAAc,MAAkC;AACxE,UAAM,eAAe;AAAA,MACnB,SAAS,MAAM;AAAA,MACf,MAAM,MAAM;AAAA,MACZ,OAAO,MAAM;AAAA,IACf;AACA,SAAK,OAAO,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,aAAa,GAAG,OAAO;AAAA,EAChE;AACF;","names":[]}
@@ -1,26 +0,0 @@
1
- import { Transaction } from '@elastic/apm-rum';
2
- import { ApmSpan } from '../../types/index.mjs';
3
- import 'ai';
4
-
5
- interface APMInitializerProps {
6
- serviceName: string;
7
- serverUrl?: string;
8
- serverUrlPrefix?: string | undefined;
9
- logLevel?: 'trace' | 'debug' | 'info' | 'warn' | 'error';
10
- environment: string;
11
- ignoreUrls?: Array<string | RegExp>;
12
- }
13
- type LabelValue = string | number | boolean | null;
14
- interface TransactionLabels {
15
- [key: string]: LabelValue;
16
- }
17
- declare function APMInitializer({ serviceName, serverUrl, serverUrlPrefix, logLevel, environment, ignoreUrls }: APMInitializerProps): null;
18
- declare function handleApmTransaction(name: string, type: string, labels: TransactionLabels, callback: () => Promise<void> | void): Promise<void>;
19
- declare function traceError(error: string | Error, labels?: TransactionLabels, customMessage?: string): void;
20
- declare const startManagedTransaction: (name: string, type: string | undefined, spanName: string, spanType?: string) => {
21
- transaction: Transaction | undefined;
22
- span: ApmSpan | undefined;
23
- traceParentId: string | undefined;
24
- };
25
-
26
- export { APMInitializer, handleApmTransaction, startManagedTransaction, traceError };
@@ -1,26 +0,0 @@
1
- import { Transaction } from '@elastic/apm-rum';
2
- import { ApmSpan } from '../../types/index.js';
3
- import 'ai';
4
-
5
- interface APMInitializerProps {
6
- serviceName: string;
7
- serverUrl?: string;
8
- serverUrlPrefix?: string | undefined;
9
- logLevel?: 'trace' | 'debug' | 'info' | 'warn' | 'error';
10
- environment: string;
11
- ignoreUrls?: Array<string | RegExp>;
12
- }
13
- type LabelValue = string | number | boolean | null;
14
- interface TransactionLabels {
15
- [key: string]: LabelValue;
16
- }
17
- declare function APMInitializer({ serviceName, serverUrl, serverUrlPrefix, logLevel, environment, ignoreUrls }: APMInitializerProps): null;
18
- declare function handleApmTransaction(name: string, type: string, labels: TransactionLabels, callback: () => Promise<void> | void): Promise<void>;
19
- declare function traceError(error: string | Error, labels?: TransactionLabels, customMessage?: string): void;
20
- declare const startManagedTransaction: (name: string, type: string | undefined, spanName: string, spanType?: string) => {
21
- transaction: Transaction | undefined;
22
- span: ApmSpan | undefined;
23
- traceParentId: string | undefined;
24
- };
25
-
26
- export { APMInitializer, handleApmTransaction, startManagedTransaction, traceError };
@@ -1,86 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
-
20
- // src/services/apm/index.ts
21
- var apm_exports = {};
22
- __export(apm_exports, {
23
- APMInitializer: () => APMInitializer,
24
- handleApmTransaction: () => handleApmTransaction,
25
- startManagedTransaction: () => startManagedTransaction,
26
- traceError: () => traceError
27
- });
28
- module.exports = __toCommonJS(apm_exports);
29
-
30
- // src/services/apm/elastic-apm.ts
31
- var import_react = require("react");
32
- var import_apm_rum = require("@elastic/apm-rum");
33
- function APMInitializer({
34
- serviceName,
35
- serverUrl,
36
- serverUrlPrefix = void 0,
37
- logLevel = "warn",
38
- environment,
39
- ignoreUrls = []
40
- }) {
41
- (0, import_react.useEffect)(() => {
42
- const serviceUrl = !serverUrl ? typeof window !== "undefined" ? window.location.origin : "" : serverUrl;
43
- (0, import_apm_rum.init)({
44
- serviceName,
45
- serverUrl: serviceUrl,
46
- serverUrlPrefix,
47
- serviceVersion: "1.0.0",
48
- logLevel,
49
- environment,
50
- ignoreTransactions: ignoreUrls
51
- });
52
- }, []);
53
- return null;
54
- }
55
- async function handleApmTransaction(name, type, labels, callback) {
56
- const transaction = import_apm_rum.apm.startTransaction(name, type);
57
- try {
58
- transaction?.addLabels(labels);
59
- await callback();
60
- } catch (error) {
61
- import_apm_rum.apm.captureError(error);
62
- } finally {
63
- transaction?.end();
64
- }
65
- }
66
- function traceError(error, labels, customMessage) {
67
- try {
68
- const errorObject = error instanceof Error ? error : new Error(customMessage ?? String(error));
69
- if (labels) {
70
- import_apm_rum.apm.addLabels(labels);
71
- }
72
- import_apm_rum.apm.captureError(errorObject);
73
- } catch (e) {
74
- throw new Error("Failed to capture error in APM:", e);
75
- }
76
- }
77
- var startManagedTransaction = (name, type = "http-request", spanName, spanType = "external.http") => {
78
- const transaction = import_apm_rum.apm.startTransaction(name, type, { managed: true });
79
- const span = transaction?.startSpan(spanName, spanType);
80
- const traceParentId = span ? createTraceParentId(span.traceId || "", span.id || "") : void 0;
81
- return { transaction, span, traceParentId };
82
- };
83
- var createTraceParentId = (traceId, spanId) => {
84
- return `00-${traceId}-${spanId}-01`;
85
- };
86
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/services/apm/index.ts","../../../src/services/apm/elastic-apm.ts"],"sourcesContent":["export * from \"./elastic-apm\";","'use client'\n\nimport { useEffect } from 'react'\nimport { init as initApm, apm, Transaction } from '@elastic/apm-rum'\nimport { ApmSpan } from '../../types/type'\n\ninterface APMInitializerProps {\n serviceName: string\n serverUrl?: string\n serverUrlPrefix?: string | undefined\n logLevel?: 'trace' | 'debug' | 'info' | 'warn' | 'error'\n environment: string\n ignoreUrls?: Array<string | RegExp>\n}\n\ntype LabelValue = string | number | boolean | null;\n\ninterface TransactionLabels {\n [key: string]: LabelValue;\n}\n\nexport function APMInitializer({\n serviceName,\n serverUrl,\n serverUrlPrefix = undefined,\n logLevel = 'warn',\n environment,\n ignoreUrls = []\n}: APMInitializerProps) {\n \n useEffect(() => {\n const serviceUrl = !serverUrl ? (typeof window !== 'undefined' ? window.location.origin : '') : serverUrl\n initApm({\n serviceName: serviceName,\n serverUrl: serviceUrl,\n serverUrlPrefix: serverUrlPrefix,\n serviceVersion: '1.0.0',\n logLevel: logLevel,\n environment: environment,\n ignoreTransactions: ignoreUrls\n })\n }, [])\n \n return null\n}\n\n\nexport async function handleApmTransaction(\n name: string,\n type: string,\n labels: TransactionLabels,\n callback: () => Promise<void> | void\n) {\n const transaction = apm.startTransaction(name, type);\n\n try {\n transaction?.addLabels(labels as Labels);\n await callback();\n } catch (error) {\n apm.captureError(error as Error);\n } finally {\n transaction?.end();\n }\n}\n\nexport function traceError(\n error: string | Error,\n labels?: TransactionLabels,\n customMessage?: string\n) {\n try {\n const errorObject =\n error instanceof Error\n ? error\n : new Error(customMessage ?? String(error));\n\n if (labels) {\n apm.addLabels(labels as Labels);\n }\n\n apm.captureError(errorObject);\n } catch (e) {\n throw new Error(\"Failed to capture error in APM:\", e as Error);\n }\n}\n\nexport const startManagedTransaction = (\n name: string,\n type: string = 'http-request',\n spanName: string,\n spanType: string = 'external.http'\n): { transaction: Transaction | undefined, span: ApmSpan | undefined, traceParentId: string | undefined } => {\n const transaction = apm.startTransaction(name, type, { managed: true });\n const span: ApmSpan | undefined = transaction?.startSpan(spanName, spanType);\n \n const traceParentId = span ? createTraceParentId(span.traceId || '', span.id || '') : undefined;\n \n return { transaction, span, traceParentId };\n};\n\nconst createTraceParentId = (traceId: string, spanId: string) => {\n return `00-${traceId}-${spanId}-01`;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACEA,mBAA0B;AAC1B,qBAAkD;AAkB3C,SAAS,eAAe;AAAA,EAC7B;AAAA,EACA;AAAA,EACA,kBAAkB;AAAA,EAClB,WAAW;AAAA,EACX;AAAA,EACA,aAAa,CAAC;AAChB,GAAwB;AAEtB,8BAAU,MAAM;AACd,UAAM,aAAa,CAAC,YAAa,OAAO,WAAW,cAAc,OAAO,SAAS,SAAS,KAAM;AAChG,uBAAAA,MAAQ;AAAA,MACN;AAAA,MACA,WAAW;AAAA,MACX;AAAA,MACA,gBAAgB;AAAA,MAChB;AAAA,MACA;AAAA,MACA,oBAAoB;AAAA,IACtB,CAAC;AAAA,EACH,GAAG,CAAC,CAAC;AAEL,SAAO;AACT;AAGA,eAAsB,qBACpB,MACA,MACA,QACA,UACA;AACA,QAAM,cAAc,mBAAI,iBAAiB,MAAM,IAAI;AAEnD,MAAI;AACF,iBAAa,UAAU,MAAgB;AACvC,UAAM,SAAS;AAAA,EACjB,SAAS,OAAO;AACd,uBAAI,aAAa,KAAc;AAAA,EACjC,UAAE;AACA,iBAAa,IAAI;AAAA,EACnB;AACF;AAEO,SAAS,WACd,OACA,QACA,eACA;AACA,MAAI;AACF,UAAM,cACJ,iBAAiB,QACb,QACA,IAAI,MAAM,iBAAiB,OAAO,KAAK,CAAC;AAE9C,QAAI,QAAQ;AACV,yBAAI,UAAU,MAAgB;AAAA,IAChC;AAEA,uBAAI,aAAa,WAAW;AAAA,EAC9B,SAAS,GAAG;AACV,UAAM,IAAI,MAAM,mCAAmC,CAAU;AAAA,EAC/D;AACF;AAEO,IAAM,0BAA0B,CACrC,MACA,OAAe,gBACf,UACA,WAAmB,oBACwF;AAC3G,QAAM,cAAc,mBAAI,iBAAiB,MAAM,MAAM,EAAE,SAAS,KAAK,CAAC;AACtE,QAAM,OAA4B,aAAa,UAAU,UAAU,QAAQ;AAE3E,QAAM,gBAAgB,OAAO,oBAAoB,KAAK,WAAW,IAAI,KAAK,MAAM,EAAE,IAAI;AAEtF,SAAO,EAAE,aAAa,MAAM,cAAc;AAC5C;AAEA,IAAM,sBAAsB,CAAC,SAAiB,WAAmB;AAC/D,SAAO,MAAM,OAAO,IAAI,MAAM;AAChC;","names":["initApm"]}
@@ -1,63 +0,0 @@
1
- // src/services/apm/elastic-apm.ts
2
- import { useEffect } from "react";
3
- import { init as initApm, apm } from "@elastic/apm-rum";
4
- function APMInitializer({
5
- serviceName,
6
- serverUrl,
7
- serverUrlPrefix = void 0,
8
- logLevel = "warn",
9
- environment,
10
- ignoreUrls = []
11
- }) {
12
- useEffect(() => {
13
- const serviceUrl = !serverUrl ? typeof window !== "undefined" ? window.location.origin : "" : serverUrl;
14
- initApm({
15
- serviceName,
16
- serverUrl: serviceUrl,
17
- serverUrlPrefix,
18
- serviceVersion: "1.0.0",
19
- logLevel,
20
- environment,
21
- ignoreTransactions: ignoreUrls
22
- });
23
- }, []);
24
- return null;
25
- }
26
- async function handleApmTransaction(name, type, labels, callback) {
27
- const transaction = apm.startTransaction(name, type);
28
- try {
29
- transaction?.addLabels(labels);
30
- await callback();
31
- } catch (error) {
32
- apm.captureError(error);
33
- } finally {
34
- transaction?.end();
35
- }
36
- }
37
- function traceError(error, labels, customMessage) {
38
- try {
39
- const errorObject = error instanceof Error ? error : new Error(customMessage ?? String(error));
40
- if (labels) {
41
- apm.addLabels(labels);
42
- }
43
- apm.captureError(errorObject);
44
- } catch (e) {
45
- throw new Error("Failed to capture error in APM:", e);
46
- }
47
- }
48
- var startManagedTransaction = (name, type = "http-request", spanName, spanType = "external.http") => {
49
- const transaction = apm.startTransaction(name, type, { managed: true });
50
- const span = transaction?.startSpan(spanName, spanType);
51
- const traceParentId = span ? createTraceParentId(span.traceId || "", span.id || "") : void 0;
52
- return { transaction, span, traceParentId };
53
- };
54
- var createTraceParentId = (traceId, spanId) => {
55
- return `00-${traceId}-${spanId}-01`;
56
- };
57
- export {
58
- APMInitializer,
59
- handleApmTransaction,
60
- startManagedTransaction,
61
- traceError
62
- };
63
- //# sourceMappingURL=index.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/services/apm/elastic-apm.ts"],"sourcesContent":["'use client'\n\nimport { useEffect } from 'react'\nimport { init as initApm, apm, Transaction } from '@elastic/apm-rum'\nimport { ApmSpan } from '../../types/type'\n\ninterface APMInitializerProps {\n serviceName: string\n serverUrl?: string\n serverUrlPrefix?: string | undefined\n logLevel?: 'trace' | 'debug' | 'info' | 'warn' | 'error'\n environment: string\n ignoreUrls?: Array<string | RegExp>\n}\n\ntype LabelValue = string | number | boolean | null;\n\ninterface TransactionLabels {\n [key: string]: LabelValue;\n}\n\nexport function APMInitializer({\n serviceName,\n serverUrl,\n serverUrlPrefix = undefined,\n logLevel = 'warn',\n environment,\n ignoreUrls = []\n}: APMInitializerProps) {\n \n useEffect(() => {\n const serviceUrl = !serverUrl ? (typeof window !== 'undefined' ? window.location.origin : '') : serverUrl\n initApm({\n serviceName: serviceName,\n serverUrl: serviceUrl,\n serverUrlPrefix: serverUrlPrefix,\n serviceVersion: '1.0.0',\n logLevel: logLevel,\n environment: environment,\n ignoreTransactions: ignoreUrls\n })\n }, [])\n \n return null\n}\n\n\nexport async function handleApmTransaction(\n name: string,\n type: string,\n labels: TransactionLabels,\n callback: () => Promise<void> | void\n) {\n const transaction = apm.startTransaction(name, type);\n\n try {\n transaction?.addLabels(labels as Labels);\n await callback();\n } catch (error) {\n apm.captureError(error as Error);\n } finally {\n transaction?.end();\n }\n}\n\nexport function traceError(\n error: string | Error,\n labels?: TransactionLabels,\n customMessage?: string\n) {\n try {\n const errorObject =\n error instanceof Error\n ? error\n : new Error(customMessage ?? String(error));\n\n if (labels) {\n apm.addLabels(labels as Labels);\n }\n\n apm.captureError(errorObject);\n } catch (e) {\n throw new Error(\"Failed to capture error in APM:\", e as Error);\n }\n}\n\nexport const startManagedTransaction = (\n name: string,\n type: string = 'http-request',\n spanName: string,\n spanType: string = 'external.http'\n): { transaction: Transaction | undefined, span: ApmSpan | undefined, traceParentId: string | undefined } => {\n const transaction = apm.startTransaction(name, type, { managed: true });\n const span: ApmSpan | undefined = transaction?.startSpan(spanName, spanType);\n \n const traceParentId = span ? createTraceParentId(span.traceId || '', span.id || '') : undefined;\n \n return { transaction, span, traceParentId };\n};\n\nconst createTraceParentId = (traceId: string, spanId: string) => {\n return `00-${traceId}-${spanId}-01`;\n}\n"],"mappings":";AAEA,SAAS,iBAAiB;AAC1B,SAAS,QAAQ,SAAS,WAAwB;AAkB3C,SAAS,eAAe;AAAA,EAC7B;AAAA,EACA;AAAA,EACA,kBAAkB;AAAA,EAClB,WAAW;AAAA,EACX;AAAA,EACA,aAAa,CAAC;AAChB,GAAwB;AAEtB,YAAU,MAAM;AACd,UAAM,aAAa,CAAC,YAAa,OAAO,WAAW,cAAc,OAAO,SAAS,SAAS,KAAM;AAChG,YAAQ;AAAA,MACN;AAAA,MACA,WAAW;AAAA,MACX;AAAA,MACA,gBAAgB;AAAA,MAChB;AAAA,MACA;AAAA,MACA,oBAAoB;AAAA,IACtB,CAAC;AAAA,EACH,GAAG,CAAC,CAAC;AAEL,SAAO;AACT;AAGA,eAAsB,qBACpB,MACA,MACA,QACA,UACA;AACA,QAAM,cAAc,IAAI,iBAAiB,MAAM,IAAI;AAEnD,MAAI;AACF,iBAAa,UAAU,MAAgB;AACvC,UAAM,SAAS;AAAA,EACjB,SAAS,OAAO;AACd,QAAI,aAAa,KAAc;AAAA,EACjC,UAAE;AACA,iBAAa,IAAI;AAAA,EACnB;AACF;AAEO,SAAS,WACd,OACA,QACA,eACA;AACA,MAAI;AACF,UAAM,cACJ,iBAAiB,QACb,QACA,IAAI,MAAM,iBAAiB,OAAO,KAAK,CAAC;AAE9C,QAAI,QAAQ;AACV,UAAI,UAAU,MAAgB;AAAA,IAChC;AAEA,QAAI,aAAa,WAAW;AAAA,EAC9B,SAAS,GAAG;AACV,UAAM,IAAI,MAAM,mCAAmC,CAAU;AAAA,EAC/D;AACF;AAEO,IAAM,0BAA0B,CACrC,MACA,OAAe,gBACf,UACA,WAAmB,oBACwF;AAC3G,QAAM,cAAc,IAAI,iBAAiB,MAAM,MAAM,EAAE,SAAS,KAAK,CAAC;AACtE,QAAM,OAA4B,aAAa,UAAU,UAAU,QAAQ;AAE3E,QAAM,gBAAgB,OAAO,oBAAoB,KAAK,WAAW,IAAI,KAAK,MAAM,EAAE,IAAI;AAEtF,SAAO,EAAE,aAAa,MAAM,cAAc;AAC5C;AAEA,IAAM,sBAAsB,CAAC,SAAiB,WAAmB;AAC/D,SAAO,MAAM,OAAO,IAAI,MAAM;AAChC;","names":[]}