@revenium/perplexity 2.0.3 → 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 (183) hide show
  1. package/CHANGELOG.md +47 -10
  2. package/README.md +144 -720
  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 -54
  39. package/dist/cjs/index.js.map +1 -0
  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 -16
  43. package/dist/cjs/types/index.js.map +1 -0
  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 -36
  91. package/dist/esm/index.js.map +1 -0
  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 -15
  95. package/dist/esm/types/index.js.map +1 -0
  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 -0
  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 -137
  147. package/dist/types/types/index.d.ts.map +1 -0
  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 +136 -233
  161. package/examples/advanced.ts +123 -0
  162. package/examples/basic.ts +36 -46
  163. package/examples/getting_started.ts +41 -0
  164. package/examples/metadata.ts +55 -59
  165. package/examples/stream.ts +53 -0
  166. package/package.json +12 -17
  167. package/dist/cjs/core/config/perplexity-config.js +0 -45
  168. package/dist/cjs/core/config/revenium-config.js +0 -80
  169. package/dist/cjs/core/tracking/metering.js +0 -131
  170. package/dist/cjs/core/wrapper/perplexity-client.js +0 -177
  171. package/dist/cjs/utils/logger.js +0 -23
  172. package/dist/esm/core/config/perplexity-config.js +0 -40
  173. package/dist/esm/core/config/revenium-config.js +0 -72
  174. package/dist/esm/core/tracking/metering.js +0 -126
  175. package/dist/esm/core/wrapper/perplexity-client.js +0 -170
  176. package/dist/esm/utils/logger.js +0 -20
  177. package/dist/types/core/config/perplexity-config.d.ts +0 -24
  178. package/dist/types/core/config/revenium-config.d.ts +0 -37
  179. package/dist/types/core/tracking/metering.d.ts +0 -31
  180. package/dist/types/core/wrapper/perplexity-client.d.ts +0 -32
  181. package/dist/types/utils/logger.d.ts +0 -10
  182. package/examples/chat.ts +0 -87
  183. package/examples/streaming.ts +0 -61
package/CHANGELOG.md CHANGED
@@ -5,54 +5,91 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
- ## [2.0.3] - 2025-10-21
8
+ ## [Unreleased]
9
+
10
+ ## [2.0.5] - 2025-11-09
11
+
12
+ ### Added
13
+ - New `Initialize()` and `GetClient()` pattern for cleaner client initialization
14
+ - `Configure()` function for explicit configuration without environment variables
15
+ - `IsInitialized()` and `Reset()` utility functions for better state management
16
+ - Automatic `.env` file loading via dotenv for simplified configuration
17
+ - Modular architecture with organized `core/` directory structure
18
+ - Enhanced examples: `basic.ts`, `metadata.ts`, `advanced.ts`, `stream.ts`
19
+ - Export `PERPLEXITY_MODELS` constants (SONAR_PRO, SONAR, SONAR_REASONING)
20
+ - Export `PerplexityModel` type for type-safe model references
21
+ - Support for all 7 AI operation types (CHAT, GENERATE, EMBED, CLASSIFY, SUMMARIZE, TRANSLATE, OTHER)
22
+
23
+ ### Changed
24
+ - Improved API compliance with Revenium specification for provider naming and metadata
25
+ - Enhanced token counting accuracy with proper handling of cache tokens
26
+ - Email addresses now masked in debug logs for PII protection
27
+ - Quality scores use 0.0-1.0 scale per API specification
28
+ - Removed hardcoded model lists - middleware accepts any model name
29
+
30
+ ### Fixed
31
+ - ESM support by removing CommonJS type restriction and adding explicit `.js` extensions
32
+ - API key validation now enforced in `Configure()` function
33
+ - Base URL validation relaxed to accept default endpoints
34
+ - npm script references corrected in documentation
35
+ - Environment variable examples updated for clarity
36
+
37
+ ## [2.0.4] - 2025-10-21
9
38
 
10
39
  ### Changed
40
+
11
41
  - Enhanced package.json with examples in files array
12
42
  - Added community health files (CODE_OF_CONDUCT.md, CONTRIBUTING.md, SECURITY.md)
13
- - Updated .gitignore with security report patterns (including package-lock.json)
14
- - Added CHANGELOG.md for version tracking
43
+ - Updated .gitignore with security report patterns
15
44
  - Added engines field for Node.js version requirements
16
45
 
17
- ## [2.0.2] - 2025-10-17
46
+ ## [2.0.3] - 2025-10-17
18
47
 
19
48
  ### Changed
49
+
20
50
  - Documentation improvements with absolute path references
21
51
 
22
- ## [2.0.1] - 2025-10-09
52
+ ## [2.0.2] - 2025-10-09
23
53
 
24
54
  ### Changed
55
+
25
56
  - Internal updates and improvements
26
57
 
58
+ ## [2.0.1] - 2025-10-09
59
+
60
+ ### Changed
61
+
62
+ - Bug fixes and stability improvements
63
+
27
64
  ## [2.0.0] - 2025-10-09
28
65
 
29
66
  ### Added
67
+
30
68
  - Complete code restructuring with core/ directory organization
31
69
  - Dual package exports (ESM + CommonJS) support
32
70
  - TypeScript declaration maps for better debugging
33
71
  - Enhanced build system with separate CJS, ESM, and types builds
34
- - New examples structure (basic.ts, chat.ts, streaming.ts, metadata.ts)
35
- - Playground examples for JavaScript users
36
72
 
37
73
  ### Changed
74
+
38
75
  - Restructured src/ directory with core/config, core/tracking, core/wrapper
39
- - Updated examples to use new structure
40
76
  - Enhanced README with comprehensive documentation
41
77
 
42
78
  ## [1.0.0] - 2025-09-23
43
79
 
44
80
  ### Added
81
+
45
82
  - Initial release of Perplexity AI middleware
46
83
  - Automatic token counting and usage tracking
47
- - Support for all Perplexity models
48
84
  - Streaming support with automatic tracking
49
85
  - Custom metadata integration
50
86
  - TypeScript support with full type safety
51
- - Multiple client options
52
87
  - Comprehensive error handling
53
88
  - Background processing for non-blocking tracking
54
89
  - Debug logging support
55
90
 
91
+ [2.0.5]: https://github.com/revenium/revenium-middleware-perplexity-node/releases/tag/v2.0.5
92
+ [2.0.4]: https://github.com/revenium/revenium-middleware-perplexity-node/releases/tag/v2.0.4
56
93
  [2.0.3]: https://github.com/revenium/revenium-middleware-perplexity-node/releases/tag/v2.0.3
57
94
  [2.0.2]: https://github.com/revenium/revenium-middleware-perplexity-node/releases/tag/v2.0.2
58
95
  [2.0.1]: https://github.com/revenium/revenium-middleware-perplexity-node/releases/tag/v2.0.1