@vex-chat/spire 2.4.0 → 2.6.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.
Files changed (33) hide show
  1. package/dist/BillingVerification.d.ts +40 -0
  2. package/dist/BillingVerification.js +535 -0
  3. package/dist/BillingVerification.js.map +1 -0
  4. package/dist/Database.d.ts +39 -1
  5. package/dist/Database.js +285 -2
  6. package/dist/Database.js.map +1 -1
  7. package/dist/db/schema.d.ts +50 -0
  8. package/dist/migrations/2026-06-24_account-entitlements.d.ts +8 -0
  9. package/dist/migrations/2026-06-24_account-entitlements.js +20 -0
  10. package/dist/migrations/2026-06-24_account-entitlements.js.map +1 -0
  11. package/dist/migrations/2026-07-02_store-subscriptions.d.ts +8 -0
  12. package/dist/migrations/2026-07-02_store-subscriptions.js +83 -0
  13. package/dist/migrations/2026-07-02_store-subscriptions.js.map +1 -0
  14. package/dist/server/billing.d.ts +14 -0
  15. package/dist/server/billing.js +234 -0
  16. package/dist/server/billing.js.map +1 -0
  17. package/dist/server/entitlements.d.ts +8 -0
  18. package/dist/server/entitlements.js +71 -0
  19. package/dist/server/entitlements.js.map +1 -0
  20. package/dist/server/index.js +6 -0
  21. package/dist/server/index.js.map +1 -1
  22. package/package.json +4 -4
  23. package/src/BillingVerification.ts +800 -0
  24. package/src/Database.ts +422 -2
  25. package/src/__tests__/Database.spec.ts +6 -3
  26. package/src/__tests__/billing.spec.ts +282 -0
  27. package/src/__tests__/entitlements.spec.ts +241 -0
  28. package/src/db/schema.ts +66 -1
  29. package/src/migrations/2026-06-24_account-entitlements.ts +23 -0
  30. package/src/migrations/2026-07-02_store-subscriptions.ts +92 -0
  31. package/src/server/billing.ts +361 -0
  32. package/src/server/entitlements.ts +104 -0
  33. package/src/server/index.ts +6 -0
@@ -5,8 +5,29 @@
5
5
  */
6
6
  import type { PasskeyRow } from "./db/schema.ts";
7
7
  import type { SpireOptions } from "./Spire.ts";
8
- import type { Channel, Device, DevicePayload, Emoji, FileSQL, Invite, KeyBundle, MailWS, Passkey, Permission, PreKeysWS, RegistrationPayload, Server, UserRecord } from "@vex-chat/types";
8
+ import type { AccountEntitlements, AccountEntitlementSource, AccountTier, BillingAccountState, BillingEnvironment, BillingPlatform, BillingSubscription, BillingSubscriptionStatus, Channel, Device, DevicePayload, Emoji, FileSQL, Invite, KeyBundle, MailWS, Passkey, Permission, PreKeysWS, RegistrationPayload, Server, UserRecord } from "@vex-chat/types";
9
9
  import { EventEmitter } from "events";
10
+ export interface StoreSubscriptionUpsertInput {
11
+ environment: BillingEnvironment;
12
+ expiresAt: null | string;
13
+ externalOriginalID?: null | string | undefined;
14
+ externalTransactionID?: null | string | undefined;
15
+ platform: BillingPlatform;
16
+ productID: string;
17
+ purchaseToken?: null | string | undefined;
18
+ rawPayload: unknown;
19
+ status: BillingSubscriptionStatus;
20
+ storeProductID: string;
21
+ tier: AccountTier;
22
+ userID: string;
23
+ }
24
+ export interface StoreTransactionRecordInput {
25
+ eventType: string;
26
+ externalTransactionID?: null | string | undefined;
27
+ rawPayload: unknown;
28
+ subscriptionID: string;
29
+ userID: string;
30
+ }
10
31
  /** Internal record that includes the hash algorithm discriminator. */
