gt-next 6.8.3 → 6.9.1

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 (123) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/config-dir/props/defaultWithGTConfigProps.d.ts +2 -0
  3. package/dist/config-dir/props/defaultWithGTConfigProps.d.ts.map +1 -1
  4. package/dist/config-dir/props/defaultWithGTConfigProps.js +2 -0
  5. package/dist/config-dir/props/defaultWithGTConfigProps.js.map +1 -1
  6. package/dist/config-dir/props/withGTConfigProps.d.ts +12 -2
  7. package/dist/config-dir/props/withGTConfigProps.d.ts.map +1 -1
  8. package/dist/config-dir/props/withGTConfigProps.js +9 -0
  9. package/dist/config-dir/props/withGTConfigProps.js.map +1 -1
  10. package/dist/config-dir/utils/resolveConfigFilepath.d.ts +9 -0
  11. package/dist/config-dir/utils/resolveConfigFilepath.d.ts.map +1 -0
  12. package/dist/config-dir/utils/resolveConfigFilepath.js +49 -0
  13. package/dist/config-dir/utils/resolveConfigFilepath.js.map +1 -0
  14. package/dist/config-dir/utils/resolveRequestFunctionPaths.d.ts +19 -0
  15. package/dist/config-dir/utils/resolveRequestFunctionPaths.d.ts.map +1 -0
  16. package/dist/config-dir/utils/resolveRequestFunctionPaths.js +44 -0
  17. package/dist/config-dir/utils/resolveRequestFunctionPaths.js.map +1 -0
  18. package/dist/config-dir/{validateCompiler.d.ts → utils/validateCompiler.d.ts} +1 -1
  19. package/dist/config-dir/utils/validateCompiler.d.ts.map +1 -0
  20. package/dist/config-dir/{validateCompiler.js → utils/validateCompiler.js} +3 -3
  21. package/dist/config-dir/utils/validateCompiler.js.map +1 -0
  22. package/dist/config.d.ts +6 -0
  23. package/dist/config.d.ts.map +1 -1
  24. package/dist/config.js +64 -79
  25. package/dist/config.js.map +1 -1
  26. package/dist/errors/createErrors.d.ts +0 -1
  27. package/dist/errors/createErrors.d.ts.map +1 -1
  28. package/dist/errors/createErrors.js +1 -3
  29. package/dist/errors/createErrors.js.map +1 -1
  30. package/dist/errors/index.d.ts +3 -0
  31. package/dist/errors/index.d.ts.map +1 -0
  32. package/dist/errors/index.js +19 -0
  33. package/dist/errors/index.js.map +1 -0
  34. package/dist/errors/ssg.d.ts +11 -0
  35. package/dist/errors/ssg.d.ts.map +1 -0
  36. package/dist/errors/ssg.js +32 -0
  37. package/dist/errors/ssg.js.map +1 -0
  38. package/dist/internal/_getDomain.d.ts +3 -0
  39. package/dist/internal/_getDomain.d.ts.map +1 -0
  40. package/dist/internal/_getDomain.js +53 -0
  41. package/dist/internal/_getDomain.js.map +1 -0
  42. package/dist/internal/_getLocale.d.ts +3 -0
  43. package/dist/internal/_getLocale.d.ts.map +1 -0
  44. package/dist/internal/_getLocale.js +53 -0
  45. package/dist/internal/_getLocale.js.map +1 -0
  46. package/dist/internal/_getRegion.d.ts +3 -0
  47. package/dist/internal/_getRegion.d.ts.map +1 -0
  48. package/dist/internal/_getRegion.js +53 -0
  49. package/dist/internal/_getRegion.js.map +1 -0
  50. package/dist/internal/static/_getDomain.d.ts +3 -0
  51. package/dist/internal/static/_getDomain.d.ts.map +1 -0
  52. package/dist/internal/static/_getDomain.js +47 -0
  53. package/dist/internal/static/_getDomain.js.map +1 -0
  54. package/dist/internal/static/_getLocale.d.ts +3 -0
  55. package/dist/internal/static/_getLocale.d.ts.map +1 -0
  56. package/dist/internal/static/_getLocale.js +47 -0
  57. package/dist/internal/static/_getLocale.js.map +1 -0
  58. package/dist/internal/static/_getRegion.d.ts +3 -0
  59. package/dist/internal/static/_getRegion.d.ts.map +1 -0
  60. package/dist/internal/static/_getRegion.js +47 -0
  61. package/dist/internal/static/_getRegion.js.map +1 -0
  62. package/dist/middleware-dir/createNextMiddleware.d.ts.map +1 -1
  63. package/dist/middleware-dir/createNextMiddleware.js.map +1 -1
  64. package/dist/middleware-dir/utils.d.ts.map +1 -1
  65. package/dist/middleware-dir/utils.js +4 -4
  66. package/dist/middleware-dir/utils.js.map +1 -1
  67. package/dist/plugin/constants.d.ts +6 -0
  68. package/dist/plugin/constants.d.ts.map +1 -1
  69. package/dist/plugin/constants.js +7 -1
  70. package/dist/plugin/constants.js.map +1 -1
  71. package/dist/plugin/getStableNextVersionInfo.d.ts +4 -0
  72. package/dist/plugin/getStableNextVersionInfo.d.ts.map +1 -1
  73. package/dist/plugin/getStableNextVersionInfo.js +3 -9
  74. package/dist/plugin/getStableNextVersionInfo.js.map +1 -1
  75. package/dist/request/getLocale.d.ts.map +1 -1
  76. package/dist/request/getLocale.js +31 -48
  77. package/dist/request/getLocale.js.map +1 -1
  78. package/dist/request/getLocaleDirection.d.ts.map +1 -1
  79. package/dist/request/getLocaleDirection.js.map +1 -1
  80. package/dist/request/getRegion.d.ts.map +1 -1
  81. package/dist/request/getRegion.js +28 -11
  82. package/dist/request/getRegion.js.map +1 -1
  83. package/dist/{next → request/headers}/getNextDomain.d.ts +4 -3
  84. package/dist/request/headers/getNextDomain.d.ts.map +1 -0
  85. package/dist/{next → request/headers}/getNextDomain.js +3 -3
  86. package/dist/request/headers/getNextDomain.js.map +1 -0
  87. package/dist/{next → request/headers}/getNextLocale.d.ts +2 -1
  88. package/dist/request/headers/getNextLocale.d.ts.map +1 -0
  89. package/dist/request/headers/getNextLocale.js +96 -0
  90. package/dist/request/headers/getNextLocale.js.map +1 -0
  91. package/dist/request/headers/getNextRegion.d.ts +3 -0
  92. package/dist/request/headers/getNextRegion.d.ts.map +1 -0
  93. package/dist/{next → request/headers}/getNextRegion.js +0 -1
  94. package/dist/request/headers/getNextRegion.js.map +1 -0
  95. package/dist/request/types.d.ts +9 -0
  96. package/dist/request/types.d.ts.map +1 -0
  97. package/dist/request/types.js +14 -0
  98. package/dist/request/types.js.map +1 -0
  99. package/dist/request/utils/getRequestFunction.d.ts +10 -0
  100. package/dist/request/utils/getRequestFunction.d.ts.map +1 -0
  101. package/dist/request/utils/getRequestFunction.js +269 -0
  102. package/dist/request/utils/getRequestFunction.js.map +1 -0
  103. package/dist/request/utils/isSSR.d.ts +2 -0
  104. package/dist/request/utils/isSSR.d.ts.map +1 -0
  105. package/dist/request/utils/isSSR.js +27 -0
  106. package/dist/request/utils/isSSR.js.map +1 -0
  107. package/dist/server-dir/buildtime/getTranslations.d.ts.map +1 -1
  108. package/dist/server-dir/buildtime/getTranslations.js.map +1 -1
  109. package/dist/server.d.ts +2 -1
  110. package/dist/server.d.ts.map +1 -1
  111. package/dist/server.js +3 -1
  112. package/dist/server.js.map +1 -1
  113. package/package.json +61 -10
  114. package/dist/config-dir/validateCompiler.d.ts.map +0 -1
  115. package/dist/config-dir/validateCompiler.js.map +0 -1
  116. package/dist/next/getNextDomain.d.ts.map +0 -1
  117. package/dist/next/getNextDomain.js.map +0 -1
  118. package/dist/next/getNextLocale.d.ts.map +0 -1
  119. package/dist/next/getNextLocale.js +0 -175
  120. package/dist/next/getNextLocale.js.map +0 -1
  121. package/dist/next/getNextRegion.d.ts +0 -2
  122. package/dist/next/getNextRegion.d.ts.map +0 -1
  123. package/dist/next/getNextRegion.js.map +0 -1
