@revenium/perplexity 2.0.4 → 2.0.5

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 (205) hide show
  1. package/CHANGELOG.md +32 -33
  2. package/README.md +120 -101
  3. package/SECURITY.md +34 -0
  4. package/dist/cjs/constants/models.js +38 -0
  5. package/dist/cjs/constants/models.js.map +1 -0
  6. package/dist/cjs/core/client/index.js +13 -0
  7. package/dist/cjs/core/client/index.js.map +1 -0
  8. package/dist/cjs/core/client/manager.js +85 -0
  9. package/dist/cjs/core/client/manager.js.map +1 -0
  10. package/dist/cjs/core/config/index.js +21 -0
  11. package/dist/cjs/core/config/index.js.map +1 -0
  12. package/dist/cjs/core/config/loader.js +48 -0
  13. package/dist/cjs/core/config/loader.js.map +1 -0
  14. package/dist/cjs/core/config/manager.js +77 -0
  15. package/dist/cjs/core/config/manager.js.map +1 -0
  16. package/dist/cjs/core/config/validator.js +45 -0
  17. package/dist/cjs/core/config/validator.js.map +1 -0
  18. package/dist/cjs/core/middleware/index.js +14 -0
  19. package/dist/cjs/core/middleware/index.js.map +1 -0
  20. package/dist/cjs/core/middleware/interfaces.js +94 -0
  21. package/dist/cjs/core/middleware/interfaces.js.map +1 -0
  22. package/dist/cjs/core/middleware/revenium-client.js +44 -0
  23. package/dist/cjs/core/middleware/revenium-client.js.map +1 -0
  24. package/dist/cjs/core/middleware/streaming-wrapper.js +80 -0
  25. package/dist/cjs/core/middleware/streaming-wrapper.js.map +1 -0
  26. package/dist/cjs/core/providers/detector.js +38 -0
  27. package/dist/cjs/core/providers/detector.js.map +1 -0
  28. package/dist/cjs/core/providers/index.js +14 -0
  29. package/dist/cjs/core/providers/index.js.map +1 -0
  30. package/dist/cjs/core/tracking/api-client.js +67 -0
  31. package/dist/cjs/core/tracking/api-client.js.map +1 -0
  32. package/dist/cjs/core/tracking/index.js +21 -0
  33. package/dist/cjs/core/tracking/index.js.map +1 -0
  34. package/dist/cjs/core/tracking/payload-builder.js +95 -0
  35. package/dist/cjs/core/tracking/payload-builder.js.map +1 -0
  36. package/dist/cjs/core/tracking/usage-tracker.js +83 -0
  37. package/dist/cjs/core/tracking/usage-tracker.js.map +1 -0
  38. package/dist/cjs/index.js +60 -59
  39. package/dist/cjs/index.js.map +1 -1
  40. package/dist/cjs/types/function-parameters.js +14 -0
  41. package/dist/cjs/types/function-parameters.js.map +1 -0
  42. package/dist/cjs/types/index.js +20 -1
  43. package/dist/cjs/types/index.js.map +1 -1
  44. package/dist/cjs/utils/constants.js +20 -0
  45. package/dist/cjs/utils/constants.js.map +1 -0
  46. package/dist/cjs/utils/error-handler.js +194 -0
  47. package/dist/cjs/utils/error-handler.js.map +1 -0
  48. package/dist/cjs/utils/metadata-builder.js +191 -0
  49. package/dist/cjs/utils/metadata-builder.js.map +1 -0
  50. package/dist/cjs/utils/stop-reason-mapper.js +74 -0
  51. package/dist/cjs/utils/stop-reason-mapper.js.map +1 -0
  52. package/dist/cjs/utils/transaction-id.js +19 -0
  53. package/dist/cjs/utils/transaction-id.js.map +1 -0
  54. package/dist/cjs/utils/url-builder.js +57 -0
  55. package/dist/cjs/utils/url-builder.js.map +1 -0
  56. package/dist/esm/constants/models.js +35 -0
  57. package/dist/esm/constants/models.js.map +1 -0
  58. package/dist/esm/core/client/index.js +5 -0
  59. package/dist/esm/core/client/index.js.map +1 -0
  60. package/dist/esm/core/client/manager.js +78 -0
  61. package/dist/esm/core/client/manager.js.map +1 -0
  62. package/dist/esm/core/config/index.js +11 -0
  63. package/dist/esm/core/config/index.js.map +1 -0
  64. package/dist/esm/core/config/loader.js +45 -0
  65. package/dist/esm/core/config/loader.js.map +1 -0
  66. package/dist/esm/core/config/manager.js +70 -0
  67. package/dist/esm/core/config/manager.js.map +1 -0
  68. package/dist/esm/core/config/validator.js +42 -0
  69. package/dist/esm/core/config/validator.js.map +1 -0
  70. package/dist/esm/core/middleware/index.js +7 -0
  71. package/dist/esm/core/middleware/index.js.map +1 -0
  72. package/dist/esm/core/middleware/interfaces.js +89 -0
  73. package/dist/esm/core/middleware/interfaces.js.map +1 -0
  74. package/dist/esm/core/middleware/revenium-client.js +37 -0
  75. package/dist/esm/core/middleware/revenium-client.js.map +1 -0
  76. package/dist/esm/core/middleware/streaming-wrapper.js +76 -0
  77. package/dist/esm/core/middleware/streaming-wrapper.js.map +1 -0
  78. package/dist/esm/core/providers/detector.js +34 -0
  79. package/dist/esm/core/providers/detector.js.map +1 -0
  80. package/dist/esm/core/providers/index.js +9 -0
  81. package/dist/esm/core/providers/index.js.map +1 -0
  82. package/dist/esm/core/tracking/api-client.js +64 -0
  83. package/dist/esm/core/tracking/api-client.js.map +1 -0
  84. package/dist/esm/core/tracking/index.js +13 -0
  85. package/dist/esm/core/tracking/index.js.map +1 -0
  86. package/dist/esm/core/tracking/payload-builder.js +92 -0
  87. package/dist/esm/core/tracking/payload-builder.js.map +1 -0
  88. package/dist/esm/core/tracking/usage-tracker.js +79 -0
  89. package/dist/esm/core/tracking/usage-tracker.js.map +1 -0
  90. package/dist/esm/index.js +46 -39
  91. package/dist/esm/index.js.map +1 -1
  92. package/dist/esm/types/function-parameters.js +13 -0
  93. package/dist/esm/types/function-parameters.js.map +1 -0
  94. package/dist/esm/types/index.js +6 -2
  95. package/dist/esm/types/index.js.map +1 -1
  96. package/dist/esm/utils/constants.js +17 -0
  97. package/dist/esm/utils/constants.js.map +1 -0
  98. package/dist/esm/utils/error-handler.js +182 -0
  99. package/dist/esm/utils/error-handler.js.map +1 -0
  100. package/dist/esm/utils/metadata-builder.js +183 -0
  101. package/dist/esm/utils/metadata-builder.js.map +1 -0
  102. package/dist/esm/utils/stop-reason-mapper.js +69 -0
  103. package/dist/esm/utils/stop-reason-mapper.js.map +1 -0
  104. package/dist/esm/utils/transaction-id.js +16 -0
  105. package/dist/esm/utils/transaction-id.js.map +1 -0
  106. package/dist/esm/utils/url-builder.js +53 -0
  107. package/dist/esm/utils/url-builder.js.map +1 -0
  108. package/dist/types/constants/models.d.ts +39 -0
  109. package/dist/types/constants/models.d.ts.map +1 -0
  110. package/dist/types/core/client/index.d.ts +5 -0
  111. package/dist/types/core/client/index.d.ts.map +1 -0
  112. package/dist/types/core/client/manager.d.ts +44 -0
  113. package/dist/types/core/client/manager.d.ts.map +1 -0
  114. package/dist/types/core/config/index.d.ts +10 -0
  115. package/dist/types/core/config/index.d.ts.map +1 -0
  116. package/dist/types/core/config/loader.d.ts +13 -0
  117. package/dist/types/core/config/loader.d.ts.map +1 -0
  118. package/dist/types/core/config/manager.d.ts +28 -0
  119. package/dist/types/core/config/manager.d.ts.map +1 -0
  120. package/dist/types/core/config/validator.d.ts +12 -0
  121. package/dist/types/core/config/validator.d.ts.map +1 -0
  122. package/dist/types/core/middleware/index.d.ts +7 -0
  123. package/dist/types/core/middleware/index.d.ts.map +1 -0
  124. package/dist/types/core/middleware/interfaces.d.ts +35 -0
  125. package/dist/types/core/middleware/interfaces.d.ts.map +1 -0
  126. package/dist/types/core/middleware/revenium-client.d.ts +25 -0
  127. package/dist/types/core/middleware/revenium-client.d.ts.map +1 -0
  128. package/dist/types/core/middleware/streaming-wrapper.d.ts +21 -0
  129. package/dist/types/core/middleware/streaming-wrapper.d.ts.map +1 -0
  130. package/dist/types/core/providers/detector.d.ts +24 -0
  131. package/dist/types/core/providers/detector.d.ts.map +1 -0
  132. package/dist/types/core/providers/index.d.ts +8 -0
  133. package/dist/types/core/providers/index.d.ts.map +1 -0
  134. package/dist/types/core/tracking/api-client.d.ts +17 -0
  135. package/dist/types/core/tracking/api-client.d.ts.map +1 -0
  136. package/dist/types/core/tracking/index.d.ts +11 -0
  137. package/dist/types/core/tracking/index.d.ts.map +1 -0
  138. package/dist/types/core/tracking/payload-builder.d.ts +24 -0
  139. package/dist/types/core/tracking/payload-builder.d.ts.map +1 -0
  140. package/dist/types/core/tracking/usage-tracker.d.ts +30 -0
  141. package/dist/types/core/tracking/usage-tracker.d.ts.map +1 -0
  142. package/dist/types/index.d.ts +56 -27
  143. package/dist/types/index.d.ts.map +1 -1
  144. package/dist/types/types/function-parameters.d.ts +185 -0
  145. package/dist/types/types/function-parameters.d.ts.map +1 -0
  146. package/dist/types/types/index.d.ts +108 -129
  147. package/dist/types/types/index.d.ts.map +1 -1
  148. package/dist/types/utils/constants.d.ts +9 -0
  149. package/dist/types/utils/constants.d.ts.map +1 -0
  150. package/dist/types/utils/error-handler.d.ts +95 -0
  151. package/dist/types/utils/error-handler.d.ts.map +1 -0
  152. package/dist/types/utils/metadata-builder.d.ts +65 -0
  153. package/dist/types/utils/metadata-builder.d.ts.map +1 -0
  154. package/dist/types/utils/stop-reason-mapper.d.ts +29 -0
  155. package/dist/types/utils/stop-reason-mapper.d.ts.map +1 -0
  156. package/dist/types/utils/transaction-id.d.ts +14 -0
  157. package/dist/types/utils/transaction-id.d.ts.map +1 -0
  158. package/dist/types/utils/url-builder.d.ts +22 -0
  159. package/dist/types/utils/url-builder.d.ts.map +1 -0
  160. package/examples/README.md +124 -220
  161. package/examples/advanced.ts +123 -0
  162. package/examples/basic.ts +32 -37
  163. package/examples/getting_started.ts +26 -49
  164. package/examples/metadata.ts +51 -48
  165. package/examples/stream.ts +53 -0
  166. package/package.json +9 -10
  167. package/dist/cjs/constants.js +0 -70
  168. package/dist/cjs/constants.js.map +0 -1
  169. package/dist/cjs/core/config/perplexity-config.js +0 -45
  170. package/dist/cjs/core/config/perplexity-config.js.map +0 -1
  171. package/dist/cjs/core/config/revenium-config.js +0 -80
  172. package/dist/cjs/core/config/revenium-config.js.map +0 -1
  173. package/dist/cjs/core/tracking/metering.js +0 -211
  174. package/dist/cjs/core/tracking/metering.js.map +0 -1
  175. package/dist/cjs/core/wrapper/perplexity-client.js +0 -187
  176. package/dist/cjs/core/wrapper/perplexity-client.js.map +0 -1
  177. package/dist/cjs/utils/logger.js +0 -23
  178. package/dist/cjs/utils/logger.js.map +0 -1
  179. package/dist/esm/constants.js +0 -67
  180. package/dist/esm/constants.js.map +0 -1
  181. package/dist/esm/core/config/perplexity-config.js +0 -40
  182. package/dist/esm/core/config/perplexity-config.js.map +0 -1
  183. package/dist/esm/core/config/revenium-config.js +0 -72
  184. package/dist/esm/core/config/revenium-config.js.map +0 -1
  185. package/dist/esm/core/tracking/metering.js +0 -206
  186. package/dist/esm/core/tracking/metering.js.map +0 -1
  187. package/dist/esm/core/wrapper/perplexity-client.js +0 -180
  188. package/dist/esm/core/wrapper/perplexity-client.js.map +0 -1
  189. package/dist/esm/utils/logger.js +0 -20
  190. package/dist/esm/utils/logger.js.map +0 -1
  191. package/dist/types/constants.d.ts +0 -67
  192. package/dist/types/constants.d.ts.map +0 -1
  193. package/dist/types/core/config/perplexity-config.d.ts +0 -24
  194. package/dist/types/core/config/perplexity-config.d.ts.map +0 -1
  195. package/dist/types/core/config/revenium-config.d.ts +0 -37
  196. package/dist/types/core/config/revenium-config.d.ts.map +0 -1
  197. package/dist/types/core/tracking/metering.d.ts +0 -31
  198. package/dist/types/core/tracking/metering.d.ts.map +0 -1
  199. package/dist/types/core/wrapper/perplexity-client.d.ts +0 -32
  200. package/dist/types/core/wrapper/perplexity-client.d.ts.map +0 -1
  201. package/dist/types/utils/logger.d.ts +0 -10
  202. package/dist/types/utils/logger.d.ts.map +0 -1
  203. package/examples/advanced-features.ts +0 -148
  204. package/examples/chat.ts +0 -73
  205. package/examples/streaming.ts +0 -50
