payload 3.0.0-alpha.47 → 3.0.0-alpha.49
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/config.d.ts +4 -1
- package/config.js +4 -1
- package/dist/admin/RichText.d.ts +3 -7
- package/dist/admin/RichText.d.ts.map +1 -1
- package/dist/admin/RichText.js.map +1 -1
- package/dist/admin/forms/Error.d.ts +1 -0
- package/dist/admin/forms/Error.d.ts.map +1 -1
- package/dist/admin/forms/Error.js.map +1 -1
- package/dist/admin/forms/Form.d.ts +5 -0
- package/dist/admin/forms/Form.d.ts.map +1 -1
- package/dist/admin/forms/Form.js.map +1 -1
- package/dist/admin/forms/Label.d.ts +2 -1
- package/dist/admin/forms/Label.d.ts.map +1 -1
- package/dist/admin/forms/Label.js.map +1 -1
- package/dist/admin/forms/RowLabel.d.ts +2 -9
- package/dist/admin/forms/RowLabel.d.ts.map +1 -1
- package/dist/admin/forms/RowLabel.js.map +1 -1
- package/dist/admin/types.d.ts +2 -2
- package/dist/admin/types.d.ts.map +1 -1
- package/dist/admin/types.js.map +1 -1
- package/dist/admin/views/types.d.ts +8 -3
- package/dist/admin/views/types.d.ts.map +1 -1
- package/dist/admin/views/types.js.map +1 -1
- package/dist/auth/baseFields/apiKey.js +1 -1
- package/dist/auth/baseFields/apiKey.js.map +1 -1
- package/dist/auth/cookies.d.ts +4 -0
- package/dist/auth/cookies.d.ts.map +1 -1
- package/dist/auth/cookies.js +1 -1
- package/dist/auth/cookies.js.map +1 -1
- package/dist/auth/operations/forgotPassword.js +1 -1
- package/dist/auth/operations/forgotPassword.js.map +1 -1
- package/dist/auth/operations/login.d.ts +1 -5
- package/dist/auth/operations/login.d.ts.map +1 -1
- package/dist/auth/operations/login.js +0 -3
- package/dist/auth/operations/login.js.map +1 -1
- package/dist/auth/operations/me.d.ts +4 -4
- package/dist/auth/operations/me.d.ts.map +1 -1
- package/dist/auth/operations/me.js.map +1 -1
- package/dist/auth/operations/registerFirstUser.d.ts +1 -9
- package/dist/auth/operations/registerFirstUser.d.ts.map +1 -1
- package/dist/auth/operations/resetPassword.js +1 -1
- package/dist/auth/operations/resetPassword.js.map +1 -1
- package/dist/auth/strategies/apiKey.d.ts.map +1 -1
- package/dist/auth/strategies/apiKey.js +2 -0
- package/dist/auth/strategies/apiKey.js.map +1 -1
- package/dist/auth/strategies/local/incrementLoginAttempts.d.ts.map +1 -1
- package/dist/auth/strategies/local/incrementLoginAttempts.js +2 -0
- package/dist/auth/strategies/local/incrementLoginAttempts.js.map +1 -1
- package/dist/auth/strategies/local/register.d.ts.map +1 -1
- package/dist/auth/strategies/local/register.js +3 -0
- package/dist/auth/strategies/local/register.js.map +1 -1
- package/dist/auth/strategies/local/resetLoginAttempts.d.ts.map +1 -1
- package/dist/auth/strategies/local/resetLoginAttempts.js +1 -0
- package/dist/auth/strategies/local/resetLoginAttempts.js.map +1 -1
- package/dist/auth/types.d.ts +6 -1
- package/dist/auth/types.d.ts.map +1 -1
- package/dist/auth/types.js.map +1 -1
- package/dist/collections/config/client.d.ts +311 -0
- package/dist/collections/config/client.d.ts.map +1 -0
- package/dist/collections/config/client.js +56 -0
- package/dist/collections/config/client.js.map +1 -0
- package/dist/collections/config/defaults.d.ts +5 -5
- package/dist/collections/config/sanitize.d.ts.map +1 -1
- package/dist/collections/config/sanitize.js +4 -0
- package/dist/collections/config/sanitize.js.map +1 -1
- package/dist/collections/config/schema.d.ts.map +1 -1
- package/dist/collections/config/schema.js +0 -3
- package/dist/collections/config/schema.js.map +1 -1
- package/dist/collections/config/types.d.ts +4 -36
- package/dist/collections/config/types.d.ts.map +1 -1
- package/dist/collections/config/types.js.map +1 -1
- package/dist/collections/operations/create.d.ts +1 -9
- package/dist/collections/operations/create.d.ts.map +1 -1
- package/dist/collections/operations/delete.d.ts +2 -10
- package/dist/collections/operations/delete.d.ts.map +1 -1
- package/dist/collections/operations/duplicate.d.ts +14 -0
- package/dist/collections/operations/duplicate.d.ts.map +1 -0
- package/dist/collections/operations/duplicate.js +275 -0
- package/dist/collections/operations/duplicate.js.map +1 -0
- package/dist/collections/operations/find.d.ts.map +1 -1
- package/dist/collections/operations/findByID.d.ts.map +1 -1
- package/dist/collections/operations/findVersionByID.d.ts.map +1 -1
- package/dist/collections/operations/findVersions.d.ts.map +1 -1
- package/dist/collections/operations/local/create.js +1 -1
- package/dist/collections/operations/local/create.js.map +1 -1
- package/dist/collections/operations/local/duplicate.d.ts +21 -0
- package/dist/collections/operations/local/duplicate.d.ts.map +1 -0
- package/dist/collections/operations/local/duplicate.js +22 -0
- package/dist/collections/operations/local/duplicate.js.map +1 -0
- package/dist/collections/operations/local/index.d.ts +7 -5
- package/dist/collections/operations/local/index.d.ts.map +1 -1
- package/dist/collections/operations/local/index.js +2 -0
- package/dist/collections/operations/local/index.js.map +1 -1
- package/dist/collections/operations/local/update.js +1 -1
- package/dist/collections/operations/local/update.js.map +1 -1
- package/dist/collections/operations/restoreVersion.d.ts.map +1 -1
- package/dist/collections/operations/update.d.ts +1 -5
- package/dist/collections/operations/update.d.ts.map +1 -1
- package/dist/collections/operations/updateByID.d.ts +1 -9
- package/dist/collections/operations/updateByID.d.ts.map +1 -1
- package/dist/collections/operations/utils.d.ts +1 -1
- package/dist/collections/operations/utils.d.ts.map +1 -1
- package/dist/config/client.d.ts +14 -0
- package/dist/config/client.d.ts.map +1 -0
- package/dist/config/client.js +59 -0
- package/dist/config/client.js.map +1 -0
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +0 -2
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/load.d.ts.map +1 -1
- package/dist/config/load.js +3 -4
- package/dist/config/load.js.map +1 -1
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +0 -2
- package/dist/config/schema.js.map +1 -1
- package/dist/config/types.d.ts +23 -20
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js.map +1 -1
- package/dist/config/validate.d.ts +1 -2
- package/dist/config/validate.d.ts.map +1 -1
- package/dist/config/validate.js +3 -4
- package/dist/config/validate.js.map +1 -1
- package/dist/database/types.d.ts +2 -2
- package/dist/database/types.d.ts.map +1 -1
- package/dist/database/types.js.map +1 -1
- package/dist/exports/config.d.ts +4 -1
- package/dist/exports/config.d.ts.map +1 -1
- package/dist/exports/config.js +4 -1
- package/dist/exports/config.js.map +1 -1
- package/dist/exports/operations.d.ts +1 -0
- package/dist/exports/operations.d.ts.map +1 -1
- package/dist/exports/operations.js +1 -0
- package/dist/exports/operations.js.map +1 -1
- package/dist/exports/types.d.ts +9 -4
- package/dist/exports/types.d.ts.map +1 -1
- package/dist/exports/types.js.map +1 -1
- package/dist/exports/uploads.d.ts +2 -0
- package/dist/exports/uploads.d.ts.map +1 -0
- package/dist/exports/uploads.js +3 -0
- package/dist/exports/uploads.js.map +1 -0
- package/dist/exports/utilities.d.ts +4 -1
- package/dist/exports/utilities.d.ts.map +1 -1
- package/dist/exports/utilities.js +4 -1
- package/dist/exports/utilities.js.map +1 -1
- package/dist/fields/config/client.d.ts +1272 -0
- package/dist/{config/createClientConfig.d.ts.map → fields/config/client.d.ts.map} +1 -1
- package/dist/fields/config/client.js +54 -0
- package/dist/fields/config/client.js.map +1 -0
- package/dist/fields/config/sanitize.d.ts.map +1 -1
- package/dist/fields/config/sanitize.js +2 -0
- package/dist/fields/config/sanitize.js.map +1 -1
- package/dist/fields/config/schema.d.ts.map +1 -1
- package/dist/fields/config/schema.js +1 -2
- package/dist/fields/config/schema.js.map +1 -1
- package/dist/fields/config/types.d.ts +25 -6
- package/dist/fields/config/types.d.ts.map +1 -1
- package/dist/fields/config/types.js +1 -1
- package/dist/fields/config/types.js.map +1 -1
- package/dist/fields/hooks/afterChange/index.d.ts.map +1 -1
- package/dist/fields/hooks/beforeChange/index.d.ts.map +1 -1
- package/dist/fields/hooks/beforeValidate/index.d.ts +2 -1
- package/dist/fields/hooks/beforeValidate/index.d.ts.map +1 -1
- package/dist/fields/hooks/beforeValidate/index.js +2 -1
- package/dist/fields/hooks/beforeValidate/index.js.map +1 -1
- package/dist/fields/hooks/beforeValidate/promise.d.ts +2 -1
- package/dist/fields/hooks/beforeValidate/promise.d.ts.map +1 -1
- package/dist/fields/hooks/beforeValidate/promise.js +30 -1
- package/dist/fields/hooks/beforeValidate/promise.js.map +1 -1
- package/dist/fields/hooks/beforeValidate/traverseFields.d.ts +2 -1
- package/dist/fields/hooks/beforeValidate/traverseFields.d.ts.map +1 -1
- package/dist/fields/hooks/beforeValidate/traverseFields.js +2 -1
- package/dist/fields/hooks/beforeValidate/traverseFields.js.map +1 -1
- package/dist/fields/setDefaultBeforeDuplicate.d.ts +3 -0
- package/dist/fields/setDefaultBeforeDuplicate.d.ts.map +1 -0
- package/dist/fields/setDefaultBeforeDuplicate.js +23 -0
- package/dist/fields/setDefaultBeforeDuplicate.js.map +1 -0
- package/dist/fields/validations.d.ts +3 -3
- package/dist/globals/config/client.d.ts +14 -0
- package/dist/globals/config/client.d.ts.map +1 -0
- package/dist/globals/config/client.js +42 -0
- package/dist/globals/config/client.js.map +1 -0
- package/dist/globals/config/types.d.ts +2 -21
- package/dist/globals/config/types.d.ts.map +1 -1
- package/dist/globals/config/types.js.map +1 -1
- package/dist/globals/operations/findOne.d.ts.map +1 -1
- package/dist/globals/operations/findVersionByID.d.ts.map +1 -1
- package/dist/globals/operations/findVersions.d.ts.map +1 -1
- package/dist/globals/operations/restoreVersion.d.ts.map +1 -1
- package/dist/globals/operations/update.d.ts +1 -9
- package/dist/globals/operations/update.d.ts.map +1 -1
- package/dist/index.d.ts +16 -14
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -9
- package/dist/index.js.map +1 -1
- package/dist/preferences/operations/findOne.d.ts.map +1 -1
- package/dist/preferences/operations/findOne.js +3 -7
- package/dist/preferences/operations/findOne.js.map +1 -1
- package/dist/preferences/types.d.ts +5 -4
- package/dist/preferences/types.d.ts.map +1 -1
- package/dist/preferences/types.js.map +1 -1
- package/dist/uploads/generateFileData.d.ts.map +1 -1
- package/dist/uploads/generateFileData.js +1 -1
- package/dist/uploads/generateFileData.js.map +1 -1
- package/dist/uploads/getFileByPath.d.ts +1 -2
- package/dist/uploads/getFileByPath.d.ts.map +1 -1
- package/dist/uploads/getFileByPath.js +1 -2
- package/dist/uploads/getFileByPath.js.map +1 -1
- package/dist/utilities/createLocalReq.d.ts +1 -1
- package/dist/utilities/createLocalReq.d.ts.map +1 -1
- package/dist/utilities/createLocalReq.js +20 -23
- package/dist/utilities/createLocalReq.js.map +1 -1
- package/dist/utilities/fieldSchemaToJSON.d.ts +2 -2
- package/dist/utilities/fieldSchemaToJSON.d.ts.map +1 -1
- package/dist/utilities/fieldSchemaToJSON.js +20 -10
- package/dist/utilities/fieldSchemaToJSON.js.map +1 -1
- package/dist/utilities/flattenTopLevelFields.d.ts +2 -1
- package/dist/utilities/flattenTopLevelFields.d.ts.map +1 -1
- package/dist/utilities/flattenTopLevelFields.js +1 -1
- package/dist/utilities/flattenTopLevelFields.js.map +1 -1
- package/dist/utilities/getEntityPolicies.js +3 -3
- package/dist/utilities/getEntityPolicies.js.map +1 -1
- package/dist/utilities/getObjectDotNotation.d.ts.map +1 -1
- package/dist/utilities/mergeListSearchAndWhere.d.ts +12 -0
- package/dist/utilities/mergeListSearchAndWhere.d.ts.map +1 -0
- package/dist/utilities/mergeListSearchAndWhere.js +57 -0
- package/dist/utilities/mergeListSearchAndWhere.js.map +1 -0
- package/dist/utilities/sanitizeInternalFields.d.ts.map +1 -1
- package/dist/utilities/telemetry/events/adminInit.d.ts +1 -1
- package/dist/utilities/telemetry/events/adminInit.d.ts.map +1 -1
- package/dist/utilities/telemetry/events/adminInit.js +1 -1
- package/dist/utilities/telemetry/events/adminInit.js.map +1 -1
- package/dist/utilities/telemetry/oneWayHash.d.ts +1 -0
- package/dist/utilities/telemetry/oneWayHash.d.ts.map +1 -1
- package/dist/utilities/wait.d.ts +1 -2
- package/dist/utilities/wait.d.ts.map +1 -1
- package/dist/utilities/wait.js +1 -2
- package/dist/utilities/wait.js.map +1 -1
- package/dist/versions/drafts/replaceWithDraftIfAvailable.d.ts.map +1 -1
- package/dist/versions/drafts/replaceWithDraftIfAvailable.js +1 -0
- package/dist/versions/drafts/replaceWithDraftIfAvailable.js.map +1 -1
- package/dist/versions/enforceMaxVersions.d.ts.map +1 -1
- package/dist/versions/enforceMaxVersions.js +1 -0
- package/dist/versions/enforceMaxVersions.js.map +1 -1
- package/dist/versions/getLatestCollectionVersion.d.ts.map +1 -1
- package/dist/versions/getLatestCollectionVersion.js +2 -0
- package/dist/versions/getLatestCollectionVersion.js.map +1 -1
- package/dist/versions/getLatestGlobalVersion.d.ts.map +1 -1
- package/dist/versions/getLatestGlobalVersion.js +1 -0
- package/dist/versions/getLatestGlobalVersion.js.map +1 -1
- package/dist/versions/saveVersion.d.ts.map +1 -1
- package/dist/versions/saveVersion.js +1 -0
- package/dist/versions/saveVersion.js.map +1 -1
- package/operations.d.ts +1 -0
- package/operations.js +1 -0
- package/package.json +3 -3
- package/types.d.ts +9 -4
- package/uploads.d.ts +2 -0
- package/uploads.js +3 -0
- package/utilities.d.ts +4 -1
- package/utilities.js +4 -1
- package/components.d.ts +0 -14
- package/components.js +0 -71
- package/dist/config/createClientConfig.d.ts +0 -1246
- package/dist/config/createClientConfig.js +0 -175
- package/dist/config/createClientConfig.js.map +0 -1
- package/dist/localization/middleware.d.ts +0 -5
- package/dist/localization/middleware.d.ts.map +0 -1
- package/dist/localization/middleware.js +0 -37
- package/dist/localization/middleware.js.map +0 -1
- package/dist/localization/sanitizeFallbackLocale.d.ts +0 -3
- package/dist/localization/sanitizeFallbackLocale.d.ts.map +0 -1
- package/dist/localization/sanitizeFallbackLocale.js +0 -9
- package/dist/localization/sanitizeFallbackLocale.js.map +0 -1
- package/graphql.d.ts +0 -3
- package/graphql.js +0 -27
|
@@ -1,175 +0,0 @@
|
|
|
1
|
-
export const sanitizeField = (f)=>{
|
|
2
|
-
const field = {
|
|
3
|
-
...f
|
|
4
|
-
};
|
|
5
|
-
const serverOnlyFieldProperties = [
|
|
6
|
-
'hooks',
|
|
7
|
-
'access',
|
|
8
|
-
'validate',
|
|
9
|
-
'defaultValue',
|
|
10
|
-
'label',
|
|
11
|
-
// This is a `richText` only property
|
|
12
|
-
'editor'
|
|
13
|
-
];
|
|
14
|
-
serverOnlyFieldProperties.forEach((key)=>{
|
|
15
|
-
if (key in field) {
|
|
16
|
-
delete field[key];
|
|
17
|
-
}
|
|
18
|
-
});
|
|
19
|
-
if ('fields' in field) {
|
|
20
|
-
field.fields = sanitizeFields(field.fields);
|
|
21
|
-
}
|
|
22
|
-
if ('blocks' in field) {
|
|
23
|
-
field.blocks = field.blocks.map((block)=>{
|
|
24
|
-
const sanitized = {
|
|
25
|
-
...block
|
|
26
|
-
};
|
|
27
|
-
sanitized.fields = sanitizeFields(sanitized.fields);
|
|
28
|
-
return sanitized;
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
if ('tabs' in field) {
|
|
32
|
-
// @ts-expect-error
|
|
33
|
-
field.tabs = field.tabs.map((tab)=>sanitizeField(tab));
|
|
34
|
-
}
|
|
35
|
-
if ('admin' in field) {
|
|
36
|
-
field.admin = {
|
|
37
|
-
...field.admin
|
|
38
|
-
};
|
|
39
|
-
const serverOnlyFieldAdminProperties = [
|
|
40
|
-
'components',
|
|
41
|
-
'condition',
|
|
42
|
-
'description'
|
|
43
|
-
];
|
|
44
|
-
serverOnlyFieldAdminProperties.forEach((key)=>{
|
|
45
|
-
if (key in field.admin) {
|
|
46
|
-
delete field.admin[key];
|
|
47
|
-
}
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
return field;
|
|
51
|
-
};
|
|
52
|
-
const sanitizeCollections = (collections)=>collections.map((collection)=>{
|
|
53
|
-
const sanitized = {
|
|
54
|
-
...collection
|
|
55
|
-
};
|
|
56
|
-
sanitized.fields = sanitizeFields(sanitized.fields);
|
|
57
|
-
const serverOnlyCollectionProperties = [
|
|
58
|
-
'hooks',
|
|
59
|
-
'access',
|
|
60
|
-
'endpoints'
|
|
61
|
-
];
|
|
62
|
-
serverOnlyCollectionProperties.forEach((key)=>{
|
|
63
|
-
if (key in sanitized) {
|
|
64
|
-
delete sanitized[key];
|
|
65
|
-
}
|
|
66
|
-
});
|
|
67
|
-
if ('upload' in sanitized && typeof sanitized.upload === 'object') {
|
|
68
|
-
sanitized.upload = {
|
|
69
|
-
...sanitized.upload
|
|
70
|
-
};
|
|
71
|
-
delete sanitized.upload.handlers;
|
|
72
|
-
}
|
|
73
|
-
if ('auth' in sanitized && typeof sanitized.auth === 'object') {
|
|
74
|
-
sanitized.auth = {
|
|
75
|
-
...sanitized.auth
|
|
76
|
-
};
|
|
77
|
-
delete sanitized.auth.strategies;
|
|
78
|
-
delete sanitized.auth.forgotPassword;
|
|
79
|
-
delete sanitized.auth.verify;
|
|
80
|
-
}
|
|
81
|
-
if ('admin' in sanitized) {
|
|
82
|
-
sanitized.admin = {
|
|
83
|
-
...sanitized.admin
|
|
84
|
-
};
|
|
85
|
-
const serverOnlyCollectionAdminProperties = [
|
|
86
|
-
'components',
|
|
87
|
-
'hidden',
|
|
88
|
-
'preview'
|
|
89
|
-
];
|
|
90
|
-
serverOnlyCollectionAdminProperties.forEach((key)=>{
|
|
91
|
-
if (key in sanitized.admin) {
|
|
92
|
-
delete sanitized.admin[key];
|
|
93
|
-
}
|
|
94
|
-
});
|
|
95
|
-
}
|
|
96
|
-
return sanitized;
|
|
97
|
-
});
|
|
98
|
-
const sanitizeGlobals = (globals)=>globals.map((global)=>{
|
|
99
|
-
const sanitized = {
|
|
100
|
-
...global
|
|
101
|
-
};
|
|
102
|
-
sanitized.fields = sanitizeFields(sanitized.fields);
|
|
103
|
-
const serverOnlyProperties = [
|
|
104
|
-
'hooks',
|
|
105
|
-
'access',
|
|
106
|
-
'endpoints'
|
|
107
|
-
];
|
|
108
|
-
serverOnlyProperties.forEach((key)=>{
|
|
109
|
-
if (key in sanitized) {
|
|
110
|
-
delete sanitized[key];
|
|
111
|
-
}
|
|
112
|
-
});
|
|
113
|
-
if ('admin' in sanitized) {
|
|
114
|
-
sanitized.admin = {
|
|
115
|
-
...sanitized.admin
|
|
116
|
-
};
|
|
117
|
-
const serverOnlyProperties = [
|
|
118
|
-
'components',
|
|
119
|
-
'hidden',
|
|
120
|
-
'preview'
|
|
121
|
-
];
|
|
122
|
-
serverOnlyProperties.forEach((key)=>{
|
|
123
|
-
if (key in sanitized.admin) {
|
|
124
|
-
delete sanitized.admin[key];
|
|
125
|
-
}
|
|
126
|
-
});
|
|
127
|
-
}
|
|
128
|
-
return sanitized;
|
|
129
|
-
});
|
|
130
|
-
export const sanitizeFields = (fields)=>fields.map(sanitizeField);
|
|
131
|
-
export const createClientConfig = async (configPromise)=>{
|
|
132
|
-
const config = await configPromise;
|
|
133
|
-
const clientConfig = {
|
|
134
|
-
...config
|
|
135
|
-
};
|
|
136
|
-
const serverOnlyConfigProperties = [
|
|
137
|
-
'endpoints',
|
|
138
|
-
'db',
|
|
139
|
-
'editor',
|
|
140
|
-
'plugins',
|
|
141
|
-
'sharp'
|
|
142
|
-
];
|
|
143
|
-
serverOnlyConfigProperties.forEach((key)=>{
|
|
144
|
-
if (key in clientConfig) {
|
|
145
|
-
delete clientConfig[key];
|
|
146
|
-
}
|
|
147
|
-
});
|
|
148
|
-
if ('localization' in clientConfig && clientConfig.localization) {
|
|
149
|
-
clientConfig.localization = {
|
|
150
|
-
...clientConfig.localization
|
|
151
|
-
};
|
|
152
|
-
clientConfig.localization.locales.forEach((locale)=>{
|
|
153
|
-
delete locale.toString;
|
|
154
|
-
});
|
|
155
|
-
}
|
|
156
|
-
if ('admin' in clientConfig) {
|
|
157
|
-
clientConfig.admin = {
|
|
158
|
-
...clientConfig.admin
|
|
159
|
-
};
|
|
160
|
-
const serverOnlyAdminProperties = [
|
|
161
|
-
'components'
|
|
162
|
-
];
|
|
163
|
-
serverOnlyAdminProperties.forEach((key)=>{
|
|
164
|
-
if (key in clientConfig.admin) {
|
|
165
|
-
delete clientConfig.admin[key];
|
|
166
|
-
}
|
|
167
|
-
});
|
|
168
|
-
}
|
|
169
|
-
clientConfig.onInit = undefined;
|
|
170
|
-
clientConfig.collections = sanitizeCollections(clientConfig.collections);
|
|
171
|
-
clientConfig.globals = sanitizeGlobals(clientConfig.globals);
|
|
172
|
-
return clientConfig;
|
|
173
|
-
};
|
|
174
|
-
|
|
175
|
-
//# sourceMappingURL=createClientConfig.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/config/createClientConfig.ts"],"sourcesContent":["import type { SanitizedCollectionConfig, SanitizedGlobalConfig } from '../exports/types.js'\nimport type { Field, FieldBase, RichTextField } from '../fields/config/types.js'\nimport type { ClientConfig, SanitizedConfig } from './types.js'\n\nexport const sanitizeField = (f: Field) => {\n const field = { ...f }\n\n const serverOnlyFieldProperties: Partial<keyof FieldBase | keyof RichTextField>[] = [\n 'hooks',\n 'access',\n 'validate',\n 'defaultValue',\n 'label',\n // This is a `richText` only property\n 'editor',\n // `fields`\n // `blocks`\n // `tabs`\n // `admin`\n // are all handled separately\n ]\n\n serverOnlyFieldProperties.forEach((key) => {\n if (key in field) {\n delete field[key]\n }\n })\n\n if ('fields' in field) {\n field.fields = sanitizeFields(field.fields)\n }\n\n if ('blocks' in field) {\n field.blocks = field.blocks.map((block) => {\n const sanitized = { ...block }\n sanitized.fields = sanitizeFields(sanitized.fields)\n return sanitized\n })\n }\n\n if ('tabs' in field) {\n // @ts-expect-error\n field.tabs = field.tabs.map((tab) => sanitizeField(tab))\n }\n\n if ('admin' in field) {\n field.admin = { ...field.admin }\n\n const serverOnlyFieldAdminProperties = ['components', 'condition', 'description']\n\n serverOnlyFieldAdminProperties.forEach((key) => {\n if (key in field.admin) {\n delete field.admin[key]\n }\n })\n }\n\n return field\n}\n\nconst sanitizeCollections = (\n collections: SanitizedConfig['collections'],\n): ClientConfig['collections'] =>\n collections.map((collection) => {\n const sanitized = { ...collection }\n sanitized.fields = sanitizeFields(sanitized.fields)\n\n const serverOnlyCollectionProperties: Partial<keyof SanitizedCollectionConfig>[] = [\n 'hooks',\n 'access',\n 'endpoints',\n // `upload`\n // `admin`\n // are all handled separately\n ]\n\n serverOnlyCollectionProperties.forEach((key) => {\n if (key in sanitized) {\n delete sanitized[key]\n }\n })\n\n if ('upload' in sanitized && typeof sanitized.upload === 'object') {\n sanitized.upload = { ...sanitized.upload }\n delete sanitized.upload.handlers\n }\n\n if ('auth' in sanitized && typeof sanitized.auth === 'object') {\n sanitized.auth = { ...sanitized.auth }\n delete sanitized.auth.strategies\n delete sanitized.auth.forgotPassword\n delete sanitized.auth.verify\n }\n\n if ('admin' in sanitized) {\n sanitized.admin = { ...sanitized.admin }\n\n const serverOnlyCollectionAdminProperties: Partial<\n keyof SanitizedCollectionConfig['admin']\n >[] = ['components', 'hidden', 'preview']\n\n serverOnlyCollectionAdminProperties.forEach((key) => {\n if (key in sanitized.admin) {\n delete sanitized.admin[key]\n }\n })\n }\n\n return sanitized\n })\n\nconst sanitizeGlobals = (globals: SanitizedConfig['globals']): ClientConfig['globals'] =>\n globals.map((global) => {\n const sanitized = { ...global }\n sanitized.fields = sanitizeFields(sanitized.fields)\n\n const serverOnlyProperties: Partial<keyof SanitizedGlobalConfig>[] = [\n 'hooks',\n 'access',\n 'endpoints',\n // `admin`\n // is handled separately\n ]\n\n serverOnlyProperties.forEach((key) => {\n if (key in sanitized) {\n delete sanitized[key]\n }\n })\n\n if ('admin' in sanitized) {\n sanitized.admin = { ...sanitized.admin }\n\n const serverOnlyProperties: Partial<keyof SanitizedGlobalConfig['admin']>[] = [\n 'components',\n 'hidden',\n 'preview',\n ]\n\n serverOnlyProperties.forEach((key) => {\n if (key in sanitized.admin) {\n delete sanitized.admin[key]\n }\n })\n }\n\n return sanitized\n })\n\nexport const sanitizeFields = (fields: Field[]): Field[] => fields.map(sanitizeField)\n\nexport const createClientConfig = async (\n configPromise: Promise<SanitizedConfig> | SanitizedConfig,\n): Promise<ClientConfig> => {\n const config = await configPromise\n const clientConfig = { ...config }\n\n const serverOnlyConfigProperties: Partial<keyof SanitizedConfig>[] = [\n 'endpoints',\n 'db',\n 'editor',\n 'plugins',\n 'sharp',\n // `admin`\n // `onInit`\n // `localization`\n // `collections`\n // `globals`\n // are all handled separately\n ]\n\n serverOnlyConfigProperties.forEach((key) => {\n if (key in clientConfig) {\n delete clientConfig[key]\n }\n })\n\n if ('localization' in clientConfig && clientConfig.localization) {\n clientConfig.localization = { ...clientConfig.localization }\n\n clientConfig.localization.locales.forEach((locale) => {\n delete locale.toString\n })\n }\n\n if ('admin' in clientConfig) {\n clientConfig.admin = { ...clientConfig.admin }\n\n const serverOnlyAdminProperties: Partial<keyof SanitizedConfig['admin']>[] = ['components']\n\n serverOnlyAdminProperties.forEach((key) => {\n if (key in clientConfig.admin) {\n delete clientConfig.admin[key]\n }\n })\n }\n\n clientConfig.onInit = undefined\n\n clientConfig.collections = sanitizeCollections(clientConfig.collections)\n clientConfig.globals = sanitizeGlobals(clientConfig.globals)\n\n return clientConfig\n}\n"],"names":["sanitizeField","f","field","serverOnlyFieldProperties","forEach","key","fields","sanitizeFields","blocks","map","block","sanitized","tabs","tab","admin","serverOnlyFieldAdminProperties","sanitizeCollections","collections","collection","serverOnlyCollectionProperties","upload","handlers","auth","strategies","forgotPassword","verify","serverOnlyCollectionAdminProperties","sanitizeGlobals","globals","global","serverOnlyProperties","createClientConfig","configPromise","config","clientConfig","serverOnlyConfigProperties","localization","locales","locale","toString","serverOnlyAdminProperties","onInit","undefined"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/localization/middleware.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAC,GAAG,KAAA,EAAE,GAAG,KAAA,EAAE,IAAI,KAAA,QAkC5D"}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* sets request locale
|
|
3
|
-
*/ export default function localizationMiddleware(req, res, next) {
|
|
4
|
-
const localization = req.payload.config.localization;
|
|
5
|
-
if (!localization) {
|
|
6
|
-
next();
|
|
7
|
-
return;
|
|
8
|
-
}
|
|
9
|
-
const validLocales = [
|
|
10
|
-
...localization.localeCodes,
|
|
11
|
-
'all'
|
|
12
|
-
];
|
|
13
|
-
const validFallbackLocales = [
|
|
14
|
-
...localization.localeCodes,
|
|
15
|
-
'null'
|
|
16
|
-
];
|
|
17
|
-
let requestedLocale = req.query.locale || localization.defaultLocale;
|
|
18
|
-
let requestedFallbackLocale = req.query['fallback-locale'];
|
|
19
|
-
if (req.body) {
|
|
20
|
-
if (req.body.locale) requestedLocale = req.body.locale;
|
|
21
|
-
if (req.body['fallback-locale']) {
|
|
22
|
-
requestedFallbackLocale = req.body['fallback-locale'];
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
if (requestedFallbackLocale === 'none') requestedFallbackLocale = 'null';
|
|
26
|
-
if (requestedLocale === '*' || requestedLocale === 'all') {
|
|
27
|
-
requestedLocale = 'all';
|
|
28
|
-
}
|
|
29
|
-
req.fallbackLocale = validFallbackLocales.find((locale)=>locale === requestedFallbackLocale);
|
|
30
|
-
req.locale = validLocales.find((locale)=>locale === requestedLocale);
|
|
31
|
-
if (!req.fallbackLocale) {
|
|
32
|
-
req.fallbackLocale = localization.locales.find(({ code })=>req.locale === code)?.fallbackLocale || localization.defaultLocale;
|
|
33
|
-
}
|
|
34
|
-
next();
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
//# sourceMappingURL=middleware.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/localization/middleware.ts"],"sourcesContent":["/**\n * sets request locale\n */\nexport default function localizationMiddleware(req, res, next) {\n const localization = req.payload.config.localization\n if (!localization) {\n next()\n return\n }\n\n const validLocales = [...localization.localeCodes, 'all']\n const validFallbackLocales = [...localization.localeCodes, 'null']\n\n let requestedLocale = req.query.locale || localization.defaultLocale\n let requestedFallbackLocale = req.query['fallback-locale']\n\n if (req.body) {\n if (req.body.locale) requestedLocale = req.body.locale\n if (req.body['fallback-locale']) {\n requestedFallbackLocale = req.body['fallback-locale']\n }\n }\n\n if (requestedFallbackLocale === 'none') requestedFallbackLocale = 'null'\n if (requestedLocale === '*' || requestedLocale === 'all') {\n requestedLocale = 'all'\n }\n req.fallbackLocale = validFallbackLocales.find((locale) => locale === requestedFallbackLocale)\n\n req.locale = validLocales.find((locale) => locale === requestedLocale)\n\n if (!req.fallbackLocale) {\n req.fallbackLocale =\n localization.locales.find(({ code }) => req.locale === code)?.fallbackLocale ||\n localization.defaultLocale\n }\n next()\n}\n"],"names":["localizationMiddleware","req","res","next","localization","payload","config","validLocales","localeCodes","validFallbackLocales","requestedLocale","query","locale","defaultLocale","requestedFallbackLocale","body","fallbackLocale","find","locales","code"],"mappings":"AAAA;;CAEC,GACD,eAAe,SAASA,uBAAuBC,GAAG,EAAEC,GAAG,EAAEC,IAAI;IAC3D,MAAMC,eAAeH,IAAII,OAAO,CAACC,MAAM,CAACF,YAAY;IACpD,IAAI,CAACA,cAAc;QACjBD;QACA;IACF;IAEA,MAAMI,eAAe;WAAIH,aAAaI,WAAW;QAAE;KAAM;IACzD,MAAMC,uBAAuB;WAAIL,aAAaI,WAAW;QAAE;KAAO;IAElE,IAAIE,kBAAkBT,IAAIU,KAAK,CAACC,MAAM,IAAIR,aAAaS,aAAa;IACpE,IAAIC,0BAA0Bb,IAAIU,KAAK,CAAC,kBAAkB;IAE1D,IAAIV,IAAIc,IAAI,EAAE;QACZ,IAAId,IAAIc,IAAI,CAACH,MAAM,EAAEF,kBAAkBT,IAAIc,IAAI,CAACH,MAAM;QACtD,IAAIX,IAAIc,IAAI,CAAC,kBAAkB,EAAE;YAC/BD,0BAA0Bb,IAAIc,IAAI,CAAC,kBAAkB;QACvD;IACF;IAEA,IAAID,4BAA4B,QAAQA,0BAA0B;IAClE,IAAIJ,oBAAoB,OAAOA,oBAAoB,OAAO;QACxDA,kBAAkB;IACpB;IACAT,IAAIe,cAAc,GAAGP,qBAAqBQ,IAAI,CAAC,CAACL,SAAWA,WAAWE;IAEtEb,IAAIW,MAAM,GAAGL,aAAaU,IAAI,CAAC,CAACL,SAAWA,WAAWF;IAEtD,IAAI,CAACT,IAAIe,cAAc,EAAE;QACvBf,IAAIe,cAAc,GAChBZ,aAAac,OAAO,CAACD,IAAI,CAAC,CAAC,EAAEE,IAAI,EAAE,GAAKlB,IAAIW,MAAM,KAAKO,OAAOH,kBAC9DZ,aAAaS,aAAa;IAC9B;IACAV;AACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sanitizeFallbackLocale.d.ts","sourceRoot":"","sources":["../../src/localization/sanitizeFallbackLocale.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,sBAAsB,8BAY3B,CAAA;AAED,eAAe,sBAAsB,CAAA"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
const sanitizeFallbackLocale = (fallbackLocale)=>{
|
|
2
|
-
if (fallbackLocale === 'null' || fallbackLocale === 'none' || fallbackLocale === 'false' || fallbackLocale === false || fallbackLocale === null) {
|
|
3
|
-
return null;
|
|
4
|
-
}
|
|
5
|
-
return fallbackLocale;
|
|
6
|
-
};
|
|
7
|
-
export default sanitizeFallbackLocale;
|
|
8
|
-
|
|
9
|
-
//# sourceMappingURL=sanitizeFallbackLocale.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/localization/sanitizeFallbackLocale.ts"],"sourcesContent":["const sanitizeFallbackLocale = (fallbackLocale) => {\n if (\n fallbackLocale === 'null' ||\n fallbackLocale === 'none' ||\n fallbackLocale === 'false' ||\n fallbackLocale === false ||\n fallbackLocale === null\n ) {\n return null\n }\n\n return fallbackLocale\n}\n\nexport default sanitizeFallbackLocale\n"],"names":["sanitizeFallbackLocale","fallbackLocale"],"mappings":"AAAA,MAAMA,yBAAyB,CAACC;IAC9B,IACEA,mBAAmB,UACnBA,mBAAmB,UACnBA,mBAAmB,WACnBA,mBAAmB,SACnBA,mBAAmB,MACnB;QACA,OAAO;IACT;IAEA,OAAOA;AACT;AAEA,eAAeD,uBAAsB"}
|
package/graphql.d.ts
DELETED
package/graphql.js
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
function _export(target, all) {
|
|
6
|
-
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
-
enumerable: true,
|
|
8
|
-
get: all[name]
|
|
9
|
-
});
|
|
10
|
-
}
|
|
11
|
-
_export(exports, {
|
|
12
|
-
GraphQL: function() {
|
|
13
|
-
return _graphql.default;
|
|
14
|
-
},
|
|
15
|
-
buildPaginatedListType: function() {
|
|
16
|
-
return _buildPaginatedListType.default;
|
|
17
|
-
}
|
|
18
|
-
});
|
|
19
|
-
const _buildPaginatedListType = /*#__PURE__*/ _interop_require_default(require("./dist/graphql/schema/buildPaginatedListType"));
|
|
20
|
-
const _graphql = /*#__PURE__*/ _interop_require_default(require("graphql"));
|
|
21
|
-
function _interop_require_default(obj) {
|
|
22
|
-
return obj && obj.__esModule ? obj : {
|
|
23
|
-
default: obj
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leHBvcnRzL2dyYXBocWwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgZGVmYXVsdCBhcyBidWlsZFBhZ2luYXRlZExpc3RUeXBlIH0gZnJvbSAnLi8uLi9ncmFwaHFsL3NjaGVtYS9idWlsZFBhZ2luYXRlZExpc3RUeXBlJ1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBHcmFwaFFMIH0gZnJvbSAnZ3JhcGhxbCdcbiJdLCJuYW1lcyI6WyJHcmFwaFFMIiwiYnVpbGRQYWdpbmF0ZWRMaXN0VHlwZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7SUFDb0JBLE9BQU87ZUFBUEEsZ0JBQU87O0lBRFBDLHNCQUFzQjtlQUF0QkEsK0JBQXNCOzs7K0VBQVE7Z0VBQ2YifQ==
|