@onesub/server 0.12.0 → 0.12.1

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 (120) hide show
  1. package/dist/__tests__/webhook-apple.test.d.ts +12 -0
  2. package/dist/__tests__/webhook-apple.test.d.ts.map +1 -0
  3. package/dist/__tests__/webhook-google.test.d.ts +13 -0
  4. package/dist/__tests__/webhook-google.test.d.ts.map +1 -0
  5. package/dist/index.cjs +258 -288
  6. package/dist/index.cjs.map +1 -1
  7. package/dist/index.d.ts +0 -1
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +259 -286
  10. package/dist/index.js.map +1 -1
  11. package/dist/providers/google.d.ts.map +1 -1
  12. package/dist/routes/webhook-apple.d.ts +6 -0
  13. package/dist/routes/webhook-apple.d.ts.map +1 -0
  14. package/dist/routes/webhook-google.d.ts +7 -0
  15. package/dist/routes/webhook-google.d.ts.map +1 -0
  16. package/dist/routes/webhook.d.ts +4 -17
  17. package/dist/routes/webhook.d.ts.map +1 -1
  18. package/package.json +2 -2
  19. package/dist/__tests__/admin-customer-detail.test.js +0 -146
  20. package/dist/__tests__/admin-customer-detail.test.js.map +0 -1
  21. package/dist/__tests__/admin-list-subscriptions.test.js +0 -192
  22. package/dist/__tests__/admin-list-subscriptions.test.js.map +0 -1
  23. package/dist/__tests__/admin-subscription-detail.test.js +0 -112
  24. package/dist/__tests__/admin-subscription-detail.test.js.map +0 -1
  25. package/dist/__tests__/apple-root-ca.test.js +0 -41
  26. package/dist/__tests__/apple-root-ca.test.js.map +0 -1
  27. package/dist/__tests__/apple-status-api.test.js +0 -345
  28. package/dist/__tests__/apple-status-api.test.js.map +0 -1
  29. package/dist/__tests__/cache.test.js +0 -34
  30. package/dist/__tests__/cache.test.js.map +0 -1
  31. package/dist/__tests__/entitlements.test.js +0 -268
  32. package/dist/__tests__/entitlements.test.js.map +0 -1
  33. package/dist/__tests__/error-codes.test.js +0 -168
  34. package/dist/__tests__/error-codes.test.js.map +0 -1
  35. package/dist/__tests__/fetch-hardening.test.js +0 -192
  36. package/dist/__tests__/fetch-hardening.test.js.map +0 -1
  37. package/dist/__tests__/google-paused.test.js +0 -126
  38. package/dist/__tests__/google-paused.test.js.map +0 -1
  39. package/dist/__tests__/google-price-change.test.js +0 -186
  40. package/dist/__tests__/google-price-change.test.js.map +0 -1
  41. package/dist/__tests__/google-subscriptions-v2.test.js +0 -206
  42. package/dist/__tests__/google-subscriptions-v2.test.js.map +0 -1
  43. package/dist/__tests__/lifecycle-scenarios.test.js +0 -579
  44. package/dist/__tests__/lifecycle-scenarios.test.js.map +0 -1
  45. package/dist/__tests__/lifecycle-states.test.js +0 -423
  46. package/dist/__tests__/lifecycle-states.test.js.map +0 -1
  47. package/dist/__tests__/linked-purchase-token.test.js +0 -227
  48. package/dist/__tests__/linked-purchase-token.test.js.map +0 -1
  49. package/dist/__tests__/metrics.test.js +0 -340
  50. package/dist/__tests__/metrics.test.js.map +0 -1
  51. package/dist/__tests__/mock-provider.test.js +0 -188
  52. package/dist/__tests__/mock-provider.test.js.map +0 -1
  53. package/dist/__tests__/openapi.test.js +0 -32
  54. package/dist/__tests__/openapi.test.js.map +0 -1
  55. package/dist/__tests__/paused-auto-resume.test.js +0 -162
  56. package/dist/__tests__/paused-auto-resume.test.js.map +0 -1
  57. package/dist/__tests__/providers.test.js +0 -321
  58. package/dist/__tests__/providers.test.js.map +0 -1
  59. package/dist/__tests__/redis-store.test.js +0 -117
  60. package/dist/__tests__/redis-store.test.js.map +0 -1
  61. package/dist/__tests__/refund-policy.test.js +0 -317
  62. package/dist/__tests__/refund-policy.test.js.map +0 -1
  63. package/dist/__tests__/schema.test.js +0 -46
  64. package/dist/__tests__/schema.test.js.map +0 -1
  65. package/dist/__tests__/store.test.js +0 -172
  66. package/dist/__tests__/store.test.js.map +0 -1
  67. package/dist/__tests__/test-utils.js +0 -30
  68. package/dist/__tests__/test-utils.js.map +0 -1
  69. package/dist/__tests__/webhook-events.test.js +0 -36
  70. package/dist/__tests__/webhook-events.test.js.map +0 -1
  71. package/dist/__tests__/webhook-queue.test.js +0 -26
  72. package/dist/__tests__/webhook-queue.test.js.map +0 -1
  73. package/dist/__tests__/webhook-refund.test.js +0 -313
  74. package/dist/__tests__/webhook-refund.test.js.map +0 -1
  75. package/dist/cache.js +0 -43
  76. package/dist/cache.js.map +0 -1
  77. package/dist/errors.js +0 -19
  78. package/dist/errors.js.map +0 -1
  79. package/dist/http.js +0 -36
  80. package/dist/http.js.map +0 -1
  81. package/dist/logger.js +0 -20
  82. package/dist/logger.js.map +0 -1
  83. package/dist/openapi.js +0 -196
  84. package/dist/openapi.js.map +0 -1
  85. package/dist/providers/apple-root-ca.js +0 -38
  86. package/dist/providers/apple-root-ca.js.map +0 -1
  87. package/dist/providers/apple.js +0 -510
  88. package/dist/providers/apple.js.map +0 -1
  89. package/dist/providers/google.js +0 -522
  90. package/dist/providers/google.js.map +0 -1
  91. package/dist/providers/mock.js +0 -93
  92. package/dist/providers/mock.js.map +0 -1
  93. package/dist/routes/admin.js +0 -287
  94. package/dist/routes/admin.js.map +0 -1
  95. package/dist/routes/entitlements.js +0 -130
  96. package/dist/routes/entitlements.js.map +0 -1
  97. package/dist/routes/metrics.js +0 -281
  98. package/dist/routes/metrics.js.map +0 -1
  99. package/dist/routes/purchase.js +0 -187
  100. package/dist/routes/purchase.js.map +0 -1
  101. package/dist/routes/status.js +0 -55
  102. package/dist/routes/status.js.map +0 -1
  103. package/dist/routes/validate.js +0 -70
  104. package/dist/routes/validate.js.map +0 -1
  105. package/dist/routes/webhook.js +0 -461
  106. package/dist/routes/webhook.js.map +0 -1
  107. package/dist/store.js +0 -145
  108. package/dist/store.js.map +0 -1
  109. package/dist/stores/postgres.js +0 -329
  110. package/dist/stores/postgres.js.map +0 -1
  111. package/dist/stores/redis.js +0 -255
  112. package/dist/stores/redis.js.map +0 -1
  113. package/dist/stores/schema.js +0 -67
  114. package/dist/stores/schema.js.map +0 -1
  115. package/dist/tracing.js +0 -74
  116. package/dist/tracing.js.map +0 -1
  117. package/dist/webhook-events.js +0 -57
  118. package/dist/webhook-events.js.map +0 -1
  119. package/dist/webhook-queue.js +0 -108
  120. package/dist/webhook-queue.js.map +0 -1