@@ -0,0 +1,53 @@
1
+ /**
2
+ * URL Builder Utilities
3
+ *
4
+ * Centralized URL construction logic to eliminate nested conditionals.
5
+ * Replaces the complex URL building logic from tracking.ts.
6
+ */
7
+ /**
8
+ * Build Revenium API URL with proper path handling
9
+ *
10
+ * @param baseUrl - The base URL from configuration (may include /meter or /meter/v2)
11
+ * @param endpoint - The API endpoint to append (e.g., '/ai/completions')
12
+ * @returns Complete URL for the API call
13
+ */
14
+ export function buildReveniumUrl(baseUrl, endpoint) {
15
+ // Normalize the base URL by removing trailing slashes
16
+ let normalizedBase = baseUrl.replace(/\/+$/, '');
17
+ // Check if /meter/v2 is already at the end
18
+ const hasMeterV2AtEnd = /\/meter\/v2$/i.test(normalizedBase);
19
+ if (hasMeterV2AtEnd) {
20
+ // Already has /meter/v2, just append endpoint
21
+ return `${normalizedBase}${endpoint}`;
22
+ }
23
+ // Check if /meter is at the end (but not /meter/v2)
24
+ const hasMeterAtEnd = /\/meter$/i.test(normalizedBase);
25
+ if (hasMeterAtEnd) {
26
+ // Has /meter but not /v2, append /v2 and endpoint
27
+ return `${normalizedBase}/v2${endpoint}`;
28
+ }
29
+ // Check if /v2 is at the end (without /meter)
30
+ const hasV2AtEnd = /\/v2$/i.test(normalizedBase);
31
+ if (hasV2AtEnd) {
32
+ // Has /v2 but not /meter, append endpoint as-is
33
+ return `${normalizedBase}${endpoint}`;
34
+ }
35
+ // Has neither /meter nor /v2, append /meter/v2 and endpoint
36
+ return `${normalizedBase}/meter/v2${endpoint}`;
37
+ }
38
+ /**
39
+ * Validate URL format
40
+ *
41
+ * @param url - URL to validate
42
+ * @returns true if valid, false otherwise
43
+ */
44
+ export function isValidUrl(url) {
45
+ try {
46
+ new URL(url);
47
+ return true;
48
+ }
49
+ catch {
50
+ return false;
51
+ }
52
+ }
53
+ //# sourceMappingURL=url-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url-builder.js","sourceRoot":"","sources":["../../../src/utils/url-builder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAe,EAAE,QAAgB;IAChE,sDAAsD;IACtD,IAAI,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAEjD,2CAA2C;IAC3C,MAAM,eAAe,GAAG,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC7D,IAAI,eAAe,EAAE,CAAC;QACpB,8CAA8C;QAC9C,OAAO,GAAG,cAAc,GAAG,QAAQ,EAAE,CAAC;IACxC,CAAC;IAED,oDAAoD;IACpD,MAAM,aAAa,GAAG,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACvD,IAAI,aAAa,EAAE,CAAC;QAClB,kDAAkD;QAClD,OAAO,GAAG,cAAc,MAAM,QAAQ,EAAE,CAAC;IAC3C,CAAC;IAED,8CAA8C;IAC9C,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACjD,IAAI,UAAU,EAAE,CAAC;QACf,gDAAgD;QAChD,OAAO,GAAG,cAAc,GAAG,QAAQ,EAAE,CAAC;IACxC,CAAC;IAED,4DAA4D;IAC5D,OAAO,GAAG,cAAc,YAAY,QAAQ,EAAE,CAAC;AACjD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,GAAW;IACpC,IAAI,CAAC;QACH,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Perplexity Model Constants
3
+ *
4
+ * Official model names for Perplexity AI.
5
+ * Use these constants instead of hardcoding model strings.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * import { PERPLEXITY_MODELS } from "@revenium/perplexity";
10
+ *
11
+ * const response = await client.chat().completions().create({
12
+ * model: PERPLEXITY_MODELS.SONAR_PRO,
13
+ * messages: [{ role: "user", content: "Hello!" }]
14
+ * });
15
+ * ```
16
+ */
17
+ /**
18
+ * Available Perplexity AI models
19
+ * @see https://docs.perplexity.ai/docs/model-cards
20
+ */
21
+ export declare const PERPLEXITY_MODELS: {
22
+ /**
23
+ * Sonar Pro - Most capable model for complex queries
24
+ */
25
+ readonly SONAR_PRO: "sonar-pro";
26
+ /**
27
+ * Sonar - Standard model for most use cases
28
+ */
29
+ readonly SONAR: "sonar";
30
+ /**
31
+ * Sonar Reasoning - Specialized for reasoning tasks
32
+ */
33
+ readonly SONAR_REASONING: "sonar-reasoning";
34
+ };
35
+ /**
36
+ * Type representing valid Perplexity model names
37
+ */
38
+ export type PerplexityModel = (typeof PERPLEXITY_MODELS)[keyof typeof PERPLEXITY_MODELS];
39
+ //# sourceMappingURL=models.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../../src/constants/models.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH;;;GAGG;AACH,eAAO,MAAM,iBAAiB;IAC5B;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;CAEK,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,eAAe,GACzB,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,OAAO,iBAAiB,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Client module exports
3
+ */
4
+ export { Initialize, GetClient, IsInitialized, Reset, Configure } from "./manager.js";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/client/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Client Manager - singleton pattern
3
+ *
4
+ * Provides Initialize/GetClient pattern.
5
+ * Manages singleton instance of ReveniumPerplexity client.
6
+ *
7
+ */
8
+ import { ReveniumPerplexity } from "../middleware/revenium-client.js";
9
+ import type { ReveniumConfig } from "../../types/index.js";
10
+ /**
11
+ * Initialize Revenium Perplexity client from environment variables
12
+ *
13
+ * Loads configuration from environment:
14
+ * - REVENIUM_METERING_API_KEY (required)
15
+ * - PERPLEXITY_API_KEY (required)
16
+ * @throws {Error} If required environment variables are missing
17
+ */
18
+ export declare function Initialize(): void;
19
+ /**
20
+ * Configure Revenium Perplexity client with custom configuration
21
+ *
22
+ * @param config - Configuration object
23
+ * @throws {Error} If required configuration fields are missing
24
+ *
25
+ */
26
+ export declare function Configure(config: ReveniumConfig): void;
27
+ /**
28
+ * Get the singleton ReveniumPerplexity client instance
29
+ *
30
+ * @returns {ReveniumPerplexity} The client instance
31
+ * @throws {Error} If client has not been initialized
32
+ *
33
+ */
34
+ export declare function GetClient(): ReveniumPerplexity;
35
+ /**
36
+ * Check if client has been initialized
37
+ * @returns {boolean} True if client is initialized
38
+ */
39
+ export declare function IsInitialized(): boolean;
40
+ /**
41
+ * Reset the client instance (useful for testing)
42
+ */
43
+ export declare function Reset(): void;
44
+ //# sourceMappingURL=manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../../src/core/client/manager.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAW3D;;;;;;;GAOG;AACH,wBAAgB,UAAU,IAAI,IAAI,CAOjC;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAkBtD;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,IAAI,kBAAkB,CAO9C;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAEvC;AAED;;GAEG;AACH,wBAAgB,KAAK,IAAI,IAAI,CAE5B"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Configuration module - Main exports
3
+ *
4
+ * This module provides a clean interface for configuration management.
5
+ * Aligned with OpenAI modular implementation.
6
+ */
7
+ export { loadConfigFromEnv } from './loader.js';
8
+ export { validateConfig } from './validator.js';
9
+ export { getConfig, setConfig, getLogger, initializeConfig, defaultLogger, } from './manager.js';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/config/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,EACL,SAAS,EACT,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,aAAa,GACd,MAAM,cAAc,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Configuration Loader Module
3
+ *
4
+ * Handles loading configuration from environment variables.
5
+ * Separated from validation and management for single responsibility.
6
+ */
7
+ import { ReveniumConfig } from "../../types/index.js";
8
+ /**
9
+ * Load configuration from environment variables
10
+ * Automatically loads .env file from current directory if present
11
+ */
12
+ export declare function loadConfigFromEnv(): ReveniumConfig | null;
13
+ //# sourceMappingURL=loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../../src/core/config/loader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AActD;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,cAAc,GAAG,IAAI,CA2BzD"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Configuration Manager Module
3
+ *
4
+ * Handles global configuration state management and logging.
5
+ * Aligned with OpenAI modular implementation.
6
+ */
7
+ import { ReveniumConfig, Logger } from "../../types/index.js";
8
+ /**
9
+ * Default console logger implementation
10
+ */
11
+ export declare const defaultLogger: Logger;
12
+ /**
13
+ * Get the current global configuration
14
+ */
15
+ export declare function getConfig(): ReveniumConfig | null;
16
+ /**
17
+ * Set the global configuration
18
+ */
19
+ export declare function setConfig(config: ReveniumConfig): void;
20
+ /**
21
+ * Get the current logger
22
+ */
23
+ export declare function getLogger(): Logger;
24
+ /**
25
+ * Initialize configuration from environment variables
26
+ */
27
+ export declare function initializeConfig(): ReveniumConfig;
28
+ //# sourceMappingURL=manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../../src/core/config/manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAY9D;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,MAe3B,CAAC;AAIF;;GAEG;AACH,wBAAgB,SAAS,IAAI,cAAc,GAAG,IAAI,CAEjD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAQtD;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,cAAc,CAkBjD"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Configuration Validator Module
3
+ *
4
+ * Handles validation of configuration objects.
5
+ * Separated from loading and management for single responsibility.
6
+ */
7
+ import { ReveniumConfig } from "../../types/index.js";
8
+ /**
9
+ * Validate Revenium configuration
10
+ */
11
+ export declare function validateConfig(config: ReveniumConfig): void;
12
+ //# sourceMappingURL=validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../../../src/core/config/validator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CA8C3D"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Middleware module exports
3
+ */
4
+ export { ReveniumPerplexity } from "./revenium-client.js";
5
+ export { ChatInterface, CompletionsInterface } from "./interfaces.js";
6
+ export { StreamingWrapper } from "./streaming-wrapper.js";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/middleware/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Middleware interfaces for Perplexity API
3
+ */
4
+ import type OpenAI from "openai";
5
+ import type { UsageMetadata } from "../../types";
6
+ import { StreamingWrapper } from "./streaming-wrapper.js";
7
+ /**
8
+ * Chat interface - provides access to chat completions
9
+ */
10
+ export declare class ChatInterface {
11
+ private client;
12
+ private config;
13
+ constructor(client: OpenAI, config: any);
14
+ /**
15
+ * Get completions interface
16
+ */
17
+ completions(): CompletionsInterface;
18
+ }
19
+ /**
20
+ * Completions interface - handles chat completion requests
21
+ */
22
+ export declare class CompletionsInterface {
23
+ private client;
24
+ private config;
25
+ constructor(client: OpenAI, config: any);
26
+ /**
27
+ * Create a chat completion
28
+ */
29
+ create(params: OpenAI.Chat.ChatCompletionCreateParams, metadata?: UsageMetadata): Promise<any>;
30
+ /**
31
+ * Create a streaming chat completion
32
+ */
33
+ createStreaming(params: OpenAI.Chat.ChatCompletionCreateParams, metadata?: UsageMetadata): Promise<StreamingWrapper>;
34
+ }
35
+ //# sourceMappingURL=interfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../../src/core/middleware/interfaces.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAIjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAI1D;;GAEG;AACH,qBAAa,aAAa;IACZ,OAAO,CAAC,MAAM;IAAU,OAAO,CAAC,MAAM;gBAA9B,MAAM,EAAE,MAAM,EAAU,MAAM,EAAE,GAAG;IAEvD;;OAEG;IACH,WAAW,IAAI,oBAAoB;CAGpC;AAED;;GAEG;AACH,qBAAa,oBAAoB;IACnB,OAAO,CAAC,MAAM;IAAU,OAAO,CAAC,MAAM;gBAA9B,MAAM,EAAE,MAAM,EAAU,MAAM,EAAE,GAAG;IAEvD;;OAEG;IACG,MAAM,CACV,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAC9C,QAAQ,CAAC,EAAE,aAAa,GACvB,OAAO,CAAC,GAAG,CAAC;IA2Cf;;OAEG;IACG,eAAe,CACnB,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAC9C,QAAQ,CAAC,EAAE,aAAa;CA8B3B"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Revenium Perplexity Client
3
+ *
4
+ * Main client class that wraps Perplexity API with Revenium tracking
5
+ */
6
+ import OpenAI from "openai";
7
+ import { ChatInterface } from "./interfaces.js";
8
+ import type { ReveniumConfig } from "../../types/index.js";
9
+ /**
10
+ * Revenium Perplexity client with usage tracking
11
+ */
12
+ export declare class ReveniumPerplexity {
13
+ private client;
14
+ private config;
15
+ constructor(config: ReveniumConfig);
16
+ /**
17
+ * Get chat interface
18
+ */
19
+ chat(): ChatInterface;
20
+ /**
21
+ * Get underlying OpenAI client (for advanced use cases)
22
+ */
23
+ getUnderlyingClient(): OpenAI;
24
+ }
25
+ //# sourceMappingURL=revenium-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"revenium-client.d.ts","sourceRoot":"","sources":["../../../../src/core/middleware/revenium-client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D;;GAEG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAiB;gBAEnB,MAAM,EAAE,cAAc;IAclC;;OAEG;IACH,IAAI,IAAI,aAAa;IAIrB;;OAEG;IACH,mBAAmB,IAAI,MAAM;CAG9B"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Streaming wrapper for Perplexity API
3
+ */
4
+ import type { UsageMetadata } from "../../types";
5
+ /**
6
+ * Wrapper for streaming responses that tracks usage
7
+ */
8
+ export declare class StreamingWrapper {
9
+ private stream;
10
+ private model;
11
+ private startTime;
12
+ private transactionId;
13
+ private metadata?;
14
+ private config;
15
+ constructor(stream: AsyncIterable<any>, model: string, startTime: Date, transactionId: string, metadata?: UsageMetadata, config?: any);
16
+ /**
17
+ * Iterate over stream chunks
18
+ */
19
+ [Symbol.asyncIterator](): AsyncGenerator<any>;
20
+ }
21
+ //# sourceMappingURL=streaming-wrapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streaming-wrapper.d.ts","sourceRoot":"","sources":["../../../../src/core/middleware/streaming-wrapper.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAMjD;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,SAAS,CAAO;IACxB,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,CAAgB;IACjC,OAAO,CAAC,MAAM,CAAM;gBAGlB,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,EAC1B,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,IAAI,EACf,aAAa,EAAE,MAAM,EACrB,QAAQ,CAAC,EAAE,aAAa,EACxB,MAAM,CAAC,EAAE,GAAG;IAUd;;OAEG;IACI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,cAAc,CAAC,GAAG,CAAC;CA0DrD"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Provider Detection Module
3
+ *
4
+ * Handles provider metadata for Perplexity AI.
5
+ * Simplified compared to OpenAI modular since Perplexity doesn't have Azure variant.
6
+ */
7
+ import { ProviderInfo } from "../../types/index.js";
8
+ /**
9
+ * Get provider info for Perplexity
10
+ * Always returns Perplexity since there's no Azure variant
11
+ *
12
+ * @returns ProviderInfo with Perplexity provider
13
+ */
14
+ export declare function detectProvider(): ProviderInfo;
15
+ /**
16
+ * Get provider metadata for Revenium payload
17
+ *
18
+ * @returns metadata object for Revenium
19
+ */
20
+ export declare function getProviderMetadata(): {
21
+ provider: string;
22
+ modelSource: string;
23
+ };
24
+ //# sourceMappingURL=detector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detector.d.ts","sourceRoot":"","sources":["../../../../src/core/providers/detector.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAMpD;;;;;GAKG;AACH,wBAAgB,cAAc,IAAI,YAAY,CAM7C;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB,CAKA"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Providers module - Main exports
3
+ *
4
+ * This module provides a clean interface for provider detection and management.
5
+ * Simplified for Perplexity (no Azure variant).
6
+ */
7
+ export { detectProvider, getProviderMetadata } from "./detector.js";
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/providers/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Revenium API Client Module
3
+ *
4
+ * Handles HTTP communication with the Revenium API.
5
+ * Extracted from tracking.ts for single responsibility.
6
+ */
7
+ import { ReveniumPayload } from "../../types";
8
+ /**
9
+ * Send payload to Revenium API
10
+ *
11
+ * This is the shared HTTP function that eliminates all duplication
12
+ * between chat completions and embeddings tracking.
13
+ *
14
+ * @param payload - The payload to send to Revenium
15
+ */
16
+ export declare function sendToRevenium(payload: ReveniumPayload): Promise<void>;
17
+ //# sourceMappingURL=api-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../../../src/core/tracking/api-client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAO9C;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAuD5E"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Tracking module - Main exports
3
+ *
4
+ * This module provides a clean interface for usage tracking,
5
+ * separating concerns into focused sub-modules.
6
+ */
7
+ export { sendToRevenium } from './api-client.js';
8
+ export { buildPayload } from './payload-builder.js';
9
+ export { sendReveniumMetrics, trackUsageAsync } from './usage-tracker.js';
10
+ export { mapStopReason } from '../../utils/stop-reason-mapper.js';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/tracking/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAG1E,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Payload Builder Module
3
+ *
4
+ * Handles construction of Revenium API payloads.
5
+ * Extracted from tracking.ts for single responsibility.
6
+ */
7
+ import { ReveniumPayload, PerplexityResponse, PerplexityChatRequest, ProviderInfo } from "../../types/index.js";
8
+ /**
9
+ * Build payload for Revenium API
10
+ *
11
+ * This shared payload builder eliminates payload duplication.
12
+ * Handles CHAT operation type for Perplexity.
13
+ *
14
+ * @param operationType - Type of operation (CHAT)
15
+ * @param response - API response from Perplexity
16
+ * @param request - Original request parameters
17
+ * @param startTime - Request start timestamp
18
+ * @param duration - Request duration in milliseconds
19
+ * @param providerInfo - Provider information (always Perplexity)
20
+ * @param timeToFirstToken - Time to first token in milliseconds (for streaming)
21
+ * @returns Constructed payload for Revenium API
22
+ */
23
+ export declare function buildPayload(operationType: "CHAT", response: PerplexityResponse, request: PerplexityChatRequest, startTime: number, duration: number, providerInfo?: ProviderInfo, timeToFirstToken?: number): ReveniumPayload;
24
+ //# sourceMappingURL=payload-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payload-builder.d.ts","sourceRoot":"","sources":["../../../../src/core/tracking/payload-builder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,YAAY,EACb,MAAM,sBAAsB,CAAC;AAS9B;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,YAAY,CAC1B,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,EAAE,qBAAqB,EAC9B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,YAAY,CAAC,EAAE,YAAY,EAC3B,gBAAgB,CAAC,EAAE,MAAM,GACxB,eAAe,CA4EjB"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Usage Tracker Module
3
+ *
4
+ * High-level tracking functions that combine payload building and API communication.
5
+ * Extracted from tracking.ts for better organization.
6
+ */
7
+ import { UsageMetadata, ProviderInfo, PerplexityResponse, PerplexityChatRequest, PerplexityCost } from "../../types/index.js";
8
+ /**
9
+ * Chat completions tracking - thin wrapper
10
+ */
11
+ export declare function sendReveniumMetrics(response: PerplexityResponse, request: PerplexityChatRequest, startTime: number, duration: number, providerInfo?: ProviderInfo, timeToFirstToken?: number): Promise<void>;
12
+ /**
13
+ * Fire-and-forget wrapper for chat completions
14
+ * Constructs DTO objects from simple tracking data to call sendReveniumMetrics
15
+ */
16
+ export declare function trackUsageAsync(trackingData: {
17
+ requestId: string;
18
+ model: string;
19
+ promptTokens: number;
20
+ completionTokens: number;
21
+ totalTokens: number;
22
+ duration: number;
23
+ finishReason: string | null;
24
+ usageMetadata?: UsageMetadata;
25
+ isStreamed?: boolean;
26
+ timeToFirstToken?: number;
27
+ providerInfo?: ProviderInfo;
28
+ cost?: PerplexityCost;
29
+ }): void;
30
+ //# sourceMappingURL=usage-tracker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usage-tracker.d.ts","sourceRoot":"","sources":["../../../../src/core/tracking/usage-tracker.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,qBAAqB,EACrB,cAAc,EACf,MAAM,sBAAsB,CAAC;AAS9B;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,EAAE,qBAAqB,EAC9B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,YAAY,CAAC,EAAE,YAAY,EAC3B,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,IAAI,CAAC,CAsBf;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,YAAY,EAAE;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,IAAI,CAAC,EAAE,cAAc,CAAC;CACvB,GAAG,IAAI,CA0DP"}
@@ -1,34 +1,63 @@
1
1
  /**
2
- * Revenium Middleware for Perplexity
2
+ * Revenium Perplexity Middleware for TypeScript
3
3
  *
4
- * A lightweight middleware that adds Revenium metering to Perplexity API calls.
4
+ * This middleware tracks Perplexity AI usage and sends metrics to Revenium.
5
+ * Uses Go-aligned API pattern with Initialize/GetClient.
5
6
  *
6
- * @example
7
- * ```typescript
8
- * import {
9
- * initializeReveniumFromEnv,
10
- * initializePerplexityFromEnv,
11
- * createChatCompletion,
12
- * } from '@revenium/perplexity';
7
+ * Environment Variables:
8
+ * REVENIUM_METERING_API_KEY=hak_your_api_key
9
+ * REVENIUM_METERING_BASE_URL=https://api.revenium.ai (optional)
10
+ * PERPLEXITY_API_KEY=pplx_your_perplexity_key
13
11
  *
