mppx 0.6.26 → 0.6.28

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 (78) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/Store.d.ts +32 -9
  3. package/dist/Store.d.ts.map +1 -1
  4. package/dist/Store.js +42 -10
  5. package/dist/Store.js.map +1 -1
  6. package/dist/cli/cli.js +1 -1
  7. package/dist/cli/cli.js.map +1 -1
  8. package/dist/cli/utils.js +2 -2
  9. package/dist/cli/utils.js.map +1 -1
  10. package/dist/proxy/internal/Headers.d.ts +13 -1
  11. package/dist/proxy/internal/Headers.d.ts.map +1 -1
  12. package/dist/proxy/internal/Headers.js +14 -1
  13. package/dist/proxy/internal/Headers.js.map +1 -1
  14. package/dist/stripe/server/Charge.d.ts +31 -1
  15. package/dist/stripe/server/Charge.d.ts.map +1 -1
  16. package/dist/stripe/server/Charge.js +88 -11
  17. package/dist/stripe/server/Charge.js.map +1 -1
  18. package/dist/stripe/server/internal/html.gen.d.ts +1 -1
  19. package/dist/stripe/server/internal/html.gen.js +1 -1
  20. package/dist/tempo/client/ChannelOps.d.ts.map +1 -1
  21. package/dist/tempo/client/ChannelOps.js +7 -2
  22. package/dist/tempo/client/ChannelOps.js.map +1 -1
  23. package/dist/tempo/client/Charge.d.ts.map +1 -1
  24. package/dist/tempo/client/Charge.js +6 -4
  25. package/dist/tempo/client/Charge.js.map +1 -1
  26. package/dist/tempo/client/Session.js +1 -1
  27. package/dist/tempo/client/Session.js.map +1 -1
  28. package/dist/tempo/client/Subscription.js +1 -1
  29. package/dist/tempo/client/Subscription.js.map +1 -1
  30. package/dist/tempo/server/Charge.d.ts +6 -0
  31. package/dist/tempo/server/Charge.d.ts.map +1 -1
  32. package/dist/tempo/server/Charge.js +8 -3
  33. package/dist/tempo/server/Charge.js.map +1 -1
  34. package/dist/tempo/server/Session.d.ts +6 -0
  35. package/dist/tempo/server/Session.d.ts.map +1 -1
  36. package/dist/tempo/server/Session.js +2 -2
  37. package/dist/tempo/server/Session.js.map +1 -1
  38. package/dist/tempo/server/Subscription.d.ts +6 -0
  39. package/dist/tempo/server/Subscription.d.ts.map +1 -1
  40. package/dist/tempo/server/Subscription.js +2 -2
  41. package/dist/tempo/server/Subscription.js.map +1 -1
  42. package/dist/tempo/server/internal/html.gen.d.ts +1 -1
  43. package/dist/tempo/server/internal/html.gen.d.ts.map +1 -1
  44. package/dist/tempo/server/internal/html.gen.js +1 -1
  45. package/dist/tempo/server/internal/html.gen.js.map +1 -1
  46. package/dist/tempo/session/Chain.d.ts.map +1 -1
  47. package/dist/tempo/session/Chain.js +6 -1
  48. package/dist/tempo/session/Chain.js.map +1 -1
  49. package/package.json +3 -3
  50. package/src/Store.test-d.ts +58 -0
  51. package/src/Store.test.ts +77 -0
  52. package/src/Store.ts +155 -74
  53. package/src/cli/cli.ts +1 -1
  54. package/src/cli/utils.test.ts +1 -1
  55. package/src/cli/utils.ts +2 -2
  56. package/src/proxy/internal/Headers.test.ts +18 -0
  57. package/src/proxy/internal/Headers.ts +14 -1
  58. package/src/stripe/server/Charge.test.ts +215 -1
  59. package/src/stripe/server/Charge.ts +150 -20
  60. package/src/stripe/server/internal/html.gen.ts +1 -1
  61. package/src/tempo/client/ChannelOps.ts +6 -2
  62. package/src/tempo/client/Charge.ts +5 -4
  63. package/src/tempo/client/Session.ts +1 -1
  64. package/src/tempo/client/Subscription.ts +1 -1
  65. package/src/tempo/server/Charge.test.ts +22 -1
  66. package/src/tempo/server/Charge.ts +17 -3
  67. package/src/tempo/server/Session.ts +10 -2
  68. package/src/tempo/server/Subscription.test.ts +1 -1
  69. package/src/tempo/server/Subscription.ts +8 -2
  70. package/src/tempo/server/internal/html/main.ts +1 -1
  71. package/src/tempo/server/internal/html/package.json +1 -1
  72. package/src/tempo/server/internal/html.gen.ts +1 -1
  73. package/src/tempo/session/Chain.test.ts +16 -8
  74. package/src/tempo/session/Chain.ts +6 -1
  75. package/src/tempo/session/ChannelStore.test.ts +21 -0
  76. package/src/tempo/subscription/Store.test.ts +55 -0
  77. package/src/viem/Account.test.ts +1 -1
  78. package/src/viem/Client.test.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"html.gen.js","sourceRoot":"","sources":["../../../../src/tempo/server/internal/html.gen.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,MAAM,CAAC,MAAM,IAAI,GAAG,o+lfAAo+lf,CAAA"}
