@revenium/perplexity 1.0.0
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.
- package/LICENSE +21 -0
- package/README.md +367 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +40 -0
- package/dist/index.js.map +1 -0
- package/dist/models/Exception/ApiResponseError.d.ts +6 -0
- package/dist/models/Exception/ApiResponseError.d.ts.map +1 -0
- package/dist/models/Exception/ApiResponseError.js +13 -0
- package/dist/models/Exception/ApiResponseError.js.map +1 -0
- package/dist/models/Exception/ConfigurationError.d.ts +4 -0
- package/dist/models/Exception/ConfigurationError.d.ts.map +1 -0
- package/dist/models/Exception/ConfigurationError.js +11 -0
- package/dist/models/Exception/ConfigurationError.js.map +1 -0
- package/dist/models/Exception/MeteringError.d.ts +5 -0
- package/dist/models/Exception/MeteringError.d.ts.map +1 -0
- package/dist/models/Exception/MeteringError.js +12 -0
- package/dist/models/Exception/MeteringError.js.map +1 -0
- package/dist/models/Exception/MiddlewareActivationError.d.ts +4 -0
- package/dist/models/Exception/MiddlewareActivationError.d.ts.map +1 -0
- package/dist/models/Exception/MiddlewareActivationError.js +11 -0
- package/dist/models/Exception/MiddlewareActivationError.js.map +1 -0
- package/dist/models/Exception/StreamTrackingError.d.ts +4 -0
- package/dist/models/Exception/StreamTrackingError.d.ts.map +1 -0
- package/dist/models/Exception/StreamTrackingError.js +11 -0
- package/dist/models/Exception/StreamTrackingError.js.map +1 -0
- package/dist/models/Exception/TokenCountingError.d.ts +4 -0
- package/dist/models/Exception/TokenCountingError.d.ts.map +1 -0
- package/dist/models/Exception/TokenCountingError.js +11 -0
- package/dist/models/Exception/TokenCountingError.js.map +1 -0
- package/dist/models/Exception/index.d.ts +7 -0
- package/dist/models/Exception/index.d.ts.map +1 -0
- package/dist/models/Exception/index.js +23 -0
- package/dist/models/Exception/index.js.map +1 -0
- package/dist/models/Logger.d.ts +10 -0
- package/dist/models/Logger.d.ts.map +1 -0
- package/dist/models/Logger.js +36 -0
- package/dist/models/Logger.js.map +1 -0
- package/dist/models/index.d.ts +3 -0
- package/dist/models/index.d.ts.map +1 -0
- package/dist/models/index.js +19 -0
- package/dist/models/index.js.map +1 -0
- package/dist/perplexity-ai/client.d.ts +31 -0
- package/dist/perplexity-ai/client.d.ts.map +1 -0
- package/dist/perplexity-ai/client.js +75 -0
- package/dist/perplexity-ai/client.js.map +1 -0
- package/dist/perplexity-ai/index.d.ts +3 -0
- package/dist/perplexity-ai/index.d.ts.map +1 -0
- package/dist/perplexity-ai/index.js +19 -0
- package/dist/perplexity-ai/index.js.map +1 -0
- package/dist/perplexity-ai/middleware.d.ts +2 -0
- package/dist/perplexity-ai/middleware.d.ts.map +1 -0
- package/dist/perplexity-ai/middleware.js +163 -0
- package/dist/perplexity-ai/middleware.js.map +1 -0
- package/dist/types/context.d.ts +9 -0
- package/dist/types/context.d.ts.map +1 -0
- package/dist/types/context.js +3 -0
- package/dist/types/context.js.map +1 -0
- package/dist/types/index.d.ts +12 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +28 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/metering.d.ts +28 -0
- package/dist/types/metering.d.ts.map +1 -0
- package/dist/types/metering.js +3 -0
- package/dist/types/metering.js.map +1 -0
- package/dist/types/modelInfo.d.ts +6 -0
- package/dist/types/modelInfo.d.ts.map +1 -0
- package/dist/types/modelInfo.js +3 -0
- package/dist/types/modelInfo.js.map +1 -0
- package/dist/types/operation.d.ts +5 -0
- package/dist/types/operation.d.ts.map +1 -0
- package/dist/types/operation.js +9 -0
- package/dist/types/operation.js.map +1 -0
- package/dist/types/perplexityConfig.d.ts +5 -0
- package/dist/types/perplexityConfig.d.ts.map +1 -0
- package/dist/types/perplexityConfig.js +3 -0
- package/dist/types/perplexityConfig.js.map +1 -0
- package/dist/types/provider.d.ts +4 -0
- package/dist/types/provider.d.ts.map +1 -0
- package/dist/types/provider.js +8 -0
- package/dist/types/provider.js.map +1 -0
- package/dist/types/reveniumConfig.d.ts +6 -0
- package/dist/types/reveniumConfig.d.ts.map +1 -0
- package/dist/types/reveniumConfig.js +3 -0
- package/dist/types/reveniumConfig.js.map +1 -0
- package/dist/types/streamTracker.d.ts +9 -0
- package/dist/types/streamTracker.d.ts.map +1 -0
- package/dist/types/streamTracker.js +3 -0
- package/dist/types/streamTracker.js.map +1 -0
- package/dist/types/subscriber.d.ts +9 -0
- package/dist/types/subscriber.d.ts.map +1 -0
- package/dist/types/subscriber.js +3 -0
- package/dist/types/subscriber.js.map +1 -0
- package/dist/types/tokenCounts.d.ts +6 -0
- package/dist/types/tokenCounts.d.ts.map +1 -0
- package/dist/types/tokenCounts.js +3 -0
- package/dist/types/tokenCounts.js.map +1 -0
- package/dist/types/usageData.d.ts +16 -0
- package/dist/types/usageData.d.ts.map +1 -0
- package/dist/types/usageData.js +3 -0
- package/dist/types/usageData.js.map +1 -0
- package/dist/types/usageMetadata.d.ts +14 -0
- package/dist/types/usageMetadata.d.ts.map +1 -0
- package/dist/types/usageMetadata.js +3 -0
- package/dist/types/usageMetadata.js.map +1 -0
- package/dist/utils/activeMiddleware.d.ts +2 -0
- package/dist/utils/activeMiddleware.d.ts.map +1 -0
- package/dist/utils/activeMiddleware.js +24 -0
- package/dist/utils/activeMiddleware.js.map +1 -0
- package/dist/utils/askConsole.d.ts +2 -0
- package/dist/utils/askConsole.d.ts.map +1 -0
- package/dist/utils/askConsole.js +20 -0
- package/dist/utils/askConsole.js.map +1 -0
- package/dist/utils/calculateDurationMs.d.ts +2 -0
- package/dist/utils/calculateDurationMs.d.ts.map +1 -0
- package/dist/utils/calculateDurationMs.js +7 -0
- package/dist/utils/calculateDurationMs.js.map +1 -0
- package/dist/utils/constants/constants.d.ts +9 -0
- package/dist/utils/constants/constants.d.ts.map +1 -0
- package/dist/utils/constants/constants.js +19 -0
- package/dist/utils/constants/constants.js.map +1 -0
- package/dist/utils/constants/messages.d.ts +19 -0
- package/dist/utils/constants/messages.d.ts.map +1 -0
- package/dist/utils/constants/messages.js +22 -0
- package/dist/utils/constants/messages.js.map +1 -0
- package/dist/utils/createMeteringRequest.d.ts +3 -0
- package/dist/utils/createMeteringRequest.d.ts.map +1 -0
- package/dist/utils/createMeteringRequest.js +10 -0
- package/dist/utils/createMeteringRequest.js.map +1 -0
- package/dist/utils/createPerplexityMetadata.d.ts +3 -0
- package/dist/utils/createPerplexityMetadata.d.ts.map +1 -0
- package/dist/utils/createPerplexityMetadata.js +12 -0
- package/dist/utils/createPerplexityMetadata.js.map +1 -0
- package/dist/utils/extractModelName.d.ts +2 -0
- package/dist/utils/extractModelName.d.ts.map +1 -0
- package/dist/utils/extractModelName.js +15 -0
- package/dist/utils/extractModelName.js.map +1 -0
- package/dist/utils/extractPerplexityTokenCounts.d.ts +3 -0
- package/dist/utils/extractPerplexityTokenCounts.d.ts.map +1 -0
- package/dist/utils/extractPerplexityTokenCounts.js +17 -0
- package/dist/utils/extractPerplexityTokenCounts.js.map +1 -0
- package/dist/utils/extractStopReason.d.ts +2 -0
- package/dist/utils/extractStopReason.d.ts.map +1 -0
- package/dist/utils/extractStopReason.js +14 -0
- package/dist/utils/extractStopReason.js.map +1 -0
- package/dist/utils/extractUsageMetadata.d.ts +3 -0
- package/dist/utils/extractUsageMetadata.d.ts.map +1 -0
- package/dist/utils/extractUsageMetadata.js +15 -0
- package/dist/utils/extractUsageMetadata.js.map +1 -0
- package/dist/utils/formatTimestamp.d.ts +2 -0
- package/dist/utils/formatTimestamp.d.ts.map +1 -0
- package/dist/utils/formatTimestamp.js +7 -0
- package/dist/utils/formatTimestamp.js.map +1 -0
- package/dist/utils/generateTransactionId.d.ts +2 -0
- package/dist/utils/generateTransactionId.d.ts.map +1 -0
- package/dist/utils/generateTransactionId.js +8 -0
- package/dist/utils/generateTransactionId.js.map +1 -0
- package/dist/utils/getEnv.d.ts +4 -0
- package/dist/utils/getEnv.d.ts.map +1 -0
- package/dist/utils/getEnv.js +16 -0
- package/dist/utils/getEnv.js.map +1 -0
- package/dist/utils/index.d.ts +13 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +29 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/safeExtract.d.ts +2 -0
- package/dist/utils/safeExtract.d.ts.map +1 -0
- package/dist/utils/safeExtract.js +22 -0
- package/dist/utils/safeExtract.js.map +1 -0
- package/dist/utils/sendMeteringData.d.ts +3 -0
- package/dist/utils/sendMeteringData.d.ts.map +1 -0
- package/dist/utils/sendMeteringData.js +35 -0
- package/dist/utils/sendMeteringData.js.map +1 -0
- package/dist/utils/verifyLogVerbose.d.ts +2 -0
- package/dist/utils/verifyLogVerbose.d.ts.map +1 -0
- package/dist/utils/verifyLogVerbose.js +10 -0
- package/dist/utils/verifyLogVerbose.js.map +1 -0
- package/examples/README.md +316 -0
- package/examples/basic-client-example.ts +36 -0
- package/examples/metadata-example.ts +92 -0
- package/examples/multiple-models-example.ts +65 -0
- package/examples/openai-client-example.ts +76 -0
- package/examples/perplexity_basic_example.ts +24 -0
- package/examples/perplexity_middleware_example.ts +222 -0
- package/examples/run-all-examples.ts +118 -0
- package/examples/simple-test.ts +278 -0
- package/examples/streaming-example.ts +46 -0
- package/package.json +54 -0
- package/src/index.ts +38 -0
- package/src/models/Exception/ApiResponseError.ts +6 -0
- package/src/models/Exception/ConfigurationError.ts +6 -0
- package/src/models/Exception/MeteringError.ts +6 -0
- package/src/models/Exception/MiddlewareActivationError.ts +6 -0
- package/src/models/Exception/StreamTrackingError.ts +6 -0
- package/src/models/Exception/TokenCountingError.ts +6 -0
- package/src/models/Exception/index.ts +6 -0
- package/src/models/Logger.ts +38 -0
- package/src/models/index.ts +2 -0
- package/src/perplexity-ai/client.ts +97 -0
- package/src/perplexity-ai/index.ts +2 -0
- package/src/perplexity-ai/middleware.ts +259 -0
- package/src/types/context.ts +9 -0
- package/src/types/index.ts +11 -0
- package/src/types/metering.ts +28 -0
- package/src/types/modelInfo.ts +5 -0
- package/src/types/operation.ts +4 -0
- package/src/types/perplexityConfig.ts +4 -0
- package/src/types/provider.ts +3 -0
- package/src/types/reveniumConfig.ts +5 -0
- package/src/types/streamTracker.ts +9 -0
- package/src/types/subscriber.ts +8 -0
- package/src/types/tokenCounts.ts +5 -0
- package/src/types/usageData.ts +16 -0
- package/src/types/usageMetadata.ts +13 -0
- package/src/utils/activeMiddleware.ts +34 -0
- package/src/utils/askConsole.ts +15 -0
- package/src/utils/calculateDurationMs.ts +3 -0
- package/src/utils/constants/constants.ts +17 -0
- package/src/utils/constants/messages.ts +35 -0
- package/src/utils/createMeteringRequest.ts +16 -0
- package/src/utils/createPerplexityMetadata.ts +11 -0
- package/src/utils/extractModelName.ts +14 -0
- package/src/utils/extractPerplexityTokenCounts.ts +16 -0
- package/src/utils/extractStopReason.ts +13 -0
- package/src/utils/extractUsageMetadata.ts +15 -0
- package/src/utils/formatTimestamp.ts +3 -0
- package/src/utils/generateTransactionId.ts +5 -0
- package/src/utils/getEnv.ts +16 -0
- package/src/utils/index.ts +12 -0
- package/src/utils/safeExtract.ts +18 -0
- package/src/utils/sendMeteringData.ts +46 -0
- package/src/utils/verifyLogVerbose.ts +7 -0
- package/tsconfig.json +23 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Revenium
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,367 @@
|
|
|
1
|
+
# Revenium Perplexity AI Middleware
|
|
2
|
+
|
|
3
|
+
A Node.js middleware package for Perplexity AI that provides automatic token metering, usage tracking, and monitoring capabilities with seamless integration.
|
|
4
|
+
|
|
5
|
+
## 🚀 Features
|
|
6
|
+
|
|
7
|
+
- ✅ **Chat Completion** - Full support for all Perplexity models
|
|
8
|
+
- ✅ **Streaming** - Complete streaming support with automatic tracking
|
|
9
|
+
- ✅ **Token Metering** - Automatic token counting and usage tracking
|
|
10
|
+
- ✅ **Metadata Tracking** - Rich custom usage metadata support
|
|
11
|
+
- ✅ **Zero Configuration** - Works automatically once imported
|
|
12
|
+
- ✅ **Multiple Client Options** - Use our client or OpenAI client directly
|
|
13
|
+
- ✅ **TypeScript Support** - Full type safety with optional metadata fields
|
|
14
|
+
- ✅ **Error Handling** - Robust error handling with graceful fallbacks
|
|
15
|
+
- ✅ **Logging & Debugging** - Comprehensive logging for development
|
|
16
|
+
|
|
17
|
+
## 📦 Installation
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
npm install @revenium/perplexity
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## ⚡ Quick Start
|
|
24
|
+
|
|
25
|
+
### Method 1: Using our Perplexity Client (Recommended)
|
|
26
|
+
|
|
27
|
+
```typescript
|
|
28
|
+
import { config } from "dotenv";
|
|
29
|
+
import { createPerplexityClient } from "@revenium/perplexity";
|
|
30
|
+
|
|
31
|
+
config();
|
|
32
|
+
|
|
33
|
+
async function example() {
|
|
34
|
+
// Create client instance
|
|
35
|
+
const client = createPerplexityClient();
|
|
36
|
+
|
|
37
|
+
// Make a chat completion
|
|
38
|
+
const response = await client.createChatCompletion({
|
|
39
|
+
model: "sonar-pro",
|
|
40
|
+
messages: [
|
|
41
|
+
{
|
|
42
|
+
role: "user",
|
|
43
|
+
content: "What is the meaning of life, the universe and everything?",
|
|
44
|
+
},
|
|
45
|
+
],
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
console.log(response.choices[0].message.content);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
example();
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### Method 2: Using OpenAI Client (Like the original example)
|
|
55
|
+
|
|
56
|
+
```typescript
|
|
57
|
+
import { config } from "dotenv";
|
|
58
|
+
import { OpenAI } from "openai";
|
|
59
|
+
|
|
60
|
+
// Import middleware to activate automatic tracking
|
|
61
|
+
import "@revenium/perplexity";
|
|
62
|
+
|
|
63
|
+
config();
|
|
64
|
+
|
|
65
|
+
const client = new OpenAI({
|
|
66
|
+
apiKey: process.env.PERPLEXITY_API_KEY,
|
|
67
|
+
baseURL: "https://api.perplexity.ai",
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
const response = await client.chat.completions.create({
|
|
71
|
+
model: "sonar-pro",
|
|
72
|
+
messages: [
|
|
73
|
+
{
|
|
74
|
+
role: "user",
|
|
75
|
+
content: "What is the meaning of life, the universe and everything?",
|
|
76
|
+
},
|
|
77
|
+
],
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
console.log(response.choices[0].message.content);
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## 🔧 Environment Variables
|
|
84
|
+
|
|
85
|
+
Set these environment variables in your `.env` file:
|
|
86
|
+
|
|
87
|
+
```env
|
|
88
|
+
# Required: Your Perplexity API key
|
|
89
|
+
PERPLEXITY_API_KEY=your-perplexity-api-key
|
|
90
|
+
|
|
91
|
+
# Required: Revenium metering API key (for usage tracking)
|
|
92
|
+
REVENIUM_METERING_API_KEY=your-revenium-api-key
|
|
93
|
+
|
|
94
|
+
# Optional: Revenium base URL (defaults to https://api.revenium.io/meter/v2)
|
|
95
|
+
REVENIUM_METERING_BASE_URL=https://api.revenium.io/meter/v2
|
|
96
|
+
|
|
97
|
+
# Optional: Perplexity base URL (defaults to https://api.perplexity.ai)
|
|
98
|
+
PERPLEXITY_BASE_URL=https://api.perplexity.ai
|
|
99
|
+
|
|
100
|
+
# Optional: Enable verbose logging
|
|
101
|
+
REVENIUM_VERBOSE_STARTUP=true
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
## 📚 Examples
|
|
105
|
+
|
|
106
|
+
The package includes comprehensive examples demonstrating different usage patterns. See the [examples/README.md](examples/README.md) for detailed documentation.
|
|
107
|
+
|
|
108
|
+
### Quick Example Commands
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
# Basic client example
|
|
112
|
+
npm run basic-client-example
|
|
113
|
+
|
|
114
|
+
# OpenAI client example (like the original)
|
|
115
|
+
npm run openai-client-example
|
|
116
|
+
|
|
117
|
+
# Streaming with metadata
|
|
118
|
+
npm run streaming-example
|
|
119
|
+
|
|
120
|
+
# Advanced metadata tracking
|
|
121
|
+
npm run metadata-example
|
|
122
|
+
|
|
123
|
+
# Multiple models example
|
|
124
|
+
npm run multiple-models-example
|
|
125
|
+
|
|
126
|
+
# Run all examples
|
|
127
|
+
npm run run-all-examples
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
## 🤖 Available Models
|
|
131
|
+
|
|
132
|
+
Perplexity AI currently offers the following models:
|
|
133
|
+
|
|
134
|
+
- **sonar-pro** - Latest and most capable model with online search capabilities
|
|
135
|
+
- **sonar-small** - Fast and efficient model for quick responses
|
|
136
|
+
- **sonar-medium** - Balanced performance and capability
|
|
137
|
+
|
|
138
|
+
_Note: Model availability depends on your Perplexity AI account and API access level._
|
|
139
|
+
|
|
140
|
+
## 🌊 Streaming Support
|
|
141
|
+
|
|
142
|
+
```typescript
|
|
143
|
+
import { createPerplexityClient } from "@revenium/perplexity";
|
|
144
|
+
|
|
145
|
+
const client = createPerplexityClient();
|
|
146
|
+
|
|
147
|
+
const stream = await client.createStreamingChatCompletion({
|
|
148
|
+
model: "sonar-pro",
|
|
149
|
+
messages: [
|
|
150
|
+
{
|
|
151
|
+
role: "user",
|
|
152
|
+
content: "Write a creative story about AI",
|
|
153
|
+
},
|
|
154
|
+
],
|
|
155
|
+
});
|
|
156
|
+
|
|
157
|
+
for await (const chunk of stream) {
|
|
158
|
+
const content = chunk.choices[0]?.delta?.content;
|
|
159
|
+
if (content) {
|
|
160
|
+
process.stdout.write(content);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
## 📊 Usage Metadata
|
|
166
|
+
|
|
167
|
+
You can include rich custom metadata for comprehensive tracking:
|
|
168
|
+
|
|
169
|
+
```typescript
|
|
170
|
+
const response = await client.createChatCompletion({
|
|
171
|
+
model: "sonar-pro",
|
|
172
|
+
messages: [
|
|
173
|
+
{
|
|
174
|
+
role: "user",
|
|
175
|
+
content: "Analyze this quarterly report",
|
|
176
|
+
},
|
|
177
|
+
],
|
|
178
|
+
usageMetadata: {
|
|
179
|
+
// User tracking (optional)
|
|
180
|
+
traceId: "conv-28a7e9d4",
|
|
181
|
+
taskType: "document-analysis",
|
|
182
|
+
subscriberEmail: "user@example.com",
|
|
183
|
+
subscriberId: "user-123",
|
|
184
|
+
subscriberCredentialName: "api-key-1",
|
|
185
|
+
|
|
186
|
+
// Business context (optional)
|
|
187
|
+
organizationId: "acme-corp",
|
|
188
|
+
subscriptionId: "premium-plan",
|
|
189
|
+
productId: "business-intelligence",
|
|
190
|
+
agent: "analysis-assistant",
|
|
191
|
+
responseQualityScore: 0.95,
|
|
192
|
+
},
|
|
193
|
+
});
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
## 🔍 Middleware Features
|
|
197
|
+
|
|
198
|
+
### Automatic Token Counting
|
|
199
|
+
|
|
200
|
+
The middleware automatically extracts and tracks token usage from Perplexity API responses without any additional configuration.
|
|
201
|
+
|
|
202
|
+
### Request Interception
|
|
203
|
+
|
|
204
|
+
All HTTP requests to Perplexity API are automatically intercepted and tracked for comprehensive monitoring.
|
|
205
|
+
|
|
206
|
+
### Error Handling
|
|
207
|
+
|
|
208
|
+
Robust error handling ensures your application continues to work even if metering fails, with graceful fallbacks.
|
|
209
|
+
|
|
210
|
+
### Logging & Debugging
|
|
211
|
+
|
|
212
|
+
Comprehensive logging for debugging and monitoring, with configurable verbosity levels.
|
|
213
|
+
|
|
214
|
+
### Background Processing
|
|
215
|
+
|
|
216
|
+
Usage data is sent to Revenium in the background without blocking your application's response time.
|
|
217
|
+
|
|
218
|
+
## 🛠️ Development
|
|
219
|
+
|
|
220
|
+
### Building
|
|
221
|
+
|
|
222
|
+
```bash
|
|
223
|
+
npm run build
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
### Development Mode
|
|
227
|
+
|
|
228
|
+
```bash
|
|
229
|
+
npm run dev
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
### Running Examples
|
|
233
|
+
|
|
234
|
+
```bash
|
|
235
|
+
# Run individual examples
|
|
236
|
+
npm run basic-client-example
|
|
237
|
+
npm run streaming-example
|
|
238
|
+
npm run multiple-models-example
|
|
239
|
+
npm run openai-client-example
|
|
240
|
+
npm run metadata-example
|
|
241
|
+
|
|
242
|
+
# Run all examples
|
|
243
|
+
npm run run-all-examples
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
## 📖 API Reference
|
|
247
|
+
|
|
248
|
+
### PerplexityClient
|
|
249
|
+
|
|
250
|
+
#### `createPerplexityClient(apiKey?: string)`
|
|
251
|
+
|
|
252
|
+
Creates a new Perplexity client instance.
|
|
253
|
+
|
|
254
|
+
```typescript
|
|
255
|
+
const client = createPerplexityClient();
|
|
256
|
+
// or
|
|
257
|
+
const client = createPerplexityClient("your-api-key");
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
#### `client.createChatCompletion(params)`
|
|
261
|
+
|
|
262
|
+
Creates a chat completion.
|
|
263
|
+
|
|
264
|
+
```typescript
|
|
265
|
+
const response = await client.createChatCompletion({
|
|
266
|
+
model: string,
|
|
267
|
+
messages: Array<{ role: string; content: string }>,
|
|
268
|
+
stream?: boolean,
|
|
269
|
+
usageMetadata?: UsageMetadata,
|
|
270
|
+
[key: string]: any,
|
|
271
|
+
});
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
#### `client.createStreamingChatCompletion(params)`
|
|
275
|
+
|
|
276
|
+
Creates a streaming chat completion.
|
|
277
|
+
|
|
278
|
+
```typescript
|
|
279
|
+
const stream = await client.createStreamingChatCompletion({
|
|
280
|
+
model: string,
|
|
281
|
+
messages: Array<{ role: string; content: string }>,
|
|
282
|
+
usageMetadata?: UsageMetadata,
|
|
283
|
+
[key: string]: any,
|
|
284
|
+
});
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
#### `client.getModels()`
|
|
288
|
+
|
|
289
|
+
Gets available models.
|
|
290
|
+
|
|
291
|
+
```typescript
|
|
292
|
+
const models = await client.getModels();
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
### UsageMetadata Interface
|
|
296
|
+
|
|
297
|
+
```typescript
|
|
298
|
+
interface UsageMetadata {
|
|
299
|
+
traceId?: string;
|
|
300
|
+
taskType?: string;
|
|
301
|
+
subscriberEmail?: string;
|
|
302
|
+
subscriberId?: string;
|
|
303
|
+
subscriberCredentialName?: string;
|
|
304
|
+
subscriberCredential?: string;
|
|
305
|
+
organizationId?: string;
|
|
306
|
+
subscriptionId?: string;
|
|
307
|
+
productId?: string;
|
|
308
|
+
agent?: string;
|
|
309
|
+
responseQualityScore?: number;
|
|
310
|
+
}
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
## 🔧 Integration Tips
|
|
314
|
+
|
|
315
|
+
### Express.js
|
|
316
|
+
|
|
317
|
+
Load environment variables first, create a separate Perplexity module, and use the patched instance everywhere.
|
|
318
|
+
|
|
319
|
+
### Next.js
|
|
320
|
+
|
|
321
|
+
Use global variables to prevent re-initialization, works with both Pages and App Router.
|
|
322
|
+
|
|
323
|
+
### Serverless
|
|
324
|
+
|
|
325
|
+
Implement singleton pattern for cold starts, handle CORS for browser clients.
|
|
326
|
+
|
|
327
|
+
### Docker
|
|
328
|
+
|
|
329
|
+
Validate environment variables at startup, add health checks for orchestration.
|
|
330
|
+
|
|
331
|
+
## 🐛 Troubleshooting
|
|
332
|
+
|
|
333
|
+
### Common Issues
|
|
334
|
+
|
|
335
|
+
1. **Middleware not activating**: Ensure you're importing the package before creating client instances
|
|
336
|
+
2. **Environment variables**: Verify all required environment variables are set
|
|
337
|
+
3. **API keys**: Check that both Perplexity and Revenium API keys are valid
|
|
338
|
+
|
|
339
|
+
### Debug Mode
|
|
340
|
+
|
|
341
|
+
Enable verbose logging for troubleshooting:
|
|
342
|
+
|
|
343
|
+
```bash
|
|
344
|
+
export REVENIUM_VERBOSE_STARTUP=true
|
|
345
|
+
npm run basic-client-example
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
### Error Logs
|
|
349
|
+
|
|
350
|
+
The middleware provides detailed error logs when issues occur. Check your console output for specific error messages.
|
|
351
|
+
|
|
352
|
+
## 📄 License
|
|
353
|
+
|
|
354
|
+
ISC
|
|
355
|
+
|
|
356
|
+
## 🤝 Support
|
|
357
|
+
|
|
358
|
+
For support, please:
|
|
359
|
+
|
|
360
|
+
- Open an issue on [GitHub](https://github.com/revenium/revenium-middleware-openai-node)
|
|
361
|
+
- Check the [examples documentation](examples/README.md)
|
|
362
|
+
- Contact the Revenium team
|
|
363
|
+
|
|
364
|
+
## 🔗 Related Projects
|
|
365
|
+
|
|
366
|
+
- [Revenium OpenAI Middleware](https://github.com/revenium/revenium-middleware-openai-node) - Similar middleware for OpenAI and Azure OpenAI
|
|
367
|
+
- [Revenium Platform](https://revenium.io) - AI usage tracking and analytics platform
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import "./perplexity-ai/middleware";
|
|
2
|
+
export * from "./utils";
|
|
3
|
+
export * from "./types";
|
|
4
|
+
export * from "./models";
|
|
5
|
+
export * from "./perplexity-ai";
|
|
6
|
+
export declare const version: string;
|
|
7
|
+
export declare const activeSDKList: string[];
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,4BAA4B,CAAC;AAiBpC,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AAGzB,cAAc,iBAAiB,CAAC;AAQhC,eAAO,MAAM,OAAO,EAAC,MAAgB,CAAC;AACtC,eAAO,MAAM,aAAa,EAAC,MAAM,EAAe,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.activeSDKList = exports.version = void 0;
|
|
18
|
+
const dotenv_1 = require("dotenv");
|
|
19
|
+
const models_1 = require("./models");
|
|
20
|
+
const activeMiddleware_1 = require("./utils/activeMiddleware");
|
|
21
|
+
const verifyLogVerbose_1 = require("./utils/verifyLogVerbose");
|
|
22
|
+
// Import the Perplexity middleware to activate it
|
|
23
|
+
require("./perplexity-ai/middleware");
|
|
24
|
+
(0, dotenv_1.config)();
|
|
25
|
+
const verboseStartup = process.env.REVENIUM_VERBOSE_STARTUP?.toLowerCase() === "true";
|
|
26
|
+
(0, verifyLogVerbose_1.verifyLogVerbose)(verboseStartup, "Revenium Perplexity middleware initialization starting");
|
|
27
|
+
// Activate middleware for Perplexity AI
|
|
28
|
+
let activeSDKs = [];
|
|
29
|
+
(0, activeMiddleware_1.activeMiddleware)(verboseStartup, activeSDKs, "perplexity-ai");
|
|
30
|
+
// Export all utilities, types, and models
|
|
31
|
+
__exportStar(require("./utils"), exports);
|
|
32
|
+
__exportStar(require("./types"), exports);
|
|
33
|
+
__exportStar(require("./models"), exports);
|
|
34
|
+
// Export Perplexity client and middleware
|
|
35
|
+
__exportStar(require("./perplexity-ai"), exports);
|
|
36
|
+
// Log the active SDKs
|
|
37
|
+
models_1.Logger.info("Revenium Perplexity middleware activated for: %s", activeSDKs.length > 0 ? activeSDKs.join(", ") : "none");
|
|
38
|
+
exports.version = "0.1.0";
|
|
39
|
+
exports.activeSDKList = activeSDKs;
|
|
40
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,mCAAgC;AAChC,qCAAkC;AAClC,+DAA4D;AAC5D,+DAA4D;AAE5D,kDAAkD;AAClD,sCAAoC;AAEpC,IAAA,eAAM,GAAE,CAAC;AAET,MAAM,cAAc,GAClB,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,WAAW,EAAE,KAAK,MAAM,CAAC;AAEjE,IAAA,mCAAgB,EACd,cAAc,EACd,wDAAwD,CACzD,CAAC;AAEF,wCAAwC;AACxC,IAAI,UAAU,GAAa,EAAE,CAAC;AAC9B,IAAA,mCAAgB,EAAC,cAAc,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;AAE9D,0CAA0C;AAC1C,0CAAwB;AACxB,0CAAwB;AACxB,2CAAyB;AAEzB,0CAA0C;AAC1C,kDAAgC;AAEhC,sBAAsB;AACtB,eAAM,CAAC,IAAI,CACT,kDAAkD,EAClD,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CACvD,CAAC;AAEW,QAAA,OAAO,GAAU,OAAO,CAAC;AACzB,QAAA,aAAa,GAAY,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ApiResponseError.d.ts","sourceRoot":"","sources":["../../../src/models/Exception/ApiResponseError.ts"],"names":[],"mappings":"AAAA,qBAAa,gBAAiB,SAAQ,KAAK;IACL,UAAU,CAAC,EAAE,MAAM;IAAS,QAAQ,CAAC,EAAE,GAAG;gBAAlE,OAAO,EAAE,MAAM,EAAS,UAAU,CAAC,EAAE,MAAM,YAAA,EAAS,QAAQ,CAAC,EAAE,GAAG,YAAA;CAI/E"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ApiResponseError = void 0;
|
|
4
|
+
class ApiResponseError extends Error {
|
|
5
|
+
constructor(message, statusCode, response) {
|
|
6
|
+
super(message);
|
|
7
|
+
this.statusCode = statusCode;
|
|
8
|
+
this.response = response;
|
|
9
|
+
this.name = 'ApiResponseError';
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
exports.ApiResponseError = ApiResponseError;
|
|
13
|
+
//# sourceMappingURL=ApiResponseError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ApiResponseError.js","sourceRoot":"","sources":["../../../src/models/Exception/ApiResponseError.ts"],"names":[],"mappings":";;;AAAA,MAAa,gBAAiB,SAAQ,KAAK;IACzC,YAAY,OAAe,EAAS,UAAmB,EAAS,QAAc;QAC5E,KAAK,CAAC,OAAO,CAAC,CAAC;QADmB,eAAU,GAAV,UAAU,CAAS;QAAS,aAAQ,GAAR,QAAQ,CAAM;QAE5E,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AALD,4CAKC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConfigurationError.d.ts","sourceRoot":"","sources":["../../../src/models/Exception/ConfigurationError.ts"],"names":[],"mappings":"AAAA,qBAAa,kBAAmB,SAAQ,KAAK;gBAC/B,OAAO,EAAE,MAAM;CAI5B"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ConfigurationError = void 0;
|
|
4
|
+
class ConfigurationError extends Error {
|
|
5
|
+
constructor(message) {
|
|
6
|
+
super(message);
|
|
7
|
+
this.name = 'ConfigurationError';
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
exports.ConfigurationError = ConfigurationError;
|
|
11
|
+
//# sourceMappingURL=ConfigurationError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConfigurationError.js","sourceRoot":"","sources":["../../../src/models/Exception/ConfigurationError.ts"],"names":[],"mappings":";;;AAAA,MAAa,kBAAmB,SAAQ,KAAK;IAC3C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AALD,gDAKC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MeteringError.d.ts","sourceRoot":"","sources":["../../../src/models/Exception/MeteringError.ts"],"names":[],"mappings":"AAAA,qBAAa,aAAc,SAAQ,KAAK;IACF,aAAa,CAAC,EAAE,KAAK;gBAA7C,OAAO,EAAE,MAAM,EAAS,aAAa,CAAC,EAAE,KAAK,YAAA;CAI1D"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MeteringError = void 0;
|
|
4
|
+
class MeteringError extends Error {
|
|
5
|
+
constructor(message, originalError) {
|
|
6
|
+
super(message);
|
|
7
|
+
this.originalError = originalError;
|
|
8
|
+
this.name = 'MeteringError';
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.MeteringError = MeteringError;
|
|
12
|
+
//# sourceMappingURL=MeteringError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MeteringError.js","sourceRoot":"","sources":["../../../src/models/Exception/MeteringError.ts"],"names":[],"mappings":";;;AAAA,MAAa,aAAc,SAAQ,KAAK;IACtC,YAAY,OAAe,EAAS,aAAqB;QACvD,KAAK,CAAC,OAAO,CAAC,CAAC;QADmB,kBAAa,GAAb,aAAa,CAAQ;QAEvD,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF;AALD,sCAKC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MiddlewareActivationError.d.ts","sourceRoot":"","sources":["../../../src/models/Exception/MiddlewareActivationError.ts"],"names":[],"mappings":"AAAA,qBAAa,yBAA0B,SAAQ,KAAK;gBACtC,OAAO,EAAE,MAAM;CAI5B"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MiddlewareActivationError = void 0;
|
|
4
|
+
class MiddlewareActivationError extends Error {
|
|
5
|
+
constructor(message) {
|
|
6
|
+
super(message);
|
|
7
|
+
this.name = 'MiddlewareActivationError';
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
exports.MiddlewareActivationError = MiddlewareActivationError;
|
|
11
|
+
//# sourceMappingURL=MiddlewareActivationError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MiddlewareActivationError.js","sourceRoot":"","sources":["../../../src/models/Exception/MiddlewareActivationError.ts"],"names":[],"mappings":";;;AAAA,MAAa,yBAA0B,SAAQ,KAAK;IAClD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;IAC1C,CAAC;CACF;AALD,8DAKC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StreamTrackingError.d.ts","sourceRoot":"","sources":["../../../src/models/Exception/StreamTrackingError.ts"],"names":[],"mappings":"AAAA,qBAAa,mBAAoB,SAAQ,KAAK;gBAChC,OAAO,EAAE,MAAM;CAI5B"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StreamTrackingError = void 0;
|
|
4
|
+
class StreamTrackingError extends Error {
|
|
5
|
+
constructor(message) {
|
|
6
|
+
super(message);
|
|
7
|
+
this.name = 'StreamTrackingError';
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
exports.StreamTrackingError = StreamTrackingError;
|
|
11
|
+
//# sourceMappingURL=StreamTrackingError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StreamTrackingError.js","sourceRoot":"","sources":["../../../src/models/Exception/StreamTrackingError.ts"],"names":[],"mappings":";;;AAAA,MAAa,mBAAoB,SAAQ,KAAK;IAC5C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AALD,kDAKC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TokenCountingError.d.ts","sourceRoot":"","sources":["../../../src/models/Exception/TokenCountingError.ts"],"names":[],"mappings":"AAAA,qBAAa,kBAAmB,SAAQ,KAAK;gBAC/B,OAAO,EAAE,MAAM;CAI5B"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TokenCountingError = void 0;
|
|
4
|
+
class TokenCountingError extends Error {
|
|
5
|
+
constructor(message) {
|
|
6
|
+
super(message);
|
|
7
|
+
this.name = 'TokenCountingError';
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
exports.TokenCountingError = TokenCountingError;
|
|
11
|
+
//# sourceMappingURL=TokenCountingError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TokenCountingError.js","sourceRoot":"","sources":["../../../src/models/Exception/TokenCountingError.ts"],"names":[],"mappings":";;;AAAA,MAAa,kBAAmB,SAAQ,KAAK;IAC3C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AALD,gDAKC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from "./ApiResponseError";
|
|
2
|
+
export * from "./ConfigurationError";
|
|
3
|
+
export * from "./MeteringError";
|
|
4
|
+
export * from "./MiddlewareActivationError";
|
|
5
|
+
export * from "./StreamTrackingError";
|
|
6
|
+
export * from "./TokenCountingError";
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/models/Exception/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./ApiResponseError"), exports);
|
|
18
|
+
__exportStar(require("./ConfigurationError"), exports);
|
|
19
|
+
__exportStar(require("./MeteringError"), exports);
|
|
20
|
+
__exportStar(require("./MiddlewareActivationError"), exports);
|
|
21
|
+
__exportStar(require("./StreamTrackingError"), exports);
|
|
22
|
+
__exportStar(require("./TokenCountingError"), exports);
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/models/Exception/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,uDAAqC;AACrC,kDAAgC;AAChC,8DAA4C;AAC5C,wDAAsC;AACtC,uDAAqC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare class Logger {
|
|
2
|
+
private static logLevel;
|
|
3
|
+
static debug(message: string, data?: any): void;
|
|
4
|
+
static info(message: string, data?: any): void;
|
|
5
|
+
static warning(message: string, data?: any): void;
|
|
6
|
+
static error(message: string, data?: any): void;
|
|
7
|
+
private static shouldLog;
|
|
8
|
+
}
|
|
9
|
+
export declare const logger: typeof Logger;
|
|
10
|
+
//# sourceMappingURL=Logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../../src/models/Logger.ts"],"names":[],"mappings":"AAEA,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAoD;IAE3E,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAM/C,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAM9C,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAMjD,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAM/C,OAAO,CAAC,MAAM,CAAC,SAAS;CAMzB;AAED,eAAO,MAAM,MAAM,eAAS,CAAC"}
|