@memberjunction/server 4.0.0 → 4.1.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/README.md +689 -513
- package/dist/auth/newUsers.d.ts.map +1 -1
- package/dist/auth/newUsers.js +4 -2
- package/dist/auth/newUsers.js.map +1 -1
- package/dist/generated/generated.d.ts +20 -6
- package/dist/generated/generated.d.ts.map +1 -1
- package/dist/generated/generated.js +107 -51
- package/dist/generated/generated.js.map +1 -1
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -1
- package/dist/resolvers/FileCategoryResolver.d.ts +1 -1
- package/dist/resolvers/FileCategoryResolver.d.ts.map +1 -1
- package/dist/resolvers/FileCategoryResolver.js +2 -2
- package/dist/resolvers/FileCategoryResolver.js.map +1 -1
- package/dist/resolvers/InfoResolver.d.ts +2 -2
- package/dist/resolvers/InfoResolver.d.ts.map +1 -1
- package/dist/resolvers/InfoResolver.js +13 -13
- package/dist/resolvers/InfoResolver.js.map +1 -1
- package/package.json +52 -48
- package/src/auth/newUsers.ts +4 -2
- package/src/generated/generated.ts +82 -40
- package/src/index.ts +12 -0
- package/src/resolvers/FileCategoryResolver.ts +1 -1
- package/src/resolvers/InfoResolver.ts +5 -5
- package/dist/apolloServer/TransactionPlugin.d.ts +0 -4
- package/dist/apolloServer/TransactionPlugin.d.ts.map +0 -1
- package/dist/apolloServer/TransactionPlugin.js +0 -46
- package/dist/apolloServer/TransactionPlugin.js.map +0 -1
- package/dist/auth/__tests__/backward-compatibility.test.d.ts +0 -2
- package/dist/auth/__tests__/backward-compatibility.test.d.ts.map +0 -1
- package/dist/auth/__tests__/backward-compatibility.test.js +0 -135
- package/dist/auth/__tests__/backward-compatibility.test.js.map +0 -1
- package/dist/resolvers/AskSkipResolver.d.ts +0 -123
- package/dist/resolvers/AskSkipResolver.d.ts.map +0 -1
- package/dist/resolvers/AskSkipResolver.js +0 -1788
- package/dist/resolvers/AskSkipResolver.js.map +0 -1
- package/dist/scheduler/LearningCycleScheduler.d.ts +0 -4
- package/dist/scheduler/LearningCycleScheduler.d.ts.map +0 -1
- package/dist/scheduler/LearningCycleScheduler.js +0 -4
- package/dist/scheduler/LearningCycleScheduler.js.map +0 -1
package/src/index.ts
CHANGED
|
@@ -88,6 +88,18 @@ export * from './resolvers/CreateQueryResolver.js';
|
|
|
88
88
|
export * from './resolvers/TelemetryResolver.js';
|
|
89
89
|
export * from './resolvers/APIKeyResolver.js';
|
|
90
90
|
export * from './resolvers/MCPResolver.js';
|
|
91
|
+
export * from './resolvers/ActionResolver.js';
|
|
92
|
+
export * from './resolvers/EntityCommunicationsResolver.js';
|
|
93
|
+
export * from './resolvers/EntityResolver.js';
|
|
94
|
+
export * from './resolvers/FileCategoryResolver.js';
|
|
95
|
+
export * from './resolvers/FileResolver.js';
|
|
96
|
+
export * from './resolvers/InfoResolver.js';
|
|
97
|
+
export * from './resolvers/PotentialDuplicateRecordResolver.js';
|
|
98
|
+
export * from './resolvers/RunTestResolver.js';
|
|
99
|
+
export * from './resolvers/UserFavoriteResolver.js';
|
|
100
|
+
export * from './resolvers/UserResolver.js';
|
|
101
|
+
export * from './resolvers/UserViewResolver.js';
|
|
102
|
+
export * from './resolvers/VersionHistoryResolver.js';
|
|
91
103
|
export { GetReadOnlyDataSource, GetReadWriteDataSource, GetReadWriteProvider, GetReadOnlyProvider } from './util.js';
|
|
92
104
|
|
|
93
105
|
export * from './generated/generated.js';
|
|
@@ -7,7 +7,7 @@ import sql from 'mssql';
|
|
|
7
7
|
import { SQLServerDataProvider } from '@memberjunction/sqlserver-dataprovider';
|
|
8
8
|
import { GetReadWriteProvider } from '../util.js';
|
|
9
9
|
|
|
10
|
-
export class
|
|
10
|
+
export class FileCategoryResolver extends FileCategoryResolverBase {
|
|
11
11
|
@Mutation(() => MJFileCategory_)
|
|
12
12
|
async DeleteFileCategory(
|
|
13
13
|
@Arg('ID', () => String) ID: string,
|
|
@@ -9,7 +9,7 @@ const require = createRequire(import.meta.url);
|
|
|
9
9
|
const packageJson = require('../../package.json') as { version: string };
|
|
10
10
|
|
|
11
11
|
@ObjectType()
|
|
12
|
-
export class
|
|
12
|
+
export class ServerInfo {
|
|
13
13
|
@Public()
|
|
14
14
|
@Field()
|
|
15
15
|
Version: string;
|
|
@@ -33,11 +33,11 @@ export class Info {
|
|
|
33
33
|
Hostname: string;
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
@Resolver(
|
|
37
|
-
export class InfoResolver {
|
|
36
|
+
@Resolver(ServerInfo)
|
|
37
|
+
export class InfoResolver {
|
|
38
38
|
@Public()
|
|
39
|
-
@Query(() =>
|
|
40
|
-
Info(@Ctx() context: AppContext):
|
|
39
|
+
@Query(() => ServerInfo)
|
|
40
|
+
Info(@Ctx() context: AppContext): ServerInfo {
|
|
41
41
|
return {
|
|
42
42
|
Version: packageJson.version,
|
|
43
43
|
IsSystemUser: Boolean(context.userPayload.isSystemUser),
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TransactionPlugin.d.ts","sourceRoot":"","sources":["../../src/apolloServer/TransactionPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAgF,MAAM,gBAAgB,CAAC;AAElI,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,eAAO,MAAM,iBAAiB,EAAE,kBAAkB,CAAC,UAAU,CAgD5D,CAAC"}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import sql from 'mssql';
|
|
2
|
-
export const TransactionPlugin = {
|
|
3
|
-
async requestDidStart(requestContext) {
|
|
4
|
-
const start = Date.now();
|
|
5
|
-
const query = requestContext.request.query || '';
|
|
6
|
-
const isMutation = /^\s*mutation\b/i.test(query);
|
|
7
|
-
if (!isMutation) {
|
|
8
|
-
return null;
|
|
9
|
-
}
|
|
10
|
-
const pool = requestContext.contextValue.dataSource;
|
|
11
|
-
const transaction = new sql.Transaction(pool);
|
|
12
|
-
requestContext.contextValue.transaction = transaction;
|
|
13
|
-
console.log('Starting transaction wrapper, time spent: ', Date.now() - start, 'ms ');
|
|
14
|
-
await transaction.begin();
|
|
15
|
-
return {
|
|
16
|
-
didEncounterErrors: async (requestContext) => {
|
|
17
|
-
console.log('Error in transaction wrapper: ' + requestContext.errors, 'time spent: ', Date.now() - start, 'ms');
|
|
18
|
-
},
|
|
19
|
-
executionDidStart: async () => {
|
|
20
|
-
return {
|
|
21
|
-
executionDidEnd: async (err) => {
|
|
22
|
-
try {
|
|
23
|
-
if (err) {
|
|
24
|
-
console.log('Error in transaction, rolling back, time spent: ', Date.now() - start, 'ms ');
|
|
25
|
-
console.error('Rolling back transaction', err);
|
|
26
|
-
await transaction.rollback();
|
|
27
|
-
}
|
|
28
|
-
else {
|
|
29
|
-
console.log('Committing transaction, time spent: ', Date.now() - start, 'ms ');
|
|
30
|
-
await transaction.commit();
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
catch (execErr) {
|
|
34
|
-
console.log('Execution Error, time spent: ', Date.now() - start, 'ms ');
|
|
35
|
-
console.error(execErr);
|
|
36
|
-
}
|
|
37
|
-
finally {
|
|
38
|
-
console.log('Transaction complete, time spent: ', Date.now() - start, 'ms ');
|
|
39
|
-
}
|
|
40
|
-
},
|
|
41
|
-
};
|
|
42
|
-
},
|
|
43
|
-
};
|
|
44
|
-
},
|
|
45
|
-
};
|
|
46
|
-
//# sourceMappingURL=TransactionPlugin.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TransactionPlugin.js","sourceRoot":"","sources":["../../src/apolloServer/TransactionPlugin.ts"],"names":[],"mappings":"AACA,OAAO,GAAG,MAAM,OAAO,CAAC;AAGxB,MAAM,CAAC,MAAM,iBAAiB,GAAmC;IAC/D,KAAK,CAAC,eAAe,CAAC,cAAc;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;QACjD,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEjD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC;QACd,CAAC;QAKD,MAAM,IAAI,GAAuB,cAAc,CAAC,YAAY,CAAC,UAAU,CAAC;QACxE,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAG7C,cAAc,CAAC,YAAoB,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,4CAA4C,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,KAAK,CAAC,CAAC;QACrF,MAAM,WAAW,CAAC,KAAK,EAAE,CAAC;QAE1B,OAAO;YACL,kBAAkB,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE;gBAC3C,OAAO,CAAC,GAAG,CAAC,gCAAgC,GAAG,cAAc,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC;YAClH,CAAC;YACD,iBAAiB,EAAE,KAAK,IAAI,EAAE;gBAC5B,OAAO;oBACL,eAAe,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;wBAC7B,IAAI,CAAC;4BACH,IAAI,GAAG,EAAE,CAAC;gCACR,OAAO,CAAC,GAAG,CAAC,kDAAkD,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,KAAK,CAAC,CAAC;gCAC3F,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,GAAG,CAAC,CAAC;gCAC/C,MAAM,WAAW,CAAC,QAAQ,EAAE,CAAC;4BAC/B,CAAC;iCAAM,CAAC;gCACN,OAAO,CAAC,GAAG,CAAC,sCAAsC,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,KAAK,CAAC,CAAC;gCAC/E,MAAM,WAAW,CAAC,MAAM,EAAE,CAAC;4BAC7B,CAAC;wBACH,CAAC;wBAAC,OAAO,OAAO,EAAE,CAAC;4BACjB,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,KAAK,CAAC,CAAC;4BACxE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;wBACzB,CAAC;gCAAS,CAAC;4BACT,OAAO,CAAC,GAAG,CAAC,oCAAoC,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,KAAK,CAAC,CAAC;wBAC/E,CAAC;oBACH,CAAC;iBACF,CAAC;YACJ,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"backward-compatibility.test.d.ts","sourceRoot":"","sources":["../../../src/auth/__tests__/backward-compatibility.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect, beforeEach, afterEach, jest } from '@jest/globals';
|
|
2
|
-
import { AuthProviderFactory } from '../AuthProviderFactory.js';
|
|
3
|
-
import { initializeAuthProviders } from '../initializeProviders.js';
|
|
4
|
-
describe('Authentication Provider Backward Compatibility', () => {
|
|
5
|
-
let factory;
|
|
6
|
-
beforeEach(() => {
|
|
7
|
-
factory = AuthProviderFactory.getInstance();
|
|
8
|
-
factory.clear();
|
|
9
|
-
});
|
|
10
|
-
afterEach(() => {
|
|
11
|
-
factory.clear();
|
|
12
|
-
});
|
|
13
|
-
describe('Legacy Configuration Support', () => {
|
|
14
|
-
it('should create MSAL provider from legacy config', () => {
|
|
15
|
-
process.env.TENANT_ID = 'test-tenant-id';
|
|
16
|
-
process.env.WEB_CLIENT_ID = 'test-client-id';
|
|
17
|
-
initializeAuthProviders();
|
|
18
|
-
const msalProvider = factory.getByName('msal');
|
|
19
|
-
expect(msalProvider).toBeDefined();
|
|
20
|
-
expect(msalProvider?.issuer).toContain('test-tenant-id');
|
|
21
|
-
expect(msalProvider?.audience).toBe('test-client-id');
|
|
22
|
-
});
|
|
23
|
-
it('should create Auth0 provider from legacy config', () => {
|
|
24
|
-
process.env.AUTH0_DOMAIN = 'test.auth0.com';
|
|
25
|
-
process.env.AUTH0_CLIENT_ID = 'auth0-client-id';
|
|
26
|
-
process.env.AUTH0_CLIENT_SECRET = 'auth0-secret';
|
|
27
|
-
initializeAuthProviders();
|
|
28
|
-
const auth0Provider = factory.getByName('auth0');
|
|
29
|
-
expect(auth0Provider).toBeDefined();
|
|
30
|
-
expect(auth0Provider?.issuer).toBe('https://test.auth0.com/');
|
|
31
|
-
expect(auth0Provider?.audience).toBe('auth0-client-id');
|
|
32
|
-
});
|
|
33
|
-
});
|
|
34
|
-
describe('Provider Registry Functionality', () => {
|
|
35
|
-
it('should find providers by issuer with different formats', () => {
|
|
36
|
-
const testProvider = {
|
|
37
|
-
name: 'test',
|
|
38
|
-
issuer: 'https://test.provider.com/oauth2',
|
|
39
|
-
audience: 'test-audience',
|
|
40
|
-
jwksUri: 'https://test.provider.com/.well-known/jwks.json',
|
|
41
|
-
validateConfig: () => true,
|
|
42
|
-
getSigningKey: jest.fn(),
|
|
43
|
-
extractUserInfo: jest.fn(),
|
|
44
|
-
matchesIssuer: (issuer) => {
|
|
45
|
-
const normalized = issuer.toLowerCase().replace(/\/$/, '');
|
|
46
|
-
return normalized === 'https://test.provider.com/oauth2';
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
|
-
factory.register(testProvider);
|
|
50
|
-
expect(factory.getByIssuer('https://test.provider.com/oauth2')).toBe(testProvider);
|
|
51
|
-
expect(factory.getByIssuer('https://test.provider.com/oauth2/')).toBe(testProvider);
|
|
52
|
-
expect(factory.getByIssuer('https://TEST.PROVIDER.COM/oauth2')).toBe(testProvider);
|
|
53
|
-
});
|
|
54
|
-
it('should cache issuer lookups for performance', () => {
|
|
55
|
-
const testProvider = {
|
|
56
|
-
name: 'test',
|
|
57
|
-
issuer: 'https://test.provider.com',
|
|
58
|
-
audience: 'test',
|
|
59
|
-
jwksUri: 'https://test.provider.com/jwks',
|
|
60
|
-
validateConfig: () => true,
|
|
61
|
-
getSigningKey: jest.fn(),
|
|
62
|
-
extractUserInfo: jest.fn(),
|
|
63
|
-
matchesIssuer: jest.fn((issuer) => issuer === 'https://test.provider.com')
|
|
64
|
-
};
|
|
65
|
-
factory.register(testProvider);
|
|
66
|
-
factory.getByIssuer('https://test.provider.com');
|
|
67
|
-
expect(testProvider.matchesIssuer).toHaveBeenCalledTimes(1);
|
|
68
|
-
factory.getByIssuer('https://test.provider.com');
|
|
69
|
-
expect(testProvider.matchesIssuer).toHaveBeenCalledTimes(1);
|
|
70
|
-
});
|
|
71
|
-
});
|
|
72
|
-
describe('User Info Extraction', () => {
|
|
73
|
-
it('should extract user info from different token formats', () => {
|
|
74
|
-
const msalPayload = {
|
|
75
|
-
iss: 'https://login.microsoftonline.com/tenant/v2.0',
|
|
76
|
-
email: 'user@example.com',
|
|
77
|
-
given_name: 'John',
|
|
78
|
-
family_name: 'Doe',
|
|
79
|
-
name: 'John Doe',
|
|
80
|
-
preferred_username: 'john.doe@example.com'
|
|
81
|
-
};
|
|
82
|
-
const auth0Payload = {
|
|
83
|
-
iss: 'https://test.auth0.com/',
|
|
84
|
-
email: 'user@example.com',
|
|
85
|
-
given_name: 'Jane',
|
|
86
|
-
family_name: 'Smith',
|
|
87
|
-
name: 'Jane Smith'
|
|
88
|
-
};
|
|
89
|
-
const oktaPayload = {
|
|
90
|
-
iss: 'https://test.okta.com/oauth2/default',
|
|
91
|
-
email: 'user@example.com',
|
|
92
|
-
given_name: 'Bob',
|
|
93
|
-
family_name: 'Johnson',
|
|
94
|
-
name: 'Bob Johnson',
|
|
95
|
-
preferred_username: 'bob.johnson'
|
|
96
|
-
};
|
|
97
|
-
initializeAuthProviders();
|
|
98
|
-
const msalProvider = factory.getByIssuer(msalPayload.iss);
|
|
99
|
-
if (msalProvider) {
|
|
100
|
-
const msalUserInfo = msalProvider.extractUserInfo(msalPayload);
|
|
101
|
-
expect(msalUserInfo.email).toBe('user@example.com');
|
|
102
|
-
expect(msalUserInfo.firstName).toBe('John');
|
|
103
|
-
expect(msalUserInfo.lastName).toBe('Doe');
|
|
104
|
-
}
|
|
105
|
-
const auth0Provider = factory.getByIssuer(auth0Payload.iss);
|
|
106
|
-
if (auth0Provider) {
|
|
107
|
-
const auth0UserInfo = auth0Provider.extractUserInfo(auth0Payload);
|
|
108
|
-
expect(auth0UserInfo.email).toBe('user@example.com');
|
|
109
|
-
expect(auth0UserInfo.firstName).toBe('Jane');
|
|
110
|
-
expect(auth0UserInfo.lastName).toBe('Smith');
|
|
111
|
-
}
|
|
112
|
-
});
|
|
113
|
-
});
|
|
114
|
-
describe('Error Handling', () => {
|
|
115
|
-
it('should handle missing provider gracefully', () => {
|
|
116
|
-
const unknownIssuer = 'https://unknown.provider.com';
|
|
117
|
-
const provider = factory.getByIssuer(unknownIssuer);
|
|
118
|
-
expect(provider).toBeUndefined();
|
|
119
|
-
});
|
|
120
|
-
it('should validate provider configuration', () => {
|
|
121
|
-
const invalidProvider = {
|
|
122
|
-
name: 'invalid',
|
|
123
|
-
issuer: '',
|
|
124
|
-
audience: 'test',
|
|
125
|
-
jwksUri: 'https://test.com/jwks',
|
|
126
|
-
validateConfig: () => false,
|
|
127
|
-
getSigningKey: jest.fn(),
|
|
128
|
-
extractUserInfo: jest.fn(),
|
|
129
|
-
matchesIssuer: jest.fn()
|
|
130
|
-
};
|
|
131
|
-
expect(() => factory.register(invalidProvider)).toThrow();
|
|
132
|
-
});
|
|
133
|
-
});
|
|
134
|
-
});
|
|
135
|
-
//# sourceMappingURL=backward-compatibility.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"backward-compatibility.test.js","sourceRoot":"","sources":["../../../src/auth/__tests__/backward-compatibility.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
import { PubSubEngine } from 'type-graphql';
|
|
2
|
-
import { Metadata, UserInfo, EntityFieldInfo, EntityInfo, EntityRelationshipInfo } from '@memberjunction/core';
|
|
3
|
-
import { AppContext, UserPayload } from '../types.js';
|
|
4
|
-
import { DataContext } from '@memberjunction/data-context';
|
|
5
|
-
import { SkipAPIRequest, SkipAPIResponse, SkipMessage, SkipAPIAnalysisCompleteResponse, SkipAPIDataRequestResponse, SkipAPIClarifyingQuestionResponse, SkipEntityInfo, SkipQueryInfo, SkipAPIRequestAPIKey, SkipRequestPhase, SkipAPIAgentNote, SkipAPIAgentNoteType, SkipEntityFieldInfo, SkipEntityRelationshipInfo, SkipEntityFieldValueInfo, SkipAPILearningCycleRequest, SkipConversation, SkipAPIArtifact, SkipAPIAgentRequest } from '@memberjunction/skip-types';
|
|
6
|
-
import { ConversationDetailEntity, ConversationEntity, DataContextEntity } from '@memberjunction/core-entities';
|
|
7
|
-
import mssql from 'mssql';
|
|
8
|
-
import { CompositeKeyInputType } from '../generic/KeyInputOutputTypes.js';
|
|
9
|
-
import { GetDataAccessToken } from './GetDataResolver.js';
|
|
10
|
-
declare class ReattachConversationResponse {
|
|
11
|
-
lastStatusMessage?: string;
|
|
12
|
-
startTime?: Date;
|
|
13
|
-
}
|
|
14
|
-
declare enum SkipResponsePhase {
|
|
15
|
-
ClarifyingQuestion = "clarifying_question",
|
|
16
|
-
DataRequest = "data_request",
|
|
17
|
-
AnalysisComplete = "analysis_complete"
|
|
18
|
-
}
|
|
19
|
-
export declare class AskSkipResultType {
|
|
20
|
-
Success: boolean;
|
|
21
|
-
Status: string;
|
|
22
|
-
ResponsePhase: SkipResponsePhase;
|
|
23
|
-
Result: string;
|
|
24
|
-
ConversationId: string;
|
|
25
|
-
UserMessageConversationDetailId: string;
|
|
26
|
-
AIMessageConversationDetailId: string;
|
|
27
|
-
}
|
|
28
|
-
export declare class ManualLearningCycleResultType {
|
|
29
|
-
Success: boolean;
|
|
30
|
-
Message: string;
|
|
31
|
-
}
|
|
32
|
-
export declare class CycleDetailsType {
|
|
33
|
-
LearningCycleId: string;
|
|
34
|
-
StartTime: string;
|
|
35
|
-
RunningForMinutes: number;
|
|
36
|
-
}
|
|
37
|
-
export declare class RunningOrganizationType {
|
|
38
|
-
OrganizationId: string;
|
|
39
|
-
LearningCycleId: string;
|
|
40
|
-
StartTime: string;
|
|
41
|
-
RunningForMinutes: number;
|
|
42
|
-
}
|
|
43
|
-
export declare class LearningCycleStatusType {
|
|
44
|
-
IsSchedulerRunning: boolean;
|
|
45
|
-
LastRunTime: string;
|
|
46
|
-
RunningOrganizations: RunningOrganizationType[];
|
|
47
|
-
}
|
|
48
|
-
export declare class StopLearningCycleResultType {
|
|
49
|
-
Success: boolean;
|
|
50
|
-
Message: string;
|
|
51
|
-
WasRunning: boolean;
|
|
52
|
-
CycleDetails: CycleDetailsType;
|
|
53
|
-
}
|
|
54
|
-
type BaseSkipRequest = {
|
|
55
|
-
entities: SkipEntityInfo[];
|
|
56
|
-
queries: SkipQueryInfo[];
|
|
57
|
-
notes: SkipAPIAgentNote[];
|
|
58
|
-
noteTypes: SkipAPIAgentNoteType[];
|
|
59
|
-
requests: SkipAPIAgentRequest[];
|
|
60
|
-
accessToken: GetDataAccessToken;
|
|
61
|
-
organizationID: string;
|
|
62
|
-
organizationInfo: any;
|
|
63
|
-
apiKeys: SkipAPIRequestAPIKey[];
|
|
64
|
-
callingServerURL: string;
|
|
65
|
-
callingServerAPIKey: string;
|
|
66
|
-
callingServerAccessToken: string;
|
|
67
|
-
userEmail: string;
|
|
68
|
-
};
|
|
69
|
-
export declare class AskSkipResolver {
|
|
70
|
-
private static _defaultNewChatName;
|
|
71
|
-
private static _maxHistoricalMessages;
|
|
72
|
-
ExecuteAskSkipRecordChat(UserQuestion: string, ConversationId: string, EntityName: string, compositeKey: CompositeKeyInputType, { dataSource, userPayload, providers }: AppContext, pubSub: PubSubEngine): Promise<AskSkipResultType>;
|
|
73
|
-
protected handleSimpleSkipChatPostRequest(input: SkipAPIRequest, convoEntity?: ConversationEntity, convoDetailEntity?: ConversationDetailEntity, createAIMessageConversationDetail?: boolean, user?: UserInfo, userPayload?: UserPayload): Promise<AskSkipResultType>;
|
|
74
|
-
protected CreateAIMessageConversationDetail(apiResponse: SkipAPIResponse, conversationID: string, user: UserInfo, userPayload: UserPayload): Promise<string>;
|
|
75
|
-
protected buildBaseSkipRequest(contextUser: UserInfo, dataSource: mssql.ConnectionPool, includeEntities: boolean, includeQueries: boolean, includeNotes: boolean, filterUserNotesToContextUser: boolean, includeRequests: boolean, forceEntitiesRefresh?: boolean, includeCallBackKeyAndAccessToken?: boolean, additionalTokenInfo?: any): Promise<BaseSkipRequest>;
|
|
76
|
-
protected buildSkipLearningAPIRequest(learningCycleId: string, lastLearningCycleDate: Date, includeEntities: boolean, includeQueries: boolean, includeNotes: boolean, includeRequests: boolean, dataSource: mssql.ConnectionPool, contextUser: UserInfo, forceEntitiesRefresh?: boolean, includeCallBackKeyAndAccessToken?: boolean): Promise<SkipAPILearningCycleRequest>;
|
|
77
|
-
protected BuildSkipLearningCycleNewConversations(lastLearningCycleDate: Date, dataSource: mssql.ConnectionPool, contextUser: UserInfo): Promise<SkipConversation[]>;
|
|
78
|
-
protected BuildSkipRequests(contextUser: UserInfo): Promise<SkipAPIAgentRequest[]>;
|
|
79
|
-
protected GetLastCompleteLearningCycleDate(agentID: string, user: UserInfo): Promise<Date>;
|
|
80
|
-
protected buildSkipChatAPIRequest(messages: SkipMessage[], conversationId: string, dataContext: DataContext, requestPhase: SkipRequestPhase, includeEntities: boolean, includeQueries: boolean, includeNotes: boolean, includeRequests: boolean, contextUser: UserInfo, dataSource: mssql.ConnectionPool, forceEntitiesRefresh?: boolean, includeCallBackKeyAndAccessToken?: boolean): Promise<SkipAPIRequest>;
|
|
81
|
-
protected buildSkipAPIArtifacts(contextUser: UserInfo, dataSource: mssql.ConnectionPool, conversationId: string): Promise<SkipAPIArtifact[]>;
|
|
82
|
-
ExecuteAskSkipRunScript({ dataSource, userPayload }: AppContext, pubSub: PubSubEngine, DataContextId: string, ScriptText: string): Promise<AskSkipResultType>;
|
|
83
|
-
protected buildSkipAPIKeys(): SkipAPIRequestAPIKey[];
|
|
84
|
-
ReattachToProcessingConversation(ConversationId: string, { userPayload, providers }: AppContext, pubSub: PubSubEngine): Promise<ReattachConversationResponse | null>;
|
|
85
|
-
ExecuteAskSkipAnalysisQuery(UserQuestion: string, ConversationId: string, { dataSource, userPayload, providers }: AppContext, pubSub: PubSubEngine, DataContextId?: string, ForceEntityRefresh?: boolean, StartTime?: Date): Promise<AskSkipResultType>;
|
|
86
|
-
protected buildQueryCategoryPath(md: Metadata, categoryID: string): string;
|
|
87
|
-
protected BuildSkipQueries(status?: "Pending" | "In-Review" | "Approved" | "Rejected" | "Obsolete"): SkipQueryInfo[];
|
|
88
|
-
protected PackEntityRows(e: EntityInfo, dataSource: mssql.ConnectionPool): Promise<any[]>;
|
|
89
|
-
protected PackFieldPossibleValues(f: EntityFieldInfo, dataSource: mssql.ConnectionPool): Promise<SkipEntityFieldValueInfo[]>;
|
|
90
|
-
protected GetFieldDistinctValues(f: EntityFieldInfo, dataSource: mssql.ConnectionPool): Promise<SkipEntityFieldValueInfo[]>;
|
|
91
|
-
private static __skipEntitiesCache$;
|
|
92
|
-
private static __lastRefreshTime;
|
|
93
|
-
private static __refreshInProgress;
|
|
94
|
-
private refreshSkipEntities;
|
|
95
|
-
BuildSkipEntities(dataSource: mssql.ConnectionPool, forceRefresh?: boolean, refreshIntervalMinutes?: number): Promise<SkipEntityInfo[]>;
|
|
96
|
-
protected PackSingleSkipEntityInfo(e: EntityInfo, dataSource: mssql.ConnectionPool): Promise<SkipEntityInfo>;
|
|
97
|
-
protected PackSingleSkipEntityRelationship(r: EntityRelationshipInfo): SkipEntityRelationshipInfo;
|
|
98
|
-
protected PackSingleSkipEntityField(f: EntityFieldInfo, dataSource: mssql.ConnectionPool): Promise<SkipEntityFieldInfo>;
|
|
99
|
-
protected HandleSkipChatInitialObjectLoading(dataSource: mssql.ConnectionPool, ConversationId: string, UserQuestion: string, user: UserInfo, userPayload: UserPayload, md: Metadata, DataContextId: string): Promise<{
|
|
100
|
-
convoEntity: ConversationEntity;
|
|
101
|
-
dataContextEntity: DataContextEntity;
|
|
102
|
-
convoDetailEntity: ConversationDetailEntity;
|
|
103
|
-
dataContext: DataContext;
|
|
104
|
-
}>;
|
|
105
|
-
protected LoadConversationDetailsIntoSkipMessages(dataSource: mssql.ConnectionPool, ConversationId: string, maxHistoricalMessages?: number, roleFilter?: string): Promise<SkipMessage[]>;
|
|
106
|
-
protected MapDBRoleToSkipRole(role: string): 'user' | 'system';
|
|
107
|
-
protected HandleSkipChatRequest(input: SkipAPIRequest, UserQuestion: string, user: UserInfo, dataSource: mssql.ConnectionPool, ConversationId: string, userPayload: UserPayload, pubSub: PubSubEngine, md: Metadata, convoEntity: ConversationEntity, convoDetailEntity: ConversationDetailEntity, dataContext: DataContext, dataContextEntity: DataContextEntity, conversationDetailCount: number, startTime: Date): Promise<AskSkipResultType>;
|
|
108
|
-
protected buildSkipPostHeaders(): {
|
|
109
|
-
[key: string]: string;
|
|
110
|
-
};
|
|
111
|
-
protected PublishApiResponseUserUpdateMessage(apiResponse: SkipAPIResponse, userPayload: UserPayload, conversationID: string, pubSub: PubSubEngine): Promise<void>;
|
|
112
|
-
protected HandleAnalysisComplete(apiRequest: SkipAPIRequest, apiResponse: SkipAPIAnalysisCompleteResponse, UserQuestion: string, user: UserInfo, dataSource: mssql.ConnectionPool, ConversationId: string, userPayload: UserPayload, pubSub: PubSubEngine, convoEntity: ConversationEntity, convoDetailEntity: ConversationDetailEntity, dataContext: DataContext, dataContextEntity: DataContextEntity, startTime: Date): Promise<AskSkipResultType>;
|
|
113
|
-
protected HandleClarifyingQuestionPhase(apiRequest: SkipAPIRequest, apiResponse: SkipAPIClarifyingQuestionResponse, UserQuestion: string, user: UserInfo, dataSource: mssql.ConnectionPool, ConversationId: string, userPayload: UserPayload, pubSub: PubSubEngine, convoEntity: ConversationEntity, convoDetailEntity: ConversationDetailEntity, startTime: Date): Promise<AskSkipResultType>;
|
|
114
|
-
protected HandleDataRequestPhase(apiRequest: SkipAPIRequest, apiResponse: SkipAPIDataRequestResponse, UserQuestion: string, user: UserInfo, dataSource: mssql.ConnectionPool, ConversationId: string, userPayload: UserPayload, pubSub: PubSubEngine, convoEntity: ConversationEntity, convoDetailEntity: ConversationDetailEntity, dataContext: DataContext, dataContextEntity: DataContextEntity, conversationDetailCount: number, startTime: Date): Promise<AskSkipResultType>;
|
|
115
|
-
protected FinishConversationAndNotifyUser(apiResponse: SkipAPIAnalysisCompleteResponse, dataContext: DataContext, dataContextEntity: DataContextEntity, md: Metadata, user: UserInfo, convoEntity: ConversationEntity, pubSub: PubSubEngine, userPayload: UserPayload, dataSource: mssql.ConnectionPool, startTime: Date): Promise<{
|
|
116
|
-
AIMessageConversationDetailID: string;
|
|
117
|
-
}>;
|
|
118
|
-
private setConversationStatus;
|
|
119
|
-
protected getAgentNoteTypeIDByName(name: string, defaultNoteType?: string): string;
|
|
120
|
-
protected getViewData(ViewId: string, user: UserInfo): Promise<any>;
|
|
121
|
-
}
|
|
122
|
-
export default AskSkipResolver;
|
|
123
|
-
//# sourceMappingURL=AskSkipResolver.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AskSkipResolver.d.ts","sourceRoot":"","sources":["../../src/resolvers/AskSkipResolver.ts"],"names":[],"mappings":"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"}
|