@dainprotocol/service-sdk 1.1.23 → 1.1.24
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/service/index.d.ts
CHANGED
|
@@ -2,9 +2,10 @@ import { DAINServiceConfig, DAINService } from "./types";
|
|
|
2
2
|
import { defineDAINService as defineNodeService } from "./nodeService";
|
|
3
3
|
import { defineDAINService as defineDenoService } from "./denoService";
|
|
4
4
|
import { defineDAINService as defineCloudflareService } from "./cloudflareService";
|
|
5
|
+
import { createNextDainService } from "./nextService";
|
|
5
6
|
import { createTool, createService, createToolbox, CoreUtils, createOAuth2Tool } from "./core";
|
|
6
7
|
import { ProcessHandler, RedisProcessStore, MemoryProcessStore } from "./processes";
|
|
7
8
|
export declare const defineDAINService: (config: DAINServiceConfig) => DAINService;
|
|
8
|
-
export { defineNodeService, defineDenoService, defineCloudflareService, createTool, createService, createToolbox, CoreUtils, createOAuth2Tool, ProcessHandler, RedisProcessStore, MemoryProcessStore, };
|
|
9
|
+
export { defineNodeService, defineDenoService, defineCloudflareService, createNextDainService, createTool, createService, createToolbox, CoreUtils, createOAuth2Tool, ProcessHandler, RedisProcessStore, MemoryProcessStore, };
|
|
9
10
|
export * from './types';
|
|
10
11
|
export * from './oauth2Store';
|
package/dist/service/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// File: src/service/index.ts
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.MemoryProcessStore = exports.RedisProcessStore = exports.ProcessHandler = exports.createOAuth2Tool = exports.CoreUtils = exports.createToolbox = exports.createService = exports.createTool = exports.defineCloudflareService = exports.defineDenoService = exports.defineNodeService = exports.defineDAINService = void 0;
|
|
4
|
+
exports.MemoryProcessStore = exports.RedisProcessStore = exports.ProcessHandler = exports.createOAuth2Tool = exports.CoreUtils = exports.createToolbox = exports.createService = exports.createTool = exports.createNextDainService = exports.defineCloudflareService = exports.defineDenoService = exports.defineNodeService = exports.defineDAINService = void 0;
|
|
5
5
|
const tslib_1 = require("tslib");
|
|
6
6
|
const nodeService_1 = require("./nodeService");
|
|
7
7
|
Object.defineProperty(exports, "defineNodeService", { enumerable: true, get: function () { return nodeService_1.defineDAINService; } });
|
|
@@ -9,6 +9,8 @@ const denoService_1 = require("./denoService");
|
|
|
9
9
|
Object.defineProperty(exports, "defineDenoService", { enumerable: true, get: function () { return denoService_1.defineDAINService; } });
|
|
10
10
|
const cloudflareService_1 = require("./cloudflareService");
|
|
11
11
|
Object.defineProperty(exports, "defineCloudflareService", { enumerable: true, get: function () { return cloudflareService_1.defineDAINService; } });
|
|
12
|
+
const nextService_1 = require("./nextService");
|
|
13
|
+
Object.defineProperty(exports, "createNextDainService", { enumerable: true, get: function () { return nextService_1.createNextDainService; } });
|
|
12
14
|
const core_1 = require("./core");
|
|
13
15
|
Object.defineProperty(exports, "createTool", { enumerable: true, get: function () { return core_1.createTool; } });
|
|
14
16
|
Object.defineProperty(exports, "createService", { enumerable: true, get: function () { return core_1.createService; } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/service/index.ts"],"names":[],"mappings":";AAAA,6BAA6B;;;;AAG7B,+CAAuE;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/service/index.ts"],"names":[],"mappings":";AAAA,6BAA6B;;;;AAG7B,+CAAuE;AAYrE,kGAZ4B,+BAAiB,OAY5B;AAXnB,+CAAuE;AAYrE,kGAZ4B,+BAAiB,OAY5B;AAXnB,2DAAmF;AAYjF,wGAZ4B,qCAAuB,OAY5B;AAXzB,+CAAsD;AAYpD,sGAZO,mCAAqB,OAYP;AAXvB,iCAA+F;AAY7F,2FAZO,iBAAU,OAYP;AACV,8FAbmB,oBAAa,OAanB;AACb,8FAdkC,oBAAa,OAclC;AACb,0FAfiD,gBAAS,OAejD;AACT,iGAhB4D,uBAAgB,OAgB5D;AAflB,2CAAoF;AAgBlF,+FAhBO,0BAAc,OAgBP;AACd,kGAjBuB,6BAAiB,OAiBvB;AACjB,mGAlB0C,8BAAkB,OAkB1C;AAhBb,MAAM,iBAAiB,GAAG,CAAC,MAAyB,EAAe,EAAE;IAC1E,MAAM,IAAI,KAAK,CAAC,iFAAiF,CAAC,CAAC;AACrG,CAAC,CAAC;AAFW,QAAA,iBAAiB,qBAE5B;AAiBF,sBAAsB;AACtB,kDAAwB;AAExB,wDAA8B"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { DAINServiceConfig, DAINService } from "./types";
|
|
2
|
+
import { createTool, createService, createToolbox, CoreUtils, createOAuth2Tool } from "./core";
|
|
3
|
+
import { ProcessHandler, RedisProcessStore, MemoryProcessStore } from "./processes";
|
|
4
|
+
type NextRequest = Request & {
|
|
5
|
+
nextUrl: URL;
|
|
6
|
+
cookies: any;
|
|
7
|
+
headers: Headers;
|
|
8
|
+
};
|
|
9
|
+
export interface NextDAINServiceOptions {
|
|
10
|
+
basePath?: string;
|
|
11
|
+
}
|
|
12
|
+
export declare function createNextDainService(config: DAINServiceConfig): DAINService & {
|
|
13
|
+
createHandler: (options?: NextDAINServiceOptions) => (request: NextRequest, context?: any) => Promise<Response>;
|
|
14
|
+
createHandlers: (options?: NextDAINServiceOptions) => {
|
|
15
|
+
GET: (request: NextRequest, context?: any) => Promise<Response>;
|
|
16
|
+
POST: (request: NextRequest, context?: any) => Promise<Response>;
|
|
17
|
+
PUT: (request: NextRequest, context?: any) => Promise<Response>;
|
|
18
|
+
DELETE: (request: NextRequest, context?: any) => Promise<Response>;
|
|
19
|
+
OPTIONS: (request: NextRequest, context?: any) => Promise<Response>;
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
export { createTool, createService, createToolbox, CoreUtils, createOAuth2Tool, ProcessHandler, RedisProcessStore, MemoryProcessStore, };
|
|
23
|
+
export * from "./types";
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MemoryProcessStore = exports.RedisProcessStore = exports.ProcessHandler = exports.createOAuth2Tool = exports.CoreUtils = exports.createToolbox = exports.createService = exports.createTool = void 0;
|
|
4
|
+
exports.createNextDainService = createNextDainService;
|
|
5
|
+
const tslib_1 = require("tslib");
|
|
6
|
+
const service_1 = require("./service");
|
|
7
|
+
const core_1 = require("./core");
|
|
8
|
+
Object.defineProperty(exports, "createTool", { enumerable: true, get: function () { return core_1.createTool; } });
|
|
9
|
+
Object.defineProperty(exports, "createService", { enumerable: true, get: function () { return core_1.createService; } });
|
|
10
|
+
Object.defineProperty(exports, "createToolbox", { enumerable: true, get: function () { return core_1.createToolbox; } });
|
|
11
|
+
Object.defineProperty(exports, "CoreUtils", { enumerable: true, get: function () { return core_1.CoreUtils; } });
|
|
12
|
+
Object.defineProperty(exports, "createOAuth2Tool", { enumerable: true, get: function () { return core_1.createOAuth2Tool; } });
|
|
13
|
+
const processes_1 = require("./processes");
|
|
14
|
+
Object.defineProperty(exports, "ProcessHandler", { enumerable: true, get: function () { return processes_1.ProcessHandler; } });
|
|
15
|
+
Object.defineProperty(exports, "RedisProcessStore", { enumerable: true, get: function () { return processes_1.RedisProcessStore; } });
|
|
16
|
+
Object.defineProperty(exports, "MemoryProcessStore", { enumerable: true, get: function () { return processes_1.MemoryProcessStore; } });
|
|
17
|
+
// Next.js response helpers
|
|
18
|
+
const NextResponseHelpers = {
|
|
19
|
+
json: (body, init) => {
|
|
20
|
+
return new Response(JSON.stringify(body), {
|
|
21
|
+
...init,
|
|
22
|
+
headers: {
|
|
23
|
+
'content-type': 'application/json',
|
|
24
|
+
...(init?.headers || {}),
|
|
25
|
+
},
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
function createNextDainService(config) {
|
|
30
|
+
const baseService = (0, service_1.createBaseDAINService)(config);
|
|
31
|
+
// Next.js doesn't need a start method since it uses route handlers
|
|
32
|
+
const startNext = async () => {
|
|
33
|
+
throw new Error("startNext is not needed. Use createHandler() to get the Next.js route handler.");
|
|
34
|
+
};
|
|
35
|
+
// Create a Next.js route handler with flexible base path
|
|
36
|
+
const createHandler = (options) => {
|
|
37
|
+
const service = baseService.startService();
|
|
38
|
+
// Return the route handler function for Next.js App Router
|
|
39
|
+
return async function handler(request, context) {
|
|
40
|
+
try {
|
|
41
|
+
// Get the URL from the request
|
|
42
|
+
const url = new URL(request.url);
|
|
43
|
+
// Determine the base path
|
|
44
|
+
let basePath = options?.basePath;
|
|
45
|
+
if (!basePath && context?.params) {
|
|
46
|
+
// Try to infer base path from dynamic route params
|
|
47
|
+
// For [...path] routes, we need to reconstruct the base path
|
|
48
|
+
const pathParam = context.params.path;
|
|
49
|
+
if (Array.isArray(pathParam)) {
|
|
50
|
+
// Calculate base path by removing the dynamic segments
|
|
51
|
+
const fullPath = url.pathname;
|
|
52
|
+
const dynamicPath = '/' + pathParam.join('/');
|
|
53
|
+
basePath = fullPath.replace(dynamicPath, '') || '/';
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
// If still no base path, try to extract from the URL
|
|
57
|
+
if (!basePath) {
|
|
58
|
+
// Look for common patterns like /api/something/tools/...
|
|
59
|
+
const pathSegments = url.pathname.split('/');
|
|
60
|
+
const toolsIndex = pathSegments.findIndex(seg => ['tools', 'metadata', 'contexts', 'widgets', 'datasources', 'health', 'ping'].includes(seg));
|
|
61
|
+
if (toolsIndex > 0) {
|
|
62
|
+
basePath = '/' + pathSegments.slice(1, toolsIndex).join('/');
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
basePath = '';
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
// Extract the path after the base path
|
|
69
|
+
const pathname = basePath && url.pathname.startsWith(basePath)
|
|
70
|
+
? url.pathname.slice(basePath.length) || "/"
|
|
71
|
+
: url.pathname;
|
|
72
|
+
// Create a Request object that Hono can process
|
|
73
|
+
const honoRequest = new Request(`http://localhost${pathname}${url.search}`, {
|
|
74
|
+
method: request.method,
|
|
75
|
+
headers: request.headers,
|
|
76
|
+
body: request.body,
|
|
77
|
+
// @ts-ignore - duplex is needed for streaming but not in TS types
|
|
78
|
+
duplex: 'half',
|
|
79
|
+
});
|
|
80
|
+
// Let Hono handle the request
|
|
81
|
+
const honoResponse = await service.fetch(honoRequest);
|
|
82
|
+
// Convert Hono response to NextResponse
|
|
83
|
+
const responseHeaders = new Headers(honoResponse.headers);
|
|
84
|
+
// Handle streaming responses
|
|
85
|
+
if (responseHeaders.get('content-type')?.includes('text/event-stream')) {
|
|
86
|
+
// For SSE, we need to return the response as-is
|
|
87
|
+
return new Response(honoResponse.body, {
|
|
88
|
+
status: honoResponse.status,
|
|
89
|
+
headers: responseHeaders,
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
// For regular responses, read the body
|
|
93
|
+
const responseBody = await honoResponse.text();
|
|
94
|
+
// Return Response with proper headers
|
|
95
|
+
return new Response(responseBody, {
|
|
96
|
+
status: honoResponse.status,
|
|
97
|
+
headers: responseHeaders,
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
catch (error) {
|
|
101
|
+
console.error("DAIN Next.js handler error:", error);
|
|
102
|
+
return NextResponseHelpers.json({ error: "Internal server error" }, { status: 500 });
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
};
|
|
106
|
+
// Create handlers for specific HTTP methods (for better Next.js integration)
|
|
107
|
+
const createHandlers = (options) => {
|
|
108
|
+
const handler = createHandler(options);
|
|
109
|
+
return {
|
|
110
|
+
GET: handler,
|
|
111
|
+
POST: handler,
|
|
112
|
+
PUT: handler,
|
|
113
|
+
DELETE: handler,
|
|
114
|
+
OPTIONS: handler,
|
|
115
|
+
};
|
|
116
|
+
};
|
|
117
|
+
return {
|
|
118
|
+
...baseService,
|
|
119
|
+
startNext,
|
|
120
|
+
createHandler,
|
|
121
|
+
createHandlers,
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
// Re-export all types
|
|
125
|
+
tslib_1.__exportStar(require("./types"), exports);
|
|
126
|
+
//# sourceMappingURL=nextService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nextService.js","sourceRoot":"","sources":["../../src/service/nextService.ts"],"names":[],"mappings":";;;AAuCA,sDAiIC;;AAvKD,uCAAkD;AAClD,iCAMgB;AAmKd,2FAxKA,iBAAU,OAwKA;AACV,8FAxKA,oBAAa,OAwKA;AACb,8FAxKA,oBAAa,OAwKA;AACb,0FAxKA,gBAAS,OAwKA;AACT,iGAxKA,uBAAgB,OAwKA;AAtKlB,2CAAoF;AAuKlF,+FAvKO,0BAAc,OAuKP;AACd,kGAxKuB,6BAAiB,OAwKvB;AACjB,mGAzK0C,8BAAkB,OAyK1C;AA5JpB,2BAA2B;AAC3B,MAAM,mBAAmB,GAAG;IAC1B,IAAI,EAAE,CAAU,IAAO,EAAE,IAAmB,EAAmB,EAAE;QAC/D,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACxC,GAAG,IAAI;YACP,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,GAAG,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC;aACzB;SACF,CAAoB,CAAC;IACxB,CAAC;CACF,CAAC;AAMF,SAAgB,qBAAqB,CAAC,MAAyB;IAU7D,MAAM,WAAW,GAAG,IAAA,+BAAqB,EAAC,MAAM,CAAC,CAAC;IAElD,mEAAmE;IACnE,MAAM,SAAS,GAAG,KAAK,IAAI,EAAE;QAC3B,MAAM,IAAI,KAAK,CAAC,gFAAgF,CAAC,CAAC;IACpG,CAAC,CAAC;IAEF,yDAAyD;IACzD,MAAM,aAAa,GAAG,CAAC,OAAgC,EAAE,EAAE;QACzD,MAAM,OAAO,GAAG,WAAW,CAAC,YAAa,EAAE,CAAC;QAE5C,2DAA2D;QAC3D,OAAO,KAAK,UAAU,OAAO,CAC3B,OAAoB,EACpB,OAAwD;YAExD,IAAI,CAAC;gBACH,+BAA+B;gBAC/B,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAEjC,0BAA0B;gBAC1B,IAAI,QAAQ,GAAG,OAAO,EAAE,QAAQ,CAAC;gBAEjC,IAAI,CAAC,QAAQ,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;oBACjC,mDAAmD;oBACnD,6DAA6D;oBAC7D,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;oBACtC,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;wBAC7B,uDAAuD;wBACvD,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;wBAC9B,MAAM,WAAW,GAAG,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;wBAC9C,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC;oBACtD,CAAC;gBACH,CAAC;gBAED,qDAAqD;gBACrD,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,yDAAyD;oBACzD,MAAM,YAAY,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAC7C,MAAM,UAAU,GAAG,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAC9C,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAC5F,CAAC;oBAEF,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;wBACnB,QAAQ,GAAG,GAAG,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAC/D,CAAC;yBAAM,CAAC;wBACN,QAAQ,GAAG,EAAE,CAAC;oBAChB,CAAC;gBACH,CAAC;gBAED,uCAAuC;gBACvC,MAAM,QAAQ,GAAG,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC;oBAC5D,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,GAAG;oBAC5C,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAEjB,gDAAgD;gBAChD,MAAM,WAAW,GAAG,IAAI,OAAO,CAC7B,mBAAmB,QAAQ,GAAG,GAAG,CAAC,MAAM,EAAE,EAC1C;oBACE,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,kEAAkE;oBAClE,MAAM,EAAE,MAAM;iBACf,CACF,CAAC;gBAEF,8BAA8B;gBAC9B,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;gBAEtD,wCAAwC;gBACxC,MAAM,eAAe,GAAG,IAAI,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;gBAE1D,6BAA6B;gBAC7B,IAAI,eAAe,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;oBACvE,gDAAgD;oBAChD,OAAO,IAAI,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE;wBACrC,MAAM,EAAE,YAAY,CAAC,MAAM;wBAC3B,OAAO,EAAE,eAAe;qBACzB,CAAC,CAAC;gBACL,CAAC;gBAED,uCAAuC;gBACvC,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,CAAC;gBAE/C,sCAAsC;gBACtC,OAAO,IAAI,QAAQ,CAAC,YAAY,EAAE;oBAChC,MAAM,EAAE,YAAY,CAAC,MAAM;oBAC3B,OAAO,EAAE,eAAe;iBACzB,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;gBACpD,OAAO,mBAAmB,CAAC,IAAI,CAC7B,EAAE,KAAK,EAAE,uBAAuB,EAAE,EAClC,EAAE,MAAM,EAAE,GAAG,EAAE,CAChB,CAAC;YACJ,CAAC;QACH,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,6EAA6E;IAC7E,MAAM,cAAc,GAAG,CAAC,OAAgC,EAAE,EAAE;QAC1D,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QAEvC,OAAO;YACL,GAAG,EAAE,OAAO;YACZ,IAAI,EAAE,OAAO;YACb,GAAG,EAAE,OAAO;YACZ,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,OAAO;SACjB,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO;QACL,GAAG,WAAW;QACd,SAAS;QACT,aAAa;QACb,cAAc;KACR,CAAC;AACX,CAAC;AAaD,sBAAsB;AACtB,kDAAwB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dainprotocol/service-sdk",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.24",
|
|
4
4
|
"description": "DAIN Service SDK",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -61,6 +61,10 @@
|
|
|
61
61
|
"types": "./dist/plugins/index.d.ts",
|
|
62
62
|
"default": "./dist/plugins/index.js"
|
|
63
63
|
},
|
|
64
|
+
"./next": {
|
|
65
|
+
"types": "./dist/service/nextService.d.ts",
|
|
66
|
+
"default": "./dist/service/nextService.js"
|
|
67
|
+
},
|
|
64
68
|
"./client/*": {
|
|
65
69
|
"types": "./dist/client/*.d.ts",
|
|
66
70
|
"default": "./dist/client/*.js"
|
|
@@ -88,6 +92,9 @@
|
|
|
88
92
|
"plugins": [
|
|
89
93
|
"./dist/plugins/index.d.ts"
|
|
90
94
|
],
|
|
95
|
+
"next": [
|
|
96
|
+
"./dist/service/nextService.d.ts"
|
|
97
|
+
],
|
|
91
98
|
"client/*": [
|
|
92
99
|
"./dist/client/*.d.ts"
|
|
93
100
|
],
|
|
@@ -147,6 +154,7 @@
|
|
|
147
154
|
"ioredis": "^5.4.1",
|
|
148
155
|
"iron-session": "^8.0.4",
|
|
149
156
|
"json-schema": "^0.4.0",
|
|
157
|
+
"next": "^15.3.3",
|
|
150
158
|
"stripe": "^17.2.1",
|
|
151
159
|
"supertest": "^7.0.0",
|
|
152
160
|
"telegram": "^2.26.16",
|