payload-intl 1.2.4 → 1.3.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 (87) hide show
  1. package/README.md +4 -8
  2. package/dist/components/MessageFormField.d.ts +1 -2
  3. package/dist/components/MessageFormField.d.ts.map +1 -1
  4. package/dist/components/MessageFormField.js +1 -2
  5. package/dist/components/MessageFormField.js.map +1 -1
  6. package/dist/components/MessagesLink.js +1 -1
  7. package/dist/components/MessagesLink.js.map +1 -1
  8. package/dist/components/MessagesView.js +1 -1
  9. package/dist/components/MessagesView.js.map +1 -1
  10. package/dist/components/inputs/FieldWrapper.d.ts +1 -2
  11. package/dist/components/inputs/FieldWrapper.d.ts.map +1 -1
  12. package/dist/components/inputs/FieldWrapper.js +1 -1
  13. package/dist/components/inputs/FieldWrapper.js.map +1 -1
  14. package/dist/components/inputs/LexicalInput.d.ts +1 -1
  15. package/dist/components/inputs/LexicalInput.d.ts.map +1 -1
  16. package/dist/components/inputs/LexicalInput.js +1 -2
  17. package/dist/components/inputs/LexicalInput.js.map +1 -1
  18. package/dist/components/inputs/MessageInput.d.ts +1 -1
  19. package/dist/components/inputs/MessageInput.d.ts.map +1 -1
  20. package/dist/components/inputs/MessageInput.js +1 -2
  21. package/dist/components/inputs/MessageInput.js.map +1 -1
  22. package/dist/const.d.ts +13 -5
  23. package/dist/const.d.ts.map +1 -1
  24. package/dist/const.js +9 -9
  25. package/dist/const.js.map +1 -1
  26. package/dist/endpoints/set-messages.d.ts.map +1 -1
  27. package/dist/endpoints/set-messages.js +73 -31
  28. package/dist/endpoints/set-messages.js.map +1 -1
  29. package/dist/entities.d.ts +1 -1
  30. package/dist/entities.d.ts.map +1 -1
  31. package/dist/entities.js +13 -9
  32. package/dist/entities.js.map +1 -1
  33. package/dist/index.d.ts +13 -3
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +8 -25
  36. package/dist/index.js.map +1 -1
  37. package/dist/payload-types.d.ts +4 -4
  38. package/dist/payload-types.d.ts.map +1 -1
  39. package/dist/requests/fetchMessages.d.ts +1 -4
  40. package/dist/requests/fetchMessages.d.ts.map +1 -1
  41. package/dist/requests/fetchMessages.js +36 -7
  42. package/dist/requests/fetchMessages.js.map +1 -1
  43. package/dist/types.d.ts +1 -0
  44. package/dist/types.d.ts.map +1 -1
  45. package/dist/types.js.map +1 -1
  46. package/dist/utils/config.d.ts +1 -9
  47. package/dist/utils/config.d.ts.map +1 -1
  48. package/dist/utils/config.js +0 -10
  49. package/dist/utils/config.js.map +1 -1
  50. package/dist/utils/guards.d.ts +0 -1
  51. package/dist/utils/guards.d.ts.map +1 -1
  52. package/dist/utils/guards.js +0 -3
  53. package/dist/utils/guards.js.map +1 -1
  54. package/dist/utils/icu-tranform.d.ts.map +1 -1
  55. package/dist/utils/icu-tranform.js +1 -1
  56. package/dist/utils/icu-tranform.js.map +1 -1
  57. package/package.json +9 -8
  58. package/dist/endpoints/get-messages.d.ts +0 -3
  59. package/dist/endpoints/get-messages.d.ts.map +0 -1
  60. package/dist/endpoints/get-messages.js +0 -7
  61. package/dist/endpoints/get-messages.js.map +0 -1
  62. package/dist/internals/index.d.ts +0 -30
  63. package/dist/internals/index.d.ts.map +0 -1
  64. package/dist/internals/index.js +0 -81
  65. package/dist/internals/index.js.map +0 -1
  66. package/dist/internals/procedure.d.ts +0 -34
  67. package/dist/internals/procedure.d.ts.map +0 -1
  68. package/dist/internals/procedure.js +0 -111
  69. package/dist/internals/procedure.js.map +0 -1
  70. package/dist/internals/urls.d.ts +0 -11
  71. package/dist/internals/urls.d.ts.map +0 -1
  72. package/dist/internals/urls.js +0 -23
  73. package/dist/internals/urls.js.map +0 -1
  74. package/dist/internals/utils.d.ts +0 -8
  75. package/dist/internals/utils.d.ts.map +0 -1
  76. package/dist/internals/utils.js +0 -57
  77. package/dist/internals/utils.js.map +0 -1
  78. package/dist/payload-types.js +0 -15
  79. package/dist/payload-types.js.map +0 -1
  80. package/dist/requests/fetchMessageFromAPI.d.ts +0 -10
  81. package/dist/requests/fetchMessageFromAPI.d.ts.map +0 -1
  82. package/dist/requests/fetchMessageFromAPI.js +0 -15
  83. package/dist/requests/fetchMessageFromAPI.js.map +0 -1
  84. package/dist/requests/fetchMessageFromPayload.d.ts +0 -3
  85. package/dist/requests/fetchMessageFromPayload.d.ts.map +0 -1
  86. package/dist/requests/fetchMessageFromPayload.js +0 -29
  87. package/dist/requests/fetchMessageFromPayload.js.map +0 -1
