@memberjunction/server 5.35.0 → 5.36.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/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 +42 -8
- 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__/ListOperationsResolver.test.ts +182 -0
- package/src/generated/generated.ts +101 -15
- package/src/resolvers/AdhocQueryResolver.ts +41 -8
- package/src/resolvers/ListOperationsResolver.ts +607 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdhocQueryResolver.d.ts","sourceRoot":"","sources":["../../src/resolvers/AdhocQueryResolver.ts"],"names":[],"mappings":"AAGA,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;
|
|
1
|
+
{"version":3,"file":"AdhocQueryResolver.d.ts","sourceRoot":"","sources":["../../src/resolvers/AdhocQueryResolver.ts"],"names":[],"mappings":"AAGA,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;IA2G9B,OAAO,CAAC,gBAAgB;CAc3B"}
|
|
@@ -31,6 +31,14 @@ __decorate([
|
|
|
31
31
|
Field(() => Int, { nullable: true, description: 'Query timeout in seconds. Defaults to 30.' }),
|
|
32
32
|
__metadata("design:type", Number)
|
|
33
33
|
], AdhocQueryInput.prototype, "TimeoutSeconds", void 0);
|
|
34
|
+
__decorate([
|
|
35
|
+
Field(() => Int, { nullable: true, description: 'Maximum number of rows to return. Applied in-memory after SQL execution; SQL still runs unbounded server-side.' }),
|
|
36
|
+
__metadata("design:type", Number)
|
|
37
|
+
], AdhocQueryInput.prototype, "MaxRows", void 0);
|
|
38
|
+
__decorate([
|
|
39
|
+
Field(() => Int, { nullable: true, description: 'Zero-based offset for pagination. Used in conjunction with MaxRows.' }),
|
|
40
|
+
__metadata("design:type", Number)
|
|
41
|
+
], AdhocQueryInput.prototype, "StartRow", void 0);
|
|
34
42
|
AdhocQueryInput = __decorate([
|
|
35
43
|
InputType()
|
|
36
44
|
], AdhocQueryInput);
|
|
@@ -63,24 +71,50 @@ let AdhocQueryResolver = class AdhocQueryResolver extends ResolverBase {
|
|
|
63
71
|
catch {
|
|
64
72
|
return this.buildErrorResult('No read-only data source available for ad-hoc query execution');
|
|
65
73
|
}
|
|
66
|
-
// 3.
|
|
74
|
+
// 3. Build executable SQL. When MaxRows is provided, wrap in a derived table
|
|
75
|
+
// with outer TOP so the engine can short-circuit at the source instead of
|
|
76
|
+
// scanning the full result. Skipped for SQL that begins with WITH/CTE — those
|
|
77
|
+
// can't be nested in a derived table on SQL Server and fall through to the
|
|
78
|
+
// in-memory slice below.
|
|
79
|
+
const startRow = input.StartRow ?? 0;
|
|
80
|
+
const maxRows = input.MaxRows;
|
|
81
|
+
const canWrap = maxRows != null &&
|
|
82
|
+
Number.isInteger(maxRows) &&
|
|
83
|
+
maxRows > 0 &&
|
|
84
|
+
Number.isInteger(startRow) &&
|
|
85
|
+
startRow >= 0 &&
|
|
86
|
+
!/^\s*WITH\b/i.test(input.SQL);
|
|
87
|
+
const executableSql = canWrap
|
|
88
|
+
? `SELECT TOP ${startRow + maxRows} * FROM (\n${input.SQL}\n) AS _adhoc_capped`
|
|
89
|
+
: input.SQL;
|
|
90
|
+
// 4. Execute with timeout
|
|
67
91
|
const timeoutMs = (input.TimeoutSeconds ?? 30) * 1000;
|
|
68
92
|
const request = new sql.Request(readOnlyDS);
|
|
69
93
|
const result = await Promise.race([
|
|
70
|
-
request.query(
|
|
94
|
+
request.query(executableSql),
|
|
71
95
|
new Promise((_, reject) => setTimeout(() => reject(new Error('Query timeout exceeded')), timeoutMs))
|
|
72
96
|
]);
|
|
73
97
|
const executionTimeMs = Date.now() - startTime;
|
|
74
|
-
//
|
|
98
|
+
// 5. Apply in-memory pagination. With the wrap applied this is a no-op for
|
|
99
|
+
// first-page reads; for StartRow > 0 (or CTE-headed SQL where the wrap was
|
|
100
|
+
// skipped) it carves out the requested page.
|
|
101
|
+
const fullRecordset = result.recordset ?? [];
|
|
102
|
+
const totalRowCount = fullRecordset.length;
|
|
103
|
+
let paginated = fullRecordset;
|
|
104
|
+
if (startRow > 0)
|
|
105
|
+
paginated = paginated.slice(startRow);
|
|
106
|
+
if (maxRows != null && maxRows > 0)
|
|
107
|
+
paginated = paginated.slice(0, maxRows);
|
|
108
|
+
// 6. Return as RunQueryResultType
|
|
75
109
|
return {
|
|
76
110
|
QueryID: '',
|
|
77
111
|
QueryName: 'Ad-Hoc Query',
|
|
78
112
|
Success: true,
|
|
79
|
-
Results: JSON.stringify(
|
|
80
|
-
RowCount:
|
|
81
|
-
TotalRowCount:
|
|
82
|
-
PageNumber: undefined,
|
|
83
|
-
PageSize: undefined,
|
|
113
|
+
Results: JSON.stringify(paginated),
|
|
114
|
+
RowCount: paginated.length,
|
|
115
|
+
TotalRowCount: totalRowCount,
|
|
116
|
+
PageNumber: maxRows != null && maxRows > 0 ? Math.floor(startRow / maxRows) + 1 : undefined,
|
|
117
|
+
PageSize: maxRows ?? undefined,
|
|
84
118
|
ExecutionTime: executionTimeMs,
|
|
85
119
|
ErrorMessage: ''
|
|
86
120
|
};
|
|
@@ -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,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,GAAG,MAAM,OAAO,CAAC;AAExB;;;GAGG;AAEH,IAAM,eAAe,GAArB,MAAM,eAAe;
|
|
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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"}
|