@luvio/compiler 0.65.0 → 0.69.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/codegen/adapter/adapter-network.js +2 -2
- package/dist/codegen/adapter/adapter-network.js.map +1 -1
- package/dist/codegen/adapter/adapter-prepare-request.js +54 -1
- package/dist/codegen/adapter/adapter-prepare-request.js.map +1 -1
- package/dist/codegen/adapter/constants.d.ts +2 -1
- package/dist/codegen/adapter/constants.js +4 -3
- package/dist/codegen/adapter/constants.js.map +1 -1
- package/dist/codegen/adapter/delete/adapter-network.js +12 -8
- package/dist/codegen/adapter/delete/adapter-network.js.map +1 -1
- package/dist/codegen/adapter/patch-post/adapter-network.js +12 -7
- package/dist/codegen/adapter/patch-post/adapter-network.js.map +1 -1
- package/dist/codegen/adapter-tests/expected-responses.js +7 -10
- package/dist/codegen/adapter-tests/expected-responses.js.map +1 -1
- package/dist/codegen/pagination-utils/synthetic-cursor.d.ts +1 -0
- package/dist/codegen/pagination-utils/synthetic-cursor.js +298 -0
- package/dist/codegen/pagination-utils/synthetic-cursor.js.map +1 -0
- package/dist/codegen/resource/composite/select-child-resource-params.js +5 -12
- package/dist/codegen/resource/composite/select-child-resource-params.js.map +1 -1
- package/dist/codegen/resource/response-cache-keys.js +28 -1
- package/dist/codegen/resource/response-cache-keys.js.map +1 -1
- package/dist/codegen/shape/shape-ingest-paginated.js +89 -7
- package/dist/codegen/shape/shape-ingest-paginated.js.map +1 -1
- package/dist/codegen/shape/shape-select-paginated.js +87 -4
- package/dist/codegen/shape/shape-select-paginated.js.map +1 -1
- package/dist/generate.js +9 -0
- package/dist/generate.js.map +1 -1
- package/dist/utils/imports.js +1 -2
- package/dist/utils/imports.js.map +1 -1
- package/package.json +18 -5
|
@@ -0,0 +1,298 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.generatePaginationUtils = void 0;
|
|
7
|
+
const deindent_1 = __importDefault(require("../../utils/deindent"));
|
|
8
|
+
const constants_1 = require("./constants");
|
|
9
|
+
const cursor_based_1 = require("./cursor-based");
|
|
10
|
+
const TYPES = (0, deindent_1.default) `
|
|
11
|
+
import { ${cursor_based_1.NULLABLE_TOKEN_TYPE_IDENTIFIER}, ${cursor_based_1.TOKEN_MISSING_TYPE_IDENTIFIER} } from './cursor';
|
|
12
|
+
|
|
13
|
+
export { ${constants_1.PAGINATION_PARAMS_INTERFACE_IDENTIFIER} } from './cursor';
|
|
14
|
+
|
|
15
|
+
export type ${constants_1.PAGINATION_METADATA_TYPE_IDENTIFIER} = {
|
|
16
|
+
clientTokens: Record<string, number>;
|
|
17
|
+
serverTokens: string[];
|
|
18
|
+
__END__?: number;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
export interface ${constants_1.PAGE_METADATA_IDENTIFIER} {
|
|
22
|
+
startOffset?: number;
|
|
23
|
+
endOffset?: number;
|
|
24
|
+
nextServerToken?: ${cursor_based_1.NULLABLE_TOKEN_TYPE_IDENTIFIER};
|
|
25
|
+
metadataProperties: Record<string, unknown>;
|
|
26
|
+
};
|
|
27
|
+
`;
|
|
28
|
+
const CLIENT_TOKEN_FROM_OFFSET = (0, deindent_1.default) `
|
|
29
|
+
export function clientTokenFromOffset(${constants_1.PAGINATION_METADATA_IDENTIFIER}: ${constants_1.PAGINATION_METADATA_TYPE_IDENTIFIER}, offset: number): string | ${cursor_based_1.TOKEN_MISSING_TYPE_IDENTIFIER} {
|
|
30
|
+
const { clientTokens } = ${constants_1.PAGINATION_METADATA_IDENTIFIER};
|
|
31
|
+
|
|
32
|
+
const tokens = Object.keys(clientTokens);
|
|
33
|
+
for (let i = 0, len = tokens.length; i < len; i++) {
|
|
34
|
+
const token = tokens[i];
|
|
35
|
+
if (clientTokens[token] === offset) {
|
|
36
|
+
return token;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
`;
|
|
41
|
+
const OFFSET_FROM_CLIENT_TOKEN = (0, deindent_1.default) `
|
|
42
|
+
export function offsetFromClientToken(${constants_1.PAGINATION_METADATA_IDENTIFIER}: ${constants_1.PAGINATION_METADATA_TYPE_IDENTIFIER}, token: string | undefined): number {
|
|
43
|
+
if (token === undefined) {
|
|
44
|
+
return 0;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
const offset = ${constants_1.PAGINATION_METADATA_IDENTIFIER}.clientTokens[token];
|
|
48
|
+
return offset === undefined ? -1 : offset;
|
|
49
|
+
}
|
|
50
|
+
`;
|
|
51
|
+
const OFFSET_FROM_SERVER_TOKEN = (0, deindent_1.default) `
|
|
52
|
+
export function offsetFromServerToken(${constants_1.PAGINATION_METADATA_IDENTIFIER}: ${constants_1.PAGINATION_METADATA_TYPE_IDENTIFIER}, token: string): number {
|
|
53
|
+
return ${constants_1.PAGINATION_METADATA_IDENTIFIER}.serverTokens.indexOf(token);
|
|
54
|
+
}
|
|
55
|
+
`;
|
|
56
|
+
const NEXT_TOKEN = (0, deindent_1.default) `
|
|
57
|
+
export function getNextPageTokens(
|
|
58
|
+
${constants_1.PAGINATION_METADATA_IDENTIFIER}: ${constants_1.PAGINATION_METADATA_TYPE_IDENTIFIER},
|
|
59
|
+
pageEndOffset: number
|
|
60
|
+
): {
|
|
61
|
+
clientToken: ${cursor_based_1.NULLABLE_TOKEN_TYPE_IDENTIFIER} | ${cursor_based_1.TOKEN_MISSING_TYPE_IDENTIFIER};
|
|
62
|
+
serverToken: ${cursor_based_1.NULLABLE_TOKEN_TYPE_IDENTIFIER} | ${cursor_based_1.TOKEN_MISSING_TYPE_IDENTIFIER};
|
|
63
|
+
} {
|
|
64
|
+
const listEndOffset = ${constants_1.PAGINATION_METADATA_IDENTIFIER}.${cursor_based_1.LIST_END_IDENTIFIER};
|
|
65
|
+
|
|
66
|
+
if (listEndOffset === undefined || pageEndOffset < listEndOffset) {
|
|
67
|
+
const clientToken = clientTokenFromOffset(${constants_1.PAGINATION_METADATA_IDENTIFIER}, pageEndOffset);
|
|
68
|
+
if (clientToken === undefined) {
|
|
69
|
+
return {
|
|
70
|
+
clientToken: undefined,
|
|
71
|
+
serverToken: undefined,
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
return {
|
|
76
|
+
clientToken,
|
|
77
|
+
serverToken: ${constants_1.PAGINATION_METADATA_IDENTIFIER}.serverTokens[pageEndOffset]
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
return {
|
|
82
|
+
clientToken: null,
|
|
83
|
+
serverToken: null,
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
`;
|
|
87
|
+
const PREVIOUS_TOKEN = (0, deindent_1.default) `
|
|
88
|
+
export function getPreviousClientToken(
|
|
89
|
+
${constants_1.PAGINATION_METADATA_IDENTIFIER}: ${constants_1.PAGINATION_METADATA_TYPE_IDENTIFIER},
|
|
90
|
+
startOffset: number,
|
|
91
|
+
pageSize: number
|
|
92
|
+
): ${cursor_based_1.NULLABLE_TOKEN_TYPE_IDENTIFIER} | ${cursor_based_1.TOKEN_MISSING_TYPE_IDENTIFIER} {
|
|
93
|
+
const previousPageOffset = startOffset - pageSize;
|
|
94
|
+
if (previousPageOffset < 0) {
|
|
95
|
+
return null;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
const listEndOffset = ${constants_1.PAGINATION_METADATA_IDENTIFIER}.${cursor_based_1.LIST_END_IDENTIFIER};
|
|
99
|
+
if (listEndOffset !== undefined && previousPageOffset >= listEndOffset) {
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
return clientTokenFromOffset(${constants_1.PAGINATION_METADATA_IDENTIFIER}, previousPageOffset);
|
|
104
|
+
}
|
|
105
|
+
`;
|
|
106
|
+
const PAGE_END_OFFSET = (0, deindent_1.default) `
|
|
107
|
+
export function pageEndOffset(
|
|
108
|
+
${constants_1.PAGINATION_METADATA_IDENTIFIER}: ${constants_1.PAGINATION_METADATA_TYPE_IDENTIFIER},
|
|
109
|
+
startOffset: number,
|
|
110
|
+
pageSize: number
|
|
111
|
+
): number {
|
|
112
|
+
const listEndOffset = ${constants_1.PAGINATION_METADATA_IDENTIFIER}.${cursor_based_1.LIST_END_IDENTIFIER};
|
|
113
|
+
const nextPageOffset = startOffset + pageSize;
|
|
114
|
+
if (listEndOffset === undefined) {
|
|
115
|
+
return nextPageOffset;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
return Math.min(nextPageOffset, listEndOffset);
|
|
119
|
+
}
|
|
120
|
+
`;
|
|
121
|
+
const GET_PAGE_TOKEN_AND_OFFSET = (0, deindent_1.default) `
|
|
122
|
+
export function getPageTokenAndOffset(
|
|
123
|
+
${constants_1.PAGINATION_METADATA_IDENTIFIER}: ${constants_1.PAGINATION_METADATA_TYPE_IDENTIFIER},
|
|
124
|
+
token: string | undefined,
|
|
125
|
+
): [string, number] | undefined {
|
|
126
|
+
if (token === undefined) {
|
|
127
|
+
const startToken = clientTokenFromOffset(${constants_1.PAGINATION_METADATA_IDENTIFIER}, 0);
|
|
128
|
+
if (startToken === undefined) {
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
return [startToken, 0];
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
const startOffset = offsetFromClientToken(${constants_1.PAGINATION_METADATA_IDENTIFIER}, token);
|
|
135
|
+
if (startOffset < 0) {
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
return [token, startOffset];
|
|
140
|
+
}
|
|
141
|
+
`;
|
|
142
|
+
const SERVER_TOKEN_FOR_AT_MOST = (0, deindent_1.default) `
|
|
143
|
+
export function serverTokenForAtMost(
|
|
144
|
+
${constants_1.PAGINATION_METADATA_IDENTIFIER}: ${constants_1.PAGINATION_METADATA_TYPE_IDENTIFIER},
|
|
145
|
+
maxOffset: number
|
|
146
|
+
): [string | undefined, number] {
|
|
147
|
+
const { serverTokens } = ${constants_1.PAGINATION_METADATA_IDENTIFIER};
|
|
148
|
+
for (let i = maxOffset; i >= 0; i--) {
|
|
149
|
+
const token = serverTokens[i];
|
|
150
|
+
if (token !== undefined) {
|
|
151
|
+
return [token, i];
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
return [undefined, -1];
|
|
156
|
+
}
|
|
157
|
+
`;
|
|
158
|
+
const GENERATE_CLIENT_TOKEN = (0, deindent_1.default) `
|
|
159
|
+
export function generateClientToken(offset: number): string {
|
|
160
|
+
return base64Encode('client:' + offset);
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
// Code lifted from https://github.com/MaxArt2501/base64-js/blob/master/base64.js
|
|
164
|
+
// base64 character set, plus padding character (=)
|
|
165
|
+
const b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
|
|
166
|
+
|
|
167
|
+
function base64Encode(input: string): string {
|
|
168
|
+
let bitmap: number, a: number, b: number, c: number;
|
|
169
|
+
let result = "", i = 0;
|
|
170
|
+
const rest = input.length % 3; // To determine the final padding
|
|
171
|
+
|
|
172
|
+
for (; i < input.length;) {
|
|
173
|
+
if ((a = input.charCodeAt(i++)) > 255
|
|
174
|
+
|| (b = input.charCodeAt(i++)) > 255
|
|
175
|
+
|| (c = input.charCodeAt(i++)) > 255) {
|
|
176
|
+
throw new TypeError("Failed base64ToAscii encoding: The string to be encoded contains characters outside of the Latin1 range. " + input);
|
|
177
|
+
}
|
|
178
|
+
bitmap = (a << 16) | (b << 8) | c;
|
|
179
|
+
result += b64.charAt(bitmap >> 18 & 63) + b64.charAt(bitmap >> 12 & 63)
|
|
180
|
+
+ b64.charAt(bitmap >> 6 & 63) + b64.charAt(bitmap & 63);
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
// If there's need of padding, replace the last 'A's with equal signs
|
|
184
|
+
return rest ? result.slice(0, rest - 3) + "===".substring(rest) : result;
|
|
185
|
+
}
|
|
186
|
+
`;
|
|
187
|
+
const ADD_TOKENS = (0, deindent_1.default) `
|
|
188
|
+
export function addTokens(
|
|
189
|
+
${constants_1.PAGINATION_METADATA_IDENTIFIER}: ${constants_1.PAGINATION_METADATA_TYPE_IDENTIFIER},
|
|
190
|
+
offset: number,
|
|
191
|
+
clientToken: string,
|
|
192
|
+
serverToken?: string
|
|
193
|
+
) {
|
|
194
|
+
${constants_1.PAGINATION_METADATA_IDENTIFIER}.clientTokens[clientToken] = offset;
|
|
195
|
+
if (serverToken !== undefined) {
|
|
196
|
+
${constants_1.PAGINATION_METADATA_IDENTIFIER}.serverTokens[offset] = serverToken;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
`;
|
|
200
|
+
const MERGE_METADATA = (0, deindent_1.default) `
|
|
201
|
+
export function mergeMetadata(
|
|
202
|
+
existingMetadata: ${constants_1.PAGINATION_METADATA_TYPE_IDENTIFIER} | undefined,
|
|
203
|
+
incomingMetadata: ${constants_1.PAGINATION_METADATA_TYPE_IDENTIFIER}
|
|
204
|
+
): ${constants_1.PAGINATION_METADATA_TYPE_IDENTIFIER} {
|
|
205
|
+
if (existingMetadata === undefined) {
|
|
206
|
+
return incomingMetadata;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
const clientTokens = {
|
|
210
|
+
...existingMetadata.clientTokens,
|
|
211
|
+
...incomingMetadata.clientTokens
|
|
212
|
+
};
|
|
213
|
+
|
|
214
|
+
const serverTokens = mergeArrays(existingMetadata.serverTokens, incomingMetadata.serverTokens);
|
|
215
|
+
const ${cursor_based_1.LIST_END_IDENTIFIER} = incomingMetadata.hasOwnProperty('${cursor_based_1.LIST_END_IDENTIFIER}') ? incomingMetadata.${cursor_based_1.LIST_END_IDENTIFIER} : existingMetadata.${cursor_based_1.LIST_END_IDENTIFIER};
|
|
216
|
+
|
|
217
|
+
return {
|
|
218
|
+
clientTokens,
|
|
219
|
+
serverTokens,
|
|
220
|
+
${cursor_based_1.LIST_END_IDENTIFIER}
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
function mergeArrays(existing: string[], incoming: string[]) {
|
|
225
|
+
const merged = [];
|
|
226
|
+
const len = Math.max(existing.length, incoming.length);
|
|
227
|
+
for (let i = 0; i < len; i++) {
|
|
228
|
+
const value = incoming[i] || existing[i];
|
|
229
|
+
merged.push(value);
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
return merged;
|
|
233
|
+
}
|
|
234
|
+
`;
|
|
235
|
+
const EQUALS_METADATA = (0, deindent_1.default) `
|
|
236
|
+
export function equalsMetadata(
|
|
237
|
+
existingMetadata: PaginationMetadata,
|
|
238
|
+
incomingMetadata: PaginationMetadata
|
|
239
|
+
): boolean {
|
|
240
|
+
const {
|
|
241
|
+
clientTokens: existingClientTokens,
|
|
242
|
+
serverTokens: existingServerTokens,
|
|
243
|
+
${cursor_based_1.LIST_END_IDENTIFIER}: existingListEnd
|
|
244
|
+
} = existingMetadata;
|
|
245
|
+
const {
|
|
246
|
+
clientTokens: incomingClientTokens,
|
|
247
|
+
serverTokens: incomingServerTokens,
|
|
248
|
+
${cursor_based_1.LIST_END_IDENTIFIER}: incomingListEnd
|
|
249
|
+
} = incomingMetadata;
|
|
250
|
+
|
|
251
|
+
const existingKeys = Object.keys(existingClientTokens);
|
|
252
|
+
const incomingKeys = Object.keys(incomingClientTokens);
|
|
253
|
+
|
|
254
|
+
const clientTokensLength = existingKeys.length;
|
|
255
|
+
if (clientTokensLength !== incomingKeys.length) {
|
|
256
|
+
return false;
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
for (let i = 0; i < clientTokensLength; i++) {
|
|
260
|
+
const key = existingKeys[i];
|
|
261
|
+
if (existingClientTokens[key] !== incomingClientTokens[key]) {
|
|
262
|
+
return false;
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
const serverTokensLength = existingServerTokens.length;
|
|
267
|
+
if (serverTokensLength !== incomingServerTokens.length) {
|
|
268
|
+
return false;
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
for (let i = 0; i < serverTokensLength; i++) {
|
|
272
|
+
if (existingServerTokens[i] !== incomingServerTokens[i]) {
|
|
273
|
+
return false;
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
return existingListEnd === incomingListEnd;
|
|
278
|
+
}
|
|
279
|
+
`;
|
|
280
|
+
function generatePaginationUtils() {
|
|
281
|
+
return [
|
|
282
|
+
TYPES,
|
|
283
|
+
CLIENT_TOKEN_FROM_OFFSET,
|
|
284
|
+
OFFSET_FROM_CLIENT_TOKEN,
|
|
285
|
+
OFFSET_FROM_SERVER_TOKEN,
|
|
286
|
+
NEXT_TOKEN,
|
|
287
|
+
PREVIOUS_TOKEN,
|
|
288
|
+
PAGE_END_OFFSET,
|
|
289
|
+
GET_PAGE_TOKEN_AND_OFFSET,
|
|
290
|
+
SERVER_TOKEN_FOR_AT_MOST,
|
|
291
|
+
GENERATE_CLIENT_TOKEN,
|
|
292
|
+
ADD_TOKENS,
|
|
293
|
+
MERGE_METADATA,
|
|
294
|
+
EQUALS_METADATA,
|
|
295
|
+
].join('\n\n');
|
|
296
|
+
}
|
|
297
|
+
exports.generatePaginationUtils = generatePaginationUtils;
|
|
298
|
+
//# sourceMappingURL=synthetic-cursor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"synthetic-cursor.js","sourceRoot":"","sources":["../../../src/codegen/pagination-utils/synthetic-cursor.ts"],"names":[],"mappings":";;;;;;AAAA,oEAA4C;AAE5C,2CAKqB;AAErB,iDAIwB;AAExB,MAAM,KAAK,GAAG,IAAA,kBAAQ,EAAA;eACP,6CAA8B,KAAK,4CAA6B;;eAEhE,kDAAsC;;kBAEnC,+CAAmC;;;;;;uBAM9B,oCAAwB;;;4BAGnB,6CAA8B;;;CAGzD,CAAC;AAEF,MAAM,wBAAwB,GAAG,IAAA,kBAAQ,EAAA;4CACG,0CAA8B,KAAK,+CAAmC,+BAA+B,4CAA6B;mCAC3I,0CAA8B;;;;;;;;;;CAUhE,CAAC;AAEF,MAAM,wBAAwB,GAAG,IAAA,kBAAQ,EAAA;4CACG,0CAA8B,KAAK,+CAAmC;;;;;yBAKzF,0CAA8B;;;CAGtD,CAAC;AAEF,MAAM,wBAAwB,GAAG,IAAA,kBAAQ,EAAA;4CACG,0CAA8B,KAAK,+CAAmC;iBACjG,0CAA8B;;CAE9C,CAAC;AAEF,MAAM,UAAU,GAAG,IAAA,kBAAQ,EAAA;;UAEjB,0CAA8B,KAAK,+CAAmC;;;uBAGzD,6CAA8B,MAAM,4CAA6B;uBACjE,6CAA8B,MAAM,4CAA6B;;gCAExD,0CAA8B,IAAI,kCAAmB;;;wDAG7B,0CAA8B;;;;;;;;;;+BAUvD,0CAA8B;;;;;;;;;CAS5D,CAAC;AAEF,MAAM,cAAc,GAAG,IAAA,kBAAQ,EAAA;;UAErB,0CAA8B,KAAK,+CAAmC;;;SAGvE,6CAA8B,MAAM,4CAA6B;;;;;;gCAM1C,0CAA8B,IAAI,kCAAmB;;;;;uCAK9C,0CAA8B;;CAEpE,CAAC;AAEF,MAAM,eAAe,GAAG,IAAA,kBAAQ,EAAA;;UAEtB,0CAA8B,KAAK,+CAAmC;;;;gCAIhD,0CAA8B,IAAI,kCAAmB;;;;;;;;CAQpF,CAAC;AAEF,MAAM,yBAAyB,GAAG,IAAA,kBAAQ,EAAA;;UAEhC,0CAA8B,KAAK,+CAAmC;;;;uDAIzB,0CAA8B;;;;;;;oDAOjC,0CAA8B;;;;;;;CAOjF,CAAC;AAEF,MAAM,wBAAwB,GAAG,IAAA,kBAAQ,EAAA;;UAE/B,0CAA8B,KAAK,+CAAmC;;;mCAG7C,0CAA8B;;;;;;;;;;CAUhE,CAAC;AAEF,MAAM,qBAAqB,GAAG,IAAA,kBAAQ,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BrC,CAAC;AAEF,MAAM,UAAU,GAAG,IAAA,kBAAQ,EAAA;;UAEjB,0CAA8B,KAAK,+CAAmC;;;;;UAKtE,0CAA8B;;cAE1B,0CAA8B;;;CAG3C,CAAC;AAEF,MAAM,cAAc,GAAG,IAAA,kBAAQ,EAAA;;4BAEH,+CAAmC;4BACnC,+CAAmC;SACtD,+CAAmC;;;;;;;;;;;gBAW5B,kCAAmB,uCAAuC,kCAAmB,yBAAyB,kCAAmB,uBAAuB,kCAAmB;;;;;cAKrK,kCAAmB;;;;;;;;;;;;;;CAchC,CAAC;AAEF,MAAM,eAAe,GAAG,IAAA,kBAAQ,EAAA;;;;;;;;cAQlB,kCAAmB;;;;;cAKnB,kCAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BhC,CAAC;AAEF,SAAgB,uBAAuB;IACnC,OAAO;QACH,KAAK;QACL,wBAAwB;QACxB,wBAAwB;QACxB,wBAAwB;QACxB,UAAU;QACV,cAAc;QACd,eAAe;QACf,yBAAyB;QACzB,wBAAwB;QACxB,qBAAqB;QACrB,UAAU;QACV,cAAc;QACd,eAAe;KAClB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACnB,CAAC;AAhBD,0DAgBC"}
|
|
@@ -20,7 +20,6 @@ const CHILD_RESOURCE_PARAMS_IDENTIFIER = 'childResource';
|
|
|
20
20
|
const CHILD_SINK_IDENTIFIER = 'childSink';
|
|
21
21
|
const CHILD_SNAPSHOT_ERROR_IDENTIFIER = 'childSnapshotError';
|
|
22
22
|
const CHILD_SNAPSHOT_IDENTIFIER = 'childSnapshot';
|
|
23
|
-
const COMPOSITE_SNAPSHOT_IDENTIFIER = 'compositeSnapshot';
|
|
24
23
|
const ENVELOPE_BODY_IDENTIFIER = 'envelopeBodyPath';
|
|
25
24
|
const ENVELOPE_PATH_IDENTIFIER = 'envelopePath';
|
|
26
25
|
const ENVELOPE_STATUS_CODE_IDENTIFIER = 'envelopeStatusCodePath';
|
|
@@ -64,20 +63,14 @@ function generateSelectChildResourceParams(importContext, resource, composite, r
|
|
|
64
63
|
synthetic: true,
|
|
65
64
|
read: (${READER_IDENTIFIER}: ${constants_1.ADAPTER_READER_IMPORT}<any>) => {
|
|
66
65
|
// Top-level 404 lookup
|
|
67
|
-
const
|
|
68
|
-
|
|
69
|
-
node: {
|
|
70
|
-
kind: 'Fragment',
|
|
71
|
-
private: [],
|
|
72
|
-
},
|
|
73
|
-
variables: {},
|
|
74
|
-
});
|
|
75
|
-
if (${COMPOSITE_SNAPSHOT_IDENTIFIER}.state === 'Error' && ${COMPOSITE_SNAPSHOT_IDENTIFIER}.error.status === 404) {
|
|
66
|
+
const result = ${READER_IDENTIFIER}.storeLookup(${compositeKeyBuilderImport}(${constants_1.ADAPTER_RESOURCE_PARAMS_IDENTIFIER}));
|
|
67
|
+
if (result.state === reader.StoreResolveResultState.Error && result.value.status === 404) {
|
|
76
68
|
return {
|
|
77
|
-
state:
|
|
78
|
-
value:
|
|
69
|
+
state: 'Error',
|
|
70
|
+
value: result.value,
|
|
79
71
|
};
|
|
80
72
|
}
|
|
73
|
+
|
|
81
74
|
const ${SINK_IDENTIFIER} = {} as ${returnShapeImport};
|
|
82
75
|
${READER_IDENTIFIER}.enterPath(${ENVELOPE_PATH_IDENTIFIER});
|
|
83
76
|
const ${RESULTS_IDENTIFIER} = [] as ${returnShapeImport}['${envelopePath}'];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select-child-resource-params.js","sourceRoot":"","sources":["../../../../src/codegen/resource/composite/select-child-resource-params.ts"],"names":[],"mappings":";;;;;;AAAA,uEAA+C;AAC/C,uDAIiC;AACjC,sDAAwE;AAKxE,wDAA+D;AAC/D,gDAAiE;AACjE,4CAA0D;AAC1D,8CAAsD;AAEtD,yEAKoC;AAEvB,QAAA,uCAAuC,GAAG,2BAA2B,CAAC;AAEnF,MAAM,yBAAyB,GAAG,eAAe,CAAC;AAClD,MAAM,oBAAoB,GAAG,UAAU,CAAC;AACxC,MAAM,sCAAsC,GAAG,gBAAgB,CAAC;AAChE,MAAM,gCAAgC,GAAG,eAAe,CAAC;AACzD,MAAM,qBAAqB,GAAG,WAAW,CAAC;AAC1C,MAAM,+BAA+B,GAAG,oBAAoB,CAAC;AAC7D,MAAM,yBAAyB,GAAG,eAAe,CAAC;AAClD,MAAM,
|
|
1
|
+
{"version":3,"file":"select-child-resource-params.js","sourceRoot":"","sources":["../../../../src/codegen/resource/composite/select-child-resource-params.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,12 +12,39 @@ const key_builder_1 = require("./key-builder");
|
|
|
12
12
|
const resource_params_1 = require("./resource-params");
|
|
13
13
|
const shape_cache_keys_1 = require("../shape/shape-cache-keys");
|
|
14
14
|
const response_child_cache_keys_1 = require("./composite/response-child-cache-keys");
|
|
15
|
+
const util_1 = require("../adapter/util");
|
|
16
|
+
const shape_representation_type_1 = require("../shape/shape-representation-type");
|
|
15
17
|
exports.GET_RESPONSE_CACHE_KEYS_IDENTIFIER = 'getResponseCacheKeys';
|
|
16
18
|
const RESPONSE_IDENTIFIER = 'response';
|
|
19
|
+
function generateGetResponseCacheKeysForDelete(importContext, resource, modelInfo) {
|
|
20
|
+
const { importRamlArtifact } = importContext;
|
|
21
|
+
const { id: resourceId } = resource;
|
|
22
|
+
const returnShape = (0, util_1.getSiblingGetReturnShapeForDelete)(resource, modelInfo);
|
|
23
|
+
if (returnShape === undefined) {
|
|
24
|
+
return '';
|
|
25
|
+
}
|
|
26
|
+
const returnShapeIdentifier = importRamlArtifact(returnShape.id, shape_representation_type_1.REPRESENTATION_TYPE_IDENTIFIER);
|
|
27
|
+
const keyStatement = `${importRamlArtifact(resourceId, key_builder_1.RESOURCE_KEY_BUILDER_IDENTIFIER)}(${constants_1.ADAPTER_RESOURCE_PARAMS_IDENTIFIER})`;
|
|
28
|
+
const resourceRequestConfig = importRamlArtifact(resourceId, resource_params_1.RESOURCE_PARAMS_INTERFACE);
|
|
29
|
+
return (0, deindent_1.default) `
|
|
30
|
+
export function ${exports.GET_RESPONSE_CACHE_KEYS_IDENTIFIER}(${constants_1.ADAPTER_RESOURCE_PARAMS_IDENTIFIER}: ${resourceRequestConfig}): ${constants_2.ADAPTER_CACHE_KEY_SET_TYPE_IDENTIFIER} {
|
|
31
|
+
const key = ${keyStatement};
|
|
32
|
+
return {
|
|
33
|
+
[key]: {
|
|
34
|
+
namespace: ${(0, shape_cache_keys_1.generateNamespaceValue)(importContext, modelInfo)},
|
|
35
|
+
representationName: ${returnShapeIdentifier}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
`;
|
|
40
|
+
}
|
|
17
41
|
function generateGetResponseCacheKeys(importContext, resource, modelInfo) {
|
|
18
42
|
const { importRamlArtifact } = importContext;
|
|
19
43
|
const { id: resourceId, method, returnShape, endPointId } = resource;
|
|
20
|
-
if (method === 'delete'
|
|
44
|
+
if (method === 'delete') {
|
|
45
|
+
return generateGetResponseCacheKeysForDelete(importContext, resource, modelInfo);
|
|
46
|
+
}
|
|
47
|
+
if (returnShape === undefined) {
|
|
21
48
|
return '';
|
|
22
49
|
}
|
|
23
50
|
if (modelInfo.compositeResources[endPointId]) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response-cache-keys.js","sourceRoot":"","sources":["../../../src/codegen/resource/response-cache-keys.ts"],"names":[],"mappings":";;;;;;AACA,0DAAmE;AACnE,oEAA4C;AAE5C,oDAA0E;AAC1E,mDAA4E;AAC5E,+CAAgE;AAChE,uDAA8D;AAC9D,
|
|
1
|
+
{"version":3,"file":"response-cache-keys.js","sourceRoot":"","sources":["../../../src/codegen/resource/response-cache-keys.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,7 @@ const pagination_1 = require("../../intermediate/pagination");
|
|
|
9
9
|
const constants_1 = require("./constants");
|
|
10
10
|
const constants_2 = require("../shared/constants");
|
|
11
11
|
const cursor_based_1 = require("../pagination-utils/cursor-based");
|
|
12
|
+
const constants_3 = require("../pagination-utils/constants");
|
|
12
13
|
const PAGINATION_KEY_IDENTIFIER = 'paginationKey';
|
|
13
14
|
const START_OFFSET_IDENTIFIER = 'startOffset';
|
|
14
15
|
const NEXT_OFFSET_IDENTIFIER = 'nextOffset';
|
|
@@ -37,17 +38,86 @@ function generateIngestPagination(shapeConfig) {
|
|
|
37
38
|
exports.generateIngestPagination = generateIngestPagination;
|
|
38
39
|
function generateIngestPaginationMetadata(importContext, shapePaginated) {
|
|
39
40
|
switch (shapePaginated.strategy) {
|
|
40
|
-
case pagination_1.Strategy.SyntheticCursor: // TODO [W-10187230]: SyntheticCursor will generate its own ingest code
|
|
41
41
|
case pagination_1.Strategy.Cursor: {
|
|
42
42
|
return generateIngestCursorPaginationMetadata(importContext, shapePaginated);
|
|
43
43
|
}
|
|
44
|
+
case pagination_1.Strategy.SyntheticCursor: {
|
|
45
|
+
return generateIngestSyntheticCursorPaginationMetadata(importContext, shapePaginated);
|
|
46
|
+
}
|
|
44
47
|
}
|
|
45
48
|
}
|
|
49
|
+
function generateIngestSyntheticCursorPaginationMetadata(importContext, shapePaginated) {
|
|
50
|
+
const { strategy, items, metadata: pageMetadata } = shapePaginated;
|
|
51
|
+
const assignMetadataLink = importContext.importTypeUtil('assignMetadataLink');
|
|
52
|
+
const paginationMetadataType = importContext.importPaginationUtil(strategy, constants_3.PAGINATION_METADATA_TYPE_IDENTIFIER);
|
|
53
|
+
const offsetFromServerToken = importContext.importPaginationUtil(strategy, 'offsetFromServerToken');
|
|
54
|
+
const mergeMetadata = importContext.importPaginationUtil(strategy, 'mergeMetadata');
|
|
55
|
+
const equalsMetadata = importContext.importPaginationUtil(strategy, 'equalsMetadata');
|
|
56
|
+
const generateClientToken = importContext.importPaginationUtil(strategy, 'generateClientToken');
|
|
57
|
+
const addTokens = importContext.importPaginationUtil(strategy, 'addTokens');
|
|
58
|
+
return (0, deindent_1.default) `
|
|
59
|
+
const ${EXISTING_PAGINATION_METADATA_IDENTIFIER}: ${paginationMetadataType} | undefined = ${constants_2.LUVIO_STORE_IDENTIFIER}.records[${PAGINATION_KEY_IDENTIFIER}];
|
|
60
|
+
|
|
61
|
+
const {
|
|
62
|
+
${generatePaginationProperties(pageMetadata)},
|
|
63
|
+
${items}: ${pagination_1.PaginatedTypeProperty.Items}
|
|
64
|
+
} = ${constants_1.INPUT_IDENTIFIER};
|
|
65
|
+
|
|
66
|
+
const ${START_OFFSET_IDENTIFIER} = ${EXISTING_PAGINATION_METADATA_IDENTIFIER} === undefined ? 0 : ${offsetFromServerToken}(${EXISTING_PAGINATION_METADATA_IDENTIFIER}, ${pagination_1.CursorPaginatedTypeProperty.Token});
|
|
67
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
68
|
+
if (
|
|
69
|
+
${START_OFFSET_IDENTIFIER} < 0 ||
|
|
70
|
+
(${constants_1.EXISTING_RECORD_IDENTIFIER} && ${constants_1.EXISTING_RECORD_IDENTIFIER}.${items}.length < ${START_OFFSET_IDENTIFIER})
|
|
71
|
+
) {
|
|
72
|
+
throw new RangeError('${pageMetadata.token} value ' + ${pagination_1.CursorPaginatedTypeProperty.Token} + ' is not recognized');
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
const ${INCOMING_PAGINATION_METADATA_IDENTIFIER}: ${paginationMetadataType} = {
|
|
77
|
+
clientTokens: {},
|
|
78
|
+
serverTokens: []
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
const pageClientToken = ${generateClientToken}(${START_OFFSET_IDENTIFIER});
|
|
82
|
+
${addTokens}(${INCOMING_PAGINATION_METADATA_IDENTIFIER}, ${START_OFFSET_IDENTIFIER}, pageClientToken, ${pagination_1.CursorPaginatedTypeProperty.Token});
|
|
83
|
+
|
|
84
|
+
const ${NEXT_OFFSET_IDENTIFIER} = ${START_OFFSET_IDENTIFIER} + ${pagination_1.PaginatedTypeProperty.Items}.length;
|
|
85
|
+
if (${pagination_1.CursorPaginatedTypeProperty.NextToken} === null) {
|
|
86
|
+
${INCOMING_PAGINATION_METADATA_IDENTIFIER}.${cursor_based_1.LIST_END_IDENTIFIER} = ${NEXT_OFFSET_IDENTIFIER};
|
|
87
|
+
} else {
|
|
88
|
+
const nextClientToken = ${generateClientToken}(${NEXT_OFFSET_IDENTIFIER});
|
|
89
|
+
${addTokens}(${INCOMING_PAGINATION_METADATA_IDENTIFIER}, ${NEXT_OFFSET_IDENTIFIER}, nextClientToken, ${pagination_1.CursorPaginatedTypeProperty.NextToken});
|
|
90
|
+
if (${EXISTING_PAGINATION_METADATA_IDENTIFIER} !== undefined) {
|
|
91
|
+
const listEndOffset = ${EXISTING_PAGINATION_METADATA_IDENTIFIER}.${cursor_based_1.LIST_END_IDENTIFIER};
|
|
92
|
+
if (listEndOffset !== undefined && ${NEXT_OFFSET_IDENTIFIER} >= listEndOffset) {
|
|
93
|
+
${INCOMING_PAGINATION_METADATA_IDENTIFIER}.${cursor_based_1.LIST_END_IDENTIFIER} = undefined;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
${generatePreviousToken(importContext, shapePaginated)}
|
|
98
|
+
|
|
99
|
+
for (let i = startOffset + 1; i < nextOffset; i++) {
|
|
100
|
+
const itemClientToken = ${generateClientToken}(i);
|
|
101
|
+
${addTokens}(${INCOMING_PAGINATION_METADATA_IDENTIFIER}, i, itemClientToken);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
const mergedPaginationMetadata = ${mergeMetadata}(${EXISTING_PAGINATION_METADATA_IDENTIFIER}, ${INCOMING_PAGINATION_METADATA_IDENTIFIER});
|
|
105
|
+
if (
|
|
106
|
+
${EXISTING_PAGINATION_METADATA_IDENTIFIER} === undefined ||
|
|
107
|
+
${equalsMetadata}(${EXISTING_PAGINATION_METADATA_IDENTIFIER}, mergedPaginationMetadata) === false
|
|
108
|
+
) {
|
|
109
|
+
luvio.storePublish(${PAGINATION_KEY_IDENTIFIER}, mergedPaginationMetadata);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
${assignMetadataLink}(${constants_1.INCOMING_RECORD_IDENTIFIER}, ${PAGINATION_KEY_IDENTIFIER});
|
|
113
|
+
|
|
114
|
+
`;
|
|
115
|
+
}
|
|
46
116
|
function generateIngestCursorPaginationMetadata(importContext, shapePaginated) {
|
|
47
117
|
const { strategy, items, metadata: pageMetadata } = shapePaginated;
|
|
48
118
|
const assignMetadataLink = importContext.importTypeUtil('assignMetadataLink');
|
|
49
119
|
const equalsObject = importContext.importTypeUtil('equalsObject');
|
|
50
|
-
const paginationMetadataType = importContext.importPaginationUtil(strategy,
|
|
120
|
+
const paginationMetadataType = importContext.importPaginationUtil(strategy, constants_3.PAGINATION_METADATA_TYPE_IDENTIFIER);
|
|
51
121
|
const offsetFromToken = importContext.importPaginationUtil(strategy, 'offsetFromToken');
|
|
52
122
|
const mergeMetadata = importContext.importPaginationUtil(strategy, 'mergeMetadata');
|
|
53
123
|
return (0, deindent_1.default) `
|
|
@@ -84,7 +154,7 @@ function generateIngestCursorPaginationMetadata(importContext, shapePaginated) {
|
|
|
84
154
|
}
|
|
85
155
|
}
|
|
86
156
|
}
|
|
87
|
-
${generatePreviousToken(
|
|
157
|
+
${generatePreviousToken(importContext, shapePaginated)}
|
|
88
158
|
|
|
89
159
|
const mergedPaginationMetadata = ${mergeMetadata}(${EXISTING_PAGINATION_METADATA_IDENTIFIER}, ${INCOMING_PAGINATION_METADATA_IDENTIFIER});
|
|
90
160
|
if (
|
|
@@ -107,14 +177,26 @@ function generatePaginationProperties(metadataProperties) {
|
|
|
107
177
|
})
|
|
108
178
|
.join(',\n');
|
|
109
179
|
}
|
|
110
|
-
function generatePreviousToken(
|
|
111
|
-
|
|
180
|
+
function generatePreviousToken(importContext, paginatedType) {
|
|
181
|
+
const { strategy, metadata: metadataProperties } = paginatedType;
|
|
182
|
+
if (metadataProperties[pagination_1.CursorPaginatedTypeProperty.PreviousToken] === undefined) {
|
|
183
|
+
return '';
|
|
184
|
+
}
|
|
185
|
+
if (strategy === pagination_1.Strategy.SyntheticCursor) {
|
|
186
|
+
const generateClientToken = importContext.importPaginationUtil(strategy, 'generateClientToken');
|
|
187
|
+
const addTokens = importContext.importPaginationUtil(strategy, 'addTokens');
|
|
112
188
|
return (0, deindent_1.default) `
|
|
113
189
|
if (${pagination_1.CursorPaginatedTypeProperty.PreviousToken} !== null) {
|
|
114
|
-
|
|
190
|
+
const previousOffset = ${START_OFFSET_IDENTIFIER} - ${pagination_1.CursorPaginatedTypeProperty.PageSize};
|
|
191
|
+
const previousClientToken = ${generateClientToken}(previousOffset);
|
|
192
|
+
${addTokens}(${INCOMING_PAGINATION_METADATA_IDENTIFIER}, previousOffset, previousClientToken, ${pagination_1.CursorPaginatedTypeProperty.PreviousToken});
|
|
115
193
|
}
|
|
116
194
|
`;
|
|
117
195
|
}
|
|
118
|
-
return
|
|
196
|
+
return (0, deindent_1.default) `
|
|
197
|
+
if (${pagination_1.CursorPaginatedTypeProperty.PreviousToken} !== null) {
|
|
198
|
+
${INCOMING_PAGINATION_METADATA_IDENTIFIER}[${pagination_1.CursorPaginatedTypeProperty.PreviousToken}] = ${START_OFFSET_IDENTIFIER} - ${pagination_1.CursorPaginatedTypeProperty.PageSize};
|
|
199
|
+
}
|
|
200
|
+
`;
|
|
119
201
|
}
|
|
120
202
|
//# sourceMappingURL=shape-ingest-paginated.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shape-ingest-paginated.js","sourceRoot":"","sources":["../../../src/codegen/shape/shape-ingest-paginated.ts"],"names":[],"mappings":";;;;;;AAAA,oEAA4C;AAE5C,
|
|
1
|
+
{"version":3,"file":"shape-ingest-paginated.js","sourceRoot":"","sources":["../../../src/codegen/shape/shape-ingest-paginated.ts"],"names":[],"mappings":"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"}
|