@softure-ai/billing 0.1.7 → 0.1.8
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/CHANGELOG.md +17 -0
- package/README.md +75 -16
- package/dist/contract.d.ts +19 -0
- package/dist/contract.d.ts.map +1 -1
- package/dist/contract.js +1 -0
- package/dist/contract.js.map +1 -1
- package/dist/fields.d.ts +2 -0
- package/dist/fields.d.ts.map +1 -1
- package/dist/fields.js +2 -0
- package/dist/fields.js.map +1 -1
- package/dist/index.d.ts +19 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/messages/en.d.ts +17 -0
- package/dist/messages/en.d.ts.map +1 -1
- package/dist/messages/en.js +17 -0
- package/dist/messages/en.js.map +1 -1
- package/dist/messages/index.d.ts +36 -2
- package/dist/messages/index.d.ts.map +1 -1
- package/dist/messages/index.js.map +1 -1
- package/dist/messages/pl.d.ts.map +1 -1
- package/dist/messages/pl.js +17 -0
- package/dist/messages/pl.js.map +1 -1
- package/dist/next/actions.d.ts +8 -1
- package/dist/next/actions.d.ts.map +1 -1
- package/dist/next/actions.js +37 -1
- package/dist/next/actions.js.map +1 -1
- package/dist/next/index.d.ts +1 -1
- package/dist/next/index.d.ts.map +1 -1
- package/dist/next/index.js +1 -1
- package/dist/next/index.js.map +1 -1
- package/dist/next/pages.d.ts +13 -3
- package/dist/next/pages.d.ts.map +1 -1
- package/dist/next/pages.js +25 -8
- package/dist/next/pages.js.map +1 -1
- package/dist/schema.d.ts +109 -0
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +10 -2
- package/dist/schema.js.map +1 -1
- package/dist/scripts/entitlement-scripts.d.ts +2 -0
- package/dist/scripts/entitlement-scripts.d.ts.map +1 -1
- package/dist/scripts/entitlement-scripts.js +17 -5
- package/dist/scripts/entitlement-scripts.js.map +1 -1
- package/dist/server/entitlements.d.ts +23 -6
- package/dist/server/entitlements.d.ts.map +1 -1
- package/dist/server/entitlements.js +37 -6
- package/dist/server/entitlements.js.map +1 -1
- package/dist/server/grants.d.ts +13 -2
- package/dist/server/grants.d.ts.map +1 -1
- package/dist/server/grants.js +11 -2
- package/dist/server/grants.js.map +1 -1
- package/dist/server/health.d.ts.map +1 -1
- package/dist/server/health.js +2 -1
- package/dist/server/health.js.map +1 -1
- package/dist/server/index.d.ts +3 -2
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +1 -0
- package/dist/server/index.js.map +1 -1
- package/dist/server/privacy.d.ts +9 -0
- package/dist/server/privacy.d.ts.map +1 -1
- package/dist/server/privacy.js +19 -6
- package/dist/server/privacy.js.map +1 -1
- package/dist/server/trials.d.ts +22 -0
- package/dist/server/trials.d.ts.map +1 -0
- package/dist/server/trials.js +60 -0
- package/dist/server/trials.js.map +1 -0
- package/dist/ui/index.d.ts +1 -0
- package/dist/ui/index.d.ts.map +1 -1
- package/dist/ui/index.js +1 -0
- package/dist/ui/index.js.map +1 -1
- package/dist/ui/trial-form.d.ts +16 -0
- package/dist/ui/trial-form.d.ts.map +1 -0
- package/dist/ui/trial-form.js +25 -0
- package/dist/ui/trial-form.js.map +1 -0
- package/migrations/0010_record_trial_extensions_and_index_foreign_keys.sql +27 -0
- package/module.json +2 -2
- package/package.json +1 -1
- package/src/contract.ts +28 -0
- package/src/fields.ts +2 -0
- package/src/index.ts +7 -3
- package/src/messages/en.ts +17 -0
- package/src/messages/index.ts +2 -2
- package/src/messages/pl.ts +17 -0
- package/src/next/actions.ts +35 -2
- package/src/next/index.ts +9 -1
- package/src/next/pages.tsx +41 -6
- package/src/schema.ts +11 -2
- package/src/scripts/entitlement-scripts.ts +18 -5
- package/src/server/entitlements.ts +60 -6
- package/src/server/grants.ts +24 -3
- package/src/server/health.ts +2 -1
- package/src/server/index.ts +3 -0
- package/src/server/privacy.ts +29 -6
- package/src/server/trials.ts +70 -0
- package/src/ui/index.ts +1 -0
- package/src/ui/trial-form.tsx +80 -0
package/dist/schema.d.ts
CHANGED
|
@@ -1020,4 +1020,113 @@ export declare const manualGrants: import("drizzle-orm/pg-core").PgTableWithColu
|
|
|
1020
1020
|
};
|
|
1021
1021
|
dialect: "pg";
|
|
1022
1022
|
}>;
|
|
1023
|
+
export declare const trialExtensions: import("drizzle-orm/pg-core").PgTableWithColumns<{
|
|
1024
|
+
name: "trial_extensions";
|
|
1025
|
+
schema: "billing";
|
|
1026
|
+
columns: {
|
|
1027
|
+
id: import("drizzle-orm/pg-core").PgColumn<{
|
|
1028
|
+
name: "id";
|
|
1029
|
+
tableName: "trial_extensions";
|
|
1030
|
+
dataType: "string";
|
|
1031
|
+
columnType: "PgUUID";
|
|
1032
|
+
data: string;
|
|
1033
|
+
driverParam: string;
|
|
1034
|
+
notNull: true;
|
|
1035
|
+
hasDefault: true;
|
|
1036
|
+
isPrimaryKey: true;
|
|
1037
|
+
isAutoincrement: false;
|
|
1038
|
+
hasRuntimeDefault: false;
|
|
1039
|
+
enumValues: undefined;
|
|
1040
|
+
baseColumn: never;
|
|
1041
|
+
identity: undefined;
|
|
1042
|
+
generated: undefined;
|
|
1043
|
+
}, {}, {}>;
|
|
1044
|
+
userId: import("drizzle-orm/pg-core").PgColumn<{
|
|
1045
|
+
name: "user_id";
|
|
1046
|
+
tableName: "trial_extensions";
|
|
1047
|
+
dataType: "string";
|
|
1048
|
+
columnType: "PgUUID";
|
|
1049
|
+
data: string;
|
|
1050
|
+
driverParam: string;
|
|
1051
|
+
notNull: true;
|
|
1052
|
+
hasDefault: false;
|
|
1053
|
+
isPrimaryKey: false;
|
|
1054
|
+
isAutoincrement: false;
|
|
1055
|
+
hasRuntimeDefault: false;
|
|
1056
|
+
enumValues: undefined;
|
|
1057
|
+
baseColumn: never;
|
|
1058
|
+
identity: undefined;
|
|
1059
|
+
generated: undefined;
|
|
1060
|
+
}, {}, {}>;
|
|
1061
|
+
extendedBy: import("drizzle-orm/pg-core").PgColumn<{
|
|
1062
|
+
name: "extended_by";
|
|
1063
|
+
tableName: "trial_extensions";
|
|
1064
|
+
dataType: "string";
|
|
1065
|
+
columnType: "PgUUID";
|
|
1066
|
+
data: string;
|
|
1067
|
+
driverParam: string;
|
|
1068
|
+
notNull: false;
|
|
1069
|
+
hasDefault: false;
|
|
1070
|
+
isPrimaryKey: false;
|
|
1071
|
+
isAutoincrement: false;
|
|
1072
|
+
hasRuntimeDefault: false;
|
|
1073
|
+
enumValues: undefined;
|
|
1074
|
+
baseColumn: never;
|
|
1075
|
+
identity: undefined;
|
|
1076
|
+
generated: undefined;
|
|
1077
|
+
}, {}, {}>;
|
|
1078
|
+
extendedAt: import("drizzle-orm/pg-core").PgColumn<{
|
|
1079
|
+
name: "extended_at";
|
|
1080
|
+
tableName: "trial_extensions";
|
|
1081
|
+
dataType: "date";
|
|
1082
|
+
columnType: "PgTimestamp";
|
|
1083
|
+
data: Date;
|
|
1084
|
+
driverParam: string;
|
|
1085
|
+
notNull: true;
|
|
1086
|
+
hasDefault: false;
|
|
1087
|
+
isPrimaryKey: false;
|
|
1088
|
+
isAutoincrement: false;
|
|
1089
|
+
hasRuntimeDefault: false;
|
|
1090
|
+
enumValues: undefined;
|
|
1091
|
+
baseColumn: never;
|
|
1092
|
+
identity: undefined;
|
|
1093
|
+
generated: undefined;
|
|
1094
|
+
}, {}, {}>;
|
|
1095
|
+
previousEndsAt: import("drizzle-orm/pg-core").PgColumn<{
|
|
1096
|
+
name: "previous_ends_at";
|
|
1097
|
+
tableName: "trial_extensions";
|
|
1098
|
+
dataType: "date";
|
|
1099
|
+
columnType: "PgTimestamp";
|
|
1100
|
+
data: Date;
|
|
1101
|
+
driverParam: string;
|
|
1102
|
+
notNull: true;
|
|
1103
|
+
hasDefault: false;
|
|
1104
|
+
isPrimaryKey: false;
|
|
1105
|
+
isAutoincrement: false;
|
|
1106
|
+
hasRuntimeDefault: false;
|
|
1107
|
+
enumValues: undefined;
|
|
1108
|
+
baseColumn: never;
|
|
1109
|
+
identity: undefined;
|
|
1110
|
+
generated: undefined;
|
|
1111
|
+
}, {}, {}>;
|
|
1112
|
+
endsAt: import("drizzle-orm/pg-core").PgColumn<{
|
|
1113
|
+
name: "ends_at";
|
|
1114
|
+
tableName: "trial_extensions";
|
|
1115
|
+
dataType: "date";
|
|
1116
|
+
columnType: "PgTimestamp";
|
|
1117
|
+
data: Date;
|
|
1118
|
+
driverParam: string;
|
|
1119
|
+
notNull: true;
|
|
1120
|
+
hasDefault: false;
|
|
1121
|
+
isPrimaryKey: false;
|
|
1122
|
+
isAutoincrement: false;
|
|
1123
|
+
hasRuntimeDefault: false;
|
|
1124
|
+
enumValues: undefined;
|
|
1125
|
+
baseColumn: never;
|
|
1126
|
+
identity: undefined;
|
|
1127
|
+
generated: undefined;
|
|
1128
|
+
}, {}, {}>;
|
|
1129
|
+
};
|
|
1130
|
+
dialect: "pg";
|
|
1131
|
+
}>;
|
|
1023
1132
|
//# sourceMappingURL=schema.d.ts.map
|
package/dist/schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,aAAa,mDAAsB,CAAC;AAEjD,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOvB,CAAC;AAEH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoBnB,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAW1B,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAc1B,CAAC;AAEH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAevB,CAAC"}
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,aAAa,mDAAsB,CAAC;AAEjD,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOvB,CAAC;AAEH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoBnB,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAW1B,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAc1B,CAAC;AAEH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAevB,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAO1B,CAAC"}
|
package/dist/schema.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// Drizzle view of the module's tables (migrations/0001_create_entitlements.sql,
|
|
2
2
|
// 0002_create_payments.sql, 0003_record_payment_grants.sql, 0004_create_requests_and_grants.sql,
|
|
3
3
|
// 0005_record_refunded_amounts.sql, 0006_record_request_handover_and_prices.sql,
|
|
4
|
-
// 0007_record_failed_refunds.sql, 0008_record_request_handover_claims.sql
|
|
5
|
-
// 0009_record_pending_charge_states.sql).
|
|
4
|
+
// 0007_record_failed_refunds.sql, 0008_record_request_handover_claims.sql,
|
|
5
|
+
// 0009_record_pending_charge_states.sql and 0010_record_trial_extensions_and_index_foreign_keys.sql).
|
|
6
6
|
// The migrations are the source of truth; this file only types the queries.
|
|
7
7
|
import { bigint, boolean, integer, pgSchema, primaryKey, text, timestamp, uuid } from "drizzle-orm/pg-core";
|
|
8
8
|
export const billingSchema = pgSchema("billing");
|
|
@@ -74,4 +74,12 @@ export const manualGrants = billingSchema.table("manual_grants", {
|
|
|
74
74
|
amount: bigint("amount", { mode: "number" }),
|
|
75
75
|
currency: text("currency"),
|
|
76
76
|
});
|
|
77
|
+
export const trialExtensions = billingSchema.table("trial_extensions", {
|
|
78
|
+
id: uuid("id").primaryKey().defaultRandom(),
|
|
79
|
+
userId: uuid("user_id").notNull(),
|
|
80
|
+
extendedBy: uuid("extended_by"),
|
|
81
|
+
extendedAt: timestamp("extended_at", { withTimezone: true }).notNull(),
|
|
82
|
+
previousEndsAt: timestamp("previous_ends_at", { withTimezone: true }).notNull(),
|
|
83
|
+
endsAt: timestamp("ends_at", { withTimezone: true }).notNull(),
|
|
84
|
+
});
|
|
77
85
|
//# sourceMappingURL=schema.js.map
|
package/dist/schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,iGAAiG;AACjG,iFAAiF;AACjF,
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,8 @@ import { type Clock, type SoftureConfig } from "@softure-ai/core";
|
|
|
2
2
|
import { type OpsScript } from "@softure-ai/ops/scripts";
|
|
3
3
|
export interface ImportEntitlementsScriptArgs {
|
|
4
4
|
readonly file: string;
|
|
5
|
+
/** Store each row as given (`importEntitlement`'s `replace` mode) instead of merging it. */
|
|
6
|
+
readonly exact?: true;
|
|
5
7
|
}
|
|
6
8
|
export type PinTrialsScriptArgs = Record<string, never>;
|
|
7
9
|
export interface EntitlementScriptOptions {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entitlement-scripts.d.ts","sourceRoot":"","sources":["../../src/scripts/entitlement-scripts.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"entitlement-scripts.d.ts","sourceRoot":"","sources":["../../src/scripts/entitlement-scripts.ts"],"names":[],"mappings":"AASA,OAAO,EAAmB,KAAK,KAAK,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEnF,OAAO,EAAoC,KAAK,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAO3F,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,4FAA4F;IAC5F,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC;CACvB;AAED,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAExD,MAAM,WAAW,wBAAwB;IACvC,6FAA6F;IAC7F,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;CACxB;AAED,+DAA+D;AAC/D,eAAO,MAAM,eAAe,QAAS,CAAC;AAiGtC,6GAA6G;AAC7G,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,GAAE,wBAA6B,GAAG,SAAS,CAAC,4BAA4B,CAAC,CA4CrJ;AAWD,kGAAkG;AAClG,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,GAAE,wBAA6B,GAAG,SAAS,CAAC,mBAAmB,CAAC,CAcnI"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
// The operator's tools for turning billing on for accounts that already exist: safe ops scripts
|
|
2
2
|
// (`@softure-ai/ops/scripts`), dry run by default, `--commit` writes. `import-entitlements` records
|
|
3
3
|
// what another system knew (trial ends, paid periods, lifetime access) from a JSON file through
|
|
4
|
-
// `importEntitlement
|
|
4
|
+
// `importEntitlement`, merged (never shorter) or, with `--exact`, as given for accounts billing has
|
|
5
|
+
// no row of yet; `pin-trials` writes every derived trial into a row before a config change
|
|
5
6
|
// would move it (`pinDerivedTrials`). Reports and refusals carry counts and row numbers, never an
|
|
6
7
|
// email.
|
|
7
8
|
import { readFile } from "node:fs/promises";
|
|
@@ -19,6 +20,7 @@ export const MAX_IMPORT_ROWS = 50_000;
|
|
|
19
20
|
const MAX_LISTED = 10;
|
|
20
21
|
const importArgs = z.strictObject({
|
|
21
22
|
file: z.string().min(1, "--file=<path to a JSON file> is required"),
|
|
23
|
+
exact: z.literal(true, "--exact takes no value").optional(),
|
|
22
24
|
});
|
|
23
25
|
const pinArgs = z.strictObject({});
|
|
24
26
|
const instant = z.iso
|
|
@@ -103,8 +105,8 @@ export function createImportEntitlementsScript(config, options = {}) {
|
|
|
103
105
|
const clock = options.clock ?? systemClock;
|
|
104
106
|
return defineOpsScript({
|
|
105
107
|
name: "import-entitlements",
|
|
106
|
-
description: "Records the trial ends, paid periods and lifetime access in a JSON file for the accounts it names by email; never shortens access.",
|
|
107
|
-
usage: ["--file=<path to a JSON array of { email, trialEndsAt?, paidUntil?, isLifetime? }>"],
|
|
108
|
+
description: "Records the trial ends, paid periods and lifetime access in a JSON file for the accounts it names by email; never shortens access, except with --exact, which stores each row as given for accounts billing has no row of yet.",
|
|
109
|
+
usage: ["--file=<path to a JSON array of { email, trialEndsAt?, paidUntil?, isLifetime? }>", "--exact (store each row as given; refused for an account that already has a different row)"],
|
|
108
110
|
args: importArgs,
|
|
109
111
|
run: async (tx, args) => {
|
|
110
112
|
const ctx = { db: tx, clock, config };
|
|
@@ -126,16 +128,26 @@ export function createImportEntitlementsScript(config, options = {}) {
|
|
|
126
128
|
if (unknown.length > 0)
|
|
127
129
|
return refuseOpsScript(`${describeRows(unknown)} name no account; nothing was imported`);
|
|
128
130
|
const before = await summarize(ctx, userIds);
|
|
131
|
+
const mode = args.exact === true ? "replace" : "merge";
|
|
132
|
+
const existing = [];
|
|
129
133
|
for (const [index, row] of file.rows.entries()) {
|
|
130
134
|
const userId = userIds[index];
|
|
131
135
|
// One id per row: every row found an account above.
|
|
132
136
|
if (userId === undefined)
|
|
133
137
|
throw new Error(`import-entitlements: row ${String(index + 1)} lost its account`);
|
|
134
|
-
const imported = await importEntitlement(ctx, { userId, trialEndsAt: row.trialEndsAt, paidUntil: row.paidUntil, isLifetime: row.isLifetime });
|
|
138
|
+
const imported = await importEntitlement(ctx, { userId, trialEndsAt: row.trialEndsAt, paidUntil: row.paidUntil, isLifetime: row.isLifetime, mode });
|
|
139
|
+
if (imported.ok)
|
|
140
|
+
continue;
|
|
141
|
+
if (imported.error === "billing.entitlement_exists")
|
|
142
|
+
existing.push(index + 1);
|
|
135
143
|
// Erased between the lookup and the change's lock.
|
|
136
|
-
|
|
144
|
+
else
|
|
137
145
|
return refuseOpsScript(`${describeRows([index + 1])} names an account that was deleted meanwhile; nothing was imported`);
|
|
138
146
|
}
|
|
147
|
+
// The refusal rolls the whole transaction back: the rows imported before it are undone too.
|
|
148
|
+
if (existing.length > 0) {
|
|
149
|
+
return refuseOpsScript(`${describeRows(existing)} name accounts that already have a different entitlement row (--exact imports only accounts billing has no row of yet); nothing was imported`);
|
|
150
|
+
}
|
|
139
151
|
return ok({ before, after: await summarize(ctx, userIds) });
|
|
140
152
|
},
|
|
141
153
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entitlement-scripts.js","sourceRoot":"","sources":["../../src/scripts/entitlement-scripts.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAChG,oGAAoG;AACpG,gGAAgG;AAChG,
|
|
1
|
+
{"version":3,"file":"entitlement-scripts.js","sourceRoot":"","sources":["../../src/scripts/entitlement-scripts.ts"],"names":[],"mappings":"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"}
|
|
@@ -44,20 +44,37 @@ export type EntitlementEventResolver = (record: EntitlementRecord, now: Date) =>
|
|
|
44
44
|
export declare function changeEntitlement(ctx: BillingContext, userId: string, event: EntitlementEvent | EntitlementEventResolver): Promise<Ok<Entitlement> | Err<BillingErrorCode>>;
|
|
45
45
|
export interface ImportEntitlementInput {
|
|
46
46
|
readonly userId: string;
|
|
47
|
-
/** The trial end the other system knew; omitted or null keeps the account's own. */
|
|
47
|
+
/** The trial end the other system knew; omitted or null keeps the account's own (its derived trial in `replace`). */
|
|
48
48
|
readonly trialEndsAt?: Date | null;
|
|
49
49
|
/** The end of the paid period it knew; omitted or null adds none. */
|
|
50
50
|
readonly paidUntil?: Date | null;
|
|
51
51
|
/** Whether it had lifetime access. */
|
|
52
52
|
readonly isLifetime?: boolean;
|
|
53
|
+
/**
|
|
54
|
+
* `merge` (the default) moves each end only later than the account's record. `replace` stores
|
|
55
|
+
* exactly what the other system knew, a trial shorter than the derived one included, and only for
|
|
56
|
+
* an account billing has no row of yet (an adoption).
|
|
57
|
+
*/
|
|
58
|
+
readonly mode?: "merge" | "replace";
|
|
53
59
|
}
|
|
60
|
+
export type ImportEntitlementError = "billing.account_unknown" | "billing.entitlement_exists";
|
|
54
61
|
/**
|
|
55
|
-
* Records what another system knew about an account (a trial end, a paid period, lifetime access)
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
*
|
|
62
|
+
* Records what another system knew about an account (a trial end, a paid period, lifetime access).
|
|
63
|
+
*
|
|
64
|
+
* `merge` (the default) goes through `changeEntitlement`: merged onto the account's current record,
|
|
65
|
+
* each end only moving later, so an import never takes access away and a repeat changes nothing.
|
|
66
|
+
*
|
|
67
|
+
* `replace` writes the record as given into the account's first row, so a migration is faithful: a
|
|
68
|
+
* trial the other system ended early stays ended. An account that already has a row is refused with
|
|
69
|
+
* `billing.entitlement_exists` and nothing is written, unless the row holds exactly that record (a
|
|
70
|
+
* repeat, which changes nothing).
|
|
71
|
+
*
|
|
72
|
+
* Neither is a recorded grant: it is not in the account's history. Database errors propagate.
|
|
59
73
|
*/
|
|
60
|
-
export declare function importEntitlement(ctx: BillingContext, input: ImportEntitlementInput
|
|
74
|
+
export declare function importEntitlement(ctx: BillingContext, input: ImportEntitlementInput & {
|
|
75
|
+
readonly mode?: "merge";
|
|
76
|
+
}): Promise<Ok<Entitlement> | Err<"billing.account_unknown">>;
|
|
77
|
+
export declare function importEntitlement(ctx: BillingContext, input: ImportEntitlementInput): Promise<Ok<Entitlement> | Err<ImportEntitlementError>>;
|
|
61
78
|
/**
|
|
62
79
|
* Writes the derived trial of every account without a row into a row (exactly what reads derive,
|
|
63
80
|
* `trial.startsAt` included), so a later change of `trial.days`, `trial.startsAt` or the time zone
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entitlements.d.ts","sourceRoot":"","sources":["../../src/server/entitlements.ts"],"names":[],"mappings":"AAKA,OAAO,EAAW,KAAK,GAAG,EAAE,KAAK,aAAa,EAAE,KAAK,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAClF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAGhD,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAMzG,MAAM,MAAM,cAAc,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;AAYtD,+DAA+D;AAC/D,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,GAAG,MAAM,GAAG,IAAI,CAOnF;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,EAAE,gBAAgB,EAAE,IAAI,GAAG,iBAAiB,CAG/G;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,kFAAkF;IAClF,QAAQ,CAAC,gBAAgB,EAAE,IAAI,CAAC;CACjC;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,GAAG,QAAQ,GAAG,OAAO,CAAC,EAAE,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,OAAO,CAAC,CAQ7I;AAED,mFAAmF;AACnF,wBAAsB,qBAAqB,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,GAAG,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAezI;AAED,oGAAoG;AACpG,wBAAsB,cAAc,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAGrG;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC,mBAAmB,GAAG,yBAAyB,CAAC,CAAC,CAI3J;AAYD,oFAAoF;AACpF,MAAM,MAAM,wBAAwB,GAAG,CAAC,MAAM,EAAE,iBAAiB,EAAE,GAAG,EAAE,IAAI,KAAK,gBAAgB,CAAC;AAElG;;;;;;;;GAQG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,cAAc,EACnB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,gBAAgB,GAAG,wBAAwB,GACjD,OAAO,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAmClD;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,
|
|
1
|
+
{"version":3,"file":"entitlements.d.ts","sourceRoot":"","sources":["../../src/server/entitlements.ts"],"names":[],"mappings":"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"}
|
|
@@ -146,13 +146,18 @@ export async function changeEntitlement(ctx, userId, event) {
|
|
|
146
146
|
return ok(resolveEntitlement(next.value, now, policy));
|
|
147
147
|
});
|
|
148
148
|
}
|
|
149
|
-
/**
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
149
|
+
/** The record a `replace` import stores: the input, with the derived trial when it names none. */
|
|
150
|
+
function getReplacedRecord(derived, input) {
|
|
151
|
+
return { trialEndsAt: input.trialEndsAt ?? derived.trialEndsAt, paidUntil: input.paidUntil ?? null, isLifetime: input.isLifetime ?? false };
|
|
152
|
+
}
|
|
153
|
+
function isSameRecord(first, second) {
|
|
154
|
+
return (first.trialEndsAt.getTime() === second.trialEndsAt.getTime() &&
|
|
155
|
+
(first.paidUntil?.getTime() ?? null) === (second.paidUntil?.getTime() ?? null) &&
|
|
156
|
+
first.isLifetime === second.isLifetime);
|
|
157
|
+
}
|
|
155
158
|
export async function importEntitlement(ctx, input) {
|
|
159
|
+
if (input.mode === "replace")
|
|
160
|
+
return replaceEntitlement(ctx, input);
|
|
156
161
|
const changed = await changeEntitlement(ctx, input.userId, {
|
|
157
162
|
type: "import",
|
|
158
163
|
trialEndsAt: input.trialEndsAt ?? null,
|
|
@@ -166,6 +171,32 @@ export async function importEntitlement(ctx, input) {
|
|
|
166
171
|
// An import event is never refused.
|
|
167
172
|
throw new Error(`@softure-ai/billing: importing an entitlement failed with ${changed.error}`);
|
|
168
173
|
}
|
|
174
|
+
/** The `replace` import: the account's first row, as given. */
|
|
175
|
+
async function replaceEntitlement(ctx, input) {
|
|
176
|
+
if (!isUserId(input.userId))
|
|
177
|
+
return err("billing.account_unknown");
|
|
178
|
+
return ctx.db.transaction(async (tx) => {
|
|
179
|
+
const now = ctx.clock.now();
|
|
180
|
+
const policy = getEntitlementPolicy(ctx.config);
|
|
181
|
+
// A shared lock: the account cannot be deleted under the import, as in `changeEntitlement`.
|
|
182
|
+
const [account] = await tx.select({ createdAt: users.createdAt }).from(users).where(eq(users.id, input.userId)).for("key share");
|
|
183
|
+
if (account === undefined)
|
|
184
|
+
return err("billing.account_unknown");
|
|
185
|
+
const record = getReplacedRecord(getDefaultRecord(ctx, account.createdAt), input);
|
|
186
|
+
const inserted = await tx
|
|
187
|
+
.insert(entitlements)
|
|
188
|
+
.values({ userId: input.userId, ...record, createdAt: now, updatedAt: now })
|
|
189
|
+
.onConflictDoNothing({ target: entitlements.userId })
|
|
190
|
+
.returning();
|
|
191
|
+
if (inserted.length > 0)
|
|
192
|
+
return ok(resolveEntitlement(record, now, policy));
|
|
193
|
+
// The row existed, or a concurrent change inserted it (the insert waited for it).
|
|
194
|
+
const stored = await lockStoredRecord(tx, input.userId);
|
|
195
|
+
if (stored !== undefined && isSameRecord(stored, record))
|
|
196
|
+
return ok(resolveEntitlement(stored, now, policy));
|
|
197
|
+
return err("billing.entitlement_exists");
|
|
198
|
+
});
|
|
199
|
+
}
|
|
169
200
|
/** How many accounts `pinDerivedTrials` reads and writes at a time. */
|
|
170
201
|
const PIN_BATCH_SIZE = 500;
|
|
171
202
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entitlements.js","sourceRoot":"","sources":["../../src/server/entitlements.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"entitlements.js","sourceRoot":"","sources":["../../src/server/entitlements.ts"],"names":[],"mappings":"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"}
|
package/dist/server/grants.d.ts
CHANGED
|
@@ -39,7 +39,10 @@ export interface RevokeManualGrantInput {
|
|
|
39
39
|
* existed. Database errors propagate.
|
|
40
40
|
*/
|
|
41
41
|
export declare function revokeManualGrant(ctx: BillingContext, input: RevokeManualGrantInput): Promise<Ok<Entitlement> | Err<Extract<AdminErrorCode, "billing.grant_revoked">>>;
|
|
42
|
-
/**
|
|
42
|
+
/**
|
|
43
|
+
* One line of an account's history: a grant typed in by an admin, a payment a provider reported, or
|
|
44
|
+
* a trial an admin extended.
|
|
45
|
+
*/
|
|
43
46
|
export type AccountHistoryEntry = {
|
|
44
47
|
readonly source: "manual";
|
|
45
48
|
readonly id: string;
|
|
@@ -66,9 +69,17 @@ export type AccountHistoryEntry = {
|
|
|
66
69
|
readonly refundedAt: Date | null;
|
|
67
70
|
/** The total refunded so far: part of `amount` while the payment is still paid. */
|
|
68
71
|
readonly refundedAmount: number;
|
|
72
|
+
} | {
|
|
73
|
+
readonly source: "trial";
|
|
74
|
+
readonly id: string;
|
|
75
|
+
/** When it was extended. */
|
|
76
|
+
readonly at: Date;
|
|
77
|
+
/** The trial end before and after the extension (first instants no longer covered). */
|
|
78
|
+
readonly previousEndsAt: Date;
|
|
79
|
+
readonly endsAt: Date;
|
|
69
80
|
};
|
|
70
81
|
/** How many entries of each source the history reads. */
|
|
71
82
|
export declare const ACCOUNT_HISTORY_LIMIT = 100;
|
|
72
|
-
/** The account's manual grants and
|
|
83
|
+
/** The account's manual grants, provider payments and trial extensions, newest first. Database errors propagate. */
|
|
73
84
|
export declare function getAccountHistory(ctx: Pick<BillingContext, "db">, userId: string): Promise<readonly AccountHistoryEntry[]>;
|
|
74
85
|
//# sourceMappingURL=grants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grants.d.ts","sourceRoot":"","sources":["../../src/server/grants.ts"],"names":[],"mappings":"AAOA,OAAO,EAAW,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAE9D,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3F,OAAO,EAA4C,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAOlG,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,qEAAqE;IACrE,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,iFAAiF;IACjF,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,gDAAgD;IAChD,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;CACnC;AAED,MAAM,MAAM,sBAAsB,GAAG,sBAAsB,GAAG,yBAAyB,GAAG,yBAAyB,GAAG,wBAAwB,CAAC;AAE/I;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,EAAE,CAAC,iBAAiB,CAAC,GAAG,GAAG,CAAC,sBAAsB,CAAC,CAAC,CA0DxJ;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED,8FAA8F;AAC9F,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,wBAAwB,GAAG,OAAO,CAAC,EAAE,CAAC,iBAAiB,CAAC,GAAG,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAI5J;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,uBAAuB,CAAC,CAAC,CAAC,CA2B5K;AAED
|
|
1
|
+
{"version":3,"file":"grants.d.ts","sourceRoot":"","sources":["../../src/server/grants.ts"],"names":[],"mappings":"AAOA,OAAO,EAAW,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAE9D,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3F,OAAO,EAA4C,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAOlG,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,qEAAqE;IACrE,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,iFAAiF;IACjF,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,gDAAgD;IAChD,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;CACnC;AAED,MAAM,MAAM,sBAAsB,GAAG,sBAAsB,GAAG,yBAAyB,GAAG,yBAAyB,GAAG,wBAAwB,CAAC;AAE/I;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,EAAE,CAAC,iBAAiB,CAAC,GAAG,GAAG,CAAC,sBAAsB,CAAC,CAAC,CA0DxJ;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED,8FAA8F;AAC9F,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,wBAAwB,GAAG,OAAO,CAAC,EAAE,CAAC,iBAAiB,CAAC,GAAG,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAI5J;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,uBAAuB,CAAC,CAAC,CAAC,CA2B5K;AAED;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAC3B;IACE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;IAChC,8CAA8C;IAC9C,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,6EAA6E;IAC7E,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;CAClC,GACD;IACE,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB,sDAAsD;IACtD,QAAQ,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC;IACrC,QAAQ,CAAC,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;IACjC,mFAAmF;IACnF,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC,GACD;IACE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB,uFAAuF;IACvF,QAAQ,CAAC,cAAc,EAAE,IAAI,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;CACvB,CAAC;AAEN,yDAAyD;AACzD,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAEzC,oHAAoH;AACpH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,mBAAmB,EAAE,CAAC,CA8ChI"}
|
package/dist/server/grants.js
CHANGED
|
@@ -8,7 +8,7 @@ import { users } from "@softure-ai/auth";
|
|
|
8
8
|
import { err, ok } from "@softure-ai/core";
|
|
9
9
|
import { and, desc, eq } from "drizzle-orm";
|
|
10
10
|
import { findPlan } from "../plans.js";
|
|
11
|
-
import { entitlements, manualGrants, paymentRequests, payments } from "../schema.js";
|
|
11
|
+
import { entitlements, manualGrants, paymentRequests, payments, trialExtensions } from "../schema.js";
|
|
12
12
|
import { findEntitlementRecord, pinEntitlementRow } from "./entitlements.js";
|
|
13
13
|
import { getGrantColumns, readGrant } from "./payments.js";
|
|
14
14
|
import { applyPlan, getBillingPlans } from "./plans.js";
|
|
@@ -130,7 +130,7 @@ export async function revokeManualGrant(ctx, input) {
|
|
|
130
130
|
}
|
|
131
131
|
/** How many entries of each source the history reads. */
|
|
132
132
|
export const ACCOUNT_HISTORY_LIMIT = 100;
|
|
133
|
-
/** The account's manual grants and
|
|
133
|
+
/** The account's manual grants, provider payments and trial extensions, newest first. Database errors propagate. */
|
|
134
134
|
export async function getAccountHistory(ctx, userId) {
|
|
135
135
|
if (!isUserId(userId))
|
|
136
136
|
return [];
|
|
@@ -146,6 +146,12 @@ export async function getAccountHistory(ctx, userId) {
|
|
|
146
146
|
.where(eq(payments.userId, userId))
|
|
147
147
|
.orderBy(desc(payments.paidAt), desc(payments.id))
|
|
148
148
|
.limit(ACCOUNT_HISTORY_LIMIT);
|
|
149
|
+
const extensionRows = await ctx.db
|
|
150
|
+
.select()
|
|
151
|
+
.from(trialExtensions)
|
|
152
|
+
.where(eq(trialExtensions.userId, userId))
|
|
153
|
+
.orderBy(desc(trialExtensions.extendedAt), desc(trialExtensions.id))
|
|
154
|
+
.limit(ACCOUNT_HISTORY_LIMIT);
|
|
149
155
|
const entries = [];
|
|
150
156
|
for (const row of grantRows) {
|
|
151
157
|
const grant = readGrant(row);
|
|
@@ -169,6 +175,9 @@ export async function getAccountHistory(ctx, userId) {
|
|
|
169
175
|
refundedAmount: row.refundedAmount,
|
|
170
176
|
});
|
|
171
177
|
}
|
|
178
|
+
for (const row of extensionRows) {
|
|
179
|
+
entries.push({ source: "trial", id: row.id, at: row.extendedAt, previousEndsAt: row.previousEndsAt, endsAt: row.endsAt });
|
|
180
|
+
}
|
|
172
181
|
return entries.sort((first, second) => second.at.getTime() - first.at.getTime());
|
|
173
182
|
}
|
|
174
183
|
//# sourceMappingURL=grants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grants.js","sourceRoot":"","sources":["../../src/server/grants.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,+FAA+F;AAC/F,iGAAiG;AACjG,mGAAmG;AACnG,oGAAoG;AACpG,gFAAgF;AAChF,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,GAAG,EAAE,EAAE,EAAqB,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"grants.js","sourceRoot":"","sources":["../../src/server/grants.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../src/server/health.ts"],"names":[],"mappings":"AAGA,OAAO,EAAM,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAKxD,eAAO,MAAM,kBAAkB,EAAE,
|
|
1
|
+
{"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../src/server/health.ts"],"names":[],"mappings":"AAGA,OAAO,EAAM,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAKxD,eAAO,MAAM,kBAAkB,EAAE,WAUhC,CAAC"}
|
package/dist/server/health.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// The module's readiness probe for `GET /api/health` of `@softure-ai/ops`: the entitlements,
|
|
2
|
-
// payments, payment requests
|
|
2
|
+
// payments, payment requests, manual grants and trial extensions tables exist and answer, i.e. `softure migrate` ran,
|
|
3
3
|
// and the setup is sound (`adminRole` is declared), so a deploy fails before traffic. It reads no rows.
|
|
4
4
|
import { ok } from "@softure-ai/core";
|
|
5
5
|
import { sql } from "drizzle-orm";
|
|
@@ -12,6 +12,7 @@ export const checkBillingTables = async (context) => {
|
|
|
12
12
|
await db.execute(sql `select 1 from billing.payments limit 0`);
|
|
13
13
|
await db.execute(sql `select 1 from billing.payment_requests limit 0`);
|
|
14
14
|
await db.execute(sql `select 1 from billing.manual_grants limit 0`);
|
|
15
|
+
await db.execute(sql `select 1 from billing.trial_extensions limit 0`);
|
|
15
16
|
return ok();
|
|
16
17
|
};
|
|
17
18
|
//# sourceMappingURL=health.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"health.js","sourceRoot":"","sources":["../../src/server/health.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,
|
|
1
|
+
{"version":3,"file":"health.js","sourceRoot":"","sources":["../../src/server/health.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,sHAAsH;AACtH,wGAAwG;AACxG,OAAO,EAAE,EAAE,EAAoB,MAAM,kBAAkB,CAAC;AAExD,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAErD,MAAM,CAAC,MAAM,kBAAkB,GAAgB,KAAK,EAAE,OAAO,EAAE,EAAE;IAC/D,uBAAuB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACxC,iFAAiF;IACjF,MAAM,EAAE,GAAG,OAAO,CAAC,EAAe,CAAC;IACnC,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAA,4CAA4C,CAAC,CAAC;IAClE,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAA,wCAAwC,CAAC,CAAC;IAC9D,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAA,gDAAgD,CAAC,CAAC;IACtE,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAA,6CAA6C,CAAC,CAAC;IACnE,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAA,gDAAgD,CAAC,CAAC;IACtE,OAAO,EAAE,EAAE,CAAC;AACd,CAAC,CAAC"}
|