@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
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import axios from "axios";
|
|
2
|
+
import { MeteringRequest } from "../types";
|
|
3
|
+
import { MeteringError } from "../models";
|
|
4
|
+
import { STATUS_CODE, TIMEOUT_MS } from "./constants/constants";
|
|
5
|
+
|
|
6
|
+
export async function sendMeteringData(
|
|
7
|
+
meteringRequest: MeteringRequest,
|
|
8
|
+
apiKey: string,
|
|
9
|
+
baseUrl: string
|
|
10
|
+
): Promise<void> {
|
|
11
|
+
try {
|
|
12
|
+
const response = await axios.post(
|
|
13
|
+
`${baseUrl}/v2/ai/completions`,
|
|
14
|
+
meteringRequest,
|
|
15
|
+
{
|
|
16
|
+
headers: {
|
|
17
|
+
"Content-Type": "application/json",
|
|
18
|
+
Accept: "application/json",
|
|
19
|
+
"x-api-key": apiKey,
|
|
20
|
+
},
|
|
21
|
+
timeout: TIMEOUT_MS,
|
|
22
|
+
}
|
|
23
|
+
);
|
|
24
|
+
|
|
25
|
+
if (
|
|
26
|
+
response.status !== STATUS_CODE.SUCCESS &&
|
|
27
|
+
response.status !== STATUS_CODE.CREATED
|
|
28
|
+
) {
|
|
29
|
+
throw new MeteringError(
|
|
30
|
+
`Failed to send metering data. Status: ${response.status}`,
|
|
31
|
+
new Error(`HTTP ${response.status}`)
|
|
32
|
+
);
|
|
33
|
+
} else {
|
|
34
|
+
console.log("🔍 [DEBUG] Metering data sent successfully");
|
|
35
|
+
}
|
|
36
|
+
} catch (error) {
|
|
37
|
+
if (error instanceof MeteringError) {
|
|
38
|
+
throw error;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
throw new MeteringError(
|
|
42
|
+
"Failed to send metering data to Revenium",
|
|
43
|
+
error as Error
|
|
44
|
+
);
|
|
45
|
+
}
|
|
46
|
+
}
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "ES2020",
|
|
4
|
+
"module": "commonjs",
|
|
5
|
+
"lib": ["ES2020"],
|
|
6
|
+
"outDir": "./dist",
|
|
7
|
+
"rootDir": "./src",
|
|
8
|
+
"strict": true,
|
|
9
|
+
"esModuleInterop": true,
|
|
10
|
+
"skipLibCheck": true,
|
|
11
|
+
"forceConsistentCasingInFileNames": true,
|
|
12
|
+
"declaration": true,
|
|
13
|
+
"declarationMap": true,
|
|
14
|
+
"sourceMap": true,
|
|
15
|
+
"resolveJsonModule": true,
|
|
16
|
+
"moduleResolution": "node",
|
|
17
|
+
"allowSyntheticDefaultImports": true,
|
|
18
|
+
"experimentalDecorators": true,
|
|
19
|
+
"emitDecoratorMetadata": true
|
|
20
|
+
},
|
|
21
|
+
"include": ["src/**/*"],
|
|
22
|
+
"exclude": ["node_modules", "dist", "**/*.test.ts"]
|
|
23
|
+
}
|