@payloadcms/ui 3.32.0-canary.2 → 3.32.0-canary.4

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.
@@ -1,4 +1,37 @@
1
+ type QueuedFunction = () => Promise<void>;
2
+ type QueuedTaskOptions = {
3
+ /**
4
+ * A function that is called after the queue has processed a function
5
+ * Used to perform side effects after processing the queue
6
+ * @returns {void}
7
+ */
8
+ afterProcess?: () => void;
9
+ /**
10
+ * A function that can be used to prevent the queue from processing under certain conditions
11
+ * Can also be used to perform side effects before processing the queue
12
+ * @returns {boolean} If `false`, the queue will not process
13
+ */
14
+ beforeProcess?: () => boolean;
15
+ };
16
+ type QueueTask = (fn: QueuedFunction, options?: QueuedTaskOptions) => void;
17
+ /**
18
+ * A React hook that allows you to queue up functions to be executed in order.
19
+ * This is useful when you need to ensure long running networks requests are processed sequentially.
20
+ * Builds up a "queue" of functions to be executed in order, only ever processing the last function in the queue.
21
+ * This ensures that a long queue of tasks doesn't cause a backlog of tasks to be processed.
22
+ * E.g. if you queue a task and it begins running, then you queue 9 more tasks:
23
+ * 1. The currently task will finish
24
+ * 2. The next task in the queue will run
25
+ * 3. All remaining tasks will be discarded
26
+ * @returns {queueTask} A function used to queue a function.
27
+ * @example
28
+ * const { queueTask } = useQueues()
29
+ * queueTask(async () => {
30
+ * await fetch('https://api.example.com')
31
+ * })
32
+ */
1
33
  export declare function useQueues(): {
2
- queueTask: (fn: (signal: AbortSignal) => Promise<void>) => void;
34
+ queueTask: QueueTask;
3
35
  };
36
+ export {};
4
37
  //# sourceMappingURL=useQueues.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useQueues.d.ts","sourceRoot":"","sources":["../../src/hooks/useQueues.ts"],"names":[],"mappings":"AAEA,wBAAgB,SAAS,IAAI;IAC3B,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAAA;CAChE,CA2CA"}
1
+ {"version":3,"file":"useQueues.d.ts","sourceRoot":"","sources":["../../src/hooks/useQueues.ts"],"names":[],"mappings":"AAEA,KAAK,cAAc,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;AAEzC,KAAK,iBAAiB,GAAG;IACvB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,IAAI,CAAA;IACzB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,OAAO,CAAA;CAC9B,CAAA;AAED,KAAK,SAAS,GAAG,CAAC,EAAE,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,iBAAiB,KAAK,IAAI,CAAA;AAE1E;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,SAAS,IAAI;IAC3B,SAAS,EAAE,SAAS,CAAA;CACrB,CA8CA"}
@@ -1,40 +1,56 @@
1
1
  import { useCallback, useRef } from 'react';
