@memberjunction/server 5.35.0 → 5.37.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/agents/skip-agent.d.ts.map +1 -1
- package/dist/agents/skip-agent.js +14 -2
- package/dist/agents/skip-agent.js.map +1 -1
- package/dist/agents/skip-sdk.d.ts +10 -0
- package/dist/agents/skip-sdk.d.ts.map +1 -1
- package/dist/agents/skip-sdk.js +139 -1
- package/dist/agents/skip-sdk.js.map +1 -1
- package/dist/generated/generated.d.ts +29 -5
- package/dist/generated/generated.d.ts.map +1 -1
- package/dist/generated/generated.js +137 -15
- package/dist/generated/generated.js.map +1 -1
- package/dist/resolvers/AdhocQueryResolver.d.ts +2 -0
- package/dist/resolvers/AdhocQueryResolver.d.ts.map +1 -1
- package/dist/resolvers/AdhocQueryResolver.js +57 -9
- package/dist/resolvers/AdhocQueryResolver.js.map +1 -1
- package/dist/resolvers/ListOperationsResolver.d.ts +175 -0
- package/dist/resolvers/ListOperationsResolver.d.ts.map +1 -0
- package/dist/resolvers/ListOperationsResolver.js +930 -0
- package/dist/resolvers/ListOperationsResolver.js.map +1 -0
- package/package.json +70 -68
- package/src/__tests__/AdhocQueryResolver.bugs.test.ts +269 -0
- package/src/__tests__/ListOperationsResolver.test.ts +182 -0
- package/src/agents/skip-agent.ts +15 -2
- package/src/agents/skip-sdk.ts +148 -1
- package/src/generated/generated.ts +101 -15
- package/src/resolvers/AdhocQueryResolver.ts +57 -10
- package/src/resolvers/ListOperationsResolver.ts +607 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdhocQueryResolver.d.ts","sourceRoot":"","sources":["../../src/resolvers/AdhocQueryResolver.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AdhocQueryResolver.d.ts","sourceRoot":"","sources":["../../src/resolvers/AdhocQueryResolver.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAGxD;;;GAGG;AACH,cACM,eAAe;IAEjB,GAAG,EAAE,MAAM,CAAC;IAGZ,cAAc,CAAC,EAAE,MAAM,CAAC;IAGxB,OAAO,CAAC,EAAE,MAAM,CAAC;IAGjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;GAUG;AACH,qBACa,kBAAmB,SAAQ,YAAY;IAE1C,iBAAiB,CACkB,KAAK,EAAE,eAAe,EACpD,OAAO,EAAE,UAAU,GAC3B,OAAO,CAAC,kBAAkB,CAAC;IAwH9B,OAAO,CAAC,gBAAgB;CAc3B"}
|
|
@@ -13,7 +13,8 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
13
13
|
import { Arg, Ctx, Query, Resolver, Field, Int, InputType } from 'type-graphql';
|
|
14
14
|
import { LogError } from '@memberjunction/core';
|
|
15
15
|
import { SQLExpressionValidator } from '@memberjunction/global';
|
|
16
|
-
import {
|
|
16
|
+
import { RenderPipeline } from '@memberjunction/generic-database-provider';
|
|
17
|
+
import { GetReadOnlyDataSource, GetReadOnlyProvider } from '../util.js';
|
|
17
18
|
import { ResolverBase } from '../generic/ResolverBase.js';
|
|
18
19
|
import { RunQueryResultType } from './QueryResolver.js';
|
|
19
20
|
import sql from 'mssql';
|
|
@@ -31,6 +32,14 @@ __decorate([
|
|
|
31
32
|
Field(() => Int, { nullable: true, description: 'Query timeout in seconds. Defaults to 30.' }),
|
|
32
33
|
__metadata("design:type", Number)
|
|
33
34
|
], AdhocQueryInput.prototype, "TimeoutSeconds", void 0);
|
|
35
|
+
__decorate([
|
|
36
|
+
Field(() => Int, { nullable: true, description: 'Maximum number of rows to return; applied at the database via the render pipeline.' }),
|
|
37
|
+
__metadata("design:type", Number)
|
|
38
|
+
], AdhocQueryInput.prototype, "MaxRows", void 0);
|
|
39
|
+
__decorate([
|
|
40
|
+
Field(() => Int, { nullable: true, description: 'Zero-based offset for pagination. When > 0, the row cap switches to OFFSET/FETCH pagination.' }),
|
|
41
|
+
__metadata("design:type", Number)
|
|
42
|
+
], AdhocQueryInput.prototype, "StartRow", void 0);
|
|
34
43
|
AdhocQueryInput = __decorate([
|
|
35
44
|
InputType()
|
|
36
45
|
], AdhocQueryInput);
|
|
@@ -63,24 +72,63 @@ let AdhocQueryResolver = class AdhocQueryResolver extends ResolverBase {
|
|
|
63
72
|
catch {
|
|
64
73
|
return this.buildErrorResult('No read-only data source available for ad-hoc query execution');
|
|
65
74
|
}
|
|
66
|
-
// 3.
|
|
75
|
+
// 3. Resolve platform from the read-only provider for the render pipeline.
|
|
76
|
+
let platform = 'sqlserver';
|
|
77
|
+
try {
|
|
78
|
+
const provider = GetReadOnlyProvider(context.providers, { allowFallbackToReadWrite: false });
|
|
79
|
+
if (provider?.PlatformKey)
|
|
80
|
+
platform = provider.PlatformKey;
|
|
81
|
+
}
|
|
82
|
+
catch {
|
|
83
|
+
// Provider not configured — keep the default platform.
|
|
84
|
+
}
|
|
85
|
+
const contextUser = context.userPayload?.userRecord;
|
|
86
|
+
// 4. Route the SQL through RenderPipeline so composition tokens
|
|
87
|
+
// resolve, comments and templates are processed, and the row cap
|
|
88
|
+
// is applied at the database (via TOP / LIMIT / OFFSET-FETCH).
|
|
89
|
+
const startRow = input.StartRow ?? 0;
|
|
90
|
+
const maxRows = input.MaxRows;
|
|
91
|
+
const usePaging = maxRows != null &&
|
|
92
|
+
Number.isInteger(maxRows) &&
|
|
93
|
+
maxRows > 0 &&
|
|
94
|
+
Number.isInteger(startRow) &&
|
|
95
|
+
startRow > 0;
|
|
96
|
+
let executableSql;
|
|
97
|
+
try {
|
|
98
|
+
const rendered = RenderPipeline.Run(input.SQL, {
|
|
99
|
+
Platform: platform,
|
|
100
|
+
ContextUser: contextUser,
|
|
101
|
+
...(usePaging
|
|
102
|
+
? { Paging: { StartRow: startRow, MaxRows: maxRows } }
|
|
103
|
+
: maxRows != null && maxRows > 0
|
|
104
|
+
? { MaxRows: maxRows }
|
|
105
|
+
: {}),
|
|
106
|
+
});
|
|
107
|
+
executableSql = rendered.FinalSQL;
|
|
108
|
+
}
|
|
109
|
+
catch (renderErr) {
|
|
110
|
+
const renderMsg = renderErr instanceof Error ? renderErr.message : String(renderErr);
|
|
111
|
+
return this.buildErrorResult(`Ad-hoc query rendering failed: ${renderMsg}`);
|
|
112
|
+
}
|
|
113
|
+
// 5. Execute with timeout
|
|
67
114
|
const timeoutMs = (input.TimeoutSeconds ?? 30) * 1000;
|
|
68
115
|
const request = new sql.Request(readOnlyDS);
|
|
69
116
|
const result = await Promise.race([
|
|
70
|
-
request.query(
|
|
117
|
+
request.query(executableSql),
|
|
71
118
|
new Promise((_, reject) => setTimeout(() => reject(new Error('Query timeout exceeded')), timeoutMs))
|
|
72
119
|
]);
|
|
73
120
|
const executionTimeMs = Date.now() - startTime;
|
|
74
|
-
//
|
|
121
|
+
// 6. Return as RunQueryResultType
|
|
122
|
+
const recordset = result.recordset ?? [];
|
|
75
123
|
return {
|
|
76
124
|
QueryID: '',
|
|
77
125
|
QueryName: 'Ad-Hoc Query',
|
|
78
126
|
Success: true,
|
|
79
|
-
Results: JSON.stringify(
|
|
80
|
-
RowCount:
|
|
81
|
-
TotalRowCount:
|
|
82
|
-
PageNumber: undefined,
|
|
83
|
-
PageSize: undefined,
|
|
127
|
+
Results: JSON.stringify(recordset),
|
|
128
|
+
RowCount: recordset.length,
|
|
129
|
+
TotalRowCount: recordset.length,
|
|
130
|
+
PageNumber: maxRows != null && maxRows > 0 ? Math.floor(startRow / maxRows) + 1 : undefined,
|
|
131
|
+
PageSize: maxRows ?? undefined,
|
|
84
132
|
ExecutionTime: executionTimeMs,
|
|
85
133
|
ErrorMessage: ''
|
|
86
134
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdhocQueryResolver.js","sourceRoot":"","sources":["../../src/resolvers/AdhocQueryResolver.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAChF,OAAO,
|
|
1
|
+
{"version":3,"file":"AdhocQueryResolver.js","sourceRoot":"","sources":["../../src/resolvers/AdhocQueryResolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import type { ApplyResult as CoreApplyResult, ListDelta as CoreListDelta, ListDeltaWarning as CoreListDeltaWarning, ListShareSummary, ListSource as CoreListSource, SetOpKind, SharePermissionLevel } from '@memberjunction/lists-base';
|
|
2
|
+
import { ResolverBase } from '../generic/ResolverBase.js';
|
|
3
|
+
import { AppContext } from '../types.js';
|
|
4
|
+
/**
|
|
5
|
+
* Discriminated source descriptor as a flat input. GraphQL does not support
|
|
6
|
+
* tagged unions in inputs, so we encode the discriminator in `Kind` and
|
|
7
|
+
* the variant-specific payload in optional fields. Runtime validation
|
|
8
|
+
* enforces the right field-presence per kind.
|
|
9
|
+
*/
|
|
10
|
+
export declare class ListSourceInput {
|
|
11
|
+
Kind: 'list' | 'view' | 'adhoc';
|
|
12
|
+
ListID?: string;
|
|
13
|
+
ViewID?: string;
|
|
14
|
+
EntityName?: string;
|
|
15
|
+
ExtraFilter?: string;
|
|
16
|
+
}
|
|
17
|
+
export declare class MaterializeOptionsInput {
|
|
18
|
+
ListName: string;
|
|
19
|
+
CategoryId?: string;
|
|
20
|
+
Description?: string;
|
|
21
|
+
RememberLineage: boolean;
|
|
22
|
+
UseSnapshot: boolean;
|
|
23
|
+
RefreshMode: 'Additive' | 'Sync';
|
|
24
|
+
}
|
|
25
|
+
export declare class ListDeltaCountsType {
|
|
26
|
+
Add: number;
|
|
27
|
+
Remove: number;
|
|
28
|
+
Unchanged: number;
|
|
29
|
+
SourceTotal: number;
|
|
30
|
+
TargetTotal: number;
|
|
31
|
+
}
|
|
32
|
+
export declare class ListDeltaWarningType {
|
|
33
|
+
Code: string;
|
|
34
|
+
Message: string;
|
|
35
|
+
/** Structured payload, JSON-stringified for GraphQL-over-the-wire portability. */
|
|
36
|
+
DetailsJSON?: string;
|
|
37
|
+
}
|
|
38
|
+
export declare class ListDeltaType {
|
|
39
|
+
TargetListId?: string | null;
|
|
40
|
+
EntityName: string;
|
|
41
|
+
ToAdd: string[];
|
|
42
|
+
ToRemove: string[];
|
|
43
|
+
Unchanged: string[];
|
|
44
|
+
Counts: ListDeltaCountsType;
|
|
45
|
+
Warnings: ListDeltaWarningType[];
|
|
46
|
+
DeltaToken: string;
|
|
47
|
+
}
|
|
48
|
+
export declare class ApplyListResultType {
|
|
49
|
+
Success: boolean;
|
|
50
|
+
ResultCode: string;
|
|
51
|
+
Message: string;
|
|
52
|
+
CreatedListId?: string;
|
|
53
|
+
TargetListId?: string;
|
|
54
|
+
AddedCount?: number;
|
|
55
|
+
RemovedCount?: number;
|
|
56
|
+
FailedCount?: number;
|
|
57
|
+
Errors?: string[];
|
|
58
|
+
}
|
|
59
|
+
export declare class ComputeDeltaInput {
|
|
60
|
+
Target: string;
|
|
61
|
+
Source: ListSourceInput;
|
|
62
|
+
Mode: 'Additive' | 'Sync';
|
|
63
|
+
}
|
|
64
|
+
export declare class ApplyDeltaInput {
|
|
65
|
+
TargetListId: string;
|
|
66
|
+
EntityName: string;
|
|
67
|
+
ToAdd: string[];
|
|
68
|
+
ToRemove: string[];
|
|
69
|
+
Unchanged: string[];
|
|
70
|
+
AddCount: number;
|
|
71
|
+
RemoveCount: number;
|
|
72
|
+
UnchangedCount: number;
|
|
73
|
+
SourceTotal: number;
|
|
74
|
+
TargetTotal: number;
|
|
75
|
+
DeltaToken: string;
|
|
76
|
+
ConfirmDrops: boolean;
|
|
77
|
+
}
|
|
78
|
+
export declare class ShareTargetInput {
|
|
79
|
+
Kind: 'user' | 'role';
|
|
80
|
+
UserID?: string;
|
|
81
|
+
RoleID?: string;
|
|
82
|
+
}
|
|
83
|
+
export declare class ShareListInput {
|
|
84
|
+
ListID: string;
|
|
85
|
+
Target: ShareTargetInput;
|
|
86
|
+
PermissionLevel: SharePermissionLevel;
|
|
87
|
+
}
|
|
88
|
+
export declare class InviteToListInput {
|
|
89
|
+
ListID: string;
|
|
90
|
+
Email: string;
|
|
91
|
+
Role: 'Editor' | 'Viewer';
|
|
92
|
+
TtlHours?: number;
|
|
93
|
+
}
|
|
94
|
+
export declare class ShareTargetType {
|
|
95
|
+
Kind: 'user' | 'role';
|
|
96
|
+
UserID?: string;
|
|
97
|
+
RoleID?: string;
|
|
98
|
+
}
|
|
99
|
+
export declare class ListShareSummaryType {
|
|
100
|
+
PermissionID: string;
|
|
101
|
+
ListID: string;
|
|
102
|
+
Target: ShareTargetType;
|
|
103
|
+
PermissionLevel: SharePermissionLevel;
|
|
104
|
+
Status: string;
|
|
105
|
+
SharedByUserID?: string;
|
|
106
|
+
CreatedAt: Date;
|
|
107
|
+
}
|
|
108
|
+
export declare class SharedListSummaryType {
|
|
109
|
+
ListID: string;
|
|
110
|
+
ListName: string;
|
|
111
|
+
PermissionLevel: SharePermissionLevel;
|
|
112
|
+
SharedByUserID?: string;
|
|
113
|
+
SharedAt: Date;
|
|
114
|
+
}
|
|
115
|
+
export declare class ShareResultType {
|
|
116
|
+
Success: boolean;
|
|
117
|
+
ResultCode: string;
|
|
118
|
+
Message: string;
|
|
119
|
+
PermissionID?: string;
|
|
120
|
+
}
|
|
121
|
+
export declare class InviteResultType {
|
|
122
|
+
Success: boolean;
|
|
123
|
+
ResultCode: string;
|
|
124
|
+
Message: string;
|
|
125
|
+
InvitationID?: string;
|
|
126
|
+
Token?: string;
|
|
127
|
+
ExpiresAt?: Date;
|
|
128
|
+
}
|
|
129
|
+
export declare class AcceptInvitationResultType {
|
|
130
|
+
Success: boolean;
|
|
131
|
+
ResultCode: string;
|
|
132
|
+
Message: string;
|
|
133
|
+
PermissionID?: string;
|
|
134
|
+
ListID?: string;
|
|
135
|
+
}
|
|
136
|
+
export declare class ComposeListsInput {
|
|
137
|
+
Op: SetOpKind;
|
|
138
|
+
Inputs: ListSourceInput[];
|
|
139
|
+
Target?: ListSourceInput;
|
|
140
|
+
}
|
|
141
|
+
export declare function toCoreSource(input: ListSourceInput): CoreListSource;
|
|
142
|
+
export declare function fromCoreDelta(delta: CoreListDelta): ListDeltaType;
|
|
143
|
+
export declare function fromCoreWarning(w: CoreListDeltaWarning): ListDeltaWarningType;
|
|
144
|
+
export declare function fromCoreApplyResult(r: CoreApplyResult): ApplyListResultType;
|
|
145
|
+
/** Convert a `ListShareSummary` from the core into the GraphQL DTO. */
|
|
146
|
+
export declare function fromCoreShareSummary(s: ListShareSummary): ListShareSummaryType;
|
|
147
|
+
/** Guard for required-when-Kind-X fields on discriminated inputs. */
|
|
148
|
+
export declare function requireField<T>(value: T | undefined, name: string): T;
|
|
149
|
+
/** Three failure helpers — one per output type — keep the try/catch
|
|
150
|
+
* sites in the resolver methods tiny. */
|
|
151
|
+
export declare function shareUnexpected(e: unknown, op: string): ShareResultType;
|
|
152
|
+
export declare function inviteUnexpected(e: unknown, op: string): InviteResultType;
|
|
153
|
+
export declare function acceptInvitationUnexpected(e: unknown, op: string): AcceptInvitationResultType;
|
|
154
|
+
export declare function rebuildDeltaFromInput(input: ApplyDeltaInput): CoreListDelta;
|
|
155
|
+
export declare class ListOperationsResolver extends ResolverBase {
|
|
156
|
+
PreviewListDelta(input: ComputeDeltaInput, ctx: AppContext): Promise<ListDeltaType>;
|
|
157
|
+
ApplyListDelta(input: ApplyDeltaInput, ctx: AppContext): Promise<ApplyListResultType>;
|
|
158
|
+
MaterializeListFromView(viewId: string, options: MaterializeOptionsInput, ctx: AppContext): Promise<ApplyListResultType>;
|
|
159
|
+
AddViewResultsToList(viewId: string, listId: string, ctx: AppContext): Promise<ApplyListResultType>;
|
|
160
|
+
RefreshListFromSource(listId: string, mode: 'Additive' | 'Sync', confirmDrops: boolean, ctx: AppContext): Promise<ApplyListResultType>;
|
|
161
|
+
ComposeLists(input: ComposeListsInput, ctx: AppContext): Promise<ListDeltaType>;
|
|
162
|
+
ShareList(input: ShareListInput, ctx: AppContext): Promise<ShareResultType>;
|
|
163
|
+
UnshareList(permissionId: string, ctx: AppContext): Promise<ShareResultType>;
|
|
164
|
+
InviteToList(input: InviteToListInput, ctx: AppContext): Promise<InviteResultType>;
|
|
165
|
+
AcceptListInvitation(token: string, ctx: AppContext): Promise<AcceptInvitationResultType>;
|
|
166
|
+
RevokeListInvitation(invitationId: string, ctx: AppContext): Promise<ShareResultType>;
|
|
167
|
+
ListSharesForList(listId: string, ctx: AppContext): Promise<ListShareSummaryType[]>;
|
|
168
|
+
ListsSharedWithMe(ctx: AppContext): Promise<SharedListSummaryType[]>;
|
|
169
|
+
private buildSharing;
|
|
170
|
+
private buildOps;
|
|
171
|
+
private requireUser;
|
|
172
|
+
private unexpectedFailure;
|
|
173
|
+
}
|
|
174
|
+
export default ListOperationsResolver;
|
|
175
|
+
//# sourceMappingURL=ListOperationsResolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ListOperationsResolver.d.ts","sourceRoot":"","sources":["../../src/resolvers/ListOperationsResolver.ts"],"names":[],"mappings":"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"}
|