package/dist/openapi.js DELETED
@@ -1,196 +0,0 @@
1
- /**
2
- * OpenAPI 3.1 spec for the onesub HTTP surface.
3
- *
4
- * Hand-maintained — kept in sync with the routes by a parity test (see
5
- * __tests__/openapi.test.ts) that asserts every mounted path is described
6
- * here. Generated clients live downstream:
7
- *
8
- * - swagger-typescript-api → typed fetch client
9
- * - openapi-generator-cli → Kotlin/Swift/etc. clients
10
- *
11
- * Why hand-maintained instead of zod-to-openapi: the routes use zod for
12
- * input validation but the request/response shapes the public docs need are
13
- * a thin slice of those internal types. Hand-writing keeps the doc readable
14
- * without coupling client output to internal validation strictness changes.
15
- */
16
- import { ROUTES } from '@onesub/shared';
17
- export const ONESUB_OPENAPI = {
18
- openapi: '3.1.0',
19
- info: {
20
- title: 'onesub HTTP API',
21
- version: '1.0.0',
22
- description: 'Receipt validation, subscription status, webhooks, and admin endpoints exposed by `createOneSubMiddleware`.',
23
- },
24
- servers: [
25
- { url: 'http://localhost:4100', description: 'Local dev (examples/server)' },
26
- ],
27
- paths: {
28
- [ROUTES.VALIDATE]: {
29
- post: {
30
- summary: 'Validate an Apple/Google receipt and persist subscription state.',
31
- requestBody: {
32
- required: true,
33
- content: { 'application/json': { schema: { $ref: '#/components/schemas/ValidateRequest' } } },
34
- },
35
- responses: {
36
- 200: { description: 'Validation succeeded; subscription state persisted.', content: { 'application/json': { schema: { $ref: '#/components/schemas/ValidateResponse' } } } },
37
- 400: { description: 'Bad request — missing fields, malformed receipt, package mismatch.' },
38
- },
39
- },
40
- },
41
- [ROUTES.STATUS]: {
42
- get: {
43
- summary: 'Fetch the most recent subscription state for a user.',
44
- parameters: [{ in: 'query', name: 'userId', required: true, schema: { type: 'string' } }],
45
- responses: {
46
- 200: { description: 'OK', content: { 'application/json': { schema: { $ref: '#/components/schemas/StatusResponse' } } } },
47
- },
48
- },
49
- },
50
- [ROUTES.WEBHOOK_APPLE]: {
51
- post: {
52
- summary: 'Apple App Store Server Notification V2 receiver.',
53
- description: 'Apple POSTs `{ signedPayload }`. JWS-verified, idempotent when `webhookEventStore` is configured.',
54
- responses: {
55
- 200: { description: 'Acknowledged.' },
56
- 400: { description: 'Missing or invalid signedPayload.' },
57
- },
58
- },
59
- },
60
- [ROUTES.WEBHOOK_GOOGLE]: {
61
- post: {
62
- summary: 'Google Play Real-Time Developer Notification (Pub/Sub push) receiver.',
63
- responses: {
64
- 200: { description: 'Acknowledged.' },
65
- 400: { description: 'Missing message.data or package mismatch.' },
66
- 401: { description: 'pushAudience configured and JWT verification failed.' },
67
- },
68
- },
69
- },
70
- [ROUTES.ENTITLEMENTS]: {
71
- get: {
72
- summary: 'Evaluate every configured entitlement for a user.',
73
- parameters: [{ in: 'query', name: 'userId', required: true, schema: { type: 'string' } }],
74
- responses: {
75
- 200: { description: 'Map of entitlementId → { granted, source }.' },
76
- },
77
- },
78
- },
79
- [ROUTES.ADMIN_SUBSCRIPTIONS]: {
80
- get: {
81
- summary: 'Filtered, paginated subscription list (admin).',
82
- parameters: [
83
- { in: 'header', name: 'X-Admin-Secret', required: true, schema: { type: 'string' } },
84
- { in: 'query', name: 'userId', schema: { type: 'string' } },
85
- { in: 'query', name: 'status', schema: { type: 'string', enum: ['active', 'grace_period', 'on_hold', 'paused', 'expired', 'canceled', 'none'] } },
86
- { in: 'query', name: 'productId', schema: { type: 'string' } },
87
- { in: 'query', name: 'platform', schema: { type: 'string', enum: ['apple', 'google'] } },
88
- { in: 'query', name: 'limit', schema: { type: 'integer', minimum: 1, maximum: 200 } },
89
- { in: 'query', name: 'offset', schema: { type: 'integer', minimum: 0 } },
90
- ],
91
- responses: { 200: { description: 'OK' }, 401: { description: 'Invalid admin secret' } },
92
- },
93
- },
94
- '/onesub/admin/customers/{userId}': {
95
- get: {
96
- summary: 'Customer profile bundle: subscriptions + purchases + entitlements (admin).',
97
- parameters: [
98
- { in: 'header', name: 'X-Admin-Secret', required: true, schema: { type: 'string' } },
99
- { in: 'path', name: 'userId', required: true, schema: { type: 'string' } },
100
- ],
101
- responses: { 200: { description: 'OK' }, 401: { description: 'Invalid admin secret' } },
102
- },
103
- },
104
- '/onesub/admin/webhook-deadletters': {
105
- get: {
106
- summary: 'List failed webhook jobs (when a queue with DLQ support is configured).',
107
- parameters: [{ in: 'header', name: 'X-Admin-Secret', required: true, schema: { type: 'string' } }],
108
- responses: { 200: { description: 'OK' }, 401: { description: 'Invalid admin secret' } },
109
- },
110
- },
111
- '/onesub/admin/webhook-replay/{id}': {
112
- post: {
113
- summary: 'Replay a dead-letter job through the webhook handler.',
114
- parameters: [
115
- { in: 'header', name: 'X-Admin-Secret', required: true, schema: { type: 'string' } },
116
- { in: 'path', name: 'id', required: true, schema: { type: 'string' } },
117
- ],
118
- responses: { 200: { description: 'OK' }, 401: { description: 'Invalid admin secret' } },
119
- },
120
- },
121
- },
122
- components: {
123
- schemas: {
124
- ValidateRequest: {
125
- type: 'object',
126
- required: ['userId', 'platform', 'productId', 'receipt'],
127
- properties: {
128
- userId: { type: 'string' },
129
- platform: { type: 'string', enum: ['apple', 'google'] },
130
- productId: { type: 'string' },
131
- receipt: { type: 'string', description: 'Apple JWS or Google purchaseToken' },
132
- purchaseType: { type: 'string', enum: ['subscription', 'consumable', 'non_consumable'] },
133
- },
134
- },
135
- ValidateResponse: {
136
- type: 'object',
137
- properties: {
138
- valid: { type: 'boolean' },
139
- subscription: { $ref: '#/components/schemas/SubscriptionInfo' },
140
- purchase: { $ref: '#/components/schemas/PurchaseInfo' },
141
- },
142
- },
143
- StatusResponse: {
144
- type: 'object',
145
- properties: {
146
- active: { type: 'boolean' },
147
- subscription: { $ref: '#/components/schemas/SubscriptionInfo' },
148
- },
149
- },
150
- SubscriptionInfo: {
151
- type: 'object',
152
- properties: {
153
- originalTransactionId: { type: 'string' },
154
- userId: { type: 'string' },
155
- productId: { type: 'string' },
156
- platform: { type: 'string', enum: ['apple', 'google'] },
157
- status: { type: 'string', enum: ['active', 'grace_period', 'on_hold', 'paused', 'expired', 'canceled', 'none'] },
158
- expiresAt: { type: 'string', format: 'date-time' },
159
- purchasedAt: { type: 'string', format: 'date-time' },
160
- willRenew: { type: 'boolean' },
161
- },
162
- },
163
- PurchaseInfo: {
164
- type: 'object',
165
- properties: {
166
- transactionId: { type: 'string' },
167
- userId: { type: 'string' },
168
- productId: { type: 'string' },
169
- platform: { type: 'string', enum: ['apple', 'google'] },
170
- type: { type: 'string', enum: ['consumable', 'non_consumable'] },
171
- quantity: { type: 'integer' },
172
- purchasedAt: { type: 'string', format: 'date-time' },
173
- },
174
- },
175
- },
176
- securitySchemes: {
177
- AdminSecret: {
178
- type: 'apiKey',
179
- in: 'header',
180
- name: 'X-Admin-Secret',
181
- },
182
- },
183
- },
184
- };
185
- /**
186
- * Mount a route that serves the OpenAPI document. Useful for hosts that want
187
- * to expose `/openapi.json` to API explorers / SDK generators.
188
- *
189
- * app.use('/openapi.json', openapiHandler());
190
- */
191
- export function openapiHandler() {
192
- return (_req, res) => {
193
- res.json(ONESUB_OPENAPI);
194
- };
195
- }
196
- //# sourceMappingURL=openapi.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"openapi.js","sourceRoot":"","sources":["../src/openapi.ts"],"names":[],"mappings":"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"}
@@ -1,38 +0,0 @@
1
- /**
2
- * Apple Root CA certificates used to verify StoreKit 2 signed transactions.
3
- *
4
- * Apple signs JWS transactions with an ECDSA key; the signing certificate
5
- * chain is embedded in the JWS `x5c` header. To trust the leaf key we must
6
- * validate the chain all the way up to one of Apple's published root CAs.
7
- *
8
- * Source: https://www.apple.com/certificateauthority/
9
- * These certificates are public and static. Update this list if Apple
10
- * publishes a new root — existing JWS signed with older roots continue to
11
- * validate against their original root.
12
- */
13
- /**
14
- * Apple Root CA - G3 (current root for StoreKit 2 / App Store Server API).
15
- * SHA-256 fingerprint: 63343ABF B89A6A03 EB994052 C5ADBBF8 A87E2C46 81F6F0FC C8A4DA48 95F0FBBF
16
- * Valid: 2014-04-30 — 2039-04-30
17
- */
18
- export const APPLE_ROOT_CA_G3_PEM = `-----BEGIN CERTIFICATE-----
19
- MIICQzCCAcmgAwIBAgIILcX8iNLFS5UwCgYIKoZIzj0EAwMwZzEbMBkGA1UEAwwS
20
- QXBwbGUgUm9vdCBDQSAtIEczMSYwJAYDVQQLDB1BcHBsZSBDZXJ0aWZpY2F0aW9u
21
- IEF1dGhvcml0eTETMBEGA1UECgwKQXBwbGUgSW5jLjELMAkGA1UEBhMCVVMwHhcN
22
- MTQwNDMwMTgxOTA2WhcNMzkwNDMwMTgxOTA2WjBnMRswGQYDVQQDDBJBcHBsZSBS
23
- b290IENBIC0gRzMxJjAkBgNVBAsMHUFwcGxlIENlcnRpZmljYXRpb24gQXV0aG9y
24
- aXR5MRMwEQYDVQQKDApBcHBsZSBJbmMuMQswCQYDVQQGEwJVUzB2MBAGByqGSM49
25
- AgEGBSuBBAAiA2IABJjpLz1AcqTtkyJygRMc3RCV8cWjTnHcFBbZDuWmBSp3ZHtf
26
- TjjTuxxEtX/1H7YyYl3J6YRbTzBPEVoA/VhYDKX1DyxNB0cTddqXl5dvMVztK517
27
- IDvYuVTZXpmkOlEKMaNCMEAwHQYDVR0OBBYEFLuw3qFYM4iapIqZ3r6966/ayySr
28
- MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMDA2gA
29
- MGUCMQCD6cHEFl4aXTQY2e3v9GwOAEZLuN+yRhHFD/3meoyhpmvOwgPUnPWTxnS4
30
- at+qIxUCMG1mihDK1A3UT82NQz60imOlM27jbdoXt2QfyFMm+YhidDkLF1vLUagM
31
- 6BgD56KyKA==
32
- -----END CERTIFICATE-----`;
33
- /**
34
- * All Apple root CAs accepted for StoreKit 2 JWS validation.
35
- * Currently only G3; add G4 here when Apple publishes it.
36
- */
37
- export const APPLE_ROOT_CA_PEMS = [APPLE_ROOT_CA_G3_PEM];
38
- //# sourceMappingURL=apple-root-ca.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"apple-root-ca.js","sourceRoot":"","sources":["../../src/providers/apple-root-ca.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;0BAcV,CAAC;AAE3B;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,oBAAoB,CAAC,CAAC"}