payload 0.20.8-beta.0 → 1.0.4
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/CHANGELOG.md +607 -852
- package/components/styles.css +1 -1
- package/dist/admin/components/elements/Banner/index.scss +1 -0
- package/dist/admin/components/elements/ColumnSelector/index.scss +4 -7
- package/dist/admin/components/elements/Eyebrow/index.scss +4 -0
- package/dist/admin/components/elements/Nav/index.js +2 -2
- package/dist/admin/components/elements/Pill/index.scss +1 -0
- package/dist/admin/components/elements/ReactSelect/index.js +2 -2
- package/dist/admin/components/elements/ReactSelect/types.d.ts +1 -0
- package/dist/admin/components/forms/field-types/Array/Array.js +1 -1
- package/dist/admin/components/forms/field-types/Blocks/Blocks.js +1 -1
- package/dist/admin/components/forms/field-types/Checkbox/index.js +1 -1
- package/dist/admin/components/forms/field-types/Code/Code.js +1 -1
- package/dist/admin/components/forms/field-types/DateTime/index.js +1 -1
- package/dist/admin/components/forms/field-types/Email/index.js +2 -2
- package/dist/admin/components/forms/field-types/Group/index.js +1 -1
- package/dist/admin/components/forms/field-types/HiddenInput/index.js +1 -1
- package/dist/admin/components/forms/field-types/Number/index.js +2 -2
- package/dist/admin/components/forms/field-types/Password/index.js +2 -2
- package/dist/admin/components/forms/field-types/Point/index.js +4 -4
- package/dist/admin/components/forms/field-types/RadioGroup/Input.js +1 -1
- package/dist/admin/components/forms/field-types/Relationship/index.js +1 -1
- package/dist/admin/components/forms/field-types/RichText/RichText.js +2 -2
- package/dist/admin/components/forms/field-types/RichText/elements/upload/Element/EditModal/index.js +3 -3
- package/dist/admin/components/forms/field-types/RichText/elements/upload/Element/EditModal/index.scss +1 -15
- package/dist/admin/components/forms/field-types/RichText/elements/upload/Element/index.scss +12 -1
- package/dist/admin/components/forms/field-types/RichText/index.scss +7 -0
- package/dist/admin/components/forms/field-types/Select/Input.d.ts +1 -0
- package/dist/admin/components/forms/field-types/Select/Input.js +4 -4
- package/dist/admin/components/forms/field-types/Select/index.js +6 -3
- package/dist/admin/components/forms/field-types/Tabs/index.scss +3 -4
- package/dist/admin/components/forms/field-types/Text/Input.js +2 -2
- package/dist/admin/components/forms/field-types/Textarea/Input.js +2 -2
- package/dist/admin/components/forms/field-types/Upload/Input.js +1 -1
- package/dist/admin/components/forms/field-types/Upload/index.scss +1 -1
- package/dist/admin/components/views/Global/Default.js +1 -1
- package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/Iterable/index.js +2 -2
- package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/styles.d.ts +1 -0
- package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/styles.js +1 -0
- package/dist/admin/components/views/Version/Version.js +1 -1
- package/dist/admin/scss/type.scss +1 -1
- package/dist/collections/operations/local/restoreVersion.d.ts +0 -1
- package/dist/collections/operations/local/restoreVersion.js +2 -3
- package/dist/fields/config/schema.js +4 -1
- package/dist/fields/config/types.d.ts +3 -0
- package/dist/fields/config/types.js +1 -1
- package/dist/fields/hooks/beforeChange/promise.js +3 -3
- package/dist/globals/operations/local/restoreVersion.d.ts +2 -0
- package/dist/globals/operations/local/restoreVersion.js +6 -3
- package/dist/index.js +1 -1
- package/dist/mongoose/buildSchema.js +2 -3
- package/dist/webpack/getBaseConfig.js +2 -6
- package/docs/admin/overview.mdx +4 -0
- package/docs/authentication/config.mdx +49 -18
- package/docs/fields/select.mdx +40 -22
- package/docs/fields/tabs.mdx +64 -2
- package/package.json +7 -12
- package/dist/auth/auth.spec.d.ts +0 -1
- package/dist/auth/auth.spec.js +0 -198
- package/dist/collections/graphql/resolvers/resolvers.spec.d.ts +0 -1
- package/dist/collections/graphql/resolvers/resolvers.spec.js +0 -360
- package/dist/collections/operations/local/local.spec.d.ts +0 -1
- package/dist/collections/operations/local/local.spec.js +0 -196
- package/dist/collections/tests/collections.spec.d.ts +0 -1
- package/dist/collections/tests/collections.spec.js +0 -736
- package/dist/collections/tests/defaultValue.spec.d.ts +0 -1
- package/dist/collections/tests/defaultValue.spec.js +0 -95
- package/dist/collections/tests/endpoints.spec.d.ts +0 -1
- package/dist/collections/tests/endpoints.spec.js +0 -71
- package/dist/collections/tests/hooks.spec.d.ts +0 -1
- package/dist/collections/tests/hooks.spec.js +0 -156
- package/dist/collections/tests/pointField.spec.d.ts +0 -1
- package/dist/collections/tests/pointField.spec.js +0 -219
- package/dist/collections/tests/relationships.spec.d.ts +0 -1
- package/dist/collections/tests/relationships.spec.js +0 -194
- package/dist/express/middleware/errorHandler.spec.d.ts +0 -1
- package/dist/express/middleware/errorHandler.spec.js +0 -91
- package/dist/globals/requestHandlers/globals.spec.d.ts +0 -4
- package/dist/globals/requestHandlers/globals.spec.js +0 -174
- package/dist/preferences/graphql/resolvers.spec.d.ts +0 -1
- package/dist/preferences/graphql/resolvers.spec.js +0 -115
- package/dist/versions/tests/collections-graphql.spec.d.ts +0 -1
- package/dist/versions/tests/collections-graphql.spec.js +0 -141
- package/dist/versions/tests/collections-rest.spec.d.ts +0 -1
- package/dist/versions/tests/collections-rest.spec.js +0 -148
- package/dist/versions/tests/globals-graphql.spec.d.ts +0 -1
- package/dist/versions/tests/globals-graphql.spec.js +0 -157
- package/dist/versions/tests/globals-rest.spec.d.ts +0 -1
- package/dist/versions/tests/globals-rest.spec.js +0 -151
|
@@ -1,141 +0,0 @@
|
|
|
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;
|
|
16
|
-
let token;
|
|
17
|
-
let postID;
|
|
18
|
-
let versionID;
|
|
19
|
-
describe('Collections GrahpQL Version Resolvers', () => {
|
|
20
|
-
const title = 'autosave title';
|
|
21
|
-
beforeAll(async (done) => {
|
|
22
|
-
const login = `
|
|
23
|
-
mutation {
|
|
24
|
-
loginAdmin(
|
|
25
|
-
email: "${testCredentials_1.email}",
|
|
26
|
-
password: "${testCredentials_1.password}"
|
|
27
|
-
) {
|
|
28
|
-
token
|
|
29
|
-
}
|
|
30
|
-
}`;
|
|
31
|
-
const response = await (0, graphql_request_1.request)(url, login);
|
|
32
|
-
token = response.loginAdmin.token;
|
|
33
|
-
client = new graphql_request_1.GraphQLClient(url, { headers: { Authorization: `JWT ${token}` } });
|
|
34
|
-
done();
|
|
35
|
-
});
|
|
36
|
-
describe('Create', () => {
|
|
37
|
-
it('should allow a new autosavePost to be created with draft status', async () => {
|
|
38
|
-
const description = 'autosave description';
|
|
39
|
-
const query = `mutation {
|
|
40
|
-
createAutosavePost(data: {title: "${title}", description: "${description}"}) {
|
|
41
|
-
id
|
|
42
|
-
title
|
|
43
|
-
description
|
|
44
|
-
createdAt
|
|
45
|
-
updatedAt
|
|
46
|
-
_status
|
|
47
|
-
}
|
|
48
|
-
}`;
|
|
49
|
-
const response = await client.request(query);
|
|
50
|
-
const data = response.createAutosavePost;
|
|
51
|
-
postID = data.id;
|
|
52
|
-
expect(data._status).toStrictEqual('draft');
|
|
53
|
-
});
|
|
54
|
-
});
|
|
55
|
-
describe('Read', () => {
|
|
56
|
-
const updatedTitle = 'updated title';
|
|
57
|
-
beforeAll(async (done) => {
|
|
58
|
-
// modify the post to create a new version
|
|
59
|
-
// language=graphQL
|
|
60
|
-
const update = `mutation {
|
|
61
|
-
updateAutosavePost(id: "${postID}", data: {title: "${updatedTitle}"}) {
|
|
62
|
-
title
|
|
63
|
-
}
|
|
64
|
-
}`;
|
|
65
|
-
await client.request(update);
|
|
66
|
-
// language=graphQL
|
|
67
|
-
const query = `query {
|
|
68
|
-
versionsAutosavePosts(where: { parent: { equals: "${postID}" } }) {
|
|
69
|
-
docs {
|
|
70
|
-
id
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
}`;
|
|
74
|
-
const response = await client.request(query);
|
|
75
|
-
versionID = response.versionsAutosavePosts.docs[0].id;
|
|
76
|
-
done();
|
|
77
|
-
});
|
|
78
|
-
it('should allow read of versions by version id', async () => {
|
|
79
|
-
const query = `query {
|
|
80
|
-
versionAutosavePost(id: "${versionID}") {
|
|
81
|
-
id
|
|
82
|
-
parent {
|
|
83
|
-
id
|
|
84
|
-
}
|
|
85
|
-
version {
|
|
86
|
-
title
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
}`;
|
|
90
|
-
const response = await client.request(query);
|
|
91
|
-
const data = response.versionAutosavePost;
|
|
92
|
-
versionID = data.id;
|
|
93
|
-
expect(data.id).toBeDefined();
|
|
94
|
-
expect(data.parent.id).toStrictEqual(postID);
|
|
95
|
-
expect(data.version.title).toStrictEqual(title);
|
|
96
|
-
});
|
|
97
|
-
it('should allow read of versions by querying version content', async () => {
|
|
98
|
-
// language=graphQL
|
|
99
|
-
const query = `query {
|
|
100
|
-
versionsAutosavePosts(where: { version__title: {equals: "${title}" } }) {
|
|
101
|
-
docs {
|
|
102
|
-
id
|
|
103
|
-
parent {
|
|
104
|
-
id
|
|
105
|
-
}
|
|
106
|
-
version {
|
|
107
|
-
title
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
}`;
|
|
112
|
-
const response = await client.request(query);
|
|
113
|
-
const data = response.versionsAutosavePosts;
|
|
114
|
-
const doc = data.docs[0];
|
|
115
|
-
versionID = doc.id;
|
|
116
|
-
expect(doc.id).toBeDefined();
|
|
117
|
-
expect(doc.parent.id).toStrictEqual(postID);
|
|
118
|
-
expect(doc.version.title).toStrictEqual(title);
|
|
119
|
-
});
|
|
120
|
-
});
|
|
121
|
-
describe('Restore', () => {
|
|
122
|
-
it('should allow a version to be restored', async () => {
|
|
123
|
-
// update a versionsPost
|
|
124
|
-
const restore = `mutation {
|
|
125
|
-
restoreVersionAutosavePost(id: "${versionID}") {
|
|
126
|
-
title
|
|
127
|
-
}
|
|
128
|
-
}`;
|
|
129
|
-
await client.request(restore);
|
|
130
|
-
const query = `query {
|
|
131
|
-
AutosavePost(id: "${postID}") {
|
|
132
|
-
title
|
|
133
|
-
}
|
|
134
|
-
}`;
|
|
135
|
-
const response = await client.request(query);
|
|
136
|
-
const data = response.AutosavePost;
|
|
137
|
-
expect(data.title).toStrictEqual(title);
|
|
138
|
-
});
|
|
139
|
-
});
|
|
140
|
-
});
|
|
141
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbnMtZ3JhcGhxbC5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3ZlcnNpb25zL3Rlc3RzL2NvbGxlY3Rpb25zLWdyYXBocWwuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBOztHQUVHO0FBQ0gscURBQXlEO0FBQ3pELDZEQUEwQztBQUMxQyxvRUFBaUU7QUFFakUsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUM7QUFFNUIsTUFBTSxNQUFNLEdBQUcsSUFBQSxjQUFTLEdBQUUsQ0FBQztBQUUzQixNQUFNLEdBQUcsR0FBRyxHQUFHLE1BQU0sQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztBQUU5RSxJQUFJLE1BQU0sQ0FBQztBQUNYLElBQUksS0FBSyxDQUFDO0FBQ1YsSUFBSSxNQUFNLENBQUM7QUFDWCxJQUFJLFNBQVMsQ0FBQztBQUVkLFFBQVEsQ0FBQyx1Q0FBdUMsRUFBRSxHQUFHLEVBQUU7SUFDckQsTUFBTSxLQUFLLEdBQUcsZ0JBQWdCLENBQUM7SUFFL0IsU0FBUyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRTtRQUN2QixNQUFNLEtBQUssR0FBRzs7O29CQUdFLHVCQUFLO3VCQUNGLDBCQUFROzs7O1FBSXZCLENBQUM7UUFFTCxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUEseUJBQU8sRUFBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFM0MsS0FBSyxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO1FBRWxDLE1BQU0sR0FBRyxJQUFJLCtCQUFhLENBQUMsR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsYUFBYSxFQUFFLE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFaEYsSUFBSSxFQUFFLENBQUM7SUFDVCxDQUFD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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,148 +0,0 @@
|
|
|
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 load_1 = __importDefault(require("../../config/load"));
|
|
7
|
-
const testCredentials_1 = require("../../mongoose/testCredentials");
|
|
8
|
-
require('isomorphic-fetch');
|
|
9
|
-
const { serverURL: url } = (0, load_1.default)();
|
|
10
|
-
let token = null;
|
|
11
|
-
let headers = null;
|
|
12
|
-
let postID;
|
|
13
|
-
let versionID;
|
|
14
|
-
describe('Collection Versions - REST', () => {
|
|
15
|
-
beforeAll(async (done) => {
|
|
16
|
-
const response = await fetch(`${url}/api/admins/login`, {
|
|
17
|
-
body: JSON.stringify({
|
|
18
|
-
email: testCredentials_1.email,
|
|
19
|
-
password: testCredentials_1.password,
|
|
20
|
-
}),
|
|
21
|
-
headers: {
|
|
22
|
-
'Content-Type': 'application/json',
|
|
23
|
-
},
|
|
24
|
-
method: 'post',
|
|
25
|
-
});
|
|
26
|
-
const data = await response.json();
|
|
27
|
-
({ token } = data);
|
|
28
|
-
headers = {
|
|
29
|
-
Authorization: `JWT ${token}`,
|
|
30
|
-
'Content-Type': 'application/json',
|
|
31
|
-
};
|
|
32
|
-
const post = await fetch(`${url}/api/autosave-posts`, {
|
|
33
|
-
body: JSON.stringify({
|
|
34
|
-
title: 'Here is an autosave post in EN',
|
|
35
|
-
description: '345j23o4ifj34jf54g',
|
|
36
|
-
}),
|
|
37
|
-
headers,
|
|
38
|
-
method: 'post',
|
|
39
|
-
}).then((res) => res.json());
|
|
40
|
-
postID = post.doc.id;
|
|
41
|
-
done();
|
|
42
|
-
});
|
|
43
|
-
describe('Create', () => {
|
|
44
|
-
it('should allow a new version to be created', async () => {
|
|
45
|
-
const title2 = 'Here is an updated post title in EN';
|
|
46
|
-
const updatedPost = await fetch(`${url}/api/autosave-posts/${postID}`, {
|
|
47
|
-
body: JSON.stringify({
|
|
48
|
-
title: title2,
|
|
49
|
-
}),
|
|
50
|
-
headers,
|
|
51
|
-
method: 'put',
|
|
52
|
-
}).then((res) => res.json());
|
|
53
|
-
const versions = await fetch(`${url}/api/autosave-posts/versions`, {
|
|
54
|
-
headers,
|
|
55
|
-
}).then((res) => res.json());
|
|
56
|
-
versionID = versions.docs[0].id;
|
|
57
|
-
expect(updatedPost.doc.title).toBe(title2);
|
|
58
|
-
expect(updatedPost.doc._status).toStrictEqual('draft');
|
|
59
|
-
expect(versionID).toBeDefined();
|
|
60
|
-
});
|
|
61
|
-
it('should allow a version to be retrieved by ID', async () => {
|
|
62
|
-
const version = await fetch(`${url}/api/autosave-posts/versions/${versionID}`, {
|
|
63
|
-
headers,
|
|
64
|
-
}).then((res) => res.json());
|
|
65
|
-
expect(version.id).toStrictEqual(versionID);
|
|
66
|
-
});
|
|
67
|
-
it('should allow a version to save locales properly', async () => {
|
|
68
|
-
const englishTitle = 'Title in EN';
|
|
69
|
-
const spanishTitle = 'Title in ES';
|
|
70
|
-
await fetch(`${url}/api/autosave-posts/${postID}`, {
|
|
71
|
-
body: JSON.stringify({
|
|
72
|
-
title: englishTitle,
|
|
73
|
-
}),
|
|
74
|
-
headers,
|
|
75
|
-
method: 'put',
|
|
76
|
-
}).then((res) => res.json());
|
|
77
|
-
const updatedPostES = await fetch(`${url}/api/autosave-posts/${postID}?locale=es`, {
|
|
78
|
-
body: JSON.stringify({
|
|
79
|
-
title: spanishTitle,
|
|
80
|
-
}),
|
|
81
|
-
headers,
|
|
82
|
-
method: 'put',
|
|
83
|
-
}).then((res) => res.json());
|
|
84
|
-
expect(updatedPostES.doc.title).toBe(spanishTitle);
|
|
85
|
-
const newEnglishTitle = 'New title in EN';
|
|
86
|
-
await fetch(`${url}/api/autosave-posts/${postID}`, {
|
|
87
|
-
body: JSON.stringify({
|
|
88
|
-
title: newEnglishTitle,
|
|
89
|
-
}),
|
|
90
|
-
headers,
|
|
91
|
-
method: 'put',
|
|
92
|
-
}).then((res) => res.json());
|
|
93
|
-
const versions = await fetch(`${url}/api/autosave-posts/versions?locale=all`, {
|
|
94
|
-
headers,
|
|
95
|
-
}).then((res) => res.json());
|
|
96
|
-
expect(versions.docs[0].version.title.en).toStrictEqual(englishTitle);
|
|
97
|
-
expect(versions.docs[0].version.title.es).toStrictEqual(spanishTitle);
|
|
98
|
-
});
|
|
99
|
-
});
|
|
100
|
-
describe('Restore', () => {
|
|
101
|
-
it('should allow a version to be restored', async () => {
|
|
102
|
-
const title2 = 'Here is an updated post title in EN';
|
|
103
|
-
const updatedPost = await fetch(`${url}/api/autosave-posts/${postID}`, {
|
|
104
|
-
body: JSON.stringify({
|
|
105
|
-
title: title2,
|
|
106
|
-
}),
|
|
107
|
-
headers,
|
|
108
|
-
method: 'put',
|
|
109
|
-
}).then((res) => res.json());
|
|
110
|
-
expect(updatedPost.doc.title).toBe(title2);
|
|
111
|
-
const versions = await fetch(`${url}/api/autosave-posts/versions`, {
|
|
112
|
-
headers,
|
|
113
|
-
}).then((res) => res.json());
|
|
114
|
-
versionID = versions.docs[0].id;
|
|
115
|
-
const restore = await fetch(`${url}/api/autosave-posts/versions/${versionID}`, {
|
|
116
|
-
headers,
|
|
117
|
-
method: 'post',
|
|
118
|
-
}).then((res) => res.json());
|
|
119
|
-
expect(restore.message).toBeDefined();
|
|
120
|
-
expect(restore.doc.title).toBeDefined();
|
|
121
|
-
const restoredPost = await fetch(`${url}/api/autosave-posts/${postID}?draft=true`, {
|
|
122
|
-
headers,
|
|
123
|
-
}).then((res) => res.json());
|
|
124
|
-
expect(restoredPost.title).toBe(restore.doc.title);
|
|
125
|
-
});
|
|
126
|
-
});
|
|
127
|
-
describe('Draft Access Control', () => {
|
|
128
|
-
it('should prevent a draft from being publicly readable', async () => {
|
|
129
|
-
const badAttempt = await fetch(`${url}/api/autosave-posts/${postID}`);
|
|
130
|
-
expect(badAttempt.status).toBe(404);
|
|
131
|
-
});
|
|
132
|
-
it('should prevent an authenticated user from retrieving drafts without asking', async () => {
|
|
133
|
-
const badAttempt = await fetch(`${url}/api/autosave-posts/${postID}`, {
|
|
134
|
-
headers: {
|
|
135
|
-
'Content-Type': 'application/json',
|
|
136
|
-
},
|
|
137
|
-
});
|
|
138
|
-
expect(badAttempt.status).toBe(404);
|
|
139
|
-
});
|
|
140
|
-
it('should allow an authenticated user to explicitly retrieve draft', async () => {
|
|
141
|
-
const badAttempt = await fetch(`${url}/api/autosave-posts/${postID}?draft=true`, {
|
|
142
|
-
headers,
|
|
143
|
-
});
|
|
144
|
-
expect(badAttempt.status).toBe(200);
|
|
145
|
-
});
|
|
146
|
-
});
|
|
147
|
-
});
|
|
148
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbnMtcmVzdC5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3ZlcnNpb25zL3Rlc3RzL2NvbGxlY3Rpb25zLXJlc3Quc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZEQUEwQztBQUMxQyxvRUFBaUU7QUFFakUsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUM7QUFFNUIsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFBLGNBQVMsR0FBRSxDQUFDO0FBRXZDLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQztBQUNqQixJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUM7QUFDbkIsSUFBSSxNQUFNLENBQUM7QUFDWCxJQUFJLFNBQVMsQ0FBQztBQUVkLFFBQVEsQ0FBQyw0QkFBNEIsRUFBRSxHQUFHLEVBQUU7SUFDMUMsU0FBUyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRTtRQUN2QixNQUFNLFFBQVEsR0FBRyxNQUFNLEtBQUssQ0FBQyxHQUFHLEdBQUcsbUJBQW1CLEVBQUU7WUFDdEQsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUM7Z0JBQ25CLEtBQUssRUFBTCx1QkFBSztnQkFDTCxRQUFRLEVBQVIsMEJBQVE7YUFDVCxDQUFDO1lBQ0YsT0FBTyxFQUFFO2dCQUNQLGNBQWMsRUFBRSxrQkFBa0I7YUFDbkM7WUFDRCxNQUFNLEVBQUUsTUFBTTtTQUNmLENBQUMsQ0FBQztRQUVILE1BQU0sSUFBSSxHQUFHLE1BQU0sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBRW5DLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUVuQixPQUFPLEdBQUc7WUFDUixhQUFhLEVBQUUsT0FBTyxLQUFLLEVBQUU7WUFDN0IsY0FBYyxFQUFFLGtCQUFrQjtTQUNuQyxDQUFDO1FBRUYsTUFBTSxJQUFJLEdBQUcsTUFBTSxLQUFLLENBQUMsR0FB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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,157 +0,0 @@
|
|
|
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;
|
|
16
|
-
let token;
|
|
17
|
-
let versionID;
|
|
18
|
-
describe('Global Versions - GraphQL', () => {
|
|
19
|
-
const title = 'Global Blocks Title';
|
|
20
|
-
beforeAll(async (done) => {
|
|
21
|
-
// language=graphql
|
|
22
|
-
const login = `
|
|
23
|
-
mutation {
|
|
24
|
-
loginAdmin(
|
|
25
|
-
email: "${testCredentials_1.email}",
|
|
26
|
-
password: "${testCredentials_1.password}"
|
|
27
|
-
) {
|
|
28
|
-
token
|
|
29
|
-
}
|
|
30
|
-
}`;
|
|
31
|
-
const response = await (0, graphql_request_1.request)(url, login);
|
|
32
|
-
token = response.loginAdmin.token;
|
|
33
|
-
client = new graphql_request_1.GraphQLClient(url, { headers: { Authorization: `JWT ${token}` } });
|
|
34
|
-
// language=graphql
|
|
35
|
-
const query = `mutation {
|
|
36
|
-
updateBlocksGlobal(data: {
|
|
37
|
-
title: "${title}"
|
|
38
|
-
blocks: [{ quote: "Test quote", color: "red", blockName: "Some block title", blockType: "quote"}]
|
|
39
|
-
}) {
|
|
40
|
-
_status
|
|
41
|
-
title
|
|
42
|
-
blocks {
|
|
43
|
-
__typename
|
|
44
|
-
... on Quote {
|
|
45
|
-
quote
|
|
46
|
-
color
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
}`;
|
|
51
|
-
await client.request(query);
|
|
52
|
-
done();
|
|
53
|
-
});
|
|
54
|
-
describe('Create', () => {
|
|
55
|
-
it('should allow a new BlocksGlobal to be created with draft status', async () => {
|
|
56
|
-
const updatedTitle = 'updated global title';
|
|
57
|
-
// language=graphql
|
|
58
|
-
const query = `mutation {
|
|
59
|
-
updateBlocksGlobal(data: {
|
|
60
|
-
title: "${updatedTitle}"
|
|
61
|
-
}) {
|
|
62
|
-
_status
|
|
63
|
-
title
|
|
64
|
-
}
|
|
65
|
-
}`;
|
|
66
|
-
await client.request(query);
|
|
67
|
-
const response = await client.request(query);
|
|
68
|
-
const data = response.updateBlocksGlobal;
|
|
69
|
-
expect(data._status).toStrictEqual('draft');
|
|
70
|
-
expect(data.title).toStrictEqual(updatedTitle);
|
|
71
|
-
});
|
|
72
|
-
});
|
|
73
|
-
describe('should allow a version to be retrieved', () => {
|
|
74
|
-
beforeAll(async (done) => {
|
|
75
|
-
const updatedTitle = 'updated global title';
|
|
76
|
-
// language=graphql
|
|
77
|
-
const update = `mutation {
|
|
78
|
-
updateBlocksGlobal(draft: true, data: {
|
|
79
|
-
title: "${updatedTitle}"
|
|
80
|
-
}) {
|
|
81
|
-
_status
|
|
82
|
-
title
|
|
83
|
-
}
|
|
84
|
-
}`;
|
|
85
|
-
await client.request(update);
|
|
86
|
-
// language=graphQL
|
|
87
|
-
const query = `query {
|
|
88
|
-
versionsBlocksGlobal(where: { version__title: { equals: "${title}" } }) {
|
|
89
|
-
docs {
|
|
90
|
-
id
|
|
91
|
-
version {
|
|
92
|
-
title
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
}`;
|
|
97
|
-
const response = await client.request(query);
|
|
98
|
-
versionID = response.versionsBlocksGlobal.docs[0].id;
|
|
99
|
-
done();
|
|
100
|
-
});
|
|
101
|
-
it('should allow read of versions by version id', async () => {
|
|
102
|
-
// language=graphql
|
|
103
|
-
const query = `query {
|
|
104
|
-
versionBlocksGlobal(id: "${versionID}") {
|
|
105
|
-
id
|
|
106
|
-
version {
|
|
107
|
-
title
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
}`;
|
|
111
|
-
const response = await client.request(query);
|
|
112
|
-
const data = response.versionBlocksGlobal;
|
|
113
|
-
versionID = data.id;
|
|
114
|
-
expect(data.id).toBeDefined();
|
|
115
|
-
expect(data.version.title).toStrictEqual(title);
|
|
116
|
-
});
|
|
117
|
-
it('should allow read of versions by querying version content', async () => {
|
|
118
|
-
// language=graphQL
|
|
119
|
-
const query = `query {
|
|
120
|
-
versionsBlocksGlobal(where: { version__title: {equals: "${title}" } }) {
|
|
121
|
-
docs {
|
|
122
|
-
id
|
|
123
|
-
version {
|
|
124
|
-
title
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
}`;
|
|
129
|
-
const response = await client.request(query);
|
|
130
|
-
const data = response.versionsBlocksGlobal;
|
|
131
|
-
const doc = data.docs[0];
|
|
132
|
-
versionID = doc.id;
|
|
133
|
-
expect(doc.id).toBeDefined();
|
|
134
|
-
expect(doc.version.title).toStrictEqual(title);
|
|
135
|
-
});
|
|
136
|
-
});
|
|
137
|
-
describe('Restore', () => {
|
|
138
|
-
it('should allow a version to be restored', async () => {
|
|
139
|
-
// language=graphql
|
|
140
|
-
const restore = `mutation {
|
|
141
|
-
restoreVersionBlocksGlobal(id: "${versionID}") {
|
|
142
|
-
title
|
|
143
|
-
}
|
|
144
|
-
}`;
|
|
145
|
-
await client.request(restore);
|
|
146
|
-
const query = `query {
|
|
147
|
-
BlocksGlobal {
|
|
148
|
-
title
|
|
149
|
-
}
|
|
150
|
-
}`;
|
|
151
|
-
const response = await client.request(query);
|
|
152
|
-
const data = response.BlocksGlobal;
|
|
153
|
-
expect(data.title).toStrictEqual(title);
|
|
154
|
-
});
|
|
155
|
-
});
|
|
156
|
-
});
|
|
157
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFscy1ncmFwaHFsLnNwZWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdmVyc2lvbnMvdGVzdHMvZ2xvYmFscy1ncmFwaHFsLnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7R0FFRztBQUNILHFEQUF5RDtBQUN6RCw2REFBMEM7QUFDMUMsb0VBQWlFO0FBRWpFLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0FBRTVCLE1BQU0sTUFBTSxHQUFHLElBQUEsY0FBUyxHQUFFLENBQUM7QUFFM0IsTUFBTSxHQUFHLEdBQUcsR0FBRyxNQUFNLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7QUFFOUUsSUFBSSxNQUFNLENBQUM7QUFDWCxJQUFJLEtBQUssQ0FBQztBQUNWLElBQUksU0FBUyxDQUFDO0FBRWQsUUFBUSxDQUFDLDJCQUEyQixFQUFFLEdBQUcsRUFBRTtJQUN6QyxNQUFNLEtBQUssR0FBRyxxQkFBcUIsQ0FBQztJQUNwQyxTQUFTLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFO1FBQ3ZCLG1CQUFtQjtRQUNuQixNQUFNLEtBQUssR0FBRzs7O29CQUdFLHVCQUFLO3VCQUNGLDBCQUFROzs7O1FBSXZCLENBQUM7UUFFTCxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUEseUJBQU8sRUFBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFM0MsS0FBSyxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO1FBRWxDLE1BQU0sR0FBRyxJQUFJLCtCQUFhLENBQUMsR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsYUFBYSxFQUFFLE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFaEYsbUJBQW1CO1FBQ25CLE1BQU0sS0FBSyxHQUFHOztrQkFFQSxLQUFL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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,151 +0,0 @@
|
|
|
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 load_1 = __importDefault(require("../../config/load"));
|
|
7
|
-
const testCredentials_1 = require("../../mongoose/testCredentials");
|
|
8
|
-
require('isomorphic-fetch');
|
|
9
|
-
const { serverURL: url } = (0, load_1.default)();
|
|
10
|
-
let token = null;
|
|
11
|
-
let headers = null;
|
|
12
|
-
let versionID;
|
|
13
|
-
describe('Global Versions - REST', () => {
|
|
14
|
-
beforeAll(async (done) => {
|
|
15
|
-
const response = await fetch(`${url}/api/admins/login`, {
|
|
16
|
-
body: JSON.stringify({
|
|
17
|
-
email: testCredentials_1.email,
|
|
18
|
-
password: testCredentials_1.password,
|
|
19
|
-
}),
|
|
20
|
-
headers: {
|
|
21
|
-
'Content-Type': 'application/json',
|
|
22
|
-
},
|
|
23
|
-
method: 'post',
|
|
24
|
-
});
|
|
25
|
-
const data = await response.json();
|
|
26
|
-
({ token } = data);
|
|
27
|
-
headers = {
|
|
28
|
-
Authorization: `JWT ${token}`,
|
|
29
|
-
'Content-Type': 'application/json',
|
|
30
|
-
};
|
|
31
|
-
await fetch(`${url}/api/globals/blocks-global`, {
|
|
32
|
-
body: JSON.stringify({
|
|
33
|
-
title: 'Test Global',
|
|
34
|
-
blocks: [
|
|
35
|
-
{
|
|
36
|
-
blockType: 'quote',
|
|
37
|
-
quote: 'This is a global that will be published',
|
|
38
|
-
color: 'red',
|
|
39
|
-
},
|
|
40
|
-
],
|
|
41
|
-
}),
|
|
42
|
-
headers,
|
|
43
|
-
method: 'post',
|
|
44
|
-
}).then((res) => res.json());
|
|
45
|
-
done();
|
|
46
|
-
});
|
|
47
|
-
describe('Create', () => {
|
|
48
|
-
it('should allow a new version to be created', async () => {
|
|
49
|
-
const title2 = 'Here is an updated global title in EN';
|
|
50
|
-
const updatedPost = await fetch(`${url}/api/globals/blocks-global`, {
|
|
51
|
-
body: JSON.stringify({
|
|
52
|
-
title: title2,
|
|
53
|
-
}),
|
|
54
|
-
headers,
|
|
55
|
-
method: 'post',
|
|
56
|
-
}).then((res) => res.json());
|
|
57
|
-
expect(updatedPost.result.title).toBe(title2);
|
|
58
|
-
expect(updatedPost.result._status).toStrictEqual('draft');
|
|
59
|
-
const versions = await fetch(`${url}/api/globals/blocks-global/versions`, {
|
|
60
|
-
headers,
|
|
61
|
-
}).then((res) => res.json());
|
|
62
|
-
versionID = versions.docs[0].id;
|
|
63
|
-
});
|
|
64
|
-
it('should allow a version to be retrieved by ID', async () => {
|
|
65
|
-
const version = await fetch(`${url}/api/globals/blocks-global/versions/${versionID}`, {
|
|
66
|
-
headers,
|
|
67
|
-
}).then((res) => res.json());
|
|
68
|
-
expect(version.id).toStrictEqual(versionID);
|
|
69
|
-
});
|
|
70
|
-
it('should allow a version to save locales properly', async () => {
|
|
71
|
-
const englishTitle = 'Title in EN';
|
|
72
|
-
const spanishTitle = 'Title in ES';
|
|
73
|
-
await fetch(`${url}/api/globals/blocks-global`, {
|
|
74
|
-
body: JSON.stringify({
|
|
75
|
-
title: englishTitle,
|
|
76
|
-
}),
|
|
77
|
-
headers,
|
|
78
|
-
method: 'post',
|
|
79
|
-
}).then((res) => res.json());
|
|
80
|
-
const updatedPostES = await fetch(`${url}/api/globals/blocks-global?locale=es`, {
|
|
81
|
-
body: JSON.stringify({
|
|
82
|
-
title: spanishTitle,
|
|
83
|
-
}),
|
|
84
|
-
headers,
|
|
85
|
-
method: 'post',
|
|
86
|
-
}).then((res) => res.json());
|
|
87
|
-
expect(updatedPostES.result.title).toBe(spanishTitle);
|
|
88
|
-
const newEnglishTitle = 'New title in EN';
|
|
89
|
-
await fetch(`${url}/api/globals/blocks-global`, {
|
|
90
|
-
body: JSON.stringify({
|
|
91
|
-
title: newEnglishTitle,
|
|
92
|
-
}),
|
|
93
|
-
headers,
|
|
94
|
-
method: 'post',
|
|
95
|
-
}).then((res) => res.json());
|
|
96
|
-
const versions = await fetch(`${url}/api/globals/blocks-global/versions?locale=all`, {
|
|
97
|
-
headers,
|
|
98
|
-
}).then((res) => res.json());
|
|
99
|
-
expect(versions.docs[0].version.title.en).toStrictEqual(newEnglishTitle);
|
|
100
|
-
expect(versions.docs[0].version.title.es).toStrictEqual(spanishTitle);
|
|
101
|
-
});
|
|
102
|
-
});
|
|
103
|
-
describe('Restore', () => {
|
|
104
|
-
it('should allow a version to be restored', async () => {
|
|
105
|
-
const title2 = 'Here is an updated post title in EN';
|
|
106
|
-
const updatedPost = await fetch(`${url}/api/globals/blocks-global`, {
|
|
107
|
-
body: JSON.stringify({
|
|
108
|
-
title: title2,
|
|
109
|
-
}),
|
|
110
|
-
headers,
|
|
111
|
-
method: 'post',
|
|
112
|
-
}).then((res) => res.json());
|
|
113
|
-
expect(updatedPost.result.title).toBe(title2);
|
|
114
|
-
const versions = await fetch(`${url}/api/globals/blocks-global/versions`, {
|
|
115
|
-
headers,
|
|
116
|
-
}).then((res) => res.json());
|
|
117
|
-
versionID = versions.docs[0].id;
|
|
118
|
-
const restore = await fetch(`${url}/api/globals/blocks-global/versions/${versionID}`, {
|
|
119
|
-
headers,
|
|
120
|
-
method: 'post',
|
|
121
|
-
}).then((res) => res.json());
|
|
122
|
-
expect(restore.message).toBeDefined();
|
|
123
|
-
expect(restore.doc.title).toBeDefined();
|
|
124
|
-
const restoredPost = await fetch(`${url}/api/globals/blocks-global?draft=true`, {
|
|
125
|
-
headers,
|
|
126
|
-
}).then((res) => res.json());
|
|
127
|
-
expect(restoredPost.title).toBe(restore.doc.title);
|
|
128
|
-
});
|
|
129
|
-
});
|
|
130
|
-
// describe('Draft Access Control', () => {
|
|
131
|
-
// it('should prevent a draft from being publicly readable', async () => {
|
|
132
|
-
// const badAttempt = await fetch(`${url}/api/autosave-posts/${postID}`);
|
|
133
|
-
// expect(badAttempt.status).toBe(404);
|
|
134
|
-
// });
|
|
135
|
-
// it('should prevent an authenticated user from retrieving drafts without asking', async () => {
|
|
136
|
-
// const badAttempt = await fetch(`${url}/api/autosave-posts/${postID}`, {
|
|
137
|
-
// headers: {
|
|
138
|
-
// 'Content-Type': 'application/json',
|
|
139
|
-
// },
|
|
140
|
-
// });
|
|
141
|
-
// expect(badAttempt.status).toBe(404);
|
|
142
|
-
// });
|
|
143
|
-
// it('should allow an authenticated user to explicitly retrieve draft', async () => {
|
|
144
|
-
// const badAttempt = await fetch(`${url}/api/autosave-posts/${postID}?draft=true`, {
|
|
145
|
-
// headers,
|
|
146
|
-
// });
|
|
147
|
-
// expect(badAttempt.status).toBe(200);
|
|
148
|
-
// });
|
|
149
|
-
// });
|
|
150
|
-
});
|
|
151
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFscy1yZXN0LnNwZWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdmVyc2lvbnMvdGVzdHMvZ2xvYmFscy1yZXN0LnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2REFBMEM7QUFDMUMsb0VBQWlFO0FBRWpFLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0FBRTVCLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBQSxjQUFTLEdBQUUsQ0FBQztBQUV2QyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUM7QUFDakIsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDO0FBQ25CLElBQUksU0FBUyxDQUFDO0FBRWQsUUFBUSxDQUFDLHdCQUF3QixFQUFFLEdBQUcsRUFBRTtJQUN0QyxTQUFTLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFO1FBQ3ZCLE1BQU0sUUFBUSxHQUFHLE1BQU0sS0FBSyxDQUFDLEdBQUcsR0FBRyxtQkFBbUIsRUFBRTtZQUN0RCxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQztnQkFDbkIsS0FBSyxFQUFMLHVCQUFLO2dCQUNMLFFBQVEsRUFBUiwwQkFBUTthQUNULENBQUM7WUFDRixPQUFPLEVBQUU7Z0JBQ1AsY0FBYyxFQUFFLGtCQUFrQjthQUNuQztZQUNELE1BQU0sRUFBRSxNQUFNO1NBQ2YsQ0FBQyxDQUFDO1FBRUgsTUFBTSxJQUFJLEdBQUcsTUFBTSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFbkMsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO1FBRW5CLE9BQU8sR0FBRztZQUNSLGFBQWEsRUFBRSxPQUFPLEtBQUssRUFBRTtZQUM3QixjQUFjLEVBQUUsa0JBQWtCO1NBQ25DLENBQUM7UUFFRixNQUFNLEtBQUssQ0FBQyxHQUFHLEdBQUcsNEJBQTRCLEVBQUU7WUFDOUMsSUFBSSxFQUFFLElBQUksQ0FB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
|