1
+ {"version":3,"file":"html.gen.js","sourceRoot":"","sources":["../../../../src/tempo/server/internal/html.gen.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,MAAM,CAAC,MAAM,IAAI,GAAG,gyqhBAAgyqhB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"Chain.d.ts","sourceRoot":"","sources":["../../../src/tempo/session/Chain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Chain.d.ts","sourceRoot":"","sources":["../../../src/tempo/session/Chain.ts"],"names":[],"mappings":"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"}
@@ -125,9 +125,14 @@ async function sendFeePayerTx(client, account, feePayer, to, data, label, candid
125
125
  const prepared = await prepareTransactionRequest(client, {
126
126
  account,
127
127
  calls: [{ to, data }],
128
- feePayer: true,
129
128
  ...(feeToken ? { feeToken } : {}),
129
+ nonceKey: 'expiring',
130
+ validBefore: Math.floor(Date.now() / 1_000) + 25,
130
131
  });
132
+ // Estimate before enabling fee-payer mode so Tempo includes sender
133
+ // signature verification costs in the gas budget.
134
+ prepared.gas = (prepared.gas ?? 0n) + 5000n;
135
+ prepared.feePayer = true;
131
136
  const serialized = (await signTransaction(client, {
132
137
  ...prepared,
133
138
  account,
@@ -1 +1 @@
1
- {"version":3,"file":"Chain.js","sourceRoot":"","sources":["../../../src/tempo/session/Chain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Chain.js","sourceRoot":"","sources":["../../../src/tempo/session/Chain.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "mppx",
3
3
  "type": "module",
4
- "version": "0.6.26",
4
+ "version": "0.6.28",
5
5
  "main": "./dist/index.js",
6
6
  "license": "MIT",
7
7
  "files": [
@@ -106,7 +106,7 @@
106
106
  "elysia": ">=1",
107
107
  "express": ">=5",
108
108
  "hono": ">=4.12.18",
109
- "viem": ">=2.47.5"
109
+ "viem": ">=2.50.4"
110
110
  },
111
111
  "peerDependenciesMeta": {
112
112
  "@modelcontextprotocol/sdk": {
@@ -124,7 +124,7 @@
124
124
  },
125
125
  "dependencies": {
126
126
  "incur": "^0.4.5",
127
- "ox": "0.14.20",
127
+ "ox": "0.14.22",
128
128
  "zod": "^4.4.3"
129
129
  },
130
130
  "repository": {
@@ -25,6 +25,64 @@ test('memory returns AtomicStore', () => {
25
25
  expectTypeOf(store).toEqualTypeOf<Store.AtomicStore>()
26
26
  })
27
27
 
28
+ test('from with keyPrefix preserves AtomicStore', () => {
29
+ const store = Store.from(Store.memory(), { keyPrefix: 'tenant:' })
30
+ expectTypeOf(store).toEqualTypeOf<Store.AtomicStore>()
31
+ })
32
+
33
+ test('from with keyPrefix preserves typed Store', () => {
34
+ type ItemMap = { [key: `mppx:charge:${string}`]: number }
35
+ const store = {} as Store.Store<ItemMap>
36
+ const prefixed = Store.from(store, { keyPrefix: 'tenant:' })
37
+
38
+ expectTypeOf(prefixed.get).parameter(0).toEqualTypeOf<`mppx:charge:${string}`>()
39
+ expectTypeOf(prefixed.put).parameter(1).toEqualTypeOf<number>()
40
+ })
41
+
42
+ test('from with keyPrefix preserves typed AtomicStore', () => {
43
+ type ItemMap = { [key: `mppx:charge:${string}`]: number }
44
+ const store = {} as Store.AtomicStore<ItemMap>
45
+ const prefixed = Store.from(store, { keyPrefix: 'tenant:' })
46
+
47
+ expectTypeOf(prefixed.update).parameter(0).toEqualTypeOf<`mppx:charge:${string}`>()
48
+ })
49
+
50
+ test('memory accepts keyPrefix option', () => {
51
+ const store = Store.memory({ keyPrefix: 'tenant:' })
52
+ expectTypeOf(store).toEqualTypeOf<Store.AtomicStore>()
53
+ })
54
+
55
+ test('adapter constructors accept keyPrefix option', () => {
56
+ const cloudflare = Store.cloudflare(
57
+ {
58
+ get: async () => null,
59
+ put: async () => {},
60
+ delete: async () => {},
61
+ },
62
+ { keyPrefix: 'tenant:' },
63
+ )
64
+ const redis = Store.redis(
65
+ {
66
+ get: async () => null,
67
+ set: async () => null,
68
+ del: async () => null,
69
+ },
70
+ { keyPrefix: 'tenant:' },
71
+ )
72
+ const upstash = Store.upstash(
73
+ {
74
+ get: async () => null,
75
+ set: async () => null,
76
+ del: async () => null,
77
+ },
78
+ { keyPrefix: 'tenant:' },
79
+ )
80
+
81
+ expectTypeOf(cloudflare).toEqualTypeOf<Store.Store>()
82
+ expectTypeOf(redis).toEqualTypeOf<Store.Store>()
83
+ expectTypeOf(upstash).toEqualTypeOf<Store.Store>()
84
+ })
85
+
28
86
  test('AtomicStore is assignable to Store', () => {
29
87
  const atomic = {} as Store.AtomicStore
30
88
  expectTypeOf(atomic).toMatchTypeOf<Store.Store>()
package/src/Store.test.ts CHANGED
@@ -112,6 +112,83 @@ describe.each([
112
112
  })
113
113
  })
114
114
 
115
+ describe('keyPrefix', () => {
116
+ test('scopes get, put, and delete to prefixed backing keys', async () => {
117
+ const backing = Store.memory()
118
+ const store = Store.from(backing, { keyPrefix: 'tenant:' })
119
+
120
+ await store.put('k', nested)
121
+ expect(await backing.get('tenant:k')).toEqual(nested)
122
+ expect(await backing.get('k')).toBeNull()
123
+ expect(await store.get('k')).toEqual(nested)
124
+
125
+ await store.delete('k')
126
+ expect(await backing.get('tenant:k')).toBeNull()
127
+ })
128
+
129
+ test('scopes atomic update to prefixed backing keys', async () => {
130
+ const backing = Store.memory()
131
+ const store = Store.from(backing, { keyPrefix: 'tenant:' })
132
+
133
+ const result = await store.update('k', (current) => {
134
+ expect(current).toBeNull()
135
+ return { op: 'set', value: { count: 1 }, result: 'created' as const }
136
+ })
137
+
138
+ expect(result).toBe('created')
139
+ expect(await backing.get('tenant:k')).toEqual({ count: 1 })
140
+ expect(await backing.get('k')).toBeNull()
141
+ })
142
+
143
+ test('returns the original store when keyPrefix is empty', () => {
144
+ const backing = Store.memory()
145
+ expect(Store.from(backing, { keyPrefix: '' })).toBe(backing)
146
+ })
147
+
148
+ test('reuses wrappers for the same backing store and prefix', () => {
149
+ const backing = Store.memory()
150
+ expect(Store.from(backing, { keyPrefix: 'tenant:' })).toBe(
151
+ Store.from(backing, { keyPrefix: 'tenant:' }),
152
+ )
153
+ expect(Store.from(backing, { keyPrefix: 'other:' })).not.toBe(
154
+ Store.from(backing, { keyPrefix: 'tenant:' }),
155
+ )
156
+ })
157
+
158
+ test('constructs memory stores with a keyPrefix', async () => {
159
+ const store = Store.memory({ keyPrefix: 'tenant:' })
160
+ await store.put('k', 'value')
161
+ expect(await store.get('k')).toBe('value')
162
+ })
163
+
164
+ test('constructs adapter stores with a keyPrefix', async () => {
165
+ const cloudflareKv = fakeStringKv()
166
+ const cloudflare = Store.cloudflare(cloudflareKv, { keyPrefix: 'tenant:' })
167
+ await cloudflare.put('k', 'value')
168
+ expect(await cloudflareKv.get('tenant:k')).not.toBeNull()
169
+ expect(await cloudflareKv.get('k')).toBeNull()
170
+
171
+ const redisKv = fakeStringKv()
172
+ const redis = Store.redis(
173
+ {
174
+ get: redisKv.get,
175
+ set: redisKv.put,
176
+ del: redisKv.delete,
177
+ },
178
+ { keyPrefix: 'tenant:' },
179
+ )
180
+ await redis.put('k', 'value')
181
+ expect(await redisKv.get('tenant:k')).not.toBeNull()
182
+ expect(await redisKv.get('k')).toBeNull()
183
+
184
+ const upstashKv = fakeUnknownKv()
185
+ const upstash = Store.upstash(upstashKv, { keyPrefix: 'tenant:' })
186
+ await upstash.put('k', 'value')
187
+ expect(await upstashKv.get('tenant:k')).toBe('value')
188
+ expect(await upstashKv.get('k')).toBeNull()
189
+ })
190
+ })
191
+
115
192
  describe('json roundtrip behavior', () => {
116
193
  test('cloudflare json-roundtrips nested objects', async () => {
117
194
  const store = Store.cloudflare(fakeStringKv())
package/src/Store.ts CHANGED
@@ -84,11 +84,55 @@ export type AtomicStore<itemMap extends StoreItemMap = StoreItemMap> = Store<
84
84
  AtomicActions<itemMap>
85
85
  >
86
86
 
87
+ /** Options shared by store constructors. */
88
+ export type Options = {
89
+ /** Prefix prepended to every backing store key. */
90
+ keyPrefix?: string | undefined
91
+ }
92
+
93
+ const keyPrefixCache = new WeakMap<Store, Map<string, Store | AtomicStore>>()
94
+
87
95
  /** Creates a {@link Store} from an existing implementation. */
88
- export function from<store extends Store>(store: store): store
89
- export function from<store extends AtomicStore>(store: store): store
90
- export function from(store: Store | AtomicStore) {
91
- return store
96
+ export function from<store extends AtomicStore<any>>(store: store, options?: Options): store
97
+ export function from<store extends Store<any>>(store: store, options?: Options): store
98
+ export function from(store: Store | AtomicStore, options?: Options) {
99
+ return withKeyPrefix(store, options?.keyPrefix)
100
+ }
101
+
102
+ function withKeyPrefix(store: Store | AtomicStore, keyPrefix = ''): Store | AtomicStore {
103
+ if (!keyPrefix) return store
104
+
105
+ const cached = keyPrefixCache.get(store)?.get(keyPrefix)
106
+ if (cached) return cached
107
+
108
+ const backing = store as Store
109
+ const prefixedKey = (key: string) => `${keyPrefix}${key}`
110
+ const prefixed = from({
111
+ async get(key: string) {
112
+ return backing.get(prefixedKey(key)) as Promise<unknown>
113
+ },
114
+ async put(key: string, value: unknown) {
115
+ await backing.put(prefixedKey(key), value)
116
+ },
117
+ async delete(key: string) {
118
+ await backing.delete(prefixedKey(key))
119
+ },
120
+ ...('update' in store
121
+ ? {
122
+ async update<result>(
123
+ key: string,
124
+ fn: (current: unknown | null) => Change<unknown, result>,
125
+ ) {
126
+ return (store as AtomicStore).update(prefixedKey(key), fn as never)
127
+ },
128
+ }
129
+ : {}),
130
+ } satisfies Store | AtomicStore)
131
+
132
+ const cachedByPrefix = keyPrefixCache.get(store) ?? new Map<string, Store | AtomicStore>()
133
+ cachedByPrefix.set(keyPrefix, prefixed)
134
+ keyPrefixCache.set(store, cachedByPrefix)
135
+ return prefixed
92
136
  }
93
137
 
94
138
  function wrapJsonUpdate(
@@ -113,26 +157,37 @@ function wrapJsonUpdate(
113
157
  }
114
158
 
115
159
  /** Wraps a Cloudflare KV namespace. */
116
- export function cloudflare(kv: cloudflare.AtomicParameters): AtomicStore
117
- export function cloudflare(kv: cloudflare.Parameters): Store
118
- export function cloudflare(kv: cloudflare.Parameters): Store {
119
- return from({
120
- async get(key) {
121
- const raw = await kv.get(key)
122
- if (raw == null) return null as any
123
- return Json.parse(raw as string)
160
+ export function cloudflare(
161
+ kv: cloudflare.AtomicParameters,
162
+ options?: cloudflare.Options,
163
+ ): AtomicStore
164
+ export function cloudflare(kv: cloudflare.Parameters, options?: cloudflare.Options): Store
165
+ export function cloudflare(kv: cloudflare.Parameters, options?: cloudflare.Options): Store {
166
+ return from(
167
+ {
168
+ async get(key: string) {
169
+ const raw = await kv.get(key)
170
+ if (raw == null) return null as any
171
+ return Json.parse(raw as string)
172
+ },
173
+ async put(key: string, value: unknown) {
174
+ await kv.put(key, Json.stringify(value))
175
+ },
176
+ async delete(key: string) {
177
+ await kv.delete(key)
178
+ },
179
+ ...wrapJsonUpdate(kv.update),
124
180
  },
125
- async put(key, value) {
126
- await kv.put(key, Json.stringify(value))
127
- },
128
- async delete(key) {
129
- await kv.delete(key)
130
- },
131
- ...wrapJsonUpdate(kv.update),
132
- })
181
+ options,
182
+ )
133
183
  }
134
184
 
135
185
  export declare namespace cloudflare {
186
+ export type Options = {
187
+ /** Prefix prepended to every backing store key. */
188
+ keyPrefix?: string | undefined
189
+ }
190
+
136
191
  export type Parameters = {
137
192
  get: (key: string) => Promise<unknown>
138
193
  put: (key: string, value: string) => Promise<void>
@@ -149,51 +204,69 @@ export declare namespace cloudflare {
149
204
  }
150
205
 
151
206
  /** In-memory store backed by a `Map`. JSON-roundtrips values to match production behavior. */
152
- export function memory(): AtomicStore {
207
+ export function memory(options?: memory.Options): AtomicStore {
153
208
  const store = new Map<string, string>()
154
- return from({
155
- async get(key) {
156
- const raw = store.get(key)
157
- if (raw === undefined) return null as any
158
- return Json.parse(raw)
209
+ return from(
210
+ {
211
+ async get(key: string) {
212
+ const raw = store.get(key)
213
+ if (raw === undefined) return null as any
214
+ return Json.parse(raw)
215
+ },
216
+ async put(key: string, value: unknown) {
217
+ store.set(key, Json.stringify(value))
218
+ },
219
+ async delete(key: string) {
220
+ store.delete(key)
221
+ },
222
+ async update<result>(key: string, fn: (current: unknown | null) => Change<unknown, result>) {
223
+ const current = store.has(key) ? (Json.parse(store.get(key)!) as never) : null
224
+ const change = fn(current)
225
+ if (change.op === 'set') store.set(key, Json.stringify(change.value))
226
+ if (change.op === 'delete') store.delete(key)
227
+ return change.result
228
+ },
159
229
  },
160
- async put(key, value) {
161
- store.set(key, Json.stringify(value))
162
- },
163
- async delete(key) {
164
- store.delete(key)
165
- },
166
- async update(key, fn) {
167
- const current = store.has(key) ? (Json.parse(store.get(key)!) as never) : null
168
- const change = fn(current)
169
- if (change.op === 'set') store.set(key, Json.stringify(change.value))
170
- if (change.op === 'delete') store.delete(key)
171
- return change.result
172
- },
173
- })
230
+ options,
231
+ )
232
+ }
233
+
234
+ export declare namespace memory {
235
+ export type Options = {
236
+ /** Prefix prepended to every backing store key. */
237
+ keyPrefix?: string | undefined
238
+ }
174
239
  }
175
240
 
176
241
  /** Wraps a standard Redis client (ioredis, node-redis, Valkey). */
177
- export function redis(client: redis.AtomicParameters): AtomicStore
178
- export function redis(client: redis.Parameters): Store
179
- export function redis(client: redis.Parameters): Store {
180
- return from({
181
- async get(key) {
182
- const raw = await client.get(key)
183
- if (raw == null) return null as any
184
- return Json.parse(raw)
185
- },
186
- async put(key, value) {
187
- await client.set(key, Json.stringify(value))
188
- },
189
- async delete(key) {
190
- await client.del(key)
242
+ export function redis(client: redis.AtomicParameters, options?: redis.Options): AtomicStore
243
+ export function redis(client: redis.Parameters, options?: redis.Options): Store
244
+ export function redis(client: redis.Parameters, options?: redis.Options): Store {
245
+ return from(
246
+ {
247
+ async get(key: string) {
248
+ const raw = await client.get(key)
249
+ if (raw == null) return null as any
250
+ return Json.parse(raw)
251
+ },
252
+ async put(key: string, value: unknown) {
253
+ await client.set(key, Json.stringify(value))
254
+ },
255
+ async delete(key: string) {
256
+ await client.del(key)
257
+ },
258
+ ...wrapJsonUpdate(client.update),
191
259
  },
192
- ...wrapJsonUpdate(client.update),
193
- })
260
+ options,
261
+ )
194
262
  }
195
263
 
196
264
  export declare namespace redis {
265
+ export type Options = {
266
+ /** Prefix prepended to every backing store key. */
267
+ keyPrefix?: string | undefined
268
+ }
269
+
197
270
  export type Parameters = {
198
271
  get: (key: string) => Promise<string | null>
199
272
  set: (key: string, value: string) => Promise<unknown>
@@ -210,28 +283,36 @@ export declare namespace redis {
210
283
  }
211
284
 
212
285
  /** Wraps an Upstash Redis instance (e.g. Vercel KV). */
213
- export function upstash(redis: upstash.AtomicParameters): AtomicStore
214
- export function upstash(redis: upstash.Parameters): Store
215
- export function upstash(redis: upstash.Parameters): Store {
216
- return from({
217
- async get(key) {
218
- return (await redis.get(key)) as any
219
- },
220
- async put(key, value) {
221
- await redis.set(key, value)
286
+ export function upstash(redis: upstash.AtomicParameters, options?: upstash.Options): AtomicStore
287
+ export function upstash(redis: upstash.Parameters, options?: upstash.Options): Store
288
+ export function upstash(redis: upstash.Parameters, options?: upstash.Options): Store {
289
+ return from(
290
+ {
291
+ async get(key: string) {
292
+ return (await redis.get(key)) as any
293
+ },
294
+ async put(key: string, value: unknown) {
295
+ await redis.set(key, value)
296
+ },
297
+ async delete(key: string) {
298
+ await redis.del(key)
299
+ },
300
+ ...(redis.update
301
+ ? {
302
+ update: redis.update as Update,
303
+ }
304
+ : {}),
222
305
  },
223
- async delete(key) {
224
- await redis.del(key)
225
- },
226
- ...(redis.update
227
- ? {
228
- update: redis.update as Update,
229
- }
230
- : {}),
231
- })
306
+ options,
307
+ )
232
308
  }
233
309
 
234
310
  export declare namespace upstash {
311
+ export type Options = {
312
+ /** Prefix prepended to every backing store key. */
313
+ keyPrefix?: string | undefined
314
+ }
315
+
235
316
  export type Parameters = {
236
317
  get: (key: string) => Promise<unknown>
237
318
  set: (key: string, value: unknown) => Promise<unknown>
package/src/cli/cli.ts CHANGED
@@ -6,7 +6,7 @@ import { Cli, Errors, z } from 'incur'
6
6
  import { Base64 } from 'ox'
7
7
  import { type Address, createClient, http } from 'viem'
8
8
  import { generatePrivateKey, privateKeyToAccount } from 'viem/accounts'
9
- import { tempo as tempoMainnet } from 'viem/chains'
9
+ import { tempo as tempoMainnet } from 'viem/tempo/chains'
10
10
 
11
11
  import * as Challenge from '../Challenge.js'
12
12
  import { normalizeHeaders } from '../client/internal/Fetch.js'
@@ -1,4 +1,4 @@
1
- import { tempo as tempoMainnet, tempoModerato } from 'viem/chains'
1
+ import { tempo as tempoMainnet, tempoModerato } from 'viem/tempo/chains'
2
2
  import { afterEach, describe, expect, test } from 'vp/test'
3
3
 
4
4
  import { networkRpcUrls, resolveChain, resolveRpcUrl } from './utils.js'
package/src/cli/utils.ts CHANGED
@@ -2,7 +2,7 @@ import * as readline from 'node:readline'
2
2
 
3
3
  import type { Chain } from 'viem'
4
4
  import { type Address, createClient, http } from 'viem'
5
- import { tempo as tempoMainnet, tempoModerato } from 'viem/chains'
5
+ import { tempo as tempoMainnet, tempoModerato } from 'viem/tempo/chains'
6
6
 
7
7
  import * as defaults from '../tempo/internal/defaults.js'
8
8
 
@@ -249,7 +249,7 @@ export async function resolveChain(
249
249
  if (!rpcUrl) return tempoMainnet
250
250
  const { getChainId } = await import('viem/actions')
251
251
  const chainId = await getChainId(createClient({ transport: http(rpcUrl) }))
252
- const allExports = Object.values(await import('viem/chains')) as unknown[]
252
+ const allExports = Object.values(await import('viem/tempo/chains')) as unknown[]
253
253
  const candidates = allExports.filter(
254
254
  (c): c is Chain =>
255
255
  typeof c === 'object' && c !== null && 'id' in c && (c as Chain).id === chainId,
@@ -98,4 +98,22 @@ describe('scrubResponse', () => {
98
98
  expect(result.statusText).toBe('Created')
99
99
  expect(await result.text()).toBe('hello')
100
100
  })
101
+
102
+ // Regression: an upstream service must never be able to issue a cookie
103
+ // under the proxy's origin. Otherwise a compromised or attacker-influenced
104
+ // upstream can session-fixate (`Set-Cookie: session=evil; Domain=…`) every
105
+ // sibling subdomain of the proxy. See the docblock on `scrubResponse`.
106
+ test('behavior: strips set-cookie so upstream cannot set cookies on proxy origin', () => {
107
+ const response = new Response('body', {
108
+ headers: [
109
+ ['Set-Cookie', '__Secure-session=evil; Domain=.example.com; Secure; HttpOnly'],
110
+ ['Set-Cookie', 'tracking=1; Path=/'],
111
+ ['Content-Type', 'application/json'],
112
+ ],
113
+ })
114
+ const result = Headers.scrubResponse(response)
115
+ expect(result.headers.has('set-cookie')).toBe(false)
116
+ expect(result.headers.getSetCookie?.() ?? []).toEqual([])
117
+ expect(result.headers.get('content-type')).toBe('application/json')
118
+ })
101
119
  })
@@ -29,11 +29,24 @@ export function scrub(headers: Headers): Headers {
29
29
  return scrubbed
30
30
  }
31
31
 
32
- /** Strips `content-encoding` and `content-length` from an upstream response so the proxy can re-stream it. */
32
+ /**
33
+ * Strips re-streaming headers (`content-encoding`, `content-length`) and
34
+ * security-sensitive headers (`set-cookie`) from an upstream response.
35
+ *
36
+ * `set-cookie` is dropped because a paid API proxy must never let an upstream
37
+ * service set cookies in the user's browser under the proxy's origin. If a
38
+ * compromised, misbehaving, or attacker-influenced upstream returned
39
+ * `Set-Cookie: session=evil; Domain=.example.com`, the browser would honor it
40
+ * for every sibling subdomain of the proxy — turning any future path-confusion
41
+ * or open-redirect bug in the surrounding deployment into a session-fixation
42
+ * primitive. Proxied services authenticate via bearer tokens / signed
43
+ * payloads, never cookies, so dropping `set-cookie` is purely defensive.
44
+ */
33
45
  export function scrubResponse(response: Response): Response {
34
46
  const headers = new Headers(response.headers)
35
47
  headers.delete('content-encoding')
36
48
  headers.delete('content-length')
49
+ headers.delete('set-cookie')
37
50
  return new Response(response.body, {
38
51
  status: response.status,
39
52
  statusText: response.statusText,