payload 3.0.0-beta.78 → 3.0.0-beta.79

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 (234) hide show
  1. package/bin.js +33 -10
  2. package/dist/admin/RichText.d.ts +20 -17
  3. package/dist/admin/RichText.d.ts.map +1 -1
  4. package/dist/admin/RichText.js.map +1 -1
  5. package/dist/admin/elements/Cell.d.ts +11 -26
  6. package/dist/admin/elements/Cell.d.ts.map +1 -1
  7. package/dist/admin/elements/Cell.js.map +1 -1
  8. package/dist/admin/elements/Tab.d.ts +16 -15
  9. package/dist/admin/elements/Tab.d.ts.map +1 -1
  10. package/dist/admin/elements/Tab.js.map +1 -1
  11. package/dist/admin/fields/Array.d.ts +6 -13
  12. package/dist/admin/fields/Array.d.ts.map +1 -1
  13. package/dist/admin/fields/Array.js.map +1 -1
  14. package/dist/admin/fields/Blocks.d.ts +8 -25
  15. package/dist/admin/fields/Blocks.d.ts.map +1 -1
  16. package/dist/admin/fields/Blocks.js.map +1 -1
  17. package/dist/admin/fields/Checkbox.d.ts +9 -9
  18. package/dist/admin/fields/Checkbox.d.ts.map +1 -1
  19. package/dist/admin/fields/Checkbox.js.map +1 -1
  20. package/dist/admin/fields/Code.d.ts +5 -7
  21. package/dist/admin/fields/Code.d.ts.map +1 -1
  22. package/dist/admin/fields/Code.js.map +1 -1
  23. package/dist/admin/fields/Collapsible.d.ts +3 -4
  24. package/dist/admin/fields/Collapsible.d.ts.map +1 -1
  25. package/dist/admin/fields/Collapsible.js.map +1 -1
  26. package/dist/admin/fields/Date.d.ts +4 -7
  27. package/dist/admin/fields/Date.d.ts.map +1 -1
  28. package/dist/admin/fields/Date.js.map +1 -1
  29. package/dist/admin/fields/Email.d.ts +5 -7
  30. package/dist/admin/fields/Email.d.ts.map +1 -1
  31. package/dist/admin/fields/Email.js.map +1 -1
  32. package/dist/admin/fields/Group.d.ts +3 -6
  33. package/dist/admin/fields/Group.d.ts.map +1 -1
  34. package/dist/admin/fields/Group.js.map +1 -1
  35. package/dist/admin/fields/Hidden.d.ts +7 -5
  36. package/dist/admin/fields/Hidden.d.ts.map +1 -1
  37. package/dist/admin/fields/Hidden.js.map +1 -1
  38. package/dist/admin/fields/JSON.d.ts +4 -7
  39. package/dist/admin/fields/JSON.d.ts.map +1 -1
  40. package/dist/admin/fields/JSON.js.map +1 -1
  41. package/dist/admin/fields/Number.d.ts +5 -12
  42. package/dist/admin/fields/Number.d.ts.map +1 -1
  43. package/dist/admin/fields/Number.js.map +1 -1
  44. package/dist/admin/fields/Point.d.ts +4 -6
  45. package/dist/admin/fields/Point.d.ts.map +1 -1
  46. package/dist/admin/fields/Point.js.map +1 -1
  47. package/dist/admin/fields/Radio.d.ts +6 -9
  48. package/dist/admin/fields/Radio.d.ts.map +1 -1
  49. package/dist/admin/fields/Radio.js.map +1 -1
  50. package/dist/admin/fields/Relationship.d.ts +4 -9
  51. package/dist/admin/fields/Relationship.d.ts.map +1 -1
  52. package/dist/admin/fields/Relationship.js.map +1 -1
  53. package/dist/admin/fields/RichText.d.ts +5 -6
  54. package/dist/admin/fields/RichText.d.ts.map +1 -1
  55. package/dist/admin/fields/RichText.js.map +1 -1
  56. package/dist/admin/fields/Row.d.ts +3 -4
  57. package/dist/admin/fields/Row.d.ts.map +1 -1
  58. package/dist/admin/fields/Row.js.map +1 -1
  59. package/dist/admin/fields/Select.d.ts +6 -11
  60. package/dist/admin/fields/Select.d.ts.map +1 -1
  61. package/dist/admin/fields/Select.js.map +1 -1
  62. package/dist/admin/fields/Tabs.d.ts +8 -12
  63. package/dist/admin/fields/Tabs.d.ts.map +1 -1
  64. package/dist/admin/fields/Tabs.js.map +1 -1
  65. package/dist/admin/fields/Text.d.ts +7 -13
  66. package/dist/admin/fields/Text.d.ts.map +1 -1
  67. package/dist/admin/fields/Text.js.map +1 -1
  68. package/dist/admin/fields/Textarea.d.ts +7 -9
  69. package/dist/admin/fields/Textarea.d.ts.map +1 -1
  70. package/dist/admin/fields/Textarea.js.map +1 -1
  71. package/dist/admin/fields/Upload.d.ts +6 -7
  72. package/dist/admin/fields/Upload.d.ts.map +1 -1
  73. package/dist/admin/fields/Upload.js.map +1 -1
  74. package/dist/admin/forms/Error.d.ts +10 -10
  75. package/dist/admin/forms/Error.d.ts.map +1 -1
  76. package/dist/admin/forms/Error.js.map +1 -1
  77. package/dist/admin/forms/Field.d.ts +17 -24
  78. package/dist/admin/forms/Field.d.ts.map +1 -1
  79. package/dist/admin/forms/Field.js +1 -0
  80. package/dist/admin/forms/Field.js.map +1 -1
  81. package/dist/admin/forms/FieldDescription.d.ts +10 -9
  82. package/dist/admin/forms/FieldDescription.d.ts.map +1 -1
  83. package/dist/admin/forms/FieldDescription.js.map +1 -1
  84. package/dist/admin/forms/Label.d.ts +14 -15
  85. package/dist/admin/forms/Label.d.ts.map +1 -1
  86. package/dist/admin/forms/Label.js.map +1 -1
  87. package/dist/admin/types.d.ts +30 -11
  88. package/dist/admin/types.d.ts.map +1 -1
  89. package/dist/admin/types.js.map +1 -1
  90. package/dist/admin/views/types.d.ts +21 -13
  91. package/dist/admin/views/types.d.ts.map +1 -1
  92. package/dist/admin/views/types.js.map +1 -1
  93. package/dist/auth/baseFields/apiKey.js +2 -2
  94. package/dist/auth/baseFields/apiKey.js.map +1 -1
  95. package/dist/auth/baseFields/email.js +1 -1
  96. package/dist/auth/baseFields/email.js.map +1 -1
  97. package/dist/auth/baseFields/username.js +1 -1
  98. package/dist/auth/baseFields/username.js.map +1 -1
  99. package/dist/auth/baseFields/verification.js +1 -1
  100. package/dist/auth/baseFields/verification.js.map +1 -1
  101. package/dist/bin/generateImportMap/index.d.ts +47 -0
  102. package/dist/bin/generateImportMap/index.d.ts.map +1 -0
  103. package/dist/bin/generateImportMap/index.js +129 -0
  104. package/dist/bin/generateImportMap/index.js.map +1 -0
  105. package/dist/bin/generateImportMap/iterateCollections.d.ts +12 -0
  106. package/dist/bin/generateImportMap/iterateCollections.d.ts.map +1 -0
  107. package/dist/bin/generateImportMap/iterateCollections.js +41 -0
  108. package/dist/bin/generateImportMap/iterateCollections.js.map +1 -0
  109. package/dist/bin/generateImportMap/iterateConfig.d.ts +10 -0
  110. package/dist/bin/generateImportMap/iterateConfig.d.ts.map +1 -0
  111. package/dist/bin/generateImportMap/iterateConfig.js +75 -0
  112. package/dist/bin/generateImportMap/iterateConfig.js.map +1 -0
  113. package/dist/bin/generateImportMap/iterateFields.d.ts +12 -0
  114. package/dist/bin/generateImportMap/iterateFields.d.ts.map +1 -0
  115. package/dist/bin/generateImportMap/iterateFields.js +56 -0
  116. package/dist/bin/generateImportMap/iterateFields.js.map +1 -0
  117. package/dist/bin/generateImportMap/iterateGlobals.d.ts +12 -0
  118. package/dist/bin/generateImportMap/iterateGlobals.d.ts.map +1 -0
  119. package/dist/bin/generateImportMap/iterateGlobals.js +34 -0
  120. package/dist/bin/generateImportMap/iterateGlobals.js.map +1 -0
  121. package/dist/bin/generateImportMap/parsePayloadComponent.d.ts +6 -0
  122. package/dist/bin/generateImportMap/parsePayloadComponent.d.ts.map +1 -0
  123. package/dist/bin/generateImportMap/parsePayloadComponent.js +19 -0
  124. package/dist/bin/generateImportMap/parsePayloadComponent.js.map +1 -0
  125. package/dist/bin/index.d.ts.map +1 -1
  126. package/dist/bin/index.js +35 -4
  127. package/dist/bin/index.js.map +1 -1
  128. package/dist/collections/config/client.d.ts +32 -308
  129. package/dist/collections/config/client.d.ts.map +1 -1
  130. package/dist/collections/config/client.js +1 -82
  131. package/dist/collections/config/client.js.map +1 -1
  132. package/dist/collections/config/types.d.ts +9 -9
  133. package/dist/collections/config/types.d.ts.map +1 -1
  134. package/dist/collections/config/types.js.map +1 -1
  135. package/dist/config/client.d.ts +12 -6
  136. package/dist/config/client.d.ts.map +1 -1
  137. package/dist/config/client.js +1 -49
  138. package/dist/config/client.js.map +1 -1
  139. package/dist/config/defaults.d.ts.map +1 -1
  140. package/dist/config/defaults.js +4 -0
  141. package/dist/config/defaults.js.map +1 -1
  142. package/dist/config/types.d.ts +111 -52
  143. package/dist/config/types.d.ts.map +1 -1
  144. package/dist/config/types.js.map +1 -1
  145. package/dist/exports/node.d.ts +0 -1
  146. package/dist/exports/node.d.ts.map +1 -1
  147. package/dist/exports/node.js +0 -1
  148. package/dist/exports/node.js.map +1 -1
  149. package/dist/exports/shared.d.ts +2 -1
  150. package/dist/exports/shared.d.ts.map +1 -1
  151. package/dist/exports/shared.js +2 -1
  152. package/dist/exports/shared.js.map +1 -1
  153. package/dist/fields/config/client.d.ts +3 -1642
  154. package/dist/fields/config/client.d.ts.map +1 -1
  155. package/dist/fields/config/client.js +1 -81
  156. package/dist/fields/config/client.js.map +1 -1
  157. package/dist/fields/config/sanitize.d.ts.map +1 -1
  158. package/dist/fields/config/sanitize.js +23 -22
  159. package/dist/fields/config/sanitize.js.map +1 -1
  160. package/dist/fields/config/types.d.ts +385 -56
  161. package/dist/fields/config/types.d.ts.map +1 -1
  162. package/dist/fields/config/types.js +3 -0
  163. package/dist/fields/config/types.js.map +1 -1
  164. package/dist/globals/config/client.d.ts +26 -14
  165. package/dist/globals/config/client.d.ts.map +1 -1
  166. package/dist/globals/config/client.js +1 -47
  167. package/dist/globals/config/client.js.map +1 -1
  168. package/dist/globals/config/types.d.ts +3 -3
  169. package/dist/globals/config/types.js.map +1 -1
  170. package/dist/index.d.ts +15 -11
  171. package/dist/index.d.ts.map +1 -1
  172. package/dist/index.js +7 -7
  173. package/dist/index.js.map +1 -1
  174. package/dist/uploads/getBaseFields.d.ts.map +1 -1
  175. package/dist/uploads/getBaseFields.js +5 -2
  176. package/dist/uploads/getBaseFields.js.map +1 -1
  177. package/dist/uploads/types.d.ts +4 -0
  178. package/dist/uploads/types.d.ts.map +1 -1
  179. package/dist/uploads/types.js.map +1 -1
  180. package/dist/utilities/fieldSchemaToJSON.d.ts +4 -4
  181. package/dist/utilities/fieldSchemaToJSON.d.ts.map +1 -1
  182. package/dist/utilities/fieldSchemaToJSON.js +0 -10
  183. package/dist/utilities/fieldSchemaToJSON.js.map +1 -1
  184. package/dist/utilities/flattenTopLevelFields.d.ts +4 -3
  185. package/dist/utilities/flattenTopLevelFields.d.ts.map +1 -1
  186. package/dist/utilities/flattenTopLevelFields.js +12 -7
  187. package/dist/utilities/flattenTopLevelFields.js.map +1 -1
  188. package/dist/utilities/getEntityPolicies.d.ts.map +1 -1
  189. package/dist/utilities/getEntityPolicies.js +5 -5
  190. package/dist/utilities/getEntityPolicies.js.map +1 -1
  191. package/dist/utilities/telemetry/conf/index.js.map +1 -1
  192. package/dist/versions/baseFields.js +1 -1
  193. package/dist/versions/baseFields.js.map +1 -1
  194. package/package.json +3 -10
  195. package/dist/admin/fields/index.d.ts +0 -65
  196. package/dist/admin/fields/index.d.ts.map +0 -1
  197. package/dist/admin/fields/index.js +0 -3
  198. package/dist/admin/fields/index.js.map +0 -1
  199. package/dist/admin/forms/FieldMap.d.ts +0 -23
  200. package/dist/admin/forms/FieldMap.d.ts.map +0 -1
  201. package/dist/admin/forms/FieldMap.js +0 -3
  202. package/dist/admin/forms/FieldMap.js.map +0 -1
  203. package/dist/admin/forms/FieldTypes.d.ts +0 -27
  204. package/dist/admin/forms/FieldTypes.d.ts.map +0 -1
  205. package/dist/admin/forms/FieldTypes.js +0 -3
  206. package/dist/admin/forms/FieldTypes.js.map +0 -1
  207. package/dist/bin/loader/clientExtensions.d.ts +0 -2
  208. package/dist/bin/loader/clientExtensions.d.ts.map +0 -1
  209. package/dist/bin/loader/clientExtensions.js +0 -13
  210. package/dist/bin/loader/clientExtensions.js.map +0 -1
  211. package/dist/bin/loader/compile.d.ts +0 -5
  212. package/dist/bin/loader/compile.d.ts.map +0 -1
  213. package/dist/bin/loader/compile.js +0 -27
  214. package/dist/bin/loader/compile.js.map +0 -1
  215. package/dist/bin/loader/ignores.d.ts +0 -2
  216. package/dist/bin/loader/ignores.d.ts.map +0 -1
  217. package/dist/bin/loader/ignores.js +0 -5
  218. package/dist/bin/loader/ignores.js.map +0 -1
  219. package/dist/bin/loader/index.d.ts +0 -34
  220. package/dist/bin/loader/index.d.ts.map +0 -1
  221. package/dist/bin/loader/index.js +0 -116
  222. package/dist/bin/loader/index.js.map +0 -1
  223. package/dist/bin/loader/read-default-tsconfig.d.ts +0 -29
  224. package/dist/bin/loader/read-default-tsconfig.d.ts.map +0 -1
  225. package/dist/bin/loader/read-default-tsconfig.js +0 -116
  226. package/dist/bin/loader/read-default-tsconfig.js.map +0 -1
  227. package/dist/bin/loader/resolveOriginalPath.d.ts +0 -10
  228. package/dist/bin/loader/resolveOriginalPath.d.ts.map +0 -1
  229. package/dist/bin/loader/resolveOriginalPath.js +0 -36
  230. package/dist/bin/loader/resolveOriginalPath.js.map +0 -1
  231. package/dist/utilities/importWithoutClientFiles.d.ts +0 -7
  232. package/dist/utilities/importWithoutClientFiles.d.ts.map +0 -1
  233. package/dist/utilities/importWithoutClientFiles.js +0 -47
  234. package/dist/utilities/importWithoutClientFiles.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/fields/config/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/fields/config/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAK1E,OAAO,EAAE,WAAW,EAAE,CAAA;AAEtB,MAAM,MAAM,yBAAyB,GACjC,QAAQ,GACR,QAAQ,GACR,UAAU,GACV,eAAe,GACf,OAAO,GACP,kBAAkB,GAClB,MAAM,IAAI,CAAC,SAAS,EAAE,QAAQ,GAAG,QAAQ,GAAG,cAAc,GAAG,OAAO,GAAG,UAAU,CAAC,CAAA;AAEtF,MAAM,MAAM,8BAA8B,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,CAAA"}
