@seekora-ai/search-sdk 0.2.7 → 0.2.12

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.
@@ -1,61 +0,0 @@
1
- /**
2
- * Seekora SDK Logger
3
- *
4
- * Provides structured logging with configurable levels:
5
- * - VERBOSE: Detailed debugging information
6
- * - INFO: General informational messages (default)
7
- * - WARN: Warning messages
8
- * - ERROR: Error messages
9
- * - SILENT: No logging
10
- *
11
- * Configurable via SEEKORA_LOG_LEVEL environment variable
12
- */
13
- export type LogLevel = 'verbose' | 'info' | 'warn' | 'error' | 'silent';
14
- export interface LoggerConfig {
15
- level?: LogLevel;
16
- enableConsole?: boolean;
17
- enableFile?: boolean;
18
- filePath?: string;
19
- format?: 'json' | 'text';
20
- enableTimestamp?: boolean;
21
- prefix?: string;
22
- enablePrefix?: boolean;
23
- }
24
- /**
25
- * Get log level from environment variable or default
26
- */
27
- export declare function getLogLevelFromEnv(): LogLevel;
28
- /**
29
- * Logger implementation with configurable levels and formatting
30
- */
31
- export declare class Logger {
32
- private level;
33
- private levelValue;
34
- private enableConsole;
35
- private enableFile;
36
- private filePath?;
37
- private format;
38
- private enableTimestamp;
39
- private prefix;
40
- private enablePrefix;
41
- constructor(config?: LoggerConfig);
42
- private shouldLog;
43
- private formatMessage;
44
- private write;
45
- verbose(message: string, meta?: any): void;
46
- info(message: string, meta?: any): void;
47
- warn(message: string, meta?: any): void;
48
- error(message: string, meta?: any): void;
49
- debug(message: string, meta?: any): void;
50
- fatal(message: string, meta?: any): void;
51
- setLevel(level: LogLevel): void;
52
- getLevel(): LogLevel;
53
- }
54
- /**
55
- * Create a logger instance
56
- */
57
- export declare function createLogger(config?: LoggerConfig): Logger;
58
- /**
59
- * Default logger instance
60
- */
61
- export declare const defaultLogger: Logger;
@@ -1,172 +0,0 @@
1
- "use strict";
2
- /**
3
- * Seekora SDK Logger
4
- *
5
- * Provides structured logging with configurable levels:
6
- * - VERBOSE: Detailed debugging information
7
- * - INFO: General informational messages (default)
8
- * - WARN: Warning messages
9
- * - ERROR: Error messages
10
- * - SILENT: No logging
11
- *
12
- * Configurable via SEEKORA_LOG_LEVEL environment variable
13
- */
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.defaultLogger = exports.Logger = void 0;
16
- exports.getLogLevelFromEnv = getLogLevelFromEnv;
17
- exports.createLogger = createLogger;
18
- const LOG_LEVELS = {
19
- verbose: 0,
20
- info: 1,
21
- warn: 2,
22
- error: 3,
23
- silent: 4,
24
- };
25
- /**
26
- * Get log level from environment variable or default
27
- */
28
- function getLogLevelFromEnv() {
29
- let envLevel;
30
- // Try to get from process.env (Node.js) or window (browser)
31
- if (typeof process !== 'undefined' && process.env) {
32
- envLevel = process.env.SEEKORA_LOG_LEVEL?.toLowerCase();
33
- }
34
- else if (typeof window !== 'undefined' && window.SEEKORA_LOG_LEVEL) {
35
- envLevel = String(window.SEEKORA_LOG_LEVEL).toLowerCase();
36
- }
37
- // Support both old and new level names
38
- const levelMap = {
39
- 'verbose': 'verbose',
40
- 'info': 'info',
41
- 'warn': 'warn',
42
- 'warning': 'warn',
43
- 'error': 'error',
44
- 'silent': 'silent',
45
- // Legacy support
46
- 'debug': 'verbose',
47
- 'fatal': 'error',
48
- };
49
- if (envLevel && levelMap[envLevel]) {
50
- return levelMap[envLevel];
51
- }
52
- // Default: INFO in production, VERBOSE in debug mode
53
- const nodeEnv = typeof process !== 'undefined' && process.env
54
- ? process.env.NODE_ENV
55
- : undefined;
56
- const debug = typeof process !== 'undefined' && process.env
57
- ? process.env.DEBUG
58
- : undefined;
59
- if (nodeEnv === 'development' || debug) {
60
- return 'verbose';
61
- }
62
- return 'info';
63
- }
64
- /**
65
- * Logger implementation with configurable levels and formatting
66
- */
67
- class Logger {
68
- constructor(config = {}) {
69
- this.level = config.level || getLogLevelFromEnv();
70
- this.levelValue = LOG_LEVELS[this.level];
71
- this.enableConsole = config.enableConsole !== false;
72
- this.enableFile = config.enableFile || false;
73
- this.filePath = config.filePath;
74
- this.format = config.format || 'text';
75
- this.enableTimestamp = config.enableTimestamp !== false;
76
- this.prefix = config.prefix || '[Seekora SDK]';
77
- this.enablePrefix = config.enablePrefix !== false;
78
- }
79
- shouldLog(level) {
80
- if (this.level === 'silent') {
81
- return false;
82
- }
83
- return LOG_LEVELS[level] >= this.levelValue;
84
- }
85
- formatMessage(level, message, meta) {
86
- const parts = [];
87
- // Add timestamp if enabled
88
- if (this.enableTimestamp) {
89
- const timestamp = new Date().toISOString();
90
- parts.push(`[${timestamp}]`);
91
- }
92
- // Add prefix if enabled
93
- if (this.enablePrefix && this.prefix) {
94
- parts.push(this.prefix);
95
- }
96
- // Add log level
97
- parts.push(`[${level.toUpperCase()}]`);
98
- // Add message
99
- parts.push(message);
100
- // Add metadata if present
101
- if (meta && Object.keys(meta).length > 0) {
102
- if (this.format === 'json') {
103
- return JSON.stringify({
104
- timestamp: this.enableTimestamp ? new Date().toISOString() : undefined,
105
- level,
106
- message,
107
- ...meta,
108
- });
109
- }
110
- else {
111
- parts.push(JSON.stringify(meta, null, 2));
112
- }
113
- }
114
- return parts.join(' ');
115
- }
116
- write(level, message, meta) {
117
- if (!this.shouldLog(level)) {
118
- return;
119
- }
120
- const formatted = this.formatMessage(level, message, meta);
121
- if (this.enableConsole) {
122
- const consoleMethod = level === 'error'
123
- ? console.error
124
- : level === 'warn'
125
- ? console.warn
126
- : console.log;
127
- consoleMethod(formatted);
128
- }
129
- if (this.enableFile && this.filePath) {
130
- // File logging would require fs module
131
- // In production, you might want to use winston or similar
132
- // For now, we'll just log to console
133
- }
134
- }
135
- verbose(message, meta) {
136
- this.write('verbose', message, meta);
137
- }
138
- info(message, meta) {
139
- this.write('info', message, meta);
140
- }
141
- warn(message, meta) {
142
- this.write('warn', message, meta);
143
- }
144
- error(message, meta) {
145
- this.write('error', message, meta);
146
- }
147
- // Legacy support methods
148
- debug(message, meta) {
149
- this.verbose(message, meta);
150
- }
151
- fatal(message, meta) {
152
- this.error(message, meta);
153
- }
154
- setLevel(level) {
155
- this.level = level;
156
- this.levelValue = LOG_LEVELS[level];
157
- }
158
- getLevel() {
159
- return this.level;
160
- }
161
- }
162
- exports.Logger = Logger;
163
- /**
164
- * Create a logger instance
165
- */
166
- function createLogger(config) {
167
- return new Logger(config);
168
- }
169
- /**
170
- * Default logger instance
171
- */
172
- exports.defaultLogger = createLogger();
@@ -1,20 +0,0 @@
1
- /**
2
- * Utility functions for the Seekora SDK
3
- */
4
- /**
5
- * Generate a UUID v4
6
- * Uses crypto.randomUUID() if available, otherwise falls back to manual generation
7
- */
8
- export declare function generateUUID(): string;
9
- /**
10
- * Get or create anonymous ID from storage
11
- * In browser: uses localStorage
12
- * In Node.js: uses a simple in-memory store (consider file-based storage for production)
13
- */
14
- export declare function getOrCreateAnonId(): string;
15
- /**
16
- * Get or create session ID
17
- * In browser: uses sessionStorage
18
- * In Node.js: uses a simple in-memory store (session ends when process ends)
19
- */
20
- export declare function getOrCreateSessionId(): string;
package/dist/src/utils.js DELETED
@@ -1,73 +0,0 @@
1
- "use strict";
2
- /**
3
- * Utility functions for the Seekora SDK
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.generateUUID = generateUUID;
7
- exports.getOrCreateAnonId = getOrCreateAnonId;
8
- exports.getOrCreateSessionId = getOrCreateSessionId;
9
- // Browser environment types are handled via typeof checks and type assertions
10
- /**
11
- * Generate a UUID v4
12
- * Uses crypto.randomUUID() if available, otherwise falls back to manual generation
13
- */
14
- function generateUUID() {
15
- // Use native crypto.randomUUID() if available (Node.js 14.17+, modern browsers)
16
- if (typeof crypto !== 'undefined' && 'randomUUID' in crypto) {
17
- return crypto.randomUUID();
18
- }
19
- // Fallback for older environments
20
- // Simplified UUID v4 generation
21
- return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
22
- const r = Math.random() * 16 | 0;
23
- const v = c === 'x' ? r : (r & 0x3 | 0x8);
24
- return v.toString(16);
25
- });
26
- }
27
- /**
28
- * Get or create anonymous ID from storage
29
- * In browser: uses localStorage
30
- * In Node.js: uses a simple in-memory store (consider file-based storage for production)
31
- */
32
- function getOrCreateAnonId() {
33
- // Check for browser environment
34
- if (typeof window !== 'undefined' && window?.localStorage) {
35
- const key = 'seekora_anon_id';
36
- const storage = window.localStorage;
37
- let anonId = storage.getItem(key);
38
- if (!anonId) {
39
- anonId = generateUUID();
40
- storage.setItem(key, anonId);
41
- }
42
- return anonId;
43
- }
44
- // Node.js environment - use in-memory storage
45
- // For production Node.js apps, consider using a file-based storage
46
- if (!global.__seekora_anon_id) {
47
- global.__seekora_anon_id = generateUUID();
48
- }
49
- return global.__seekora_anon_id;
50
- }
51
- /**
52
- * Get or create session ID
53
- * In browser: uses sessionStorage
54
- * In Node.js: uses a simple in-memory store (session ends when process ends)
55
- */
56
- function getOrCreateSessionId() {
57
- // Check for browser environment
58
- if (typeof window !== 'undefined' && window?.sessionStorage) {
59
- const key = 'seekora_session_id';
60
- const storage = window.sessionStorage;
61
- let sessionId = storage.getItem(key);
62
- if (!sessionId) {
63
- sessionId = generateUUID();
64
- storage.setItem(key, sessionId);
65
- }
66
- return sessionId;
67
- }
68
- // Node.js environment - use in-memory storage
69
- if (!global.__seekora_session_id) {
70
- global.__seekora_session_id = generateUUID();
71
- }
72
- return global.__seekora_session_id;
73
- }