@revenium/openai 1.0.8

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 (177) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1095 -0
  3. package/dist/cjs/core/config/azure-config.js +64 -0
  4. package/dist/cjs/core/config/azure-config.js.map +1 -0
  5. package/dist/cjs/core/config/index.js +41 -0
  6. package/dist/cjs/core/config/index.js.map +1 -0
  7. package/dist/cjs/core/config/loader.js +63 -0
  8. package/dist/cjs/core/config/loader.js.map +1 -0
  9. package/dist/cjs/core/config/manager.js +93 -0
  10. package/dist/cjs/core/config/manager.js.map +1 -0
  11. package/dist/cjs/core/config/validator.js +73 -0
  12. package/dist/cjs/core/config/validator.js.map +1 -0
  13. package/dist/cjs/core/providers/detector.js +140 -0
  14. package/dist/cjs/core/providers/detector.js.map +1 -0
  15. package/dist/cjs/core/providers/index.js +18 -0
  16. package/dist/cjs/core/providers/index.js.map +1 -0
  17. package/dist/cjs/core/tracking/api-client.js +68 -0
  18. package/dist/cjs/core/tracking/api-client.js.map +1 -0
  19. package/dist/cjs/core/tracking/index.js +23 -0
  20. package/dist/cjs/core/tracking/index.js.map +1 -0
  21. package/dist/cjs/core/tracking/payload-builder.js +107 -0
  22. package/dist/cjs/core/tracking/payload-builder.js.map +1 -0
  23. package/dist/cjs/core/tracking/usage-tracker.js +120 -0
  24. package/dist/cjs/core/tracking/usage-tracker.js.map +1 -0
  25. package/dist/cjs/core/wrapper/index.js +15 -0
  26. package/dist/cjs/core/wrapper/index.js.map +1 -0
  27. package/dist/cjs/core/wrapper/instance-patcher.js +202 -0
  28. package/dist/cjs/core/wrapper/instance-patcher.js.map +1 -0
  29. package/dist/cjs/core/wrapper/request-handler.js +317 -0
  30. package/dist/cjs/core/wrapper/request-handler.js.map +1 -0
  31. package/dist/cjs/core/wrapper/stream-wrapper.js +82 -0
  32. package/dist/cjs/core/wrapper/stream-wrapper.js.map +1 -0
  33. package/dist/cjs/index.js +195 -0
  34. package/dist/cjs/index.js.map +1 -0
  35. package/dist/cjs/types/function-parameters.js +14 -0
  36. package/dist/cjs/types/function-parameters.js.map +1 -0
  37. package/dist/cjs/types/index.js +49 -0
  38. package/dist/cjs/types/index.js.map +1 -0
  39. package/dist/cjs/types/openai-augmentation.js +55 -0
  40. package/dist/cjs/types/openai-augmentation.js.map +1 -0
  41. package/dist/cjs/types/responses-api.js +30 -0
  42. package/dist/cjs/types/responses-api.js.map +1 -0
  43. package/dist/cjs/utils/azure-model-resolver.js +211 -0
  44. package/dist/cjs/utils/azure-model-resolver.js.map +1 -0
  45. package/dist/cjs/utils/constants.js +24 -0
  46. package/dist/cjs/utils/constants.js.map +1 -0
  47. package/dist/cjs/utils/error-handler.js +194 -0
  48. package/dist/cjs/utils/error-handler.js.map +1 -0
  49. package/dist/cjs/utils/metadata-builder.js +184 -0
  50. package/dist/cjs/utils/metadata-builder.js.map +1 -0
  51. package/dist/cjs/utils/provider-detection.js +212 -0
  52. package/dist/cjs/utils/provider-detection.js.map +1 -0
  53. package/dist/cjs/utils/request-handler-factory.js +185 -0
  54. package/dist/cjs/utils/request-handler-factory.js.map +1 -0
  55. package/dist/cjs/utils/stop-reason-mapper.js +70 -0
  56. package/dist/cjs/utils/stop-reason-mapper.js.map +1 -0
  57. package/dist/cjs/utils/type-guards.js +175 -0
  58. package/dist/cjs/utils/type-guards.js.map +1 -0
  59. package/dist/cjs/utils/url-builder.js +43 -0
  60. package/dist/cjs/utils/url-builder.js.map +1 -0
  61. package/dist/esm/core/config/azure-config.js +61 -0
  62. package/dist/esm/core/config/azure-config.js.map +1 -0
  63. package/dist/esm/core/config/index.js +13 -0
  64. package/dist/esm/core/config/index.js.map +1 -0
  65. package/dist/esm/core/config/loader.js +58 -0
  66. package/dist/esm/core/config/loader.js.map +1 -0
  67. package/dist/esm/core/config/manager.js +85 -0
  68. package/dist/esm/core/config/manager.js.map +1 -0
  69. package/dist/esm/core/config/validator.js +69 -0
  70. package/dist/esm/core/config/validator.js.map +1 -0
  71. package/dist/esm/core/providers/detector.js +134 -0
  72. package/dist/esm/core/providers/detector.js.map +1 -0
  73. package/dist/esm/core/providers/index.js +10 -0
  74. package/dist/esm/core/providers/index.js.map +1 -0
  75. package/dist/esm/core/tracking/api-client.js +65 -0
  76. package/dist/esm/core/tracking/api-client.js.map +1 -0
  77. package/dist/esm/core/tracking/index.js +13 -0
  78. package/dist/esm/core/tracking/index.js.map +1 -0
  79. package/dist/esm/core/tracking/payload-builder.js +104 -0
  80. package/dist/esm/core/tracking/payload-builder.js.map +1 -0
  81. package/dist/esm/core/tracking/usage-tracker.js +114 -0
  82. package/dist/esm/core/tracking/usage-tracker.js.map +1 -0
  83. package/dist/esm/core/wrapper/index.js +9 -0
  84. package/dist/esm/core/wrapper/index.js.map +1 -0
  85. package/dist/esm/core/wrapper/instance-patcher.js +199 -0
  86. package/dist/esm/core/wrapper/instance-patcher.js.map +1 -0
  87. package/dist/esm/core/wrapper/request-handler.js +310 -0
  88. package/dist/esm/core/wrapper/request-handler.js.map +1 -0
  89. package/dist/esm/core/wrapper/stream-wrapper.js +79 -0
  90. package/dist/esm/core/wrapper/stream-wrapper.js.map +1 -0
  91. package/dist/esm/index.js +175 -0
  92. package/dist/esm/index.js.map +1 -0
  93. package/dist/esm/types/function-parameters.js +13 -0
  94. package/dist/esm/types/function-parameters.js.map +1 -0
  95. package/dist/esm/types/index.js +32 -0
  96. package/dist/esm/types/index.js.map +1 -0
  97. package/dist/esm/types/openai-augmentation.js +54 -0
  98. package/dist/esm/types/openai-augmentation.js.map +1 -0
  99. package/dist/esm/types/responses-api.js +26 -0
  100. package/dist/esm/types/responses-api.js.map +1 -0
  101. package/dist/esm/utils/azure-model-resolver.js +204 -0
  102. package/dist/esm/utils/azure-model-resolver.js.map +1 -0
  103. package/dist/esm/utils/constants.js +21 -0
  104. package/dist/esm/utils/constants.js.map +1 -0
  105. package/dist/esm/utils/error-handler.js +182 -0
  106. package/dist/esm/utils/error-handler.js.map +1 -0
  107. package/dist/esm/utils/metadata-builder.js +176 -0
  108. package/dist/esm/utils/metadata-builder.js.map +1 -0
  109. package/dist/esm/utils/provider-detection.js +206 -0
  110. package/dist/esm/utils/provider-detection.js.map +1 -0
  111. package/dist/esm/utils/request-handler-factory.js +146 -0
  112. package/dist/esm/utils/request-handler-factory.js.map +1 -0
  113. package/dist/esm/utils/stop-reason-mapper.js +65 -0
  114. package/dist/esm/utils/stop-reason-mapper.js.map +1 -0
  115. package/dist/esm/utils/type-guards.js +158 -0
  116. package/dist/esm/utils/type-guards.js.map +1 -0
  117. package/dist/esm/utils/url-builder.js +39 -0
  118. package/dist/esm/utils/url-builder.js.map +1 -0
  119. package/dist/types/core/config/azure-config.d.ts +16 -0
  120. package/dist/types/core/config/azure-config.d.ts.map +1 -0
  121. package/dist/types/core/config/index.d.ts +11 -0
  122. package/dist/types/core/config/index.d.ts.map +1 -0
  123. package/dist/types/core/config/loader.d.ts +20 -0
  124. package/dist/types/core/config/loader.d.ts.map +1 -0
  125. package/dist/types/core/config/manager.d.ts +32 -0
  126. package/dist/types/core/config/manager.d.ts.map +1 -0
  127. package/dist/types/core/config/validator.d.ts +23 -0
  128. package/dist/types/core/config/validator.d.ts.map +1 -0
  129. package/dist/types/core/providers/detector.d.ts +44 -0
  130. package/dist/types/core/providers/detector.d.ts.map +1 -0
  131. package/dist/types/core/providers/index.d.ts +9 -0
  132. package/dist/types/core/providers/index.d.ts.map +1 -0
  133. package/dist/types/core/tracking/api-client.d.ts +17 -0
  134. package/dist/types/core/tracking/api-client.d.ts.map +1 -0
  135. package/dist/types/core/tracking/index.d.ts +11 -0
  136. package/dist/types/core/tracking/index.d.ts.map +1 -0
  137. package/dist/types/core/tracking/payload-builder.d.ts +24 -0
  138. package/dist/types/core/tracking/payload-builder.d.ts.map +1 -0
  139. package/dist/types/core/tracking/usage-tracker.d.ts +48 -0
  140. package/dist/types/core/tracking/usage-tracker.d.ts.map +1 -0
  141. package/dist/types/core/wrapper/index.d.ts +8 -0
  142. package/dist/types/core/wrapper/index.d.ts.map +1 -0
  143. package/dist/types/core/wrapper/instance-patcher.d.ts +33 -0
  144. package/dist/types/core/wrapper/instance-patcher.d.ts.map +1 -0
  145. package/dist/types/core/wrapper/request-handler.d.ts +29 -0
  146. package/dist/types/core/wrapper/request-handler.d.ts.map +1 -0
  147. package/dist/types/core/wrapper/stream-wrapper.d.ts +13 -0
  148. package/dist/types/core/wrapper/stream-wrapper.d.ts.map +1 -0
  149. package/dist/types/index.d.ts +179 -0
  150. package/dist/types/index.d.ts.map +1 -0
  151. package/dist/types/types/function-parameters.d.ts +229 -0
  152. package/dist/types/types/function-parameters.d.ts.map +1 -0
  153. package/dist/types/types/index.d.ts +283 -0
  154. package/dist/types/types/index.d.ts.map +1 -0
  155. package/dist/types/types/openai-augmentation.d.ts +226 -0
  156. package/dist/types/types/openai-augmentation.d.ts.map +1 -0
  157. package/dist/types/types/responses-api.d.ts +247 -0
  158. package/dist/types/types/responses-api.d.ts.map +1 -0
  159. package/dist/types/utils/azure-model-resolver.d.ts +41 -0
  160. package/dist/types/utils/azure-model-resolver.d.ts.map +1 -0
  161. package/dist/types/utils/constants.d.ts +4 -0
  162. package/dist/types/utils/constants.d.ts.map +1 -0
  163. package/dist/types/utils/error-handler.d.ts +95 -0
  164. package/dist/types/utils/error-handler.d.ts.map +1 -0
  165. package/dist/types/utils/metadata-builder.d.ts +64 -0
  166. package/dist/types/utils/metadata-builder.d.ts.map +1 -0
  167. package/dist/types/utils/provider-detection.d.ts +51 -0
  168. package/dist/types/utils/provider-detection.d.ts.map +1 -0
  169. package/dist/types/utils/request-handler-factory.d.ts +81 -0
  170. package/dist/types/utils/request-handler-factory.d.ts.map +1 -0
  171. package/dist/types/utils/stop-reason-mapper.d.ts +29 -0
  172. package/dist/types/utils/stop-reason-mapper.d.ts.map +1 -0
  173. package/dist/types/utils/type-guards.d.ts +73 -0
  174. package/dist/types/utils/type-guards.d.ts.map +1 -0
  175. package/dist/types/utils/url-builder.d.ts +25 -0
  176. package/dist/types/utils/url-builder.d.ts.map +1 -0
  177. package/package.json +84 -0
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Type Guards Module
3
+ *
4
+ * Runtime type checking utilities to ensure type safety.
5
+ * These functions validate that objects match expected interfaces.
6
+ */
7
+ import { OpenAIChatResponse, OpenAIEmbeddingResponse, OpenAIChatRequest, OpenAIEmbeddingRequest, OpenAIClientInstance, StreamChunk } from '../types/function-parameters.js';
8
+ /**
9
+ * Type guard for OpenAI chat response
10
+ */
11
+ export declare function isOpenAIChatResponse(obj: unknown): obj is OpenAIChatResponse;
12
+ /**
13
+ * Type guard for OpenAI embedding response
14
+ */
15
+ export declare function isOpenAIEmbeddingResponse(obj: unknown): obj is OpenAIEmbeddingResponse;
16
+ /**
17
+ * Type guard for OpenAI chat request
18
+ */
19
+ export declare function isOpenAIChatRequest(obj: unknown): obj is OpenAIChatRequest;
20
+ /**
21
+ * Type guard for OpenAI embedding request
22
+ */
23
+ export declare function isOpenAIEmbeddingRequest(obj: unknown): obj is OpenAIEmbeddingRequest;
24
+ /**
25
+ * Type guard for OpenAI client instance
26
+ */
27
+ export declare function isOpenAIClientInstance(obj: unknown): obj is OpenAIClientInstance;
28
+ /**
29
+ * Type guard for stream chunk
30
+ */
31
+ export declare function isStreamChunk(obj: unknown): obj is StreamChunk;
32
+ /**
33
+ * Type guard for usage object
34
+ */
35
+ export declare function hasValidUsage(obj: unknown): obj is {
36
+ usage: {
37
+ prompt_tokens: number;
38
+ total_tokens: number;
39
+ };
40
+ };
41
+ /**
42
+ * Type guard for function
43
+ */
44
+ export declare function isFunction(obj: unknown): obj is any;
45
+ /**
46
+ * Type guard for string
47
+ */
48
+ export declare function isString(obj: unknown): obj is string;
49
+ /**
50
+ * Type guard for number
51
+ */
52
+ export declare function isNumber(obj: unknown): obj is number;
53
+ /**
54
+ * Type guard for boolean
55
+ */
56
+ export declare function isBoolean(obj: unknown): obj is boolean;
57
+ /**
58
+ * Type guard for object
59
+ */
60
+ export declare function isObject(obj: unknown): obj is Record<string, unknown>;
61
+ /**
62
+ * Type guard for array
63
+ */
64
+ export declare function isArray(obj: unknown): obj is unknown[];
65
+ /**
66
+ * Safe property access with type checking
67
+ */
68
+ export declare function safeGetProperty<T>(obj: unknown, property: string, typeGuard: (value: unknown) => value is T): T | undefined;
69
+ /**
70
+ * Safe nested property access
71
+ */
72
+ export declare function safeGetNestedProperty<T>(obj: unknown, path: string[], typeGuard: (value: unknown) => value is T): T | undefined;
73
+ //# sourceMappingURL=type-guards.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-guards.d.ts","sourceRoot":"","sources":["../../../src/utils/type-guards.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,EACjB,sBAAsB,EACtB,oBAAoB,EACpB,WAAW,EACZ,MAAM,iCAAiC,CAAC;AAEzC;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,kBAAkB,CAc5E;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,uBAAuB,CAatF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,iBAAiB,CAc1E;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,sBAAsB,CAQpF;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,oBAAoB,CAYhF;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,WAAW,CAI9D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,OAAO,GACX,GAAG,IAAI;IAAE,KAAK,EAAE;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAUnE;AAED;;GAEG;AAEH,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,GAAG,CAEnD;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,MAAM,CAEpD;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,MAAM,CAEpD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,OAAO,CAEtD;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAErE;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,OAAO,EAAE,CAEtD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAC/B,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,CAAC,GACxC,CAAC,GAAG,SAAS,CAKf;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EACrC,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,MAAM,EAAE,EACd,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,CAAC,GACxC,CAAC,GAAG,SAAS,CASf"}
@@ -0,0 +1,25 @@
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
+ * This function expects the base URL to NOT include the /v2 suffix for consistency
11
+ * with other Revenium middleware. It automatically appends the correct path.
12
+ *
13
+ * @param baseUrl - The base URL from configuration (e.g., 'https://api.revenium.io/meter')
14
+ * @param endpoint - The API endpoint to append (e.g., '/ai/completions')
15
+ * @returns Complete URL for the API call
16
+ */
17
+ export declare function buildReveniumUrl(baseUrl: string, endpoint: string): string;
18
+ /**
19
+ * Validate URL format
20
+ *
21
+ * @param url - URL to validate
22
+ * @returns true if valid, false otherwise
23
+ */
24
+ export declare function isValidUrl(url: string): boolean;
25
+ //# sourceMappingURL=url-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url-builder.d.ts","sourceRoot":"","sources":["../../../src/utils/url-builder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAO1E;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAO/C"}
package/package.json ADDED
@@ -0,0 +1,84 @@
1
+ {
2
+ "name": "@revenium/openai",
3
+ "version": "1.0.8",
4
+ "description": "Transparent TypeScript middleware for automatic Revenium usage tracking with OpenAI",
5
+ "main": "dist/cjs/index.js",
6
+ "module": "dist/esm/index.js",
7
+ "types": "dist/types/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "import": {
11
+ "types": "./dist/types/index.d.ts",
12
+ "default": "./dist/esm/index.js"
13
+ },
14
+ "require": {
15
+ "types": "./dist/types/index.d.ts",
16
+ "default": "./dist/cjs/index.js"
17
+ }
18
+ }
19
+ },
20
+ "scripts": {
21
+ "build": "npm run build:cjs && npm run build:esm && npm run build:types",
22
+ "build:cjs": "tsc -p tsconfig.json",
23
+ "build:esm": "tsc -p tsconfig.esm.json",
24
+ "build:types": "tsc -p tsconfig.types.json",
25
+ "dev": "tsc --watch",
26
+ "clean": "node -e \"const fs = require('fs'); if (fs.existsSync('dist')) fs.rmSync('dist', {recursive: true, force: true})\"",
27
+ "prepublishOnly": "npm run clean && npm run build",
28
+ "lint": "eslint src/**/*.ts",
29
+ "lint:fix": "eslint src/**/*.ts --fix",
30
+ "format": "prettier --write src/**/*.ts",
31
+ "format:check": "prettier --check src/**/*.ts",
32
+ "example:openai-basic": "npm run build && npx ts-node examples/openai-basic.ts",
33
+ "example:openai-streaming": "npm run build && npx ts-node examples/openai-streaming.ts",
34
+ "example:azure-basic": "npm run build && npx ts-node examples/azure-basic.ts",
35
+ "example:azure-streaming": "npm run build && npx ts-node examples/azure-streaming.ts",
36
+ "example": "npm run example:openai-basic",
37
+ "example:openai-responses-basic": "npm run build && npx ts-node examples/openai-responses-basic.ts",
38
+ "example:openai-responses-streaming": "npm run build && npx ts-node examples/openai-responses-streaming.ts",
39
+ "example:azure-responses-basic": "npm run build && npx ts-node examples/azure-responses-basic.ts",
40
+ "example:azure-responses-streaming": "npm run build && npx ts-node examples/azure-responses-streaming.ts"
41
+ },
42
+ "keywords": [
43
+ "openai",
44
+ "revenium",
45
+ "middleware",
46
+ "typescript",
47
+ "nodejs",
48
+ "usage-tracking",
49
+ "metering",
50
+ "ai"
51
+ ],
52
+ "author": "Revenium",
53
+ "license": "MIT",
54
+ "repository": {
55
+ "type": "git",
56
+ "url": "git+https://github.com/revenium/revenium-middleware-openai-node.git"
57
+ },
58
+ "homepage": "https://github.com/revenium/revenium-middleware-openai-node#readme",
59
+ "bugs": {
60
+ "url": "https://github.com/revenium/revenium-middleware-openai-node/issues"
61
+ },
62
+ "devDependencies": {
63
+ "@types/node": "^20.0.0",
64
+ "@typescript-eslint/eslint-plugin": "^6.21.0",
65
+ "@typescript-eslint/parser": "^6.21.0",
66
+ "dotenv": "^16.5.0",
67
+ "eslint": "^8.0.0",
68
+ "prettier": "^3.0.0",
69
+ "rimraf": "^6.0.1",
70
+ "ts-node": "^10.9.2",
71
+ "typescript": "^5.0.0"
72
+ },
73
+ "peerDependencies": {
74
+ "openai": "^5.0.0"
75
+ },
76
+ "files": [
77
+ "dist/**/*",
78
+ "README.md",
79
+ "LICENSE"
80
+ ],
81
+ "engines": {
82
+ "node": ">=16.0.0"
83
+ }
84
+ }