payload-intl 1.1.2 → 1.2.0

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 (208) hide show
  1. package/README.md +62 -221
  2. package/dist/components/MessageController.d.ts +4 -6
  3. package/dist/components/MessageController.d.ts.map +1 -1
  4. package/dist/components/MessageController.js +25 -41
  5. package/dist/components/MessageController.js.map +1 -1
  6. package/dist/components/MessageFormContext.d.ts +29 -0
  7. package/dist/components/MessageFormContext.d.ts.map +1 -0
  8. package/dist/components/MessageFormContext.js +30 -0
  9. package/dist/components/MessageFormContext.js.map +1 -0
  10. package/dist/components/MessagesForm.d.ts +2 -2
  11. package/dist/components/MessagesForm.d.ts.map +1 -1
  12. package/dist/components/MessagesForm.js +126 -112
  13. package/dist/components/MessagesForm.js.map +1 -1
  14. package/dist/components/MessagesForm.module.css +41 -0
  15. package/dist/{exports/link.d.ts → components/MessagesLink.d.ts} +3 -3
  16. package/dist/components/MessagesLink.d.ts.map +1 -0
  17. package/dist/components/MessagesLink.js +19 -0
  18. package/dist/components/MessagesLink.js.map +1 -0
  19. package/dist/components/MessagesView.d.ts +10 -0
  20. package/dist/components/MessagesView.d.ts.map +1 -0
  21. package/dist/components/MessagesView.js +48 -0
  22. package/dist/components/MessagesView.js.map +1 -0
  23. package/dist/components/actions/JsonImport.d.ts.map +1 -1
  24. package/dist/components/actions/JsonImport.js +68 -61
  25. package/dist/components/actions/JsonImport.js.map +1 -1
  26. package/dist/components/actions/JsonImport.module.css +14 -0
  27. package/dist/components/actions/Move.d.ts.map +1 -1
  28. package/dist/components/actions/Move.js +41 -0
  29. package/dist/components/actions/Move.js.map +1 -0
  30. package/dist/components/actions/Move.module.css +8 -0
  31. package/dist/components/inputs/InputWrapper.d.ts +1 -1
  32. package/dist/components/inputs/InputWrapper.d.ts.map +1 -1
  33. package/dist/components/inputs/InputWrapper.js +31 -29
  34. package/dist/components/inputs/InputWrapper.js.map +1 -1
  35. package/dist/components/inputs/InputWrapper.module.css +34 -0
  36. package/dist/components/inputs/LexicalInput.d.ts +3 -3
  37. package/dist/components/inputs/LexicalInput.js +86 -0
  38. package/dist/components/inputs/LexicalInput.js.map +1 -0
  39. package/dist/components/inputs/MessageInput.d.ts +2 -2
  40. package/dist/components/inputs/MessageInput.d.ts.map +1 -1
  41. package/dist/components/inputs/MessageInput.js +110 -37
  42. package/dist/components/inputs/MessageInput.js.map +1 -1
  43. package/dist/components/inputs/MessageInput.module.css +25 -0
  44. package/dist/components/inputs/variables/VariableChip.d.ts +8 -2
  45. package/dist/components/inputs/variables/VariableChip.d.ts.map +1 -1
  46. package/dist/components/inputs/variables/VariableChip.js +86 -64
  47. package/dist/components/inputs/variables/VariableChip.js.map +1 -1
  48. package/dist/components/inputs/variables/VariableChip.module.css +66 -0
  49. package/dist/components/inputs/variables/VariableIcon.d.ts +1 -1
  50. package/dist/components/inputs/variables/VariableIcon.d.ts.map +1 -1
  51. package/dist/components/inputs/variables/VariableIcon.js +35 -0
  52. package/dist/components/inputs/variables/VariableIcon.js.map +1 -0
  53. package/dist/components/inputs/variables/VariableNode.d.ts +11 -0
  54. package/dist/components/inputs/variables/VariableNode.d.ts.map +1 -0
  55. package/dist/components/inputs/variables/VariableNode.js +36 -0
  56. package/dist/components/inputs/variables/VariableNode.js.map +1 -0
  57. package/dist/components/inputs/variables/VariableSuggestion.module.css +34 -0
  58. package/dist/components/inputs/variables/editors/DateVariableEditor.d.ts +2 -2
  59. package/dist/components/inputs/variables/editors/DateVariableEditor.d.ts.map +1 -1
  60. package/dist/components/inputs/variables/editors/DateVariableEditor.js +15 -0
  61. package/dist/components/inputs/variables/editors/DateVariableEditor.js.map +1 -0
  62. package/dist/components/inputs/variables/editors/PluralVariableEditor.d.ts +1 -1
  63. package/dist/components/inputs/variables/editors/PluralVariableEditor.d.ts.map +1 -1
  64. package/dist/components/inputs/variables/editors/PluralVariableEditor.js +191 -172
  65. package/dist/components/inputs/variables/editors/PluralVariableEditor.js.map +1 -1
  66. package/dist/components/inputs/variables/editors/PluralVariableEditor.module.css +149 -0
  67. package/dist/components/inputs/variables/editors/SelectVariableEditor.d.ts +1 -1
  68. package/dist/components/inputs/variables/editors/SelectVariableEditor.d.ts.map +1 -1
  69. package/dist/components/inputs/variables/editors/SelectVariableEditor.js +58 -52
  70. package/dist/components/inputs/variables/editors/SelectVariableEditor.js.map +1 -1
  71. package/dist/components/inputs/variables/editors/SelectVariableEditor.module.css +25 -0
  72. package/dist/components/inputs/variables/editors/TagVariableEditor.d.ts +1 -1
  73. package/dist/components/inputs/variables/editors/TagVariableEditor.d.ts.map +1 -1
  74. package/dist/components/inputs/variables/editors/TagVariableEditor.js +36 -32
  75. package/dist/components/inputs/variables/editors/TagVariableEditor.js.map +1 -1
  76. package/dist/components/inputs/variables/editors/TagVariableEditor.module.css +7 -0
  77. package/dist/components/inputs/variables/editors/TimeVariableEditor.d.ts +2 -2
  78. package/dist/components/inputs/variables/editors/TimeVariableEditor.d.ts.map +1 -1
  79. package/dist/components/inputs/variables/editors/TimeVariableEditor.js +15 -0
  80. package/dist/components/inputs/variables/editors/TimeVariableEditor.js.map +1 -0
  81. package/dist/components/inputs/variables/pickers/NumericVariablePicker.d.ts +1 -1
  82. package/dist/components/inputs/variables/pickers/NumericVariablePicker.d.ts.map +1 -1
  83. package/dist/components/inputs/variables/pickers/NumericVariablePicker.js +48 -51
  84. package/dist/components/inputs/variables/pickers/NumericVariablePicker.js.map +1 -1
  85. package/dist/components/inputs/variables/pickers/NumericVariablePicker.module.css +27 -0
  86. package/dist/components/inputs/variables/pickers/TemporalElementEditor.d.ts +1 -1
  87. package/dist/components/inputs/variables/pickers/TemporalElementEditor.d.ts.map +1 -1
  88. package/dist/components/inputs/variables/pickers/TemporalElementEditor.js +58 -0
  89. package/dist/components/inputs/variables/pickers/TemporalElementEditor.js.map +1 -0
  90. package/dist/components/inputs/variables/pickers/TemporalElementEditor.module.css +27 -0
  91. package/dist/components/layout/MessageField.d.ts +3 -3
  92. package/dist/components/layout/MessageField.d.ts.map +1 -1
  93. package/dist/components/layout/MessageField.js +56 -56
  94. package/dist/components/layout/MessageField.js.map +1 -1
  95. package/dist/components/layout/MessageField.module.css +19 -0
  96. package/dist/components/layout/MessagesTabs.d.ts +1 -1
  97. package/dist/components/layout/MessagesTabs.d.ts.map +1 -1
  98. package/dist/components/layout/MessagesTabs.js +40 -43
  99. package/dist/components/layout/MessagesTabs.js.map +1 -1
  100. package/dist/components/layout/MessagesTabs.module.css +21 -0
  101. package/dist/components/layout/MessagesTree.d.ts +3 -2
  102. package/dist/components/layout/MessagesTree.d.ts.map +1 -1
  103. package/dist/components/layout/MessagesTree.js +65 -67
  104. package/dist/components/layout/MessagesTree.js.map +1 -1
  105. package/dist/components/layout/MessagesTree.module.css +36 -0
  106. package/dist/const.d.ts +8 -9
  107. package/dist/const.d.ts.map +1 -1
  108. package/dist/const.js +16 -13
  109. package/dist/const.js.map +1 -1
  110. package/dist/endpoints/get-messages.d.ts +1 -1
  111. package/dist/endpoints/get-messages.d.ts.map +1 -1
  112. package/dist/endpoints/get-messages.js +7 -13
  113. package/dist/endpoints/get-messages.js.map +1 -1
  114. package/dist/endpoints/set-messages.d.ts +1 -1
  115. package/dist/endpoints/set-messages.d.ts.map +1 -1
  116. package/dist/endpoints/set-messages.js +61 -45
  117. package/dist/endpoints/set-messages.js.map +1 -1
  118. package/dist/entities.d.ts +5 -0
  119. package/dist/entities.d.ts.map +1 -0
  120. package/dist/entities.js +38 -0
  121. package/dist/entities.js.map +1 -0
  122. package/dist/exports/client.d.ts +2 -0
  123. package/dist/exports/client.d.ts.map +1 -0
  124. package/dist/exports/client.js +3 -0
  125. package/dist/exports/client.js.map +1 -0
  126. package/dist/exports/rsc.d.ts +2 -2
  127. package/dist/exports/rsc.d.ts.map +1 -1
  128. package/dist/exports/rsc.js +4 -7
  129. package/dist/exports/rsc.js.map +1 -1
  130. package/dist/hooks.d.ts +4 -0
  131. package/dist/hooks.d.ts.map +1 -0
  132. package/dist/hooks.js +24 -0
  133. package/dist/hooks.js.map +1 -0
  134. package/dist/index.d.ts +20 -3
  135. package/dist/index.d.ts.map +1 -1
  136. package/dist/index.js +64 -80
  137. package/dist/index.js.map +1 -1
  138. package/dist/payload-types.d.ts +258 -0
  139. package/dist/payload-types.d.ts.map +1 -0
  140. package/dist/payload-types.js +15 -0
  141. package/dist/payload-types.js.map +1 -0
  142. package/dist/requests/fetchMessageFromAPI.d.ts +10 -0
  143. package/dist/requests/fetchMessageFromAPI.d.ts.map +1 -0
  144. package/dist/requests/fetchMessageFromAPI.js +15 -0
  145. package/dist/requests/fetchMessageFromAPI.js.map +1 -0
  146. package/dist/requests/fetchMessageFromPayload.d.ts +3 -0
  147. package/dist/requests/fetchMessageFromPayload.d.ts.map +1 -0
  148. package/dist/requests/fetchMessageFromPayload.js +29 -0
  149. package/dist/requests/fetchMessageFromPayload.js.map +1 -0
  150. package/dist/requests/fetchMessages.d.ts +3 -11
  151. package/dist/requests/fetchMessages.d.ts.map +1 -1
  152. package/dist/requests/fetchMessages.js +10 -40
  153. package/dist/requests/fetchMessages.js.map +1 -1
  154. package/dist/types.d.ts +7 -23
  155. package/dist/types.d.ts.map +1 -1
  156. package/dist/types.js +3 -0
  157. package/dist/types.js.map +1 -0
  158. package/dist/utils/config.d.ts +3 -3
  159. package/dist/utils/config.d.ts.map +1 -1
  160. package/dist/utils/config.js +27 -17
  161. package/dist/utils/config.js.map +1 -1
  162. package/dist/utils/error-handling.js +14 -12
  163. package/dist/utils/error-handling.js.map +1 -1
  164. package/dist/utils/format.d.ts +1 -1
  165. package/dist/utils/format.js +21 -13
  166. package/dist/utils/format.js.map +1 -1
  167. package/dist/utils/guards.d.ts +2 -1
  168. package/dist/utils/guards.js +8 -18
  169. package/dist/utils/guards.js.map +1 -1
  170. package/dist/utils/icu-tranform.d.ts +13 -18
  171. package/dist/utils/icu-tranform.d.ts.map +1 -1
  172. package/dist/utils/icu-tranform.js +140 -108
  173. package/dist/utils/icu-tranform.js.map +1 -1
  174. package/dist/utils/sanitize.d.ts +1 -1
  175. package/dist/utils/sanitize.js +36 -17
  176. package/dist/utils/sanitize.js.map +1 -1
  177. package/dist/utils/schema.d.ts +1 -3
  178. package/dist/utils/schema.d.ts.map +1 -1
  179. package/dist/utils/schema.js +42 -34
  180. package/dist/utils/schema.js.map +1 -1
  181. package/dist/utils/validate.d.ts +2 -2
  182. package/dist/utils/validate.js +52 -53
  183. package/dist/utils/validate.js.map +1 -1
  184. package/package.json +35 -52
  185. package/dist/components/inputs/variables/VariableSuggestion.d.ts +0 -9
  186. package/dist/components/inputs/variables/VariableSuggestion.d.ts.map +0 -1
  187. package/dist/components/inputs/variables/VariableSuggestion.js +0 -41
  188. package/dist/components/inputs/variables/VariableSuggestion.js.map +0 -1
  189. package/dist/components/inputs/variables/extension.d.ts +0 -4
  190. package/dist/components/inputs/variables/extension.d.ts.map +0 -1
  191. package/dist/components/inputs/variables/extension.js +0 -93
  192. package/dist/components/inputs/variables/extension.js.map +0 -1
  193. package/dist/context/messages-form.d.ts +0 -29
  194. package/dist/context/messages-form.d.ts.map +0 -1
  195. package/dist/context/messages-form.js +0 -26
  196. package/dist/context/messages-form.js.map +0 -1
  197. package/dist/exports/link.d.ts.map +0 -1
  198. package/dist/exports/link.js +0 -21
  199. package/dist/exports/link.js.map +0 -1
  200. package/dist/exports/view.d.ts +0 -10
  201. package/dist/exports/view.d.ts.map +0 -1
  202. package/dist/exports/view.js +0 -53
  203. package/dist/exports/view.js.map +0 -1
  204. package/dist/styles.css +0 -1
  205. package/dist/utils/cn.d.ts +0 -3
  206. package/dist/utils/cn.d.ts.map +0 -1
  207. package/dist/utils/cn.js +0 -9
  208. package/dist/utils/cn.js.map +0 -1
