@onesub/server 0.11.4 → 0.12.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/README.md +119 -2
- package/dist/__tests__/cache.test.d.ts +2 -0
- package/dist/__tests__/cache.test.d.ts.map +1 -0
- package/dist/__tests__/cache.test.js +34 -0
- package/dist/__tests__/cache.test.js.map +1 -0
- package/dist/__tests__/openapi.test.d.ts +2 -0
- package/dist/__tests__/openapi.test.d.ts.map +1 -0
- package/dist/__tests__/openapi.test.js +32 -0
- package/dist/__tests__/openapi.test.js.map +1 -0
- package/dist/__tests__/redis-store.test.d.ts +2 -0
- package/dist/__tests__/redis-store.test.d.ts.map +1 -0
- package/dist/__tests__/redis-store.test.js +117 -0
- package/dist/__tests__/redis-store.test.js.map +1 -0
- package/dist/__tests__/webhook-events.test.d.ts +2 -0
- package/dist/__tests__/webhook-events.test.d.ts.map +1 -0
- package/dist/__tests__/webhook-events.test.js +36 -0
- package/dist/__tests__/webhook-events.test.js.map +1 -0
- package/dist/__tests__/webhook-queue.test.d.ts +2 -0
- package/dist/__tests__/webhook-queue.test.d.ts.map +1 -0
- package/dist/__tests__/webhook-queue.test.js +26 -0
- package/dist/__tests__/webhook-queue.test.js.map +1 -0
- package/dist/cache.d.ts +32 -0
- package/dist/cache.d.ts.map +1 -0
- package/dist/cache.js +43 -0
- package/dist/cache.js.map +1 -0
- package/dist/index.cjs +3114 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +34 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3072 -118
- package/dist/index.js.map +1 -1
- package/dist/openapi.d.ts +41 -0
- package/dist/openapi.d.ts.map +1 -0
- package/dist/openapi.js +196 -0
- package/dist/openapi.js.map +1 -0
- package/dist/providers/apple.d.ts +1 -1
- package/dist/providers/apple.d.ts.map +1 -1
- package/dist/providers/apple.js +45 -34
- package/dist/providers/apple.js.map +1 -1
- package/dist/providers/google.d.ts.map +1 -1
- package/dist/providers/google.js +49 -20
- package/dist/providers/google.js.map +1 -1
- package/dist/routes/admin.d.ts +2 -1
- package/dist/routes/admin.d.ts.map +1 -1
- package/dist/routes/admin.js +37 -1
- package/dist/routes/admin.js.map +1 -1
- package/dist/routes/webhook.d.ts +2 -1
- package/dist/routes/webhook.d.ts.map +1 -1
- package/dist/routes/webhook.js +21 -1
- package/dist/routes/webhook.js.map +1 -1
- package/dist/stores/redis.d.ts +60 -0
- package/dist/stores/redis.d.ts.map +1 -0
- package/dist/stores/redis.js +255 -0
- package/dist/stores/redis.js.map +1 -0
- package/dist/stores/schema.d.ts.map +1 -1
- package/dist/stores/schema.js +10 -0
- package/dist/stores/schema.js.map +1 -1
- package/dist/tracing.d.ts +32 -0
- package/dist/tracing.d.ts.map +1 -0
- package/dist/tracing.js +74 -0
- package/dist/tracing.js.map +1 -0
- package/dist/webhook-events.d.ts +58 -0
- package/dist/webhook-events.d.ts.map +1 -0
- package/dist/webhook-events.js +57 -0
- package/dist/webhook-events.js.map +1 -0
- package/dist/webhook-queue.d.ts +92 -0
- package/dist/webhook-queue.d.ts.map +1 -0
- package/dist/webhook-queue.js +108 -0
- package/dist/webhook-queue.js.map +1 -0
- package/package.json +33 -4
- package/sql/schema.sql +10 -0
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import express, { Router } from 'express';
|
|
2
2
|
import type { OneSubServerConfig } from '@onesub/shared';
|
|
3
3
|
import type { SubscriptionStore, PurchaseStore } from './store.js';
|
|
4
|
+
import type { CacheAdapter } from './cache.js';
|
|
5
|
+
import type { WebhookEventStore } from './webhook-events.js';
|
|
6
|
+
import type { WebhookQueue } from './webhook-queue.js';
|
|
4
7
|
/**
|
|
5
8
|
* Extended config with optional pluggable stores.
|
|
6
9
|
*/
|
|
@@ -16,6 +19,27 @@ export interface OneSubMiddlewareConfig extends OneSubServerConfig {
|
|
|
16
19
|
* For production, provide a PostgreSQL backed implementation.
|
|
17
20
|
*/
|
|
18
21
|
purchaseStore?: PurchaseStore;
|
|
22
|
+
/**
|
|
23
|
+
* Cache backend for short-lived secrets (Apple JWT, Google OAuth token).
|
|
24
|
+
* Default: in-memory, process-local. For multi-instance deployments pass a
|
|
25
|
+
* `RedisCacheAdapter` so all nodes share a single mint per TTL window.
|
|
26
|
+
*/
|
|
27
|
+
cache?: CacheAdapter;
|
|
28
|
+
/**
|
|
29
|
+
* Webhook idempotency store. Default: none (rely on Apple/Google retry +
|
|
30
|
+
* downstream store PKs). For production strongly recommended — pass an
|
|
31
|
+
* `InMemoryWebhookEventStore` (single instance) or `CacheWebhookEventStore`
|
|
32
|
+
* backed by Redis (multi-instance) so duplicate notifications never apply
|
|
33
|
+
* twice.
|
|
34
|
+
*/
|
|
35
|
+
webhookEventStore?: WebhookEventStore;
|
|
36
|
+
/**
|
|
37
|
+
* Async webhook queue. Default: in-process synchronous (legacy behavior —
|
|
38
|
+
* route latency = handler latency). For decoupled retries pass a
|
|
39
|
+
* `BullMQWebhookQueue`; the dead-letter list becomes accessible via
|
|
40
|
+
* `/onesub/admin/webhook-deadletters` and `/onesub/admin/webhook-replay/:id`.
|
|
41
|
+
*/
|
|
42
|
+
webhookQueue?: WebhookQueue;
|
|
19
43
|
}
|
|
20
44
|
/**
|
|
21
45
|
* Create an Express Router with all OneSub routes mounted.
|
|
@@ -47,6 +71,16 @@ export declare function createOneSubServer(config: OneSubMiddlewareConfig): Retu
|
|
|
47
71
|
export { InMemorySubscriptionStore, InMemoryPurchaseStore } from './store.js';
|
|
48
72
|
export type { SubscriptionStore, PurchaseStore } from './store.js';
|
|
49
73
|
export { PostgresSubscriptionStore, PostgresPurchaseStore } from './stores/postgres.js';
|
|
74
|
+
export { RedisSubscriptionStore, RedisPurchaseStore, RedisCacheAdapter, RedisWebhookEventStore, } from './stores/redis.js';
|
|
75
|
+
export type { CacheAdapter } from './cache.js';
|
|
76
|
+
export { InMemoryCacheAdapter, getDefaultCache, setDefaultCache } from './cache.js';
|
|
77
|
+
export type { WebhookEventStore } from './webhook-events.js';
|
|
78
|
+
export { InMemoryWebhookEventStore, CacheWebhookEventStore } from './webhook-events.js';
|
|
79
|
+
export type { WebhookQueue, WebhookJob, WebhookHandler, DeadLetterRecord } from './webhook-queue.js';
|
|
80
|
+
export { InProcessWebhookQueue, BullMQWebhookQueue } from './webhook-queue.js';
|
|
81
|
+
export { ONESUB_OPENAPI, openapiHandler } from './openapi.js';
|
|
82
|
+
export type { OpenAPIDoc } from './openapi.js';
|
|
83
|
+
export { withSpan } from './tracing.js';
|
|
50
84
|
export { validateAppleReceipt, fetchAppleSubscriptionStatus } from './providers/apple.js';
|
|
51
85
|
export { validateGoogleReceipt } from './providers/google.js';
|
|
52
86
|
export { evaluateEntitlement } from './routes/entitlements.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAGzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAGzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AASnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,kBAAkB;IAChE;;;OAGG;IACH,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B;;;;OAIG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B;;;;OAIG;IACH,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC;;;;;OAKG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,sBAAsB,GAAG,MAAM,CA6C7E;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,sBAAsB,GAAG,UAAU,CAAC,OAAO,OAAO,CAAC,CAW7F;AAGD,OAAO,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAC9E,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACnE,OAAO,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AACxF,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAG3B,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGpF,YAAY,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AACxF,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACrG,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAI/E,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9D,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAI/C,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAGxC,OAAO,EAAE,oBAAoB,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAI9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAI/D,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAG7C,eAAe,sBAAsB,CAAC"}
|