@bymax-one/nest-ai-tokens 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/package.json ADDED
@@ -0,0 +1,216 @@
1
+ {
2
+ "name": "@bymax-one/nest-ai-tokens",
3
+ "version": "1.0.0",
4
+ "description": "AI token metering & usage-based billing for NestJS 11: provider usage normalizer (×9), versioned effective-dated pricing, immutable append-only ledger, prepaid wallets, multi-dimension budgets, and markup/margin. Zero runtime dependencies.",
5
+ "author": "Bymax One <support@bymax.one>",
6
+ "license": "MIT",
7
+ "homepage": "https://github.com/bymaxone/nest-ai-tokens#readme",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "git+https://github.com/bymaxone/nest-ai-tokens.git"
11
+ },
12
+ "bugs": {
13
+ "url": "https://github.com/bymaxone/nest-ai-tokens/issues"
14
+ },
15
+ "type": "module",
16
+ "sideEffects": false,
17
+ "files": [
18
+ "dist",
19
+ "LICENSE",
20
+ "README.md",
21
+ "CHANGELOG.md"
22
+ ],
23
+ "exports": {
24
+ ".": {
25
+ "import": {
26
+ "types": "./dist/server/index.d.ts",
27
+ "default": "./dist/server/index.mjs"
28
+ },
29
+ "require": {
30
+ "types": "./dist/server/index.d.cts",
31
+ "default": "./dist/server/index.cjs"
32
+ }
33
+ },
34
+ "./shared": {
35
+ "import": {
36
+ "types": "./dist/shared/index.d.ts",
37
+ "default": "./dist/shared/index.mjs"
38
+ },
39
+ "require": {
40
+ "types": "./dist/shared/index.d.cts",
41
+ "default": "./dist/shared/index.cjs"
42
+ }
43
+ },
44
+ "./prices": {
45
+ "import": {
46
+ "types": "./dist/prices/index.d.ts",
47
+ "default": "./dist/prices/index.mjs"
48
+ },
49
+ "require": {
50
+ "types": "./dist/prices/index.d.cts",
51
+ "default": "./dist/prices/index.cjs"
52
+ }
53
+ },
54
+ "./prisma": {
55
+ "import": {
56
+ "types": "./dist/prisma/index.d.ts",
57
+ "default": "./dist/prisma/index.mjs"
58
+ },
59
+ "require": {
60
+ "types": "./dist/prisma/index.d.cts",
61
+ "default": "./dist/prisma/index.cjs"
62
+ }
63
+ },
64
+ "./redis": {
65
+ "import": {
66
+ "types": "./dist/redis/index.d.ts",
67
+ "default": "./dist/redis/index.mjs"
68
+ },
69
+ "require": {
70
+ "types": "./dist/redis/index.d.cts",
71
+ "default": "./dist/redis/index.cjs"
72
+ }
73
+ },
74
+ "./package.json": "./package.json"
75
+ },
76
+ "dependencies": {},
77
+ "peerDependencies": {
78
+ "@nestjs/common": "^11.0.16",
79
+ "@nestjs/core": "^11.1.18",
80
+ "reflect-metadata": "^0.2.0",
81
+ "rxjs": "^7.8.0",
82
+ "@prisma/client": "^6.0.0 || ^7.0.0",
83
+ "ioredis": "^5.0.0",
84
+ "@nestjs/event-emitter": ">=2.0.0",
85
+ "@opentelemetry/api": "^1.9.0"
86
+ },
87
+ "peerDependenciesMeta": {
88
+ "@nestjs/common": {
89
+ "optional": false
90
+ },
91
+ "@nestjs/core": {
92
+ "optional": false
93
+ },
94
+ "reflect-metadata": {
95
+ "optional": false
96
+ },
97
+ "rxjs": {
98
+ "optional": false
99
+ },
100
+ "@prisma/client": {
101
+ "optional": true
102
+ },
103
+ "ioredis": {
104
+ "optional": true
105
+ },
106
+ "@nestjs/event-emitter": {
107
+ "optional": true
108
+ },
109
+ "@opentelemetry/api": {
110
+ "optional": true
111
+ }
112
+ },
113
+ "devDependencies": {
114
+ "@arethetypeswrong/cli": "^0.18.2",
115
+ "@eslint/js": "^9.39.4",
116
+ "@nestjs/common": "^11.1.28",
117
+ "@nestjs/core": "^11.1.28",
118
+ "@nestjs/event-emitter": "^3.0.1",
119
+ "@nestjs/platform-express": "^11.1.28",
120
+ "@nestjs/testing": "^11.1.28",
121
+ "@opentelemetry/api": "^1.9.0",
122
+ "@prisma/adapter-pg": "^7.9.1",
123
+ "@prisma/client": "^7.9.1",
124
+ "@stryker-mutator/core": "^9",
125
+ "@stryker-mutator/jest-runner": "^9",
126
+ "@stryker-mutator/typescript-checker": "^9",
127
+ "@testcontainers/postgresql": "^12",
128
+ "@types/express": "^5.0.6",
129
+ "@types/jest": "^30.0.0",
130
+ "@types/node": "^24.13.3",
131
+ "@types/supertest": "^7.2.1",
132
+ "eslint": "^9.39.5",
133
+ "eslint-config-prettier": "^10.1.8",
134
+ "fast-check": "^4.9.0",
135
+ "ioredis": "^5.4.2",
136
+ "jest": "^30.4.2",
137
+ "prettier": "^3.9.6",
138
+ "prisma": "^7.9.1",
139
+ "reflect-metadata": "^0.2.2",
140
+ "rxjs": "^7.8.2",
141
+ "supertest": "^7.2.2",
142
+ "testcontainers": "^12",
143
+ "ts-jest": "^29.4.12",
144
+ "ts-node": "^10.9.2",
145
+ "tsup": "^8.5.1",
146
+ "typescript": "^5.9.3",
147
+ "typescript-eslint": "^8.65.0"
148
+ },
149
+ "keywords": [
150
+ "nestjs",
151
+ "ai",
152
+ "tokens",
153
+ "metering",
154
+ "billing",
155
+ "usage-based-billing",
156
+ "llm",
157
+ "openai",
158
+ "anthropic",
159
+ "gemini",
160
+ "pricing",
161
+ "ledger",
162
+ "wallet",
163
+ "budget",
164
+ "markup"
165
+ ],
166
+ "engines": {
167
+ "node": ">=24.0.0"
168
+ },
169
+ "publishConfig": {
170
+ "access": "public",
171
+ "provenance": true,
172
+ "registry": "https://registry.npmjs.org/"
173
+ },
174
+ "main": "./dist/server/index.cjs",
175
+ "module": "./dist/server/index.mjs",
176
+ "types": "./dist/server/index.d.cts",
177
+ "typesVersions": {
178
+ "*": {
179
+ "shared": [
180
+ "./dist/shared/index.d.cts"
181
+ ],
182
+ "prices": [
183
+ "./dist/prices/index.d.cts"
184
+ ],
185
+ "prisma": [
186
+ "./dist/prisma/index.d.cts"
187
+ ],
188
+ "redis": [
189
+ "./dist/redis/index.d.cts"
190
+ ]
191
+ }
192
+ },
193
+ "scripts": {
194
+ "build": "pnpm clean && tsup",
195
+ "check:exports": "attw --pack . --profile strict",
196
+ "check:published": "node scripts/check-published-surface.mjs",
197
+ "check:runtime": "node scripts/check-consumer-runtime.mjs",
198
+ "clean": "node -e \"const {rmSync}=require('node:fs');for(const d of ['dist','coverage'])rmSync(d,{recursive:true,force:true})\"",
199
+ "db:generate": "prisma generate",
200
+ "docs:check": "node scripts/check-jsdoc.mjs && tsc --noEmit -p tsconfig.e2e.json",
201
+ "lint": "eslint src",
202
+ "lint:fix": "eslint src --fix",
203
+ "mutation": "stryker run",
204
+ "mutation:dry-run": "stryker run --dryRunOnly",
205
+ "mutation:incremental": "stryker run --incremental",
206
+ "release": "npm publish --provenance --access public",
207
+ "size": "node scripts/check-size.mjs",
208
+ "test": "jest",
209
+ "test:all": "pnpm test && pnpm test:e2e",
210
+ "test:cov": "jest --coverage",
211
+ "test:cov:all": "jest --config jest.coverage.config.ts --coverage",
212
+ "test:e2e": "jest --config jest.e2e.config.ts",
213
+ "test:watch": "jest --watch",
214
+ "typecheck": "tsc --noEmit && tsc --noEmit -p tsconfig.server.json"
215
+ }
216
+ }