@@ -1,13 +1,7 @@
1
- import { ENDPOINT_CONFIG as a } from "../const.js";
2
- import { fetchMessages as t } from "../requests/fetchMessages.js";
3
- const c = {
4
- ...a.getMessages,
5
- handler: async (s) => {
6
- const { locale: e } = s.routeParams, o = await t(s.payload, e);
7
- return Response.json(o);
8
- }
9
- };
10
- export {
11
- c as getMessagesEndpoint
12
- };
13
- //# sourceMappingURL=get-messages.js.map
1
+ import { ENDPOINTS } from '../const';
2
+ import { fetchMessagesFromPayload } from '../requests/fetchMessageFromPayload';
3
+ export const getMessagesEndpoint = ENDPOINTS.getMessages.endpoint(async (req, { locale })=>{
4
+ return await fetchMessagesFromPayload(req.payload, locale);
5
+ });
6
+
7
+ //# sourceMappingURL=get-messages.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-messages.js","sources":["../../src/endpoints/get-messages.ts"],"sourcesContent":["import type { Endpoint, PayloadRequest } from 'payload';\nimport { ENDPOINT_CONFIG } from '@/const';\nimport { fetchMessages } from '../requests/fetchMessages';\n\nexport const getMessagesEndpoint: Endpoint = {\n ...ENDPOINT_CONFIG.getMessages,\n handler: async (req: PayloadRequest) => {\n const { locale } = req.routeParams as { locale: string };\n const messages = await fetchMessages(req.payload, locale);\n return Response.json(messages);\n },\n};\n"],"names":["getMessagesEndpoint","ENDPOINT_CONFIG","req","locale","messages","fetchMessages"],"mappings":";;AAIO,MAAMA,IAAgC;AAAA,EAC3C,GAAGC,EAAgB;AAAA,EACnB,SAAS,OAAOC,MAAwB;AACtC,UAAM,EAAE,QAAAC,MAAWD,EAAI,aACjBE,IAAW,MAAMC,EAAcH,EAAI,SAASC,CAAM;AACxD,WAAO,SAAS,KAAKC,CAAQ;AAAA,EAC/B;AACF;"}
1
+ {"version":3,"sources":["../../src/endpoints/get-messages.ts"],"sourcesContent":["import type { Endpoint, PayloadRequest } from 'payload';\nimport { ENDPOINTS } from '@/const';\nimport { fetchMessagesFromPayload } from '@/requests/fetchMessageFromPayload';\n\nexport const getMessagesEndpoint: Endpoint = ENDPOINTS.getMessages.endpoint(\n async (req: PayloadRequest, { locale }) => {\n return await fetchMessagesFromPayload(req.payload, locale);\n },\n);\n"],"names":["ENDPOINTS","fetchMessagesFromPayload","getMessagesEndpoint","getMessages","endpoint","req","locale","payload"],"mappings":"AACA,SAASA,SAAS,QAAQ,UAAU;AACpC,SAASC,wBAAwB,QAAQ,qCAAqC;AAE9E,OAAO,MAAMC,sBAAgCF,UAAUG,WAAW,CAACC,QAAQ,CACzE,OAAOC,KAAqB,EAAEC,MAAM,EAAE;IACpC,OAAO,MAAML,yBAAyBI,IAAIE,OAAO,EAAED;AACrD,GACA"}
@@ -1,3 +1,3 @@
1
- import { Endpoint } from 'payload';
1
+ import type { Endpoint } from 'payload';
2
2
  export declare const setMessagesEndpoint: Endpoint;
