@payloadcms/next 3.0.0-beta.36 → 3.0.0-beta.38

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 (111) hide show
  1. package/dist/cjs/withPayload.cjs +3 -0
  2. package/dist/cjs/withPayload.cjs.map +1 -1
  3. package/dist/exports/utilities.d.ts +0 -1
  4. package/dist/exports/utilities.d.ts.map +1 -1
  5. package/dist/exports/utilities.js +0 -1
  6. package/dist/exports/utilities.js.map +1 -1
  7. package/dist/layouts/Root/index.d.ts.map +1 -1
  8. package/dist/layouts/Root/index.js.map +1 -1
  9. package/dist/prod/styles.css +1 -1
  10. package/dist/routes/rest/buildFormState.d.ts +0 -2
  11. package/dist/routes/rest/buildFormState.d.ts.map +1 -1
  12. package/dist/routes/rest/buildFormState.js +16 -166
  13. package/dist/routes/rest/buildFormState.js.map +1 -1
  14. package/dist/utilities/getPayloadHMR.d.ts.map +1 -1
  15. package/dist/utilities/getPayloadHMR.js +5 -3
  16. package/dist/utilities/getPayloadHMR.js.map +1 -1
  17. package/dist/utilities/initPage/index.d.ts.map +1 -1
  18. package/dist/utilities/initPage/index.js +10 -0
  19. package/dist/utilities/initPage/index.js.map +1 -1
  20. package/dist/utilities/initPage/shared.d.ts.map +1 -1
  21. package/dist/utilities/initPage/shared.js +0 -1
  22. package/dist/utilities/initPage/shared.js.map +1 -1
  23. package/dist/views/API/LocaleSelector/index.d.ts +9 -0
  24. package/dist/views/API/LocaleSelector/index.d.ts.map +1 -0
  25. package/dist/views/API/LocaleSelector/index.js +16 -0
  26. package/dist/views/API/LocaleSelector/index.js.map +1 -0
  27. package/dist/views/API/index.client.d.ts.map +1 -1
  28. package/dist/views/API/index.client.js +4 -7
  29. package/dist/views/API/index.client.js.map +1 -1
  30. package/dist/views/Account/Settings/LanguageSelector.d.ts +6 -0
  31. package/dist/views/Account/Settings/LanguageSelector.d.ts.map +1 -0
  32. package/dist/views/Account/Settings/LanguageSelector.js +19 -0
  33. package/dist/views/Account/Settings/LanguageSelector.js.map +1 -0
  34. package/dist/views/Account/Settings/index.d.ts +4 -0
  35. package/dist/views/Account/Settings/index.d.ts.map +1 -1
  36. package/dist/views/Account/Settings/index.js +6 -14
  37. package/dist/views/Account/Settings/index.js.map +1 -1
  38. package/dist/views/Account/index.d.ts.map +1 -1
  39. package/dist/views/Account/index.js +15 -3
  40. package/dist/views/Account/index.js.map +1 -1
  41. package/dist/views/Dashboard/Default/index.d.ts +2 -0
  42. package/dist/views/Dashboard/Default/index.d.ts.map +1 -1
  43. package/dist/views/Dashboard/Default/index.js +73 -7
  44. package/dist/views/Dashboard/Default/index.js.map +1 -1
  45. package/dist/views/Dashboard/index.d.ts.map +1 -1
  46. package/dist/views/Dashboard/index.js +20 -0
  47. package/dist/views/Dashboard/index.js.map +1 -1
  48. package/dist/views/Document/getDocumentData.d.ts +2 -3
  49. package/dist/views/Document/getDocumentData.d.ts.map +1 -1
  50. package/dist/views/Document/getDocumentData.js +25 -18
  51. package/dist/views/Document/getDocumentData.js.map +1 -1
  52. package/dist/views/Document/getViewsFromConfig.d.ts.map +1 -1
  53. package/dist/views/Document/getViewsFromConfig.js +172 -171
  54. package/dist/views/Document/getViewsFromConfig.js.map +1 -1
  55. package/dist/views/Document/index.d.ts.map +1 -1
  56. package/dist/views/Document/index.js +3 -2
  57. package/dist/views/Document/index.js.map +1 -1
  58. package/dist/views/Edit/Default/Auth/APIKey.js +1 -1
  59. package/dist/views/Edit/Default/Auth/APIKey.js.map +1 -1
  60. package/dist/views/Edit/Default/Auth/index.d.ts.map +1 -1
  61. package/dist/views/Edit/Default/Auth/index.js +11 -5
  62. package/dist/views/Edit/Default/Auth/index.js.map +1 -1
  63. package/dist/views/Edit/Default/SetDocumentStepNav/index.d.ts.map +1 -1
  64. package/dist/views/Edit/Default/SetDocumentStepNav/index.js +25 -22
  65. package/dist/views/Edit/Default/SetDocumentStepNav/index.js.map +1 -1
  66. package/dist/views/Edit/Default/index.d.ts.map +1 -1
  67. package/dist/views/Edit/Default/index.js +4 -13
  68. package/dist/views/Edit/Default/index.js.map +1 -1
  69. package/dist/views/Edit/index.client.d.ts.map +1 -1
  70. package/dist/views/Edit/index.client.js +2 -4
  71. package/dist/views/Edit/index.client.js.map +1 -1
  72. package/dist/views/List/index.d.ts.map +1 -1
  73. package/dist/views/List/index.js +1 -5
  74. package/dist/views/List/index.js.map +1 -1
  75. package/dist/views/LivePreview/index.client.d.ts.map +1 -1
  76. package/dist/views/LivePreview/index.client.js +2 -6
  77. package/dist/views/LivePreview/index.client.js.map +1 -1
  78. package/dist/views/Login/LoginForm/index.d.ts.map +1 -1
  79. package/dist/views/Login/LoginForm/index.js +0 -5
  80. package/dist/views/Login/LoginForm/index.js.map +1 -1
  81. package/dist/views/Logout/index.d.ts.map +1 -1
  82. package/dist/views/Logout/index.js +6 -10
  83. package/dist/views/Logout/index.js.map +1 -1
  84. package/dist/views/ResetPassword/index.client.js +1 -3
  85. package/dist/views/ResetPassword/index.client.js.map +1 -1
  86. package/dist/views/Root/index.d.ts.map +1 -1
  87. package/dist/views/Root/index.js +8 -4
  88. package/dist/views/Root/index.js.map +1 -1
  89. package/dist/views/Version/SelectLocales/index.d.ts.map +1 -1
  90. package/dist/views/Version/SelectLocales/index.js +1 -0
  91. package/dist/views/Version/SelectLocales/index.js.map +1 -1
  92. package/dist/withPayload.d.ts.map +1 -1
  93. package/dist/withPayload.js +3 -0
  94. package/dist/withPayload.js.map +1 -1
  95. package/package.json +6 -6
  96. package/dist/utilities/buildFieldSchemaMap/index.d.ts +0 -4
  97. package/dist/utilities/buildFieldSchemaMap/index.d.ts.map +0 -1
  98. package/dist/utilities/buildFieldSchemaMap/index.js +0 -28
  99. package/dist/utilities/buildFieldSchemaMap/index.js.map +0 -1
  100. package/dist/utilities/buildFieldSchemaMap/traverseFields.d.ts +0 -14
  101. package/dist/utilities/buildFieldSchemaMap/traverseFields.d.ts.map +0 -1
  102. package/dist/utilities/buildFieldSchemaMap/traverseFields.js +0 -75
  103. package/dist/utilities/buildFieldSchemaMap/traverseFields.js.map +0 -1
  104. package/dist/utilities/buildFieldSchemaMap/types.d.ts +0 -3
  105. package/dist/utilities/buildFieldSchemaMap/types.d.ts.map +0 -1
  106. package/dist/utilities/buildFieldSchemaMap/types.js +0 -3
  107. package/dist/utilities/buildFieldSchemaMap/types.js.map +0 -1
  108. package/dist/views/Dashboard/Default/index.client.d.ts +0 -10
  109. package/dist/views/Dashboard/Default/index.client.d.ts.map +0 -1
  110. package/dist/views/Dashboard/Default/index.client.js +0 -114
  111. package/dist/views/Dashboard/Default/index.client.js.map +0 -1
@@ -1,6 +1,4 @@
1
1
  import type { PayloadRequestWithData } from 'payload/types';
2
- import type { FieldSchemaMap } from '../../utilities/buildFieldSchemaMap/types.js';
3
- export declare const getFieldSchemaMap: (req: PayloadRequestWithData) => FieldSchemaMap;
4
2
  export declare const buildFormState: ({ req }: {
5
3
  req: PayloadRequestWithData;
6
4
  }) => Promise<Response>;