@@ -1,83 +1,3 @@
1
- export const createClientFieldConfig = ({ field: incomingField, t })=>{
2
- const field = {
3
- ...incomingField
4
- };
5
- const serverOnlyFieldProperties = [
6
- 'hooks',
7
- 'access',
8
- 'validate',
9
- 'defaultValue',
10
- 'label',
11
- 'filterOptions',
12
- 'editor',
13
- 'custom',
14
- 'typescriptSchema',
15
- 'dbName',
16
- 'enumName'
17
- ];
18
- serverOnlyFieldProperties.forEach((key)=>{
19
- if (key in field) {
20
- delete field[key];
21
- }
22
- });
23
- if ('options' in field && Array.isArray(field.options)) {
24
- field.options = field.options.map((option)=>{
25
- if (typeof option === 'object' && typeof option.label === 'function') {
26
- return {
27
- label: option.label({
28
- t
29
- }),
30
- value: option.value
31
- };
32
- }
33
- return option;
34
- });
35
- }
36
- if ('fields' in field) {
37
- field.fields = createClientFieldConfigs({
38
- fields: field.fields,
39
- t
40
- });
41
- }
42
- if ('blocks' in field) {
43
- field.blocks = field.blocks.map((block)=>{
44
- const sanitized = {
45
- ...block
46
- };
47
- sanitized.fields = createClientFieldConfigs({
48
- fields: sanitized.fields,
49
- t
50
- });
51
- return sanitized;
52
- });
53
- }
54
- if ('tabs' in field) {
55
- // @ts-expect-error
56
- field.tabs = field.tabs.map((tab)=>createClientFieldConfig({
57
- field: tab,
58
- t
59
- }));
60
- }
61
- if ('admin' in field) {
62
- field.admin = {
63
- ...field.admin
64
- };
65
- const serverOnlyFieldAdminProperties = [
66
- 'components',
67
- 'condition',
68
- 'description'
69
- ];
70
- serverOnlyFieldAdminProperties.forEach((key)=>{
71
- if (key in field.admin) {
72
- delete field.admin[key];
73
- }
74
- });
75
- }
76
- return field;
77
- };
78
- export const createClientFieldConfigs = ({ fields, t })=>fields.map((field)=>createClientFieldConfig({
79
- field,
80
- t
81
- }));
1
+ export { };
82
2
 