@@ -1,175 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
13
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
- var __importDefault = (this && this.__importDefault) || function (mod) {
39
- return (mod && mod.__esModule) ? mod : { "default": mod };
40
- };
41
- Object.defineProperty(exports, "__esModule", { value: true });
42
- exports.getNextLocale = getNextLocale;
43
- var headers_1 = require("next/headers");
44
- var getI18NConfig_1 = __importDefault(require("../config-dir/getI18NConfig"));
45
- var createErrors_1 = require("../errors/createErrors");
46
- /**
47
- * Retrieves the 'accept-language' header from the headers list.
48
- * If the 'next/headers' module is not available, it attempts to load it. If the
49
- * headers function is available, it returns the primary language from the 'accept-language'
50
- * header.
51
- *
52
- * @returns {Promise<string>} A promise that resolves to the primary language from the
53
- * 'accept-language' header.
54
- */
55
- function getNextLocale() {
56
- return __awaiter(this, arguments, void 0, function (defaultLocale, locales, preferredLocale) {
57
- var _a, headersList, cookieStore, I18NConfig, userLocale;
58
- if (defaultLocale === void 0) { defaultLocale = ''; }
59
- return __generator(this, function (_b) {
60
- switch (_b.label) {
61
- case 0: return [4 /*yield*/, Promise.all([(0, headers_1.headers)(), (0, headers_1.cookies)()])];
62
- case 1:
63
- _a = _b.sent(), headersList = _a[0], cookieStore = _a[1];
64
- I18NConfig = (0, getI18NConfig_1.default)();
65
- userLocale = (function () {
66
- var _a;
67
- var preferredLocales = [];
68
- // include preferredLocale if provided
69
- if (preferredLocale) {
70
- preferredLocales.push(preferredLocale);
71
- }
72
- // Language routed to by middleware
73
- var headerLocale = headersList.get(I18NConfig.getLocaleHeaderName());
74
- if (headerLocale) {
75
- preferredLocales.push(headerLocale);
76
- }
77
- var cookieLocale = cookieStore.get(I18NConfig.getLocaleCookieName());
78
- if (cookieLocale === null || cookieLocale === void 0 ? void 0 : cookieLocale.value) {
79
- preferredLocales.push(cookieLocale.value);
80
- }
81
- // Browser languages, in preference order
82
- if (process.env._GENERALTRANSLATION_IGNORE_BROWSER_LOCALES === 'false') {
83
- var acceptedLocales = (_a = headersList
84
- .get('accept-language')) === null || _a === void 0 ? void 0 : _a.split(',').map(function (item) { var _a; return (_a = item.split(';')) === null || _a === void 0 ? void 0 : _a[0].trim(); });
85
- if (acceptedLocales)
86
- preferredLocales.push.apply(preferredLocales, acceptedLocales);
87
- }
88
- // // Add locale from path
89
- // if (pathLocale) {
90
- // preferredLocales.push(pathLocale);
91
- // }
92
- // Give an error here
93
- if (preferredLocales.length === 0 &&
94
- process.env._GENERALTRANSLATION_IGNORE_BROWSER_LOCALES === 'false') {
95
- console.warn(createErrors_1.noLocalesCouldBeDeterminedWarning);
96
- }
97
- // add defaultLocale just in case there are no matches
98
- preferredLocales.push(defaultLocale);
99
- var gt = (0, getI18NConfig_1.default)().getGTClass();
100
- var result = gt.determineLocale(preferredLocales, locales) || defaultLocale;
101
- return result;
102
- })();
103
- return [2 /*return*/, userLocale];
104
- }
105
- });
106
- });
107
- }
108
- // async function viaExperimentalModule(): Promise<string | null> {
109
- // try {
110
- // // const mod = require('next/root-params');
111
- // const mod = await import('next/root-params');
112
- // const maybeFns = ['lang', 'locale'] as const;
113
- // const entries = await Promise.all(
114
- // maybeFns.map(async (k): Promise<readonly [string, string] | null> => {
115
- // const fn = (mod as Record<string, unknown>)[k];
116
- // if (typeof fn === 'function') {
117
- // try {
118
- // const v = await fn();
119
- // return typeof v === 'string' ? ([k, v] as const) : null;
120
- // } catch {
121
- // return null;
122
- // }
123
- // }
124
- // return null;
125
- // })
126
- // );
127
- // for (const entry of entries) {
128
- // if (entry) return entry[1];
129
- // }
130
- // } catch {
131
- // /* empty */
132
- // }
133
- // return null;
134
- // }
135
- // async function viaUnstableModule(): Promise<string | null> {
136
- // try {
137
- // const { unstable_rootParams } = await import('next/server');
138
- // if (typeof unstable_rootParams !== 'function') return null;
139
- // const params = await unstable_rootParams();
140
- // for (const [k, v] of Object.entries(params ?? {})) {
141
- // if (k === 'locale') {
142
- // if (typeof v === 'string') return v;
143
- // }
144
- // if (k === 'lang') {
145
- // if (typeof v === 'string') return v;
146
- // }
147
- // }
148
- // } catch {
149
- // /* empty */
150
- // }
151
- // return null;
152
- // }
153
- // /**
154
- // * Server-only helper that returns root params across Next versions.
155
- // * Uses environment variable to optimize API selection.
156
- // */
157
- // export async function getRootParams(): Promise<string | null> {
158
- // const apiVersion = process.env._GENERALTRANSLATION_ROOT_PARAMS_STABILITY;
159
- // // Skip expensive try/catch when we know API isn't available
160
- // if (apiVersion === 'unsupported') {
161
- // return null;
162
- // }
163
- // // Use new API for experimental/supported versions
164
- // if (apiVersion === 'experimental' || apiVersion === 'supported') {
165
- // const fromNew = await viaExperimentalModule();
166
- // if (fromNew) return fromNew;
167
- // }
168
- // // Use unstable API for unstable versions or as fallback
169
- // if (apiVersion === 'unstable' || !apiVersion) {
170
- // const fromOld = await viaUnstableModule();
171
- // if (fromOld) return fromOld;
172
- // }
173
- // return null;
174
- // }
175
- //# sourceMappingURL=getNextLocale.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getNextLocale.js","sourceRoot":"","sources":["../../src/next/getNextLocale.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export declare function getNextRegion(): Promise<string | undefined>;
2
- //# sourceMappingURL=getNextRegion.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getNextRegion.d.ts","sourceRoot":"","sources":["../../src/next/getNextRegion.ts"],"names":[],"mappings":"AAIA,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAKjE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"getNextRegion.js","sourceRoot":"","sources":["../../src/next/getNextRegion.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,sCAKC;AATD,wCAAuC;AACvC,2DAA2D;AAC3D,8CAA4D;AAE5D,SAAsB,aAAa;;;;;;wBACb,qBAAM,IAAA,iBAAO,GAAE,EAAA;;oBAA7B,WAAW,GAAG,SAAe;oBAE7B,YAAY,GAAG,MAAA,WAAW,CAAC,GAAG,CAAC,kCAAuB,CAAC,0CAAE,KAAK,CAAC;oBACrE,sBAAO,YAAY,EAAC;;;;CACrB"}