@aws-amplify/api 5.3.4-api-v6.25 → 5.3.4-api-v6-models.34
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/lib/API.d.ts +6 -18
- package/lib/API.js +71 -129
- package/lib/APIClient.d.ts +31 -0
- package/lib/APIClient.js +224 -0
- package/lib/index.js +6 -6
- package/lib/internals/InternalAPI.js +1 -1
- package/lib/internals/index.js +3 -3
- package/lib/tsconfig.build.tsbuildinfo +1 -0
- package/lib/types/index.js +4 -4
- package/lib-esm/API.d.ts +6 -18
- package/lib-esm/API.js +70 -129
- package/lib-esm/APIClient.d.ts +31 -0
- package/lib-esm/APIClient.js +218 -0
- package/lib-esm/index.js +0 -1
- package/lib-esm/internals/InternalAPI.js +0 -1
- package/lib-esm/internals/index.js +0 -1
- package/lib-esm/tsconfig.build.tsbuildinfo +1 -0
- package/lib-esm/types/index.js +0 -1
- package/package.json +14 -12
- package/src/API.ts +99 -204
- package/src/APIClient.ts +283 -0
- package/lib/.tsbuildinfo +0 -3
- package/lib/API.js.map +0 -1
- package/lib/index.js.map +0 -1
- package/lib/internals/InternalAPI.js.map +0 -1
- package/lib/internals/index.js.map +0 -1
- package/lib/types/index.js.map +0 -1
- package/lib-esm/.tsbuildinfo +0 -3
- package/lib-esm/API.js.map +0 -1
- package/lib-esm/index.js.map +0 -1
- package/lib-esm/internals/InternalAPI.js.map +0 -1
- package/lib-esm/internals/index.js.map +0 -1
- package/lib-esm/types/index.js.map +0 -1
package/src/API.ts
CHANGED
|
@@ -11,6 +11,19 @@ import { graphql as v6graphql } from '@aws-amplify/api-graphql/internals';
|
|
|
11
11
|
import { Amplify, ConsoleLogger as Logger } from '@aws-amplify/core';
|
|
12
12
|
import Observable from 'zen-observable-ts';
|
|
13
13
|
import { InternalAPIClass } from './internals/InternalAPI';
|
|
14
|
+
import {
|
|
15
|
+
initializeModel,
|
|
16
|
+
generateGraphQLDocument,
|
|
17
|
+
buildGraphQLVariables,
|
|
18
|
+
graphQLOperationsInfo,
|
|
19
|
+
ModelOperation,
|
|
20
|
+
} from './APIClient';
|
|
21
|
+
import type { ModelTypes } from '@aws-amplify/types-package-alpha';
|
|
22
|
+
|
|
23
|
+
/*
|
|
24
|
+
await post.comments()
|
|
25
|
+
=> await graphql()
|
|
26
|
+
*/
|
|
14
27
|
|
|
15
28
|
const logger = new Logger('API');
|
|
16
29
|
/**
|
|
@@ -51,7 +64,7 @@ export class APIClass extends InternalAPIClass {
|
|
|
51
64
|
/**
|
|
52
65
|
* Generates an API client that can work with models or raw GraphQL
|
|
53
66
|
*/
|
|
54
|
-
generateClient<T = never>(): V6Client<T> {
|
|
67
|
+
generateClient<T extends Record<any, any> = never>(): V6Client<T> {
|
|
55
68
|
const config = super.configure({});
|
|
56
69
|
|
|
57
70
|
const { modelIntrospection } = config;
|
|
@@ -61,6 +74,8 @@ export class APIClass extends InternalAPIClass {
|
|
|
61
74
|
models: {},
|
|
62
75
|
};
|
|
63
76
|
|
|
77
|
+
// TODO: refactor this to use separate methods for each CRUDL.
|
|
78
|
+
// Doesn't make sense to gen the methods dynamically given the different args and return values
|
|
64
79
|
for (const model of Object.values(modelIntrospection.models)) {
|
|
65
80
|
const { name } = model as any;
|
|
66
81
|
|
|
@@ -70,24 +85,87 @@ export class APIClass extends InternalAPIClass {
|
|
|
70
85
|
([key, { operationPrefix }]) => {
|
|
71
86
|
const operation = key as ModelOperation;
|
|
72
87
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
const
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
88
|
+
if (operation === 'LIST') {
|
|
89
|
+
client.models[name][operationPrefix] = async (args?: any) => {
|
|
90
|
+
const query = generateGraphQLDocument(
|
|
91
|
+
modelIntrospection.models,
|
|
92
|
+
name,
|
|
93
|
+
'LIST',
|
|
94
|
+
args
|
|
95
|
+
);
|
|
96
|
+
const variables = buildGraphQLVariables(model, 'LIST', args);
|
|
97
|
+
|
|
98
|
+
console.log('API list', query, variables);
|
|
99
|
+
|
|
100
|
+
const res = (await this.graphql({
|
|
101
|
+
query,
|
|
102
|
+
variables,
|
|
103
|
+
})) as any;
|
|
104
|
+
|
|
105
|
+
// flatten response
|
|
106
|
+
if (res.data !== undefined) {
|
|
107
|
+
const [key] = Object.keys(res.data);
|
|
108
|
+
|
|
109
|
+
if (res.data[key].items) {
|
|
110
|
+
const flattenedResult = res.data[key].items;
|
|
111
|
+
|
|
112
|
+
// don't init if custom selection set
|
|
113
|
+
if (args?.selectionSet) {
|
|
114
|
+
return flattenedResult;
|
|
115
|
+
} else {
|
|
116
|
+
const initialized = initializeModel(
|
|
117
|
+
client,
|
|
118
|
+
name,
|
|
119
|
+
flattenedResult,
|
|
120
|
+
modelIntrospection
|
|
121
|
+
);
|
|
122
|
+
|
|
123
|
+
return initialized;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
return res.data[key];
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
return res as any;
|
|
131
|
+
};
|
|
132
|
+
} else {
|
|
133
|
+
client.models[name][operationPrefix] = async (
|
|
134
|
+
arg?: any,
|
|
135
|
+
options?: any
|
|
136
|
+
) => {
|
|
137
|
+
const query = generateGraphQLDocument(
|
|
138
|
+
modelIntrospection.models,
|
|
139
|
+
name,
|
|
140
|
+
operation
|
|
141
|
+
);
|
|
142
|
+
const variables = buildGraphQLVariables(model, operation, arg);
|
|
143
|
+
|
|
144
|
+
console.log(`API ${operationPrefix}`, query, variables);
|
|
145
|
+
|
|
146
|
+
const res = (await this.graphql({
|
|
147
|
+
query,
|
|
148
|
+
variables,
|
|
149
|
+
})) as any;
|
|
150
|
+
|
|
151
|
+
// flatten response
|
|
152
|
+
if (res.data !== undefined) {
|
|
153
|
+
const [key] = Object.keys(res.data);
|
|
154
|
+
|
|
155
|
+
// TODO: refactor to avoid destructuring here
|
|
156
|
+
const [initialized] = initializeModel(
|
|
157
|
+
client,
|
|
158
|
+
name,
|
|
159
|
+
[res.data[key]],
|
|
160
|
+
modelIntrospection
|
|
161
|
+
);
|
|
162
|
+
|
|
163
|
+
return initialized;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
return res;
|
|
167
|
+
};
|
|
168
|
+
}
|
|
91
169
|
}
|
|
92
170
|
);
|
|
93
171
|
}
|
|
@@ -96,167 +174,6 @@ export class APIClass extends InternalAPIClass {
|
|
|
96
174
|
}
|
|
97
175
|
}
|
|
98
176
|
|
|
99
|
-
const graphQLOperationsInfo = {
|
|
100
|
-
CREATE: { operationPrefix: 'create' as const, usePlural: false },
|
|
101
|
-
READ: { operationPrefix: 'get' as const, usePlural: false },
|
|
102
|
-
UPDATE: { operationPrefix: 'update' as const, usePlural: false },
|
|
103
|
-
DELETE: { operationPrefix: 'delete' as const, usePlural: false },
|
|
104
|
-
LIST: { operationPrefix: 'list' as const, usePlural: true },
|
|
105
|
-
};
|
|
106
|
-
type ModelOperation = keyof typeof graphQLOperationsInfo;
|
|
107
|
-
type OperationPrefix =
|
|
108
|
-
(typeof graphQLOperationsInfo)[ModelOperation]['operationPrefix'];
|
|
109
|
-
|
|
110
|
-
const graphQLDocumentsCache = new Map<string, Map<ModelOperation, string>>();
|
|
111
|
-
|
|
112
|
-
function generateGraphQLDocument(
|
|
113
|
-
modelDefinition: any,
|
|
114
|
-
modelOperation: ModelOperation
|
|
115
|
-
): string {
|
|
116
|
-
const {
|
|
117
|
-
name,
|
|
118
|
-
pluralName,
|
|
119
|
-
fields,
|
|
120
|
-
primaryKeyInfo: {
|
|
121
|
-
isCustomPrimaryKey,
|
|
122
|
-
primaryKeyFieldName,
|
|
123
|
-
sortKeyFieldNames,
|
|
124
|
-
},
|
|
125
|
-
} = modelDefinition;
|
|
126
|
-
const { operationPrefix, usePlural } = graphQLOperationsInfo[modelOperation];
|
|
127
|
-
|
|
128
|
-
const fromCache = graphQLDocumentsCache.get(name)?.get(modelOperation);
|
|
129
|
-
|
|
130
|
-
if (fromCache !== undefined) {
|
|
131
|
-
return fromCache;
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
if (!graphQLDocumentsCache.has(name)) {
|
|
135
|
-
graphQLDocumentsCache.set(name, new Map());
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
const graphQLFieldName = `${operationPrefix}${usePlural ? pluralName : name}`;
|
|
139
|
-
let graphQLOperationType: 'mutation' | 'query' | undefined;
|
|
140
|
-
let graphQLSelectionSet: string | undefined;
|
|
141
|
-
let graphQLArguments: Record<string, any> | undefined;
|
|
142
|
-
|
|
143
|
-
const selectionSetFields = Object.values<any>(fields)
|
|
144
|
-
.map(({ type, name }) => typeof type === 'string' && name) // Only scalars for now
|
|
145
|
-
.filter(Boolean)
|
|
146
|
-
.join(' ');
|
|
147
|
-
|
|
148
|
-
switch (modelOperation) {
|
|
149
|
-
case 'CREATE':
|
|
150
|
-
case 'UPDATE':
|
|
151
|
-
case 'DELETE':
|
|
152
|
-
graphQLArguments ??
|
|
153
|
-
(graphQLArguments = {
|
|
154
|
-
input: `${
|
|
155
|
-
operationPrefix.charAt(0).toLocaleUpperCase() +
|
|
156
|
-
operationPrefix.slice(1)
|
|
157
|
-
}${name}Input!`,
|
|
158
|
-
});
|
|
159
|
-
graphQLOperationType ?? (graphQLOperationType = 'mutation');
|
|
160
|
-
case 'READ':
|
|
161
|
-
graphQLArguments ??
|
|
162
|
-
(graphQLArguments = isCustomPrimaryKey
|
|
163
|
-
? [primaryKeyFieldName, ...sortKeyFieldNames].reduce(
|
|
164
|
-
(acc, fieldName) => {
|
|
165
|
-
acc[fieldName] = fields[fieldName].type;
|
|
166
|
-
|
|
167
|
-
return acc;
|
|
168
|
-
},
|
|
169
|
-
{}
|
|
170
|
-
)
|
|
171
|
-
: {
|
|
172
|
-
[primaryKeyFieldName]: `${fields[primaryKeyFieldName].type}!`,
|
|
173
|
-
});
|
|
174
|
-
graphQLSelectionSet ?? (graphQLSelectionSet = selectionSetFields);
|
|
175
|
-
case 'LIST':
|
|
176
|
-
graphQLOperationType ?? (graphQLOperationType = 'query');
|
|
177
|
-
graphQLSelectionSet ??
|
|
178
|
-
(graphQLSelectionSet = `items { ${selectionSetFields} }`);
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
const graphQLDocument = `${graphQLOperationType}${
|
|
182
|
-
graphQLArguments
|
|
183
|
-
? `(${Object.entries(graphQLArguments).map(
|
|
184
|
-
([fieldName, type]) => `\$${fieldName}: ${type}`
|
|
185
|
-
)})`
|
|
186
|
-
: ''
|
|
187
|
-
} { ${graphQLFieldName}${
|
|
188
|
-
graphQLArguments
|
|
189
|
-
? `(${Object.keys(graphQLArguments).map(
|
|
190
|
-
fieldName => `${fieldName}: \$${fieldName}`
|
|
191
|
-
)})`
|
|
192
|
-
: ''
|
|
193
|
-
} { ${graphQLSelectionSet} } }`;
|
|
194
|
-
|
|
195
|
-
graphQLDocumentsCache.get(name)?.set(modelOperation, graphQLDocument);
|
|
196
|
-
|
|
197
|
-
return graphQLDocument;
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
function buildGraphQLVariables(
|
|
201
|
-
modelDefinition: any,
|
|
202
|
-
operation: ModelOperation,
|
|
203
|
-
arg: any
|
|
204
|
-
): object {
|
|
205
|
-
const {
|
|
206
|
-
fields,
|
|
207
|
-
primaryKeyInfo: {
|
|
208
|
-
isCustomPrimaryKey,
|
|
209
|
-
primaryKeyFieldName,
|
|
210
|
-
sortKeyFieldNames,
|
|
211
|
-
},
|
|
212
|
-
} = modelDefinition;
|
|
213
|
-
|
|
214
|
-
let variables = {};
|
|
215
|
-
|
|
216
|
-
switch (operation) {
|
|
217
|
-
case 'CREATE':
|
|
218
|
-
variables = { input: arg };
|
|
219
|
-
break;
|
|
220
|
-
case 'UPDATE':
|
|
221
|
-
// readonly fields are not updated
|
|
222
|
-
variables = {
|
|
223
|
-
input: Object.fromEntries(
|
|
224
|
-
Object.entries(arg).filter(([fieldName]) => {
|
|
225
|
-
const { isReadOnly } = fields[fieldName];
|
|
226
|
-
|
|
227
|
-
return !isReadOnly;
|
|
228
|
-
})
|
|
229
|
-
),
|
|
230
|
-
};
|
|
231
|
-
break;
|
|
232
|
-
case 'READ':
|
|
233
|
-
case 'DELETE':
|
|
234
|
-
// only identifiers are sent
|
|
235
|
-
variables = isCustomPrimaryKey
|
|
236
|
-
? [primaryKeyFieldName, ...sortKeyFieldNames].reduce(
|
|
237
|
-
(acc, fieldName) => {
|
|
238
|
-
acc[fieldName] = arg[fieldName];
|
|
239
|
-
|
|
240
|
-
return acc;
|
|
241
|
-
},
|
|
242
|
-
{}
|
|
243
|
-
)
|
|
244
|
-
: { [primaryKeyFieldName]: arg[primaryKeyFieldName] };
|
|
245
|
-
|
|
246
|
-
if (operation === 'DELETE') {
|
|
247
|
-
variables = { input: variables };
|
|
248
|
-
}
|
|
249
|
-
break;
|
|
250
|
-
case 'LIST':
|
|
251
|
-
break;
|
|
252
|
-
default:
|
|
253
|
-
const exhaustiveCheck: never = operation;
|
|
254
|
-
throw new Error(`Unhandled operation case: ${exhaustiveCheck}`);
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
return variables;
|
|
258
|
-
}
|
|
259
|
-
|
|
260
177
|
type FilteredKeys<T> = {
|
|
261
178
|
[P in keyof T]: T[P] extends never ? never : P;
|
|
262
179
|
}[keyof T];
|
|
@@ -264,32 +181,10 @@ type ExcludeNeverFields<O> = {
|
|
|
264
181
|
[K in FilteredKeys<O>]: O[K];
|
|
265
182
|
};
|
|
266
183
|
|
|
267
|
-
type Prettify<T> = T extends object
|
|
268
|
-
? {
|
|
269
|
-
[P in keyof T]: Prettify<T[P]>;
|
|
270
|
-
}
|
|
271
|
-
: T;
|
|
272
|
-
|
|
273
184
|
// If no T is passed, ExcludeNeverFields removes "models" from the client
|
|
274
|
-
declare type V6Client<T = never> = ExcludeNeverFields<{
|
|
185
|
+
declare type V6Client<T extends Record<any, any> = never> = ExcludeNeverFields<{
|
|
275
186
|
graphql: typeof v6graphql;
|
|
276
|
-
models:
|
|
277
|
-
[K in keyof T]: K extends string
|
|
278
|
-
? {
|
|
279
|
-
create: (model: T[K]) => Promise<T[K]>;
|
|
280
|
-
update: (
|
|
281
|
-
model: Prettify<
|
|
282
|
-
{
|
|
283
|
-
id: string;
|
|
284
|
-
} & Partial<T[K]>
|
|
285
|
-
>
|
|
286
|
-
) => Promise<T[K]>;
|
|
287
|
-
delete: (id: string) => Promise<T[K]>;
|
|
288
|
-
get: (id: string) => Promise<T[K]>;
|
|
289
|
-
list: () => Promise<Array<T[K]>>;
|
|
290
|
-
}
|
|
291
|
-
: never;
|
|
292
|
-
};
|
|
187
|
+
models: ModelTypes<T>;
|
|
293
188
|
}>;
|
|
294
189
|
|
|
295
190
|
export const API = new APIClass(null);
|
package/src/APIClient.ts
ADDED
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
import type { ModelTypes } from '@aws-amplify/types-package-alpha';
|
|
5
|
+
|
|
6
|
+
type ListArgs = { selectionSet?: string[]; filter?: {} };
|
|
7
|
+
|
|
8
|
+
// TODO: this should accept single result to support CRUD methods; create helper for array/list
|
|
9
|
+
export function initializeModel(
|
|
10
|
+
client: any,
|
|
11
|
+
modelName: string,
|
|
12
|
+
result: any[],
|
|
13
|
+
modelIntrospection: any
|
|
14
|
+
): any[] {
|
|
15
|
+
const introModel = modelIntrospection.models[modelName];
|
|
16
|
+
const introModelFields = introModel.fields;
|
|
17
|
+
|
|
18
|
+
const modelFields: string[] = Object.entries(introModelFields)
|
|
19
|
+
.filter(([_, field]: [string, any]) => typeof field.type !== 'string')
|
|
20
|
+
.map(([fieldName]) => fieldName);
|
|
21
|
+
|
|
22
|
+
return result.map(record => {
|
|
23
|
+
const initialized = {};
|
|
24
|
+
|
|
25
|
+
for (const field of modelFields) {
|
|
26
|
+
const relatedModel = introModelFields[field].type.model;
|
|
27
|
+
const connectionField =
|
|
28
|
+
introModelFields[field].association.associatedWith;
|
|
29
|
+
// TODO: support sort key
|
|
30
|
+
const parentPk = introModel.primaryKeyInfo.primaryKeyFieldName;
|
|
31
|
+
|
|
32
|
+
initialized[field] = async () => {
|
|
33
|
+
return client.models[relatedModel].list({
|
|
34
|
+
filter: { [connectionField]: { eq: record[parentPk] } },
|
|
35
|
+
});
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
return { ...record, ...initialized };
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export const graphQLOperationsInfo = {
|
|
44
|
+
CREATE: { operationPrefix: 'create' as const, usePlural: false },
|
|
45
|
+
READ: { operationPrefix: 'get' as const, usePlural: false },
|
|
46
|
+
UPDATE: { operationPrefix: 'update' as const, usePlural: false },
|
|
47
|
+
DELETE: { operationPrefix: 'delete' as const, usePlural: false },
|
|
48
|
+
LIST: { operationPrefix: 'list' as const, usePlural: true },
|
|
49
|
+
};
|
|
50
|
+
export type ModelOperation = keyof typeof graphQLOperationsInfo;
|
|
51
|
+
|
|
52
|
+
type OperationPrefix =
|
|
53
|
+
(typeof graphQLOperationsInfo)[ModelOperation]['operationPrefix'];
|
|
54
|
+
|
|
55
|
+
const graphQLDocumentsCache = new Map<string, Map<ModelOperation, string>>();
|
|
56
|
+
const SELECTION_SET_ALL_NESTED = '*';
|
|
57
|
+
|
|
58
|
+
function defaultSelectionSetForModel(modelDefinition: any): string {
|
|
59
|
+
const { fields } = modelDefinition;
|
|
60
|
+
return Object.values<any>(fields)
|
|
61
|
+
.map(({ type, name }) => typeof type === 'string' && name) // Default selection set omits model fields
|
|
62
|
+
.filter(Boolean)
|
|
63
|
+
.join(' ');
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
function generateSelectionSet(
|
|
67
|
+
modelIntrospection: any,
|
|
68
|
+
modelName: string,
|
|
69
|
+
selectionSet?: string[]
|
|
70
|
+
) {
|
|
71
|
+
const modelDefinition = modelIntrospection[modelName];
|
|
72
|
+
const { fields } = modelDefinition;
|
|
73
|
+
|
|
74
|
+
if (!selectionSet) {
|
|
75
|
+
return defaultSelectionSetForModel(modelDefinition);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
const selSet: string[] = [];
|
|
79
|
+
|
|
80
|
+
for (const f of selectionSet) {
|
|
81
|
+
const nested = f.includes('.');
|
|
82
|
+
|
|
83
|
+
if (nested) {
|
|
84
|
+
const [modelFieldName, selectedField] = f.split('.');
|
|
85
|
+
|
|
86
|
+
const relatedModel = fields[modelFieldName]?.type?.model;
|
|
87
|
+
|
|
88
|
+
if (!relatedModel) {
|
|
89
|
+
// TODO: may need to change this to support custom types
|
|
90
|
+
throw Error(`${modelFieldName} is not a model field`);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
if (selectedField === SELECTION_SET_ALL_NESTED) {
|
|
94
|
+
const relatedModelDefinition = modelIntrospection[relatedModel];
|
|
95
|
+
const defaultSelectionSet = defaultSelectionSetForModel(
|
|
96
|
+
relatedModelDefinition
|
|
97
|
+
);
|
|
98
|
+
|
|
99
|
+
if (fields[modelFieldName]?.isArray) {
|
|
100
|
+
selSet.push(`${modelFieldName} { items { ${defaultSelectionSet} } }`);
|
|
101
|
+
} else {
|
|
102
|
+
selSet.push(`${modelFieldName} { ${defaultSelectionSet} }`);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
} else {
|
|
106
|
+
const exists = Boolean(fields[f]);
|
|
107
|
+
|
|
108
|
+
if (!exists) {
|
|
109
|
+
throw Error(`${f} is not a field of model ${modelName}`);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
selSet.push(f);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
return selSet.join(' ');
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
export function generateGraphQLDocument(
|
|
120
|
+
modelIntrospection: any,
|
|
121
|
+
modelName: string,
|
|
122
|
+
modelOperation: ModelOperation,
|
|
123
|
+
listArgs?: ListArgs
|
|
124
|
+
): string {
|
|
125
|
+
const modelDefinition = modelIntrospection[modelName];
|
|
126
|
+
|
|
127
|
+
const {
|
|
128
|
+
name,
|
|
129
|
+
pluralName,
|
|
130
|
+
fields,
|
|
131
|
+
primaryKeyInfo: {
|
|
132
|
+
isCustomPrimaryKey,
|
|
133
|
+
primaryKeyFieldName,
|
|
134
|
+
sortKeyFieldNames,
|
|
135
|
+
},
|
|
136
|
+
} = modelDefinition;
|
|
137
|
+
|
|
138
|
+
const { operationPrefix, usePlural } = graphQLOperationsInfo[modelOperation];
|
|
139
|
+
|
|
140
|
+
const { selectionSet } = listArgs || {};
|
|
141
|
+
|
|
142
|
+
const fromCache = graphQLDocumentsCache.get(name)?.get(modelOperation);
|
|
143
|
+
|
|
144
|
+
if (fromCache !== undefined) {
|
|
145
|
+
return fromCache;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
if (!graphQLDocumentsCache.has(name)) {
|
|
149
|
+
graphQLDocumentsCache.set(name, new Map());
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
const graphQLFieldName = `${operationPrefix}${usePlural ? pluralName : name}`;
|
|
153
|
+
let graphQLOperationType: 'mutation' | 'query' | undefined;
|
|
154
|
+
let graphQLSelectionSet: string | undefined;
|
|
155
|
+
let graphQLArguments: Record<string, any> | undefined;
|
|
156
|
+
|
|
157
|
+
const selectionSetFields = generateSelectionSet(
|
|
158
|
+
modelIntrospection,
|
|
159
|
+
modelName,
|
|
160
|
+
selectionSet
|
|
161
|
+
);
|
|
162
|
+
|
|
163
|
+
console.log('generated sel set', selectionSetFields);
|
|
164
|
+
|
|
165
|
+
switch (modelOperation) {
|
|
166
|
+
case 'CREATE':
|
|
167
|
+
case 'UPDATE':
|
|
168
|
+
case 'DELETE':
|
|
169
|
+
graphQLArguments ??
|
|
170
|
+
(graphQLArguments = {
|
|
171
|
+
input: `${
|
|
172
|
+
operationPrefix.charAt(0).toLocaleUpperCase() +
|
|
173
|
+
operationPrefix.slice(1)
|
|
174
|
+
}${name}Input!`,
|
|
175
|
+
});
|
|
176
|
+
graphQLOperationType ?? (graphQLOperationType = 'mutation');
|
|
177
|
+
case 'READ':
|
|
178
|
+
graphQLArguments ??
|
|
179
|
+
(graphQLArguments = isCustomPrimaryKey
|
|
180
|
+
? [primaryKeyFieldName, ...sortKeyFieldNames].reduce(
|
|
181
|
+
(acc, fieldName) => {
|
|
182
|
+
acc[fieldName] = fields[fieldName].type;
|
|
183
|
+
|
|
184
|
+
return acc;
|
|
185
|
+
},
|
|
186
|
+
{}
|
|
187
|
+
)
|
|
188
|
+
: {
|
|
189
|
+
[primaryKeyFieldName]: `${fields[primaryKeyFieldName].type}!`,
|
|
190
|
+
});
|
|
191
|
+
graphQLSelectionSet ?? (graphQLSelectionSet = selectionSetFields);
|
|
192
|
+
case 'LIST':
|
|
193
|
+
graphQLArguments ??
|
|
194
|
+
(graphQLArguments = {
|
|
195
|
+
filter: `Model${name}FilterInput`,
|
|
196
|
+
});
|
|
197
|
+
graphQLOperationType ?? (graphQLOperationType = 'query');
|
|
198
|
+
graphQLSelectionSet ??
|
|
199
|
+
(graphQLSelectionSet = `items { ${selectionSetFields} }`);
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
const graphQLDocument = `${graphQLOperationType}${
|
|
203
|
+
graphQLArguments
|
|
204
|
+
? `(${Object.entries(graphQLArguments).map(
|
|
205
|
+
([fieldName, type]) => `\$${fieldName}: ${type}`
|
|
206
|
+
)})`
|
|
207
|
+
: ''
|
|
208
|
+
} { ${graphQLFieldName}${
|
|
209
|
+
graphQLArguments
|
|
210
|
+
? `(${Object.keys(graphQLArguments).map(
|
|
211
|
+
fieldName => `${fieldName}: \$${fieldName}`
|
|
212
|
+
)})`
|
|
213
|
+
: ''
|
|
214
|
+
} { ${graphQLSelectionSet} } }`;
|
|
215
|
+
|
|
216
|
+
graphQLDocumentsCache.get(name)?.set(modelOperation, graphQLDocument);
|
|
217
|
+
|
|
218
|
+
return graphQLDocument;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
export function buildGraphQLVariables(
|
|
222
|
+
modelDefinition: any,
|
|
223
|
+
operation: ModelOperation,
|
|
224
|
+
arg: any
|
|
225
|
+
): object {
|
|
226
|
+
const {
|
|
227
|
+
fields,
|
|
228
|
+
primaryKeyInfo: {
|
|
229
|
+
isCustomPrimaryKey,
|
|
230
|
+
primaryKeyFieldName,
|
|
231
|
+
sortKeyFieldNames,
|
|
232
|
+
},
|
|
233
|
+
} = modelDefinition;
|
|
234
|
+
|
|
235
|
+
let variables = {};
|
|
236
|
+
|
|
237
|
+
// TODO: process input
|
|
238
|
+
switch (operation) {
|
|
239
|
+
case 'CREATE':
|
|
240
|
+
variables = { input: arg };
|
|
241
|
+
break;
|
|
242
|
+
case 'UPDATE':
|
|
243
|
+
// readonly fields are not updated
|
|
244
|
+
variables = {
|
|
245
|
+
input: Object.fromEntries(
|
|
246
|
+
Object.entries(arg).filter(([fieldName]) => {
|
|
247
|
+
const { isReadOnly } = fields[fieldName];
|
|
248
|
+
|
|
249
|
+
return !isReadOnly;
|
|
250
|
+
})
|
|
251
|
+
),
|
|
252
|
+
};
|
|
253
|
+
break;
|
|
254
|
+
case 'READ':
|
|
255
|
+
case 'DELETE':
|
|
256
|
+
// only identifiers are sent
|
|
257
|
+
variables = isCustomPrimaryKey
|
|
258
|
+
? [primaryKeyFieldName, ...sortKeyFieldNames].reduce(
|
|
259
|
+
(acc, fieldName) => {
|
|
260
|
+
acc[fieldName] = arg[fieldName];
|
|
261
|
+
|
|
262
|
+
return acc;
|
|
263
|
+
},
|
|
264
|
+
{}
|
|
265
|
+
)
|
|
266
|
+
: { [primaryKeyFieldName]: arg[primaryKeyFieldName] };
|
|
267
|
+
|
|
268
|
+
if (operation === 'DELETE') {
|
|
269
|
+
variables = { input: variables };
|
|
270
|
+
}
|
|
271
|
+
break;
|
|
272
|
+
case 'LIST':
|
|
273
|
+
if (arg?.filter) {
|
|
274
|
+
variables = { filter: arg.filter };
|
|
275
|
+
}
|
|
276
|
+
break;
|
|
277
|
+
default:
|
|
278
|
+
const exhaustiveCheck: never = operation;
|
|
279
|
+
throw new Error(`Unhandled operation case: ${exhaustiveCheck}`);
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
return variables;
|
|
283
|
+
}
|
package/lib/.tsbuildinfo
DELETED
package/lib/API.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"API.js","sourceRoot":"","sources":["../src/API.ts"],"names":[],"mappings":";;;AASA,gEAA0E;AAC1E,0CAAqE;AAErE,uDAA2D;AAE3D,IAAM,MAAM,GAAG,IAAI,oBAAM,CAAC,KAAK,CAAC,CAAC;AACjC;;;;GAIG;AACH;IAA8B,oCAAgB;IAA9C;;IA4EA,CAAC;IA3EO,gCAAa,GAApB;QACC,OAAO,KAAK,CAAC;IACd,CAAC;IAoBD,0BAAO,GAAP,UACC,OAAuB,EACvB,iBAA6C;QAE7C,OAAO,iBAAM,OAAO,YAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,iCAAc,GAAd;;QAAA,iBA0CC;QAzCA,IAAM,MAAM,GAAG,iBAAM,SAAS,YAAC,EAAE,CAAC,CAAC;QAE3B,IAAA,8CAAkB,CAAY;QAEtC,IAAM,MAAM,GAAkB;YAC7B,OAAO,EAAE,mBAAS;YAClB,MAAM,EAAE,EAAE;SACV,CAAC;gCAES,KAAK;YACP,IAAA,mBAAI,CAAkB;YAE9B,MAAM,CAAC,MAAM,CAAC,MAAI,CAAC,GAAG,EAAS,CAAC;YAEhC,MAAM,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAC5C,UAAC,EAA0B;oBAA1B,0BAA0B,EAAzB,WAAG,EAAI,uCAAe;gBACvB,IAAM,SAAS,GAAG,GAAqB,CAAC;gBAExC,kCAAkC;gBAClC,MAAM,CAAC,MAAM,CAAC,MAAI,CAAC,CAAC,eAAe,CAAC,GAAG,UAAO,GAAS;;;;;gCAChD,KAAK,GAAG,uBAAuB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;gCAClD,SAAS,GAAG,qBAAqB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;gCAElD,qBAAM,IAAI,CAAC,OAAO,CAAC;wCAC/B,KAAK,OAAA;wCACL,SAAS,WAAA;qCACT,CAAC,EAAA;;gCAHI,GAAG,GAAG,CAAC,SAGX,CAAQ;gCAEV,mBAAmB;gCACnB,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE;oCACrB,KAAA,eAAQ,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAA,EAA5B,aAAG,CAA0B;oCACpC,sBAAO,GAAG,CAAC,IAAI,CAAC,KAAG,CAAC,EAAC;iCACrB;gCAED,sBAAO,GAAG,EAAC;;;qBACX,CAAC;YACH,CAAC,CACD,CAAC;;;YA5BH,KAAoB,IAAA,KAAA,iBAAA,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAA,gBAAA;gBAAvD,IAAM,KAAK,WAAA;wBAAL,KAAK;aA6Bf;;;;;;;;;QAED,OAAO,MAAqB,CAAC;IAC9B,CAAC;IACF,eAAC;AAAD,CAAC,AA5ED,CAA8B,8BAAgB,GA4E7C;AA5EY,4BAAQ;AA8ErB,IAAM,qBAAqB,GAAG;IAC7B,MAAM,EAAE,EAAE,eAAe,EAAE,QAAiB,EAAE,SAAS,EAAE,KAAK,EAAE;IAChE,IAAI,EAAE,EAAE,eAAe,EAAE,KAAc,EAAE,SAAS,EAAE,KAAK,EAAE;IAC3D,MAAM,EAAE,EAAE,eAAe,EAAE,QAAiB,EAAE,SAAS,EAAE,KAAK,EAAE;IAChE,MAAM,EAAE,EAAE,eAAe,EAAE,QAAiB,EAAE,SAAS,EAAE,KAAK,EAAE;IAChE,IAAI,EAAE,EAAE,eAAe,EAAE,MAAe,EAAE,SAAS,EAAE,IAAI,EAAE;CAC3D,CAAC;AAKF,IAAM,qBAAqB,GAAG,IAAI,GAAG,EAAuC,CAAC;AAE7E,SAAS,uBAAuB,CAC/B,eAAoB,EACpB,cAA8B;;;IAG7B,IAAA,2BAAI,EACJ,uCAAU,EACV,+BAAM,EACN,mCAIC,EAHA,0CAAkB,EAClB,4CAAmB,EACnB,wCACA,CACkB;IACd,IAAA,0CAAsE,EAApE,oCAAe,EAAE,wBAAmD,CAAC;IAE7E,IAAM,SAAS,SAAG,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,0CAAE,GAAG,CAAC,cAAc,CAAC,CAAC;IAEvE,IAAI,SAAS,KAAK,SAAS,EAAE;QAC5B,OAAO,SAAS,CAAC;KACjB;IAED,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QACrC,qBAAqB,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;KAC3C;IAED,IAAM,gBAAgB,GAAG,KAAG,eAAe,IAAG,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAE,CAAC;IAC9E,IAAI,oBAAsD,CAAC;IAC3D,IAAI,mBAAuC,CAAC;IAC5C,IAAI,gBAAiD,CAAC;IAEtD,IAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAM,MAAM,CAAC;SACnD,GAAG,CAAC,UAAC,EAAc;YAAZ,cAAI,EAAE,cAAI;QAAO,OAAA,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI;IAAhC,CAAgC,CAAC,CAAC,uBAAuB;SACjF,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,GAAG,CAAC,CAAC;IAEZ,QAAQ,cAAc,EAAE;QACvB,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ;YACZ,gBAAgB,aAAhB,gBAAgB,cAAhB,gBAAgB,GACf,CAAC,gBAAgB,GAAG;gBACnB,KAAK,EAAE,MACN,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAAE;oBAC7C,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,IACtB,IAAI,WAAQ;aACf,CAAC,CAAC;YACJ,oBAAoB,aAApB,oBAAoB,cAApB,oBAAoB,GAAI,CAAC,oBAAoB,GAAG,UAAU,CAAC,CAAC;QAC7D,KAAK,MAAM;YACV,gBAAgB,aAAhB,gBAAgB,cAAhB,gBAAgB,GACf,CAAC,gBAAgB,GAAG,kBAAkB;gBACrC,CAAC,CAAC,kBAAC,mBAAmB,GAAK,iBAAiB,EAAE,MAAM,CAClD,UAAC,GAAG,EAAE,SAAS;oBACd,GAAG,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC;oBAExC,OAAO,GAAG,CAAC;gBACZ,CAAC,EACD,EAAE,CACD;gBACH,CAAC;oBACC,GAAC,mBAAmB,IAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC,IAAI,MAAG;uBAC5D,CAAC,CAAC;YACP,mBAAmB,aAAnB,mBAAmB,cAAnB,mBAAmB,GAAI,CAAC,mBAAmB,GAAG,kBAAkB,CAAC,CAAC;QACnE,KAAK,MAAM;YACV,oBAAoB,aAApB,oBAAoB,cAApB,oBAAoB,GAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC,CAAC;YACzD,mBAAmB,aAAnB,mBAAmB,cAAnB,mBAAmB,GAClB,CAAC,mBAAmB,GAAG,aAAW,kBAAkB,OAAI,CAAC,CAAC;KAC5D;IAED,IAAM,eAAe,GAAG,KAAG,oBAAoB,IAC9C,gBAAgB;QACf,CAAC,CAAC,MAAI,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,GAAG,CACxC,UAAC,EAAiB;gBAAjB,0BAAiB,EAAhB,iBAAS,EAAE,YAAI;YAAM,OAAA,MAAK,SAAS,UAAK,IAAM;QAAzB,CAAyB,CAC/C,MAAG;QACN,CAAC,CAAC,EAAE,YACA,gBAAgB,IACrB,gBAAgB;QACf,CAAC,CAAC,MAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,GAAG,CACrC,UAAA,SAAS,IAAI,OAAG,SAAS,WAAO,SAAW,EAA9B,CAA8B,CAC1C,MAAG;QACN,CAAC,CAAC,EAAE,YACA,mBAAmB,SAAM,CAAC;IAEhC,MAAA,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,0CAAE,GAAG,CAAC,cAAc,EAAE,eAAe,EAAE;IAEtE,OAAO,eAAe,CAAC;AACxB,CAAC;AAED,SAAS,qBAAqB,CAC7B,eAAoB,EACpB,SAAyB,EACzB,GAAQ;;IAGP,IAAA,+BAAM,EACN,mCAIC,EAHA,0CAAkB,EAClB,4CAAmB,EACnB,wCACA,CACkB;IAEpB,IAAI,SAAS,GAAG,EAAE,CAAC;IAEnB,QAAQ,SAAS,EAAE;QAClB,KAAK,QAAQ;YACZ,SAAS,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;YAC3B,MAAM;QACP,KAAK,QAAQ;YACZ,mCAAmC;YACnC,SAAS,GAAG;gBACX,KAAK,EAAE,MAAM,CAAC,WAAW,CACxB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,UAAC,EAAW;wBAAX,0BAAW,EAAV,iBAAS;oBAC7B,IAAA,yCAAU,CAAuB;oBAEzC,OAAO,CAAC,UAAU,CAAC;gBACpB,CAAC,CAAC,CACF;aACD,CAAC;YACF,MAAM;QACP,KAAK,MAAM,CAAC;QACZ,KAAK,QAAQ;YACZ,4BAA4B;YAC5B,SAAS,GAAG,kBAAkB;gBAC7B,CAAC,CAAC,kBAAC,mBAAmB,GAAK,iBAAiB,EAAE,MAAM,CAClD,UAAC,GAAG,EAAE,SAAS;oBACd,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC;oBAEhC,OAAO,GAAG,CAAC;gBACZ,CAAC,EACD,EAAE,CACD;gBACH,CAAC,WAAG,GAAC,mBAAmB,IAAG,GAAG,CAAC,mBAAmB,CAAC,KAAE,CAAC;YAEvD,IAAI,SAAS,KAAK,QAAQ,EAAE;gBAC3B,SAAS,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;aACjC;YACD,MAAM;QACP,KAAK,MAAM;YACV,MAAM;QACP;YACC,IAAM,eAAe,GAAU,SAAS,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,+BAA6B,eAAiB,CAAC,CAAC;KACjE;IAED,OAAO,SAAS,CAAC;AAClB,CAAC;AAqCY,QAAA,GAAG,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;AACtC,cAAO,CAAC,QAAQ,CAAC,WAAG,CAAC,CAAC"}
|
package/lib/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,sCAAsC;;AAGtC,6BAAsC;AAA7B,oBAAA,GAAG,CAAA;AAAE,yBAAA,QAAQ,CAAA;AACtB,wDAIkC;AAHjC,yCAAA,gBAAgB,CAAA;AAChB,yCAAA,gBAAgB,CAAA;AAChB,0CAAA,iBAAiB,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"InternalAPI.js","sourceRoot":"","sources":["../../src/internals/InternalAPI.ts"],"names":[],"mappings":";;;AAUA,gEAA6E;AAC7E,kDAAqD;AACrD,0CAAyC;AACzC,4CAA2C;AAC3C,0CAO2B;AAI3B,IAAM,MAAM,GAAG,IAAI,oBAAM,CAAC,KAAK,CAAC,CAAC;AACjC;;;;GAIG;AACH;IAaC;;;OAGG;IACH,0BAAY,OAAO;QARnB,SAAI,GAAG,WAAI,CAAC;QACZ,UAAK,GAAG,aAAK,CAAC;QACd,gBAAW,GAAG,kBAAW,CAAC;QAOzB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,uBAAY,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,mCAAuB,CAAC,OAAO,CAAC,CAAC;QACxD,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAEM,wCAAa,GAApB;QACC,OAAO,aAAa,CAAC;IACtB,CAAC;IAED;;;;OAIG;IACH,oCAAS,GAAT,UAAU,OAAO;QAChB,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAE1D,6CAA6C;QAC7C,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAE7C,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAClC,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACpC,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAEhD,IAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7D,IAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEnE,6CAAY,aAAa,GAAK,gBAAgB,EAAG;IAClD,CAAC;IAED;;;;;;OAMG;IACH,8BAAG,GAAH,UACC,OAAe,EACf,IAAY,EACZ,IAA4B;QAE5B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CACvB,OAAO,EACP,IAAI,EACJ,IAAI,CAAC,iCAAiC,CAAC,IAAI,EAAE,gBAAS,CAAC,GAAG,CAAC,CAC3D,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,+BAAI,GAAJ,UACC,OAAe,EACf,IAAY,EACZ,IAA4B;QAE5B,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CACxB,OAAO,EACP,IAAI,EACJ,IAAI,CAAC,iCAAiC,CAAC,IAAI,EAAE,gBAAS,CAAC,IAAI,CAAC,CAC5D,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,8BAAG,GAAH,UACC,OAAe,EACf,IAAY,EACZ,IAA4B;QAE5B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CACvB,OAAO,EACP,IAAI,EACJ,IAAI,CAAC,iCAAiC,CAAC,IAAI,EAAE,gBAAS,CAAC,GAAG,CAAC,CAC3D,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,gCAAK,GAAL,UACC,OAAe,EACf,IAAY,EACZ,IAA4B;QAE5B,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CACzB,OAAO,EACP,IAAI,EACJ,IAAI,CAAC,iCAAiC,CAAC,IAAI,EAAE,gBAAS,CAAC,KAAK,CAAC,CAC7D,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,8BAAG,GAAH,UACC,OAAe,EACf,IAAY,EACZ,IAA4B;QAE5B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CACvB,OAAO,EACP,IAAI,EACJ,IAAI,CAAC,iCAAiC,CAAC,IAAI,EAAE,gBAAS,CAAC,GAAG,CAAC,CAC3D,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,+BAAI,GAAJ,UACC,OAAe,EACf,IAAY,EACZ,IAA4B;QAE5B,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CACxB,OAAO,EACP,IAAI,EACJ,IAAI,CAAC,iCAAiC,CAAC,IAAI,EAAE,gBAAS,CAAC,IAAI,CAAC,CAC5D,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,mCAAQ,GAAR,UAAS,KAAU;QAClB,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IACD;;;;;OAKG;IACH,iCAAM,GAAN,UAAO,OAAqB,EAAE,OAAgB;QAC7C,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE;YAC1C,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;SAC9C;aAAM,IAAI,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE;YACpD,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;SACjD;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAEO,4DAAiC,GAAzC,UACC,IAA4B,EAC5B,MAAiB;QAEjB,IAAM,sBAAsB,GAA2B;YACtD,QAAQ,EAAE,eAAQ,CAAC,GAAG;YACtB,MAAM,QAAA;SACN,CAAC;QACF,IAAM,UAAU,yCAAQ,IAAI,KAAE,sBAAsB,wBAAA,GAAE,CAAC;QACvD,OAAO,UAAU,CAAC;IACnB,CAAC;IAED;;;;OAIG;IACG,mCAAQ,GAAd,UAAe,OAAe;;;gBAC7B,sBAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAC;;;KACvC;IAED;;;OAGG;IACH,kDAAuB,GAAvB,UAAwB,SAA2B;QAClD,OAAO,IAAI,CAAC,WAAW,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;IAC5D,CAAC;IAqBD,kCAAO,GAAP,UACC,OAAuB,EACvB,iBAA6C,EAC7C,sBAA+C;QAE/C,IAAM,mBAAmB,sBACxB,QAAQ,EAAE,eAAQ,CAAC,GAAG,EACtB,MAAM,EAAE,gBAAS,CAAC,OAAO,IACtB,sBAAsB,CACzB,CAAC;QAEF,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAC9B,OAAO,EACP,iBAAiB,EACjB,mBAAmB,CACnB,CAAC;IACH,CAAC;IACF,uBAAC;AAAD,CAAC,AA3PD,IA2PC;AA3PY,4CAAgB;AA6PhB,QAAA,WAAW,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;AACtD,cAAO,CAAC,QAAQ,CAAC,mBAAW,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/internals/index.ts"],"names":[],"mappings":";;AAAA,qEAAqE;AACrE,sCAAsC;AACtC,6CAA8D;AAArD,oCAAA,WAAW,CAAA;AAAE,yCAAA,gBAAgB,CAAA"}
|
package/lib/types/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,sCAAsC;;AAEtC;;;;GAIG;AACH,wDAOkC;AANjC,yCAAA,gBAAgB,CAAA;AAChB,yCAAA,gBAAgB,CAAA;AAEhB,0CAAA,iBAAiB,CAAA"}
|
package/lib-esm/.tsbuildinfo
DELETED
package/lib-esm/API.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"API.js","sourceRoot":"","sources":["../src/API.ts"],"names":[],"mappings":"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"}
|
package/lib-esm/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAGtC,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EACN,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,GACjB,MAAM,0BAA0B,CAAC"}
|