payload 0.15.0 → 0.15.3

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.
Files changed (40) hide show
  1. package/.eslintrc.js +6 -0
  2. package/CHANGELOG.md +56 -70
  3. package/dist/admin/components/elements/elements.spec.d.ts +1 -0
  4. package/dist/admin/components/elements/elements.spec.js +12 -0
  5. package/dist/admin/components/forms/field-types/RichText/RichText.js +1 -1
  6. package/dist/admin/components/forms/field-types/RichText/index.scss +4 -1
  7. package/dist/admin/components/utilities/CustomProvider/index.d.ts +4 -0
  8. package/dist/admin/components/utilities/CustomProvider/index.js +18 -0
  9. package/dist/admin/index.js +3 -1
  10. package/dist/auth/auth.spec.d.ts +1 -0
  11. package/dist/auth/auth.spec.js +198 -0
  12. package/dist/collections/graphql/resolvers/resolvers.spec.d.ts +1 -0
  13. package/dist/collections/graphql/resolvers/resolvers.spec.js +360 -0
  14. package/dist/collections/operations/local/local.spec.d.ts +1 -0
  15. package/dist/collections/operations/local/local.spec.js +175 -0
  16. package/dist/collections/tests/collections.spec.d.ts +1 -0
  17. package/dist/collections/tests/collections.spec.js +725 -0
  18. package/dist/collections/tests/hooks.spec.d.ts +1 -0
  19. package/dist/collections/tests/hooks.spec.js +152 -0
  20. package/dist/collections/tests/pointField.spec.d.ts +1 -0
  21. package/dist/collections/tests/pointField.spec.js +208 -0
  22. package/dist/collections/tests/relationships.spec.d.ts +1 -0
  23. package/dist/collections/tests/relationships.spec.js +174 -0
  24. package/dist/collections/tests/uploads.spec.d.ts +1 -0
  25. package/dist/collections/tests/uploads.spec.js +328 -0
  26. package/dist/config/schema.js +2 -1
  27. package/dist/config/types.d.ts +2 -1
  28. package/dist/errors/errors.spec.d.ts +1 -0
  29. package/dist/errors/errors.spec.js +29 -0
  30. package/dist/express/middleware/errorHandler.spec.d.ts +1 -0
  31. package/dist/express/middleware/errorHandler.spec.js +91 -0
  32. package/dist/globals/requestHandlers/globals.spec.d.ts +4 -0
  33. package/dist/globals/requestHandlers/globals.spec.js +161 -0
  34. package/dist/graphql/schema/buildMutationInputType.js +2 -2
  35. package/dist/preferences/graphql/resolvers.spec.d.ts +1 -0
  36. package/dist/preferences/graphql/resolvers.spec.js +115 -0
  37. package/dist/versions/drafts/appendVersionToQueryKey.js +8 -5
  38. package/docs/admin/components.mdx +10 -2
  39. package/docs/versions/overview.mdx +2 -2
  40. package/package.json +1 -1
