@depup/next-intl 4.9.1-depup.0 → 4.13.3-depup.2

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 (55) hide show
  1. package/README.md +5 -5
  2. package/changes.json +4 -4
  3. package/dist/cjs/development/{JSONCodec-rhejs716.cjs → JSONCodec-CzA8ubPy.cjs} +7 -2
  4. package/dist/cjs/development/{POCodec-Cv3VdXQG.cjs → POCodec-CWGHK-Gp.cjs} +16 -10
  5. package/dist/cjs/development/{plugin-YzBhQjAo.cjs → plugin-DlFYUFWh.cjs} +311 -155
  6. package/dist/cjs/development/plugin.cjs +1 -1
  7. package/dist/esm/development/extractor/catalog/CatalogManager.js +146 -95
  8. package/dist/esm/development/extractor/catalogLoader.js +1 -1
  9. package/dist/esm/development/extractor/extractMessages.js +9 -2
  10. package/dist/esm/development/extractor/format/codecs/JSONCodec.js +7 -2
  11. package/dist/esm/development/extractor/format/codecs/POCodec.js +15 -9
  12. package/dist/esm/development/extractor/normalizeExtractorConfig.js +70 -0
  13. package/dist/esm/development/extractor/source/SourceFileWatcher.js +1 -1
  14. package/dist/esm/development/extractor/utils.js +40 -7
  15. package/dist/esm/development/middleware/getAlternateLinksHeaderValue.js +4 -1
  16. package/dist/esm/development/middleware/middleware.js +8 -4
  17. package/dist/esm/development/middleware/syncCookie.js +15 -0
  18. package/dist/esm/development/navigation/shared/utils.js +8 -5
  19. package/dist/esm/development/plugin/createNextIntlPlugin.js +29 -3
  20. package/dist/esm/development/plugin/declaration/createMessagesDeclaration.js +1 -1
  21. package/dist/esm/development/plugin/extractor/initExtractionCompiler.js +4 -9
  22. package/dist/esm/development/plugin/getNextConfig.js +21 -34
  23. package/dist/esm/development/server/react-server/getServerExtractor.js +3 -3
  24. package/dist/esm/production/extractor/catalog/CatalogManager.js +1 -1
  25. package/dist/esm/production/extractor/catalogLoader.js +1 -1
  26. package/dist/esm/production/extractor/extractMessages.js +1 -1
  27. package/dist/esm/production/extractor/format/codecs/JSONCodec.js +1 -1
  28. package/dist/esm/production/extractor/format/codecs/POCodec.js +1 -1
  29. package/dist/esm/production/extractor/normalizeExtractorConfig.js +1 -0
  30. package/dist/esm/production/extractor/source/SourceFileWatcher.js +1 -1
  31. package/dist/esm/production/extractor/utils.js +1 -1
  32. package/dist/esm/production/middleware/getAlternateLinksHeaderValue.js +1 -1
  33. package/dist/esm/production/middleware/middleware.js +1 -1
  34. package/dist/esm/production/middleware/syncCookie.js +1 -1
  35. package/dist/esm/production/navigation/shared/utils.js +1 -1
  36. package/dist/esm/production/plugin/createNextIntlPlugin.js +1 -1
  37. package/dist/esm/production/plugin/extractor/initExtractionCompiler.js +1 -1
  38. package/dist/esm/production/plugin/getNextConfig.js +1 -1
  39. package/dist/esm/production/server/react-server/getServerExtractor.js +1 -1
  40. package/dist/types/extractor/ExtractionCompiler.d.ts +2 -1
  41. package/dist/types/extractor/catalog/CatalogLocales.d.ts +2 -2
  42. package/dist/types/extractor/catalog/CatalogManager.d.ts +27 -10
  43. package/dist/types/extractor/extractMessages.d.ts +2 -2
  44. package/dist/types/extractor/extractor/MessageExtractor.d.ts +2 -6
  45. package/dist/types/extractor/format/ExtractorCodec.d.ts +1 -1
  46. package/dist/types/extractor/normalizeExtractorConfig.d.ts +5 -0
  47. package/dist/types/extractor/types.d.ts +62 -11
  48. package/dist/types/extractor/utils.d.ts +3 -1
  49. package/dist/types/plugin/extractor/initExtractionCompiler.d.ts +2 -2
  50. package/dist/types/plugin/getNextConfig.d.ts +2 -1
  51. package/dist/types/plugin/types.d.ts +10 -14
  52. package/dist/types/routing/types.d.ts +1 -0
  53. package/dist/types/server/react-server/getServerFormatter.d.ts +4 -0
  54. package/package.json +13 -13
  55. package/dist/types/extractor/extractor/KeyGenerator.d.ts +0 -3
package/README.md CHANGED
@@ -13,8 +13,8 @@ npm install @depup/next-intl
13
13
 
14
14
  | Field | Value |
15
15
  |-------|-------|