14
- * // Initialize configurations
15
- * initializeReveniumFromEnv();
16
- * initializePerplexityFromEnv();
12
+ * Usage:
13
+ * import { Initialize, GetClient } from "@revenium/perplexity";
17
14
  *
18
- * // Create a chat completion
19
- * const result = await createChatCompletion({
20
- * messages: [{ role: 'user', content: 'Hello!' }],
21
- * model: 'sonar-pro',
22
- * });
15
+ * // Initialize from environment
16
+ * Initialize();
17
+ *
18
+ * // Get client
19
+ * const client = GetClient();
23
20
  *
24
- * console.log(result.content);
25
- * ```
26
- */
27
- export { initializeReveniumFromEnv, initializeRevenium, getReveniumConfig, isReveniumEnabled, disableRevenium, enableRevenium, type ReveniumConfig, } from "./core/config/revenium-config";
28
- export { initializePerplexityFromEnv, initializePerplexity, getPerplexityConfig, type PerplexityConfig, } from "./core/config/perplexity-config";
29
- export { createChatCompletion, createStreamingChatCompletion, } from "./core/wrapper/perplexity-client";
30
- export { generateTransactionId, buildMeteringData, sendMeteringData, } from "./core/tracking/metering";
31
- export type { PerplexityMessage, PerplexityChatRequest, PerplexityUsage, PerplexityChoice, PerplexityResponse, PerplexityStreamChunk, UsageMetadata, MeteringData, ChatCompletionResult, StreamingResult, } from "./types";
32
- export { PERPLEXITY_PATTERNS, DEFAULT_CONFIG, API_ENDPOINTS, MIDDLEWARE_INFO, } from "./constants";
33
- export { logger } from "./utils/logger";
21
+ * // Use client
22
+ * const response = await client.chat().completions().create({
23
+ * model: "sonar",
24
+ * messages: [{ role: "user", content: "Hello!" }]
25
+ * }, {
26
+ * organizationId: "my-org",
27
+ * productId: "my-app",
28
+ * subscriber: {
29
+ * id: "user-123",
30
+ * email: "user@my-org.com"
31
+ * }
32
+ * });
33
+ */
34
+ /**
35
+ * Core types for TypeScript developers using Revenium middleware
36
+ */
37
+ export type { ReveniumConfig, UsageMetadata, Logger, ProviderInfo, Subscriber, Credential, ReveniumPayload, MeteringData, } from "./types/index.js";
38
+ /**
39
+ * Perplexity API types
40
+ */
41
+ export type { PerplexityChatRequest, PerplexityChatResponse, PerplexityMessage, PerplexityChoice, PerplexityUsage, PerplexityStreamChunk, PerplexityResponse, TrackingData, } from "./types/function-parameters.js";
42
+ /**
43
+ * Main API - Go-aligned pattern
44
+ */
45
+ export { Initialize, GetClient, IsInitialized, Reset, Configure, } from "./core/client/index.js";
46
+ /**
47
+ * Middleware classes
48
+ */
49
+ export { ReveniumPerplexity, ChatInterface, CompletionsInterface, StreamingWrapper, } from "./core/middleware/index.js";
50
+ /**
51
+ * Tracking functions (for advanced use cases)
52
+ */
53
+ export { trackUsageAsync } from "./core/tracking/index.js";
54
+ /**
55
+ * Provider detection functions
56
+ */
57
+ export { detectProvider, getProviderMetadata } from "./core/providers/index.js";
58
+ /**
59
+ * Model constants
60
+ */
61
+ export { PERPLEXITY_MODELS } from "./constants/models.js";
62
+ export type { PerplexityModel } from "./constants/models.js";
34
63
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AASH,OAAO,EACL,yBAAyB,EACzB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,KAAK,cAAc,GACpB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,2BAA2B,EAC3B,oBAAoB,EACpB,mBAAmB,EACnB,KAAK,gBAAgB,GACtB,MAAM,iCAAiC,CAAC;AAMzC,OAAO,EACL,oBAAoB,EACpB,6BAA6B,GAC9B,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAMlC,YAAY,EACV,iBAAiB,EACjB,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,qBAAqB,EACrB,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,eAAe,GAChB,MAAM,SAAS,CAAC;AAMjB,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,aAAa,EACb,eAAe,GAChB,MAAM,aAAa,CAAC;AAMrB,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH;;GAEG;AACH,YAAY,EACV,cAAc,EACd,aAAa,EACb,MAAM,EACN,YAAY,EACZ,UAAU,EACV,UAAU,EACV,eAAe,EACf,YAAY,GACb,MAAM,kBAAkB,CAAC;AAE1B;;GAEG;AACH,YAAY,EACV,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,YAAY,GACb,MAAM,gCAAgC,CAAC;AAExC;;GAEG;AACH,OAAO,EACL,UAAU,EACV,SAAS,EACT,aAAa,EACb,KAAK,EACL,SAAS,GACV,MAAM,wBAAwB,CAAC;AAEhC;;GAEG;AACH,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,4BAA4B,CAAC;AAEpC;;GAEG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D;;GAEG;AACH,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhF;;GAEG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,YAAY,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC"}