@@ -0,0 +1,360 @@
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
+ /**
7
+ * @jest-environment node
8
+ */
9
+ const graphql_request_1 = require("graphql-request");
10
+ const load_1 = __importDefault(require("../../../config/load"));
11
+ const testCredentials_1 = require("../../../mongoose/testCredentials");
12
+ require('isomorphic-fetch');
13
+ const config = (0, load_1.default)();
14
+ const url = `${config.serverURL}${config.routes.api}${config.routes.graphQL}`;
15
+ let client = null;
16
+ let token = null;
17
+ describe('GrahpQL Resolvers', () => {
18
+ beforeAll(async (done) => {
19
+ const query = `
20
+ mutation {
21
+ loginAdmin(
22
+ email: "${testCredentials_1.email}",
23
+ password: "${testCredentials_1.password}"
24
+ ) {
25
+ token
26
+ }
27
+ }`;
28
+ const response = await (0, graphql_request_1.request)(url, query);
29
+ token = response.loginAdmin.token;
30
+ client = new graphql_request_1.GraphQLClient(url, { headers: { Authorization: `JWT ${token}` } });
31
+ done();
32
+ });
33
+ describe('Create', () => {
34
+ it('should allow a localized post to be created', async () => {
35
+ const title = 'gql create';
36
+ const description = 'description';
37
+ // language=graphQL
38
+ const query = `mutation {
39
+ createLocalizedPost(data: {title: "${title}", description: "${description}", priority: 10}) {
40
+ id
41
+ title
42
+ description
43
+ priority
44
+ createdAt
45
+ updatedAt
46
+ }
47
+ }`;
48
+ const response = await client.request(query);
49
+ const data = response.createLocalizedPost;
50
+ expect(data.title).toBe(title);
51
+ expect(data.id).toStrictEqual(expect.any(String));
52
+ // const timestampRegex = /^(\d{4})(?:-?W(\d+)(?:-?(\d+)D?)?|(?:-(\d+))?-(\d+))(?:[T ](\d+):(\d+)(?::(\d+)(?:\.(\d+))?)?)?(?:Z(-?\d*))?$/;
53
+ // expect(data.createdAt).toStrictEqual(expect.stringMatching(timestampRegex));
54
+ // expect(data.updatedAt).toStrictEqual(expect.stringMatching(timestampRegex));
55
+ expect(data.createdAt).toStrictEqual(expect.any(String));
56
+ expect(data.updatedAt).toStrictEqual(expect.any(String));
57
+ });
58
+ });
59
+ describe('Read', () => {
60
+ it('should be able to read localized post', async () => {
61
+ const title = 'gql read 1';
62
+ const description = 'description';
63
+ // language=graphQL
64
+ const query = `mutation {
65
+ createLocalizedPost(data: {title: "${title}", description: "${description}", priority: 10}) {
66
+ id
67
+ title
68
+ description
69
+ priority
70
+ createdAt
71
+ updatedAt
72
+ }
73
+ }`;
74
+ const response = await client.request(query);
75
+ const { id } = response.createLocalizedPost;
76
+ // language=graphQL
77
+ const readQuery = `query {
78
+ LocalizedPost(id: "${id}") {
79
+ id
80
+ }
81
+ }`;
82
+ const readResponse = await client.request(readQuery);
83
+ const retrievedId = readResponse.LocalizedPost.id;
84
+ expect(retrievedId).toStrictEqual(id);
85
+ });
86
+ it('should query exists - true', async () => {
87
+ const title = 'gql read 2';
88
+ const description = 'description';
89
+ const summary = 'summary';
90
+ // language=graphQL
91
+ const query = `mutation {
92
+ createLocalizedPost(data: {title: "${title}", description: "${description}", summary: "${summary}", priority: 10}) {
93
+ id
94
+ title
95
+ description
96
+ priority
97
+ createdAt
98
+ updatedAt
99
+ }
100
+ }`;
101
+ const response = await client.request(query);
102
+ const { id } = response.createLocalizedPost;
103
+ // language=graphQL
104
+ const readQuery = `query {
105
+ LocalizedPosts(where: { summary: { exists: true }}) {
106
+ docs {
107
+ id
108
+ description
109
+ summary
110
+ }
111
+ }
112
+ }`;
113
+ const readResponse = await client.request(readQuery);
114
+ const retrievedId = readResponse.LocalizedPosts.docs[0].id;
115
+ expect(readResponse.LocalizedPosts.docs).toHaveLength(1);
116
+ expect(retrievedId).toStrictEqual(id);
117
+ });
118
+ it('should query exists - false', async () => {
119
+ const title = 'gql read 3';
120
+ const description = 'description';
121
+ // language=graphQL
122
+ const query = `mutation {
123
+ createLocalizedPost(data: {title: "${title}", description: "${description}", priority: 10}) {
124
+ id
125
+ title
126
+ description
127
+ priority
128
+ createdAt
129
+ updatedAt
130
+ }
131
+ }`;
132
+ const response = await client.request(query);
133
+ const { id } = response.createLocalizedPost;
134
+ // language=graphQL
135
+ const readQuery = `query {
136
+ LocalizedPosts(where: { summary: { exists: false }}) {
137
+ docs {
138
+ id
139
+ summary
140
+ }
141
+ }
142
+ }`;
143
+ const readResponse = await client.request(readQuery);
144
+ const retrievedDoc = readResponse.LocalizedPosts.docs[0];
145
+ expect(readResponse.LocalizedPosts.docs.length).toBeGreaterThan(0);
146
+ expect(retrievedDoc.id).toStrictEqual(id);
147
+ expect(retrievedDoc.summary).toBeNull();
148
+ });
149
+ });
150
+ describe('Update', () => {
151
+ it('should allow updating an existing post', async () => {
152
+ const title = 'gql update';
153
+ const description = 'description';
154
+ // language=graphQL
155
+ const query = `mutation {
156
+ createLocalizedPost(data: { title: "${title}", description: "${description}", priority: 10}) {
157
+ id
158
+ title
159
+ description
160
+ priority
161
+ }
162
+ }`;
163
+ const createResponse = await client.request(query);
164
+ const createData = createResponse.createLocalizedPost;
165
+ const { id } = createData;
166
+ const updatedDesc = 'updated description';
167
+ // language=graphQL
168
+ const update = `
169
+ mutation {
170
+ updateLocalizedPost(id: "${id}" data: {description: "${updatedDesc}"}) {
171
+ description
172
+ }
173
+ }`;
174
+ const response = await client.request(update);
175
+ const data = response.updateLocalizedPost;
176
+ expect(data.description).toBe(updatedDesc);
177
+ });
178
+ });
179
+ describe('Delete', () => {
180
+ it('should be able to delete a localized post', async () => {
181
+ const title = 'gql delete';
182
+ const description = 'description';
183
+ // language=graphQL
184
+ const query = `mutation {
185
+ createLocalizedPost(data: {title: "${title}", description: "${description}", priority: 10}) {
186
+ id
187
+ title
188
+ description
189
+ priority
190
+ createdAt
191
+ updatedAt
192
+ }
193
+ }`;
194
+ const response = await client.request(query);
195
+ const { id } = response.createLocalizedPost;
196
+ // language=graphQL
197
+ const deleteMutation = `mutation {
198
+ deleteLocalizedPost(id: "${id}") {
199
+ id
200
+ }
201
+ }`;
202
+ const deleteResponse = await client.request(deleteMutation);
203
+ const deletedId = deleteResponse.deleteLocalizedPost.id;
204
+ expect(deletedId).toStrictEqual(id);
205
+ });
206
+ });
207
+ describe('Error Handler', () => {
208
+ it('should return have an array of errors when making a bad request', async () => {
209
+ let error;
210
+ // language=graphQL
211
+ const query = `query {
212
+ LocalizedPosts(where: { summary: { exists: true }}) {
213
+ docs {
214
+ badFieldName
215
+ }
216
+ }
217
+ }`;
218
+ await client.request(query).catch((err) => {
219
+ error = err;
220
+ });
221
+ expect(Array.isArray(error.response.errors)).toBe(true);
222
+ expect(typeof error.response.errors[0].message).toBe('string');
223
+ });
224
+ it('should return have an array of errors when failing to pass validation', async () => {
225
+ let error;
226
+ // language=graphQL
227
+ const query = `mutation {
228
+ createLocalizedPost(data: {priority: 10}) {
229
+ id
230
+ priority
231
+ createdAt
232
+ updatedAt
233
+ }
234
+ }`;
235
+ await client.request(query).catch((err) => {
236
+ error = err;
237
+ });
238
+ expect(Array.isArray(error.response.errors)).toBe(true);
239
+ expect(typeof error.response.errors[0].message).toBe('string');
240
+ });
241
+ });
242
+ describe('Custom ID', () => {
243
+ it('should create', async () => {
244
+ const id = 10;
245
+ const query = `mutation {
246
+ createCustomID(data: {
247
+ id: ${id},
248
+ name: "custom"
249
+ }) {
250
+ id,
251
+ name
252
+ }
253
+ }`;
254
+ const response = await client.request(query);
255
+ const data = response.createCustomID;
256
+ expect(data.id).toStrictEqual(id);
257
+ });
258
+ it('should update', async () => {
259
+ const id = 11;
260
+ const name = 'custom name';
261
+ const query = `
262
+ mutation {
263
+ createCustomID(data: {
264
+ id: ${id},
265
+ name: "${name}"
266
+ }) {
267
+ id
268
+ name
269
+ }
270
+ }`;
271
+ await client.request(query);
272
+ const updatedName = 'updated name';
273
+ const update = `
274
+ mutation {
275
+ updateCustomID(id: ${id} data: {name: "${updatedName}"}) {
276
+ name
277
+ }
278
+ }`;
279
+ const response = await client.request(update);
280
+ const data = response.updateCustomID;
281
+ expect(data.name).toStrictEqual(updatedName);
282
+ expect(data.name).not.toStrictEqual(name);
283
+ });
284
+ it('should query on id', async () => {
285
+ const id = 15;
286
+ const name = 'custom name';
287
+ const create = `mutation {
288
+ createCustomID(data: {
289
+ id: ${id},
290
+ name: "${name}"
291
+ }) {
292
+ id
293
+ name
294
+ }
295
+ }`;
296
+ await client.request(create);
297
+ const query = `
298
+ query {
299
+ CustomIDs(where: { id: { equals: ${id} } }) {
300
+ docs {
301
+ id
302
+ name
303
+ }
304
+ }
305
+ }`;
306
+ const response = await client.request(query);
307
+ const [doc] = response.CustomIDs.docs;
308
+ expect(doc.id).toStrictEqual(id);
309
+ expect(doc.name).toStrictEqual(name);
310
+ });
311
+ it('should delete', async () => {
312
+ const id = 12;
313
+ const query = `mutation {
314
+ createCustomID(data: {
315
+ id: ${id},
316
+ name: "delete me"
317
+ }) {
318
+ id
319
+ name
320
+ }
321
+ }`;
322
+ await client.request(query);
323
+ const deleteMutation = `mutation {
324
+ deleteCustomID(id: ${id}) {
325
+ id
326
+ }
327
+ }`;
328
+ const deleteResponse = await client.request(deleteMutation);
329
+ const deletedId = deleteResponse.deleteCustomID.id;
330
+ expect(deletedId).toStrictEqual(id);
331
+ });
332
+ it('should allow relationships', async () => {
333
+ const id = 13;
334
+ const query = `mutation {
335
+ createCustomID(data: {
336
+ id: ${id},
337
+ name: "relate me"
338
+ }) {
339
+ id
340
+ name
341
+ }
342
+ }`;
343
+ await client.request(query);
344
+ const relation = `mutation {
345
+ createRelationshipA(data: {
346
+ customID: [ ${id} ]
347
+ }) {
348
+ customID {
349
+ id
350
+ }
351
+ }
352
+ }`;
353
+ const relationResponse = await client.request(relation);
354
+ const { customID } = relationResponse.createRelationshipA;
355
+ expect(customID).toHaveLength(1);
356
+ expect(customID).toHaveLength(1);
357
+ });
358
+ });
359
+ });
360
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZXJzLnNwZWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29sbGVjdGlvbnMvZ3JhcGhxbC9yZXNvbHZlcnMvcmVzb2x2ZXJzLnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7R0FFRztBQUNILHFEQUF5RDtBQUN6RCxnRUFBNkM7QUFDN0MsdUVBQW9FO0FBRXBFLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0FBRTVCLE1BQU0sTUFBTSxHQUFHLElBQUEsY0FBUyxHQUFFLENBQUM7QUFFM0IsTUFBTSxHQUFHLEdBQUcsR0FBRyxNQUFNLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7QUFFOUUsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDO0FBQ2xCLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQztBQUVqQixRQUFRLENBQUMsbUJBQW1CLEVBQUUsR0FBRyxFQUFFO0lBQ2pDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUU7UUFDdkIsTUFBTSxLQUFLLEdBQUc7OztvQkFHRSx1QkFBSzt1QkFDRiwwQkFBUTs7OztRQUl2QixDQUFDO1FBRUwsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFBLHlCQUFPLEVBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRTNDLEtBQUssR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQztRQUVsQyxNQUFNLEdBQUcsSUFBSSwrQkFBYSxDQUFDLEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLGFBQWEsRUFBRSxPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWhGLElBQUksRUFBRSxDQUFDO0lBQ1QsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRTtRQUN0QixFQUFFLENBQUMsNkNBQTZDLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDM0QsTUFBTSxLQUFLLEdBQUcsWUFBWSxDQUFDO1lBQzNCLE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQztZQUVsQyxtQkFBbUI7WUFDbkIsTUFBTSxLQUFLLEdBQUc7K0NBQzJCLEtBQUssb0JBQW9CLFdBQVc7Ozs7Ozs7O1FBUTNFLENBQUM7WUFFSCxNQUFNLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFN0MsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLG1CQUFtQixDQUFDO1lBRTFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQy9CLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUNsRCwwSUFBMEk7WUFDMUksK0VBQStFO1lBQy9FLCtFQUErRTtZQUMvRSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDekQsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQzNELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRTtRQUNwQixFQUFFLENBQUMsdUNBQXVDLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDckQsTUFBTSxLQUFLLEdBQUcsWUFBWSxDQUFDO1lBQzNCLE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQztZQUVsQyxtQkFBbUI7WUFDbkIsTUFBTSxLQUFLLEdBQUc7aURBQzZCLEtBQUssb0JBQW9CLFdBQVc7Ozs7Ozs7O1VBUTNFLENBQUM7WUFFTCxNQUFNLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFN0MsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQztZQUM1QyxtQkFBbUI7WUFDbkIsTUFBTSxTQUFTLEdBQUc7NkJBQ0ssRUFBRTs7O1FBR3ZCLENBQUM7WUFDSCxNQUFNLFlBQVksR0FBRyxNQUFNLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDckQsTUFBTSxXQUFXLEdBQUcsWUFBWSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7WUFFbEQsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN4QyxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyw0QkFBNEIsRUFBRSxLQUFLLElBQUksRUFBRTtZQUMxQyxNQUFNLEtBQUssR0FBRyxZQUFZLENBQUM7WUFDM0IsTUFBTSxXQUFXLEdBQUcsYUFBYSxDQUFDO1lBQ2xDLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQztZQUUxQixtQkFBbUI7WUFDbkIsTUFBTSxLQUFLLEdBQUc7aURBQzZCLEtBQUssb0JBQW9CLFdBQVcsZ0JBQWdCLE9BQU87Ozs7Ozs7O1VBUWxHLENBQUM7WUFFTCxNQUFNLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFN0MsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQztZQUM1QyxtQkFBbUI7WUFDbkIsTUFBTSxTQUFTLEdBQUc7Ozs7Ozs7O0VBUXRCLENBQUM7WUFDRyxNQUFNLFlBQVksR0FBRyxNQUFNLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDckQsTUFBTSxXQUFXLEdBQUcsWUFBWSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBRTNELE1BQU0sQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN6RCxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3hDLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLDZCQUE2QixFQUFFLEtBQUssSUFBSSxFQUFFO1lBQzNDLE1BQU0sS0FBSyxHQUFHLFlBQVksQ0FBQztZQUMzQixNQUFNLFdBQVcsR0FBRyxhQUFhLENBQUM7WUFFbEMsbUJBQW1CO1lBQ25CLE1BQU0sS0FBSyxHQUFHO2lEQUM2QixLQUFLLG9CQUFvQixXQUFXOzs7Ozs7OztVQVEzRSxDQUFDO1lBRUwsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRTdDLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxRQUFRLENBQUMsbUJBQW1CLENBQUM7WUFDNUMsbUJBQW1CO1lBQ25CLE1BQU0sU0FBUyxHQUFHOzs7Ozs7O0VBT3RCLENBQUM7WUFDRyxNQUFNLFlBQVksR0FBRyxNQUFNLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDckQsTUFBTSxZQUFZLEdBQUcsWUFBWSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFekQsTUFBTSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNuRSxNQUFNLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUMxQyxNQUFNLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzFDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRTtRQUN0QixFQUFFLENBQUMsd0NBQXdDLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDdEQsTUFBTSxLQUFLLEdBQUcsWUFBWSxDQUFDO1lBQzNCLE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQztZQUVsQyxtQkFBbUI7WUFDbkIsTUFBTSxLQUFLLEdBQUc7Z0RBQzRCLEtBQUssb0JBQW9CLFdBQVc7Ozs7OztRQU01RSxDQUFDO1lBRUgsTUFBTSxjQUFjLEdBQUcsTUFBTSxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRW5ELE1BQU0sVUFBVSxHQUFHLGNBQWMsQ0FBQyxtQkFBbUIsQ0FBQztZQUN0RCxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsVUFBVSxDQUFDO1lBQzFCLE1BQU0sV0FBVyxHQUFHLHFCQUFxQixDQUFDO1lBRTFDLG1CQUFtQjtZQUNuQixNQUFNLE1BQU0sR0FBRzs7bUNBRWMsRUFBRSwwQkFBMEIsV0FBVzs7O1FBR2xFLENBQUM7WUFFSCxNQUFNLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDOUMsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLG1CQUFtQixDQUFDO1lBRTFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzdDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRTtRQUN0QixFQUFFLENBQUMsMkNBQTJDLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDekQsTUFBTSxLQUFLLEdBQUcsWUFBWSxDQUFDO1lBQzNCLE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQztZQUVsQyxtQkFBbUI7WUFDbkIsTUFBTSxLQUFLLEdBQUc7aURBQzZCLEtBQUssb0JBQW9CLFdBQVc7Ozs7Ozs7O1VBUTNFLENBQUM7WUFFTCxNQUFNLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFN0MsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQztZQUM1QyxtQkFBbUI7WUFDbkIsTUFBTSxjQUFjLEdBQUc7bUNBQ00sRUFBRTs7O1FBRzdCLENBQUM7WUFDSCxNQUFNLGNBQWMsR0FBRyxNQUFNLE1BQU0sQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDNUQsTUFBTSxTQUFTLEdBQUcsY0FBYyxDQUFDLG1CQUFtQixDQUFDLEVBQUUsQ0FBQztZQUV4RCxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsZUFBZSxFQUFFLEdBQUcsRUFBRTtRQUM3QixFQUFFLENBQUMsaUVBQWlFLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDL0UsSUFBSSxLQUFLLENBQUM7WUFFVixtQkFBbUI7WUFDbkIsTUFBTSxLQUFLLEdBQUc7Ozs7OztRQU1aLENBQUM7WUFDSCxNQUFNLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ3hDLEtBQUssR0FBRyxHQUFHLENBQUM7WUFDZCxDQUFDLENBQUMsQ0FBQztZQUNILE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDeEQsTUFBTSxDQUFDLE9BQU8sS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2pFLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLHVFQUF1RSxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQ3JGLElBQUksS0FBSyxDQUFDO1lBQ1YsbUJBQW1CO1lBQ25CLE1BQU0sS0FBSyxHQUFHOzs7Ozs7O1FBT1osQ0FBQztZQUVILE1BQU0sTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDeEMsS0FBSyxHQUFHLEdBQUcsQ0FBQztZQUNkLENBQUMsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN4RCxNQUFNLENBQUMsT0FBTyxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDakUsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyxXQUFXLEVBQUUsR0FBRyxFQUFFO1FBQ3pCLEVBQUUsQ0FBQyxlQUFlLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDN0IsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDO1lBQ2QsTUFBTSxLQUFLLEdBQUc7O2dCQUVKLEVBQUU7Ozs7OztRQU1WLENBQUM7WUFDSCxNQUFNLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDN0MsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQztZQUNyQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNwQyxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxlQUFlLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDN0IsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDO1lBQ2QsTUFBTSxJQUFJLEdBQUcsYUFBYSxDQUFDO1lBRTNCLE1BQU0sS0FBSyxHQUFHOzs7Z0JBR0osRUFBRTttQkFDQyxJQUFJOzs7OztRQUtmLENBQUM7WUFFSCxNQUFNLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDNUIsTUFBTSxXQUFXLEdBQUcsY0FBYyxDQUFDO1lBRW5DLE1BQU0sTUFBTSxHQUFHOzsrQkFFVSxFQUFFLGtCQUFrQixXQUFXOzs7UUFHdEQsQ0FBQztZQUVILE1BQU0sUUFBUSxHQUFHLE1BQU0sTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM5QyxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDO1lBRXJDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzdDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QyxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSxLQUFLLElBQUksRUFBRTtZQUNsQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUM7WUFDZCxNQUFNLElBQUksR0FBRyxhQUFhLENBQUM7WUFFM0IsTUFBTSxNQUFNLEdBQUc7O2dCQUVMLEVBQUU7bUJBQ0MsSUFBSTs7Ozs7UUFLZixDQUFDO1lBRUgsTUFBTSxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRTdCLE1BQU0sS0FBSyxHQUFHOzsyQ0FFdUIsRUFBRTs7Ozs7O1FBTXJDLENBQUM7WUFDSCxNQUFNLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDN0MsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO1lBQ3RDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2pDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZDLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLGVBQWUsRUFBRSxLQUFLLElBQUksRUFBRTtZQUM3QixNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUM7WUFDZCxNQUFNLEtBQUssR0FBRzs7Z0JBRUosRUFBRTs7Ozs7O1FBTVYsQ0FBQztZQUVILE1BQU0sTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUU1QixNQUFNLGNBQWMsR0FBRzs2QkFDQSxFQUFFOzs7UUFHdkIsQ0FBQztZQUNILE1BQU0sY0FBYyxHQUFHLE1BQU0sTUFBTSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUM1RCxNQUFNLFNBQVMsR0FBRyxjQUFjLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQztZQUVuRCxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLDRCQUE0QixFQUFFLEtBQUssSUFBSSxFQUFFO1lBQzFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQztZQUNkLE1BQU0sS0FBSyxHQUFHOztrQkFFRixFQUFFOzs7Ozs7UUFNWixDQUFDO1lBRUgsTUFBTSxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzVCLE1BQU0sUUFBUSxHQUFHOzt3QkFFQyxFQUFFOzs7Ozs7UUFNbEIsQ0FBQztZQUNILE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3hELE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxnQkFBZ0IsQ0FBQyxtQkFBbUIsQ0FBQztZQUUxRCxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIn0=
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,175 @@
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
+ const fs_1 = __importDefault(require("fs"));
7
+ const path_1 = __importDefault(require("path"));
8
+ const __1 = __importDefault(require("../../.."));
9
+ let createdMediaID;
10
+ __1.default.init({
11
+ secret: 'SECRET_KEY',
12
+ mongoURL: 'mongodb://localhost/payload',
13
+ local: true,
14
+ });
15
+ describe('Collections - Local', () => {
16
+ describe('Create', () => {
17
+ it('should allow an upload-enabled file to be created and uploaded', async () => {
18
+ const alt = 'Alt Text Here';
19
+ const filePath = path_1.default.resolve(__dirname, '../../../admin/assets/images/generic-block-image.svg');
20
+ const { size } = fs_1.default.statSync(filePath);
21
+ const result = await __1.default.create({
22
+ collection: 'media',
23
+ data: {
24
+ alt,
25
+ },
26
+ filePath,
27
+ });
28
+ expect(result.id).toBeDefined();
29
+ expect(result.alt).toStrictEqual(alt);
30
+ expect(result.filename).toStrictEqual('generic-block-image.svg');
31
+ expect(result.filesize).toStrictEqual(size);
32
+ createdMediaID = result.id;
33
+ });
34
+ });
35
+ describe('Update', () => {
36
+ it('should allow an upload-enabled file to be re-uploaded and alt-text to be changed.', async () => {
37
+ const newAltText = 'New Alt Text Here';
38
+ const result = await __1.default.update({
39
+ collection: 'media',
40
+ id: createdMediaID,
41
+ data: {
42
+ alt: newAltText,
43
+ },
44
+ filePath: path_1.default.resolve(__dirname, '../../../admin/assets/images/og-image.png'),
45
+ });
46
+ expect(result.alt).toStrictEqual(newAltText);
47
+ expect(result.sizes.mobile.width).toStrictEqual(320);
48
+ expect(result.width).toStrictEqual(640);
49
+ });
50
+ });
51
+ describe('Read with Hidden Fields', () => {
52
+ it('should allow a document with nested hidden fields to be retrieved with hidden fields shown.', async () => {
53
+ const demoHiddenField = 'this is going to be hidden';
54
+ const result = await __1.default.create({
55
+ collection: 'localized-posts',
56
+ data: {
57
+ title: 'this post has a hidden field present',
58
+ description: 'desc',
59
+ priority: 1,
60
+ nonLocalizedGroup: {
61
+ text: '40w5g534gw34j',
62
+ },
63
+ localizedGroup: {
64
+ text: '34lijgw45ligjw4li5j',
65
+ demoHiddenField,
66
+ },
67
+ },
68
+ });
69
+ expect(result.id).toBeDefined();
70
+ expect(result.localizedGroup).toBeDefined();
71
+ expect(result.localizedGroup.demoHiddenField).toBeUndefined();
72
+ const withHiddenFields = await __1.default.findByID({
73
+ collection: 'localized-posts',
74
+ id: result.id,
75
+ showHiddenFields: true,
76
+ });
77
+ expect(withHiddenFields.localizedGroup.demoHiddenField).toStrictEqual(demoHiddenField);
78
+ expect(withHiddenFields.id).toStrictEqual(result.id);
79
+ });
80
+ it('should allow a document with a relationship to a document with hidden fields to read the related document hidden fields', async () => {
81
+ const demoHiddenField = 'this is going to be hidden';
82
+ const relationshipA = await __1.default.create({
83
+ collection: 'relationship-a',
84
+ data: {
85
+ demoHiddenField,
86
+ },
87
+ });
88
+ expect(relationshipA.id).toBeDefined();
89
+ expect(relationshipA.demoHiddenField).toBeUndefined();
90
+ const relationshipB = await __1.default.create({
91
+ collection: 'relationship-b',
92
+ data: {
93
+ title: 'pretty clever name here',
94
+ post: [relationshipA.id],
95
+ },
96
+ });
97
+ expect(relationshipB.id).toBeDefined();
98
+ const relationshipBWithHiddenNestedField = await __1.default.findByID({
99
+ collection: 'relationship-b',
100
+ id: relationshipB.id,
101
+ showHiddenFields: true,
102
+ });
103
+ expect(relationshipBWithHiddenNestedField.post[0].demoHiddenField).toStrictEqual(demoHiddenField);
104
+ });
105
+ describe('Find', () => {
106
+ const title = 'local-find';
107
+ beforeAll(async (done) => {
108
+ const data = {
109
+ title,
110
+ description: 'a description',
111
+ priority: 1,
112
+ nonLocalizedGroup: {
113
+ text: 'english',
114
+ },
115
+ localizedGroup: {
116
+ text: 'english',
117
+ },
118
+ nonLocalizedArray: [
119
+ {
120
+ localizedEmbeddedText: 'english',
121
+ },
122
+ ],
123
+ richTextBlocks: [
124
+ {
125
+ blockType: 'richTextBlock',
126
+ blockName: 'Test Block Name',
127
+ content: [
128
+ {
129
+ children: [{ text: 'english' }],
130
+ },
131
+ ],
132
+ },
133
+ ],
134
+ };
135
+ await __1.default.create({
136
+ collection: 'localized-posts',
137
+ data,
138
+ });
139
+ Array.from(Array(10).keys()).map(async (i) => {
140
+ const uniqueTitle = `${title}-${i}`;
141
+ await __1.default.create({
142
+ collection: 'localized-posts',
143
+ data: {
144
+ ...data,
145
+ title: uniqueTitle,
146
+ },
147
+ });
148
+ });
149
+ done();
150
+ });
151
+ it('should find collection with query', async () => {
152
+ const result = await __1.default.find({
153
+ collection: 'localized-posts',
154
+ where: {
155
+ title: {
156
+ equals: title,
157
+ },
158
+ },
159
+ });
160
+ const doc = result.docs[0];
161
+ expect(doc.id).toBeDefined();
162
+ expect(doc.title).toStrictEqual(title);
163
+ });
164
+ it('should allow disable pagination to return all docs', async () => {
165
+ const result = await __1.default.find({
166
+ collection: 'localized-posts',
167
+ pagination: false,
168
+ limit: 5, // limit will not be used
169
+ });
170
+ expect(result.docs.length).toBeGreaterThan(10);
171
+ });
172
+ });
173
+ });
174
+ });
175
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwuc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb2xsZWN0aW9ucy9vcGVyYXRpb25zL2xvY2FsL2xvY2FsLnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw0Q0FBb0I7QUFDcEIsZ0RBQXdCO0FBQ3hCLGlEQUErQjtBQUUvQixJQUFJLGNBQWMsQ0FBQztBQUVuQixXQUFPLENBQUMsSUFBSSxDQUFDO0lBQ1gsTUFBTSxFQUFFLFlBQVk7SUFDcEIsUUFBUSxFQUFFLDZCQUE2QjtJQUN2QyxLQUFLLEVBQUUsSUFBSTtDQUNaLENBQUMsQ0FBQztBQUVILFFBQVEsQ0FBQyxxQkFBcUIsRUFBRSxHQUFHLEVBQUU7SUFDbkMsUUFBUSxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUU7UUFDdEIsRUFBRSxDQUFDLGdFQUFnRSxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQzlFLE1BQU0sR0FBRyxHQUFHLGVBQWUsQ0FBQztZQUM1QixNQUFNLFFBQVEsR0FBRyxjQUFJLENBQUMsT0FBTyxDQUMzQixTQUFTLEVBQ1Qsc0RBQXNELENBQ3ZELENBQUM7WUFDRixNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsWUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUV2QyxNQUFNLE1BQU0sR0FBVSxNQUFNLFdBQU8sQ0FBQyxNQUFNLENBQUM7Z0JBQ3pDLFVBQVUsRUFBRSxPQUFPO2dCQUNuQixJQUFJLEVBQUU7b0JBQ0osR0FBRztpQkFDSjtnQkFDRCxRQUFRO2FBQ1QsQ0FBQyxDQUFDO1lBRUgsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNoQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN0QyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLGFBQWEsQ0FBQyx5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
@@ -0,0 +1 @@
1
+ export {};