@windrun-huaiin/backend-core 28.0.0 → 29.0.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/dist/app/api/stripe/checkout/route.js +0 -1
- package/dist/app/api/stripe/checkout/route.mjs +0 -1
- package/dist/app/api/stripe/customer-portal/route.js +0 -1
- package/dist/app/api/stripe/customer-portal/route.mjs +0 -1
- package/dist/app/api/user/credit-overview/route.d.ts +13 -0
- package/dist/app/api/user/credit-overview/route.d.ts.map +1 -0
- package/dist/app/api/user/credit-overview/route.js +32 -0
- package/dist/app/api/user/credit-overview/route.mjs +30 -0
- package/dist/app/api/user/pricing-context/route.d.ts +3 -0
- package/dist/app/api/user/pricing-context/route.d.ts.map +1 -0
- package/dist/app/api/user/pricing-context/route.js +19 -0
- package/dist/app/api/user/pricing-context/route.mjs +17 -0
- package/dist/app/api/webhook/clerk/user/route.js +0 -1
- package/dist/app/api/webhook/clerk/user/route.mjs +0 -1
- package/dist/auth/auth-utils.js +0 -1
- package/dist/auth/auth-utils.mjs +0 -1
- package/dist/credit/server.d.ts +1 -0
- package/dist/credit/server.d.ts.map +1 -1
- package/dist/credit/server.js +2 -0
- package/dist/credit/server.mjs +1 -0
- package/dist/index.js +0 -3
- package/dist/index.mjs +0 -3
- package/dist/lib/credit-overview.d.ts +17 -0
- package/dist/lib/credit-overview.d.ts.map +1 -0
- package/dist/lib/credit-overview.js +116 -0
- package/dist/lib/credit-overview.mjs +114 -0
- package/dist/lib/stripe-config.js +0 -1
- package/dist/lib/stripe-config.mjs +0 -1
- package/dist/prisma/index.d.ts +2 -2
- package/dist/prisma/index.d.ts.map +1 -1
- package/dist/prisma/index.js +0 -3
- package/dist/prisma/index.mjs +0 -3
- package/dist/prisma/prisma-transaction-util.d.ts +1 -1
- package/dist/prisma/prisma-transaction-util.d.ts.map +1 -1
- package/dist/prisma/prisma.d.ts +6 -6
- package/dist/prisma/prisma.d.ts.map +1 -1
- package/dist/prisma/prisma.js +4 -37
- package/dist/prisma/prisma.mjs +4 -37
- package/dist/services/aggregate/anonymous.aggregate.service.d.ts +2 -3
- package/dist/services/aggregate/anonymous.aggregate.service.d.ts.map +1 -1
- package/dist/services/aggregate/anonymous.aggregate.service.js +2 -8
- package/dist/services/aggregate/anonymous.aggregate.service.mjs +2 -8
- package/dist/services/aggregate/billing.aggregate.service.js +0 -1
- package/dist/services/aggregate/billing.aggregate.service.mjs +0 -1
- package/dist/services/aggregate/user.aggregate.service.d.ts +3 -3
- package/dist/services/aggregate/user.aggregate.service.d.ts.map +1 -1
- package/dist/services/aggregate/user.aggregate.service.js +0 -1
- package/dist/services/aggregate/user.aggregate.service.mjs +0 -1
- package/dist/services/context/user-context-service.js +0 -1
- package/dist/services/context/user-context-service.mjs +0 -1
- package/dist/services/database/apilog.service.js +0 -1
- package/dist/services/database/apilog.service.mjs +0 -1
- package/dist/services/database/core-entities.d.ts +123 -0
- package/dist/services/database/core-entities.d.ts.map +1 -0
- package/dist/services/database/credit.service.d.ts +1 -1
- package/dist/services/database/credit.service.d.ts.map +1 -1
- package/dist/services/database/credit.service.js +3 -8
- package/dist/services/database/credit.service.mjs +3 -8
- package/dist/services/database/creditAuditLog.service.d.ts +1 -1
- package/dist/services/database/creditAuditLog.service.d.ts.map +1 -1
- package/dist/services/database/creditAuditLog.service.js +6 -6
- package/dist/services/database/creditAuditLog.service.mjs +6 -6
- package/dist/services/database/prisma-model-type.d.ts +28 -2
- package/dist/services/database/prisma-model-type.d.ts.map +1 -1
- package/dist/services/database/subscription.service.js +1 -2
- package/dist/services/database/subscription.service.mjs +1 -2
- package/dist/services/database/transaction.service.d.ts +1 -1
- package/dist/services/database/transaction.service.d.ts.map +1 -1
- package/dist/services/database/transaction.service.js +14 -19
- package/dist/services/database/transaction.service.mjs +14 -19
- package/dist/services/database/user.service.d.ts +13 -4
- package/dist/services/database/user.service.d.ts.map +1 -1
- package/dist/services/database/user.service.js +5 -3
- package/dist/services/database/user.service.mjs +5 -3
- package/dist/services/database/userBackup.service.js +0 -1
- package/dist/services/database/userBackup.service.mjs +0 -1
- package/dist/services/stripe/webhook-handler.js +0 -1
- package/dist/services/stripe/webhook-handler.mjs +0 -1
- package/package.json +18 -15
- package/src/app/api/user/anonymous/init/route.ts +2 -2
- package/src/app/api/user/credit-overview/route.ts +43 -0
- package/src/app/api/user/pricing-context/route.ts +14 -0
- package/src/credit/server.ts +1 -0
- package/src/lib/credit-overview.ts +153 -0
- package/src/prisma/index.ts +6 -2
- package/src/prisma/prisma-transaction-util.ts +1 -1
- package/src/prisma/prisma.ts +14 -47
- package/src/services/aggregate/anonymous.aggregate.service.ts +7 -9
- package/src/services/aggregate/user.aggregate.service.ts +3 -3
- package/src/services/database/core-entities.ts +128 -0
- package/src/services/database/credit.service.ts +7 -8
- package/src/services/database/creditAuditLog.service.ts +11 -9
- package/src/services/database/prisma-model-type.ts +33 -4
- package/src/services/database/subscription.service.ts +2 -2
- package/src/services/database/transaction.service.ts +22 -23
- package/src/services/database/user.service.ts +23 -6
- package/dist/core-prisma/browser.d.ts +0 -40
- package/dist/core-prisma/browser.d.ts.map +0 -1
- package/dist/core-prisma/client.d.ts +0 -57
- package/dist/core-prisma/client.d.ts.map +0 -1
- package/dist/core-prisma/client.js +0 -55
- package/dist/core-prisma/client.mjs +0 -33
- package/dist/core-prisma/commonInputTypes.d.ts +0 -495
- package/dist/core-prisma/commonInputTypes.d.ts.map +0 -1
- package/dist/core-prisma/enums.d.ts +0 -2
- package/dist/core-prisma/enums.d.ts.map +0 -1
- package/dist/core-prisma/internal/class.d.ts +0 -193
- package/dist/core-prisma/internal/class.d.ts.map +0 -1
- package/dist/core-prisma/internal/class.js +0 -108
- package/dist/core-prisma/internal/class.mjs +0 -87
- package/dist/core-prisma/internal/prismaNamespace.d.ts +0 -1180
- package/dist/core-prisma/internal/prismaNamespace.d.ts.map +0 -1
- package/dist/core-prisma/internal/prismaNamespace.js +0 -278
- package/dist/core-prisma/internal/prismaNamespace.mjs +0 -226
- package/dist/core-prisma/internal/prismaNamespaceBrowser.d.ts +0 -233
- package/dist/core-prisma/internal/prismaNamespaceBrowser.d.ts.map +0 -1
- package/dist/core-prisma/models/Apilog.d.ts +0 -1088
- package/dist/core-prisma/models/Apilog.d.ts.map +0 -1
- package/dist/core-prisma/models/Credit.d.ts +0 -1554
- package/dist/core-prisma/models/Credit.d.ts.map +0 -1
- package/dist/core-prisma/models/CreditAuditLog.d.ts +0 -1362
- package/dist/core-prisma/models/CreditAuditLog.d.ts.map +0 -1
- package/dist/core-prisma/models/Subscription.d.ts +0 -1441
- package/dist/core-prisma/models/Subscription.d.ts.map +0 -1
- package/dist/core-prisma/models/Transaction.d.ts +0 -2222
- package/dist/core-prisma/models/Transaction.d.ts.map +0 -1
- package/dist/core-prisma/models/User.d.ts +0 -1775
- package/dist/core-prisma/models/User.d.ts.map +0 -1
- package/dist/core-prisma/models/UserBackup.d.ts +0 -1228
- package/dist/core-prisma/models/UserBackup.d.ts.map +0 -1
- package/dist/core-prisma/models.d.ts +0 -9
- package/dist/core-prisma/models.d.ts.map +0 -1
- package/migrations/create.sql +0 -176
- package/migrations/init-schema.sql +0 -20
- package/prisma/schema.prisma +0 -193
- package/src/core-prisma/browser.ts +0 -54
- package/src/core-prisma/client.ts +0 -78
- package/src/core-prisma/commonInputTypes.ts +0 -565
- package/src/core-prisma/enums.ts +0 -15
- package/src/core-prisma/internal/class.ts +0 -293
- package/src/core-prisma/internal/prismaNamespace.ts +0 -1419
- package/src/core-prisma/internal/prismaNamespaceBrowser.ts +0 -259
- package/src/core-prisma/models/Apilog.ts +0 -1244
- package/src/core-prisma/models/Credit.ts +0 -1722
- package/src/core-prisma/models/CreditAuditLog.ts +0 -1536
- package/src/core-prisma/models/Subscription.ts +0 -1610
- package/src/core-prisma/models/Transaction.ts +0 -2398
- package/src/core-prisma/models/User.ts +0 -1982
- package/src/core-prisma/models/UserBackup.ts +0 -1384
- package/src/core-prisma/models.ts +0 -18
package/dist/prisma/prisma.js
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var adapterPg = require('@prisma/adapter-pg');
|
|
4
|
-
var client = require('../core-prisma/client.js');
|
|
5
|
-
|
|
6
3
|
const globalForPrisma = globalThis;
|
|
7
4
|
// ==================== 日志配置 ====================
|
|
8
5
|
const getLogConfig = () => {
|
|
@@ -25,45 +22,15 @@ const getLogConfig = () => {
|
|
|
25
22
|
return [{ emit: 'stdout', level: 'error' }];
|
|
26
23
|
}
|
|
27
24
|
};
|
|
28
|
-
|
|
25
|
+
getLogConfig();
|
|
29
26
|
function isPrismaDebugEnabled() {
|
|
30
27
|
return process.env.PRISMA_DEBUG === 'true';
|
|
31
28
|
}
|
|
32
29
|
function createPrismaInstanceId(prefix = 'core-prisma') {
|
|
33
30
|
return `${prefix}_${Date.now()}_${Math.random().toString(36).slice(2, 7)}`;
|
|
34
31
|
}
|
|
35
|
-
function
|
|
36
|
-
|
|
37
|
-
if (!ca && !globalForPrisma.__prisma_ssl_warning_logged) {
|
|
38
|
-
console.warn('SUPABASE_DB_CA_CERT is not configured. Prisma will request TLS without certificate verification unless DATABASE_URL SSL parameters override this behavior. Configure SUPABASE_DB_CA_CERT for certificate verification.');
|
|
39
|
-
globalForPrisma.__prisma_ssl_warning_logged = true;
|
|
40
|
-
}
|
|
41
|
-
return {
|
|
42
|
-
connectionString: databaseUrl,
|
|
43
|
-
ssl: ca
|
|
44
|
-
? {
|
|
45
|
-
ca,
|
|
46
|
-
rejectUnauthorized: true,
|
|
47
|
-
}
|
|
48
|
-
: {
|
|
49
|
-
rejectUnauthorized: false,
|
|
50
|
-
},
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
function createPrismaClient(databaseUrl = process.env.DATABASE_URL) {
|
|
54
|
-
if (!databaseUrl) {
|
|
55
|
-
throw new Error('DATABASE_URL is required to create PrismaClient');
|
|
56
|
-
}
|
|
57
|
-
const adapter = new adapterPg.PrismaPg(createPrismaPgConfig(databaseUrl));
|
|
58
|
-
const instanceId = createPrismaInstanceId();
|
|
59
|
-
if (isPrismaDebugEnabled()) {
|
|
60
|
-
console.log(`Prisma Client Created | ID: ${instanceId}`);
|
|
61
|
-
}
|
|
62
|
-
const client$1 = new client.PrismaClient({
|
|
63
|
-
adapter,
|
|
64
|
-
log: logConfig,
|
|
65
|
-
});
|
|
66
|
-
return configureBackendCorePrisma(client$1, instanceId);
|
|
32
|
+
function createPrismaClient() {
|
|
33
|
+
throw new Error('backend-core no longer creates its own PrismaClient. The host application must create and register its Prisma client via configureBackendCorePrisma().');
|
|
67
34
|
}
|
|
68
35
|
function configureBackendCorePrisma(prismaClient, instanceId) {
|
|
69
36
|
var _a;
|
|
@@ -75,7 +42,7 @@ function configureBackendCorePrisma(prismaClient, instanceId) {
|
|
|
75
42
|
}
|
|
76
43
|
function getBackendCorePrisma() {
|
|
77
44
|
if (!globalForPrisma.prisma) {
|
|
78
|
-
configureBackendCorePrisma(
|
|
45
|
+
throw new Error('backend-core Prisma client is not configured. Register the host Prisma client via configureBackendCorePrisma() before using backend-core database services.');
|
|
79
46
|
}
|
|
80
47
|
return globalForPrisma.prisma;
|
|
81
48
|
}
|
package/dist/prisma/prisma.mjs
CHANGED
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
import { PrismaPg } from '@prisma/adapter-pg';
|
|
2
|
-
import { PrismaClient } from '../core-prisma/client.mjs';
|
|
3
|
-
|
|
4
1
|
const globalForPrisma = globalThis;
|
|
5
2
|
// ==================== 日志配置 ====================
|
|
6
3
|
const getLogConfig = () => {
|
|
@@ -23,45 +20,15 @@ const getLogConfig = () => {
|
|
|
23
20
|
return [{ emit: 'stdout', level: 'error' }];
|
|
24
21
|
}
|
|
25
22
|
};
|
|
26
|
-
|
|
23
|
+
getLogConfig();
|
|
27
24
|
function isPrismaDebugEnabled() {
|
|
28
25
|
return process.env.PRISMA_DEBUG === 'true';
|
|
29
26
|
}
|
|
30
27
|
function createPrismaInstanceId(prefix = 'core-prisma') {
|
|
31
28
|
return `${prefix}_${Date.now()}_${Math.random().toString(36).slice(2, 7)}`;
|
|
32
29
|
}
|
|
33
|
-
function
|
|
34
|
-
|
|
35
|
-
if (!ca && !globalForPrisma.__prisma_ssl_warning_logged) {
|
|
36
|
-
console.warn('SUPABASE_DB_CA_CERT is not configured. Prisma will request TLS without certificate verification unless DATABASE_URL SSL parameters override this behavior. Configure SUPABASE_DB_CA_CERT for certificate verification.');
|
|
37
|
-
globalForPrisma.__prisma_ssl_warning_logged = true;
|
|
38
|
-
}
|
|
39
|
-
return {
|
|
40
|
-
connectionString: databaseUrl,
|
|
41
|
-
ssl: ca
|
|
42
|
-
? {
|
|
43
|
-
ca,
|
|
44
|
-
rejectUnauthorized: true,
|
|
45
|
-
}
|
|
46
|
-
: {
|
|
47
|
-
rejectUnauthorized: false,
|
|
48
|
-
},
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
function createPrismaClient(databaseUrl = process.env.DATABASE_URL) {
|
|
52
|
-
if (!databaseUrl) {
|
|
53
|
-
throw new Error('DATABASE_URL is required to create PrismaClient');
|
|
54
|
-
}
|
|
55
|
-
const adapter = new PrismaPg(createPrismaPgConfig(databaseUrl));
|
|
56
|
-
const instanceId = createPrismaInstanceId();
|
|
57
|
-
if (isPrismaDebugEnabled()) {
|
|
58
|
-
console.log(`Prisma Client Created | ID: ${instanceId}`);
|
|
59
|
-
}
|
|
60
|
-
const client = new PrismaClient({
|
|
61
|
-
adapter,
|
|
62
|
-
log: logConfig,
|
|
63
|
-
});
|
|
64
|
-
return configureBackendCorePrisma(client, instanceId);
|
|
30
|
+
function createPrismaClient() {
|
|
31
|
+
throw new Error('backend-core no longer creates its own PrismaClient. The host application must create and register its Prisma client via configureBackendCorePrisma().');
|
|
65
32
|
}
|
|
66
33
|
function configureBackendCorePrisma(prismaClient, instanceId) {
|
|
67
34
|
var _a;
|
|
@@ -73,7 +40,7 @@ function configureBackendCorePrisma(prismaClient, instanceId) {
|
|
|
73
40
|
}
|
|
74
41
|
function getBackendCorePrisma() {
|
|
75
42
|
if (!globalForPrisma.prisma) {
|
|
76
|
-
configureBackendCorePrisma(
|
|
43
|
+
throw new Error('backend-core Prisma client is not configured. Register the host Prisma client via configureBackendCorePrisma() before using backend-core database services.');
|
|
77
44
|
}
|
|
78
45
|
return globalForPrisma.prisma;
|
|
79
46
|
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import type { Credit, Subscription, User } from '@core/db/prisma-model-type';
|
|
2
|
-
import { Prisma } from '@core/db/prisma-model-type';
|
|
1
|
+
import type { CoreJsonValue, Credit, Subscription, User } from '@core/db/prisma-model-type';
|
|
3
2
|
type AnonymousInitContext = {
|
|
4
3
|
user: User;
|
|
5
4
|
credit: Credit | null;
|
|
@@ -13,7 +12,7 @@ declare class AnonymousAggregateService {
|
|
|
13
12
|
private findLatestUserContextByFingerprintId;
|
|
14
13
|
private createAnonymousUser;
|
|
15
14
|
getOrCreateByFingerprintId(fingerprintId: string, options?: {
|
|
16
|
-
sourceRef?:
|
|
15
|
+
sourceRef?: CoreJsonValue;
|
|
17
16
|
}): Promise<AnonymousInitContext>;
|
|
18
17
|
}
|
|
19
18
|
export declare const anonymousAggregateService: AnonymousAggregateService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anonymous.aggregate.service.d.ts","sourceRoot":"","sources":["../../../src/services/aggregate/anonymous.aggregate.service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"anonymous.aggregate.service.d.ts","sourceRoot":"","sources":["../../../src/services/aggregate/anonymous.aggregate.service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAQ5F,KAAK,oBAAoB,GAAG;IAC1B,IAAI,EAAE,IAAI,CAAC;IACX,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;IAClC,SAAS,EAAE,OAAO,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,cAAM,yBAAyB;YACf,mBAAmB;YAUnB,oCAAoC;YAyBpC,mBAAmB;IAsC3B,0BAA0B,CAC9B,aAAa,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,aAAa,CAAC;KAAE,GACvC,OAAO,CAAC,oBAAoB,CAAC;CAYjC;AAED,eAAO,MAAM,yBAAyB,2BAAkC,CAAC"}
|
|
@@ -4,23 +4,17 @@ var tslib = require('tslib');
|
|
|
4
4
|
var user_service = require('../database/user.service.js');
|
|
5
5
|
var subscription_service = require('../database/subscription.service.js');
|
|
6
6
|
var credit_service = require('../database/credit.service.js');
|
|
7
|
-
require('../../core-prisma/client.js');
|
|
8
7
|
var constants = require('../database/constants.js');
|
|
9
8
|
require('../../prisma/prisma.js');
|
|
10
9
|
var prismaTransactionUtil = require('../../prisma/prisma-transaction-util.js');
|
|
11
10
|
var creditInit = require('../../lib/credit-init.js');
|
|
12
|
-
var prismaNamespace = require('../../core-prisma/internal/prismaNamespace.js');
|
|
13
11
|
|
|
14
12
|
const ANONYMOUS_INIT_LOCK_NAMESPACE = 92831;
|
|
15
13
|
class AnonymousAggregateService {
|
|
16
14
|
lockFingerprintInit(tx, fingerprintId) {
|
|
17
15
|
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
${prismaNamespace.raw(String(ANONYMOUS_INIT_LOCK_NAMESPACE))},
|
|
21
|
-
hashtext(${fingerprintId})
|
|
22
|
-
)
|
|
23
|
-
`;
|
|
16
|
+
var _a;
|
|
17
|
+
yield ((_a = tx.$executeRawUnsafe) === null || _a === void 0 ? void 0 : _a.call(tx, `SELECT pg_advisory_xact_lock(${ANONYMOUS_INIT_LOCK_NAMESPACE}, hashtext($1))`, fingerprintId));
|
|
24
18
|
});
|
|
25
19
|
}
|
|
26
20
|
findLatestUserContextByFingerprintId(fingerprintId, tx) {
|
|
@@ -2,23 +2,17 @@ import { __awaiter } from 'tslib';
|
|
|
2
2
|
import { userService } from '../database/user.service.mjs';
|
|
3
3
|
import { subscriptionService } from '../database/subscription.service.mjs';
|
|
4
4
|
import { creditService } from '../database/credit.service.mjs';
|
|
5
|
-
import '../../core-prisma/client.mjs';
|
|
6
5
|
import { UserStatus, OperationType, CreditType } from '../database/constants.mjs';
|
|
7
6
|
import '../../prisma/prisma.mjs';
|
|
8
7
|
import { runInTransaction } from '../../prisma/prisma-transaction-util.mjs';
|
|
9
8
|
import { freeAmount } from '../../lib/credit-init.mjs';
|
|
10
|
-
import { raw } from '../../core-prisma/internal/prismaNamespace.mjs';
|
|
11
9
|
|
|
12
10
|
const ANONYMOUS_INIT_LOCK_NAMESPACE = 92831;
|
|
13
11
|
class AnonymousAggregateService {
|
|
14
12
|
lockFingerprintInit(tx, fingerprintId) {
|
|
15
13
|
return __awaiter(this, void 0, void 0, function* () {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
${raw(String(ANONYMOUS_INIT_LOCK_NAMESPACE))},
|
|
19
|
-
hashtext(${fingerprintId})
|
|
20
|
-
)
|
|
21
|
-
`;
|
|
14
|
+
var _a;
|
|
15
|
+
yield ((_a = tx.$executeRawUnsafe) === null || _a === void 0 ? void 0 : _a.call(tx, `SELECT pg_advisory_xact_lock(${ANONYMOUS_INIT_LOCK_NAMESPACE}, hashtext($1))`, fingerprintId));
|
|
22
16
|
});
|
|
23
17
|
}
|
|
24
18
|
findLatestUserContextByFingerprintId(fingerprintId, tx) {
|
|
@@ -4,7 +4,6 @@ var tslib = require('tslib');
|
|
|
4
4
|
var constants = require('../database/constants.js');
|
|
5
5
|
require('../../prisma/prisma.js');
|
|
6
6
|
var prismaTransactionUtil = require('../../prisma/prisma-transaction-util.js');
|
|
7
|
-
require('../../core-prisma/client.js');
|
|
8
7
|
var subscription_service = require('../database/subscription.service.js');
|
|
9
8
|
var credit_service = require('../database/credit.service.js');
|
|
10
9
|
var transaction_service = require('../database/transaction.service.js');
|
|
@@ -2,7 +2,6 @@ import { __awaiter } from 'tslib';
|
|
|
2
2
|
import { SubscriptionStatus, PaymentStatus, OrderStatus, TransactionType, PaySupplier, OperationType, CreditType } from '../database/constants.mjs';
|
|
3
3
|
import '../../prisma/prisma.mjs';
|
|
4
4
|
import { runInTransaction } from '../../prisma/prisma-transaction-util.mjs';
|
|
5
|
-
import '../../core-prisma/client.mjs';
|
|
6
5
|
import { subscriptionService } from '../database/subscription.service.mjs';
|
|
7
6
|
import { creditService } from '../database/credit.service.mjs';
|
|
8
7
|
import { transactionService } from '../database/transaction.service.mjs';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { CoreJsonValue, Credit, User } from '@core/db/prisma-model-type';
|
|
2
2
|
export declare class UserAggregateService {
|
|
3
3
|
initAnonymousUser(fingerprintId: string, options?: {
|
|
4
|
-
sourceRef?:
|
|
4
|
+
sourceRef?: CoreJsonValue;
|
|
5
5
|
}): Promise<{
|
|
6
6
|
newUser: User;
|
|
7
7
|
credit: Credit;
|
|
@@ -19,7 +19,7 @@ export declare class UserAggregateService {
|
|
|
19
19
|
* - session.completed 或 invoice.paid 会 UPDATE subscription 记录
|
|
20
20
|
* - 不需要 CREATE,只需 UPDATE 确保逻辑一致
|
|
21
21
|
*/
|
|
22
|
-
createNewRegisteredUser(clerkUserId: string, email?: string, fingerprintId?: string, userName?: string, sourceRef?:
|
|
22
|
+
createNewRegisteredUser(clerkUserId: string, email?: string, fingerprintId?: string, userName?: string, sourceRef?: CoreJsonValue): Promise<{
|
|
23
23
|
newUser: User;
|
|
24
24
|
credit: Credit;
|
|
25
25
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.aggregate.service.d.ts","sourceRoot":"","sources":["../../../src/services/aggregate/user.aggregate.service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"user.aggregate.service.d.ts","sourceRoot":"","sources":["../../../src/services/aggregate/user.aggregate.service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,EAAU,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAKtF,qBAAa,oBAAoB;IAEzB,iBAAiB,CACrB,aAAa,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,aAAa,CAAC;KAAE,GACvC,OAAO,CAAC;QAAE,OAAO,EAAE,IAAI,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;KAAE,CAAC;IA6B9C;;;;;;;;;;;;OAYG;IACG,uBAAuB,CAC3B,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,MAAM,EACd,aAAa,CAAC,EAAE,MAAM,EACtB,QAAQ,CAAC,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,aAAa,GACxB,OAAO,CAAC;QAAE,OAAO,EAAE,IAAI,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;KAAE,CAAC;IAgCxC,mBAAmB,CACvB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC;QAAE,UAAU,EAAE,IAAI,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;KAAE,CAAC;IA+B3C,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;YAwBzD,qBAAqB;CAcpC;AAED,eAAO,MAAM,oBAAoB,sBAA6B,CAAC"}
|
|
@@ -5,7 +5,6 @@ var constants = require('../database/constants.js');
|
|
|
5
5
|
var user_service = require('../database/user.service.js');
|
|
6
6
|
var subscription_service = require('../database/subscription.service.js');
|
|
7
7
|
var credit_service = require('../database/credit.service.js');
|
|
8
|
-
require('../../core-prisma/client.js');
|
|
9
8
|
require('../../prisma/prisma.js');
|
|
10
9
|
var prismaTransactionUtil = require('../../prisma/prisma-transaction-util.js');
|
|
11
10
|
var creditInit = require('../../lib/credit-init.js');
|
|
@@ -3,7 +3,6 @@ import { UserStatus, OperationType, CreditType } from '../database/constants.mjs
|
|
|
3
3
|
import { userService } from '../database/user.service.mjs';
|
|
4
4
|
import { subscriptionService } from '../database/subscription.service.mjs';
|
|
5
5
|
import { creditService } from '../database/credit.service.mjs';
|
|
6
|
-
import '../../core-prisma/client.mjs';
|
|
7
6
|
import '../../prisma/prisma.mjs';
|
|
8
7
|
import { runInTransaction } from '../../prisma/prisma-transaction-util.mjs';
|
|
9
8
|
import { freeAmount, freeRegisterAmount } from '../../lib/credit-init.mjs';
|
|
@@ -4,7 +4,6 @@ var tslib = require('tslib');
|
|
|
4
4
|
var user_service = require('../database/user.service.js');
|
|
5
5
|
var subscription_service = require('../database/subscription.service.js');
|
|
6
6
|
var credit_service = require('../database/credit.service.js');
|
|
7
|
-
require('../../core-prisma/client.js');
|
|
8
7
|
require('../../prisma/prisma.js');
|
|
9
8
|
var utils = require('@windrun-huaiin/lib/utils');
|
|
10
9
|
|
|
@@ -2,7 +2,6 @@ import { __awaiter } from 'tslib';
|
|
|
2
2
|
import { userService } from '../database/user.service.mjs';
|
|
3
3
|
import { subscriptionService } from '../database/subscription.service.mjs';
|
|
4
4
|
import { creditService } from '../database/credit.service.mjs';
|
|
5
|
-
import '../../core-prisma/client.mjs';
|
|
6
5
|
import '../../prisma/prisma.mjs';
|
|
7
6
|
import { viewLocalTime } from '@windrun-huaiin/lib/utils';
|
|
8
7
|
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
export type CoreJsonPrimitive = string | number | boolean | null;
|
|
2
|
+
export type CoreJsonValue = CoreJsonPrimitive | CoreJsonObject | CoreJsonArray;
|
|
3
|
+
export interface CoreJsonObject {
|
|
4
|
+
[key: string]: CoreJsonValue | undefined;
|
|
5
|
+
}
|
|
6
|
+
export interface CoreJsonArray extends Array<CoreJsonValue> {
|
|
7
|
+
}
|
|
8
|
+
export interface User {
|
|
9
|
+
id: bigint;
|
|
10
|
+
userId: string;
|
|
11
|
+
status: string;
|
|
12
|
+
fingerprintId: string | null;
|
|
13
|
+
clerkUserId: string | null;
|
|
14
|
+
stripeCusId: string | null;
|
|
15
|
+
email: string | null;
|
|
16
|
+
userName: string | null;
|
|
17
|
+
createdAt: Date | null;
|
|
18
|
+
updatedAt: Date | null;
|
|
19
|
+
sourceRef: CoreJsonValue | null;
|
|
20
|
+
}
|
|
21
|
+
export interface Subscription {
|
|
22
|
+
id: bigint;
|
|
23
|
+
userId: string;
|
|
24
|
+
status: string;
|
|
25
|
+
paySubscriptionId: string | null;
|
|
26
|
+
orderId: string | null;
|
|
27
|
+
priceId: string | null;
|
|
28
|
+
priceName: string | null;
|
|
29
|
+
creditsAllocated: number;
|
|
30
|
+
subPeriodStart: Date | null;
|
|
31
|
+
subPeriodEnd: Date | null;
|
|
32
|
+
createdAt: Date | null;
|
|
33
|
+
updatedAt: Date | null;
|
|
34
|
+
deleted: number;
|
|
35
|
+
}
|
|
36
|
+
export interface Credit {
|
|
37
|
+
id: bigint;
|
|
38
|
+
userId: string;
|
|
39
|
+
balanceFree: number;
|
|
40
|
+
totalFreeLimit: number;
|
|
41
|
+
freeStart: Date | null;
|
|
42
|
+
freeEnd: Date | null;
|
|
43
|
+
balancePaid: number;
|
|
44
|
+
totalPaidLimit: number;
|
|
45
|
+
paidStart: Date | null;
|
|
46
|
+
paidEnd: Date | null;
|
|
47
|
+
balanceOneTimePaid: number;
|
|
48
|
+
totalOneTimePaidLimit: number;
|
|
49
|
+
oneTimePaidStart: Date | null;
|
|
50
|
+
oneTimePaidEnd: Date | null;
|
|
51
|
+
createdAt: Date | null;
|
|
52
|
+
updatedAt: Date | null;
|
|
53
|
+
}
|
|
54
|
+
export interface Transaction {
|
|
55
|
+
id: bigint;
|
|
56
|
+
userId: string;
|
|
57
|
+
orderId: string;
|
|
58
|
+
orderStatus: string;
|
|
59
|
+
orderCreatedAt: Date | null;
|
|
60
|
+
orderExpiredAt: Date | null;
|
|
61
|
+
orderUpdatedAt: Date | null;
|
|
62
|
+
type: string | null;
|
|
63
|
+
paySupplier: string | null;
|
|
64
|
+
paySessionId: string | null;
|
|
65
|
+
payTransactionId: string | null;
|
|
66
|
+
paySubscriptionId: string | null;
|
|
67
|
+
subPeriodStart: Date | null;
|
|
68
|
+
subPeriodEnd: Date | null;
|
|
69
|
+
subLastTryCancelAt: Date | null;
|
|
70
|
+
subPeriodCanceledAt: Date | null;
|
|
71
|
+
subCancellationDetail: string | null;
|
|
72
|
+
priceId: string | null;
|
|
73
|
+
priceName: string | null;
|
|
74
|
+
amount: unknown;
|
|
75
|
+
currency: string | null;
|
|
76
|
+
creditsGranted: number | null;
|
|
77
|
+
payInvoiceId: string | null;
|
|
78
|
+
paymentStatus: string;
|
|
79
|
+
billingReason: string | null;
|
|
80
|
+
hostedInvoiceUrl: string | null;
|
|
81
|
+
invoicePdf: string | null;
|
|
82
|
+
orderDetail: string | null;
|
|
83
|
+
paidEmail: string | null;
|
|
84
|
+
paidAt: Date | null;
|
|
85
|
+
paidDetail: string | null;
|
|
86
|
+
payUpdatedAt: Date | null;
|
|
87
|
+
deleted: number;
|
|
88
|
+
}
|
|
89
|
+
export interface CreditAuditLog {
|
|
90
|
+
id: bigint;
|
|
91
|
+
userId: string;
|
|
92
|
+
creditsChange: number;
|
|
93
|
+
feature: string | null;
|
|
94
|
+
creditType: string;
|
|
95
|
+
operationType: string;
|
|
96
|
+
operationReferId: string | null;
|
|
97
|
+
createdAt: Date | null;
|
|
98
|
+
deleted: number;
|
|
99
|
+
}
|
|
100
|
+
export interface UserBackup {
|
|
101
|
+
id: bigint;
|
|
102
|
+
originalUserId: string;
|
|
103
|
+
status: string | null;
|
|
104
|
+
fingerprintId: string | null;
|
|
105
|
+
clerkUserId: string | null;
|
|
106
|
+
stripeCusId: string | null;
|
|
107
|
+
email: string | null;
|
|
108
|
+
userName: string | null;
|
|
109
|
+
backupData: CoreJsonValue | null;
|
|
110
|
+
deletedAt: Date | null;
|
|
111
|
+
createdAt: Date | null;
|
|
112
|
+
deleted: number;
|
|
113
|
+
}
|
|
114
|
+
export interface Apilog {
|
|
115
|
+
id: bigint;
|
|
116
|
+
apiType: string;
|
|
117
|
+
methodName: string;
|
|
118
|
+
summary: string | null;
|
|
119
|
+
request: string | null;
|
|
120
|
+
response: string | null;
|
|
121
|
+
createdAt: Date | null;
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=core-entities.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core-entities.d.ts","sourceRoot":"","sources":["../../../src/services/database/core-entities.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credit.service.d.ts","sourceRoot":"","sources":["../../../src/services/database/credit.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"credit.service.d.ts","sourceRoot":"","sources":["../../../src/services/database/credit.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var tslib = require('tslib');
|
|
4
|
-
require('../../core-prisma/client.js');
|
|
5
4
|
var constants = require('./constants.js');
|
|
6
5
|
var creditInit = require('../../lib/credit-init.js');
|
|
7
6
|
var prisma = require('../../prisma/prisma.js');
|
|
8
7
|
var creditAuditLog_service = require('./creditAuditLog.service.js');
|
|
9
|
-
var prismaNamespace = require('../../core-prisma/internal/prismaNamespace.js');
|
|
10
8
|
|
|
11
9
|
const CREDIT_PURGE_CONFIG = {
|
|
12
10
|
[constants.CreditType.FREE]: {
|
|
@@ -456,12 +454,9 @@ class CreditService {
|
|
|
456
454
|
getLowBalanceUsers() {
|
|
457
455
|
return tslib.__awaiter(this, arguments, void 0, function* (threshold = 10, tx) {
|
|
458
456
|
const client = prisma.checkAndFallbackWithNonTCClient(tx);
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
ORDER BY (balance_free + balance_paid + balance_onetime_paid) ASC
|
|
463
|
-
`;
|
|
464
|
-
return yield client.$queryRaw(query);
|
|
457
|
+
return yield client.$queryRawUnsafe(`SELECT * FROM credits
|
|
458
|
+
WHERE (balance_free + balance_paid + balance_onetime_paid) < $1
|
|
459
|
+
ORDER BY (balance_free + balance_paid + balance_onetime_paid) ASC`, threshold);
|
|
465
460
|
});
|
|
466
461
|
}
|
|
467
462
|
// Get Credit Statistics
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
import { __awaiter } from 'tslib';
|
|
2
|
-
import '../../core-prisma/client.mjs';
|
|
3
2
|
import { CreditType, OperationType } from './constants.mjs';
|
|
4
3
|
import { freeExpiredDays } from '../../lib/credit-init.mjs';
|
|
5
4
|
import { checkAndFallbackWithNonTCClient } from '../../prisma/prisma.mjs';
|
|
6
5
|
import { creditAuditLogService } from './creditAuditLog.service.mjs';
|
|
7
|
-
import { sql } from '../../core-prisma/internal/prismaNamespace.mjs';
|
|
8
6
|
|
|
9
7
|
const CREDIT_PURGE_CONFIG = {
|
|
10
8
|
[CreditType.FREE]: {
|
|
@@ -454,12 +452,9 @@ class CreditService {
|
|
|
454
452
|
getLowBalanceUsers() {
|
|
455
453
|
return __awaiter(this, arguments, void 0, function* (threshold = 10, tx) {
|
|
456
454
|
const client = checkAndFallbackWithNonTCClient(tx);
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
ORDER BY (balance_free + balance_paid + balance_onetime_paid) ASC
|
|
461
|
-
`;
|
|
462
|
-
return yield client.$queryRaw(query);
|
|
455
|
+
return yield client.$queryRawUnsafe(`SELECT * FROM credits
|
|
456
|
+
WHERE (balance_free + balance_paid + balance_onetime_paid) < $1
|
|
457
|
+
ORDER BY (balance_free + balance_paid + balance_onetime_paid) ASC`, threshold);
|
|
463
458
|
});
|
|
464
459
|
}
|
|
465
460
|
// Get Credit Statistics
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"creditAuditLog.service.d.ts","sourceRoot":"","sources":["../../../src/services/database/creditAuditLog.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"creditAuditLog.service.d.ts","sourceRoot":"","sources":["../../../src/services/database/creditAuditLog.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var tslib = require('tslib');
|
|
4
|
-
require('../../core-prisma/client.js');
|
|
5
4
|
var constants = require('./constants.js');
|
|
6
5
|
var prisma = require('../../prisma/prisma.js');
|
|
7
|
-
var prismaNamespace = require('../../core-prisma/internal/prismaNamespace.js');
|
|
8
6
|
|
|
9
7
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
10
8
|
class CreditAuditLogService {
|
|
@@ -190,8 +188,7 @@ class CreditAuditLogService {
|
|
|
190
188
|
const startDate = new Date();
|
|
191
189
|
startDate.setDate(startDate.getDate() - days);
|
|
192
190
|
const client = prisma.checkAndFallbackWithNonTCClient(tx);
|
|
193
|
-
const
|
|
194
|
-
const result = yield client.$queryRaw `
|
|
191
|
+
const query = `
|
|
195
192
|
SELECT
|
|
196
193
|
DATE(created_at) as date,
|
|
197
194
|
SUM(CASE WHEN operation_type = 'consume' THEN credits_used ELSE 0 END) as consumed,
|
|
@@ -202,12 +199,15 @@ class CreditAuditLogService {
|
|
|
202
199
|
THEN credits_used ELSE 0 END) as paid_consumed,
|
|
203
200
|
COUNT(DISTINCT user_id) as unique_users
|
|
204
201
|
FROM credit_usage
|
|
205
|
-
WHERE created_at >= $
|
|
202
|
+
WHERE created_at >= $1
|
|
206
203
|
AND deleted = 0
|
|
207
|
-
${
|
|
204
|
+
${userId ? 'AND user_id = $2' : ''}
|
|
208
205
|
GROUP BY DATE(created_at)
|
|
209
206
|
ORDER BY date DESC
|
|
210
207
|
`;
|
|
208
|
+
const result = userId
|
|
209
|
+
? yield client.$queryRawUnsafe(query, startDate, userId)
|
|
210
|
+
: yield client.$queryRawUnsafe(query, startDate);
|
|
211
211
|
return result;
|
|
212
212
|
});
|
|
213
213
|
}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { __awaiter } from 'tslib';
|
|
2
|
-
import '../../core-prisma/client.mjs';
|
|
3
2
|
import { OperationType, CreditType } from './constants.mjs';
|
|
4
3
|
import { checkAndFallbackWithNonTCClient } from '../../prisma/prisma.mjs';
|
|
5
|
-
import { sql } from '../../core-prisma/internal/prismaNamespace.mjs';
|
|
6
4
|
|
|
7
5
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
8
6
|
class CreditAuditLogService {
|
|
@@ -188,8 +186,7 @@ class CreditAuditLogService {
|
|
|
188
186
|
const startDate = new Date();
|
|
189
187
|
startDate.setDate(startDate.getDate() - days);
|
|
190
188
|
const client = checkAndFallbackWithNonTCClient(tx);
|
|
191
|
-
const
|
|
192
|
-
const result = yield client.$queryRaw `
|
|
189
|
+
const query = `
|
|
193
190
|
SELECT
|
|
194
191
|
DATE(created_at) as date,
|
|
195
192
|
SUM(CASE WHEN operation_type = 'consume' THEN credits_used ELSE 0 END) as consumed,
|
|
@@ -200,12 +197,15 @@ class CreditAuditLogService {
|
|
|
200
197
|
THEN credits_used ELSE 0 END) as paid_consumed,
|
|
201
198
|
COUNT(DISTINCT user_id) as unique_users
|
|
202
199
|
FROM credit_usage
|
|
203
|
-
WHERE created_at >= $
|
|
200
|
+
WHERE created_at >= $1
|
|
204
201
|
AND deleted = 0
|
|
205
|
-
${
|
|
202
|
+
${userId ? 'AND user_id = $2' : ''}
|
|
206
203
|
GROUP BY DATE(created_at)
|
|
207
204
|
ORDER BY date DESC
|
|
208
205
|
`;
|
|
206
|
+
const result = userId
|
|
207
|
+
? yield client.$queryRawUnsafe(query, startDate, userId)
|
|
208
|
+
: yield client.$queryRawUnsafe(query, startDate);
|
|
209
209
|
return result;
|
|
210
210
|
});
|
|
211
211
|
}
|