3
3
  //# sourceMappingURL=set-messages.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"set-messages.d.ts","sourceRoot":"","sources":["../../src/endpoints/set-messages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAwB,MAAM,SAAS,CAAC;AAK9D,eAAO,MAAM,mBAAmB,EAAE,QAsDjC,CAAC"}
1
+ {"version":3,"file":"set-messages.d.ts","sourceRoot":"","sources":["../../src/endpoints/set-messages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAwB,MAAM,SAAS,CAAC;AAK9D,eAAO,MAAM,mBAAmB,EAAE,QAqDjC,CAAC"}
@@ -1,47 +1,63 @@
1
- import { ENDPOINT_CONFIG as d } from "../const.js";
2
- import { getSupportedLocales as p, getPluginContext as f } from "../utils/config.js";
3
- const g = {
4
- ...d.setMessages,
5
- handler: async (o) => {
6
- const { user: c } = await o.payload.auth({ headers: o.headers });
7
- if (!c)
8
- throw new Error("Unauthorized");
9
- const t = await o.json?.();
10
- if (!t)
11
- throw new Error("No data provided");
12
- const l = p(
13
- o.payload.config.localization
14
- ), { collectionSlug: s } = f(o.payload.config);
15
- for (const a of l) {
16
- const n = t[a];
17
- if (!n) continue;
18
- const e = new File(
19
- [JSON.stringify(n)],
20
- `${a}-${Date.now()}.json`,
21
- {
22
- type: "application/json"
1
+ import { ENDPOINTS } from '../const';
2
+ import { getPluginContext, getSupportedLocales } from '../utils/config';
3
+ export const setMessagesEndpoint = ENDPOINTS.setMessages.endpoint(async (req)=>{
4
+ const { user } = await req.payload.auth({
5
+ headers: req.headers
6
+ });
7
+ if (!user) {
8
+ return Response.json({
9
+ error: 'Unauthorized'
10
+ }, {
11
+ status: 401
12
+ });
13
+ }
14
+ const data = await req.json?.();
15
+ if (!data) {
16
+ return Response.json({
17
+ error: 'No data provided'
18
+ }, {
19
+ status: 400
20
+ });
21
+ }
22
+ const supportedLocales = getSupportedLocales(req.payload.config.localization);
23
+ const { collectionSlug } = getPluginContext(req.payload.config);
24
+ for (const locale of supportedLocales){
25
+ const messages = data[locale];
26
+ if (!messages) continue;
27
+ const rawFile = new File([
28
+ JSON.stringify(messages)
29
+ ], `${locale}-${Date.now()}.json`, {
30
+ type: 'application/json'
31
+ });
32
+ const file = {
33
+ name: rawFile.name,
34
+ data: Buffer.from(await rawFile.arrayBuffer()),
35
+ mimetype: rawFile.type,
36
+ size: rawFile.size
37
+ };
38
+ const { docs } = await req.payload.update({
39
+ collection: collectionSlug,
40
+ data: {},
41
+ file,
42
+ where: {
43
+ locale: {
44
+ equals: locale
45
+ }
46
+ }
47
+ });
48
+ if (docs.length === 0) {
49
+ await req.payload.create({
50
+ collection: collectionSlug,
51
+ data: {
52
+ locale
53
+ },
54
+ file
55
+ });
23
56
  }
24
- ), i = {
25
- name: e.name,
26
- data: Buffer.from(await e.arrayBuffer()),
27
- mimetype: e.type,
28
- size: e.size
29
- }, { docs: r } = await o.payload.update({
30
- collection: s,
31
- data: {},
32
- file: i,
33
- where: { locale: { equals: a } }
34
- });
35
- r.length === 0 && await o.payload.create({
36
- collection: s,
37
- data: { locale: a },
38
- file: i
39
- });
40
57
  }
41
- return Response.json({ success: !0 });
42
- }
43
- };
44
- export {
45
- g as setMessagesEndpoint
46
- };
47
- //# sourceMappingURL=set-messages.js.map
58
+ return {
59
+ success: true
60
+ };
61
+ });
62
+
63
+ //# sourceMappingURL=set-messages.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"set-messages.js","sources":["../../src/endpoints/set-messages.ts"],"sourcesContent":["import type { Endpoint, File, PayloadRequest } from 'payload';\nimport { ENDPOINT_CONFIG } from '@/const';\nimport type { Messages, Translations } from '@/types';\nimport { getPluginContext, getSupportedLocales } from '@/utils/config';\n\nexport const setMessagesEndpoint: Endpoint = {\n ...ENDPOINT_CONFIG.setMessages,\n handler: async (req: PayloadRequest) => {\n const { user } = await req.payload.auth({ headers: req.headers });\n if (!user) {\n throw new Error('Unauthorized');\n }\n\n const data = (await req.json?.()) as Translations<Messages> | undefined;\n if (!data) {\n throw new Error('No data provided');\n }\n\n const supportedLocales = getSupportedLocales(\n req.payload.config.localization,\n );\n const { collectionSlug } = getPluginContext(req.payload.config);\n\n for (const locale of supportedLocales) {\n const messages = data[locale];\n if (!messages) continue;\n\n const rawFile = new File(\n [JSON.stringify(messages)],\n `${locale}-${Date.now()}.json`,\n {\n type: 'application/json',\n },\n );\n\n const file: File = {\n name: rawFile.name,\n data: Buffer.from(await rawFile.arrayBuffer()),\n mimetype: rawFile.type,\n size: rawFile.size,\n };\n\n const { docs } = await req.payload.update({\n collection: collectionSlug,\n data: {},\n file,\n where: { locale: { equals: locale } },\n });\n if (docs.length === 0) {\n await req.payload.create({\n collection: collectionSlug,\n data: { locale },\n file,\n });\n }\n }\n\n return Response.json({ success: true });\n },\n};\n"],"names":["setMessagesEndpoint","ENDPOINT_CONFIG","req","user","data","supportedLocales","getSupportedLocales","collectionSlug","getPluginContext","locale","messages","rawFile","file","docs"],"mappings":";;AAKO,MAAMA,IAAgC;AAAA,EAC3C,GAAGC,EAAgB;AAAA,EACnB,SAAS,OAAOC,MAAwB;AACtC,UAAM,EAAE,MAAAC,MAAS,MAAMD,EAAI,QAAQ,KAAK,EAAE,SAASA,EAAI,SAAS;AAChE,QAAI,CAACC;AACH,YAAM,IAAI,MAAM,cAAc;AAGhC,UAAMC,IAAQ,MAAMF,EAAI,OAAA;AACxB,QAAI,CAACE;AACH,YAAM,IAAI,MAAM,kBAAkB;AAGpC,UAAMC,IAAmBC;AAAA,MACvBJ,EAAI,QAAQ,OAAO;AAAA,IAAA,GAEf,EAAE,gBAAAK,EAAA,IAAmBC,EAAiBN,EAAI,QAAQ,MAAM;AAE9D,eAAWO,KAAUJ,GAAkB;AACrC,YAAMK,IAAWN,EAAKK,CAAM;AAC5B,UAAI,CAACC,EAAU;AAEf,YAAMC,IAAU,IAAI;AAAA,QAClB,CAAC,KAAK,UAAUD,CAAQ,CAAC;AAAA,QACzB,GAAGD,CAAM,IAAI,KAAK,KAAK;AAAA,QACvB;AAAA,UACE,MAAM;AAAA,QAAA;AAAA,MACR,GAGIG,IAAa;AAAA,QACjB,MAAMD,EAAQ;AAAA,QACd,MAAM,OAAO,KAAK,MAAMA,EAAQ,aAAa;AAAA,QAC7C,UAAUA,EAAQ;AAAA,QAClB,MAAMA,EAAQ;AAAA,MAAA,GAGV,EAAE,MAAAE,EAAA,IAAS,MAAMX,EAAI,QAAQ,OAAO;AAAA,QACxC,YAAYK;AAAA,QACZ,MAAM,CAAA;AAAA,QACN,MAAAK;AAAA,QACA,OAAO,EAAE,QAAQ,EAAE,QAAQH,IAAO;AAAA,MAAE,CACrC;AACD,MAAII,EAAK,WAAW,KAClB,MAAMX,EAAI,QAAQ,OAAO;AAAA,QACvB,YAAYK;AAAA,QACZ,MAAM,EAAE,QAAAE,EAAA;AAAA,QACR,MAAAG;AAAA,MAAA,CACD;AAAA,IAEL;AAEA,WAAO,SAAS,KAAK,EAAE,SAAS,IAAM;AAAA,EACxC;AACF;"}
1
+ {"version":3,"sources":["../../src/endpoints/set-messages.ts"],"sourcesContent":["import type { Endpoint, File, PayloadRequest } from 'payload';\nimport { ENDPOINTS } from '@/const';\nimport type { Messages, Translations } from '@/types';\nimport { getPluginContext, getSupportedLocales } from '@/utils/config';\n\nexport const setMessagesEndpoint: Endpoint = ENDPOINTS.setMessages.endpoint(\n async (req: PayloadRequest) => {\n const { user } = await req.payload.auth({ headers: req.headers });\n if (!user) {\n return Response.json({ error: 'Unauthorized' }, { status: 401 });\n }\n\n const data = (await req.json?.()) as Translations<Messages> | undefined;\n if (!data) {\n return Response.json({ error: 'No data provided' }, { status: 400 });\n }\n\n const supportedLocales = getSupportedLocales(\n req.payload.config.localization,\n );\n const { collectionSlug } = getPluginContext(req.payload.config);\n\n for (const locale of supportedLocales) {\n const messages = data[locale];\n if (!messages) continue;\n\n const rawFile = new File(\n [JSON.stringify(messages)],\n `${locale}-${Date.now()}.json`,\n {\n type: 'application/json',\n },\n );\n\n const file: File = {\n name: rawFile.name,\n data: Buffer.from(await rawFile.arrayBuffer()),\n mimetype: rawFile.type,\n size: rawFile.size,\n };\n\n const { docs } = await req.payload.update({\n collection: collectionSlug as 'messages',\n data: {},\n file,\n where: { locale: { equals: locale } },\n });\n if (docs.length === 0) {\n await req.payload.create({\n collection: collectionSlug as 'messages',\n data: { locale },\n file,\n });\n }\n }\n\n return { success: true };\n },\n);\n"],"names":["ENDPOINTS","getPluginContext","getSupportedLocales","setMessagesEndpoint","setMessages","endpoint","req","user","payload","auth","headers","Response","json","error","status","data","supportedLocales","config","localization","collectionSlug","locale","messages","rawFile","File","JSON","stringify","Date","now","type","file","name","Buffer","from","arrayBuffer","mimetype","size","docs","update","collection","where","equals","length","create","success"],"mappings":"AACA,SAASA,SAAS,QAAQ,UAAU;AAEpC,SAASC,gBAAgB,EAAEC,mBAAmB,QAAQ,iBAAiB;AAEvE,OAAO,MAAMC,sBAAgCH,UAAUI,WAAW,CAACC,QAAQ,CACzE,OAAOC;IACL,MAAM,EAAEC,IAAI,EAAE,GAAG,MAAMD,IAAIE,OAAO,CAACC,IAAI,CAAC;QAAEC,SAASJ,IAAII,OAAO;IAAC;IAC/D,IAAI,CAACH,MAAM;QACT,OAAOI,SAASC,IAAI,CAAC;YAAEC,OAAO;QAAe,GAAG;YAAEC,QAAQ;QAAI;IAChE;IAEA,MAAMC,OAAQ,MAAMT,IAAIM,IAAI;IAC5B,IAAI,CAACG,MAAM;QACT,OAAOJ,SAASC,IAAI,CAAC;YAAEC,OAAO;QAAmB,GAAG;YAAEC,QAAQ;QAAI;IACpE;IAEA,MAAME,mBAAmBd,oBACvBI,IAAIE,OAAO,CAACS,MAAM,CAACC,YAAY;IAEjC,MAAM,EAAEC,cAAc,EAAE,GAAGlB,iBAAiBK,IAAIE,OAAO,CAACS,MAAM;IAE9D,KAAK,MAAMG,UAAUJ,iBAAkB;QACrC,MAAMK,WAAWN,IAAI,CAACK,OAAO;QAC7B,IAAI,CAACC,UAAU;QAEf,MAAMC,UAAU,IAAIC,KAClB;YAACC,KAAKC,SAAS,CAACJ;SAAU,EAC1B,GAAGD,OAAO,CAAC,EAAEM,KAAKC,GAAG,GAAG,KAAK,CAAC,EAC9B;YACEC,MAAM;QACR;QAGF,MAAMC,OAAa;YACjBC,MAAMR,QAAQQ,IAAI;YAClBf,MAAMgB,OAAOC,IAAI,CAAC,MAAMV,QAAQW,WAAW;YAC3CC,UAAUZ,QAAQM,IAAI;YACtBO,MAAMb,QAAQa,IAAI;QACpB;QAEA,MAAM,EAAEC,IAAI,EAAE,GAAG,MAAM9B,IAAIE,OAAO,CAAC6B,MAAM,CAAC;YACxCC,YAAYnB;YACZJ,MAAM,CAAC;YACPc;YACAU,OAAO;gBAAEnB,QAAQ;oBAAEoB,QAAQpB;gBAAO;YAAE;QACtC;QACA,IAAIgB,KAAKK,MAAM,KAAK,GAAG;YACrB,MAAMnC,IAAIE,OAAO,CAACkC,MAAM,CAAC;gBACvBJ,YAAYnB;gBACZJ,MAAM;oBAAEK;gBAAO;gBACfS;YACF;QACF;IACF;IAEA,OAAO;QAAEc,SAAS;IAAK;AACzB,GACA"}
@@ -0,0 +1,5 @@
1
+ import type { ResolvedPluginOptions } from './types';
2
+ export declare const Messages: (options: ResolvedPluginOptions<"hooks"> & {
3
+ slug: import("payload").CollectionSlug;
4
+ }) => import("payload").CollectionConfig;
5
+ //# sourceMappingURL=entities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entities.d.ts","sourceRoot":"","sources":["../src/entities.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAErD,eAAO,MAAM,QAAQ;;wCA0BlB,CAAC"}
@@ -0,0 +1,38 @@
1
+ import { createCollectionConfigFactory } from '@repo/common';
2
+ import { getMessagesEndpoint } from './endpoints/get-messages';
3
+ import { setMessagesEndpoint } from './endpoints/set-messages';
4
+ import { createHooks } from './hooks';
5
+ export const Messages = createCollectionConfigFactory(({ hooks })=>({
6
+ admin: {
7
+ hidden: true
8
+ },
9
+ access: {
10
+ read: ()=>true
11
+ },
12
+ endpoints: [
13
+ setMessagesEndpoint,
14
+ getMessagesEndpoint
15
+ ],
16
+ fields: [
17
+ {
18
+ name: 'locale',
19
+ type: 'text',
20
+ required: true
21
+ }
22
+ ],
23
+ hooks: createHooks(hooks),
24
+ indexes: [
25
+ {
26
+ fields: [
27
+ 'locale'
28
+ ]
29
+ }
30
+ ],
31
+ upload: {
32
+ mimeTypes: [
33
+ 'application/json'
34
+ ]
35
+ }
36
+ }));
37
+
38
+ //# sourceMappingURL=entities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/entities.ts"],"sourcesContent":["import { createCollectionConfigFactory } from '@repo/common';\nimport { getMessagesEndpoint } from './endpoints/get-messages';\nimport { setMessagesEndpoint } from './endpoints/set-messages';\nimport { createHooks } from './hooks';\nimport type { ResolvedPluginOptions } from './types';\n\nexport const Messages = createCollectionConfigFactory<\n ResolvedPluginOptions<'hooks'>\n>(({ hooks }) => ({\n admin: {\n hidden: true,\n },\n access: {\n read: () => true,\n },\n endpoints: [setMessagesEndpoint, getMessagesEndpoint],\n fields: [\n {\n name: 'locale',\n type: 'text',\n required: true,\n },\n ],\n hooks: createHooks(hooks),\n indexes: [\n {\n fields: ['locale'],\n },\n ],\n upload: {\n mimeTypes: ['application/json'],\n },\n}));\n"],"names":["createCollectionConfigFactory","getMessagesEndpoint","setMessagesEndpoint","createHooks","Messages","hooks","admin","hidden","access","read","endpoints","fields","name","type","required","indexes","upload","mimeTypes"],"mappings":"AAAA,SAASA,6BAA6B,QAAQ,eAAe;AAC7D,SAASC,mBAAmB,QAAQ,2BAA2B;AAC/D,SAASC,mBAAmB,QAAQ,2BAA2B;AAC/D,SAASC,WAAW,QAAQ,UAAU;AAGtC,OAAO,MAAMC,WAAWJ,8BAEtB,CAAC,EAAEK,KAAK,EAAE,GAAM,CAAA;QAChBC,OAAO;YACLC,QAAQ;QACV;QACAC,QAAQ;YACNC,MAAM,IAAM;QACd;QACAC,WAAW;YAACR;YAAqBD;SAAoB;QACrDU,QAAQ;YACN;gBACEC,MAAM;gBACNC,MAAM;gBACNC,UAAU;YACZ;SACD;QACDT,OAAOF,YAAYE;QACnBU,SAAS;YACP;gBACEJ,QAAQ;oBAAC;iBAAS;YACpB;SACD;QACDK,QAAQ;YACNC,WAAW;gBAAC;aAAmB;QACjC;IACF,CAAA,GAAI"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/exports/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { };
2
+
3
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/exports/client.ts"],"sourcesContent":["export {};\n"],"names":[],"mappings":"AAAA,WAAU"}
@@ -1,3 +1,3 @@
1
- export { MessagesLink } from './link';
2
- export { MessagesView } from './view';
1
+ export { MessagesLink } from '../components/MessagesLink';
2
+ export { MessagesView } from '../components/MessagesView';
3
3
  //# sourceMappingURL=rsc.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rsc.d.ts","sourceRoot":"","sources":["../../src/exports/rsc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC"}
1
+ {"version":3,"file":"rsc.d.ts","sourceRoot":"","sources":["../../src/exports/rsc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC"}
@@ -1,7 +1,4 @@
1
- import { MessagesLink as o } from "./link.js";
2
- import { MessagesView as a } from "./view.js";
3
- export {
4
- o as MessagesLink,
5
- a as MessagesView
6
- };
7
- //# sourceMappingURL=rsc.js.map
1
+ export { MessagesLink } from '../components/MessagesLink';
2
+ export { MessagesView } from '../components/MessagesView';
3
+
4
+ //# sourceMappingURL=rsc.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rsc.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
1
+ {"version":3,"sources":["../../src/exports/rsc.ts"],"sourcesContent":["export { MessagesLink } from '../components/MessagesLink';\nexport { MessagesView } from '../components/MessagesView';\n"],"names":["MessagesLink","MessagesView"],"mappings":"AAAA,SAASA,YAAY,QAAQ,6BAA6B;AAC1D,SAASC,YAAY,QAAQ,6BAA6B"}
@@ -0,0 +1,4 @@
1
+ import type { CollectionConfig } from 'payload';
2
+ import type { ResolvedPluginOptions } from './types';
3
+ export declare const createHooks: (hooks: ResolvedPluginOptions["hooks"]) => CollectionConfig["hooks"];
4
+ //# sourceMappingURL=hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA6B,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAErD,eAAO,MAAM,WAAW,UACf,qBAAqB,CAAC,OAAO,CAAC,KACpC,gBAAgB,CAAC,OAAO,CAmB1B,CAAC"}
package/dist/hooks.js ADDED
@@ -0,0 +1,24 @@
1
+ export const createHooks = (hooks)=>{
2
+ if (!hooks) {
3
+ return undefined;
4
+ }
5
+ const { afterUpdate, ...rest } = hooks;
6
+ if (!afterUpdate) {
7
+ return rest;
8
+ }
9
+ const afterUpdateHook = async ({ operation })=>{
10
+ if (operation === 'update') {
11
+ await afterUpdate();
12
+ }
13
+ return;
14
+ };
15
+ return {
16
+ ...rest,
17
+ afterChange: [
18
+ ...rest.afterChange ?? [],
19
+ afterUpdateHook
20
+ ]
21
+ };
22
+ };
23
+
24
+ //# sourceMappingURL=hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/hooks.ts"],"sourcesContent":["import type { CollectionAfterChangeHook, CollectionConfig } from 'payload';\nimport type { ResolvedPluginOptions } from './types';\n\nexport const createHooks = (\n hooks: ResolvedPluginOptions['hooks'],\n): CollectionConfig['hooks'] => {\n if (!hooks) {\n return undefined;\n }\n const { afterUpdate, ...rest } = hooks;\n if (!afterUpdate) {\n return rest;\n }\n\n const afterUpdateHook: CollectionAfterChangeHook = async ({ operation }) => {\n if (operation === 'update') {\n await afterUpdate();\n }\n return;\n };\n return {\n ...rest,\n afterChange: [...(rest.afterChange ?? []), afterUpdateHook],\n };\n};\n"],"names":["createHooks","hooks","undefined","afterUpdate","rest","afterUpdateHook","operation","afterChange"],"mappings":"AAGA,OAAO,MAAMA,cAAc,CACzBC;IAEA,IAAI,CAACA,OAAO;QACV,OAAOC;IACT;IACA,MAAM,EAAEC,WAAW,EAAE,GAAGC,MAAM,GAAGH;IACjC,IAAI,CAACE,aAAa;QAChB,OAAOC;IACT;IAEA,MAAMC,kBAA6C,OAAO,EAAEC,SAAS,EAAE;QACrE,IAAIA,cAAc,UAAU;YAC1B,MAAMH;QACR;QACA;IACF;IACA,OAAO;QACL,GAAGC,IAAI;QACPG,aAAa;eAAKH,KAAKG,WAAW,IAAI,EAAE;YAAGF;SAAgB;IAC7D;AACF,EAAE"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,23 @@
1
- import { Plugin } from 'payload';
2
- import { MessagesPluginConfig } from './types.ts';
1
+ import type { CollectionSlug, Plugin } from 'payload';
2
+ import type { MessagesGuard, MessagesHooks, MessagesSchema } from './types.ts';
3
+ export interface MessagesPluginConfig {
4
+ schema: MessagesSchema;
5
+ /**
6
+ * The slug of the collection to use for the messages.
7
+ *
8
+ * @default `messages`
9
+ */
10
+ collectionSlug?: CollectionSlug;
11
+ /**
12
+ * Access control for allowing to edit the messages.
13
+ *
14
+ * @default `(req) => req.user !== null // Authenticated users only`
15
+ */
16
+ editorAccess?: MessagesGuard;
17
+ hooks?: MessagesHooks;
18
+ tabs?: boolean;
19
+ }
3
20
  export declare const intlPlugin: ({ schema, tabs, collectionSlug, hooks, editorAccess, }: MessagesPluginConfig) => Plugin;
4
21
  export { fetchMessages } from './requests/fetchMessages';
5
- export type { Messages, MessagesPluginConfig, MessagesSchema, } from './types.ts';
22
+ export type { Messages, MessagesSchema, } from './types.ts';
6
23
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,CAAC;AAEtB,OAAO,KAAK,EAGV,MAAM,EACP,MAAM,SAAS,CAAC;AAIjB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAGvD,eAAO,MAAM,UAAU,2DAOlB,oBAAoB,KAAG,MAwFzB,CAAC;AAEJ,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,YAAY,EACV,QAAQ,EACR,oBAAoB,EACpB,cAAc,GACf,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAKtD,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAG/E,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,cAAc,CAAC;IACvB;;;;OAIG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC;;;;OAIG;IACH,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,eAAO,MAAM,UAAU,2DAOlB,oBAAoB,KAAG,MAgEzB,CAAC;AAEJ,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,YAAY,EACV,QAAQ,EACR,cAAc,GACf,MAAM,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -1,81 +1,65 @@
1
- /* empty css */
2
- import { getMessagesEndpoint as o } from "./endpoints/get-messages.js";
3
- import { setMessagesEndpoint as p } from "./endpoints/set-messages.js";
4
- import { getSupportedLocales as d, attachPluginContext as l } from "./utils/config.js";
5
- import { fetchMessages as M } from "./requests/fetchMessages.js";
6
- const w = ({
7
- schema: s,
8
- tabs: a,
9
- collectionSlug: t = "messages",
10
- hooks: n,
11
- editorAccess: r = (e) => e.user !== null
12
- }) => (e) => {
13
- const i = d(e.localization);
14
- if (!e.serverURL)
15
- throw new Error(
16
- "serverURL is required in your payload.config.ts file for payload-intl to work."
17
- );
18
- return e.admin ??= {}, e.admin.components ??= {}, e.admin.components.actions ??= [], e.admin.components.actions.push({
19
- exportName: "MessagesLink",
20
- path: "payload-intl/rsc#MessagesLink"
21
- }), e.admin.components.views = {
22
- ...e.admin.components.views,
23
- intl: {
24
- Component: {
25
- path: "payload-intl/rsc#MessagesView",
26
- serverProps: {
27
- access: r,
28
- locales: i,
29
- schema: s,
30
- tabs: a
1
+ import { getMessagesEndpoint } from './endpoints/get-messages';
2
+ import { setMessagesEndpoint } from './endpoints/set-messages';
3
+ import { Messages } from './entities';
4
+ import { attachPluginContext, getSupportedLocales } from './utils/config';
5
+ export const intlPlugin = ({ schema, tabs, collectionSlug = 'messages', hooks = {}, editorAccess = (req)=>req.user !== null })=>(config)=>{
6
+ if (!config.localization) {
7
+ console.warn('[payload-intl] You have not set the localization option in your Payload config, so this plugin will have no effect.');
8
+ return config;
31
9
  }
32
- },
33
- path: "/intl"
34
- }
35
- }, l(e, {
36
- collectionSlug: t
37
- }), e.collections ??= [], e.collections.push({
38
- slug: t,
39
- admin: {
40
- hidden: !0
41
- },
42
- access: {
43
- read: () => !0
44
- },
45
- endpoints: [p, o],
46
- fields: [
47
- {
48
- name: "locale",
49
- type: "text",
50
- required: !0
51
- }
52
- ],
53
- hooks: m(n),
54
- indexes: [
55
- {
56
- fields: ["locale"]
57
- }
58
- ],
59
- upload: {
60
- mimeTypes: ["application/json"]
61
- }
62
- }), e.endpoints ??= [], e.endpoints.push(o), e.endpoints.push(p), e;
63
- }, m = (s) => {
64
- if (!s)
65
- return;
66
- const { afterUpdate: a, ...t } = s;
67
- if (!a)
68
- return t;
69
- const n = async ({ operation: r }) => {
70
- r === "update" && await a();
71
- };
72
- return {
73
- ...t,
74
- afterChange: [...t.afterChange ?? [], n]
75
- };
76
- };
77
- export {
78
- M as fetchMessages,
79
- w as intlPlugin
80
- };
81
- //# sourceMappingURL=index.js.map
10
+ const locales = getSupportedLocales(config.localization);
11
+ config.admin ??= {};
12
+ config.admin.components ??= {};
13
+ config.admin.components.actions ??= [];
14
+ config.admin.components.actions.push({
15
+ exportName: 'MessagesLink',
16
+ path: 'payload-intl/rsc#MessagesLink'
17
+ });
18
+ config.admin.components.views = {
19
+ ...config.admin.components.views,
20
+ intl: {
21
+ Component: {
22
+ path: 'payload-intl/rsc#MessagesView',
23
+ serverProps: {
24
+ access: editorAccess,
25
+ locales,
26
+ schema,
27
+ tabs
28
+ }
29
+ },
30
+ path: '/intl'
31
+ }
32
+ };
33
+ attachPluginContext(config, {
34
+ collectionSlug
35
+ });
36
+ // config.globals ??= [];
37
+ // config.globals.push({
38
+ // slug: 'intl-plugin',
39
+ // fields: [
40
+ // {
41
+ // name: 'editorTemplate',
42
+ // type: 'richText',
43
+ // editor: lexicalEditor({
44
+ // features: ({ defaultFeatures }) =>
45
+ // defaultFeatures.filter(
46
+ // ({ key }) => !['relationship', 'upload'].includes(key),
47
+ // ),
48
+ // }),
49
+ // admin: { hidden: true },
50
+ // },
51
+ // ],
52
+ // });
53
+ config.collections ??= [];
54
+ config.collections.push(Messages({
55
+ slug: collectionSlug,
56
+ hooks
57
+ }));
58
+ config.endpoints ??= [];
59
+ config.endpoints.push(getMessagesEndpoint);
60
+ config.endpoints.push(setMessagesEndpoint);
61
+ return config;
62
+ };
63
+ export { fetchMessages } from './requests/fetchMessages';
64
+
65
+ //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import './styles.css';\n\nimport type {\n CollectionAfterChangeHook,\n CollectionConfig,\n Plugin,\n} from 'payload';\nimport { getMessagesEndpoint } from './endpoints/get-messages';\nimport { setMessagesEndpoint } from './endpoints/set-messages';\nimport type { MessagesViewProps } from './exports/view';\nimport type { MessagesPluginConfig } from './types.ts';\nimport { attachPluginContext, getSupportedLocales } from './utils/config';\n\nexport const intlPlugin =\n ({\n schema,\n tabs,\n collectionSlug = 'messages',\n hooks,\n editorAccess = (req) => req.user !== null,\n }: MessagesPluginConfig): Plugin =>\n (config) => {\n const locales = getSupportedLocales(config.localization);\n\n if (!config.serverURL) {\n throw new Error(\n 'serverURL is required in your payload.config.ts file for payload-intl to work.',\n );\n }\n\n config.admin ??= {};\n config.admin.components ??= {};\n config.admin.components.actions ??= [];\n config.admin.components.actions.push({\n exportName: 'MessagesLink',\n path: 'payload-intl/rsc#MessagesLink',\n });\n\n config.admin.components.views = {\n ...config.admin.components.views,\n intl: {\n Component: {\n path: 'payload-intl/rsc#MessagesView',\n serverProps: {\n access: editorAccess,\n locales,\n schema,\n tabs,\n } satisfies MessagesViewProps,\n },\n path: '/intl',\n },\n };\n\n attachPluginContext(config, {\n collectionSlug,\n });\n // config.globals ??= [];\n // config.globals.push({\n // slug: 'intl-plugin',\n // fields: [\n // {\n // name: 'editorTemplate',\n // type: 'richText',\n // editor: lexicalEditor({\n // features: ({ defaultFeatures }) =>\n // defaultFeatures.filter(\n // ({ key }) => !['relationship', 'upload'].includes(key),\n // ),\n // }),\n // admin: { hidden: true },\n // },\n // ],\n // });\n\n config.collections ??= [];\n config.collections.push({\n slug: collectionSlug,\n admin: {\n hidden: true,\n },\n access: {\n read: () => true,\n },\n endpoints: [setMessagesEndpoint, getMessagesEndpoint],\n fields: [\n {\n name: 'locale',\n type: 'text',\n required: true,\n },\n ],\n hooks: createHooks(hooks),\n indexes: [\n {\n fields: ['locale'],\n },\n ],\n upload: {\n mimeTypes: ['application/json'],\n },\n });\n\n config.endpoints ??= [];\n config.endpoints.push(getMessagesEndpoint);\n config.endpoints.push(setMessagesEndpoint);\n\n return config;\n };\n\nexport { fetchMessages } from './requests/fetchMessages';\n\nexport type {\n Messages,\n MessagesPluginConfig,\n MessagesSchema,\n} from './types.ts';\n\nconst createHooks = (\n hooks: MessagesPluginConfig['hooks'],\n): CollectionConfig['hooks'] => {\n if (!hooks) {\n return undefined;\n }\n const { afterUpdate, ...rest } = hooks;\n if (!afterUpdate) {\n return rest;\n }\n\n const afterUpdateHook: CollectionAfterChangeHook = async ({ operation }) => {\n if (operation === 'update') {\n await afterUpdate();\n }\n return;\n };\n return {\n ...rest,\n afterChange: [...(rest.afterChange ?? []), afterUpdateHook],\n };\n};\n"],"names":["intlPlugin","schema","tabs","collectionSlug","hooks","editorAccess","req","config","locales","getSupportedLocales","attachPluginContext","setMessagesEndpoint","getMessagesEndpoint","createHooks","afterUpdate","rest","afterUpdateHook","operation"],"mappings":";;;;;AAaO,MAAMA,IACX,CAAC;AAAA,EACC,QAAAC;AAAA,EACA,MAAAC;AAAA,EACA,gBAAAC,IAAiB;AAAA,EACjB,OAAAC;AAAA,EACA,cAAAC,IAAe,CAACC,MAAQA,EAAI,SAAS;AACvC,MACA,CAACC,MAAW;AACV,QAAMC,IAAUC,EAAoBF,EAAO,YAAY;AAEvD,MAAI,CAACA,EAAO;AACV,UAAM,IAAI;AAAA,MACR;AAAA,IAAA;AAIJ,SAAAA,EAAO,UAAU,CAAA,GACjBA,EAAO,MAAM,eAAe,CAAA,GAC5BA,EAAO,MAAM,WAAW,YAAY,CAAA,GACpCA,EAAO,MAAM,WAAW,QAAQ,KAAK;AAAA,IACnC,YAAY;AAAA,IACZ,MAAM;AAAA,EAAA,CACP,GAEDA,EAAO,MAAM,WAAW,QAAQ;AAAA,IAC9B,GAAGA,EAAO,MAAM,WAAW;AAAA,IAC3B,MAAM;AAAA,MACJ,WAAW;AAAA,QACT,MAAM;AAAA,QACN,aAAa;AAAA,UACX,QAAQF;AAAA,UACR,SAAAG;AAAA,UACA,QAAAP;AAAA,UACA,MAAAC;AAAA,QAAA;AAAA,MACF;AAAA,MAEF,MAAM;AAAA,IAAA;AAAA,EACR,GAGFQ,EAAoBH,GAAQ;AAAA,IAC1B,gBAAAJ;AAAA,EAAA,CACD,GAmBDI,EAAO,gBAAgB,CAAA,GACvBA,EAAO,YAAY,KAAK;AAAA,IACtB,MAAMJ;AAAA,IACN,OAAO;AAAA,MACL,QAAQ;AAAA,IAAA;AAAA,IAEV,QAAQ;AAAA,MACN,MAAM,MAAM;AAAA,IAAA;AAAA,IAEd,WAAW,CAACQ,GAAqBC,CAAmB;AAAA,IACpD,QAAQ;AAAA,MACN;AAAA,QACE,MAAM;AAAA,QACN,MAAM;AAAA,QACN,UAAU;AAAA,MAAA;AAAA,IACZ;AAAA,IAEF,OAAOC,EAAYT,CAAK;AAAA,IACxB,SAAS;AAAA,MACP;AAAA,QACE,QAAQ,CAAC,QAAQ;AAAA,MAAA;AAAA,IACnB;AAAA,IAEF,QAAQ;AAAA,MACN,WAAW,CAAC,kBAAkB;AAAA,IAAA;AAAA,EAChC,CACD,GAEDG,EAAO,cAAc,CAAA,GACrBA,EAAO,UAAU,KAAKK,CAAmB,GACzCL,EAAO,UAAU,KAAKI,CAAmB,GAElCJ;AACT,GAUIM,IAAc,CAClBT,MAC8B;AAC9B,MAAI,CAACA;AACH;AAEF,QAAM,EAAE,aAAAU,GAAa,GAAGC,EAAA,IAASX;AACjC,MAAI,CAACU;AACH,WAAOC;AAGT,QAAMC,IAA6C,OAAO,EAAE,WAAAC,QAAgB;AAC1E,IAAIA,MAAc,YAChB,MAAMH,EAAA;AAAA,EAGV;AACA,SAAO;AAAA,IACL,GAAGC;AAAA,IACH,aAAa,CAAC,GAAIA,EAAK,eAAe,CAAA,GAAKC,CAAe;AAAA,EAAA;AAE9D;"}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["import type { CollectionSlug, Plugin } from 'payload';\nimport type { MessagesViewProps } from './components/MessagesView';\nimport { getMessagesEndpoint } from './endpoints/get-messages';\nimport { setMessagesEndpoint } from './endpoints/set-messages';\nimport { Messages } from './entities';\nimport type { MessagesGuard, MessagesHooks, MessagesSchema } from './types.ts';\nimport { attachPluginContext, getSupportedLocales } from './utils/config';\n\nexport interface MessagesPluginConfig {\n schema: MessagesSchema;\n /**\n * The slug of the collection to use for the messages.\n *\n * @default `messages`\n */\n collectionSlug?: CollectionSlug;\n /**\n * Access control for allowing to edit the messages.\n *\n * @default `(req) => req.user !== null // Authenticated users only`\n */\n editorAccess?: MessagesGuard;\n hooks?: MessagesHooks;\n tabs?: boolean;\n}\n\nexport const intlPlugin =\n ({\n schema,\n tabs,\n collectionSlug = 'messages',\n hooks = {},\n editorAccess = (req) => req.user !== null,\n }: MessagesPluginConfig): Plugin =>\n (config) => {\n if (!config.localization) {\n console.warn(\n '[payload-intl] You have not set the localization option in your Payload config, so this plugin will have no effect.',\n );\n return config;\n }\n\n const locales = getSupportedLocales(config.localization);\n\n config.admin ??= {};\n config.admin.components ??= {};\n config.admin.components.actions ??= [];\n config.admin.components.actions.push({\n exportName: 'MessagesLink',\n path: 'payload-intl/rsc#MessagesLink',\n });\n\n config.admin.components.views = {\n ...config.admin.components.views,\n intl: {\n Component: {\n path: 'payload-intl/rsc#MessagesView',\n serverProps: {\n access: editorAccess,\n locales,\n schema,\n tabs,\n } satisfies MessagesViewProps,\n },\n path: '/intl',\n },\n };\n\n attachPluginContext(config, {\n collectionSlug,\n });\n // config.globals ??= [];\n // config.globals.push({\n // slug: 'intl-plugin',\n // fields: [\n // {\n // name: 'editorTemplate',\n // type: 'richText',\n // editor: lexicalEditor({\n // features: ({ defaultFeatures }) =>\n // defaultFeatures.filter(\n // ({ key }) => !['relationship', 'upload'].includes(key),\n // ),\n // }),\n // admin: { hidden: true },\n // },\n // ],\n // });\n\n config.collections ??= [];\n config.collections.push(Messages({ slug: collectionSlug, hooks }));\n\n config.endpoints ??= [];\n config.endpoints.push(getMessagesEndpoint);\n config.endpoints.push(setMessagesEndpoint);\n\n return config;\n };\n\nexport { fetchMessages } from './requests/fetchMessages';\n\nexport type {\n Messages,\n MessagesSchema,\n} from './types.ts';\n"],"names":["getMessagesEndpoint","setMessagesEndpoint","Messages","attachPluginContext","getSupportedLocales","intlPlugin","schema","tabs","collectionSlug","hooks","editorAccess","req","user","config","localization","console","warn","locales","admin","components","actions","push","exportName","path","views","intl","Component","serverProps","access","collections","slug","endpoints","fetchMessages"],"mappings":"AAEA,SAASA,mBAAmB,QAAQ,2BAA2B;AAC/D,SAASC,mBAAmB,QAAQ,2BAA2B;AAC/D,SAASC,QAAQ,QAAQ,aAAa;AAEtC,SAASC,mBAAmB,EAAEC,mBAAmB,QAAQ,iBAAiB;AAoB1E,OAAO,MAAMC,aACX,CAAC,EACCC,MAAM,EACNC,IAAI,EACJC,iBAAiB,UAAU,EAC3BC,QAAQ,CAAC,CAAC,EACVC,eAAe,CAACC,MAAQA,IAAIC,IAAI,KAAK,IAAI,EACpB,GACvB,CAACC;QACC,IAAI,CAACA,OAAOC,YAAY,EAAE;YACxBC,QAAQC,IAAI,CACV;YAEF,OAAOH;QACT;QAEA,MAAMI,UAAUb,oBAAoBS,OAAOC,YAAY;QAEvDD,OAAOK,KAAK,KAAK,CAAC;QAClBL,OAAOK,KAAK,CAACC,UAAU,KAAK,CAAC;QAC7BN,OAAOK,KAAK,CAACC,UAAU,CAACC,OAAO,KAAK,EAAE;QACtCP,OAAOK,KAAK,CAACC,UAAU,CAACC,OAAO,CAACC,IAAI,CAAC;YACnCC,YAAY;YACZC,MAAM;QACR;QAEAV,OAAOK,KAAK,CAACC,UAAU,CAACK,KAAK,GAAG;YAC9B,GAAGX,OAAOK,KAAK,CAACC,UAAU,CAACK,KAAK;YAChCC,MAAM;gBACJC,WAAW;oBACTH,MAAM;oBACNI,aAAa;wBACXC,QAAQlB;wBACRO;wBACAX;wBACAC;oBACF;gBACF;gBACAgB,MAAM;YACR;QACF;QAEApB,oBAAoBU,QAAQ;YAC1BL;QACF;QACA,yBAAyB;QACzB,wBAAwB;QACxB,yBAAyB;QACzB,cAAc;QACd,QAAQ;QACR,gCAAgC;QAChC,0BAA0B;QAC1B,gCAAgC;QAChC,6CAA6C;QAC7C,oCAAoC;QACpC,sEAAsE;QACtE,eAAe;QACf,YAAY;QACZ,iCAAiC;QACjC,SAAS;QACT,OAAO;QACP,MAAM;QAENK,OAAOgB,WAAW,KAAK,EAAE;QACzBhB,OAAOgB,WAAW,CAACR,IAAI,CAACnB,SAAS;YAAE4B,MAAMtB;YAAgBC;QAAM;QAE/DI,OAAOkB,SAAS,KAAK,EAAE;QACvBlB,OAAOkB,SAAS,CAACV,IAAI,CAACrB;QACtBa,OAAOkB,SAAS,CAACV,IAAI,CAACpB;QAEtB,OAAOY;IACT,EAAE;AAEJ,SAASmB,aAAa,QAAQ,2BAA2B"}