@dainprotocol/service-sdk 2.0.6 → 2.0.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/dist/client/client-auth.d.ts +8 -0
- package/dist/client/client-auth.js +23 -0
- package/dist/client/client-auth.js.map +1 -1
- package/dist/client/types.d.ts +3 -0
- package/dist/client/types.js +1 -0
- package/dist/client/types.js.map +1 -1
- package/dist/service/types.d.ts +1 -0
- package/package.json +1 -1
- package/dist/__tests__/api-sdk.test.d.ts +0 -1
- package/dist/__tests__/api-sdk.test.js +0 -102
- package/dist/__tests__/api-sdk.test.js.map +0 -1
- package/dist/__tests__/auth.test.d.ts +0 -1
- package/dist/__tests__/auth.test.js +0 -110
- package/dist/__tests__/auth.test.js.map +0 -1
- package/dist/__tests__/citations-plugin.test.d.ts +0 -1
- package/dist/__tests__/citations-plugin.test.js +0 -491
- package/dist/__tests__/citations-plugin.test.js.map +0 -1
- package/dist/__tests__/context-behavior.test.d.ts +0 -1
- package/dist/__tests__/context-behavior.test.js +0 -290
- package/dist/__tests__/context-behavior.test.js.map +0 -1
- package/dist/__tests__/convertToVercelTool.test.d.ts +0 -1
- package/dist/__tests__/convertToVercelTool.test.js +0 -527
- package/dist/__tests__/convertToVercelTool.test.js.map +0 -1
- package/dist/__tests__/core.test.d.ts +0 -1
- package/dist/__tests__/core.test.js +0 -154
- package/dist/__tests__/core.test.js.map +0 -1
- package/dist/__tests__/crypto-plugin.test.d.ts +0 -1
- package/dist/__tests__/crypto-plugin.test.js +0 -694
- package/dist/__tests__/crypto-plugin.test.js.map +0 -1
- package/dist/__tests__/humanActions.test.d.ts +0 -1
- package/dist/__tests__/humanActions.test.js +0 -221
- package/dist/__tests__/humanActions.test.js.map +0 -1
- package/dist/__tests__/integration.test.d.ts +0 -1
- package/dist/__tests__/integration.test.js +0 -1573
- package/dist/__tests__/integration.test.js.map +0 -1
- package/dist/__tests__/mealMeSchemas.test.d.ts +0 -576
- package/dist/__tests__/mealMeSchemas.test.js +0 -627
- package/dist/__tests__/mealMeSchemas.test.js.map +0 -1
- package/dist/__tests__/oauth.test.d.ts +0 -1
- package/dist/__tests__/oauth.test.js +0 -378
- package/dist/__tests__/oauth.test.js.map +0 -1
- package/dist/__tests__/oauth2-client-integration.test.d.ts +0 -1
- package/dist/__tests__/oauth2-client-integration.test.js +0 -182
- package/dist/__tests__/oauth2-client-integration.test.js.map +0 -1
- package/dist/__tests__/oauth2-context.test.d.ts +0 -1
- package/dist/__tests__/oauth2-context.test.js +0 -201
- package/dist/__tests__/oauth2-context.test.js.map +0 -1
- package/dist/__tests__/oauth2-datasource.test.d.ts +0 -1
- package/dist/__tests__/oauth2-datasource.test.js +0 -251
- package/dist/__tests__/oauth2-datasource.test.js.map +0 -1
- package/dist/__tests__/plugin.test.d.ts +0 -1
- package/dist/__tests__/plugin.test.js +0 -900
- package/dist/__tests__/plugin.test.js.map +0 -1
- package/dist/__tests__/processes.test.d.ts +0 -1
- package/dist/__tests__/processes.test.js +0 -239
- package/dist/__tests__/processes.test.js.map +0 -1
- package/dist/__tests__/streaming.test.d.ts +0 -1
- package/dist/__tests__/streaming.test.js +0 -592
- package/dist/__tests__/streaming.test.js.map +0 -1
- package/dist/__tests__/testEnums.d.ts +0 -1
- package/dist/__tests__/testEnums.js +0 -73
- package/dist/__tests__/testEnums.js.map +0 -1
- package/dist/__tests__/testOptionals.test.d.ts +0 -1
- package/dist/__tests__/testOptionals.test.js +0 -83
- package/dist/__tests__/testOptionals.test.js.map +0 -1
- package/dist/__tests__/types.test.d.ts +0 -1
- package/dist/__tests__/types.test.js +0 -98
- package/dist/__tests__/types.test.js.map +0 -1
- package/dist/client/service-auth.d.ts +0 -61
- package/dist/client/service-auth.js +0 -93
- package/dist/client/service-auth.js.map +0 -1
- package/dist/client/user-auth.d.ts +0 -74
- package/dist/client/user-auth.js +0 -137
- package/dist/client/user-auth.js.map +0 -1
|
@@ -1,201 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const tslib_1 = require("tslib");
|
|
4
|
-
const zod_1 = require("zod");
|
|
5
|
-
const nodeService_1 = require("../service/nodeService");
|
|
6
|
-
const core_1 = require("../service/core");
|
|
7
|
-
const ed25519_1 = require("@noble/curves/ed25519");
|
|
8
|
-
const bs58_1 = tslib_1.__importDefault(require("bs58"));
|
|
9
|
-
const client_auth_1 = require("../client/client-auth");
|
|
10
|
-
const client_1 = require("../client/client");
|
|
11
|
-
const oauth2_token_manager_1 = require("@dainprotocol/oauth2-token-manager");
|
|
12
|
-
describe("OAuth2Client in Context", () => {
|
|
13
|
-
let server;
|
|
14
|
-
const port = 4592; // Different port to avoid conflicts
|
|
15
|
-
// Generate keys for the service
|
|
16
|
-
const privateKey = ed25519_1.ed25519.utils.randomPrivateKey();
|
|
17
|
-
const publicKey = ed25519_1.ed25519.getPublicKey(privateKey);
|
|
18
|
-
// Generate keys for the client
|
|
19
|
-
const clientPrivateKey = ed25519_1.ed25519.utils.randomPrivateKey();
|
|
20
|
-
const agentAuth = new client_auth_1.DainClientAuth({
|
|
21
|
-
privateKeyBase58: bs58_1.default.encode(clientPrivateKey),
|
|
22
|
-
agentId: "oauth2-context-test-agent",
|
|
23
|
-
orgId: "oauth2-context-test-org",
|
|
24
|
-
});
|
|
25
|
-
let dainConnection;
|
|
26
|
-
// Track oauth2Client details
|
|
27
|
-
const oauth2ClientInfo = {
|
|
28
|
-
wasPresent: false,
|
|
29
|
-
hadGetAccessTokenMethod: false,
|
|
30
|
-
hadGetValidTokenMethod: false,
|
|
31
|
-
methodsFound: [],
|
|
32
|
-
callCount: 0
|
|
33
|
-
};
|
|
34
|
-
// Create a context that verifies oauth2Client
|
|
35
|
-
const oauth2VerifyContext = (0, core_1.createContext)({
|
|
36
|
-
id: "oauth2-verify-context",
|
|
37
|
-
name: "OAuth2 Verify Context",
|
|
38
|
-
description: "Context that verifies oauth2Client is passed",
|
|
39
|
-
getContextData: async (agentInfo, extraData) => {
|
|
40
|
-
oauth2ClientInfo.callCount++;
|
|
41
|
-
// Check if oauth2Client is present
|
|
42
|
-
oauth2ClientInfo.wasPresent = !!extraData?.oauth2Client;
|
|
43
|
-
if (extraData?.oauth2Client) {
|
|
44
|
-
// Get all property names including methods from the prototype
|
|
45
|
-
const allProps = [...Object.keys(extraData.oauth2Client)];
|
|
46
|
-
const prototypeMethods = Object.getOwnPropertyNames(Object.getPrototypeOf(extraData.oauth2Client));
|
|
47
|
-
oauth2ClientInfo.methodsFound = [...new Set([...allProps, ...prototypeMethods])].filter(m => m !== 'constructor');
|
|
48
|
-
// Check for expected methods
|
|
49
|
-
oauth2ClientInfo.hadGetAccessTokenMethod = typeof extraData.oauth2Client.getAccessToken === 'function';
|
|
50
|
-
oauth2ClientInfo.hadGetValidTokenMethod = typeof extraData.oauth2Client.getValidToken === 'function';
|
|
51
|
-
console.log("OAuth2Client detected with methods:", oauth2ClientInfo.methodsFound);
|
|
52
|
-
}
|
|
53
|
-
else {
|
|
54
|
-
console.log("No OAuth2Client in extraData");
|
|
55
|
-
}
|
|
56
|
-
return {
|
|
57
|
-
oauth2ClientPresent: oauth2ClientInfo.wasPresent,
|
|
58
|
-
oauth2ClientMethods: oauth2ClientInfo.methodsFound,
|
|
59
|
-
hasGetAccessToken: oauth2ClientInfo.hadGetAccessTokenMethod,
|
|
60
|
-
hasGetValidToken: oauth2ClientInfo.hadGetValidTokenMethod,
|
|
61
|
-
callCount: oauth2ClientInfo.callCount
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
});
|
|
65
|
-
// Create a simple tool
|
|
66
|
-
const testTool = (0, core_1.createTool)({
|
|
67
|
-
id: "oauth2-test-tool",
|
|
68
|
-
name: "OAuth2 Test Tool",
|
|
69
|
-
description: "Tool for testing oauth2 context",
|
|
70
|
-
input: zod_1.z.object({
|
|
71
|
-
message: zod_1.z.string()
|
|
72
|
-
}),
|
|
73
|
-
output: zod_1.z.object({
|
|
74
|
-
result: zod_1.z.string()
|
|
75
|
-
}),
|
|
76
|
-
handler: async (input) => {
|
|
77
|
-
return {
|
|
78
|
-
text: `Processed: ${input.message}`,
|
|
79
|
-
data: {
|
|
80
|
-
result: `Executed: ${input.message}`
|
|
81
|
-
},
|
|
82
|
-
ui: undefined
|
|
83
|
-
};
|
|
84
|
-
}
|
|
85
|
-
});
|
|
86
|
-
const dainService = (0, nodeService_1.defineDAINService)({
|
|
87
|
-
metadata: {
|
|
88
|
-
title: "OAuth2 Context Test",
|
|
89
|
-
description: "Testing oauth2Client in contexts",
|
|
90
|
-
version: "1.0.0",
|
|
91
|
-
author: "Test",
|
|
92
|
-
tags: ["test", "oauth2", "context"]
|
|
93
|
-
},
|
|
94
|
-
identity: {
|
|
95
|
-
publicKey: bs58_1.default.encode(publicKey),
|
|
96
|
-
privateKey: bs58_1.default.encode(privateKey),
|
|
97
|
-
agentId: "test-oauth2-service-agent",
|
|
98
|
-
orgId: "test-oauth2-service-org"
|
|
99
|
-
},
|
|
100
|
-
// Configure OAuth2
|
|
101
|
-
oauth2: {
|
|
102
|
-
baseUrl: `http://localhost:${port}`,
|
|
103
|
-
providers: {
|
|
104
|
-
test: {
|
|
105
|
-
clientId: "test-client-id",
|
|
106
|
-
clientSecret: "test-client-secret",
|
|
107
|
-
authorizationUrl: "https://example.com/oauth/authorize",
|
|
108
|
-
tokenUrl: "https://example.com/oauth/token",
|
|
109
|
-
scopes: ["read", "write"]
|
|
110
|
-
}
|
|
111
|
-
},
|
|
112
|
-
tokenStore: new oauth2_token_manager_1.InMemoryStorageAdapter()
|
|
113
|
-
},
|
|
114
|
-
tools: [testTool],
|
|
115
|
-
contexts: [oauth2VerifyContext]
|
|
116
|
-
});
|
|
117
|
-
beforeAll(async () => {
|
|
118
|
-
// Reset tracking
|
|
119
|
-
oauth2ClientInfo.wasPresent = false;
|
|
120
|
-
oauth2ClientInfo.hadGetAccessTokenMethod = false;
|
|
121
|
-
oauth2ClientInfo.hadGetValidTokenMethod = false;
|
|
122
|
-
oauth2ClientInfo.methodsFound = [];
|
|
123
|
-
oauth2ClientInfo.callCount = 0;
|
|
124
|
-
server = await dainService.startNode({ port });
|
|
125
|
-
dainConnection = new client_1.DainServiceConnection(`http://localhost:${port}`, agentAuth);
|
|
126
|
-
});
|
|
127
|
-
afterAll(async () => {
|
|
128
|
-
if (server && server.shutdown) {
|
|
129
|
-
await server.shutdown();
|
|
130
|
-
}
|
|
131
|
-
});
|
|
132
|
-
beforeEach(() => {
|
|
133
|
-
// Reset tracking before each test
|
|
134
|
-
oauth2ClientInfo.wasPresent = false;
|
|
135
|
-
oauth2ClientInfo.hadGetAccessTokenMethod = false;
|
|
136
|
-
oauth2ClientInfo.hadGetValidTokenMethod = false;
|
|
137
|
-
oauth2ClientInfo.methodsFound = [];
|
|
138
|
-
oauth2ClientInfo.callCount = 0;
|
|
139
|
-
});
|
|
140
|
-
describe("OAuth2Client availability in context", () => {
|
|
141
|
-
it("should pass oauth2Client to context when OAuth2 is configured", async () => {
|
|
142
|
-
const contexts = await dainConnection.getAllContexts();
|
|
143
|
-
expect(contexts).toHaveLength(1);
|
|
144
|
-
expect(contexts[0].id).toBe("oauth2-verify-context");
|
|
145
|
-
// Verify oauth2Client was passed
|
|
146
|
-
expect(oauth2ClientInfo.wasPresent).toBe(true);
|
|
147
|
-
expect(contexts[0].data.oauth2ClientPresent).toBe(true);
|
|
148
|
-
});
|
|
149
|
-
it("should provide oauth2Client with expected methods", async () => {
|
|
150
|
-
const contexts = await dainConnection.getAllContexts();
|
|
151
|
-
// Check that oauth2Client has the expected methods
|
|
152
|
-
expect(oauth2ClientInfo.hadGetAccessTokenMethod).toBe(true);
|
|
153
|
-
expect(oauth2ClientInfo.hadGetValidTokenMethod).toBe(true);
|
|
154
|
-
// Verify through the returned data
|
|
155
|
-
expect(contexts[0].data.hasGetAccessToken).toBe(true);
|
|
156
|
-
expect(contexts[0].data.hasGetValidToken).toBe(true);
|
|
157
|
-
// Check that methods array contains expected methods
|
|
158
|
-
expect(oauth2ClientInfo.methodsFound).toContain('getAccessToken');
|
|
159
|
-
expect(oauth2ClientInfo.methodsFound).toContain('getValidToken');
|
|
160
|
-
});
|
|
161
|
-
it("should pass oauth2Client when using callToolAndGetNewContext", async () => {
|
|
162
|
-
const result = await dainConnection.callToolAndGetNewContext("oauth2-test-tool", {
|
|
163
|
-
message: "Testing with OAuth2"
|
|
164
|
-
});
|
|
165
|
-
// Verify tool executed
|
|
166
|
-
expect(result.toolResult.text).toBe("Processed: Testing with OAuth2");
|
|
167
|
-
// Verify context was called with oauth2Client
|
|
168
|
-
expect(oauth2ClientInfo.wasPresent).toBe(true);
|
|
169
|
-
expect(result.context[0].data.oauth2ClientPresent).toBe(true);
|
|
170
|
-
expect(result.context[0].data.hasGetAccessToken).toBe(true);
|
|
171
|
-
expect(result.context[0].data.hasGetValidToken).toBe(true);
|
|
172
|
-
});
|
|
173
|
-
it("should consistently pass oauth2Client across multiple context calls", async () => {
|
|
174
|
-
// Reset counter
|
|
175
|
-
oauth2ClientInfo.callCount = 0;
|
|
176
|
-
// Make multiple calls
|
|
177
|
-
await dainConnection.getAllContexts();
|
|
178
|
-
await dainConnection.callToolAndGetNewContext("oauth2-test-tool", { message: "call 1" });
|
|
179
|
-
await dainConnection.getAllContexts();
|
|
180
|
-
// Should have been called 3 times
|
|
181
|
-
expect(oauth2ClientInfo.callCount).toBe(3);
|
|
182
|
-
// OAuth2Client should have been present in all calls
|
|
183
|
-
// (we only track the last state, but if it's true after 3 calls, it was passed)
|
|
184
|
-
expect(oauth2ClientInfo.wasPresent).toBe(true);
|
|
185
|
-
});
|
|
186
|
-
});
|
|
187
|
-
describe("OAuth2Client methods accessibility", () => {
|
|
188
|
-
it("should provide a functional oauth2Client object", async () => {
|
|
189
|
-
const contexts = await dainConnection.getAllContexts();
|
|
190
|
-
// The context should report having the oauth2Client
|
|
191
|
-
expect(contexts[0].data.oauth2ClientPresent).toBe(true);
|
|
192
|
-
// Verify the methods are actually functions (checked in our context)
|
|
193
|
-
expect(contexts[0].data.hasGetAccessToken).toBe(true);
|
|
194
|
-
expect(contexts[0].data.hasGetValidToken).toBe(true);
|
|
195
|
-
// Verify we found multiple methods (should be more than just 2)
|
|
196
|
-
expect(oauth2ClientInfo.methodsFound.length).toBeGreaterThan(0);
|
|
197
|
-
expect(oauth2ClientInfo.methodsFound).toEqual(expect.arrayContaining(['getAccessToken', 'getValidToken']));
|
|
198
|
-
});
|
|
199
|
-
});
|
|
200
|
-
});
|
|
201
|
-
//# sourceMappingURL=oauth2-context.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"oauth2-context.test.js","sourceRoot":"","sources":["../../src/__tests__/oauth2-context.test.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,wDAA2D;AAC3D,0CAA4D;AAC5D,mDAAgD;AAChD,wDAAwB;AACxB,uDAAuD;AACvD,6CAAyD;AACzD,6EAA4E;AAE5E,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,IAAI,MAAW,CAAC;IAChB,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,oCAAoC;IAEvD,gCAAgC;IAChC,MAAM,UAAU,GAAG,iBAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC;IACpD,MAAM,SAAS,GAAG,iBAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IAEnD,+BAA+B;IAC/B,MAAM,gBAAgB,GAAG,iBAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC;IAE1D,MAAM,SAAS,GAAG,IAAI,4BAAc,CAAC;QACnC,gBAAgB,EAAE,cAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;QAC/C,OAAO,EAAE,2BAA2B;QACpC,KAAK,EAAE,yBAAyB;KACjC,CAAC,CAAC;IAEH,IAAI,cAAqC,CAAC;IAE1C,6BAA6B;IAC7B,MAAM,gBAAgB,GAAG;QACvB,UAAU,EAAE,KAAK;QACjB,uBAAuB,EAAE,KAAK;QAC9B,sBAAsB,EAAE,KAAK;QAC7B,YAAY,EAAE,EAAc;QAC5B,SAAS,EAAE,CAAC;KACb,CAAC;IAEF,8CAA8C;IAC9C,MAAM,mBAAmB,GAAG,IAAA,oBAAa,EAAC;QACxC,EAAE,EAAE,uBAAuB;QAC3B,IAAI,EAAE,uBAAuB;QAC7B,WAAW,EAAE,8CAA8C;QAC3D,cAAc,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE;YAC7C,gBAAgB,CAAC,SAAS,EAAE,CAAC;YAE7B,mCAAmC;YACnC,gBAAgB,CAAC,UAAU,GAAG,CAAC,CAAC,SAAS,EAAE,YAAY,CAAC;YAExD,IAAI,SAAS,EAAE,YAAY,EAAE,CAAC;gBAC5B,8DAA8D;gBAC9D,MAAM,QAAQ,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;gBAC1D,MAAM,gBAAgB,GAAG,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;gBACnG,gBAAgB,CAAC,YAAY,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,EAAE,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,aAAa,CAAC,CAAC;gBAElH,6BAA6B;gBAC7B,gBAAgB,CAAC,uBAAuB,GAAG,OAAO,SAAS,CAAC,YAAY,CAAC,cAAc,KAAK,UAAU,CAAC;gBACvG,gBAAgB,CAAC,sBAAsB,GAAG,OAAO,SAAS,CAAC,YAAY,CAAC,aAAa,KAAK,UAAU,CAAC;gBAErG,OAAO,CAAC,GAAG,CAAC,qCAAqC,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC;YACpF,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;YAC9C,CAAC;YAED,OAAO;gBACL,mBAAmB,EAAE,gBAAgB,CAAC,UAAU;gBAChD,mBAAmB,EAAE,gBAAgB,CAAC,YAAY;gBAClD,iBAAiB,EAAE,gBAAgB,CAAC,uBAAuB;gBAC3D,gBAAgB,EAAE,gBAAgB,CAAC,sBAAsB;gBACzD,SAAS,EAAE,gBAAgB,CAAC,SAAS;aACtC,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;IAEH,uBAAuB;IACvB,MAAM,QAAQ,GAAG,IAAA,iBAAU,EAAC;QAC1B,EAAE,EAAE,kBAAkB;QACtB,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,iCAAiC;QAC9C,KAAK,EAAE,OAAC,CAAC,MAAM,CAAC;YACd,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE;SACpB,CAAC;QACF,MAAM,EAAE,OAAC,CAAC,MAAM,CAAC;YACf,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE;SACnB,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YACvB,OAAO;gBACL,IAAI,EAAE,cAAc,KAAK,CAAC,OAAO,EAAE;gBACnC,IAAI,EAAE;oBACJ,MAAM,EAAE,aAAa,KAAK,CAAC,OAAO,EAAE;iBACrC;gBACD,EAAE,EAAE,SAAS;aACd,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,IAAA,+BAAiB,EAAC;QACpC,QAAQ,EAAE;YACR,KAAK,EAAE,qBAAqB;YAC5B,WAAW,EAAE,kCAAkC;YAC/C,OAAO,EAAE,OAAO;YAChB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC;SACpC;QACD,QAAQ,EAAE;YACR,SAAS,EAAE,cAAI,CAAC,MAAM,CAAC,SAAS,CAAC;YACjC,UAAU,EAAE,cAAI,CAAC,MAAM,CAAC,UAAU,CAAC;YACnC,OAAO,EAAE,2BAA2B;YACpC,KAAK,EAAE,yBAAyB;SACjC;QACD,mBAAmB;QACnB,MAAM,EAAE;YACN,OAAO,EAAE,oBAAoB,IAAI,EAAE;YACnC,SAAS,EAAE;gBACT,IAAI,EAAE;oBACJ,QAAQ,EAAE,gBAAgB;oBAC1B,YAAY,EAAE,oBAAoB;oBAClC,gBAAgB,EAAE,qCAAqC;oBACvD,QAAQ,EAAE,iCAAiC;oBAC3C,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;iBAC1B;aACF;YACD,UAAU,EAAE,IAAI,6CAAsB,EAAE;SACzC;QACD,KAAK,EAAE,CAAC,QAAQ,CAAC;QACjB,QAAQ,EAAE,CAAC,mBAAmB,CAAC;KAChC,CAAC,CAAC;IAEH,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,iBAAiB;QACjB,gBAAgB,CAAC,UAAU,GAAG,KAAK,CAAC;QACpC,gBAAgB,CAAC,uBAAuB,GAAG,KAAK,CAAC;QACjD,gBAAgB,CAAC,sBAAsB,GAAG,KAAK,CAAC;QAChD,gBAAgB,CAAC,YAAY,GAAG,EAAE,CAAC;QACnC,gBAAgB,CAAC,SAAS,GAAG,CAAC,CAAC;QAE/B,MAAM,GAAG,MAAM,WAAW,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,cAAc,GAAG,IAAI,8BAAqB,CACxC,oBAAoB,IAAI,EAAE,EAC1B,SAAS,CACV,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,KAAK,IAAI,EAAE;QAClB,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC9B,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,GAAG,EAAE;QACd,kCAAkC;QAClC,gBAAgB,CAAC,UAAU,GAAG,KAAK,CAAC;QACpC,gBAAgB,CAAC,uBAAuB,GAAG,KAAK,CAAC;QACjD,gBAAgB,CAAC,sBAAsB,GAAG,KAAK,CAAC;QAChD,gBAAgB,CAAC,YAAY,GAAG,EAAE,CAAC;QACnC,gBAAgB,CAAC,SAAS,GAAG,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,sCAAsC,EAAE,GAAG,EAAE;QACpD,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;YAC7E,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,cAAc,EAAE,CAAC;YAEvD,MAAM,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YAErD,iCAAiC;YACjC,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;YACjE,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,cAAc,EAAE,CAAC;YAEvD,mDAAmD;YACnD,MAAM,CAAC,gBAAgB,CAAC,uBAAuB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5D,MAAM,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAE3D,mCAAmC;YACnC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtD,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAErD,qDAAqD;YACrD,MAAM,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;YAClE,MAAM,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;YAC5E,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,wBAAwB,CAAC,kBAAkB,EAAE;gBAC/E,OAAO,EAAE,qBAAqB;aAC/B,CAAC,CAAC;YAEH,uBAAuB;YACvB,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;YAEtE,8CAA8C;YAC9C,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9D,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5D,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;YACnF,gBAAgB;YAChB,gBAAgB,CAAC,SAAS,GAAG,CAAC,CAAC;YAE/B,sBAAsB;YACtB,MAAM,cAAc,CAAC,cAAc,EAAE,CAAC;YACtC,MAAM,cAAc,CAAC,wBAAwB,CAAC,kBAAkB,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;YACzF,MAAM,cAAc,CAAC,cAAc,EAAE,CAAC;YAEtC,kCAAkC;YAClC,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAE3C,qDAAqD;YACrD,gFAAgF;YAChF,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAClD,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;YAC/D,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,cAAc,EAAE,CAAC;YAEvD,oDAAoD;YACpD,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAExD,qEAAqE;YACrE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtD,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAErD,gEAAgE;YAChE,MAAM,CAAC,gBAAgB,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YAChE,MAAM,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,OAAO,CAC3C,MAAM,CAAC,eAAe,CAAC,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC,CAC5D,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,251 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const tslib_1 = require("tslib");
|
|
4
|
-
const zod_1 = require("zod");
|
|
5
|
-
const nodeService_1 = require("../service/nodeService");
|
|
6
|
-
const core_1 = require("../service/core");
|
|
7
|
-
const ed25519_1 = require("@noble/curves/ed25519");
|
|
8
|
-
const bs58_1 = tslib_1.__importDefault(require("bs58"));
|
|
9
|
-
const client_auth_1 = require("../client/client-auth");
|
|
10
|
-
const client_1 = require("../client/client");
|
|
11
|
-
const oauth2_token_manager_1 = require("@dainprotocol/oauth2-token-manager");
|
|
12
|
-
describe("OAuth2Client in Datasources", () => {
|
|
13
|
-
let server;
|
|
14
|
-
const port = 4593; // Different port to avoid conflicts
|
|
15
|
-
// Generate keys for the service
|
|
16
|
-
const privateKey = ed25519_1.ed25519.utils.randomPrivateKey();
|
|
17
|
-
const publicKey = ed25519_1.ed25519.getPublicKey(privateKey);
|
|
18
|
-
// Generate keys for the client
|
|
19
|
-
const clientPrivateKey = ed25519_1.ed25519.utils.randomPrivateKey();
|
|
20
|
-
const agentAuth = new client_auth_1.DainClientAuth({
|
|
21
|
-
privateKeyBase58: bs58_1.default.encode(clientPrivateKey),
|
|
22
|
-
agentId: "oauth2-datasource-test-agent",
|
|
23
|
-
orgId: "oauth2-datasource-test-org",
|
|
24
|
-
});
|
|
25
|
-
let dainConnection;
|
|
26
|
-
// Track oauth2Client details in datasources
|
|
27
|
-
const datasourceOAuth2Info = {
|
|
28
|
-
wasPresent: false,
|
|
29
|
-
hadGetAccessTokenMethod: false,
|
|
30
|
-
hadGetValidTokenMethod: false,
|
|
31
|
-
methodsFound: [],
|
|
32
|
-
callCount: 0,
|
|
33
|
-
lastParams: null
|
|
34
|
-
};
|
|
35
|
-
// Create a simple dummy tool (required for service)
|
|
36
|
-
const dummyTool = (0, core_1.createTool)({
|
|
37
|
-
id: "dummy-tool",
|
|
38
|
-
name: "Dummy Tool",
|
|
39
|
-
description: "A dummy tool required for the service",
|
|
40
|
-
input: zod_1.z.object({
|
|
41
|
-
message: zod_1.z.string()
|
|
42
|
-
}),
|
|
43
|
-
output: zod_1.z.object({
|
|
44
|
-
result: zod_1.z.string()
|
|
45
|
-
}),
|
|
46
|
-
handler: async (input) => {
|
|
47
|
-
return {
|
|
48
|
-
text: `Dummy response: ${input.message}`,
|
|
49
|
-
data: {
|
|
50
|
-
result: `Processed: ${input.message}`
|
|
51
|
-
},
|
|
52
|
-
ui: undefined
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
});
|
|
56
|
-
// Create a datasource that verifies oauth2Client
|
|
57
|
-
const oauth2VerifyDatasource = (0, core_1.createDatasource)({
|
|
58
|
-
id: "oauth2-verify-datasource",
|
|
59
|
-
name: "OAuth2 Verify Datasource",
|
|
60
|
-
description: "Datasource that verifies oauth2Client is passed",
|
|
61
|
-
type: "json",
|
|
62
|
-
input: zod_1.z.object({
|
|
63
|
-
testParam: zod_1.z.string().optional()
|
|
64
|
-
}),
|
|
65
|
-
getDatasource: async (agentInfo, params, extraData) => {
|
|
66
|
-
datasourceOAuth2Info.callCount++;
|
|
67
|
-
datasourceOAuth2Info.lastParams = params;
|
|
68
|
-
// Check if oauth2Client is present
|
|
69
|
-
datasourceOAuth2Info.wasPresent = !!extraData?.oauth2Client;
|
|
70
|
-
if (extraData?.oauth2Client) {
|
|
71
|
-
// Get all property names including methods from the prototype
|
|
72
|
-
const allProps = [...Object.keys(extraData.oauth2Client)];
|
|
73
|
-
const prototypeMethods = Object.getOwnPropertyNames(Object.getPrototypeOf(extraData.oauth2Client));
|
|
74
|
-
datasourceOAuth2Info.methodsFound = [...new Set([...allProps, ...prototypeMethods])].filter(m => m !== 'constructor');
|
|
75
|
-
// Check for expected methods
|
|
76
|
-
datasourceOAuth2Info.hadGetAccessTokenMethod = typeof extraData.oauth2Client.getAccessToken === 'function';
|
|
77
|
-
datasourceOAuth2Info.hadGetValidTokenMethod = typeof extraData.oauth2Client.getValidToken === 'function';
|
|
78
|
-
console.log("OAuth2Client detected in datasource with methods:", datasourceOAuth2Info.methodsFound);
|
|
79
|
-
}
|
|
80
|
-
else {
|
|
81
|
-
console.log("No OAuth2Client in datasource extraData");
|
|
82
|
-
}
|
|
83
|
-
return {
|
|
84
|
-
oauth2ClientPresent: datasourceOAuth2Info.wasPresent,
|
|
85
|
-
oauth2ClientMethods: datasourceOAuth2Info.methodsFound,
|
|
86
|
-
hasGetAccessToken: datasourceOAuth2Info.hadGetAccessTokenMethod,
|
|
87
|
-
hasGetValidToken: datasourceOAuth2Info.hadGetValidTokenMethod,
|
|
88
|
-
callCount: datasourceOAuth2Info.callCount,
|
|
89
|
-
receivedParams: params
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
});
|
|
93
|
-
// Test without OAuth2 configured
|
|
94
|
-
describe("Without OAuth2 configuration", () => {
|
|
95
|
-
beforeAll(async () => {
|
|
96
|
-
// Reset tracking
|
|
97
|
-
datasourceOAuth2Info.wasPresent = false;
|
|
98
|
-
datasourceOAuth2Info.hadGetAccessTokenMethod = false;
|
|
99
|
-
datasourceOAuth2Info.hadGetValidTokenMethod = false;
|
|
100
|
-
datasourceOAuth2Info.methodsFound = [];
|
|
101
|
-
datasourceOAuth2Info.callCount = 0;
|
|
102
|
-
datasourceOAuth2Info.lastParams = null;
|
|
103
|
-
const serviceWithoutOAuth2 = (0, nodeService_1.defineDAINService)({
|
|
104
|
-
metadata: {
|
|
105
|
-
title: "Datasource OAuth2 Test (No OAuth2)",
|
|
106
|
-
description: "Testing oauth2Client in datasources without OAuth2",
|
|
107
|
-
version: "1.0.0",
|
|
108
|
-
author: "Test",
|
|
109
|
-
tags: ["test", "datasource", "no-oauth2"]
|
|
110
|
-
},
|
|
111
|
-
identity: {
|
|
112
|
-
publicKey: bs58_1.default.encode(publicKey),
|
|
113
|
-
privateKey: bs58_1.default.encode(privateKey),
|
|
114
|
-
agentId: "test-datasource-service-agent",
|
|
115
|
-
orgId: "test-datasource-service-org"
|
|
116
|
-
},
|
|
117
|
-
datasources: [oauth2VerifyDatasource],
|
|
118
|
-
tools: [dummyTool] // At least one tool is required
|
|
119
|
-
});
|
|
120
|
-
server = await serviceWithoutOAuth2.startNode({ port });
|
|
121
|
-
dainConnection = new client_1.DainServiceConnection(`http://localhost:${port}`, agentAuth);
|
|
122
|
-
});
|
|
123
|
-
afterAll(async () => {
|
|
124
|
-
if (server && server.shutdown) {
|
|
125
|
-
await server.shutdown();
|
|
126
|
-
}
|
|
127
|
-
});
|
|
128
|
-
it("should pass undefined oauth2Client when OAuth2 is not configured", async () => {
|
|
129
|
-
const datasourceData = await dainConnection.getDatasource("oauth2-verify-datasource", {
|
|
130
|
-
testParam: "test without oauth2"
|
|
131
|
-
});
|
|
132
|
-
expect(datasourceData.id).toBe("oauth2-verify-datasource");
|
|
133
|
-
expect(datasourceOAuth2Info.wasPresent).toBe(false);
|
|
134
|
-
expect(datasourceData.data.oauth2ClientPresent).toBe(false);
|
|
135
|
-
expect(datasourceData.data.receivedParams.testParam).toBe("test without oauth2");
|
|
136
|
-
});
|
|
137
|
-
});
|
|
138
|
-
// Test with OAuth2 configured
|
|
139
|
-
describe("With OAuth2 configuration", () => {
|
|
140
|
-
beforeAll(async () => {
|
|
141
|
-
// Shutdown previous server if running
|
|
142
|
-
if (server && server.shutdown) {
|
|
143
|
-
await server.shutdown();
|
|
144
|
-
}
|
|
145
|
-
// Reset tracking
|
|
146
|
-
datasourceOAuth2Info.wasPresent = false;
|
|
147
|
-
datasourceOAuth2Info.hadGetAccessTokenMethod = false;
|
|
148
|
-
datasourceOAuth2Info.hadGetValidTokenMethod = false;
|
|
149
|
-
datasourceOAuth2Info.methodsFound = [];
|
|
150
|
-
datasourceOAuth2Info.callCount = 0;
|
|
151
|
-
datasourceOAuth2Info.lastParams = null;
|
|
152
|
-
const serviceWithOAuth2 = (0, nodeService_1.defineDAINService)({
|
|
153
|
-
metadata: {
|
|
154
|
-
title: "Datasource OAuth2 Test (With OAuth2)",
|
|
155
|
-
description: "Testing oauth2Client in datasources with OAuth2",
|
|
156
|
-
version: "1.0.0",
|
|
157
|
-
author: "Test",
|
|
158
|
-
tags: ["test", "datasource", "oauth2"]
|
|
159
|
-
},
|
|
160
|
-
identity: {
|
|
161
|
-
publicKey: bs58_1.default.encode(publicKey),
|
|
162
|
-
privateKey: bs58_1.default.encode(privateKey),
|
|
163
|
-
agentId: "test-oauth2-datasource-agent",
|
|
164
|
-
orgId: "test-oauth2-datasource-org"
|
|
165
|
-
},
|
|
166
|
-
// Configure OAuth2
|
|
167
|
-
oauth2: {
|
|
168
|
-
baseUrl: `http://localhost:${port}`,
|
|
169
|
-
providers: {
|
|
170
|
-
test: {
|
|
171
|
-
clientId: "test-client-id",
|
|
172
|
-
clientSecret: "test-client-secret",
|
|
173
|
-
authorizationUrl: "https://example.com/oauth/authorize",
|
|
174
|
-
tokenUrl: "https://example.com/oauth/token",
|
|
175
|
-
scopes: ["read", "write"]
|
|
176
|
-
}
|
|
177
|
-
},
|
|
178
|
-
tokenStore: new oauth2_token_manager_1.InMemoryStorageAdapter()
|
|
179
|
-
},
|
|
180
|
-
datasources: [oauth2VerifyDatasource],
|
|
181
|
-
tools: [dummyTool] // At least one tool is required
|
|
182
|
-
});
|
|
183
|
-
server = await serviceWithOAuth2.startNode({ port: port + 1 }); // Use different port
|
|
184
|
-
dainConnection = new client_1.DainServiceConnection(`http://localhost:${port + 1}`, agentAuth);
|
|
185
|
-
});
|
|
186
|
-
afterAll(async () => {
|
|
187
|
-
if (server && server.shutdown) {
|
|
188
|
-
await server.shutdown();
|
|
189
|
-
}
|
|
190
|
-
});
|
|
191
|
-
beforeEach(() => {
|
|
192
|
-
// Reset tracking before each test
|
|
193
|
-
datasourceOAuth2Info.wasPresent = false;
|
|
194
|
-
datasourceOAuth2Info.hadGetAccessTokenMethod = false;
|
|
195
|
-
datasourceOAuth2Info.hadGetValidTokenMethod = false;
|
|
196
|
-
datasourceOAuth2Info.methodsFound = [];
|
|
197
|
-
datasourceOAuth2Info.callCount = 0;
|
|
198
|
-
datasourceOAuth2Info.lastParams = null;
|
|
199
|
-
});
|
|
200
|
-
it("should pass oauth2Client to datasource when OAuth2 is configured", async () => {
|
|
201
|
-
const datasourceData = await dainConnection.getDatasource("oauth2-verify-datasource", {
|
|
202
|
-
testParam: "test with oauth2"
|
|
203
|
-
});
|
|
204
|
-
expect(datasourceData.id).toBe("oauth2-verify-datasource");
|
|
205
|
-
// Verify oauth2Client was passed
|
|
206
|
-
expect(datasourceOAuth2Info.wasPresent).toBe(true);
|
|
207
|
-
expect(datasourceData.data.oauth2ClientPresent).toBe(true);
|
|
208
|
-
expect(datasourceData.data.receivedParams.testParam).toBe("test with oauth2");
|
|
209
|
-
});
|
|
210
|
-
it("should provide oauth2Client with expected methods to datasource", async () => {
|
|
211
|
-
const datasourceData = await dainConnection.getDatasource("oauth2-verify-datasource", {
|
|
212
|
-
testParam: "test methods"
|
|
213
|
-
});
|
|
214
|
-
// Check that oauth2Client has the expected methods
|
|
215
|
-
expect(datasourceOAuth2Info.hadGetAccessTokenMethod).toBe(true);
|
|
216
|
-
expect(datasourceOAuth2Info.hadGetValidTokenMethod).toBe(true);
|
|
217
|
-
// Verify through the returned data
|
|
218
|
-
expect(datasourceData.data.hasGetAccessToken).toBe(true);
|
|
219
|
-
expect(datasourceData.data.hasGetValidToken).toBe(true);
|
|
220
|
-
// Check that methods array contains expected methods
|
|
221
|
-
expect(datasourceOAuth2Info.methodsFound).toContain('getAccessToken');
|
|
222
|
-
expect(datasourceOAuth2Info.methodsFound).toContain('getValidToken');
|
|
223
|
-
});
|
|
224
|
-
it("should pass oauth2Client on multiple datasource calls", async () => {
|
|
225
|
-
// Reset counter
|
|
226
|
-
datasourceOAuth2Info.callCount = 0;
|
|
227
|
-
// Make multiple calls
|
|
228
|
-
await dainConnection.getDatasource("oauth2-verify-datasource", { testParam: "call 1" });
|
|
229
|
-
await dainConnection.getDatasource("oauth2-verify-datasource", { testParam: "call 2" });
|
|
230
|
-
await dainConnection.getDatasource("oauth2-verify-datasource", { testParam: "call 3" });
|
|
231
|
-
// Should have been called 3 times
|
|
232
|
-
expect(datasourceOAuth2Info.callCount).toBe(3);
|
|
233
|
-
// OAuth2Client should have been present in all calls
|
|
234
|
-
expect(datasourceOAuth2Info.wasPresent).toBe(true);
|
|
235
|
-
// Last params should be from the last call
|
|
236
|
-
expect(datasourceOAuth2Info.lastParams.testParam).toBe("call 3");
|
|
237
|
-
});
|
|
238
|
-
it("should provide a functional oauth2Client object to datasource", async () => {
|
|
239
|
-
const datasourceData = await dainConnection.getDatasource("oauth2-verify-datasource", {});
|
|
240
|
-
// The datasource should report having the oauth2Client
|
|
241
|
-
expect(datasourceData.data.oauth2ClientPresent).toBe(true);
|
|
242
|
-
// Verify the methods are actually functions (checked in our datasource)
|
|
243
|
-
expect(datasourceData.data.hasGetAccessToken).toBe(true);
|
|
244
|
-
expect(datasourceData.data.hasGetValidToken).toBe(true);
|
|
245
|
-
// Verify we found multiple methods
|
|
246
|
-
expect(datasourceOAuth2Info.methodsFound.length).toBeGreaterThan(0);
|
|
247
|
-
expect(datasourceOAuth2Info.methodsFound).toEqual(expect.arrayContaining(['getAccessToken', 'getValidToken']));
|
|
248
|
-
});
|
|
249
|
-
});
|
|
250
|
-
});
|
|
251
|
-
//# sourceMappingURL=oauth2-datasource.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"oauth2-datasource.test.js","sourceRoot":"","sources":["../../src/__tests__/oauth2-datasource.test.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,wDAA2D;AAC3D,0CAA+D;AAC/D,mDAAgD;AAChD,wDAAwB;AACxB,uDAAuD;AACvD,6CAAyD;AACzD,6EAA4E;AAE5E,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;IAC3C,IAAI,MAAW,CAAC;IAChB,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,oCAAoC;IAEvD,gCAAgC;IAChC,MAAM,UAAU,GAAG,iBAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC;IACpD,MAAM,SAAS,GAAG,iBAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IAEnD,+BAA+B;IAC/B,MAAM,gBAAgB,GAAG,iBAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC;IAE1D,MAAM,SAAS,GAAG,IAAI,4BAAc,CAAC;QACnC,gBAAgB,EAAE,cAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;QAC/C,OAAO,EAAE,8BAA8B;QACvC,KAAK,EAAE,4BAA4B;KACpC,CAAC,CAAC;IAEH,IAAI,cAAqC,CAAC;IAE1C,4CAA4C;IAC5C,MAAM,oBAAoB,GAAG;QAC3B,UAAU,EAAE,KAAK;QACjB,uBAAuB,EAAE,KAAK;QAC9B,sBAAsB,EAAE,KAAK;QAC7B,YAAY,EAAE,EAAc;QAC5B,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE,IAAW;KACxB,CAAC;IAEF,oDAAoD;IACpD,MAAM,SAAS,GAAG,IAAA,iBAAU,EAAC;QAC3B,EAAE,EAAE,YAAY;QAChB,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,uCAAuC;QACpD,KAAK,EAAE,OAAC,CAAC,MAAM,CAAC;YACd,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE;SACpB,CAAC;QACF,MAAM,EAAE,OAAC,CAAC,MAAM,CAAC;YACf,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE;SACnB,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YACvB,OAAO;gBACL,IAAI,EAAE,mBAAmB,KAAK,CAAC,OAAO,EAAE;gBACxC,IAAI,EAAE;oBACJ,MAAM,EAAE,cAAc,KAAK,CAAC,OAAO,EAAE;iBACtC;gBACD,EAAE,EAAE,SAAS;aACd,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;IAEH,iDAAiD;IACjD,MAAM,sBAAsB,GAAG,IAAA,uBAAgB,EAAC;QAC9C,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,0BAA0B;QAChC,WAAW,EAAE,iDAAiD;QAC9D,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,OAAC,CAAC,MAAM,CAAC;YACd,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SACjC,CAAC;QACF,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE;YACpD,oBAAoB,CAAC,SAAS,EAAE,CAAC;YACjC,oBAAoB,CAAC,UAAU,GAAG,MAAM,CAAC;YAEzC,mCAAmC;YACnC,oBAAoB,CAAC,UAAU,GAAG,CAAC,CAAC,SAAS,EAAE,YAAY,CAAC;YAE5D,IAAI,SAAS,EAAE,YAAY,EAAE,CAAC;gBAC5B,8DAA8D;gBAC9D,MAAM,QAAQ,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;gBAC1D,MAAM,gBAAgB,GAAG,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;gBACnG,oBAAoB,CAAC,YAAY,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,EAAE,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,aAAa,CAAC,CAAC;gBAEtH,6BAA6B;gBAC7B,oBAAoB,CAAC,uBAAuB,GAAG,OAAO,SAAS,CAAC,YAAY,CAAC,cAAc,KAAK,UAAU,CAAC;gBAC3G,oBAAoB,CAAC,sBAAsB,GAAG,OAAO,SAAS,CAAC,YAAY,CAAC,aAAa,KAAK,UAAU,CAAC;gBAEzG,OAAO,CAAC,GAAG,CAAC,mDAAmD,EAAE,oBAAoB,CAAC,YAAY,CAAC,CAAC;YACtG,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;YACzD,CAAC;YAED,OAAO;gBACL,mBAAmB,EAAE,oBAAoB,CAAC,UAAU;gBACpD,mBAAmB,EAAE,oBAAoB,CAAC,YAAY;gBACtD,iBAAiB,EAAE,oBAAoB,CAAC,uBAAuB;gBAC/D,gBAAgB,EAAE,oBAAoB,CAAC,sBAAsB;gBAC7D,SAAS,EAAE,oBAAoB,CAAC,SAAS;gBACzC,cAAc,EAAE,MAAM;aACvB,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;IAEH,iCAAiC;IACjC,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;QAC5C,SAAS,CAAC,KAAK,IAAI,EAAE;YACnB,iBAAiB;YACjB,oBAAoB,CAAC,UAAU,GAAG,KAAK,CAAC;YACxC,oBAAoB,CAAC,uBAAuB,GAAG,KAAK,CAAC;YACrD,oBAAoB,CAAC,sBAAsB,GAAG,KAAK,CAAC;YACpD,oBAAoB,CAAC,YAAY,GAAG,EAAE,CAAC;YACvC,oBAAoB,CAAC,SAAS,GAAG,CAAC,CAAC;YACnC,oBAAoB,CAAC,UAAU,GAAG,IAAI,CAAC;YAEvC,MAAM,oBAAoB,GAAG,IAAA,+BAAiB,EAAC;gBAC7C,QAAQ,EAAE;oBACR,KAAK,EAAE,oCAAoC;oBAC3C,WAAW,EAAE,oDAAoD;oBACjE,OAAO,EAAE,OAAO;oBAChB,MAAM,EAAE,MAAM;oBACd,IAAI,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,WAAW,CAAC;iBAC1C;gBACD,QAAQ,EAAE;oBACR,SAAS,EAAE,cAAI,CAAC,MAAM,CAAC,SAAS,CAAC;oBACjC,UAAU,EAAE,cAAI,CAAC,MAAM,CAAC,UAAU,CAAC;oBACnC,OAAO,EAAE,+BAA+B;oBACxC,KAAK,EAAE,6BAA6B;iBACrC;gBACD,WAAW,EAAE,CAAC,sBAAsB,CAAC;gBACrC,KAAK,EAAE,CAAC,SAAS,CAAC,CAAC,gCAAgC;aACpD,CAAC,CAAC;YAEH,MAAM,GAAG,MAAM,oBAAoB,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;YACxD,cAAc,GAAG,IAAI,8BAAqB,CACxC,oBAAoB,IAAI,EAAE,EAC1B,SAAS,CACV,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,KAAK,IAAI,EAAE;YAClB,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAC9B,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC1B,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;YAChF,MAAM,cAAc,GAAG,MAAM,cAAc,CAAC,aAAa,CAAC,0BAA0B,EAAE;gBACpF,SAAS,EAAE,qBAAqB;aACjC,CAAC,CAAC;YAEH,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YAC3D,MAAM,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpD,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5D,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACnF,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,8BAA8B;IAC9B,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACzC,SAAS,CAAC,KAAK,IAAI,EAAE;YACnB,sCAAsC;YACtC,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAC9B,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC1B,CAAC;YAED,iBAAiB;YACjB,oBAAoB,CAAC,UAAU,GAAG,KAAK,CAAC;YACxC,oBAAoB,CAAC,uBAAuB,GAAG,KAAK,CAAC;YACrD,oBAAoB,CAAC,sBAAsB,GAAG,KAAK,CAAC;YACpD,oBAAoB,CAAC,YAAY,GAAG,EAAE,CAAC;YACvC,oBAAoB,CAAC,SAAS,GAAG,CAAC,CAAC;YACnC,oBAAoB,CAAC,UAAU,GAAG,IAAI,CAAC;YAEvC,MAAM,iBAAiB,GAAG,IAAA,+BAAiB,EAAC;gBAC1C,QAAQ,EAAE;oBACR,KAAK,EAAE,sCAAsC;oBAC7C,WAAW,EAAE,iDAAiD;oBAC9D,OAAO,EAAE,OAAO;oBAChB,MAAM,EAAE,MAAM;oBACd,IAAI,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,QAAQ,CAAC;iBACvC;gBACD,QAAQ,EAAE;oBACR,SAAS,EAAE,cAAI,CAAC,MAAM,CAAC,SAAS,CAAC;oBACjC,UAAU,EAAE,cAAI,CAAC,MAAM,CAAC,UAAU,CAAC;oBACnC,OAAO,EAAE,8BAA8B;oBACvC,KAAK,EAAE,4BAA4B;iBACpC;gBACD,mBAAmB;gBACnB,MAAM,EAAE;oBACN,OAAO,EAAE,oBAAoB,IAAI,EAAE;oBACnC,SAAS,EAAE;wBACT,IAAI,EAAE;4BACJ,QAAQ,EAAE,gBAAgB;4BAC1B,YAAY,EAAE,oBAAoB;4BAClC,gBAAgB,EAAE,qCAAqC;4BACvD,QAAQ,EAAE,iCAAiC;4BAC3C,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;yBAC1B;qBACF;oBACD,UAAU,EAAE,IAAI,6CAAsB,EAAE;iBACzC;gBACD,WAAW,EAAE,CAAC,sBAAsB,CAAC;gBACrC,KAAK,EAAE,CAAC,SAAS,CAAC,CAAC,gCAAgC;aACpD,CAAC,CAAC;YAEH,MAAM,GAAG,MAAM,iBAAiB,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,qBAAqB;YACrF,cAAc,GAAG,IAAI,8BAAqB,CACxC,oBAAoB,IAAI,GAAG,CAAC,EAAE,EAC9B,SAAS,CACV,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,KAAK,IAAI,EAAE;YAClB,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAC9B,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC1B,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,UAAU,CAAC,GAAG,EAAE;YACd,kCAAkC;YAClC,oBAAoB,CAAC,UAAU,GAAG,KAAK,CAAC;YACxC,oBAAoB,CAAC,uBAAuB,GAAG,KAAK,CAAC;YACrD,oBAAoB,CAAC,sBAAsB,GAAG,KAAK,CAAC;YACpD,oBAAoB,CAAC,YAAY,GAAG,EAAE,CAAC;YACvC,oBAAoB,CAAC,SAAS,GAAG,CAAC,CAAC;YACnC,oBAAoB,CAAC,UAAU,GAAG,IAAI,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;YAChF,MAAM,cAAc,GAAG,MAAM,cAAc,CAAC,aAAa,CAAC,0BAA0B,EAAE;gBACpF,SAAS,EAAE,kBAAkB;aAC9B,CAAC,CAAC;YAEH,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YAE3D,iCAAiC;YACjC,MAAM,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnD,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3D,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAChF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;YAC/E,MAAM,cAAc,GAAG,MAAM,cAAc,CAAC,aAAa,CAAC,0BAA0B,EAAE;gBACpF,SAAS,EAAE,cAAc;aAC1B,CAAC,CAAC;YAEH,mDAAmD;YACnD,MAAM,CAAC,oBAAoB,CAAC,uBAAuB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChE,MAAM,CAAC,oBAAoB,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAE/D,mCAAmC;YACnC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzD,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAExD,qDAAqD;YACrD,MAAM,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;YACtE,MAAM,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QACvE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;YACrE,gBAAgB;YAChB,oBAAoB,CAAC,SAAS,GAAG,CAAC,CAAC;YAEnC,sBAAsB;YACtB,MAAM,cAAc,CAAC,aAAa,CAAC,0BAA0B,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;YACxF,MAAM,cAAc,CAAC,aAAa,CAAC,0BAA0B,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;YACxF,MAAM,cAAc,CAAC,aAAa,CAAC,0BAA0B,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;YAExF,kCAAkC;YAClC,MAAM,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAE/C,qDAAqD;YACrD,MAAM,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEnD,2CAA2C;YAC3C,MAAM,CAAC,oBAAoB,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;YAC7E,MAAM,cAAc,GAAG,MAAM,cAAc,CAAC,aAAa,CAAC,0BAA0B,EAAE,EAAE,CAAC,CAAC;YAE1F,uDAAuD;YACvD,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAE3D,wEAAwE;YACxE,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzD,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAExD,mCAAmC;YACnC,MAAM,CAAC,oBAAoB,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YACpE,MAAM,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC,OAAO,CAC/C,MAAM,CAAC,eAAe,CAAC,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC,CAC5D,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|