83
3
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/fields/config/client.ts"],"sourcesContent":["import type { TFunction } from '@payloadcms/translations'\n\nimport type { Field, FieldBase } from '../../fields/config/types.js'\n\nexport type ClientFieldConfig = Omit<Field, 'access' | 'defaultValue' | 'hooks' | 'validate'>\n\nexport type ServerOnlyFieldProperties =\n | 'dbName' // can be a function\n | 'editor' // This is a `richText` only property\n | 'enumName' // can be a function\n | 'filterOptions' // This is a `relationship` and `upload` only property\n | 'label'\n | 'typescriptSchema'\n | keyof Pick<FieldBase, 'access' | 'custom' | 'defaultValue' | 'hooks' | 'validate'>\n\nexport type ServerOnlyFieldAdminProperties = keyof Pick<\n FieldBase['admin'],\n 'components' | 'condition' | 'description'\n>\n\nexport const createClientFieldConfig = ({\n field: incomingField,\n t,\n}: {\n field: Field\n t: TFunction\n}) => {\n const field = { ...incomingField }\n\n const serverOnlyFieldProperties: Partial<ServerOnlyFieldProperties>[] = [\n 'hooks',\n 'access',\n 'validate',\n 'defaultValue',\n 'label',\n 'filterOptions', // This is a `relationship` and `upload` only property\n 'editor', // This is a `richText` only property\n 'custom',\n 'typescriptSchema',\n 'dbName', // can be a function\n 'enumName', // can be a function\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 ('options' in field && Array.isArray(field.options)) {\n field.options = field.options.map((option) => {\n if (typeof option === 'object' && typeof option.label === 'function') {\n return {\n label: option.label({ t }),\n value: option.value,\n }\n }\n\n return option\n })\n }\n\n if ('fields' in field) {\n field.fields = createClientFieldConfigs({ fields: field.fields, t })\n }\n\n if ('blocks' in field) {\n field.blocks = field.blocks.map((block) => {\n const sanitized = { ...block }\n sanitized.fields = createClientFieldConfigs({ fields: sanitized.fields, t })\n return sanitized\n })\n }\n\n if ('tabs' in field) {\n // @ts-expect-error\n field.tabs = field.tabs.map((tab) => createClientFieldConfig({ field: tab, t }))\n }\n\n if ('admin' in field) {\n field.admin = { ...field.admin }\n\n const serverOnlyFieldAdminProperties: Partial<ServerOnlyFieldAdminProperties>[] = [\n 'components',\n 'condition',\n 'description',\n ]\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\nexport const createClientFieldConfigs = ({\n fields,\n t,\n}: {\n fields: Field[]\n t: TFunction\n}): Field[] => fields.map((field) => createClientFieldConfig({ field, t }))\n"],"names":["createClientFieldConfig","field","incomingField","t","serverOnlyFieldProperties","forEach","key","Array","isArray","options","map","option","label","value","fields","createClientFieldConfigs","blocks","block","sanitized","tabs","tab","admin","serverOnlyFieldAdminProperties"],"mappings":"AAoBA,OAAO,MAAMA,0BAA0B,CAAC,EACtCC,OAAOC,aAAa,EACpBC,CAAC,EAIF;IACC,MAAMF,QAAQ;QAAE,GAAGC,aAAa;IAAC;IAEjC,MAAME,4BAAkE;QACtE;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;KAMD;IAEDA,0BAA0BC,OAAO,CAAC,CAACC;QACjC,IAAIA,OAAOL,OAAO;YAChB,OAAOA,KAAK,CAACK,IAAI;QACnB;IACF;IAEA,IAAI,aAAaL,SAASM,MAAMC,OAAO,CAACP,MAAMQ,OAAO,GAAG;QACtDR,MAAMQ,OAAO,GAAGR,MAAMQ,OAAO,CAACC,GAAG,CAAC,CAACC;YACjC,IAAI,OAAOA,WAAW,YAAY,OAAOA,OAAOC,KAAK,KAAK,YAAY;gBACpE,OAAO;oBACLA,OAAOD,OAAOC,KAAK,CAAC;wBAAET;oBAAE;oBACxBU,OAAOF,OAAOE,KAAK;gBACrB;YACF;YAEA,OAAOF;QACT;IACF;IAEA,IAAI,YAAYV,OAAO;QACrBA,MAAMa,MAAM,GAAGC,yBAAyB;YAAED,QAAQb,MAAMa,MAAM;YAAEX;QAAE;IACpE;IAEA,IAAI,YAAYF,OAAO;QACrBA,MAAMe,MAAM,GAAGf,MAAMe,MAAM,CAACN,GAAG,CAAC,CAACO;YAC/B,MAAMC,YAAY;gBAAE,GAAGD,KAAK;YAAC;YAC7BC,UAAUJ,MAAM,GAAGC,yBAAyB;gBAAED,QAAQI,UAAUJ,MAAM;gBAAEX;YAAE;YAC1E,OAAOe;QACT;IACF;IAEA,IAAI,UAAUjB,OAAO;QACnB,mBAAmB;QACnBA,MAAMkB,IAAI,GAAGlB,MAAMkB,IAAI,CAACT,GAAG,CAAC,CAACU,MAAQpB,wBAAwB;gBAAEC,OAAOmB;gBAAKjB;YAAE;IAC/E;IAEA,IAAI,WAAWF,OAAO;QACpBA,MAAMoB,KAAK,GAAG;YAAE,GAAGpB,MAAMoB,KAAK;QAAC;QAE/B,MAAMC,iCAA4E;YAChF;YACA;YACA;SACD;QAEDA,+BAA+BjB,OAAO,CAAC,CAACC;YACtC,IAAIA,OAAOL,MAAMoB,KAAK,EAAE;gBACtB,OAAOpB,MAAMoB,KAAK,CAACf,IAAI;YACzB;QACF;IACF;IAEA,OAAOL;AACT,EAAC;AAED,OAAO,MAAMc,2BAA2B,CAAC,EACvCD,MAAM,EACNX,CAAC,EAIF,GAAcW,OAAOJ,GAAG,CAAC,CAACT,QAAUD,wBAAwB;YAAEC;YAAOE;QAAE,IAAG"}
1
+ {"version":3,"sources":["../../../src/fields/config/client.ts"],"sourcesContent":["import type { ClientField, FieldBase } from '../../fields/config/types.js'\n\n// Should not be used - ClientField should be used instead. This is why we don't export ClientField, we don't want people\n// to accidentally use it instead of ClientField and get confused\n\nexport { ClientField }\n\nexport type ServerOnlyFieldProperties =\n | 'dbName' // can be a function\n | 'editor' // This is a `richText` only property\n | 'enumName' // can be a function\n | 'filterOptions' // This is a `relationship` and `upload` only property\n | 'label'\n | 'typescriptSchema'\n | keyof Pick<FieldBase, 'access' | 'custom' | 'defaultValue' | 'hooks' | 'validate'>\n\nexport type ServerOnlyFieldAdminProperties = keyof Pick<FieldBase['admin'], 'condition'>\n"],"names":[],"mappings":"AAgBA,WAAwF"}
@@ -1 +1 @@
1
- {"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../../../src/fields/config/sanitize.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AACzE,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACpE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAgBvC,KAAK,IAAI,GAAG;IACV,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC,MAAM,EAAE,MAAM,CAAA;IACd,kBAAkB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAChC,MAAM,EAAE,KAAK,EAAE,CAAA;IACf;;;;OAIG;IACH,+BAA+B,CAAC,EAAE,OAAO,CAAA;IACzC;;;OAGG;IACH,4BAA4B,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;IAEhF;;;OAGG;IACH,kBAAkB,EAAE,IAAI,GAAG,MAAM,EAAE,CAAA;CACpC,CAAA;AAED,eAAO,MAAM,cAAc,iJAQxB,IAAI,KAAG,OAAO,CAAC,KAAK,EAAE,CA2LxB,CAAA"}
1
+ {"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../../../src/fields/config/sanitize.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AACzE,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACpE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAgBvC,KAAK,IAAI,GAAG;IACV,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC,MAAM,EAAE,MAAM,CAAA;IACd,kBAAkB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAChC,MAAM,EAAE,KAAK,EAAE,CAAA;IACf;;;;OAIG;IACH,+BAA+B,CAAC,EAAE,OAAO,CAAA;IACzC;;;OAGG;IACH,4BAA4B,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;IAEhF;;;OAGG;IACH,kBAAkB,EAAE,IAAI,GAAG,MAAM,EAAE,CAAA;CACpC,CAAA;AAED,eAAO,MAAM,cAAc,iJAQxB,IAAI,KAAG,OAAO,CAAC,KAAK,EAAE,CA6LxB,CAAA"}
@@ -11,6 +11,9 @@ export const sanitizeFields = async ({ collectionConfig, config, existingFieldNa
11
11
  if (!fields) return [];
12
12
  for(let i = 0; i < fields.length; i++){
13
13
  const field = fields[i];
14
+ if ('_sanitized' in field && field._sanitized === true) {
15
+ continue;
16
+ }
14
17
  if (!field.type) throw new MissingFieldType(field);
15
18
  // assert that field names do not contain forbidden characters
16
19
  if (fieldAffectsData(field) && field.name.includes('.')) {
@@ -45,14 +48,6 @@ export const sanitizeFields = async ({ collectionConfig, config, existingFieldNa
45
48
  field.maxRows = field.maxRows || field.max;
46
49
  }
47
50
  }
48
- if (field.type === 'blocks' && field.blocks) {
49
- field.blocks = field.blocks.map((block)=>{
50
- return {
51
- ...block,
52
- fields: block.fields.concat(baseBlockFields)
53
- };
54
- });
55
- }
56
51
  if (field.type === 'array' && field.fields) {
57
52
  field.fields.push(baseIDField);
58
53
  }
@@ -115,6 +110,24 @@ export const sanitizeFields = async ({ collectionConfig, config, existingFieldNa
115
110
  await sanitizeRichText(config);
116
111
  }
117
112
  }
113
+ if (field.type === 'blocks' && field.blocks) {
114
+ for (const block of field.blocks){
115
+ if (block._sanitized === true) {
116
+ continue;
117
+ }
118
+ block._sanitized = true;
119
+ block.fields = block.fields.concat(baseBlockFields);
120
+ block.labels = !block.labels ? formatLabels(block.slug) : block.labels;
121
+ block.fields = await sanitizeFields({
122
+ config,
123
+ existingFieldNames: new Set(),
124
+ fields: block.fields,
125
+ requireFieldLevelRichTextEditor,
126
+ richTextSanitizationPromises,
127
+ validRelationships
128
+ });
129
+ }
130
+ }
118
131
  if ('fields' in field && field.fields) {
119
132
  field.fields = await sanitizeFields({
120
133
  config,
@@ -142,20 +155,8 @@ export const sanitizeFields = async ({ collectionConfig, config, existingFieldNa
142
155
  field.tabs[j] = tab;
143
156
  }
144
157
  }
145
- if ('blocks' in field && field.blocks) {
146
- for(let j = 0; j < field.blocks.length; j++){
147
- const block = field.blocks[j];
148
- block.labels = !block.labels ? formatLabels(block.slug) : block.labels;
149
- block.fields = await sanitizeFields({
150
- config,
151
- existingFieldNames: new Set(),
152
- fields: block.fields,
153
- requireFieldLevelRichTextEditor,
154
- richTextSanitizationPromises,
155
- validRelationships
156
- });
157
- field.blocks[j] = block;
158
- }
158
+ if ('_sanitized' in field) {
159
+ field._sanitized = true;
159
160
  }
160
161
  fields[i] = field;
161
162
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/fields/config/sanitize.ts"],"sourcesContent":["import { deepMergeSimple } from '@payloadcms/translations/utilities'\n\nimport type { CollectionConfig } from '../../collections/config/types.js'\nimport type { Config, SanitizedConfig } from '../../config/types.js'\nimport type { Field } from './types.js'\n\nimport { MissingEditorProp } from '../../errors/MissingEditorProp.js'\nimport {\n DuplicateFieldName,\n InvalidFieldName,\n InvalidFieldRelationship,\n MissingFieldType,\n} from '../../errors/index.js'\nimport { formatLabels, toWords } from '../../utilities/formatLabels.js'\nimport { baseBlockFields } from '../baseFields/baseBlockFields.js'\nimport { baseIDField } from '../baseFields/baseIDField.js'\nimport { setDefaultBeforeDuplicate } from '../setDefaultBeforeDuplicate.js'\nimport validations from '../validations.js'\nimport { fieldAffectsData, tabHasName } from './types.js'\n\ntype Args = {\n collectionConfig?: CollectionConfig\n config: Config\n existingFieldNames?: Set<string>\n fields: Field[]\n /**\n * If true, a richText field will require an editor property to be set, as the sanitizeFields function will not add it from the payload config if not present.\n *\n * @default false\n */\n requireFieldLevelRichTextEditor?: boolean\n /**\n * If this property is set, RichText fields won't be sanitized immediately. Instead, they will be added to this array as promises\n * so that you can sanitize them together, after the config has been sanitized.\n */\n richTextSanitizationPromises?: Array<(config: SanitizedConfig) => Promise<void>>\n\n /**\n * If not null, will validate that upload and relationship fields do not relate to a collection that is not in this array.\n * This validation will be skipped if validRelationships is null.\n */\n validRelationships: null | string[]\n}\n\nexport const sanitizeFields = async ({\n collectionConfig,\n config,\n existingFieldNames = new Set(),\n fields,\n requireFieldLevelRichTextEditor = false,\n richTextSanitizationPromises,\n validRelationships,\n}: Args): Promise<Field[]> => {\n if (!fields) return []\n\n for (let i = 0; i < fields.length; i++) {\n const field = fields[i]\n\n if (!field.type) throw new MissingFieldType(field)\n\n // assert that field names do not contain forbidden characters\n if (fieldAffectsData(field) && field.name.includes('.')) {\n throw new InvalidFieldName(field, field.name)\n }\n\n // Auto-label\n if (\n 'name' in field &&\n field.name &&\n typeof field.label !== 'object' &&\n typeof field.label !== 'string' &&\n typeof field.label !== 'function' &&\n field.label !== false\n ) {\n field.label = toWords(field.name)\n }\n\n if (\n field.type === 'checkbox' &&\n typeof field.defaultValue === 'undefined' &&\n field.required === true\n ) {\n field.defaultValue = false\n }\n\n if (field.type === 'relationship' || field.type === 'upload') {\n if (validRelationships) {\n const relationships = Array.isArray(field.relationTo)\n ? field.relationTo\n : [field.relationTo]\n relationships.forEach((relationship: string) => {\n if (!validRelationships.includes(relationship)) {\n throw new InvalidFieldRelationship(field, relationship)\n }\n })\n }\n\n if (field.type === 'relationship') {\n if (field.min && !field.minRows) {\n console.warn(\n `(payload): The \"min\" property is deprecated for the Relationship field \"${field.name}\" and will be removed in a future version. Please use \"minRows\" instead.`,\n )\n }\n if (field.max && !field.maxRows) {\n console.warn(\n `(payload): The \"max\" property is deprecated for the Relationship field \"${field.name}\" and will be removed in a future version. Please use \"maxRows\" instead.`,\n )\n }\n field.minRows = field.minRows || field.min\n field.maxRows = field.maxRows || field.max\n }\n }\n\n if (field.type === 'blocks' && field.blocks) {\n field.blocks = field.blocks.map((block) => {\n return {\n ...block,\n fields: block.fields.concat(baseBlockFields),\n }\n })\n }\n\n if (field.type === 'array' && field.fields) {\n field.fields.push(baseIDField)\n }\n\n if ((field.type === 'blocks' || field.type === 'array') && field.label) {\n field.labels = field.labels || formatLabels(field.name)\n }\n\n if (fieldAffectsData(field)) {\n if (existingFieldNames.has(field.name)) {\n throw new DuplicateFieldName(field.name)\n } else if (!['blockName', 'id'].includes(field.name)) {\n existingFieldNames.add(field.name)\n }\n\n if (field.localized && !config.localization) delete field.localized\n\n if (typeof field.validate === 'undefined') {\n const defaultValidate = validations[field.type]\n if (defaultValidate) {\n field.validate = (val, options) => defaultValidate(val, { ...field, ...options })\n } else {\n field.validate = () => true\n }\n }\n\n if (!field.hooks) field.hooks = {}\n if (!field.access) field.access = {}\n\n setDefaultBeforeDuplicate(field)\n }\n\n if (!field.admin) {\n field.admin = {}\n }\n\n // Make sure that the richText field has an editor\n if (field.type === 'richText') {\n const sanitizeRichText = async (_config: SanitizedConfig) => {\n if (!field.editor) {\n if (_config.editor && !requireFieldLevelRichTextEditor) {\n // config.editor should be sanitized at this point\n field.editor = _config.editor\n } else {\n throw new MissingEditorProp(field) // while we allow disabling editor functionality, you should not have any richText fields defined if you do not have an editor\n }\n }\n\n if (typeof field.editor === 'function') {\n field.editor = await field.editor({\n config: _config,\n isRoot: requireFieldLevelRichTextEditor,\n })\n }\n\n if (field.editor.i18n && Object.keys(field.editor.i18n).length >= 0) {\n config.i18n.translations = deepMergeSimple(config.i18n.translations, field.editor.i18n)\n }\n }\n if (richTextSanitizationPromises) {\n richTextSanitizationPromises.push(sanitizeRichText)\n } else {\n await sanitizeRichText(config as unknown as SanitizedConfig)\n }\n }\n\n if ('fields' in field && field.fields) {\n field.fields = await sanitizeFields({\n config,\n existingFieldNames: fieldAffectsData(field) ? new Set() : existingFieldNames,\n fields: field.fields,\n requireFieldLevelRichTextEditor,\n richTextSanitizationPromises,\n validRelationships,\n })\n }\n\n if (field.type === 'tabs') {\n for (let j = 0; j < field.tabs.length; j++) {\n const tab = field.tabs[j]\n if (tabHasName(tab) && typeof tab.label === 'undefined') {\n tab.label = toWords(tab.name)\n }\n\n tab.fields = await sanitizeFields({\n config,\n existingFieldNames: tabHasName(tab) ? new Set() : existingFieldNames,\n fields: tab.fields,\n requireFieldLevelRichTextEditor,\n richTextSanitizationPromises,\n validRelationships,\n })\n field.tabs[j] = tab\n }\n }\n\n if ('blocks' in field && field.blocks) {\n for (let j = 0; j < field.blocks.length; j++) {\n const block = field.blocks[j]\n block.labels = !block.labels ? formatLabels(block.slug) : block.labels\n\n block.fields = await sanitizeFields({\n config,\n existingFieldNames: new Set(),\n fields: block.fields,\n requireFieldLevelRichTextEditor,\n richTextSanitizationPromises,\n validRelationships,\n })\n field.blocks[j] = block\n }\n }\n\n fields[i] = field\n }\n\n return fields\n}\n"],"names":["deepMergeSimple","MissingEditorProp","DuplicateFieldName","InvalidFieldName","InvalidFieldRelationship","MissingFieldType","formatLabels","toWords","baseBlockFields","baseIDField","setDefaultBeforeDuplicate","validations","fieldAffectsData","tabHasName","sanitizeFields","collectionConfig","config","existingFieldNames","Set","fields","requireFieldLevelRichTextEditor","richTextSanitizationPromises","validRelationships","i","length","field","type","name","includes","label","defaultValue","required","relationships","Array","isArray","relationTo","forEach","relationship","min","minRows","console","warn","max","maxRows","blocks","map","block","concat","push","labels","has","add","localized","localization","validate","defaultValidate","val","options","hooks","access","admin","sanitizeRichText","_config","editor","isRoot","i18n","Object","keys","translations","j","tabs","tab","slug"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/fields/config/sanitize.ts"],"sourcesContent":["import { deepMergeSimple } from '@payloadcms/translations/utilities'\n\nimport type { CollectionConfig } from '../../collections/config/types.js'\nimport type { Config, SanitizedConfig } from '../../config/types.js'\nimport type { Field } from './types.js'\n\nimport { MissingEditorProp } from '../../errors/MissingEditorProp.js'\nimport {\n DuplicateFieldName,\n InvalidFieldName,\n InvalidFieldRelationship,\n MissingFieldType,\n} from '../../errors/index.js'\nimport { formatLabels, toWords } from '../../utilities/formatLabels.js'\nimport { baseBlockFields } from '../baseFields/baseBlockFields.js'\nimport { baseIDField } from '../baseFields/baseIDField.js'\nimport { setDefaultBeforeDuplicate } from '../setDefaultBeforeDuplicate.js'\nimport validations from '../validations.js'\nimport { fieldAffectsData, tabHasName } from './types.js'\n\ntype Args = {\n collectionConfig?: CollectionConfig\n config: Config\n existingFieldNames?: Set<string>\n fields: Field[]\n /**\n * If true, a richText field will require an editor property to be set, as the sanitizeFields function will not add it from the payload config if not present.\n *\n * @default false\n */\n requireFieldLevelRichTextEditor?: boolean\n /**\n * If this property is set, RichText fields won't be sanitized immediately. Instead, they will be added to this array as promises\n * so that you can sanitize them together, after the config has been sanitized.\n */\n richTextSanitizationPromises?: Array<(config: SanitizedConfig) => Promise<void>>\n\n /**\n * If not null, will validate that upload and relationship fields do not relate to a collection that is not in this array.\n * This validation will be skipped if validRelationships is null.\n */\n validRelationships: null | string[]\n}\n\nexport const sanitizeFields = async ({\n collectionConfig,\n config,\n existingFieldNames = new Set(),\n fields,\n requireFieldLevelRichTextEditor = false,\n richTextSanitizationPromises,\n validRelationships,\n}: Args): Promise<Field[]> => {\n if (!fields) return []\n\n for (let i = 0; i < fields.length; i++) {\n const field = fields[i]\n\n if ('_sanitized' in field && field._sanitized === true) {\n continue\n }\n\n if (!field.type) throw new MissingFieldType(field)\n\n // assert that field names do not contain forbidden characters\n if (fieldAffectsData(field) && field.name.includes('.')) {\n throw new InvalidFieldName(field, field.name)\n }\n\n // Auto-label\n if (\n 'name' in field &&\n field.name &&\n typeof field.label !== 'object' &&\n typeof field.label !== 'string' &&\n typeof field.label !== 'function' &&\n field.label !== false\n ) {\n field.label = toWords(field.name)\n }\n\n if (\n field.type === 'checkbox' &&\n typeof field.defaultValue === 'undefined' &&\n field.required === true\n ) {\n field.defaultValue = false\n }\n\n if (field.type === 'relationship' || field.type === 'upload') {\n if (validRelationships) {\n const relationships = Array.isArray(field.relationTo)\n ? field.relationTo\n : [field.relationTo]\n relationships.forEach((relationship: string) => {\n if (!validRelationships.includes(relationship)) {\n throw new InvalidFieldRelationship(field, relationship)\n }\n })\n }\n\n if (field.type === 'relationship') {\n if (field.min && !field.minRows) {\n console.warn(\n `(payload): The \"min\" property is deprecated for the Relationship field \"${field.name}\" and will be removed in a future version. Please use \"minRows\" instead.`,\n )\n }\n if (field.max && !field.maxRows) {\n console.warn(\n `(payload): The \"max\" property is deprecated for the Relationship field \"${field.name}\" and will be removed in a future version. Please use \"maxRows\" instead.`,\n )\n }\n field.minRows = field.minRows || field.min\n field.maxRows = field.maxRows || field.max\n }\n }\n\n if (field.type === 'array' && field.fields) {\n field.fields.push(baseIDField)\n }\n\n if ((field.type === 'blocks' || field.type === 'array') && field.label) {\n field.labels = field.labels || formatLabels(field.name)\n }\n\n if (fieldAffectsData(field)) {\n if (existingFieldNames.has(field.name)) {\n throw new DuplicateFieldName(field.name)\n } else if (!['blockName', 'id'].includes(field.name)) {\n existingFieldNames.add(field.name)\n }\n\n if (field.localized && !config.localization) delete field.localized\n\n if (typeof field.validate === 'undefined') {\n const defaultValidate = validations[field.type]\n if (defaultValidate) {\n field.validate = (val, options) => defaultValidate(val, { ...field, ...options })\n } else {\n field.validate = () => true\n }\n }\n\n if (!field.hooks) field.hooks = {}\n if (!field.access) field.access = {}\n\n setDefaultBeforeDuplicate(field)\n }\n\n if (!field.admin) {\n field.admin = {}\n }\n\n // Make sure that the richText field has an editor\n if (field.type === 'richText') {\n const sanitizeRichText = async (_config: SanitizedConfig) => {\n if (!field.editor) {\n if (_config.editor && !requireFieldLevelRichTextEditor) {\n // config.editor should be sanitized at this point\n field.editor = _config.editor\n } else {\n throw new MissingEditorProp(field) // while we allow disabling editor functionality, you should not have any richText fields defined if you do not have an editor\n }\n }\n\n if (typeof field.editor === 'function') {\n field.editor = await field.editor({\n config: _config,\n isRoot: requireFieldLevelRichTextEditor,\n })\n }\n\n if (field.editor.i18n && Object.keys(field.editor.i18n).length >= 0) {\n config.i18n.translations = deepMergeSimple(config.i18n.translations, field.editor.i18n)\n }\n }\n if (richTextSanitizationPromises) {\n richTextSanitizationPromises.push(sanitizeRichText)\n } else {\n await sanitizeRichText(config as unknown as SanitizedConfig)\n }\n }\n\n if (field.type === 'blocks' && field.blocks) {\n for (const block of field.blocks) {\n if (block._sanitized === true) {\n continue\n }\n block._sanitized = true\n block.fields = block.fields.concat(baseBlockFields)\n block.labels = !block.labels ? formatLabels(block.slug) : block.labels\n\n block.fields = await sanitizeFields({\n config,\n existingFieldNames: new Set(),\n fields: block.fields,\n requireFieldLevelRichTextEditor,\n richTextSanitizationPromises,\n validRelationships,\n })\n }\n }\n\n if ('fields' in field && field.fields) {\n field.fields = await sanitizeFields({\n config,\n existingFieldNames: fieldAffectsData(field) ? new Set() : existingFieldNames,\n fields: field.fields,\n requireFieldLevelRichTextEditor,\n richTextSanitizationPromises,\n validRelationships,\n })\n }\n\n if (field.type === 'tabs') {\n for (let j = 0; j < field.tabs.length; j++) {\n const tab = field.tabs[j]\n if (tabHasName(tab) && typeof tab.label === 'undefined') {\n tab.label = toWords(tab.name)\n }\n\n tab.fields = await sanitizeFields({\n config,\n existingFieldNames: tabHasName(tab) ? new Set() : existingFieldNames,\n fields: tab.fields,\n requireFieldLevelRichTextEditor,\n richTextSanitizationPromises,\n validRelationships,\n })\n field.tabs[j] = tab\n }\n }\n\n if ('_sanitized' in field) {\n field._sanitized = true\n }\n\n fields[i] = field\n }\n\n return fields\n}\n"],"names":["deepMergeSimple","MissingEditorProp","DuplicateFieldName","InvalidFieldName","InvalidFieldRelationship","MissingFieldType","formatLabels","toWords","baseBlockFields","baseIDField","setDefaultBeforeDuplicate","validations","fieldAffectsData","tabHasName","sanitizeFields","collectionConfig","config","existingFieldNames","Set","fields","requireFieldLevelRichTextEditor","richTextSanitizationPromises","validRelationships","i","length","field","_sanitized","type","name","includes","label","defaultValue","required","relationships","Array","isArray","relationTo","forEach","relationship","min","minRows","console","warn","max","maxRows","push","labels","has","add","localized","localization","validate","defaultValidate","val","options","hooks","access","admin","sanitizeRichText","_config","editor","isRoot","i18n","Object","keys","translations","blocks","block","concat","slug","j","tabs","tab"],"mappings":"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"}