@@ -1 +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"}
1
+ {"version":3,"sources":["../src/entities.ts"],"sourcesContent":["import { createCollectionConfigFactory } from '@davincicoding/payload-plugin-kit';\nimport { setMessagesEndpoint } from './endpoints/set-messages';\nimport { createHooks } from './hooks';\nimport type { ResolvedPluginOptions } from './types';\n\nexport const Messages = createCollectionConfigFactory<\n ResolvedPluginOptions<'hooks' | 'storage'>\n>(({ hooks, storage }) => ({\n admin: {\n hidden: true,\n },\n access: {\n read: () => true,\n },\n endpoints: [setMessagesEndpoint],\n fields: [\n {\n name: 'locale',\n type: 'text',\n required: true,\n },\n {\n name: 'data',\n type: 'json',\n },\n ],\n hooks: createHooks(hooks),\n indexes: [\n {\n fields: ['locale'],\n },\n ],\n ...(storage === 'upload' && {\n upload: {\n mimeTypes: ['application/json'],\n },\n }),\n}));\n"],"names":["createCollectionConfigFactory","setMessagesEndpoint","createHooks","Messages","hooks","storage","admin","hidden","access","read","endpoints","fields","name","type","required","indexes","upload","mimeTypes"],"mappings":"AAAA,SAASA,6BAA6B,QAAQ,oCAAoC;AAClF,SAASC,mBAAmB,QAAQ,2BAA2B;AAC/D,SAASC,WAAW,QAAQ,UAAU;AAGtC,OAAO,MAAMC,WAAWH,8BAEtB,CAAC,EAAEI,KAAK,EAAEC,OAAO,EAAE,GAAM,CAAA;QACzBC,OAAO;YACLC,QAAQ;QACV;QACAC,QAAQ;YACNC,MAAM,IAAM;QACd;QACAC,WAAW;YAACT;SAAoB;QAChCU,QAAQ;YACN;gBACEC,MAAM;gBACNC,MAAM;gBACNC,UAAU;YACZ;YACA;gBACEF,MAAM;gBACNC,MAAM;YACR;SACD;QACDT,OAAOF,YAAYE;QACnBW,SAAS;YACP;gBACEJ,QAAQ;oBAAC;iBAAS;YACpB;SACD;QACD,GAAIN,YAAY,YAAY;YAC1BW,QAAQ;gBACNC,WAAW;oBAAC;iBAAmB;YACjC;QACF,CAAC;IACH,CAAA,GAAI"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { Plugin } from 'payload';
2
- import type { MessagesGuard, MessagesHooks, MessagesSchema } from './types.ts';
2
+ import type { MessagesGuard, MessagesHooks, MessagesSchema, StorageStrategy } from './types.ts';
3
3
  export interface MessagesPluginConfig {
4
4
  schema: MessagesSchema;
5
5
  /**
@@ -15,9 +15,19 @@ export interface MessagesPluginConfig {
15
15
  */
16
16
  editorAccess?: MessagesGuard;
17
17
  hooks?: MessagesHooks;
18
+ /**
19
+ * Where translated messages are persisted.
20
+ *
21
+ * - `'db'` — stores translations as JSON in a `data` field (default).
22
+ * - `'upload'` — stores translations as uploaded `.json` files, enabling
23
+ * static hosting via a CDN or object storage.
24
+ *
25
+ * @default 'db'
26
+ */
27
+ storage?: StorageStrategy;
18
28
  tabs?: boolean;
19
29
  }
20
- export declare const intlPlugin: ({ schema, tabs, collectionSlug, hooks, editorAccess, }: MessagesPluginConfig) => Plugin;
30
+ export declare const intlPlugin: ({ schema, tabs, collectionSlug, hooks, editorAccess, storage, }: MessagesPluginConfig) => Plugin;
21
31
  export { fetchMessages } from './requests/fetchMessages';
22
- export type { Messages, MessagesSchema, } from './types.ts';
32
+ export type { Messages, MessagesSchema, StorageStrategy, } from './types.ts';
23
33
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAKtC,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,MAAM,CAAC;IACxB;;;;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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAKtC,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EACb,cAAc,EACd,eAAe,EAChB,MAAM,YAAY,CAAC;AAGpB,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,cAAc,CAAC;IACvB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,eAAO,MAAM,UAAU,oEAQlB,oBAAoB,KAAG,MA6CzB,CAAC;AAEJ,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,YAAY,EACV,QAAQ,EACR,cAAc,EACd,eAAe,GAChB,MAAM,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -1,11 +1,10 @@
1
- import { getMessagesEndpoint } from './endpoints/get-messages';
1
+ import { PLUGIN_CONTEXT } from './const';
2
2
  import { setMessagesEndpoint } from './endpoints/set-messages';
3
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)=>{
4
+ import { getSupportedLocales } from './utils/config';
5
+ export const intlPlugin = ({ schema, tabs, collectionSlug = 'messages', hooks = {}, editorAccess = (req)=>req.user !== null, storage = 'db' })=>(config)=>{
6
6
  if (!config.localization) {
7
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;
9
8
  }
10
9
  const locales = getSupportedLocales(config.localization);
11
10
  config.admin ??= {};
@@ -30,33 +29,17 @@ export const intlPlugin = ({ schema, tabs, collectionSlug = 'messages', hooks =
30
29
  path: '/intl'
31
30
  }
32
31
  };
33
- attachPluginContext(config, {
34
- collectionSlug
32
+ PLUGIN_CONTEXT.set(config, {
33
+ collectionSlug,
34
+ storage
35
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
36
  config.collections ??= [];
54
37
  config.collections.push(Messages({
55
38
  slug: collectionSlug,
56
- hooks
39
+ hooks,
40
+ storage
57
41
  }));
58
42
  config.endpoints ??= [];
59
- config.endpoints.push(getMessagesEndpoint);
60
43
  config.endpoints.push(setMessagesEndpoint);
61
44
  return config;
62
45
  };
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["import type { 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?: string;\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"}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["import type { Plugin } from 'payload';\nimport type { MessagesViewProps } from './components/MessagesView';\nimport { PLUGIN_CONTEXT } from './const';\nimport { setMessagesEndpoint } from './endpoints/set-messages';\nimport { Messages } from './entities';\nimport type {\n MessagesGuard,\n MessagesHooks,\n MessagesSchema,\n StorageStrategy,\n} from './types.ts';\nimport { 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?: string;\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 /**\n * Where translated messages are persisted.\n *\n * - `'db'` — stores translations as JSON in a `data` field (default).\n * - `'upload'` — stores translations as uploaded `.json` files, enabling\n * static hosting via a CDN or object storage.\n *\n * @default 'db'\n */\n storage?: StorageStrategy;\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 storage = 'db',\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 }\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 PLUGIN_CONTEXT.set(config, {\n collectionSlug,\n storage,\n });\n config.collections ??= [];\n config.collections.push(Messages({ slug: collectionSlug, hooks, storage }));\n\n config.endpoints ??= [];\n config.endpoints.push(setMessagesEndpoint);\n\n return config;\n };\n\nexport { fetchMessages } from './requests/fetchMessages';\n\nexport type {\n Messages,\n MessagesSchema,\n StorageStrategy,\n} from './types.ts';\n"],"names":["PLUGIN_CONTEXT","setMessagesEndpoint","Messages","getSupportedLocales","intlPlugin","schema","tabs","collectionSlug","hooks","editorAccess","req","user","storage","config","localization","console","warn","locales","admin","components","actions","push","exportName","path","views","intl","Component","serverProps","access","set","collections","slug","endpoints","fetchMessages"],"mappings":"AAEA,SAASA,cAAc,QAAQ,UAAU;AACzC,SAASC,mBAAmB,QAAQ,2BAA2B;AAC/D,SAASC,QAAQ,QAAQ,aAAa;AAOtC,SAASC,mBAAmB,QAAQ,iBAAiB;AA8BrD,OAAO,MAAMC,aACX,CAAC,EACCC,MAAM,EACNC,IAAI,EACJC,iBAAiB,UAAU,EAC3BC,QAAQ,CAAC,CAAC,EACVC,eAAe,CAACC,MAAQA,IAAIC,IAAI,KAAK,IAAI,EACzCC,UAAU,IAAI,EACO,GACvB,CAACC;QACC,IAAI,CAACA,OAAOC,YAAY,EAAE;YACxBC,QAAQC,IAAI,CACV;QAEJ;QAEA,MAAMC,UAAUd,oBAAoBU,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,QAAQnB;wBACRQ;wBACAZ;wBACAC;oBACF;gBACF;gBACAiB,MAAM;YACR;QACF;QAEAvB,eAAe6B,GAAG,CAAChB,QAAQ;YACzBN;YACAK;QACF;QACAC,OAAOiB,WAAW,KAAK,EAAE;QACzBjB,OAAOiB,WAAW,CAACT,IAAI,CAACnB,SAAS;YAAE6B,MAAMxB;YAAgBC;YAAOI;QAAQ;QAExEC,OAAOmB,SAAS,KAAK,EAAE;QACvBnB,OAAOmB,SAAS,CAACX,IAAI,CAACpB;QAEtB,OAAOY;IACT,EAAE;AAEJ,SAASoB,aAAa,QAAQ,2BAA2B"}
@@ -94,6 +94,9 @@ export interface User {
94
94
  export interface Message {
95
95
  id: string;
96
96
  locale: string;
97
+ data?: {
98
+ [k: string]: unknown;
99
+ } | unknown[] | string | number | boolean | null;
97
100
  updatedAt: string;
98
101
  createdAt: string;
99
102
  url?: string | null;
@@ -192,6 +195,7 @@ export interface UsersSelect<T extends boolean = true> {
192
195
  */
193
196
  export interface MessagesSelect<T extends boolean = true> {
194
197
  locale?: T;
198
+ data?: T;
195
199
  updatedAt?: T;
196
200
  createdAt?: T;
197
201
  url?: T;
@@ -251,8 +255,4 @@ export interface PayloadMigrationsSelect<T extends boolean = true> {
251
255
  export interface Auth {
252
256
  [k: string]: unknown;
253
257
  }
254
- declare module 'payload' {
255
- interface GeneratedTypes extends Config {
256
- }
257
- }
258
258
  //# sourceMappingURL=payload-types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"payload-types.d.ts","sourceRoot":"","sources":["../src/payload-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"payload-types.d.ts","sourceRoot":"","sources":["../src/payload-types.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,3 @@
1
1
  import type { BasePayload } from 'payload';
2
- import type { Messages } from '../types';
3
- import type { MessagesRequestConfig } from './fetchMessageFromAPI';
4
- export declare function fetchMessages(config: MessagesRequestConfig, locale: string): Promise<Messages>;
5
- export declare function fetchMessages(payload: BasePayload, locale: string): Promise<Messages>;
2
+ export declare function fetchMessages(payload: BasePayload, locale: string): Promise<any>;
6
3
  //# sourceMappingURL=fetchMessages.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetchMessages.d.ts","sourceRoot":"","sources":["../../src/requests/fetchMessages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAEnE,wBAAsB,aAAa,CACjC,MAAM,EAAE,qBAAqB,EAC7B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,QAAQ,CAAC,CAAC;AACrB,wBAAsB,aAAa,CACjC,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,QAAQ,CAAC,CAAC"}
1
+ {"version":3,"file":"fetchMessages.d.ts","sourceRoot":"","sources":["../../src/requests/fetchMessages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAI3C,wBAAsB,aAAa,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,gBAkDvE"}
@@ -1,11 +1,40 @@
1
- export async function fetchMessages(configOrPayload, locale) {
2
- if ('serverUrl' in configOrPayload) {
3
- const { fetchMessagesFromAPI } = await import('./fetchMessageFromAPI');
4
- return fetchMessagesFromAPI(configOrPayload, locale);
5
- } else {
6
- const { fetchMessagesFromPayload } = await import('./fetchMessageFromPayload');
7
- return fetchMessagesFromPayload(configOrPayload, locale);
1
+ import { PLUGIN_CONTEXT } from '../const';
2
+ import { getErrorMessage } from '../utils/error-handling';
3
+ export async function fetchMessages(payload, locale) {
4
+ const ctx = PLUGIN_CONTEXT.get(payload.config);
5
+ if (!ctx) {
6
+ throw new Error('[payload-intl] Plugin context not found. Is the plugin registered?');
8
7
  }
8
+ const { collectionSlug, storage } = ctx;
9
+ const { docs: [doc] } = await payload.find({
10
+ collection: collectionSlug,
11
+ where: {
12
+ locale: {
13
+ equals: locale
14
+ }
15
+ }
16
+ });
17
+ if (!doc) {
18
+ console.warn(`[payload-intl] No messages found for locale ${locale}`);
19
+ return {};
20
+ }
21
+ if (storage === 'db') {
22
+ return doc.data ?? {};
23
+ }
24
+ const { url } = doc;
25
+ if (!url) {
26
+ console.warn(`[payload-intl] No file URL for locale ${locale}, returning empty messages`);
27
+ return {};
28
+ }
29
+ const response = await fetch(url);
30
+ if (!response.ok) {
31
+ const error = await getErrorMessage(response);
32
+ throw new Error(`[payload-intl] Could not fetch messages for locale "${locale}": ${error}`);
33
+ }
34
+ if (response.headers.get('content-type') !== 'application/json') {
35
+ throw new Error(`[payload-intl] Could not fetch messages for locale "${locale}": The page did not return a JSON file.`);
36
+ }
37
+ return await response.json();
9
38
  }
10
39
 
11
40
  //# sourceMappingURL=fetchMessages.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/requests/fetchMessages.ts"],"sourcesContent":["import type { BasePayload } from 'payload';\nimport type { Messages } from '../types';\nimport type { MessagesRequestConfig } from './fetchMessageFromAPI';\n\nexport async function fetchMessages(\n config: MessagesRequestConfig,\n locale: string,\n): Promise<Messages>;\nexport async function fetchMessages(\n payload: BasePayload,\n locale: string,\n): Promise<Messages>;\nexport async function fetchMessages(\n configOrPayload: MessagesRequestConfig | BasePayload,\n locale: string,\n): Promise<Messages> {\n if ('serverUrl' in configOrPayload) {\n const { fetchMessagesFromAPI } = await import('./fetchMessageFromAPI');\n return fetchMessagesFromAPI(configOrPayload, locale);\n } else {\n const { fetchMessagesFromPayload } = await import(\n './fetchMessageFromPayload'\n );\n return fetchMessagesFromPayload(configOrPayload, locale);\n }\n}\n"],"names":["fetchMessages","configOrPayload","locale","fetchMessagesFromAPI","fetchMessagesFromPayload"],"mappings":"AAYA,OAAO,eAAeA,cACpBC,eAAoD,EACpDC,MAAc;IAEd,IAAI,eAAeD,iBAAiB;QAClC,MAAM,EAAEE,oBAAoB,EAAE,GAAG,MAAM,MAAM,CAAC;QAC9C,OAAOA,qBAAqBF,iBAAiBC;IAC/C,OAAO;QACL,MAAM,EAAEE,wBAAwB,EAAE,GAAG,MAAM,MAAM,CAC/C;QAEF,OAAOA,yBAAyBH,iBAAiBC;IACnD;AACF"}
1
+ {"version":3,"sources":["../../src/requests/fetchMessages.ts"],"sourcesContent":["import type { BasePayload } from 'payload';\nimport { PLUGIN_CONTEXT } from '@/const';\nimport { getErrorMessage } from '@/utils/error-handling';\n\nexport async function fetchMessages(payload: BasePayload, locale: string) {\n const ctx = PLUGIN_CONTEXT.get(payload.config);\n if (!ctx) {\n throw new Error(\n '[payload-intl] Plugin context not found. Is the plugin registered?',\n );\n }\n const { collectionSlug, storage } = ctx;\n\n const {\n docs: [doc],\n } = await payload.find({\n collection: collectionSlug as 'messages',\n where: { locale: { equals: locale } },\n });\n\n if (!doc) {\n console.warn(`[payload-intl] No messages found for locale ${locale}`);\n return {};\n }\n\n if (storage === 'db') {\n return doc.data ?? {};\n }\n\n const { url } = doc;\n\n if (!url) {\n console.warn(\n `[payload-intl] No file URL for locale ${locale}, returning empty messages`,\n );\n return {};\n }\n\n const response = await fetch(url);\n\n if (!response.ok) {\n const error = await getErrorMessage(response);\n throw new Error(\n `[payload-intl] Could not fetch messages for locale \"${locale}\": ${error}`,\n );\n }\n\n if (response.headers.get('content-type') !== 'application/json') {\n throw new Error(\n `[payload-intl] Could not fetch messages for locale \"${locale}\": The page did not return a JSON file.`,\n );\n }\n\n return await response.json();\n}\n"],"names":["PLUGIN_CONTEXT","getErrorMessage","fetchMessages","payload","locale","ctx","get","config","Error","collectionSlug","storage","docs","doc","find","collection","where","equals","console","warn","data","url","response","fetch","ok","error","headers","json"],"mappings":"AACA,SAASA,cAAc,QAAQ,UAAU;AACzC,SAASC,eAAe,QAAQ,yBAAyB;AAEzD,OAAO,eAAeC,cAAcC,OAAoB,EAAEC,MAAc;IACtE,MAAMC,MAAML,eAAeM,GAAG,CAACH,QAAQI,MAAM;IAC7C,IAAI,CAACF,KAAK;QACR,MAAM,IAAIG,MACR;IAEJ;IACA,MAAM,EAAEC,cAAc,EAAEC,OAAO,EAAE,GAAGL;IAEpC,MAAM,EACJM,MAAM,CAACC,IAAI,EACZ,GAAG,MAAMT,QAAQU,IAAI,CAAC;QACrBC,YAAYL;QACZM,OAAO;YAAEX,QAAQ;gBAAEY,QAAQZ;YAAO;QAAE;IACtC;IAEA,IAAI,CAACQ,KAAK;QACRK,QAAQC,IAAI,CAAC,CAAC,4CAA4C,EAAEd,QAAQ;QACpE,OAAO,CAAC;IACV;IAEA,IAAIM,YAAY,MAAM;QACpB,OAAOE,IAAIO,IAAI,IAAI,CAAC;IACtB;IAEA,MAAM,EAAEC,GAAG,EAAE,GAAGR;IAEhB,IAAI,CAACQ,KAAK;QACRH,QAAQC,IAAI,CACV,CAAC,sCAAsC,EAAEd,OAAO,0BAA0B,CAAC;QAE7E,OAAO,CAAC;IACV;IAEA,MAAMiB,WAAW,MAAMC,MAAMF;IAE7B,IAAI,CAACC,SAASE,EAAE,EAAE;QAChB,MAAMC,QAAQ,MAAMvB,gBAAgBoB;QACpC,MAAM,IAAIb,MACR,CAAC,oDAAoD,EAAEJ,OAAO,GAAG,EAAEoB,OAAO;IAE9E;IAEA,IAAIH,SAASI,OAAO,CAACnB,GAAG,CAAC,oBAAoB,oBAAoB;QAC/D,MAAM,IAAIE,MACR,CAAC,oDAAoD,EAAEJ,OAAO,uCAAuC,CAAC;IAE1G;IAEA,OAAO,MAAMiB,SAASK,IAAI;AAC5B"}
package/dist/types.d.ts CHANGED
@@ -6,6 +6,7 @@ export type ResolvedPluginOptions<K extends keyof MessagesPluginConfig = keyof M
6
6
  export type MessagesHooks = {
7
7
  afterUpdate?: () => Promise<void> | void;
8
8
  } & CollectionConfig['hooks'];
9
+ export type StorageStrategy = 'db' | 'upload';
9
10
  export type MessagesGuard = (req: PayloadRequest) => boolean | Promise<boolean>;
10
11
  export type Locale = string;
11
12
  export type Translations<T> = Record<Locale, T>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,oBAAoB,EACpB,YAAY,EACb,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,GAAG,CAAC;AAE9C,MAAM,MAAM,qBAAqB,CAC/B,CAAC,SAAS,MAAM,oBAAoB,GAAG,MAAM,oBAAoB,IAC/D,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC,CAAC;AAE5C,MAAM,MAAM,aAAa,GAAG;IAC1B,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAC1C,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAE9B,MAAM,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,cAAc,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAIhF,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC;AAE5B,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAEhD,MAAM,MAAM,QAAQ,CAAC,CAAC,GAAG,MAAM,IAAI;IACjC,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC;AACnC,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;AAErD,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED,YAAY,EAAE,WAAW,EAAE,CAAC;AAE5B,MAAM,MAAM,gBAAgB,GAAG,OAAO,CACpC,oBAAoB,EACpB,cAAc,GAAG,YAAY,CAC9B,CAAC;AAEF,YAAY,EACV,eAAe,EACf,WAAW,EACX,cAAc,EACd,aAAa,EACb,aAAa,EACb,aAAa,EACb,UAAU,EACV,WAAW,GACZ,MAAM,oCAAoC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,oBAAoB,EACpB,YAAY,EACb,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,GAAG,CAAC;AAE9C,MAAM,MAAM,qBAAqB,CAC/B,CAAC,SAAS,MAAM,oBAAoB,GAAG,MAAM,oBAAoB,IAC/D,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC,CAAC;AAE5C,MAAM,MAAM,aAAa,GAAG;IAC1B,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAC1C,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAE9B,MAAM,MAAM,eAAe,GAAG,IAAI,GAAG,QAAQ,CAAC;AAE9C,MAAM,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,cAAc,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAIhF,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC;AAE5B,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAEhD,MAAM,MAAM,QAAQ,CAAC,CAAC,GAAG,MAAM,IAAI;IACjC,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC;AACnC,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;AAErD,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED,YAAY,EAAE,WAAW,EAAE,CAAC;AAE5B,MAAM,MAAM,gBAAgB,GAAG,OAAO,CACpC,oBAAoB,EACpB,cAAc,GAAG,YAAY,CAC9B,CAAC;AAEF,YAAY,EACV,eAAe,EACf,WAAW,EACX,cAAc,EACd,aAAa,EACb,aAAa,EACb,aAAa,EACb,UAAU,EACV,WAAW,GACZ,MAAM,oCAAoC,CAAC"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/types.ts"],"sourcesContent":["import type {\n LiteralElement,\n MessageFormatElement,\n PoundElement,\n} from '@formatjs/icu-messageformat-parser';\nimport type { CollectionConfig, PayloadRequest } from 'payload';\nimport type { DeepPartial } from 'react-hook-form';\nimport type { MessagesPluginConfig } from '.';\n\nexport type ResolvedPluginOptions<\n K extends keyof MessagesPluginConfig = keyof MessagesPluginConfig,\n> = Pick<Required<MessagesPluginConfig>, K>;\n\nexport type MessagesHooks = {\n afterUpdate?: () => Promise<void> | void;\n} & CollectionConfig['hooks'];\n\nexport type MessagesGuard = (req: PayloadRequest) => boolean | Promise<boolean>;\n\n/* MARK: Messages */\n\nexport type Locale = string;\n\nexport type Translations<T> = Record<Locale, T>;\n\nexport type Messages<T = string> = {\n [key: string]: Messages<T> | T;\n};\n\nexport type MessageSchema = string;\nexport type MessagesSchema = Messages<MessageSchema>;\n\nexport interface VariableMentionNodeAttrs {\n name: string;\n label: string;\n icu: string;\n}\n\nexport type { DeepPartial };\n\nexport type TemplateVariable = Exclude<\n MessageFormatElement,\n LiteralElement | PoundElement\n>;\n\nexport type {\n ArgumentElement,\n DateElement,\n LiteralElement,\n NumberElement,\n PluralElement,\n SelectElement,\n TagElement,\n TimeElement,\n} from '@formatjs/icu-messageformat-parser';\n"],"names":[],"mappings":"AA6CA,WAS4C"}
1
+ {"version":3,"sources":["../src/types.ts"],"sourcesContent":["import type {\n LiteralElement,\n MessageFormatElement,\n PoundElement,\n} from '@formatjs/icu-messageformat-parser';\nimport type { CollectionConfig, PayloadRequest } from 'payload';\nimport type { DeepPartial } from 'react-hook-form';\nimport type { MessagesPluginConfig } from '.';\n\nexport type ResolvedPluginOptions<\n K extends keyof MessagesPluginConfig = keyof MessagesPluginConfig,\n> = Pick<Required<MessagesPluginConfig>, K>;\n\nexport type MessagesHooks = {\n afterUpdate?: () => Promise<void> | void;\n} & CollectionConfig['hooks'];\n\nexport type StorageStrategy = 'db' | 'upload';\n\nexport type MessagesGuard = (req: PayloadRequest) => boolean | Promise<boolean>;\n\n/* MARK: Messages */\n\nexport type Locale = string;\n\nexport type Translations<T> = Record<Locale, T>;\n\nexport type Messages<T = string> = {\n [key: string]: Messages<T> | T;\n};\n\nexport type MessageSchema = string;\nexport type MessagesSchema = Messages<MessageSchema>;\n\nexport interface VariableMentionNodeAttrs {\n name: string;\n label: string;\n icu: string;\n}\n\nexport type { DeepPartial };\n\nexport type TemplateVariable = Exclude<\n MessageFormatElement,\n LiteralElement | PoundElement\n>;\n\nexport type {\n ArgumentElement,\n DateElement,\n LiteralElement,\n NumberElement,\n PluralElement,\n SelectElement,\n TagElement,\n TimeElement,\n} from '@formatjs/icu-messageformat-parser';\n"],"names":[],"mappings":"AA+CA,WAS4C"}
@@ -1,12 +1,4 @@
1
- import type { Config, SanitizedConfig } from 'payload';
2
- import { z } from 'zod/v4-mini';
1
+ import type { Config } from 'payload';
3
2
  import type { Locale } from '../types';
4
3
  export declare const getSupportedLocales: (localization: Config["localization"]) => Locale[];
5
- declare const pluginContextSchema: z.ZodMiniObject<{
6
- collectionSlug: z.ZodMiniString<string>;
7
- }, z.core.$strip>;
8
- type PluginContext = z.infer<typeof pluginContextSchema>;
9
- export declare const attachPluginContext: (config: Config, context: PluginContext) => void;
10
- export declare const getPluginContext: (config: SanitizedConfig) => PluginContext;
11
- export {};
12
4
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AACvD,OAAO,EAAE,CAAC,EAAE,MAAM,aAAa,CAAC;AAChC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC,eAAO,MAAM,mBAAmB,iBAChB,MAAM,CAAC,cAAc,CAAC,KACnC,MAAM,EAaR,CAAC;AAGF,QAAA,MAAM,mBAAmB;;iBAEvB,CAAC;AACH,KAAK,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEzD,eAAO,MAAM,mBAAmB,WAAY,MAAM,WAAW,aAAa,SAGzE,CAAC;AAEF,eAAO,MAAM,gBAAgB,WAAY,eAAe,KAAG,aACH,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC,eAAO,MAAM,mBAAmB,iBAChB,MAAM,CAAC,cAAc,CAAC,KACnC,MAAM,EAaR,CAAC"}
@@ -1,4 +1,3 @@
1
- import { z } from 'zod/v4-mini';
2
1
  export const getSupportedLocales = (localization)=>{
3
2
  if (!localization) {
4
3
  return [];
@@ -15,14 +14,5 @@ export const getSupportedLocales = (localization)=>{
15
14
  return locale.code;
16
15
  });
17
16
  };
18
- const PLUGIN_KEY = 'intl-plugin';
19
- const pluginContextSchema = z.object({
20
- collectionSlug: z.string()
21
- });
22
- export const attachPluginContext = (config, context)=>{
23
- config.custom ??= {};
24
- config.custom[PLUGIN_KEY] = context;
25
- };
26
- export const getPluginContext = (config)=>pluginContextSchema.parse(config.custom?.[PLUGIN_KEY]);
27
17
 
28
18
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/config.ts"],"sourcesContent":["import type { Config, SanitizedConfig } from 'payload';\nimport { z } from 'zod/v4-mini';\nimport type { Locale } from '../types';\n\nexport const getSupportedLocales = (\n localization: Config['localization'],\n): Locale[] => {\n if (!localization) {\n return [];\n }\n if (localization.locales.length === 0) {\n return [localization.defaultLocale];\n }\n return localization.locales.map((locale) => {\n if (typeof locale === 'string') {\n return locale;\n }\n return locale.code;\n });\n};\n\nconst PLUGIN_KEY = 'intl-plugin';\nconst pluginContextSchema = z.object({\n collectionSlug: z.string(),\n});\ntype PluginContext = z.infer<typeof pluginContextSchema>;\n\nexport const attachPluginContext = (config: Config, context: PluginContext) => {\n config.custom ??= {};\n config.custom[PLUGIN_KEY] = context;\n};\n\nexport const getPluginContext = (config: SanitizedConfig): PluginContext =>\n pluginContextSchema.parse(config.custom?.[PLUGIN_KEY]);\n"],"names":["z","getSupportedLocales","localization","locales","length","defaultLocale","map","locale","code","PLUGIN_KEY","pluginContextSchema","object","collectionSlug","string","attachPluginContext","config","context","custom","getPluginContext","parse"],"mappings":"AACA,SAASA,CAAC,QAAQ,cAAc;AAGhC,OAAO,MAAMC,sBAAsB,CACjCC;IAEA,IAAI,CAACA,cAAc;QACjB,OAAO,EAAE;IACX;IACA,IAAIA,aAAaC,OAAO,CAACC,MAAM,KAAK,GAAG;QACrC,OAAO;YAACF,aAAaG,aAAa;SAAC;IACrC;IACA,OAAOH,aAAaC,OAAO,CAACG,GAAG,CAAC,CAACC;QAC/B,IAAI,OAAOA,WAAW,UAAU;YAC9B,OAAOA;QACT;QACA,OAAOA,OAAOC,IAAI;IACpB;AACF,EAAE;AAEF,MAAMC,aAAa;AACnB,MAAMC,sBAAsBV,EAAEW,MAAM,CAAC;IACnCC,gBAAgBZ,EAAEa,MAAM;AAC1B;AAGA,OAAO,MAAMC,sBAAsB,CAACC,QAAgBC;IAClDD,OAAOE,MAAM,KAAK,CAAC;IACnBF,OAAOE,MAAM,CAACR,WAAW,GAAGO;AAC9B,EAAE;AAEF,OAAO,MAAME,mBAAmB,CAACH,SAC/BL,oBAAoBS,KAAK,CAACJ,OAAOE,MAAM,EAAE,CAACR,WAAW,EAAE"}
1
+ {"version":3,"sources":["../../src/utils/config.ts"],"sourcesContent":["import type { Config } from 'payload';\nimport type { Locale } from '../types';\n\nexport const getSupportedLocales = (\n localization: Config['localization'],\n): Locale[] => {\n if (!localization) {\n return [];\n }\n if (localization.locales.length === 0) {\n return [localization.defaultLocale];\n }\n return localization.locales.map((locale) => {\n if (typeof locale === 'string') {\n return locale;\n }\n return locale.code;\n });\n};\n"],"names":["getSupportedLocales","localization","locales","length","defaultLocale","map","locale","code"],"mappings":"AAGA,OAAO,MAAMA,sBAAsB,CACjCC;IAEA,IAAI,CAACA,cAAc;QACjB,OAAO,EAAE;IACX;IACA,IAAIA,aAAaC,OAAO,CAACC,MAAM,KAAK,GAAG;QACrC,OAAO;YAACF,aAAaG,aAAa;SAAC;IACrC;IACA,OAAOH,aAAaC,OAAO,CAACG,GAAG,CAAC,CAACC;QAC/B,IAAI,OAAOA,WAAW,UAAU;YAC9B,OAAOA;QACT;QACA,OAAOA,OAAOC,IAAI;IACpB;AACF,EAAE"}
@@ -3,5 +3,4 @@ import { isArgumentElement, isDateElement, isLiteralElement, isNumberElement, is
3
3
  export declare const isNumericElement: (element: MessageFormatElement) => element is NumberElement | PluralElement;
4
4
  export declare const isTemporalElement: (element: MessageFormatElement) => element is DateElement | TimeElement;
5
5
  export { isLiteralElement, isArgumentElement, isNumberElement, isSelectElement, isPluralElement, isDateElement, isTimeElement, isTagElement, };
6
- export declare const uncaughtSwitchCase: (value: never) => never;
7
6
  //# sourceMappingURL=guards.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"guards.d.ts","sourceRoot":"","sources":["../../src/utils/guards.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,oBAAoB,EACpB,aAAa,EACb,aAAa,EACb,WAAW,EACZ,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,eAAe,EACf,YAAY,EACZ,aAAa,EACd,MAAM,oCAAoC,CAAC;AAE5C,eAAO,MAAM,gBAAgB,YAClB,oBAAoB,KAC5B,OAAO,IAAI,aAAa,GAAG,aACwB,CAAC;AAEvD,eAAO,MAAM,iBAAiB,YACnB,oBAAoB,KAC5B,OAAO,IAAI,WAAW,GAAG,WACsB,CAAC;AAEnD,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,eAAe,EACf,aAAa,EACb,aAAa,EACb,YAAY,GACb,CAAC;AAEF,eAAO,MAAM,kBAAkB,UAAW,KAAK,UAE9C,CAAC"}
1
+ {"version":3,"file":"guards.d.ts","sourceRoot":"","sources":["../../src/utils/guards.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,oBAAoB,EACpB,aAAa,EACb,aAAa,EACb,WAAW,EACZ,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,eAAe,EACf,YAAY,EACZ,aAAa,EACd,MAAM,oCAAoC,CAAC;AAE5C,eAAO,MAAM,gBAAgB,YAClB,oBAAoB,KAC5B,OAAO,IAAI,aAAa,GAAG,aACwB,CAAC;AAEvD,eAAO,MAAM,iBAAiB,YACnB,oBAAoB,KAC5B,OAAO,IAAI,WAAW,GAAG,WACsB,CAAC;AAEnD,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,eAAe,EACf,aAAa,EACb,aAAa,EACb,YAAY,GACb,CAAC"}
@@ -2,8 +2,5 @@ import { isArgumentElement, isDateElement, isLiteralElement, isNumberElement, is
2
2
  export const isNumericElement = (element)=>isNumberElement(element) || isPluralElement(element);
3
3
  export const isTemporalElement = (element)=>isDateElement(element) || isTimeElement(element);
4
4
  export { isLiteralElement, isArgumentElement, isNumberElement, isSelectElement, isPluralElement, isDateElement, isTimeElement, isTagElement };
5
- export const uncaughtSwitchCase = (value)=>{
6
- throw new Error(`Unhandled switch case: ${value}`);
7
- };
8
5
 
9
6
  //# sourceMappingURL=guards.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/guards.ts"],"sourcesContent":["import type {\n DateElement,\n MessageFormatElement,\n NumberElement,\n PluralElement,\n TimeElement,\n} from '@formatjs/icu-messageformat-parser';\nimport {\n isArgumentElement,\n isDateElement,\n isLiteralElement,\n isNumberElement,\n isPluralElement,\n isSelectElement,\n isTagElement,\n isTimeElement,\n} from '@formatjs/icu-messageformat-parser';\n\nexport const isNumericElement = (\n element: MessageFormatElement,\n): element is NumberElement | PluralElement =>\n isNumberElement(element) || isPluralElement(element);\n\nexport const isTemporalElement = (\n element: MessageFormatElement,\n): element is DateElement | TimeElement =>\n isDateElement(element) || isTimeElement(element);\n\nexport {\n isLiteralElement,\n isArgumentElement,\n isNumberElement,\n isSelectElement,\n isPluralElement,\n isDateElement,\n isTimeElement,\n isTagElement,\n};\n\nexport const uncaughtSwitchCase = (value: never) => {\n throw new Error(`Unhandled switch case: ${value}`);\n};\n"],"names":["isArgumentElement","isDateElement","isLiteralElement","isNumberElement","isPluralElement","isSelectElement","isTagElement","isTimeElement","isNumericElement","element","isTemporalElement","uncaughtSwitchCase","value","Error"],"mappings":"AAOA,SACEA,iBAAiB,EACjBC,aAAa,EACbC,gBAAgB,EAChBC,eAAe,EACfC,eAAe,EACfC,eAAe,EACfC,YAAY,EACZC,aAAa,QACR,qCAAqC;AAE5C,OAAO,MAAMC,mBAAmB,CAC9BC,UAEAN,gBAAgBM,YAAYL,gBAAgBK,SAAS;AAEvD,OAAO,MAAMC,oBAAoB,CAC/BD,UAEAR,cAAcQ,YAAYF,cAAcE,SAAS;AAEnD,SACEP,gBAAgB,EAChBF,iBAAiB,EACjBG,eAAe,EACfE,eAAe,EACfD,eAAe,EACfH,aAAa,EACbM,aAAa,EACbD,YAAY,GACZ;AAEF,OAAO,MAAMK,qBAAqB,CAACC;IACjC,MAAM,IAAIC,MAAM,CAAC,uBAAuB,EAAED,OAAO;AACnD,EAAE"}
1
+ {"version":3,"sources":["../../src/utils/guards.ts"],"sourcesContent":["import type {\n DateElement,\n MessageFormatElement,\n NumberElement,\n PluralElement,\n TimeElement,\n} from '@formatjs/icu-messageformat-parser';\nimport {\n isArgumentElement,\n isDateElement,\n isLiteralElement,\n isNumberElement,\n isPluralElement,\n isSelectElement,\n isTagElement,\n isTimeElement,\n} from '@formatjs/icu-messageformat-parser';\n\nexport const isNumericElement = (\n element: MessageFormatElement,\n): element is NumberElement | PluralElement =>\n isNumberElement(element) || isPluralElement(element);\n\nexport const isTemporalElement = (\n element: MessageFormatElement,\n): element is DateElement | TimeElement =>\n isDateElement(element) || isTimeElement(element);\n\nexport {\n isLiteralElement,\n isArgumentElement,\n isNumberElement,\n isSelectElement,\n isPluralElement,\n isDateElement,\n isTimeElement,\n isTagElement,\n};\n"],"names":["isArgumentElement","isDateElement","isLiteralElement","isNumberElement","isPluralElement","isSelectElement","isTagElement","isTimeElement","isNumericElement","element","isTemporalElement"],"mappings":"AAOA,SACEA,iBAAiB,EACjBC,aAAa,EACbC,gBAAgB,EAChBC,eAAe,EACfC,eAAe,EACfC,eAAe,EACfC,YAAY,EACZC,aAAa,QACR,qCAAqC;AAE5C,OAAO,MAAMC,mBAAmB,CAC9BC,UAEAN,gBAAgBM,YAAYL,gBAAgBK,SAAS;AAEvD,OAAO,MAAMC,oBAAoB,CAC/BD,UAEAR,cAAcQ,YAAYF,cAAcE,SAAS;AAEnD,SACEP,gBAAgB,EAChBF,iBAAiB,EACjBG,eAAe,EACfE,eAAe,EACfD,eAAe,EACfH,aAAa,EACbM,aAAa,EACbD,YAAY,GACZ"}
@@ -1 +1 @@
1
- {"version":3,"file":"icu-tranform.d.ts","sourceRoot":"","sources":["../../src/utils/icu-tranform.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAE/E,OAAO,KAAK,EAEV,uBAAuB,EAExB,MAAM,sCAAsC,CAAC;AAK9C;;GAEG;AACH,eAAO,MAAM,eAAe,YAAa,MAAM,KAAG,oBAAoB,EACtD,CAAC;AAEjB;;GAEG;AACH,eAAO,MAAM,mBAAmB,aAAc,oBAAoB,EAAE,KAAG,MA8C1D,CAAC;AA4Cd,KAAK,wBAAwB,GAAG;IAC9B,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,CAAC,CAAC;QACX,SAAS,EAAE,IAAI,CAAC;QAChB,MAAM,EAAE,EAAE,CAAC;QACX,MAAM,EAAE,CAAC,CAAC;QACV,QAAQ,EAAE,CAAC,uBAAuB,CAAC,CAAC;KACrC,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB,eACrB,MAAM,KACjB,wBAwEF,CAAC"}
1
+ {"version":3,"file":"icu-tranform.d.ts","sourceRoot":"","sources":["../../src/utils/icu-tranform.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAE/E,OAAO,KAAK,EAEV,uBAAuB,EAExB,MAAM,sCAAsC,CAAC;AAI9C;;GAEG;AACH,eAAO,MAAM,eAAe,YAAa,MAAM,KAAG,oBAAoB,EACtD,CAAC;AAEjB;;GAEG;AACH,eAAO,MAAM,mBAAmB,aAAc,oBAAoB,EAAE,KAAG,MA8C1D,CAAC;AA4Cd,KAAK,wBAAwB,GAAG;IAC9B,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,CAAC,CAAC;QACX,SAAS,EAAE,IAAI,CAAC;QAChB,MAAM,EAAE,EAAE,CAAC;QACX,MAAM,EAAE,CAAC,CAAC;QACV,QAAQ,EAAE,CAAC,uBAAuB,CAAC,CAAC;KACrC,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB,eACrB,MAAM,KACjB,wBAwEF,CAAC"}
@@ -1,6 +1,6 @@
1
+ import { uncaughtSwitchCase } from '@davincicoding/payload-plugin-kit';
1
2
  import { parse, TYPE } from '@formatjs/icu-messageformat-parser';
2
3
  import { formatVariableLabel } from './format';
3
- import { uncaughtSwitchCase } from './guards';
4
4
  /**
5
5
  * Parse an ICU message string into a AST array
6
6
  */ export const parseICUMessage = (message)=>parse(message);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/icu-tranform.ts"],"sourcesContent":["import type { MessageFormatElement } from '@formatjs/icu-messageformat-parser';\nimport { parse, TYPE } from '@formatjs/icu-messageformat-parser';\nimport type {\n SerializedLexicalNode,\n SerializedParagraphNode,\n SerializedTextNode,\n} from '@payloadcms/richtext-lexical/lexical';\nimport type { SerializedBeautifulMentionNode } from 'lexical-beautiful-mentions';\nimport { formatVariableLabel } from './format';\nimport { uncaughtSwitchCase } from './guards';\n\n/**\n * Parse an ICU message string into a AST array\n */\nexport const parseICUMessage = (message: string): MessageFormatElement[] =>\n parse(message);\n\n/**\n * Serialize an ICU message AST array into a ICU message string\n */\nexport const serializeICUMessage = (elements: MessageFormatElement[]): string =>\n elements\n .map((element) => {\n switch (element.type) {\n case TYPE.literal:\n return element.value;\n case TYPE.argument:\n return stringifyElement(element.value);\n case TYPE.number:\n // TODO serialize element.style\n return stringifyElement(element.value, 'number');\n case TYPE.select:\n return stringifyElement(\n element.value,\n 'select',\n Object.entries(element.options).map(\n ([key, option]) =>\n `${key} {${option.value.length > 0 ? serializeICUMessage(option.value) : key}}`,\n ),\n );\n case TYPE.plural:\n return stringifyElement(element.value, 'plural', [\n element.offset < 0 && `offset:${element.offset}`,\n ...Object.entries(element.options).map(\n ([key, option]) =>\n `${key} {${\n option.value.length > 0\n ? serializeICUMessage(option.value)\n : key\n }}`,\n ),\n ]);\n case TYPE.tag:\n return `<${element.value}>${serializeICUMessage(element.children)}</${element.value}>`;\n case TYPE.date:\n // TODO serialize element.style\n return stringifyElement(element.value, 'date');\n case TYPE.time:\n // TODO serialize element.style\n return stringifyElement(element.value, 'time');\n case TYPE.pound:\n return '#';\n default:\n return uncaughtSwitchCase(element);\n }\n })\n .join('');\n\nconst stringifyElement = (\n name: string,\n type?: string,\n options: (string | boolean)[] = [],\n) => {\n if (type === undefined) return `{${name}}`;\n\n const filteredOptions = options.filter(\n (option): option is string =>\n typeof option === 'string' && option.length > 0,\n );\n if (filteredOptions.length === 0) return `{${name}, ${type}}`;\n\n return `{${name}, ${type}, ${filteredOptions.join(' ')}}`;\n};\n\nfunction serializeTextNode(text: string): SerializedTextNode {\n return {\n type: 'text',\n version: 1,\n text,\n detail: 0,\n format: 0,\n mode: 'normal',\n style: '',\n };\n}\n\nfunction serializeMentionNode(\n name: string,\n label: string,\n icu: string,\n): SerializedBeautifulMentionNode {\n return {\n type: 'variableMention',\n version: 1,\n trigger: '@',\n value: name,\n data: { label, icu },\n };\n}\n\ntype SerializedICUEditorState = {\n root: {\n type: 'root';\n version: 1;\n direction: null;\n format: '';\n indent: 0;\n children: [SerializedParagraphNode];\n };\n};\n\n/**\n * Parse an ICU message string into a Lexical serialized editor state\n */\nexport const parseIcuToLexicalState = (\n icuMessage: string,\n): SerializedICUEditorState => {\n try {\n const elements = parseICUMessage(icuMessage);\n const children = elements.flatMap<SerializedLexicalNode>((element) => {\n switch (element.type) {\n case TYPE.literal:\n return [serializeTextNode(element.value)];\n case TYPE.pound:\n return [serializeTextNode('#')];\n case TYPE.argument:\n case TYPE.number:\n case TYPE.date:\n case TYPE.time:\n case TYPE.select:\n case TYPE.plural:\n case TYPE.tag:\n return [\n serializeMentionNode(\n element.value,\n formatVariableLabel(element),\n serializeICUMessage([element]),\n ),\n ];\n default:\n return uncaughtSwitchCase(element);\n }\n });\n\n return {\n root: {\n type: 'root',\n version: 1,\n direction: null,\n format: '',\n indent: 0,\n children: [\n {\n type: 'paragraph',\n version: 1,\n direction: null,\n format: '',\n indent: 0,\n textFormat: 0,\n textStyle: '',\n children,\n },\n ],\n },\n };\n } catch {\n return {\n root: {\n type: 'root',\n version: 1,\n direction: null,\n format: '',\n indent: 0,\n children: [\n {\n type: 'paragraph',\n version: 1,\n direction: null,\n format: '',\n indent: 0,\n textFormat: 0,\n textStyle: '',\n children: [serializeTextNode(icuMessage)],\n },\n ],\n },\n };\n }\n};\n"],"names":["parse","TYPE","formatVariableLabel","uncaughtSwitchCase","parseICUMessage","message","serializeICUMessage","elements","map","element","type","literal","value","argument","stringifyElement","number","select","Object","entries","options","key","option","length","plural","offset","tag","children","date","time","pound","join","name","undefined","filteredOptions","filter","serializeTextNode","text","version","detail","format","mode","style","serializeMentionNode","label","icu","trigger","data","parseIcuToLexicalState","icuMessage","flatMap","root","direction","indent","textFormat","textStyle"],"mappings":"AACA,SAASA,KAAK,EAAEC,IAAI,QAAQ,qCAAqC;AAOjE,SAASC,mBAAmB,QAAQ,WAAW;AAC/C,SAASC,kBAAkB,QAAQ,WAAW;AAE9C;;CAEC,GACD,OAAO,MAAMC,kBAAkB,CAACC,UAC9BL,MAAMK,SAAS;AAEjB;;CAEC,GACD,OAAO,MAAMC,sBAAsB,CAACC,WAClCA,SACGC,GAAG,CAAC,CAACC;QACJ,OAAQA,QAAQC,IAAI;YAClB,KAAKT,KAAKU,OAAO;gBACf,OAAOF,QAAQG,KAAK;YACtB,KAAKX,KAAKY,QAAQ;gBAChB,OAAOC,iBAAiBL,QAAQG,KAAK;YACvC,KAAKX,KAAKc,MAAM;gBACd,+BAA+B;gBAC/B,OAAOD,iBAAiBL,QAAQG,KAAK,EAAE;YACzC,KAAKX,KAAKe,MAAM;gBACd,OAAOF,iBACLL,QAAQG,KAAK,EACb,UACAK,OAAOC,OAAO,CAACT,QAAQU,OAAO,EAAEX,GAAG,CACjC,CAAC,CAACY,KAAKC,OAAO,GACZ,GAAGD,IAAI,EAAE,EAAEC,OAAOT,KAAK,CAACU,MAAM,GAAG,IAAIhB,oBAAoBe,OAAOT,KAAK,IAAIQ,IAAI,CAAC,CAAC;YAGvF,KAAKnB,KAAKsB,MAAM;gBACd,OAAOT,iBAAiBL,QAAQG,KAAK,EAAE,UAAU;oBAC/CH,QAAQe,MAAM,GAAG,KAAK,CAAC,OAAO,EAAEf,QAAQe,MAAM,EAAE;uBAC7CP,OAAOC,OAAO,CAACT,QAAQU,OAAO,EAAEX,GAAG,CACpC,CAAC,CAACY,KAAKC,OAAO,GACZ,GAAGD,IAAI,EAAE,EACPC,OAAOT,KAAK,CAACU,MAAM,GAAG,IAClBhB,oBAAoBe,OAAOT,KAAK,IAChCQ,IACL,CAAC,CAAC;iBAER;YACH,KAAKnB,KAAKwB,GAAG;gBACX,OAAO,CAAC,CAAC,EAAEhB,QAAQG,KAAK,CAAC,CAAC,EAAEN,oBAAoBG,QAAQiB,QAAQ,EAAE,EAAE,EAAEjB,QAAQG,KAAK,CAAC,CAAC,CAAC;YACxF,KAAKX,KAAK0B,IAAI;gBACZ,+BAA+B;gBAC/B,OAAOb,iBAAiBL,QAAQG,KAAK,EAAE;YACzC,KAAKX,KAAK2B,IAAI;gBACZ,+BAA+B;gBAC/B,OAAOd,iBAAiBL,QAAQG,KAAK,EAAE;YACzC,KAAKX,KAAK4B,KAAK;gBACb,OAAO;YACT;gBACE,OAAO1B,mBAAmBM;QAC9B;IACF,GACCqB,IAAI,CAAC,IAAI;AAEd,MAAMhB,mBAAmB,CACvBiB,MACArB,MACAS,UAAgC,EAAE;IAElC,IAAIT,SAASsB,WAAW,OAAO,CAAC,CAAC,EAAED,KAAK,CAAC,CAAC;IAE1C,MAAME,kBAAkBd,QAAQe,MAAM,CACpC,CAACb,SACC,OAAOA,WAAW,YAAYA,OAAOC,MAAM,GAAG;IAElD,IAAIW,gBAAgBX,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,EAAES,KAAK,EAAE,EAAErB,KAAK,CAAC,CAAC;IAE7D,OAAO,CAAC,CAAC,EAAEqB,KAAK,EAAE,EAAErB,KAAK,EAAE,EAAEuB,gBAAgBH,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3D;AAEA,SAASK,kBAAkBC,IAAY;IACrC,OAAO;QACL1B,MAAM;QACN2B,SAAS;QACTD;QACAE,QAAQ;QACRC,QAAQ;QACRC,MAAM;QACNC,OAAO;IACT;AACF;AAEA,SAASC,qBACPX,IAAY,EACZY,KAAa,EACbC,GAAW;IAEX,OAAO;QACLlC,MAAM;QACN2B,SAAS;QACTQ,SAAS;QACTjC,OAAOmB;QACPe,MAAM;YAAEH;YAAOC;QAAI;IACrB;AACF;AAaA;;CAEC,GACD,OAAO,MAAMG,yBAAyB,CACpCC;IAEA,IAAI;QACF,MAAMzC,WAAWH,gBAAgB4C;QACjC,MAAMtB,WAAWnB,SAAS0C,OAAO,CAAwB,CAACxC;YACxD,OAAQA,QAAQC,IAAI;gBAClB,KAAKT,KAAKU,OAAO;oBACf,OAAO;wBAACwB,kBAAkB1B,QAAQG,KAAK;qBAAE;gBAC3C,KAAKX,KAAK4B,KAAK;oBACb,OAAO;wBAACM,kBAAkB;qBAAK;gBACjC,KAAKlC,KAAKY,QAAQ;gBAClB,KAAKZ,KAAKc,MAAM;gBAChB,KAAKd,KAAK0B,IAAI;gBACd,KAAK1B,KAAK2B,IAAI;gBACd,KAAK3B,KAAKe,MAAM;gBAChB,KAAKf,KAAKsB,MAAM;gBAChB,KAAKtB,KAAKwB,GAAG;oBACX,OAAO;wBACLiB,qBACEjC,QAAQG,KAAK,EACbV,oBAAoBO,UACpBH,oBAAoB;4BAACG;yBAAQ;qBAEhC;gBACH;oBACE,OAAON,mBAAmBM;YAC9B;QACF;QAEA,OAAO;YACLyC,MAAM;gBACJxC,MAAM;gBACN2B,SAAS;gBACTc,WAAW;gBACXZ,QAAQ;gBACRa,QAAQ;gBACR1B,UAAU;oBACR;wBACEhB,MAAM;wBACN2B,SAAS;wBACTc,WAAW;wBACXZ,QAAQ;wBACRa,QAAQ;wBACRC,YAAY;wBACZC,WAAW;wBACX5B;oBACF;iBACD;YACH;QACF;IACF,EAAE,OAAM;QACN,OAAO;YACLwB,MAAM;gBACJxC,MAAM;gBACN2B,SAAS;gBACTc,WAAW;gBACXZ,QAAQ;gBACRa,QAAQ;gBACR1B,UAAU;oBACR;wBACEhB,MAAM;wBACN2B,SAAS;wBACTc,WAAW;wBACXZ,QAAQ;wBACRa,QAAQ;wBACRC,YAAY;wBACZC,WAAW;wBACX5B,UAAU;4BAACS,kBAAkBa;yBAAY;oBAC3C;iBACD;YACH;QACF;IACF;AACF,EAAE"}
1
+ {"version":3,"sources":["../../src/utils/icu-tranform.ts"],"sourcesContent":["import { uncaughtSwitchCase } from '@davincicoding/payload-plugin-kit';\nimport type { MessageFormatElement } from '@formatjs/icu-messageformat-parser';\nimport { parse, TYPE } from '@formatjs/icu-messageformat-parser';\nimport type {\n SerializedLexicalNode,\n SerializedParagraphNode,\n SerializedTextNode,\n} from '@payloadcms/richtext-lexical/lexical';\nimport type { SerializedBeautifulMentionNode } from 'lexical-beautiful-mentions';\nimport { formatVariableLabel } from './format';\n\n/**\n * Parse an ICU message string into a AST array\n */\nexport const parseICUMessage = (message: string): MessageFormatElement[] =>\n parse(message);\n\n/**\n * Serialize an ICU message AST array into a ICU message string\n */\nexport const serializeICUMessage = (elements: MessageFormatElement[]): string =>\n elements\n .map((element) => {\n switch (element.type) {\n case TYPE.literal:\n return element.value;\n case TYPE.argument:\n return stringifyElement(element.value);\n case TYPE.number:\n // TODO serialize element.style\n return stringifyElement(element.value, 'number');\n case TYPE.select:\n return stringifyElement(\n element.value,\n 'select',\n Object.entries(element.options).map(\n ([key, option]) =>\n `${key} {${option.value.length > 0 ? serializeICUMessage(option.value) : key}}`,\n ),\n );\n case TYPE.plural:\n return stringifyElement(element.value, 'plural', [\n element.offset < 0 && `offset:${element.offset}`,\n ...Object.entries(element.options).map(\n ([key, option]) =>\n `${key} {${\n option.value.length > 0\n ? serializeICUMessage(option.value)\n : key\n }}`,\n ),\n ]);\n case TYPE.tag:\n return `<${element.value}>${serializeICUMessage(element.children)}</${element.value}>`;\n case TYPE.date:\n // TODO serialize element.style\n return stringifyElement(element.value, 'date');\n case TYPE.time:\n // TODO serialize element.style\n return stringifyElement(element.value, 'time');\n case TYPE.pound:\n return '#';\n default:\n return uncaughtSwitchCase(element);\n }\n })\n .join('');\n\nconst stringifyElement = (\n name: string,\n type?: string,\n options: (string | boolean)[] = [],\n) => {\n if (type === undefined) return `{${name}}`;\n\n const filteredOptions = options.filter(\n (option): option is string =>\n typeof option === 'string' && option.length > 0,\n );\n if (filteredOptions.length === 0) return `{${name}, ${type}}`;\n\n return `{${name}, ${type}, ${filteredOptions.join(' ')}}`;\n};\n\nfunction serializeTextNode(text: string): SerializedTextNode {\n return {\n type: 'text',\n version: 1,\n text,\n detail: 0,\n format: 0,\n mode: 'normal',\n style: '',\n };\n}\n\nfunction serializeMentionNode(\n name: string,\n label: string,\n icu: string,\n): SerializedBeautifulMentionNode {\n return {\n type: 'variableMention',\n version: 1,\n trigger: '@',\n value: name,\n data: { label, icu },\n };\n}\n\ntype SerializedICUEditorState = {\n root: {\n type: 'root';\n version: 1;\n direction: null;\n format: '';\n indent: 0;\n children: [SerializedParagraphNode];\n };\n};\n\n/**\n * Parse an ICU message string into a Lexical serialized editor state\n */\nexport const parseIcuToLexicalState = (\n icuMessage: string,\n): SerializedICUEditorState => {\n try {\n const elements = parseICUMessage(icuMessage);\n const children = elements.flatMap<SerializedLexicalNode>((element) => {\n switch (element.type) {\n case TYPE.literal:\n return [serializeTextNode(element.value)];\n case TYPE.pound:\n return [serializeTextNode('#')];\n case TYPE.argument:\n case TYPE.number:\n case TYPE.date:\n case TYPE.time:\n case TYPE.select:\n case TYPE.plural:\n case TYPE.tag:\n return [\n serializeMentionNode(\n element.value,\n formatVariableLabel(element),\n serializeICUMessage([element]),\n ),\n ];\n default:\n return uncaughtSwitchCase(element);\n }\n });\n\n return {\n root: {\n type: 'root',\n version: 1,\n direction: null,\n format: '',\n indent: 0,\n children: [\n {\n type: 'paragraph',\n version: 1,\n direction: null,\n format: '',\n indent: 0,\n textFormat: 0,\n textStyle: '',\n children,\n },\n ],\n },\n };\n } catch {\n return {\n root: {\n type: 'root',\n version: 1,\n direction: null,\n format: '',\n indent: 0,\n children: [\n {\n type: 'paragraph',\n version: 1,\n direction: null,\n format: '',\n indent: 0,\n textFormat: 0,\n textStyle: '',\n children: [serializeTextNode(icuMessage)],\n },\n ],\n },\n };\n }\n};\n"],"names":["uncaughtSwitchCase","parse","TYPE","formatVariableLabel","parseICUMessage","message","serializeICUMessage","elements","map","element","type","literal","value","argument","stringifyElement","number","select","Object","entries","options","key","option","length","plural","offset","tag","children","date","time","pound","join","name","undefined","filteredOptions","filter","serializeTextNode","text","version","detail","format","mode","style","serializeMentionNode","label","icu","trigger","data","parseIcuToLexicalState","icuMessage","flatMap","root","direction","indent","textFormat","textStyle"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "payload-intl",
3
- "version": "1.2.4",
3
+ "version": "1.3.0",
4
4
  "description": "Payload Plugin for I18N using ICU Messages",
5
5
  "keywords": [
6
6
  "payload",
@@ -17,7 +17,7 @@
17
17
  "repository": {
18
18
  "type": "git",
19
19
  "url": "https://github.com/davincicoding-org/payload-plugins.git",
20
- "directory": "packages/intl"
20
+ "directory": "plugins/intl"
21
21
  },
22
22
  "license": "MIT",
23
23
  "author": "DAVINCI CODING GmbH",
@@ -52,7 +52,8 @@
52
52
  "lexical-beautiful-mentions": "^0.1.48",
53
53
  "lodash-es": "^4.17.21",
54
54
  "react-hook-form": "^7.58.1",
55
- "zod": "4.3.5"
55
+ "zod": "4.3.5",
56
+ "@davincicoding/payload-utils": "0.0.1"
56
57
  },
57
58
  "devDependencies": {
58
59
  "@payloadcms/richtext-lexical": "3.72.0",
@@ -68,7 +69,7 @@
68
69
  "typescript": "5.7.3",
69
70
  "vite": "7.0.6",
70
71
  "vitest": "^3.1.2",
71
- "@repo/common": "0.0.1"
72
+ "@davincicoding/payload-plugin-kit": "0.0.1"
72
73
  },
73
74
  "peerDependencies": {
74
75
  "@payloadcms/next": ">=3.72.0",
@@ -85,15 +86,15 @@
85
86
  "access": "public"
86
87
  },
87
88
  "scripts": {
88
- "prebuild": "rm -f src/internals 2>/dev/null; pnpm typecheck",
89
+ "prebuild": "pnpm run check:types",
89
90
  "build": "plugin-build",
91
+ "check:types": "tsc --noEmit",
90
92
  "clean": "rm -rf dist && rm -rf node_modules",
91
93
  "dev": "plugin-build --watch",
92
- "generate:types": "generate-types",
94
+ "generate:types": "generate-types --opt storage=upload",
93
95
  "lint": "biome check .",
94
96
  "lint:fix": "biome check --write .",
95
97
  "test": "vitest run",
96
- "test:watch": "vitest",
97
- "typecheck": "tsc --noEmit"
98
+ "test:watch": "vitest"
98
99
  }
99
100
  }
@@ -1,3 +0,0 @@
1
- import type { Endpoint } from 'payload';
2
- export declare const getMessagesEndpoint: Endpoint;
3
- //# sourceMappingURL=get-messages.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get-messages.d.ts","sourceRoot":"","sources":["../../src/endpoints/get-messages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAkB,MAAM,SAAS,CAAC;AAIxD,eAAO,MAAM,mBAAmB,EAAE,QAIjC,CAAC"}
@@ -1,7 +0,0 @@
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 +0,0 @@
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,30 +0,0 @@
1
- import type { BasePayload, CollectionConfig, CollectionSlug, JsonObject, TypeWithID } from 'payload';
2
- import z from 'zod';
3
- export declare const documentIdSchema: z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>;
4
- export type DocumentID = TypeWithID['id'] & z.infer<typeof documentIdSchema>;
5
- export declare const documentReferenceSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
6
- entity: z.ZodLiteral<"collection">;
7
- slug: z.ZodString;
8
- id: z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>;
9
- }, z.core.$strip>, z.ZodObject<{
10
- entity: z.ZodLiteral<"global">;
11
- slug: z.ZodString;
12
- }, z.core.$strip>], "entity">;
13
- export type DocumentReference = z.infer<typeof documentReferenceSchema>;
14
- export declare const isPopulated: <T extends TypeWithID>(relationship: T | DocumentID) => relationship is T;
15
- export declare function assertPopulated<T extends TypeWithID | null>(docsOrIds: (T | DocumentID)[], errorMessage?: (id: DocumentID) => string): T[];
16
- export declare function assertPopulated<T extends TypeWithID | null>(docOrId: T | DocumentID, errorMessage?: (id: DocumentID) => string): T;
17
- export declare const createCollectionConfigFactory: <T extends Record<string, unknown>>(factory: Omit<CollectionConfig, "slug"> | ((options: T & {
18
- slug: string;
19
- }) => Omit<CollectionConfig, "slug">)) => (options: T & {
20
- slug: string;
21
- }) => CollectionConfig;
22
- export type IdentifiableDocument = TypeWithID['id'] | TypeWithID;
23
- export declare function isIdentifiableDocument(value: unknown): value is IdentifiableDocument;
24
- export declare const resolveDocumentID: (entity: IdentifiableDocument) => DocumentID;
25
- export declare function fetchDocumentByReference(payload: BasePayload, ref: DocumentReference): Promise<JsonObject>;
26
- export declare function updateDocumentByReference(payload: BasePayload, ref: DocumentReference, data: JsonObject): Promise<import("payload").DataFromCollectionSlug<CollectionSlug>>;
27
- export { defineProcedure, type Procedure, type ProcedureBuilder, } from './procedure';
28
- export { getAdminURL, getApiURL, getServerURL } from './urls';
29
- export { findFields, uncaughtSwitchCase } from './utils';
30
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/internals/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,gBAAgB,EAChB,cAAc,EAEd,UAAU,EACV,UAAU,EACX,MAAM,SAAS,CAAC;AACjB,OAAO,CAAC,MAAM,KAAK,CAAC;AAKpB,eAAO,MAAM,gBAAgB,iDAAoC,CAAC;AAClE,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE7E,eAAO,MAAM,uBAAuB;;;;;;;6BAUlC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAIxE,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,UAAU,gBAChC,CAAC,GAAG,UAAU,KAC3B,YAAY,IAAI,CAAqC,CAAC;AAEzD,wBAAgB,eAAe,CAAC,CAAC,SAAS,UAAU,GAAG,IAAI,EACzD,SAAS,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE,EAC7B,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,KAAK,MAAM,GACxC,CAAC,EAAE,CAAC;AACP,wBAAgB,eAAe,CAAC,CAAC,SAAS,UAAU,GAAG,IAAI,EACzD,OAAO,EAAE,CAAC,GAAG,UAAU,EACvB,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,KAAK,MAAM,GACxC,CAAC,CAAC;AAeL,eAAO,MAAM,6BAA6B,GACvC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,WAE5B,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,GAC9B,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,KAAK,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,eAE/D,CAAC,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,KAAG,gBAG/B,CAAC;AAEL,MAAM,MAAM,oBAAoB,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;AAEjE,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,oBAAoB,CAO/B;AAED,eAAO,MAAM,iBAAiB,WAAY,oBAAoB,KAAG,UAChB,CAAC;AAElD,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,WAAW,EACpB,GAAG,EAAE,iBAAiB,GACrB,OAAO,CAAC,UAAU,CAAC,CAgBrB;AAED,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,WAAW,EACpB,GAAG,EAAE,iBAAiB,EACtB,IAAI,EAAE,UAAU,qEAiBjB;AAED,OAAO,EACL,eAAe,EACf,KAAK,SAAS,EACd,KAAK,gBAAgB,GACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC"}