2
+ /**
3
+ * A React hook that allows you to queue up functions to be executed in order.
4
+ * This is useful when you need to ensure long running networks requests are processed sequentially.
5
+ * Builds up a "queue" of functions to be executed in order, only ever processing the last function in the queue.
6
+ * This ensures that a long queue of tasks doesn't cause a backlog of tasks to be processed.
7
+ * E.g. if you queue a task and it begins running, then you queue 9 more tasks:
8
+ * 1. The currently task will finish
9
+ * 2. The next task in the queue will run
10
+ * 3. All remaining tasks will be discarded
11
+ * @returns {queueTask} A function used to queue a function.
12
+ * @example
13
+ * const { queueTask } = useQueues()
14
+ * queueTask(async () => {
15
+ * await fetch('https://api.example.com')
16
+ * })
17
+ */
2
18
  export function useQueues() {
3
- const runningTaskRef = useRef(null);
4
- const queuedTask = useRef(null);
5
- const abortControllerRef = useRef(null);
6
- const queueTask = useCallback(fn => {
7
- // Overwrite the queued task every time a new one arrives
8
- queuedTask.current = fn;
9
- // If a task is already running, abort it and return
10
- if (runningTaskRef.current !== null) {
11
- if (abortControllerRef.current) {
12
- abortControllerRef.current.abort();
19
+ const queue = useRef([]);
20
+ const isProcessing = useRef(false);
21
+ const queueTask = useCallback((fn, options) => {
22
+ queue.current.push(fn);
23
+ async function processQueue() {
24
+ if (isProcessing.current) {
25
+ return;
13
26
  }
14
- return;
15
- }
16
- const executeTask = async () => {
17
- while (queuedTask.current) {
18
- const taskToRun = queuedTask.current;
19
- queuedTask.current = null // Reset latest task before running
27
+ // Allow the consumer to prevent the queue from processing under certain conditions
28
+ if (typeof options?.beforeProcess === 'function') {
29
+ const shouldContinue = options.beforeProcess();
30
+ if (shouldContinue === false) {
31
+ return;
32
+ }
33
+ }
34
+ while (queue.current.length > 0) {
35
+ const latestTask = queue.current.pop() // Only process the last task in the queue
20
36
  ;
21
- const controller = new AbortController();
22
- abortControllerRef.current = controller;
37
+ queue.current = [] // Discard all other tasks
38
+ ;
39
+ isProcessing.current = true;
23
40
  try {
24
- runningTaskRef.current = taskToRun(controller.signal);
25
- await runningTaskRef.current // Wait for the task to complete
26
- ;
41
+ await latestTask();
27
42
  } catch (err) {
28
- if (err.name !== 'AbortError') {
29
- console.error('Error in queued function:', err) // eslint-disable-line no-console
30
- ;
31
- }
43
+ console.error('Error in queued function:', err) // eslint-disable-line no-console
44
+ ;
32
45
  } finally {
33
- runningTaskRef.current = null;
46
+ isProcessing.current = false;
47
+ if (typeof options?.afterProcess === 'function') {
48
+ options.afterProcess();
49
+ }
34
50
  }
35
51
  }
36
- };
37
- void executeTask();
52
+ }
53
+ void processQueue();
38
54
  }, []);
39
55
  return {
40
56
  queueTask
@@ -1 +1 @@
1
- {"version":3,"file":"useQueues.js","names":["useCallback","useRef","useQueues","runningTaskRef","queuedTask","abortControllerRef","queueTask","fn","current","abort","executeTask","taskToRun","controller","AbortController","signal","err","name","console","error"],"sources":["../../src/hooks/useQueues.ts"],"sourcesContent":["import { useCallback, useRef } from 'react'\n\nexport function useQueues(): {\n queueTask: (fn: (signal: AbortSignal) => Promise<void>) => void\n} {\n const runningTaskRef = useRef<null | Promise<void>>(null)\n const queuedTask = useRef<((signal: AbortSignal) => Promise<void>) | null>(null)\n const abortControllerRef = useRef<AbortController | null>(null)\n\n const queueTask = useCallback((fn: (signal: AbortSignal) => Promise<void>) => {\n // Overwrite the queued task every time a new one arrives\n queuedTask.current = fn\n\n // If a task is already running, abort it and return\n if (runningTaskRef.current !== null) {\n if (abortControllerRef.current) {\n abortControllerRef.current.abort()\n }\n\n return\n }\n\n const executeTask = async () => {\n while (queuedTask.current) {\n const taskToRun = queuedTask.current\n queuedTask.current = null // Reset latest task before running\n\n const controller = new AbortController()\n abortControllerRef.current = controller\n\n try {\n runningTaskRef.current = taskToRun(controller.signal)\n await runningTaskRef.current // Wait for the task to complete\n } catch (err) {\n if (err.name !== 'AbortError') {\n console.error('Error in queued function:', err) // eslint-disable-line no-console\n }\n } finally {\n runningTaskRef.current = null\n }\n }\n }\n\n void executeTask()\n }, [])\n\n return { queueTask }\n}\n"],"mappings":"AAAA,SAASA,WAAW,EAAEC,MAAM,QAAQ;AAEpC,OAAO,SAASC,UAAA;EAGd,MAAMC,cAAA,GAAiBF,MAAA,CAA6B;EACpD,MAAMG,UAAA,GAAaH,MAAA,CAAwD;EAC3E,MAAMI,kBAAA,GAAqBJ,MAAA,CAA+B;EAE1D,MAAMK,SAAA,GAAYN,WAAA,CAAaO,EAAA;IAC7B;IACAH,UAAA,CAAWI,OAAO,GAAGD,EAAA;IAErB;IACA,IAAIJ,cAAA,CAAeK,OAAO,KAAK,MAAM;MACnC,IAAIH,kBAAA,CAAmBG,OAAO,EAAE;QAC9BH,kBAAA,CAAmBG,OAAO,CAACC,KAAK;MAClC;MAEA;IACF;IAEA,MAAMC,WAAA,GAAc,MAAAA,CAAA;MAClB,OAAON,UAAA,CAAWI,OAAO,EAAE;QACzB,MAAMG,SAAA,GAAYP,UAAA,CAAWI,OAAO;QACpCJ,UAAA,CAAWI,OAAO,GAAG,KAAK;QAAA;QAE1B,MAAMI,UAAA,GAAa,IAAIC,eAAA;QACvBR,kBAAA,CAAmBG,OAAO,GAAGI,UAAA;QAE7B,IAAI;UACFT,cAAA,CAAeK,OAAO,GAAGG,SAAA,CAAUC,UAAA,CAAWE,MAAM;UACpD,MAAMX,cAAA,CAAeK,OAAO,CAAC;UAAA;QAC/B,EAAE,OAAOO,GAAA,EAAK;UACZ,IAAIA,GAAA,CAAIC,IAAI,KAAK,cAAc;YAC7BC,OAAA,CAAQC,KAAK,CAAC,6BAA6BH,GAAA,EAAK;YAAA;UAClD;QACF,UAAU;UACRZ,cAAA,CAAeK,OAAO,GAAG;QAC3B;MACF;IACF;IAEA,KAAKE,WAAA;EACP,GAAG,EAAE;EAEL,OAAO;IAAEJ;EAAU;AACrB","ignoreList":[]}
1
+ {"version":3,"file":"useQueues.js","names":["useCallback","useRef","useQueues","queue","isProcessing","queueTask","fn","options","current","push","processQueue","beforeProcess","shouldContinue","length","latestTask","pop","err","console","error","afterProcess"],"sources":["../../src/hooks/useQueues.ts"],"sourcesContent":["import { useCallback, useRef } from 'react'\n\ntype QueuedFunction = () => Promise<void>\n\ntype QueuedTaskOptions = {\n /**\n * A function that is called after the queue has processed a function\n * Used to perform side effects after processing the queue\n * @returns {void}\n */\n afterProcess?: () => void\n /**\n * A function that can be used to prevent the queue from processing under certain conditions\n * Can also be used to perform side effects before processing the queue\n * @returns {boolean} If `false`, the queue will not process\n */\n beforeProcess?: () => boolean\n}\n\ntype QueueTask = (fn: QueuedFunction, options?: QueuedTaskOptions) => void\n\n/**\n * A React hook that allows you to queue up functions to be executed in order.\n * This is useful when you need to ensure long running networks requests are processed sequentially.\n * Builds up a \"queue\" of functions to be executed in order, only ever processing the last function in the queue.\n * This ensures that a long queue of tasks doesn't cause a backlog of tasks to be processed.\n * E.g. if you queue a task and it begins running, then you queue 9 more tasks:\n * 1. The currently task will finish\n * 2. The next task in the queue will run\n * 3. All remaining tasks will be discarded\n * @returns {queueTask} A function used to queue a function.\n * @example\n * const { queueTask } = useQueues()\n * queueTask(async () => {\n * await fetch('https://api.example.com')\n * })\n */\nexport function useQueues(): {\n queueTask: QueueTask\n} {\n const queue = useRef<QueuedFunction[]>([])\n\n const isProcessing = useRef(false)\n\n const queueTask = useCallback<QueueTask>((fn, options) => {\n queue.current.push(fn)\n\n async function processQueue() {\n if (isProcessing.current) {\n return\n }\n\n // Allow the consumer to prevent the queue from processing under certain conditions\n if (typeof options?.beforeProcess === 'function') {\n const shouldContinue = options.beforeProcess()\n\n if (shouldContinue === false) {\n return\n }\n }\n\n while (queue.current.length > 0) {\n const latestTask = queue.current.pop() // Only process the last task in the queue\n queue.current = [] // Discard all other tasks\n\n isProcessing.current = true\n\n try {\n await latestTask()\n } catch (err) {\n console.error('Error in queued function:', err) // eslint-disable-line no-console\n } finally {\n isProcessing.current = false\n\n if (typeof options?.afterProcess === 'function') {\n options.afterProcess()\n }\n }\n }\n }\n\n void processQueue()\n }, [])\n\n return { queueTask }\n}\n"],"mappings":"AAAA,SAASA,WAAW,EAAEC,MAAM,QAAQ;AAqBpC;;;;;;;;;;;;;;;;AAgBA,OAAO,SAASC,UAAA;EAGd,MAAMC,KAAA,GAAQF,MAAA,CAAyB,EAAE;EAEzC,MAAMG,YAAA,GAAeH,MAAA,CAAO;EAE5B,MAAMI,SAAA,GAAYL,WAAA,CAAuB,CAACM,EAAA,EAAIC,OAAA;IAC5CJ,KAAA,CAAMK,OAAO,CAACC,IAAI,CAACH,EAAA;IAEnB,eAAeI,aAAA;MACb,IAAIN,YAAA,CAAaI,OAAO,EAAE;QACxB;MACF;MAEA;MACA,IAAI,OAAOD,OAAA,EAASI,aAAA,KAAkB,YAAY;QAChD,MAAMC,cAAA,GAAiBL,OAAA,CAAQI,aAAa;QAE5C,IAAIC,cAAA,KAAmB,OAAO;UAC5B;QACF;MACF;MAEA,OAAOT,KAAA,CAAMK,OAAO,CAACK,MAAM,GAAG,GAAG;QAC/B,MAAMC,UAAA,GAAaX,KAAA,CAAMK,OAAO,CAACO,GAAG,GAAG;QAAA;QACvCZ,KAAA,CAAMK,OAAO,GAAG,EAAE,CAAC;QAAA;QAEnBJ,YAAA,CAAaI,OAAO,GAAG;QAEvB,IAAI;UACF,MAAMM,UAAA;QACR,EAAE,OAAOE,GAAA,EAAK;UACZC,OAAA,CAAQC,KAAK,CAAC,6BAA6BF,GAAA,EAAK;UAAA;QAClD,UAAU;UACRZ,YAAA,CAAaI,OAAO,GAAG;UAEvB,IAAI,OAAOD,OAAA,EAASY,YAAA,KAAiB,YAAY;YAC/CZ,OAAA,CAAQY,YAAY;UACtB;QACF;MACF;IACF;IAEA,KAAKT,YAAA;EACP,GAAG,EAAE;EAEL,OAAO;IAAEL;EAAU;AACrB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"getClientConfig.d.ts","sourceRoot":"","sources":["../../src/utilities/getClientConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAWvE,eAAO,MAAM,eAAe,SACnB;IAAE,MAAM,EAAE,eAAe,CAAC;IAAC,IAAI,EAAE,UAAU,CAAC;IAAC,SAAS,EAAE,SAAS,CAAA;CAAE,KAAG,YAmB9E,CAAA"}
1
+ {"version":3,"file":"getClientConfig.d.ts","sourceRoot":"","sources":["../../src/utilities/getClientConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAsB,MAAM,0BAA0B,CAAA;AAC9E,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAiBvE,eAAO,MAAM,eAAe,SACnB;IAAE,MAAM,EAAE,eAAe,CAAC;IAAC,IAAI,EAAE,UAAU,CAAC;IAAC,SAAS,EAAE,SAAS,CAAA;CAAE,KAAG,YAoB9E,CAAA"}
@@ -1,24 +1,26 @@
1
1
  import { createClientConfig } from 'payload';
2
2
  import { cache } from 'react';
3
- let cachedClientConfig = global._payload_clientConfig;
4
- if (!cachedClientConfig) {
5
- cachedClientConfig = global._payload_clientConfig = null;
3
+ let cachedClientConfigs = global._payload_clientConfigs;
4
+ if (!cachedClientConfigs) {
5
+ cachedClientConfigs = global._payload_clientConfigs = {};
6
6
  }
7
7
  export const getClientConfig = cache(args => {
8
- if (cachedClientConfig && !global._payload_doNotCacheClientConfig) {
9
- return cachedClientConfig;
10
- }
11
8
  const {
12
9
  config,
13
10
  i18n,
14
11
  importMap
15
12
  } = args;
16
- cachedClientConfig = createClientConfig({
13
+ const currentLanguage = i18n.language;
14
+ if (cachedClientConfigs[currentLanguage] && !global._payload_doNotCacheClientConfig) {
15
+ return cachedClientConfigs[currentLanguage];
16
+ }
17
+ const cachedClientConfig = createClientConfig({
17
18
  config,
18
19
  i18n,
19
20
  importMap
20
21
  });
21
- global._payload_clientConfig = cachedClientConfig;
22
+ cachedClientConfigs[currentLanguage] = cachedClientConfig;
23
+ global._payload_clientConfigs = cachedClientConfigs;
22
24
  global._payload_doNotCacheClientConfig = false;
23
25
  return cachedClientConfig;
24
26
  });
@@ -1 +1 @@
1
- {"version":3,"file":"getClientConfig.js","names":["createClientConfig","cache","cachedClientConfig","global","_payload_clientConfig","getClientConfig","args","_payload_doNotCacheClientConfig","config","i18n","importMap"],"sources":["../../src/utilities/getClientConfig.ts"],"sourcesContent":["import type { I18nClient } from '@payloadcms/translations'\nimport type { ClientConfig, ImportMap, SanitizedConfig } from 'payload'\n\nimport { createClientConfig } from 'payload'\nimport { cache } from 'react'\n\nlet cachedClientConfig: ClientConfig | null = global._payload_clientConfig\n\nif (!cachedClientConfig) {\n cachedClientConfig = global._payload_clientConfig = null\n}\n\nexport const getClientConfig = cache(\n (args: { config: SanitizedConfig; i18n: I18nClient; importMap: ImportMap }): ClientConfig => {\n if (cachedClientConfig && !global._payload_doNotCacheClientConfig) {\n return cachedClientConfig\n }\n\n const { config, i18n, importMap } = args\n\n cachedClientConfig = createClientConfig({\n config,\n i18n,\n importMap,\n })\n\n global._payload_clientConfig = cachedClientConfig\n\n global._payload_doNotCacheClientConfig = false\n\n return cachedClientConfig\n },\n)\n"],"mappings":"AAGA,SAASA,kBAAkB,QAAQ;AACnC,SAASC,KAAK,QAAQ;AAEtB,IAAIC,kBAAA,GAA0CC,MAAA,CAAOC,qBAAqB;AAE1E,IAAI,CAACF,kBAAA,EAAoB;EACvBA,kBAAA,GAAqBC,MAAA,CAAOC,qBAAqB,GAAG;AACtD;AAEA,OAAO,MAAMC,eAAA,GAAkBJ,KAAA,CAC5BK,IAAA;EACC,IAAIJ,kBAAA,IAAsB,CAACC,MAAA,CAAOI,+BAA+B,EAAE;IACjE,OAAOL,kBAAA;EACT;EAEA,MAAM;IAAEM,MAAM;IAAEC,IAAI;IAAEC;EAAS,CAAE,GAAGJ,IAAA;EAEpCJ,kBAAA,GAAqBF,kBAAA,CAAmB;IACtCQ,MAAA;IACAC,IAAA;IACAC;EACF;EAEAP,MAAA,CAAOC,qBAAqB,GAAGF,kBAAA;EAE/BC,MAAA,CAAOI,+BAA+B,GAAG;EAEzC,OAAOL,kBAAA;AACT","ignoreList":[]}
1
+ {"version":3,"file":"getClientConfig.js","names":["createClientConfig","cache","cachedClientConfigs","global","_payload_clientConfigs","getClientConfig","args","config","i18n","importMap","currentLanguage","language","_payload_doNotCacheClientConfig","cachedClientConfig"],"sources":["../../src/utilities/getClientConfig.ts"],"sourcesContent":["import type { I18nClient, SupportedLanguages } from '@payloadcms/translations'\nimport type { ClientConfig, ImportMap, SanitizedConfig } from 'payload'\n\nimport { createClientConfig } from 'payload'\nimport { cache } from 'react'\n\nlet cachedClientConfigs = global._payload_clientConfigs as Record<\n keyof SupportedLanguages,\n ClientConfig\n>\n\nif (!cachedClientConfigs) {\n cachedClientConfigs = global._payload_clientConfigs = {} as Record<\n keyof SupportedLanguages,\n ClientConfig\n >\n}\n\nexport const getClientConfig = cache(\n (args: { config: SanitizedConfig; i18n: I18nClient; importMap: ImportMap }): ClientConfig => {\n const { config, i18n, importMap } = args\n const currentLanguage = i18n.language\n\n if (cachedClientConfigs[currentLanguage] && !global._payload_doNotCacheClientConfig) {\n return cachedClientConfigs[currentLanguage]\n }\n\n const cachedClientConfig = createClientConfig({\n config,\n i18n,\n importMap,\n })\n\n cachedClientConfigs[currentLanguage] = cachedClientConfig\n global._payload_clientConfigs = cachedClientConfigs\n global._payload_doNotCacheClientConfig = false\n\n return cachedClientConfig\n },\n)\n"],"mappings":"AAGA,SAASA,kBAAkB,QAAQ;AACnC,SAASC,KAAK,QAAQ;AAEtB,IAAIC,mBAAA,GAAsBC,MAAA,CAAOC,sBAAsB;AAKvD,IAAI,CAACF,mBAAA,EAAqB;EACxBA,mBAAA,GAAsBC,MAAA,CAAOC,sBAAsB,GAAG,CAAC;AAIzD;AAEA,OAAO,MAAMC,eAAA,GAAkBJ,KAAA,CAC5BK,IAAA;EACC,MAAM;IAAEC,MAAM;IAAEC,IAAI;IAAEC;EAAS,CAAE,GAAGH,IAAA;EACpC,MAAMI,eAAA,GAAkBF,IAAA,CAAKG,QAAQ;EAErC,IAAIT,mBAAmB,CAACQ,eAAA,CAAgB,IAAI,CAACP,MAAA,CAAOS,+BAA+B,EAAE;IACnF,OAAOV,mBAAmB,CAACQ,eAAA,CAAgB;EAC7C;EAEA,MAAMG,kBAAA,GAAqBb,kBAAA,CAAmB;IAC5CO,MAAA;IACAC,IAAA;IACAC;EACF;EAEAP,mBAAmB,CAACQ,eAAA,CAAgB,GAAGG,kBAAA;EACvCV,MAAA,CAAOC,sBAAsB,GAAGF,mBAAA;EAChCC,MAAA,CAAOS,+BAA+B,GAAG;EAEzC,OAAOC,kBAAA;AACT","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@payloadcms/ui",
3
- "version": "3.32.0-canary.2",
3
+ "version": "3.32.0-canary.4",
4
4
  "homepage": "https://payloadcms.com",
5
5
  "repository": {
6
6
  "type": "git",
@@ -132,7 +132,7 @@
132
132
  "ts-essentials": "10.0.3",
133
133
  "use-context-selector": "2.0.0",
134
134
  "uuid": "10.0.0",
135
- "@payloadcms/translations": "3.32.0-canary.2"
135
+ "@payloadcms/translations": "3.32.0-canary.4"
136
136
  },
137
137
  "devDependencies": {
138
138
  "@babel/cli": "7.26.4",
@@ -148,14 +148,14 @@
148
148
  "esbuild": "0.24.2",
149
149
  "esbuild-sass-plugin": "3.3.1",
150
150
  "eslint-plugin-react-compiler": "19.0.0-beta-714736e-20250131",
151
- "@payloadcms/eslint-config": "3.28.0",
152
- "payload": "3.32.0-canary.2"
151
+ "payload": "3.32.0-canary.4",
152
+ "@payloadcms/eslint-config": "3.28.0"
153
153
  },
154
154
  "peerDependencies": {
155
155
  "next": "^15.2.3",
156
156
  "react": "^19.0.0 || ^19.0.0-rc-65a56d0e-20241020",
157
157
  "react-dom": "^19.0.0 || ^19.0.0-rc-65a56d0e-20241020",
158
- "payload": "3.32.0-canary.2"
158
+ "payload": "3.32.0-canary.4"
159
159
  },
160
160
  "engines": {
161
161
  "node": "^18.20.2 || >=20.9.0"