16
- | Original | [next-intl](https://www.npmjs.com/package/next-intl) @ 4.9.1 |
17
- | Processed | 2026-04-10 |
16
+ | Original | [next-intl](https://www.npmjs.com/package/next-intl) @ 4.13.3 |
17
+ | Processed | 2026-07-22 |
18
18
  | Smoke test | passed |
19
19
  | Deps updated | 3 |
20
20
 
@@ -22,9 +22,9 @@ npm install @depup/next-intl
22
22
 
23
23
  | Dependency | From | To |
24
24
  |------------|------|-----|
25
- | @formatjs/intl-localematcher | ^0.8.1 | ^0.8.2 |
26
- | @parcel/watcher | ^2.4.1 | ^2.5.6 |
27
- | @swc/core | ^1.15.2 | ^1.15.24 |
25
+ | @formatjs/intl-localematcher | ^0.8.1 | ^0.8.13 |
26
+ | @parcel/watcher | ^2.4.1 | ^2.6.0 |
27
+ | @swc/core | ^1.15.2 | ^1.15.46 |
28
28
 
29
29
  ---
30
30
 
package/changes.json CHANGED
@@ -2,17 +2,17 @@
2
2
  "bumped": {
3
3
  "@formatjs/intl-localematcher": {
4
4
  "from": "^0.8.1",
5
- "to": "^0.8.2"
5
+ "to": "^0.8.13"
6
6
  },
7
7
  "@parcel/watcher": {
8
8
  "from": "^2.4.1",
9
- "to": "^2.5.6"
9
+ "to": "^2.6.0"
10
10
  },
11
11
  "@swc/core": {
12
12
  "from": "^1.15.2",
13
- "to": "^1.15.24"
13
+ "to": "^1.15.46"
14
14
  }
15
15
  },
16
- "timestamp": "2026-04-10T16:23:34.187Z",
16
+ "timestamp": "2026-07-22T00:38:01.529Z",
17
17
  "totalUpdated": 3
18
18
  }
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var plugin = require('./plugin-YzBhQjAo.cjs');
3
+ var plugin = require('./plugin-DlFYUFWh.cjs');
4
4
  var ExtractorCodec = require('./ExtractorCodec-D9Tw618d.cjs');
5
5
  require('fs/promises');
6
6
  require('path');
@@ -16,7 +16,9 @@ var JSONCodec = ExtractorCodec.defineCodec(() => ({
16
16
  traverseMessages(json, (message, id) => {
17
17
  messages.push({
18
18
  id,
19
- message
19
+ message,
20
+ references: [],
21
+ description: []
20
22
  });
21
23
  });
22
24
  return messages;
@@ -35,6 +37,9 @@ var JSONCodec = ExtractorCodec.defineCodec(() => ({
35
37
  function traverseMessages(obj, callback, path = '') {
36
38
  const NAMESPACE_SEPARATOR = '.';
37
39
  for (const key of Object.keys(obj)) {
40
+ if (plugin.isForbiddenObjectKey(key)) {
41
+ throw new Error(`Invalid message catalog key: \`${key}\`.`);
42
+ }
38
43
  const newPath = path ? path + NAMESPACE_SEPARATOR + key : key;
39
44
  const value = obj[key];
40
45
  if (typeof value === 'string') {
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var POParser = require('po-parser');
4
- var plugin = require('./plugin-YzBhQjAo.cjs');
4
+ var plugin = require('./plugin-DlFYUFWh.cjs');
5
5
  var ExtractorCodec = require('./ExtractorCodec-D9Tw618d.cjs');
6
6
  require('fs/promises');
7
7
  require('path');
@@ -44,41 +44,47 @@ var POCodec = ExtractorCodec.defineCodec(() => {
44
44
  msgctxt,
45
45
  msgid,
46
46
  msgstr,
47
+ references,
47
48
  ...rest
48
49
  } = msg;
49
- if (extractedComments && extractedComments.length > 1) {
50
- throw new Error(`Multiple extracted comments are not supported. Found ${extractedComments.length} comments for msgid "${msgid}".`);
51
- }
52
50
  return {
53
51
  ...rest,
54
52
  id: msgctxt ? [msgctxt, msgid].join(NAMESPACE_SEPARATOR) : msgid,
55
53
  message: msgstr,
56
- ...(extractedComments && extractedComments.length > 0 && {
57
- description: extractedComments[0]
58
- })
54
+ description: extractedComments ?? [],
55
+ references: references ?? []
59
56
  };
60
57
  });
61
58
  },
62
59
  encode(messages, context) {
63
60
  const encodedMessages = plugin.getSortedMessages(messages).map(msg => {
64
61
  const {
65
- description,
62
+ description = [],
66
63
  id,
67
64
  message,
65
+ references,
68
66
  ...rest
69
67
  } = msg;
70
68
  const lastDotIndex = id.lastIndexOf(NAMESPACE_SEPARATOR);
71
69
  const hasNamespace = id.includes(NAMESPACE_SEPARATOR);
72
70
  const msgid = hasNamespace ? id.slice(lastDotIndex + NAMESPACE_SEPARATOR.length) : id;
71
+
72
+ // Path-only refs (no `:line`), unique paths
73
+ const pathOnlyRefs = [...new Set(references.map(ref => ref.path))].map(path => ({
74
+ path
75
+ }));
73
76
  return {
74
77
  msgid,
75
78
  msgstr: message,
76
- ...(description && {
77
- extractedComments: [description]
79
+ ...(description.length > 0 && {
80
+ extractedComments: description
78
81
  }),
79
82
  ...(hasNamespace && {
80
83
  msgctxt: id.slice(0, lastDotIndex)
81
84
  }),
85
+ ...(pathOnlyRefs.length > 0 && {
86
+ references: pathOnlyRefs
87
+ }),
82
88
  ...rest
83
89
  };
84
90
  });