@@ -1 +1 @@
1
- {"version":3,"file":"buildFormState.d.ts","sourceRoot":"","sources":["../../../src/routes/rest/buildFormState.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAA8B,sBAAsB,EAAc,MAAM,eAAe,CAAA;AAMnG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAA;AAalF,eAAO,MAAM,iBAAiB,QAAS,sBAAsB,mBAQ5D,CAAA;AAED,eAAO,MAAM,cAAc,YAAmB;IAAE,GAAG,EAAE,sBAAsB,CAAA;CAAE,sBAiN5E,CAAA"}
1
+ {"version":3,"file":"buildFormState.d.ts","sourceRoot":"","sources":["../../../src/routes/rest/buildFormState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AAQ3D,eAAO,MAAM,cAAc,YAAmB;IAAE,GAAG,EAAE,sBAAsB,CAAA;CAAE,sBAyC5E,CAAA"}
@@ -1,185 +1,35 @@
1
- import { buildStateFromSchema } from '@payloadcms/ui/forms/buildStateFromSchema';
2
- import { reduceFieldsToValues } from '@payloadcms/ui/utilities/reduceFieldsToValues';
1
+ import { buildFormState as buildFormStateFn } from '@payloadcms/ui/utilities/buildFormState';
3
2
  import httpStatus from 'http-status';
4
- import { buildFieldSchemaMap } from '../../utilities/buildFieldSchemaMap/index.js';
5
3
  import { headersWithCors } from '../../utilities/headersWithCors.js';
6
4
  import { routeError } from './routeError.js';
7
- let cached = global._payload_fieldSchemaMap;
8
- if (!cached) {
9
- // eslint-disable-next-line no-multi-assign
10
- cached = global._payload_fieldSchemaMap = null;
11
- }
12
- export const getFieldSchemaMap = (req)=>{
13
- if (cached && process.env.NODE_ENV !== 'development') {
14
- return cached;
15
- }
16
- cached = buildFieldSchemaMap(req);
17
- return cached;
18
- };
19
5
  export const buildFormState = async ({ req })=>{
20
6
  const headers = headersWithCors({
21
7
  headers: new Headers(),
22
8
  req
23
9
  });
24
10
  try {
25
- const reqData = req.data;
26
- const { collectionSlug, formState, globalSlug, locale, operation, schemaPath } = reqData;
27
- const incomingUserSlug = req.user?.collection;
28
- const adminUserSlug = req.payload.config.admin.user;
29
- // If we have a user slug, test it against the functions
30
- if (incomingUserSlug) {
31
- const adminAccessFunction = req.payload.collections[incomingUserSlug].config.access?.admin;
32
- // Run the admin access function from the config if it exists
33
- if (adminAccessFunction) {
34
- const canAccessAdmin = await adminAccessFunction({
35
- req
36
- });
37
- if (!canAccessAdmin) {
38
- return Response.json(null, {
39
- headers,
40
- status: httpStatus.UNAUTHORIZED
41
- });
42
- }
43
- // Match the user collection to the global admin config
44
- } else if (adminUserSlug !== incomingUserSlug) {
45
- return Response.json(null, {
46
- headers,
47
- status: httpStatus.UNAUTHORIZED
48
- });
49
- }
50
- } else {
51
- const hasUsers = await req.payload.find({
52
- collection: adminUserSlug,
53
- depth: 0,
54
- limit: 1,
55
- pagination: false
56
- });
57
- // If there are users, we should not allow access because of /create-first-user
58
- if (hasUsers.docs.length) {
59
- return Response.json(null, {
60
- headers,
61
- status: httpStatus.UNAUTHORIZED
62
- });
63
- }
64
- }
65
- const fieldSchemaMap = getFieldSchemaMap(req);
66
- const id = collectionSlug ? reqData.id : undefined;
67
- const schemaPathSegments = schemaPath.split('.');
68
- let fieldSchema;
69
- if (schemaPathSegments.length === 1) {
70
- if (req.payload.collections[schemaPath]) {
71
- fieldSchema = req.payload.collections[schemaPath].config.fields;
72
- } else {
73
- fieldSchema = req.payload.config.globals.find((global1)=>global1.slug === schemaPath)?.fields;
74
- }
75
- } else if (fieldSchemaMap.has(schemaPath)) {
76
- fieldSchema = fieldSchemaMap.get(schemaPath);
77
- }
78
- if (!fieldSchema) {
79
- return Response.json({
80
- message: 'Could not find field schema for given path'
81
- }, {
82
- headers,
83
- status: httpStatus.BAD_REQUEST
84
- });
85
- }
86
- let docPreferences = reqData.docPreferences;
87
- let data = reqData.data;
88
- const promises = {};
89
- // If the request does not include doc preferences,
90
- // we should fetch them. This is useful for DocumentInfoProvider
91
- // as it reduces the amount of client-side fetches necessary
92
- // when we fetch data for the Edit view
93
- if (!docPreferences) {
94
- let preferencesKey;
95
- if (collectionSlug && id) {
96
- preferencesKey = `collection-${collectionSlug}-${id}`;
97
- }
98
- if (globalSlug) {
99
- preferencesKey = `global-${globalSlug}`;
100
- }
101
- if (preferencesKey) {
102
- const fetchPreferences = async ()=>{
103
- const preferencesResult = await req.payload.find({
104
- collection: 'payload-preferences',
105
- depth: 0,
106
- limit: 1,
107
- where: {
108
- key: {
109
- equals: preferencesKey
110
- }
111
- }
112
- });
113
- if (preferencesResult?.docs?.[0]?.value) docPreferences = preferencesResult.docs[0].value;
114
- };
115
- promises.preferences = fetchPreferences();
116
- }
117
- }
118
- // If there is a form state,
119
- // then we can deduce data from that form state
120
- if (formState) data = reduceFieldsToValues(formState, true);
121
- // If we do not have data at this point,
122
- // we can fetch it. This is useful for DocumentInfoProvider
123
- // to reduce the amount of fetches required
124
- if (!data) {
125
- const fetchData = async ()=>{
126
- let resolvedData;
127
- if (collectionSlug && id) {
128
- resolvedData = await req.payload.findByID({
129
- id,
130
- collection: collectionSlug,
131
- depth: 0,
132
- draft: true,
133
- fallbackLocale: null,
134
- locale,
135
- overrideAccess: false,
136
- user: req.user
137
- });
138
- }
139
- if (globalSlug && schemaPath === globalSlug) {
140
- resolvedData = await req.payload.findGlobal({
141
- slug: globalSlug,
142
- depth: 0,
143
- draft: true,
144
- fallbackLocale: null,
145
- locale,
146
- overrideAccess: false,
147
- user: req.user
148
- });
149
- }
150
- data = resolvedData;
151
- };
152
- promises.data = fetchData();
153
- }
154
- if (Object.keys(promises).length > 0) {
155
- await Promise.all(Object.values(promises));
156
- }
157
- const result = await buildStateFromSchema({
158
- id,
159
- data,
160
- fieldSchema,
161
- operation,
162
- preferences: docPreferences || {
163
- fields: {}
164
- },
11
+ const result = await buildFormStateFn({
165
12
  req
166
13
  });
167
- // Maintain form state of auth / upload fields
168
- if (collectionSlug && formState) {
169
- if (req.payload.collections[collectionSlug]?.config?.upload && formState.file) {
170
- result.file = formState.file;
171
- }
172
- if (req.payload.collections[collectionSlug]?.config?.auth && !req.payload.collections[collectionSlug].config.auth.disableLocalStrategy) {
173
- if (formState.password) result.password = formState.password;
174
- if (formState['confirm-password']) result['confirm-password'] = formState['confirm-password'];
175
- if (formState.email) result.email = formState.email;
176
- }
177
- }
178
14
  return Response.json(result, {
179
15
  headers,
180
16
  status: httpStatus.OK
181
17
  });
182
18
  } catch (err) {
19
+ if (err.message === 'Could not find field schema for given path') {
20
+ return Response.json({
21
+ message: err.message
22
+ }, {
23
+ headers,
24
+ status: httpStatus.BAD_REQUEST
25
+ });
26
+ }
27
+ if (err.message === 'Unauthorized') {
28
+ return Response.json(null, {
29
+ headers,
30
+ status: httpStatus.UNAUTHORIZED
31
+ });
32
+ }
183
33
  req.payload.logger.error({
184
34
  err,
185
35
  msg: `There was an error building form state`
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/routes/rest/buildFormState.ts"],"sourcesContent":["import type { BuildFormStateArgs } from '@payloadcms/ui/forms/buildStateFromSchema'\nimport type { DocumentPreferences, Field, PayloadRequestWithData, TypeWithID } from 'payload/types'\n\nimport { buildStateFromSchema } from '@payloadcms/ui/forms/buildStateFromSchema'\nimport { reduceFieldsToValues } from '@payloadcms/ui/utilities/reduceFieldsToValues'\nimport httpStatus from 'http-status'\n\nimport type { FieldSchemaMap } from '../../utilities/buildFieldSchemaMap/types.js'\n\nimport { buildFieldSchemaMap } from '../../utilities/buildFieldSchemaMap/index.js'\nimport { headersWithCors } from '../../utilities/headersWithCors.js'\nimport { routeError } from './routeError.js'\n\nlet cached = global._payload_fieldSchemaMap\n\nif (!cached) {\n // eslint-disable-next-line no-multi-assign\n cached = global._payload_fieldSchemaMap = null\n}\n\nexport const getFieldSchemaMap = (req: PayloadRequestWithData): FieldSchemaMap => {\n if (cached && process.env.NODE_ENV !== 'development') {\n return cached\n }\n\n cached = buildFieldSchemaMap(req)\n\n return cached\n}\n\nexport const buildFormState = async ({ req }: { req: PayloadRequestWithData }) => {\n const headers = headersWithCors({\n headers: new Headers(),\n req,\n })\n\n try {\n const reqData: BuildFormStateArgs = req.data as BuildFormStateArgs\n const { collectionSlug, formState, globalSlug, locale, operation, schemaPath } = reqData\n\n const incomingUserSlug = req.user?.collection\n const adminUserSlug = req.payload.config.admin.user\n\n // If we have a user slug, test it against the functions\n if (incomingUserSlug) {\n const adminAccessFunction = req.payload.collections[incomingUserSlug].config.access?.admin\n\n // Run the admin access function from the config if it exists\n if (adminAccessFunction) {\n const canAccessAdmin = await adminAccessFunction({ req })\n\n if (!canAccessAdmin) {\n return Response.json(null, {\n headers,\n status: httpStatus.UNAUTHORIZED,\n })\n }\n // Match the user collection to the global admin config\n } else if (adminUserSlug !== incomingUserSlug) {\n return Response.json(null, {\n headers,\n status: httpStatus.UNAUTHORIZED,\n })\n }\n } else {\n const hasUsers = await req.payload.find({\n collection: adminUserSlug,\n depth: 0,\n limit: 1,\n pagination: false,\n })\n // If there are users, we should not allow access because of /create-first-user\n if (hasUsers.docs.length) {\n return Response.json(null, {\n headers,\n status: httpStatus.UNAUTHORIZED,\n })\n }\n }\n\n const fieldSchemaMap = getFieldSchemaMap(req)\n\n const id = collectionSlug ? reqData.id : undefined\n const schemaPathSegments = schemaPath.split('.')\n\n let fieldSchema: Field[]\n\n if (schemaPathSegments.length === 1) {\n if (req.payload.collections[schemaPath]) {\n fieldSchema = req.payload.collections[schemaPath].config.fields\n } else {\n fieldSchema = req.payload.config.globals.find(\n (global) => global.slug === schemaPath,\n )?.fields\n }\n } else if (fieldSchemaMap.has(schemaPath)) {\n fieldSchema = fieldSchemaMap.get(schemaPath)\n }\n\n if (!fieldSchema) {\n return Response.json(\n {\n message: 'Could not find field schema for given path',\n },\n {\n headers,\n status: httpStatus.BAD_REQUEST,\n },\n )\n }\n\n let docPreferences = reqData.docPreferences\n let data = reqData.data\n\n const promises: {\n data?: Promise<void>\n preferences?: Promise<void>\n } = {}\n\n // If the request does not include doc preferences,\n // we should fetch them. This is useful for DocumentInfoProvider\n // as it reduces the amount of client-side fetches necessary\n // when we fetch data for the Edit view\n if (!docPreferences) {\n let preferencesKey\n\n if (collectionSlug && id) {\n preferencesKey = `collection-${collectionSlug}-${id}`\n }\n\n if (globalSlug) {\n preferencesKey = `global-${globalSlug}`\n }\n\n if (preferencesKey) {\n const fetchPreferences = async () => {\n const preferencesResult = (await req.payload.find({\n collection: 'payload-preferences',\n depth: 0,\n limit: 1,\n where: {\n key: {\n equals: preferencesKey,\n },\n },\n })) as unknown as { docs: { value: DocumentPreferences }[] }\n\n if (preferencesResult?.docs?.[0]?.value) docPreferences = preferencesResult.docs[0].value\n }\n\n promises.preferences = fetchPreferences()\n }\n }\n\n // If there is a form state,\n // then we can deduce data from that form state\n if (formState) data = reduceFieldsToValues(formState, true)\n\n // If we do not have data at this point,\n // we can fetch it. This is useful for DocumentInfoProvider\n // to reduce the amount of fetches required\n if (!data) {\n const fetchData = async () => {\n let resolvedData: TypeWithID\n\n if (collectionSlug && id) {\n resolvedData = await req.payload.findByID({\n id,\n collection: collectionSlug,\n depth: 0,\n draft: true,\n fallbackLocale: null,\n locale,\n overrideAccess: false,\n user: req.user,\n })\n }\n\n if (globalSlug && schemaPath === globalSlug) {\n resolvedData = await req.payload.findGlobal({\n slug: globalSlug,\n depth: 0,\n draft: true,\n fallbackLocale: null,\n locale,\n overrideAccess: false,\n user: req.user,\n })\n }\n\n data = resolvedData\n }\n\n promises.data = fetchData()\n }\n\n if (Object.keys(promises).length > 0) {\n await Promise.all(Object.values(promises))\n }\n\n const result = await buildStateFromSchema({\n id,\n data,\n fieldSchema,\n operation,\n preferences: docPreferences || { fields: {} },\n req,\n })\n\n // Maintain form state of auth / upload fields\n if (collectionSlug && formState) {\n if (req.payload.collections[collectionSlug]?.config?.upload && formState.file) {\n result.file = formState.file\n }\n\n if (\n req.payload.collections[collectionSlug]?.config?.auth &&\n !req.payload.collections[collectionSlug].config.auth.disableLocalStrategy\n ) {\n if (formState.password) result.password = formState.password\n if (formState['confirm-password'])\n result['confirm-password'] = formState['confirm-password']\n if (formState.email) result.email = formState.email\n }\n }\n\n return Response.json(result, {\n headers,\n status: httpStatus.OK,\n })\n } catch (err) {\n req.payload.logger.error({ err, msg: `There was an error building form state` })\n\n return routeError({\n config: req.payload.config,\n err,\n req,\n })\n }\n}\n"],"names":["buildStateFromSchema","reduceFieldsToValues","httpStatus","buildFieldSchemaMap","headersWithCors","routeError","cached","global","_payload_fieldSchemaMap","getFieldSchemaMap","req","process","env","NODE_ENV","buildFormState","headers","Headers","reqData","data","collectionSlug","formState","globalSlug","locale","operation","schemaPath","incomingUserSlug","user","collection","adminUserSlug","payload","config","admin","adminAccessFunction","collections","access","canAccessAdmin","Response","json","status","UNAUTHORIZED","hasUsers","find","depth","limit","pagination","docs","length","fieldSchemaMap","id","undefined","schemaPathSegments","split","fieldSchema","fields","globals","slug","has","get","message","BAD_REQUEST","docPreferences","promises","preferencesKey","fetchPreferences","preferencesResult","where","key","equals","value","preferences","fetchData","resolvedData","findByID","draft","fallbackLocale","overrideAccess","findGlobal","Object","keys","Promise","all","values","result","upload","file","auth","disableLocalStrategy","password","email","OK","err","logger","error","msg"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../../src/routes/rest/buildFormState.ts"],"sourcesContent":["import type { PayloadRequestWithData } from 'payload/types'\n\nimport { buildFormState as buildFormStateFn } from '@payloadcms/ui/utilities/buildFormState'\nimport httpStatus from 'http-status'\n\nimport { headersWithCors } from '../../utilities/headersWithCors.js'\nimport { routeError } from './routeError.js'\n\nexport const buildFormState = async ({ req }: { req: PayloadRequestWithData }) => {\n const headers = headersWithCors({\n headers: new Headers(),\n req,\n })\n\n try {\n const result = await buildFormStateFn({ req })\n\n return Response.json(result, {\n headers,\n status: httpStatus.OK,\n })\n } catch (err) {\n if (err.message === 'Could not find field schema for given path') {\n return Response.json(\n {\n message: err.message,\n },\n {\n headers,\n status: httpStatus.BAD_REQUEST,\n },\n )\n }\n\n if (err.message === 'Unauthorized') {\n return Response.json(null, {\n headers,\n status: httpStatus.UNAUTHORIZED,\n })\n }\n\n req.payload.logger.error({ err, msg: `There was an error building form state` })\n\n return routeError({\n config: req.payload.config,\n err,\n req,\n })\n }\n}\n"],"names":["buildFormState","buildFormStateFn","httpStatus","headersWithCors","routeError","req","headers","Headers","result","Response","json","status","OK","err","message","BAD_REQUEST","UNAUTHORIZED","payload","logger","error","msg","config"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAEA,SAASA,kBAAkBC,gBAAgB,QAAQ,0CAAyC;AAC5F,OAAOC,gBAAgB,cAAa;AAEpC,SAASC,eAAe,QAAQ,qCAAoC;AACpE,SAASC,UAAU,QAAQ,kBAAiB;AAE5C,OAAO,MAAMJ,iBAAiB,OAAO,EAAEK,GAAG,EAAmC;IAC3E,MAAMC,UAAUH,gBAAgB;QAC9BG,SAAS,IAAIC;QACbF;IACF;IAEA,IAAI;QACF,MAAMG,SAAS,MAAMP,iBAAiB;YAAEI;QAAI;QAE5C,OAAOI,SAASC,IAAI,CAACF,QAAQ;YAC3BF;YACAK,QAAQT,WAAWU,EAAE;QACvB;IACF,EAAE,OAAOC,KAAK;QACZ,IAAIA,IAAIC,OAAO,KAAK,8CAA8C;YAChE,OAAOL,SAASC,IAAI,CAClB;gBACEI,SAASD,IAAIC,OAAO;YACtB,GACA;gBACER;gBACAK,QAAQT,WAAWa,WAAW;YAChC;QAEJ;QAEA,IAAIF,IAAIC,OAAO,KAAK,gBAAgB;YAClC,OAAOL,SAASC,IAAI,CAAC,MAAM;gBACzBJ;gBACAK,QAAQT,WAAWc,YAAY;YACjC;QACF;QAEAX,IAAIY,OAAO,CAACC,MAAM,CAACC,KAAK,CAAC;YAAEN;YAAKO,KAAK,CAAC,sCAAsC,CAAC;QAAC;QAE9E,OAAOhB,WAAW;YAChBiB,QAAQhB,IAAIY,OAAO,CAACI,MAAM;YAC1BR;YACAR;QACF;IACF;AACF,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"getPayloadHMR.d.ts","sourceRoot":"","sources":["../../src/utilities/getPayloadHMR.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,OAAO,EAAE,MAAM,SAAS,CAAA;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAgBlE,eAAO,MAAM,MAAM,WAAkB,eAAe,uBAAqB,QAAQ,IAAI,CAuBpF,CAAA;AAED,eAAO,MAAM,aAAa,YAAmB,WAAW,KAAG,QAAQ,OAAO,CA4DzE,CAAA"}
1
+ {"version":3,"file":"getPayloadHMR.d.ts","sourceRoot":"","sources":["../../src/utilities/getPayloadHMR.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,OAAO,EAAE,MAAM,SAAS,CAAA;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAgBlE,eAAO,MAAM,MAAM,WAAkB,eAAe,uBAAqB,QAAQ,IAAI,CAyBpF,CAAA;AAED,eAAO,MAAM,aAAa,YAAmB,WAAW,KAAG,QAAQ,OAAO,CA4DzE,CAAA"}
@@ -26,9 +26,11 @@ export const reload = async (config, payload)=>{
26
26
  };
27
27
  // TODO: support HMR for other props in the future (see payload/src/index init()) hat may change on Payload singleton
28
28
  await payload.db.init();
29
- await payload.db.connect({
30
- hotReload: true
31
- });
29
+ if (payload.db.connect) {
30
+ await payload.db.connect({
31
+ hotReload: true
32
+ });
33
+ }
32
34
  };
33
35
  export const getPayloadHMR = async (options)=>{
34
36
  if (!options?.config) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utilities/getPayloadHMR.ts"],"sourcesContent":["import type { GeneratedTypes, Payload } from 'payload'\nimport type { InitOptions, SanitizedConfig } from 'payload/config'\n\nimport { BasePayload } from 'payload'\nimport WebSocket from 'ws'\n\nlet cached: {\n payload: Payload | null\n promise: Promise<Payload> | null\n reload: Promise<boolean> | boolean\n} = global._payload\n\nif (!cached) {\n // eslint-disable-next-line no-multi-assign\n cached = global._payload = { payload: null, promise: null, reload: false }\n}\n\nexport const reload = async (config: SanitizedConfig, payload: Payload): Promise<void> => {\n if (typeof payload.db.destroy === 'function') {\n await payload.db.destroy()\n }\n\n payload.config = config\n\n payload.collections = config.collections.reduce((collections, collection) => {\n collections[collection.slug] = {\n config: collection,\n customIDType: payload.collections[collection.slug]?.customIDType,\n }\n return collections\n }, {})\n\n payload.globals = {\n config: config.globals,\n }\n\n // TODO: support HMR for other props in the future (see payload/src/index init()) hat may change on Payload singleton\n\n await payload.db.init()\n await payload.db.connect({ hotReload: true })\n}\n\nexport const getPayloadHMR = async (options: InitOptions): Promise<Payload> => {\n if (!options?.config) {\n throw new Error('Error: the payload config is required for getPayload to work.')\n }\n\n if (cached.payload) {\n const config = await options.config // TODO: check if we can move this inside the cached.reload === true condition\n\n if (cached.reload === true) {\n let resolve\n\n cached.reload = new Promise((res) => (resolve = res))\n\n await reload(config, cached.payload)\n\n resolve()\n }\n\n if (cached.reload instanceof Promise) {\n await cached.reload\n }\n\n return cached.payload\n }\n\n if (!cached.promise) {\n cached.promise = new BasePayload<GeneratedTypes>().init(options)\n }\n\n try {\n cached.payload = await cached.promise\n\n if (\n process.env.NODE_ENV !== 'production' &&\n process.env.NODE_ENV !== 'test' &&\n process.env.DISABLE_PAYLOAD_HMR !== 'true'\n ) {\n try {\n const port = process.env.PORT || '3000'\n const ws = new WebSocket(`ws://localhost:${port}/_next/webpack-hmr`)\n\n ws.onmessage = (event) => {\n if (typeof event.data === 'string') {\n const data = JSON.parse(event.data)\n\n if ('action' in data && data.action === 'serverComponentChanges') {\n cached.reload = true\n }\n }\n }\n } catch (_) {\n // swallow e\n }\n }\n } catch (e) {\n cached.promise = null\n throw e\n }\n\n return cached.payload\n}\n"],"names":["BasePayload","WebSocket","cached","global","_payload","payload","promise","reload","config","db","destroy","collections","reduce","collection","slug","customIDType","globals","init","connect","hotReload","getPayloadHMR","options","Error","resolve","Promise","res","process","env","NODE_ENV","DISABLE_PAYLOAD_HMR","port","PORT","ws","onmessage","event","data","JSON","parse","action","_","e"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAGA,SAASA,WAAW,QAAQ,UAAS;AACrC,OAAOC,eAAe,KAAI;AAE1B,IAAIC,SAIAC,OAAOC,QAAQ;AAEnB,IAAI,CAACF,QAAQ;IACX,2CAA2C;IAC3CA,SAASC,OAAOC,QAAQ,GAAG;QAAEC,SAAS;QAAMC,SAAS;QAAMC,QAAQ;IAAM;AAC3E;AAEA,OAAO,MAAMA,SAAS,OAAOC,QAAyBH;IACpD,IAAI,OAAOA,QAAQI,EAAE,CAACC,OAAO,KAAK,YAAY;QAC5C,MAAML,QAAQI,EAAE,CAACC,OAAO;IAC1B;IAEAL,QAAQG,MAAM,GAAGA;IAEjBH,QAAQM,WAAW,GAAGH,OAAOG,WAAW,CAACC,MAAM,CAAC,CAACD,aAAaE;QAC5DF,WAAW,CAACE,WAAWC,IAAI,CAAC,GAAG;YAC7BN,QAAQK;YACRE,cAAcV,QAAQM,WAAW,CAACE,WAAWC,IAAI,CAAC,EAAEC;QACtD;QACA,OAAOJ;IACT,GAAG,CAAC;IAEJN,QAAQW,OAAO,GAAG;QAChBR,QAAQA,OAAOQ,OAAO;IACxB;IAEA,qHAAqH;IAErH,MAAMX,QAAQI,EAAE,CAACQ,IAAI;IACrB,MAAMZ,QAAQI,EAAE,CAACS,OAAO,CAAC;QAAEC,WAAW;IAAK;AAC7C,EAAC;AAED,OAAO,MAAMC,gBAAgB,OAAOC;IAClC,IAAI,CAACA,SAASb,QAAQ;QACpB,MAAM,IAAIc,MAAM;IAClB;IAEA,IAAIpB,OAAOG,OAAO,EAAE;QAClB,MAAMG,SAAS,MAAMa,QAAQb,MAAM,CAAC,8EAA8E;;QAElH,IAAIN,OAAOK,MAAM,KAAK,MAAM;YAC1B,IAAIgB;YAEJrB,OAAOK,MAAM,GAAG,IAAIiB,QAAQ,CAACC,MAASF,UAAUE;YAEhD,MAAMlB,OAAOC,QAAQN,OAAOG,OAAO;YAEnCkB;QACF;QAEA,IAAIrB,OAAOK,MAAM,YAAYiB,SAAS;YACpC,MAAMtB,OAAOK,MAAM;QACrB;QAEA,OAAOL,OAAOG,OAAO;IACvB;IAEA,IAAI,CAACH,OAAOI,OAAO,EAAE;QACnBJ,OAAOI,OAAO,GAAG,IAAIN,cAA8BiB,IAAI,CAACI;IAC1D;IAEA,IAAI;QACFnB,OAAOG,OAAO,GAAG,MAAMH,OAAOI,OAAO;QAErC,IACEoB,QAAQC,GAAG,CAACC,QAAQ,KAAK,gBACzBF,QAAQC,GAAG,CAACC,QAAQ,KAAK,UACzBF,QAAQC,GAAG,CAACE,mBAAmB,KAAK,QACpC;YACA,IAAI;gBACF,MAAMC,OAAOJ,QAAQC,GAAG,CAACI,IAAI,IAAI;gBACjC,MAAMC,KAAK,IAAI/B,UAAU,CAAC,eAAe,EAAE6B,KAAK,kBAAkB,CAAC;gBAEnEE,GAAGC,SAAS,GAAG,CAACC;oBACd,IAAI,OAAOA,MAAMC,IAAI,KAAK,UAAU;wBAClC,MAAMA,OAAOC,KAAKC,KAAK,CAACH,MAAMC,IAAI;wBAElC,IAAI,YAAYA,QAAQA,KAAKG,MAAM,KAAK,0BAA0B;4BAChEpC,OAAOK,MAAM,GAAG;wBAClB;oBACF;gBACF;YACF,EAAE,OAAOgC,GAAG;YACV,YAAY;YACd;QACF;IACF,EAAE,OAAOC,GAAG;QACVtC,OAAOI,OAAO,GAAG;QACjB,MAAMkC;IACR;IAEA,OAAOtC,OAAOG,OAAO;AACvB,EAAC"}
1
+ {"version":3,"sources":["../../src/utilities/getPayloadHMR.ts"],"sourcesContent":["import type { GeneratedTypes, Payload } from 'payload'\nimport type { InitOptions, SanitizedConfig } from 'payload/config'\n\nimport { BasePayload } from 'payload'\nimport WebSocket from 'ws'\n\nlet cached: {\n payload: Payload | null\n promise: Promise<Payload> | null\n reload: Promise<boolean> | boolean\n} = global._payload\n\nif (!cached) {\n // eslint-disable-next-line no-multi-assign\n cached = global._payload = { payload: null, promise: null, reload: false }\n}\n\nexport const reload = async (config: SanitizedConfig, payload: Payload): Promise<void> => {\n if (typeof payload.db.destroy === 'function') {\n await payload.db.destroy()\n }\n\n payload.config = config\n\n payload.collections = config.collections.reduce((collections, collection) => {\n collections[collection.slug] = {\n config: collection,\n customIDType: payload.collections[collection.slug]?.customIDType,\n }\n return collections\n }, {})\n\n payload.globals = {\n config: config.globals,\n }\n\n // TODO: support HMR for other props in the future (see payload/src/index init()) hat may change on Payload singleton\n\n await payload.db.init()\n if (payload.db.connect) {\n await payload.db.connect({ hotReload: true })\n }\n}\n\nexport const getPayloadHMR = async (options: InitOptions): Promise<Payload> => {\n if (!options?.config) {\n throw new Error('Error: the payload config is required for getPayload to work.')\n }\n\n if (cached.payload) {\n const config = await options.config // TODO: check if we can move this inside the cached.reload === true condition\n\n if (cached.reload === true) {\n let resolve\n\n cached.reload = new Promise((res) => (resolve = res))\n\n await reload(config, cached.payload)\n\n resolve()\n }\n\n if (cached.reload instanceof Promise) {\n await cached.reload\n }\n\n return cached.payload\n }\n\n if (!cached.promise) {\n cached.promise = new BasePayload<GeneratedTypes>().init(options)\n }\n\n try {\n cached.payload = await cached.promise\n\n if (\n process.env.NODE_ENV !== 'production' &&\n process.env.NODE_ENV !== 'test' &&\n process.env.DISABLE_PAYLOAD_HMR !== 'true'\n ) {\n try {\n const port = process.env.PORT || '3000'\n const ws = new WebSocket(`ws://localhost:${port}/_next/webpack-hmr`)\n\n ws.onmessage = (event) => {\n if (typeof event.data === 'string') {\n const data = JSON.parse(event.data)\n\n if ('action' in data && data.action === 'serverComponentChanges') {\n cached.reload = true\n }\n }\n }\n } catch (_) {\n // swallow e\n }\n }\n } catch (e) {\n cached.promise = null\n throw e\n }\n\n return cached.payload\n}\n"],"names":["BasePayload","WebSocket","cached","global","_payload","payload","promise","reload","config","db","destroy","collections","reduce","collection","slug","customIDType","globals","init","connect","hotReload","getPayloadHMR","options","Error","resolve","Promise","res","process","env","NODE_ENV","DISABLE_PAYLOAD_HMR","port","PORT","ws","onmessage","event","data","JSON","parse","action","_","e"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAGA,SAASA,WAAW,QAAQ,UAAS;AACrC,OAAOC,eAAe,KAAI;AAE1B,IAAIC,SAIAC,OAAOC,QAAQ;AAEnB,IAAI,CAACF,QAAQ;IACX,2CAA2C;IAC3CA,SAASC,OAAOC,QAAQ,GAAG;QAAEC,SAAS;QAAMC,SAAS;QAAMC,QAAQ;IAAM;AAC3E;AAEA,OAAO,MAAMA,SAAS,OAAOC,QAAyBH;IACpD,IAAI,OAAOA,QAAQI,EAAE,CAACC,OAAO,KAAK,YAAY;QAC5C,MAAML,QAAQI,EAAE,CAACC,OAAO;IAC1B;IAEAL,QAAQG,MAAM,GAAGA;IAEjBH,QAAQM,WAAW,GAAGH,OAAOG,WAAW,CAACC,MAAM,CAAC,CAACD,aAAaE;QAC5DF,WAAW,CAACE,WAAWC,IAAI,CAAC,GAAG;YAC7BN,QAAQK;YACRE,cAAcV,QAAQM,WAAW,CAACE,WAAWC,IAAI,CAAC,EAAEC;QACtD;QACA,OAAOJ;IACT,GAAG,CAAC;IAEJN,QAAQW,OAAO,GAAG;QAChBR,QAAQA,OAAOQ,OAAO;IACxB;IAEA,qHAAqH;IAErH,MAAMX,QAAQI,EAAE,CAACQ,IAAI;IACrB,IAAIZ,QAAQI,EAAE,CAACS,OAAO,EAAE;QACtB,MAAMb,QAAQI,EAAE,CAACS,OAAO,CAAC;YAAEC,WAAW;QAAK;IAC7C;AACF,EAAC;AAED,OAAO,MAAMC,gBAAgB,OAAOC;IAClC,IAAI,CAACA,SAASb,QAAQ;QACpB,MAAM,IAAIc,MAAM;IAClB;IAEA,IAAIpB,OAAOG,OAAO,EAAE;QAClB,MAAMG,SAAS,MAAMa,QAAQb,MAAM,CAAC,8EAA8E;;QAElH,IAAIN,OAAOK,MAAM,KAAK,MAAM;YAC1B,IAAIgB;YAEJrB,OAAOK,MAAM,GAAG,IAAIiB,QAAQ,CAACC,MAASF,UAAUE;YAEhD,MAAMlB,OAAOC,QAAQN,OAAOG,OAAO;YAEnCkB;QACF;QAEA,IAAIrB,OAAOK,MAAM,YAAYiB,SAAS;YACpC,MAAMtB,OAAOK,MAAM;QACrB;QAEA,OAAOL,OAAOG,OAAO;IACvB;IAEA,IAAI,CAACH,OAAOI,OAAO,EAAE;QACnBJ,OAAOI,OAAO,GAAG,IAAIN,cAA8BiB,IAAI,CAACI;IAC1D;IAEA,IAAI;QACFnB,OAAOG,OAAO,GAAG,MAAMH,OAAOI,OAAO;QAErC,IACEoB,QAAQC,GAAG,CAACC,QAAQ,KAAK,gBACzBF,QAAQC,GAAG,CAACC,QAAQ,KAAK,UACzBF,QAAQC,GAAG,CAACE,mBAAmB,KAAK,QACpC;YACA,IAAI;gBACF,MAAMC,OAAOJ,QAAQC,GAAG,CAACI,IAAI,IAAI;gBACjC,MAAMC,KAAK,IAAI/B,UAAU,CAAC,eAAe,EAAE6B,KAAK,kBAAkB,CAAC;gBAEnEE,GAAGC,SAAS,GAAG,CAACC;oBACd,IAAI,OAAOA,MAAMC,IAAI,KAAK,UAAU;wBAClC,MAAMA,OAAOC,KAAKC,KAAK,CAACH,MAAMC,IAAI;wBAElC,IAAI,YAAYA,QAAQA,KAAKG,MAAM,KAAK,0BAA0B;4BAChEpC,OAAOK,MAAM,GAAG;wBAClB;oBACF;gBACF;YACF,EAAE,OAAOgC,GAAG;YACV,YAAY;YACd;QACF;IACF,EAAE,OAAOC,GAAG;QACVtC,OAAOI,OAAO,GAAG;QACjB,MAAMkC;IACR;IAEA,OAAOtC,OAAOG,OAAO;AACvB,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utilities/initPage/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAA2C,MAAM,eAAe,CAAA;AAS5F,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAOtC,eAAO,MAAM,QAAQ,iFAKlB,IAAI,KAAG,QAAQ,cAAc,CAoF/B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utilities/initPage/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAA2C,MAAM,eAAe,CAAA;AAS5F,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAOtC,eAAO,MAAM,QAAQ,iFAKlB,IAAI,KAAG,QAAQ,cAAc,CAmG/B,CAAA"}
@@ -32,6 +32,15 @@ export const initPage = async ({ config: configPromise, redirectUnauthenticatedU
32
32
  context: 'client',
33
33
  language
34
34
  });
35
+ const languageOptions = Object.entries(payload.config.i18n.supportedLanguages || {}).reduce((acc, [language, languageConfig])=>{
36
+ if (Object.keys(payload.config.i18n.supportedLanguages).includes(language)) {
37
+ acc.push({
38
+ label: languageConfig.translations.general.thisLanguage,
39
+ value: language
40
+ });
41
+ }
42
+ return acc;
43
+ }, []);
35
44
  const req = await createLocalReq({
36
45
  fallbackLocale: null,
37
46
  locale: locale.code,
@@ -79,6 +88,7 @@ export const initPage = async ({ config: configPromise, redirectUnauthenticatedU
79
88
  cookies,
80
89
  docID,
81
90
  globalConfig,
91
+ languageOptions,
82
92
  locale,
83
93
  permissions,
84
94
  req,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/utilities/initPage/index.ts"],"sourcesContent":["import type { I18nClient } from '@payloadcms/translations'\nimport type { InitPageResult, PayloadRequestWithData, VisibleEntities } from 'payload/types'\n\nimport { initI18n } from '@payloadcms/translations'\nimport { findLocaleFromCode } from '@payloadcms/ui/utilities/findLocaleFromCode'\nimport { headers as getHeaders } from 'next/headers.js'\nimport { parseCookies } from 'payload/auth'\nimport { createLocalReq, isEntityHidden } from 'payload/utilities'\nimport qs from 'qs'\n\nimport type { Args } from './types.js'\n\nimport { getPayloadHMR } from '../getPayloadHMR.js'\nimport { getRequestLanguage } from '../getRequestLanguage.js'\nimport { handleAdminPage } from './handleAdminPage.js'\nimport { handleAuthRedirect } from './handleAuthRedirect.js'\n\nexport const initPage = async ({\n config: configPromise,\n redirectUnauthenticatedUser = false,\n route,\n searchParams,\n}: Args): Promise<InitPageResult> => {\n const headers = getHeaders()\n const localeParam = searchParams?.locale as string\n const payload = await getPayloadHMR({ config: configPromise })\n\n const {\n collections,\n globals,\n i18n: i18nConfig,\n localization,\n routes: { admin: adminRoute },\n } = payload.config\n\n const queryString = `${qs.stringify(searchParams ?? {}, { addQueryPrefix: true })}`\n const defaultLocale =\n localization && localization.defaultLocale ? localization.defaultLocale : 'en'\n const localeCode = localeParam || defaultLocale\n const locale = localization && findLocaleFromCode(localization, localeCode)\n const cookies = parseCookies(headers)\n const language = getRequestLanguage({ config: payload.config, cookies, headers })\n\n const i18n: I18nClient = await initI18n({\n config: i18nConfig,\n context: 'client',\n language,\n })\n\n const req = await createLocalReq(\n {\n fallbackLocale: null,\n locale: locale.code,\n req: {\n host: headers.get('host'),\n i18n,\n query: qs.parse(queryString, {\n depth: 10,\n ignoreQueryPrefix: true,\n }),\n url: `${payload.config.serverURL}${route}${searchParams ? queryString : ''}`,\n } as PayloadRequestWithData,\n },\n payload,\n )\n\n const { permissions, user } = await payload.auth({ headers, req })\n\n req.user = user\n\n const visibleEntities: VisibleEntities = {\n collections: collections\n .map(({ slug, admin: { hidden } }) => (!isEntityHidden({ hidden, user }) ? slug : null))\n .filter(Boolean),\n globals: globals\n .map(({ slug, admin: { hidden } }) => (!isEntityHidden({ hidden, user }) ? slug : null))\n .filter(Boolean),\n }\n\n if (redirectUnauthenticatedUser && !user) {\n handleAuthRedirect({\n config: payload.config,\n redirectUnauthenticatedUser,\n route,\n searchParams,\n })\n }\n\n const { collectionConfig, docID, globalConfig } = handleAdminPage({\n adminRoute,\n config: payload.config,\n permissions,\n route,\n })\n\n return {\n collectionConfig,\n cookies,\n docID,\n globalConfig,\n locale,\n permissions,\n req,\n translations: i18n.translations,\n visibleEntities,\n }\n}\n"],"names":["initI18n","findLocaleFromCode","headers","getHeaders","parseCookies","createLocalReq","isEntityHidden","qs","getPayloadHMR","getRequestLanguage","handleAdminPage","handleAuthRedirect","initPage","config","configPromise","redirectUnauthenticatedUser","route","searchParams","localeParam","locale","payload","collections","globals","i18n","i18nConfig","localization","routes","admin","adminRoute","queryString","stringify","addQueryPrefix","defaultLocale","localeCode","cookies","language","context","req","fallbackLocale","code","host","get","query","parse","depth","ignoreQueryPrefix","url","serverURL","permissions","user","auth","visibleEntities","map","slug","hidden","filter","Boolean","collectionConfig","docID","globalConfig","translations"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../../src/utilities/initPage/index.ts"],"sourcesContent":["import type { I18nClient } from '@payloadcms/translations'\nimport type { InitPageResult, PayloadRequestWithData, VisibleEntities } from 'payload/types'\n\nimport { initI18n } from '@payloadcms/translations'\nimport { findLocaleFromCode } from '@payloadcms/ui/utilities/findLocaleFromCode'\nimport { headers as getHeaders } from 'next/headers.js'\nimport { parseCookies } from 'payload/auth'\nimport { createLocalReq, isEntityHidden } from 'payload/utilities'\nimport qs from 'qs'\n\nimport type { Args } from './types.js'\n\nimport { getPayloadHMR } from '../getPayloadHMR.js'\nimport { getRequestLanguage } from '../getRequestLanguage.js'\nimport { handleAdminPage } from './handleAdminPage.js'\nimport { handleAuthRedirect } from './handleAuthRedirect.js'\n\nexport const initPage = async ({\n config: configPromise,\n redirectUnauthenticatedUser = false,\n route,\n searchParams,\n}: Args): Promise<InitPageResult> => {\n const headers = getHeaders()\n const localeParam = searchParams?.locale as string\n const payload = await getPayloadHMR({ config: configPromise })\n\n const {\n collections,\n globals,\n i18n: i18nConfig,\n localization,\n routes: { admin: adminRoute },\n } = payload.config\n\n const queryString = `${qs.stringify(searchParams ?? {}, { addQueryPrefix: true })}`\n const defaultLocale =\n localization && localization.defaultLocale ? localization.defaultLocale : 'en'\n const localeCode = localeParam || defaultLocale\n const locale = localization && findLocaleFromCode(localization, localeCode)\n const cookies = parseCookies(headers)\n const language = getRequestLanguage({ config: payload.config, cookies, headers })\n\n const i18n: I18nClient = await initI18n({\n config: i18nConfig,\n context: 'client',\n language,\n })\n\n const languageOptions = Object.entries(payload.config.i18n.supportedLanguages || {}).reduce(\n (acc, [language, languageConfig]) => {\n if (Object.keys(payload.config.i18n.supportedLanguages).includes(language)) {\n acc.push({\n label: languageConfig.translations.general.thisLanguage,\n value: language,\n })\n }\n\n return acc\n },\n [],\n )\n\n const req = await createLocalReq(\n {\n fallbackLocale: null,\n locale: locale.code,\n req: {\n host: headers.get('host'),\n i18n,\n query: qs.parse(queryString, {\n depth: 10,\n ignoreQueryPrefix: true,\n }),\n url: `${payload.config.serverURL}${route}${searchParams ? queryString : ''}`,\n } as PayloadRequestWithData,\n },\n payload,\n )\n\n const { permissions, user } = await payload.auth({ headers, req })\n\n req.user = user\n\n const visibleEntities: VisibleEntities = {\n collections: collections\n .map(({ slug, admin: { hidden } }) => (!isEntityHidden({ hidden, user }) ? slug : null))\n .filter(Boolean),\n globals: globals\n .map(({ slug, admin: { hidden } }) => (!isEntityHidden({ hidden, user }) ? slug : null))\n .filter(Boolean),\n }\n\n if (redirectUnauthenticatedUser && !user) {\n handleAuthRedirect({\n config: payload.config,\n redirectUnauthenticatedUser,\n route,\n searchParams,\n })\n }\n\n const { collectionConfig, docID, globalConfig } = handleAdminPage({\n adminRoute,\n config: payload.config,\n permissions,\n route,\n })\n\n return {\n collectionConfig,\n cookies,\n docID,\n globalConfig,\n languageOptions,\n locale,\n permissions,\n req,\n translations: i18n.translations,\n visibleEntities,\n }\n}\n"],"names":["initI18n","findLocaleFromCode","headers","getHeaders","parseCookies","createLocalReq","isEntityHidden","qs","getPayloadHMR","getRequestLanguage","handleAdminPage","handleAuthRedirect","initPage","config","configPromise","redirectUnauthenticatedUser","route","searchParams","localeParam","locale","payload","collections","globals","i18n","i18nConfig","localization","routes","admin","adminRoute","queryString","stringify","addQueryPrefix","defaultLocale","localeCode","cookies","language","context","languageOptions","Object","entries","supportedLanguages","reduce","acc","languageConfig","keys","includes","push","label","translations","general","thisLanguage","value","req","fallbackLocale","code","host","get","query","parse","depth","ignoreQueryPrefix","url","serverURL","permissions","user","auth","visibleEntities","map","slug","hidden","filter","Boolean","collectionConfig","docID","globalConfig"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/utilities/initPage/shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAapD,eAAO,MAAM,YAAY,UAAW,MAAM,cAAc,MAAM,YAE7D,CAAA;AAED,eAAO,MAAM,gBAAgB,WAAY,eAAe,SAAS,MAAM,cAAc,MAAM,YAQ1F,CAAA"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/utilities/initPage/shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAYpD,eAAO,MAAM,YAAY,UAAW,MAAM,cAAc,MAAM,YAE7D,CAAA;AAED,eAAO,MAAM,gBAAgB,WAAY,eAAe,SAAS,MAAM,cAAc,MAAM,YAQ1F,CAAA"}
@@ -1,5 +1,4 @@
1
1
  const authRouteKeys = [
2
- 'account',
3
2
  'createFirstUser',
4
3
  'forgot',
5
4
  'login',
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/utilities/initPage/shared.ts"],"sourcesContent":["import type { SanitizedConfig } from 'payload/types'\n\nconst authRouteKeys: (keyof SanitizedConfig['admin']['routes'])[] = [\n 'account',\n 'createFirstUser',\n 'forgot',\n 'login',\n 'logout',\n 'forgot',\n 'inactivity',\n 'unauthorized',\n]\n\nexport const isAdminRoute = (route: string, adminRoute: string) => {\n return route.startsWith(adminRoute)\n}\n\nexport const isAdminAuthRoute = (config: SanitizedConfig, route: string, adminRoute: string) => {\n const authRoutes = config.admin?.routes\n ? Object.entries(config.admin.routes)\n .filter(([key]) => authRouteKeys.includes(key as keyof SanitizedConfig['admin']['routes']))\n .map(([_, value]) => value)\n : []\n\n return authRoutes.some((r) => route.replace(adminRoute, '').startsWith(r))\n}\n"],"names":["authRouteKeys","isAdminRoute","route","adminRoute","startsWith","isAdminAuthRoute","config","authRoutes","admin","routes","Object","entries","filter","key","includes","map","_","value","some","r","replace"],"rangeMappings":";;;;;;;;;;;;;;;;","mappings":"AAEA,MAAMA,gBAA8D;IAClE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;CACD;AAED,OAAO,MAAMC,eAAe,CAACC,OAAeC;IAC1C,OAAOD,MAAME,UAAU,CAACD;AAC1B,EAAC;AAED,OAAO,MAAME,mBAAmB,CAACC,QAAyBJ,OAAeC;IACvE,MAAMI,aAAaD,OAAOE,KAAK,EAAEC,SAC7BC,OAAOC,OAAO,CAACL,OAAOE,KAAK,CAACC,MAAM,EAC/BG,MAAM,CAAC,CAAC,CAACC,IAAI,GAAKb,cAAcc,QAAQ,CAACD,MACzCE,GAAG,CAAC,CAAC,CAACC,GAAGC,MAAM,GAAKA,SACvB,EAAE;IAEN,OAAOV,WAAWW,IAAI,CAAC,CAACC,IAAMjB,MAAMkB,OAAO,CAACjB,YAAY,IAAIC,UAAU,CAACe;AACzE,EAAC"}
1
+ {"version":3,"sources":["../../../src/utilities/initPage/shared.ts"],"sourcesContent":["import type { SanitizedConfig } from 'payload/types'\n\nconst authRouteKeys: (keyof SanitizedConfig['admin']['routes'])[] = [\n 'createFirstUser',\n 'forgot',\n 'login',\n 'logout',\n 'forgot',\n 'inactivity',\n 'unauthorized',\n]\n\nexport const isAdminRoute = (route: string, adminRoute: string) => {\n return route.startsWith(adminRoute)\n}\n\nexport const isAdminAuthRoute = (config: SanitizedConfig, route: string, adminRoute: string) => {\n const authRoutes = config.admin?.routes\n ? Object.entries(config.admin.routes)\n .filter(([key]) => authRouteKeys.includes(key as keyof SanitizedConfig['admin']['routes']))\n .map(([_, value]) => value)\n : []\n\n return authRoutes.some((r) => route.replace(adminRoute, '').startsWith(r))\n}\n"],"names":["authRouteKeys","isAdminRoute","route","adminRoute","startsWith","isAdminAuthRoute","config","authRoutes","admin","routes","Object","entries","filter","key","includes","map","_","value","some","r","replace"],"rangeMappings":";;;;;;;;;;;;;;;","mappings":"AAEA,MAAMA,gBAA8D;IAClE;IACA;IACA;IACA;IACA;IACA;IACA;CACD;AAED,OAAO,MAAMC,eAAe,CAACC,OAAeC;IAC1C,OAAOD,MAAME,UAAU,CAACD;AAC1B,EAAC;AAED,OAAO,MAAME,mBAAmB,CAACC,QAAyBJ,OAAeC;IACvE,MAAMI,aAAaD,OAAOE,KAAK,EAAEC,SAC7BC,OAAOC,OAAO,CAACL,OAAOE,KAAK,CAACC,MAAM,EAC/BG,MAAM,CAAC,CAAC,CAACC,IAAI,GAAKb,cAAcc,QAAQ,CAACD,MACzCE,GAAG,CAAC,CAAC,CAACC,GAAGC,MAAM,GAAKA,SACvB,EAAE;IAEN,OAAOV,WAAWW,IAAI,CAAC,CAACC,IAAMjB,MAAMkB,OAAO,CAACjB,YAAY,IAAIC,UAAU,CAACe;AACzE,EAAC"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ export declare const LocaleSelector: React.FC<{
3
+ localeOptions: {
4
+ label: Record<string, string> | string;
5
+ value: string;
6
+ }[];
7
+ onChange: (value: string) => void;
8
+ }>;
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/API/LocaleSelector/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC;IACpC,aAAa,EAAE;QACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAA;QACtC,KAAK,EAAE,MAAM,CAAA;KACd,EAAE,CAAA;IACH,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CAClC,CAYA,CAAA"}
@@ -0,0 +1,16 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Select } from '@payloadcms/ui/fields/Select';
3
+ import { useTranslation } from '@payloadcms/ui/providers/Translation';
4
+ import React from 'react';
5
+ export const LocaleSelector = ({ localeOptions, onChange })=>{
6
+ const { t } = useTranslation();
7
+ return /*#__PURE__*/ _jsx(Select, {
8
+ label: t('general:locale'),
9
+ name: "locale",
10
+ onChange: (value)=>onChange(value),
11
+ options: localeOptions,
12
+ path: "locale"
13
+ });
14
+ };
15
+
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/views/API/LocaleSelector/index.tsx"],"sourcesContent":["import { Select } from '@payloadcms/ui/fields/Select'\nimport { useTranslation } from '@payloadcms/ui/providers/Translation'\nimport React from 'react'\n\nexport const LocaleSelector: React.FC<{\n localeOptions: {\n label: Record<string, string> | string\n value: string\n }[]\n onChange: (value: string) => void\n}> = ({ localeOptions, onChange }) => {\n const { t } = useTranslation()\n\n return (\n <Select\n label={t('general:locale')}\n name=\"locale\"\n onChange={(value) => onChange(value)}\n options={localeOptions}\n path=\"locale\"\n />\n )\n}\n"],"names":["Select","useTranslation","React","LocaleSelector","localeOptions","onChange","t","label","name","value","options","path"],"rangeMappings":";;;;;;;;;;;;;","mappings":";AAAA,SAASA,MAAM,QAAQ,+BAA8B;AACrD,SAASC,cAAc,QAAQ,uCAAsC;AACrE,OAAOC,WAAW,QAAO;AAEzB,OAAO,MAAMC,iBAMR,CAAC,EAAEC,aAAa,EAAEC,QAAQ,EAAE;IAC/B,MAAM,EAAEC,CAAC,EAAE,GAAGL;IAEd,qBACE,KAACD;QACCO,OAAOD,EAAE;QACTE,MAAK;QACLH,UAAU,CAACI,QAAUJ,SAASI;QAC9BC,SAASN;QACTO,MAAK;;AAGX,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/views/API/index.client.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAK9B,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EA2LjC,CAAA"}
1
+ {"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/views/API/index.client.tsx"],"names":[],"mappings":"AAgBA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAM9B,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAmLjC,CAAA"}
@@ -4,7 +4,6 @@ import { CopyToClipboard } from '@payloadcms/ui/elements/CopyToClipboard';
4
4
  import { Gutter } from '@payloadcms/ui/elements/Gutter';
5
5
  import { Checkbox } from '@payloadcms/ui/fields/Checkbox';
6
6
  import { NumberField as NumberInput } from '@payloadcms/ui/fields/Number';
7
- import { Select } from '@payloadcms/ui/fields/Select';
8
7
  import { Form } from '@payloadcms/ui/forms/Form';
9
8
  import { MinimizeMaximize } from '@payloadcms/ui/icons/MinimizeMaximize';
10
9
  import { SetViewActions } from '@payloadcms/ui/providers/Actions';
@@ -18,6 +17,7 @@ import qs from 'qs';
18
17
  import * as React from 'react';
19
18
  import { toast } from 'react-toastify';
20
19
  import { SetDocumentStepNav } from '../Edit/Default/SetDocumentStepNav/index.js';
20
+ import { LocaleSelector } from './LocaleSelector/index.js';
21
21
  import { RenderJSON } from './RenderJSON/index.js';
22
22
  const baseClass = 'query-inspector';
23
23
  export const APIViewClient = ()=>{
@@ -173,12 +173,9 @@ export const APIViewClient = ()=>{
173
173
  })
174
174
  ]
175
175
  }),
176
- localeOptions && /*#__PURE__*/ _jsx(Select, {
177
- label: t('general:locale'),
178
- name: "locale",
179
- onChange: (value)=>setLocale(value),
180
- options: localeOptions,
181
- path: "locale"
176
+ localeOptions && /*#__PURE__*/ _jsx(LocaleSelector, {
177
+ localeOptions: localeOptions,
178
+ onChange: setLocale
182
179
  }),
183
180
  /*#__PURE__*/ _jsx(NumberInput, {
184
181
  label: t('general:depth'),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/views/API/index.client.tsx"],"sourcesContent":["'use client'\n\nimport { CopyToClipboard } from '@payloadcms/ui/elements/CopyToClipboard'\nimport { Gutter } from '@payloadcms/ui/elements/Gutter'\nimport { Checkbox } from '@payloadcms/ui/fields/Checkbox'\nimport { NumberField as NumberInput } from '@payloadcms/ui/fields/Number'\nimport { Select } from '@payloadcms/ui/fields/Select'\nimport { Form } from '@payloadcms/ui/forms/Form'\nimport { MinimizeMaximize } from '@payloadcms/ui/icons/MinimizeMaximize'\nimport { SetViewActions } from '@payloadcms/ui/providers/Actions'\nimport { useComponentMap } from '@payloadcms/ui/providers/ComponentMap'\nimport { useConfig } from '@payloadcms/ui/providers/Config'\nimport { useDocumentInfo } from '@payloadcms/ui/providers/DocumentInfo'\nimport { useLocale } from '@payloadcms/ui/providers/Locale'\nimport { useTranslation } from '@payloadcms/ui/providers/Translation'\nimport { useSearchParams } from 'next/navigation.js'\nimport qs from 'qs'\nimport * as React from 'react'\nimport { toast } from 'react-toastify'\n\nimport { SetDocumentStepNav } from '../Edit/Default/SetDocumentStepNav/index.js'\nimport { RenderJSON } from './RenderJSON/index.js'\nimport './index.scss'\n\nconst baseClass = 'query-inspector'\n\nexport const APIViewClient: React.FC = () => {\n const { id, collectionSlug, globalSlug, initialData } = useDocumentInfo()\n\n const searchParams = useSearchParams()\n const { i18n, t } = useTranslation()\n const { code } = useLocale()\n\n const { getComponentMap } = useComponentMap()\n\n const componentMap = getComponentMap({ collectionSlug, globalSlug })\n\n const {\n collections,\n globals,\n localization,\n routes: { api: apiRoute },\n serverURL,\n } = useConfig()\n\n const collectionConfig =\n collectionSlug && collections.find((collection) => collection.slug === collectionSlug)\n\n const globalConfig = globalSlug && globals.find((global) => global.slug === globalSlug)\n\n const localeOptions =\n localization &&\n localization.locales.map((locale) => ({ label: locale.label, value: locale.code }))\n\n let draftsEnabled: boolean = false\n let docEndpoint: string = ''\n\n if (collectionConfig) {\n draftsEnabled = Boolean(collectionConfig.versions?.drafts)\n docEndpoint = `/${collectionSlug}/${id}`\n }\n\n if (globalConfig) {\n draftsEnabled = Boolean(globalConfig.versions?.drafts)\n docEndpoint = `/globals/${globalSlug}`\n }\n\n const [data, setData] = React.useState<any>(initialData)\n const [draft, setDraft] = React.useState<boolean>(searchParams.get('draft') === 'true')\n const [locale, setLocale] = React.useState<string>(searchParams?.get('locale') || code)\n const [depth, setDepth] = React.useState<string>(searchParams.get('depth') || '1')\n const [authenticated, setAuthenticated] = React.useState<boolean>(true)\n const [fullscreen, setFullscreen] = React.useState<boolean>(false)\n\n const fetchURL = `${serverURL}${apiRoute}${docEndpoint}${qs.stringify(\n {\n depth,\n draft,\n locale,\n },\n { addQueryPrefix: true },\n )}`\n\n React.useEffect(() => {\n const fetchData = async () => {\n try {\n const res = await fetch(fetchURL, {\n credentials: authenticated ? 'include' : 'omit',\n headers: {\n 'Accept-Language': i18n.language,\n },\n method: 'GET',\n })\n\n try {\n const json = await res.json()\n setData(json)\n } catch (error) {\n toast.error('Error parsing response')\n console.error(error)\n }\n } catch (error) {\n toast.error('Error making request')\n console.error(error)\n }\n }\n\n void fetchData()\n }, [i18n.language, fetchURL, authenticated])\n\n return (\n <Gutter\n className={[baseClass, fullscreen && `${baseClass}--fullscreen`].filter(Boolean).join(' ')}\n right={false}\n >\n <SetDocumentStepNav\n collectionSlug={collectionSlug}\n globalLabel={globalConfig?.label}\n globalSlug={globalSlug}\n id={id}\n pluralLabel={collectionConfig ? collectionConfig?.labels?.plural : undefined}\n useAsTitle={collectionConfig ? collectionConfig?.admin?.useAsTitle : undefined}\n view=\"API\"\n />\n <SetViewActions actions={componentMap?.actionsMap?.Edit?.API} />\n <div className={`${baseClass}__configuration`}>\n <div className={`${baseClass}__api-url`}>\n <span className={`${baseClass}__label`}>\n API URL <CopyToClipboard value={fetchURL} />\n </span>\n <a href={fetchURL} rel=\"noopener noreferrer\" target=\"_blank\">\n {fetchURL}\n </a>\n </div>\n <Form\n initialState={{\n authenticated: {\n initialValue: authenticated || false,\n valid: true,\n value: authenticated || false,\n },\n depth: {\n initialValue: Number(depth || 0),\n valid: true,\n value: Number(depth || 0),\n },\n draft: {\n initialValue: draft || false,\n valid: true,\n value: draft || false,\n },\n locale: {\n initialValue: locale,\n valid: true,\n value: locale,\n },\n }}\n >\n <div className={`${baseClass}__form-fields`}>\n <div className={`${baseClass}__filter-query-checkboxes`}>\n {draftsEnabled && (\n <Checkbox\n label={t('version:draft')}\n name=\"draft\"\n onChange={() => setDraft(!draft)}\n path=\"draft\"\n />\n )}\n <Checkbox\n label={t('authentication:authenticated')}\n name=\"authenticated\"\n onChange={() => setAuthenticated(!authenticated)}\n path=\"authenticated\"\n />\n </div>\n {localeOptions && (\n <Select\n label={t('general:locale')}\n name=\"locale\"\n onChange={(value) => setLocale(value)}\n options={localeOptions}\n path=\"locale\"\n />\n )}\n <NumberInput\n label={t('general:depth')}\n max={10}\n min={0}\n name=\"depth\"\n onChange={(value) => setDepth(value?.toString())}\n path=\"depth\"\n step={1}\n />\n </div>\n </Form>\n </div>\n <div className={`${baseClass}__results-wrapper`}>\n <div className={`${baseClass}__toggle-fullscreen-button-container`}>\n <button\n aria-label=\"toggle fullscreen\"\n className={`${baseClass}__toggle-fullscreen-button`}\n onClick={() => setFullscreen(!fullscreen)}\n type=\"button\"\n >\n <MinimizeMaximize isMinimized={!fullscreen} />\n </button>\n </div>\n <div className={`${baseClass}__results`}>\n <RenderJSON object={data} />\n </div>\n </div>\n </Gutter>\n )\n}\n"],"names":["CopyToClipboard","Gutter","Checkbox","NumberField","NumberInput","Select","Form","MinimizeMaximize","SetViewActions","useComponentMap","useConfig","useDocumentInfo","useLocale","useTranslation","useSearchParams","qs","React","toast","SetDocumentStepNav","RenderJSON","baseClass","APIViewClient","id","collectionSlug","globalSlug","initialData","searchParams","i18n","t","code","getComponentMap","componentMap","collections","globals","localization","routes","api","apiRoute","serverURL","collectionConfig","find","collection","slug","globalConfig","global","localeOptions","locales","map","locale","label","value","draftsEnabled","docEndpoint","Boolean","versions","drafts","data","setData","useState","draft","setDraft","get","setLocale","depth","setDepth","authenticated","setAuthenticated","fullscreen","setFullscreen","fetchURL","stringify","addQueryPrefix","useEffect","fetchData","res","fetch","credentials","headers","language","method","json","error","console","className","filter","join","right","globalLabel","pluralLabel","labels","plural","undefined","useAsTitle","admin","view","actions","actionsMap","Edit","API","div","span","a","href","rel","target","initialState","initialValue","valid","Number","name","onChange","path","options","max","min","toString","step","button","aria-label","onClick","type","isMinimized","object"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../../src/views/API/index.client.tsx"],"sourcesContent":["'use client'\n\nimport { CopyToClipboard } from '@payloadcms/ui/elements/CopyToClipboard'\nimport { Gutter } from '@payloadcms/ui/elements/Gutter'\nimport { Checkbox } from '@payloadcms/ui/fields/Checkbox'\nimport { NumberField as NumberInput } from '@payloadcms/ui/fields/Number'\nimport { Form } from '@payloadcms/ui/forms/Form'\nimport { MinimizeMaximize } from '@payloadcms/ui/icons/MinimizeMaximize'\nimport { SetViewActions } from '@payloadcms/ui/providers/Actions'\nimport { useComponentMap } from '@payloadcms/ui/providers/ComponentMap'\nimport { useConfig } from '@payloadcms/ui/providers/Config'\nimport { useDocumentInfo } from '@payloadcms/ui/providers/DocumentInfo'\nimport { useLocale } from '@payloadcms/ui/providers/Locale'\nimport { useTranslation } from '@payloadcms/ui/providers/Translation'\nimport { useSearchParams } from 'next/navigation.js'\nimport qs from 'qs'\nimport * as React from 'react'\nimport { toast } from 'react-toastify'\n\nimport { SetDocumentStepNav } from '../Edit/Default/SetDocumentStepNav/index.js'\nimport { LocaleSelector } from './LocaleSelector/index.js'\nimport { RenderJSON } from './RenderJSON/index.js'\nimport './index.scss'\n\nconst baseClass = 'query-inspector'\n\nexport const APIViewClient: React.FC = () => {\n const { id, collectionSlug, globalSlug, initialData } = useDocumentInfo()\n\n const searchParams = useSearchParams()\n const { i18n, t } = useTranslation()\n const { code } = useLocale()\n\n const { getComponentMap } = useComponentMap()\n\n const componentMap = getComponentMap({ collectionSlug, globalSlug })\n\n const {\n collections,\n globals,\n localization,\n routes: { api: apiRoute },\n serverURL,\n } = useConfig()\n\n const collectionConfig =\n collectionSlug && collections.find((collection) => collection.slug === collectionSlug)\n\n const globalConfig = globalSlug && globals.find((global) => global.slug === globalSlug)\n\n const localeOptions =\n localization &&\n localization.locales.map((locale) => ({ label: locale.label, value: locale.code }))\n\n let draftsEnabled: boolean = false\n let docEndpoint: string = ''\n\n if (collectionConfig) {\n draftsEnabled = Boolean(collectionConfig.versions?.drafts)\n docEndpoint = `/${collectionSlug}/${id}`\n }\n\n if (globalConfig) {\n draftsEnabled = Boolean(globalConfig.versions?.drafts)\n docEndpoint = `/globals/${globalSlug}`\n }\n\n const [data, setData] = React.useState<any>(initialData)\n const [draft, setDraft] = React.useState<boolean>(searchParams.get('draft') === 'true')\n const [locale, setLocale] = React.useState<string>(searchParams?.get('locale') || code)\n const [depth, setDepth] = React.useState<string>(searchParams.get('depth') || '1')\n const [authenticated, setAuthenticated] = React.useState<boolean>(true)\n const [fullscreen, setFullscreen] = React.useState<boolean>(false)\n\n const fetchURL = `${serverURL}${apiRoute}${docEndpoint}${qs.stringify(\n {\n depth,\n draft,\n locale,\n },\n { addQueryPrefix: true },\n )}`\n\n React.useEffect(() => {\n const fetchData = async () => {\n try {\n const res = await fetch(fetchURL, {\n credentials: authenticated ? 'include' : 'omit',\n headers: {\n 'Accept-Language': i18n.language,\n },\n method: 'GET',\n })\n\n try {\n const json = await res.json()\n setData(json)\n } catch (error) {\n toast.error('Error parsing response')\n console.error(error)\n }\n } catch (error) {\n toast.error('Error making request')\n console.error(error)\n }\n }\n\n void fetchData()\n }, [i18n.language, fetchURL, authenticated])\n\n return (\n <Gutter\n className={[baseClass, fullscreen && `${baseClass}--fullscreen`].filter(Boolean).join(' ')}\n right={false}\n >\n <SetDocumentStepNav\n collectionSlug={collectionSlug}\n globalLabel={globalConfig?.label}\n globalSlug={globalSlug}\n id={id}\n pluralLabel={collectionConfig ? collectionConfig?.labels?.plural : undefined}\n useAsTitle={collectionConfig ? collectionConfig?.admin?.useAsTitle : undefined}\n view=\"API\"\n />\n <SetViewActions actions={componentMap?.actionsMap?.Edit?.API} />\n <div className={`${baseClass}__configuration`}>\n <div className={`${baseClass}__api-url`}>\n <span className={`${baseClass}__label`}>\n API URL <CopyToClipboard value={fetchURL} />\n </span>\n <a href={fetchURL} rel=\"noopener noreferrer\" target=\"_blank\">\n {fetchURL}\n </a>\n </div>\n <Form\n initialState={{\n authenticated: {\n initialValue: authenticated || false,\n valid: true,\n value: authenticated || false,\n },\n depth: {\n initialValue: Number(depth || 0),\n valid: true,\n value: Number(depth || 0),\n },\n draft: {\n initialValue: draft || false,\n valid: true,\n value: draft || false,\n },\n locale: {\n initialValue: locale,\n valid: true,\n value: locale,\n },\n }}\n >\n <div className={`${baseClass}__form-fields`}>\n <div className={`${baseClass}__filter-query-checkboxes`}>\n {draftsEnabled && (\n <Checkbox\n label={t('version:draft')}\n name=\"draft\"\n onChange={() => setDraft(!draft)}\n path=\"draft\"\n />\n )}\n <Checkbox\n label={t('authentication:authenticated')}\n name=\"authenticated\"\n onChange={() => setAuthenticated(!authenticated)}\n path=\"authenticated\"\n />\n </div>\n {localeOptions && <LocaleSelector localeOptions={localeOptions} onChange={setLocale} />}\n <NumberInput\n label={t('general:depth')}\n max={10}\n min={0}\n name=\"depth\"\n onChange={(value) => setDepth(value?.toString())}\n path=\"depth\"\n step={1}\n />\n </div>\n </Form>\n </div>\n <div className={`${baseClass}__results-wrapper`}>\n <div className={`${baseClass}__toggle-fullscreen-button-container`}>\n <button\n aria-label=\"toggle fullscreen\"\n className={`${baseClass}__toggle-fullscreen-button`}\n onClick={() => setFullscreen(!fullscreen)}\n type=\"button\"\n >\n <MinimizeMaximize isMinimized={!fullscreen} />\n </button>\n </div>\n <div className={`${baseClass}__results`}>\n <RenderJSON object={data} />\n </div>\n </div>\n </Gutter>\n )\n}\n"],"names":["CopyToClipboard","Gutter","Checkbox","NumberField","NumberInput","Form","MinimizeMaximize","SetViewActions","useComponentMap","useConfig","useDocumentInfo","useLocale","useTranslation","useSearchParams","qs","React","toast","SetDocumentStepNav","LocaleSelector","RenderJSON","baseClass","APIViewClient","id","collectionSlug","globalSlug","initialData","searchParams","i18n","t","code","getComponentMap","componentMap","collections","globals","localization","routes","api","apiRoute","serverURL","collectionConfig","find","collection","slug","globalConfig","global","localeOptions","locales","map","locale","label","value","draftsEnabled","docEndpoint","Boolean","versions","drafts","data","setData","useState","draft","setDraft","get","setLocale","depth","setDepth","authenticated","setAuthenticated","fullscreen","setFullscreen","fetchURL","stringify","addQueryPrefix","useEffect","fetchData","res","fetch","credentials","headers","language","method","json","error","console","className","filter","join","right","globalLabel","pluralLabel","labels","plural","undefined","useAsTitle","admin","view","actions","actionsMap","Edit","API","div","span","a","href","rel","target","initialState","initialValue","valid","Number","name","onChange","path","max","min","toString","step","button","aria-label","onClick","type","isMinimized","object"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { LanguageOptions } from 'payload/types';
2
+ import React from 'react';
3
+ export declare const LanguageSelector: React.FC<{
4
+ languageOptions: LanguageOptions;
5
+ }>;
6
+ //# sourceMappingURL=LanguageSelector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LanguageSelector.d.ts","sourceRoot":"","sources":["../../../../src/views/Account/Settings/LanguageSelector.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAIpD,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC;IACtC,eAAe,EAAE,eAAe,CAAA;CACjC,CAeA,CAAA"}
@@ -0,0 +1,19 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { ReactSelect } from '@payloadcms/ui/elements/ReactSelect';
4
+ import { useTranslation } from '@payloadcms/ui/providers/Translation';
5
+ import React from 'react';
6
+ export const LanguageSelector = (props)=>{
7
+ const { languageOptions } = props;
8
+ const { i18n, switchLanguage } = useTranslation();
9
+ return /*#__PURE__*/ _jsx(ReactSelect, {
10
+ inputId: "language-select",
11
+ onChange: async ({ value })=>{
12
+ await switchLanguage(value);
13
+ },
14
+ options: languageOptions,
15
+ value: languageOptions.find((language)=>language.value === i18n.language)
16
+ });
17
+ };
18
+
19
+ //# sourceMappingURL=LanguageSelector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/views/Account/Settings/LanguageSelector.tsx"],"sourcesContent":["'use client'\nimport type { LanguageOptions } from 'payload/types'\n\nimport { ReactSelect } from '@payloadcms/ui/elements/ReactSelect'\nimport { useTranslation } from '@payloadcms/ui/providers/Translation'\nimport React from 'react'\n\nexport const LanguageSelector: React.FC<{\n languageOptions: LanguageOptions\n}> = (props) => {\n const { languageOptions } = props\n\n const { i18n, switchLanguage } = useTranslation()\n\n return (\n <ReactSelect\n inputId=\"language-select\"\n onChange={async ({ value }) => {\n await switchLanguage(value)\n }}\n options={languageOptions}\n value={languageOptions.find((language) => language.value === i18n.language)}\n />\n )\n}\n"],"names":["ReactSelect","useTranslation","React","LanguageSelector","props","languageOptions","i18n","switchLanguage","inputId","onChange","value","options","find","language"],"rangeMappings":";;;;;;;;;;;;;;;;","mappings":"AAAA;;AAGA,SAASA,WAAW,QAAQ,sCAAqC;AACjE,SAASC,cAAc,QAAQ,uCAAsC;AACrE,OAAOC,WAAW,QAAO;AAEzB,OAAO,MAAMC,mBAER,CAACC;IACJ,MAAM,EAAEC,eAAe,EAAE,GAAGD;IAE5B,MAAM,EAAEE,IAAI,EAAEC,cAAc,EAAE,GAAGN;IAEjC,qBACE,KAACD;QACCQ,SAAQ;QACRC,UAAU,OAAO,EAAEC,KAAK,EAAE;YACxB,MAAMH,eAAeG;QACvB;QACAC,SAASN;QACTK,OAAOL,gBAAgBO,IAAI,CAAC,CAACC,WAAaA,SAASH,KAAK,KAAKJ,KAAKO,QAAQ;;AAGhF,EAAC"}
@@ -1,6 +1,10 @@
1
+ import type { I18n } from '@payloadcms/translations';
2
+ import type { LanguageOptions } from 'payload/types';
1
3
  import React from 'react';
2
4
  import './index.scss';
3
5
  export declare const Settings: React.FC<{
4
6
  className?: string;
7
+ i18n: I18n;
8
+ languageOptions: LanguageOptions;
5
9
  }>;
6
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Account/Settings/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAsBA,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Account/Settings/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAGpD,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,IAAI,CAAA;IACV,eAAe,EAAE,eAAe,CAAA;CACjC,CAaA,CAAA"}