11
32
  export interface InternalUserRecord extends UserRecord {
12
33
  hashAlgo: string;
@@ -100,6 +121,8 @@ export declare class Database extends EventEmitter {
100
121
  markUserSeen(user: UserRecord): Promise<void>;
101
122
  /** Deletes server-side mail older than the configured retention window. */
102
123
  pruneExpiredMail(): Promise<void>;
124
+ recalculateStoreEntitlements(userID: string): Promise<AccountEntitlements>;
125
+ recordStoreTransaction(input: StoreTransactionRecordInput): Promise<void>;
103
126
  recoverDevice(owner: string, payload: DevicePayload, passkeyApproval?: DevicePasskeyApprovalInput): Promise<{
104
127
  device: Device;
105
128
  revokedDeviceIDs: string[];
@@ -111,6 +134,7 @@ export declare class Database extends EventEmitter {
111
134
  userID: string;
112
135
  }): Promise<boolean>;
113
136
  replacePreKey(userID: string, deviceID: string, preKey: PreKeysWS): Promise<void>;
137
+ retrieveAccountEntitlements(userID: string): Promise<AccountEntitlements>;
114
138
  /**
115
139
  * Retrives a list of users that should be notified when a specific resourceID
116
140
  * experiences changes.
@@ -118,6 +142,8 @@ export declare class Database extends EventEmitter {
118
142
  * @param resourceID
119
143
  */
120
144
  retrieveAffectedUsers(resourceID: string): Promise<UserRecord[]>;
145
+ retrieveBillingAccountState(userID: string): Promise<BillingAccountState>;
146
+ retrieveBillingSubscriptions(userID: string): Promise<BillingSubscription[]>;
121
147
  retrieveChannel(channelID: string): Promise<Channel | null>;
122
148
  retrieveChannels(serverID: string): Promise<Channel[]>;
123
149
  retrieveDevice(deviceID: string): Promise<Device | null>;
@@ -159,6 +185,12 @@ export declare class Database extends EventEmitter {
159
185
  }>;
160
186
  retrieveServerInvites(serverID: string): Promise<Invite[]>;
161
187
  retrieveServers(userID: string): Promise<Server[]>;
188
+ retrieveStoreSubscriptionOwner(args: {
189
+ environment: BillingEnvironment;
190
+ externalOriginalID?: null | string | undefined;
191
+ platform: BillingPlatform;
192
+ purchaseToken?: null | string | undefined;
193
+ }): Promise<null | string>;
162
194
  retrieveUser(userIdentifier: string): Promise<InternalUserRecord | null>;
163
195
  /**
164
196
  * All devices for the given user ID(s), **no in-process cache** — a prior
@@ -177,6 +209,12 @@ export declare class Database extends EventEmitter {
177
209
  }[]): Promise<void>;
178
210
  saveNotificationSubscription(input: SaveNotificationSubscriptionInput): Promise<NotificationSubscription>;
179
211
  saveOTK(userID: string, deviceID: string, otks: PreKeysWS[]): Promise<void>;
212
+ setAccountEntitlementTier(userID: string, tier: AccountTier, options?: {
213
+ expiresAt?: null | string | undefined;
214
+ source?: AccountEntitlementSource | undefined;
215
+ }): Promise<AccountEntitlements>;
216
+ upsertStoreSubscription(input: StoreSubscriptionUpsertInput): Promise<BillingSubscription>;
217
+ private findExistingStoreSubscription;
180
218
  private init;
181
219
  private mailSqlEntry;
182
220
  }
package/dist/Database.js CHANGED
@@ -12,13 +12,13 @@ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExte
12
12
  return path;
13
13
  };
14
14
  import { EventEmitter } from "events";
15
- import { pbkdf2Sync } from "node:crypto";
15
+ import { createHash, pbkdf2Sync } from "node:crypto";
16
16
  import { statSync } from "node:fs";
17
17
  import * as fs from "node:fs/promises";
18
18
  import path from "node:path";
19
19
  import { fileURLToPath, pathToFileURL } from "node:url";
20
20
  import { fipsEcdhRawPublicKeyFromEcdsaSpkiAsync, getCryptoProfile, XUtils, } from "@vex-chat/crypto";
21
- import { MailType } from "@vex-chat/types";
21
+ import { AccountEntitlementSourceSchema, AccountTierSchema, BillingEnvironmentSchema, BillingPlatformSchema, BillingSubscriptionStatusSchema, buildAccountEntitlements, MailType, } from "@vex-chat/types";
22
22
  import argon2 from "argon2";
23
23
  import { serverMailRetentionCutoffIso } from "./mailRetention.js";
24
24
  /**
@@ -623,6 +623,65 @@ export class Database extends EventEmitter {
623
623
  .where("time", "<", cutoff)
624
624
  .executeTakeFirst();
625
625
  }
626
+ async recalculateStoreEntitlements(userID) {
627
+ const subscriptions = await this.retrieveBillingSubscriptions(userID);
628
+ const nowMs = Date.now();
629
+ const active = subscriptions
630
+ .filter((subscription) => billingStatusCarriesEntitlement(subscription.status))
631
+ .filter((subscription) => {
632
+ if (!subscription.expiresAt) {
633
+ return true;
634
+ }
635
+ const expiresAtMs = Date.parse(subscription.expiresAt);
636
+ return Number.isFinite(expiresAtMs) && expiresAtMs > nowMs;
637
+ })
638
+ .sort((a, b) => {
639
+ const tierDelta = accountTierRank(b.tier) - accountTierRank(a.tier);
640
+ if (tierDelta !== 0) {
641
+ return tierDelta;
642
+ }
643
+ return expiryRank(b.expiresAt) - expiryRank(a.expiresAt);
644
+ });
645
+ const best = active[0];
646
+ if (best) {
647
+ return this.setAccountEntitlementTier(userID, best.tier, {
648
+ expiresAt: best.expiresAt,
649
+ source: "store",
650
+ });
651
+ }
652
+ const current = await this.retrieveAccountEntitlements(userID);
653
+ if (current.source !== "store") {
654
+ return current;
655
+ }
656
+ return this.setAccountEntitlementTier(userID, "free", {
657
+ expiresAt: null,
658
+ source: "store",
659
+ });
660
+ }
661
+ async recordStoreTransaction(input) {
662
+ const subscription = await this.db
663
+ .selectFrom("billing_store_subscriptions")
664
+ .selectAll()
665
+ .where("subscriptionID", "=", input.subscriptionID)
666
+ .limit(1)
667
+ .executeTakeFirstOrThrow();
668
+ await this.db
669
+ .insertInto("billing_store_transactions")
670
+ .values({
671
+ environment: subscription.environment,
672
+ eventType: input.eventType,
673
+ externalTransactionID: input.externalTransactionID ?? null,
674
+ platform: subscription.platform,
675
+ processedAt: new Date().toISOString(),
676
+ purchaseTokenHash: subscription.purchaseTokenHash,
677
+ rawPayload: JSON.stringify(input.rawPayload),
678
+ storeProductID: subscription.storeProductID,
679
+ subscriptionID: input.subscriptionID,
680
+ transactionID: crypto.randomUUID(),
681
+ userID: input.userID,
682
+ })
683
+ .execute();
684
+ }
626
685
  async recoverDevice(owner, payload, passkeyApproval) {
627
686
  const now = new Date().toISOString();
628
687
  const device = {
@@ -735,6 +794,24 @@ export class Database extends EventEmitter {
735
794
  await trx.insertInto("preKeys").values(newPreKey).execute();
736
795
  });
737
796
  }
797
+ async retrieveAccountEntitlements(userID) {
798
+ const row = await this.db
799
+ .selectFrom("account_entitlements")
800
+ .selectAll()
801
+ .where("userID", "=", userID)
802
+ .limit(1)
803
+ .executeTakeFirst();
804
+ if (!row) {
805
+ return buildAccountEntitlements({ userID });
806
+ }
807
+ return buildAccountEntitlements({
808
+ expiresAt: row.expiresAt,
809
+ refreshedAt: row.updatedAt,
810
+ source: parseAccountEntitlementSource(row.source),
811
+ tier: parseAccountTier(row.tier),
812
+ userID,
813
+ });
814
+ }
738
815
  /**
739
816
  * Retrives a list of users that should be notified when a specific resourceID
740
817
  * experiences changes.
@@ -752,6 +829,21 @@ export class Database extends EventEmitter {
752
829
  }
753
830
  return users;
754
831
  }
832
+ async retrieveBillingAccountState(userID) {
833
+ return {
834
+ entitlements: await this.retrieveAccountEntitlements(userID),
835
+ subscriptions: await this.retrieveBillingSubscriptions(userID),
836
+ };
837
+ }
838
+ async retrieveBillingSubscriptions(userID) {
839
+ const rows = await this.db
840
+ .selectFrom("billing_store_subscriptions")
841
+ .selectAll()
842
+ .where("userID", "=", userID)
843
+ .orderBy("updatedAt", "desc")
844
+ .execute();
845
+ return rows.map(toBillingSubscription);
846
+ }
755
847
  async retrieveChannel(channelID) {
756
848
  const channels = await this.db
757
849
  .selectFrom("channels")
@@ -1057,6 +1149,27 @@ export class Database extends EventEmitter {
1057
1149
  .execute();
1058
1150
  return rows.map(toServer);
1059
1151
  }
1152
+ async retrieveStoreSubscriptionOwner(args) {
1153
+ const purchaseTokenHash = args.purchaseToken
1154
+ ? billingPurchaseTokenHash(args.platform, args.environment, args.purchaseToken)
1155
+ : null;
1156
+ const existing = await this.findExistingStoreSubscription({
1157
+ environment: args.environment,
1158
+ externalOriginalID: args.externalOriginalID ?? null,
1159
+ platform: args.platform,
1160
+ purchaseTokenHash,
1161
+ });
1162
+ if (!existing) {
1163
+ return null;
1164
+ }
1165
+ const row = await this.db
1166
+ .selectFrom("billing_store_subscriptions")
1167
+ .select(["userID"])
1168
+ .where("subscriptionID", "=", existing.subscriptionID)
1169
+ .limit(1)
1170
+ .executeTakeFirst();
1171
+ return row?.userID ?? null;
1172
+ }
1060
1173
  // The identifier is matched as either a userID (UUID branch) or a
1061
1174
  // username (string branch). Username comparison is case-folded so
1062
1175
  // `User` and `user` resolve to the same row regardless of how the
@@ -1179,6 +1292,116 @@ export class Database extends EventEmitter {
1179
1292
  await this.db.insertInto("oneTimeKeys").values(newOTK).execute();
1180
1293
  }
1181
1294
  }
1295
+ async setAccountEntitlementTier(userID, tier, options) {
1296
+ const parsedTier = AccountTierSchema.parse(tier);
1297
+ const source = AccountEntitlementSourceSchema.parse(options?.source ?? "dev_override");
1298
+ const expiresAt = options?.expiresAt ?? null;
1299
+ const updatedAt = new Date().toISOString();
1300
+ await this.db
1301
+ .insertInto("account_entitlements")
1302
+ .values({
1303
+ expiresAt,
1304
+ source,
1305
+ tier: parsedTier,
1306
+ updatedAt,
1307
+ userID,
1308
+ })
1309
+ .onConflict((oc) => oc.column("userID").doUpdateSet({
1310
+ expiresAt,
1311
+ source,
1312
+ tier: parsedTier,
1313
+ updatedAt,
1314
+ }))
1315
+ .execute();
1316
+ return buildAccountEntitlements({
1317
+ expiresAt,
1318
+ refreshedAt: updatedAt,
1319
+ source,
1320
+ tier: parsedTier,
1321
+ userID,
1322
+ });
1323
+ }
1324
+ async upsertStoreSubscription(input) {
1325
+ const now = new Date().toISOString();
1326
+ const purchaseTokenHash = input.purchaseToken
1327
+ ? billingPurchaseTokenHash(input.platform, input.environment, input.purchaseToken)
1328
+ : null;
1329
+ const existing = await this.findExistingStoreSubscription({
1330
+ environment: input.environment,
1331
+ externalOriginalID: input.externalOriginalID ?? null,
1332
+ platform: input.platform,
1333
+ purchaseTokenHash,
1334
+ });
1335
+ const subscriptionID = existing?.subscriptionID ?? crypto.randomUUID();
1336
+ const row = {
1337
+ environment: input.environment,
1338
+ expiresAt: input.expiresAt,
1339
+ externalOriginalID: input.externalOriginalID ?? null,
1340
+ externalTransactionID: input.externalTransactionID ?? null,
1341
+ platform: input.platform,
1342
+ productID: input.productID,
1343
+ purchaseToken: input.purchaseToken ?? null,
1344
+ purchaseTokenHash,
1345
+ rawPayload: JSON.stringify(input.rawPayload),
1346
+ status: input.status,
1347
+ storeProductID: input.storeProductID,
1348
+ tier: input.tier,
1349
+ updatedAt: now,
1350
+ userID: input.userID,
1351
+ };
1352
+ if (existing) {
1353
+ await this.db
1354
+ .updateTable("billing_store_subscriptions")
1355
+ .set(row)
1356
+ .where("subscriptionID", "=", subscriptionID)
1357
+ .execute();
1358
+ }
1359
+ else {
1360
+ await this.db
1361
+ .insertInto("billing_store_subscriptions")
1362
+ .values({
1363
+ ...row,
1364
+ createdAt: now,
1365
+ subscriptionID,
1366
+ })
1367
+ .execute();
1368
+ }
1369
+ const saved = await this.db
1370
+ .selectFrom("billing_store_subscriptions")
1371
+ .selectAll()
1372
+ .where("subscriptionID", "=", subscriptionID)
1373
+ .executeTakeFirstOrThrow();
1374
+ return toBillingSubscription(saved);
1375
+ }
1376
+ async findExistingStoreSubscription(args) {
1377
+ if (args.externalOriginalID) {
1378
+ const byOriginal = await this.db
1379
+ .selectFrom("billing_store_subscriptions")
1380
+ .select(["subscriptionID"])
1381
+ .where("platform", "=", args.platform)
1382
+ .where("environment", "=", args.environment)
1383
+ .where("externalOriginalID", "=", args.externalOriginalID)
1384
+ .limit(1)
1385
+ .executeTakeFirst();
1386
+ if (byOriginal) {
1387
+ return byOriginal;
1388
+ }
1389
+ }
1390
+ if (args.purchaseTokenHash) {
1391
+ const byToken = await this.db
1392
+ .selectFrom("billing_store_subscriptions")
1393
+ .select(["subscriptionID"])
1394
+ .where("platform", "=", args.platform)
1395
+ .where("environment", "=", args.environment)
1396
+ .where("purchaseTokenHash", "=", args.purchaseTokenHash)
1397
+ .limit(1)
1398
+ .executeTakeFirst();
1399
+ if (byToken) {
1400
+ return byToken;
1401
+ }
1402
+ }
1403
+ return null;
1404
+ }
1182
1405
  async init() {
1183
1406
  const migrator = new Migrator({
1184
1407
  db: this.db,
@@ -1246,6 +1469,38 @@ export async function verifyPassword(password, stored) {
1246
1469
  const valid = timingSafeEqual(computed, storedBuf);
1247
1470
  return { needsRehash: valid, valid };
1248
1471
  }
1472
+ function accountTierRank(tier) {
1473
+ switch (tier) {
1474
+ case "free":
1475
+ return 0;
1476
+ case "plus":
1477
+ return 1;
1478
+ case "pro":
1479
+ return 2;
1480
+ }
1481
+ }
1482
+ function billingEnvironmentFromRow(environment) {
1483
+ const parsed = BillingEnvironmentSchema.safeParse(environment);
1484
+ return parsed.success ? parsed.data : "production";
1485
+ }
1486
+ function billingPlatformFromRow(platform) {
1487
+ const parsed = BillingPlatformSchema.safeParse(platform);
1488
+ return parsed.success ? parsed.data : "apple_app_store";
1489
+ }
1490
+ function billingPurchaseTokenHash(platform, environment, token) {
1491
+ return createHash("sha256")
1492
+ .update(`${platform}:${environment}:${token}`)
1493
+ .digest("hex");
1494
+ }
1495
+ function billingStatusCarriesEntitlement(status) {
1496
+ return (status === "active" ||
1497
+ status === "billing_retry" ||
1498
+ status === "grace_period");
1499
+ }
1500
+ function billingSubscriptionStatusFromRow(status) {
1501
+ const parsed = BillingSubscriptionStatusSchema.safeParse(status);
1502
+ return parsed.success ? parsed.data : "pending";
1503
+ }
1249
1504
  function decodeNotificationEvents(events) {
1250
1505
  try {
1251
1506
  const parsed = JSON.parse(events);
@@ -1263,6 +1518,13 @@ function encodeNotificationEvents(events) {
1263
1518
  const unique = [...new Set(events.map((event) => event.trim()))].filter((event) => event.length > 0);
1264
1519
  return JSON.stringify(unique.length > 0 ? unique : ["mail"]);
1265
1520
  }
1521
+ function expiryRank(expiresAt) {
1522
+ if (!expiresAt) {
1523
+ return Number.MAX_SAFE_INTEGER;
1524
+ }
1525
+ const value = Date.parse(expiresAt);
1526
+ return Number.isFinite(value) ? value : 0;
1527
+ }
1266
1528
  // Mirrors `Spire.normalizeRegistrationUsername` — kept in sync so a
1267
1529
  // caller invoking `createUser` directly (e.g. tests, future internal
1268
1530
  // flows) gets the same lowercase canonicalization the public
@@ -1276,6 +1538,27 @@ function normalizeRegistrationUsername(providedUsername, userID) {
1276
1538
  const seed = userID.replaceAll("-", "").slice(0, 12);
1277
1539
  return `key_${seed}`;
1278
1540
  }
1541
+ function parseAccountEntitlementSource(source) {
1542
+ const parsed = AccountEntitlementSourceSchema.safeParse(source);
1543
+ return parsed.success ? parsed.data : "default";
1544
+ }
1545
+ function parseAccountTier(tier) {
1546
+ const parsed = AccountTierSchema.safeParse(tier);
1547
+ return parsed.success ? parsed.data : "free";
1548
+ }
1549
+ function toBillingSubscription(row) {
1550
+ return {
1551
+ environment: billingEnvironmentFromRow(row.environment),
1552
+ expiresAt: row.expiresAt,
1553
+ platform: billingPlatformFromRow(row.platform),
1554
+ productID: row.productID,
1555
+ status: billingSubscriptionStatusFromRow(row.status),
1556
+ storeProductID: row.storeProductID,
1557
+ subscriptionID: row.subscriptionID,
1558
+ tier: parseAccountTier(row.tier),
1559
+ updatedAt: row.updatedAt,
1560
+ };
1561
+ }
1279
1562
  function toDevice(row) {
1280
1563
  return { ...row, deleted: Boolean(row.deleted) };
1281
1564
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Database.js","sourceRoot":"","sources":["../src/Database.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Database.js","sourceRoot":"","sources":["../src/Database.ts"],"names":[],"mappings":"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"}