gt-next 4.3.0 → 4.3.2-beta

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 (52) hide show
  1. package/dist/config/I18NConfiguration.d.ts +27 -20
  2. package/dist/config/I18NConfiguration.d.ts.map +1 -1
  3. package/dist/config/I18NConfiguration.js +54 -38
  4. package/dist/config/I18NConfiguration.js.map +1 -1
  5. package/dist/config/RemoteTranslationsManager.d.ts +6 -5
  6. package/dist/config/RemoteTranslationsManager.d.ts.map +1 -1
  7. package/dist/config/RemoteTranslationsManager.js +22 -11
  8. package/dist/config/RemoteTranslationsManager.js.map +1 -1
  9. package/dist/config.d.ts.map +1 -1
  10. package/dist/config.js +2 -7
  11. package/dist/config.js.map +1 -1
  12. package/dist/dictionary/getDictionary.d.ts +3 -2
  13. package/dist/dictionary/getDictionary.d.ts.map +1 -1
  14. package/dist/dictionary/getDictionary.js +3 -1
  15. package/dist/dictionary/getDictionary.js.map +1 -1
  16. package/dist/errors/createErrors.d.ts +2 -0
  17. package/dist/errors/createErrors.d.ts.map +1 -1
  18. package/dist/errors/createErrors.js +5 -1
  19. package/dist/errors/createErrors.js.map +1 -1
  20. package/dist/middleware/createNextMiddleware.d.ts.map +1 -1
  21. package/dist/middleware/createNextMiddleware.js +0 -1
  22. package/dist/middleware/createNextMiddleware.js.map +1 -1
  23. package/dist/provider/ClientProvider.d.ts +11 -7
  24. package/dist/provider/ClientProvider.d.ts.map +1 -1
  25. package/dist/provider/ClientProvider.js +105 -83
  26. package/dist/provider/ClientProvider.js.map +1 -1
  27. package/dist/provider/GTProvider.d.ts.map +1 -1
  28. package/dist/provider/GTProvider.js +89 -63
  29. package/dist/provider/GTProvider.js.map +1 -1
  30. package/dist/server/getGT.d.ts.map +1 -1
  31. package/dist/server/getGT.js +39 -40
  32. package/dist/server/getGT.js.map +1 -1
  33. package/dist/server/inline/T.d.ts +1 -2
  34. package/dist/server/inline/T.d.ts.map +1 -1
  35. package/dist/server/inline/T.js +66 -70
  36. package/dist/server/inline/T.js.map +1 -1
  37. package/dist/server/strings/tx.d.ts.map +1 -1
  38. package/dist/server/strings/tx.js +27 -28
  39. package/dist/server/strings/tx.js.map +1 -1
  40. package/dist/types/types.d.ts +7 -9
  41. package/dist/types/types.d.ts.map +1 -1
  42. package/dist/types/types.js +1 -0
  43. package/dist/types/types.js.map +1 -1
  44. package/dist/utils/extractTaggedEntryMetadata.d.ts +7 -0
  45. package/dist/utils/extractTaggedEntryMetadata.d.ts.map +1 -0
  46. package/dist/utils/extractTaggedEntryMetadata.js +15 -0
  47. package/dist/utils/extractTaggedEntryMetadata.js.map +1 -0
  48. package/dist/utils/serializeJsx.d.ts +9 -0
  49. package/dist/utils/serializeJsx.d.ts.map +1 -0
  50. package/dist/utils/serializeJsx.js +156 -0
  51. package/dist/utils/serializeJsx.js.map +1 -0
  52. package/package.json +2 -3
@@ -57,6 +57,7 @@ var getMetadata_1 = __importDefault(require("../../request/getMetadata"));
57
57
  var react_1 = require("react");
58
58
  var internal_1 = require("gt-react/internal");
59
59
  var renderVariable_1 = __importDefault(require("../rendering/renderVariable"));
60
+ var generaltranslation_1 = require("generaltranslation");
60
61
  function Resolver(_a) {
61
62
  return __awaiter(this, arguments, void 0, function (_b) {
62
63
  var children = _b.children;
@@ -99,10 +100,9 @@ function Resolver(_a) {
99
100
  * @param {React.ReactNode} children - The content to be translated or displayed.
100
101
  * @param {string} [id] - Optional identifier for the translation string. If not provided, a hash will be generated from the content.
101
102
  * @param {Object} [renderSettings] - Optional settings controlling how fallback content is rendered during translation.
102
- * @param {"skeleton" | "replace" | "subtle" | "default"} [renderSettings.method] - Specifies the rendering method:
103
+ * @param {"skeleton" | "replace" | "default"} [renderSettings.method] - Specifies the rendering method:
103
104
  * - "skeleton": show a placeholder while translation is loading.
104
105
  * - "replace": show the default content as a fallback while the translation is loading.
105
- * - "subtle": display children without a translation initially, with translations being applied later if available.
106
106
  * - "default": behave like skeleton unless language is same (ie en-GB vs en-US), then behave like replace
107
107
  * @param {number | null} [renderSettings.timeout] - Optional timeout for translation loading.
108
108
  * @param {any} [context] - Additional context for translation key generation.
@@ -113,12 +113,12 @@ function Resolver(_a) {
113
113
  */
114
114
  function T(_a) {
115
115
  return __awaiter(this, arguments, void 0, function (_b) {
116
- var I18NConfig, locale, defaultLocale, regionalTranslationRequired, translationRequired, translationsPromise, taggedChildren, _c, childrenAsObjects, key, translations, translation, target, renderSettings, translationPromise, _d, _e, _f, renderDefaultLocale, renderLoadingSkeleton, renderLoadingDefault, renderTranslatedChildrenPromise, loadingFallback;
117
- var _g;
118
- var _this = this;
116
+ var I18NConfig, locale, defaultLocale, renderSettings, translationRequired, dialectTranslationRequired, taggedChildren, renderDefaultLocale, renderLoadingSkeleton, renderLoadingDefault, translationsPromise, _c, childrenAsObjects, key, translations, _d, translationEntry, translationPromise, _e, _f, _g, loadingFallback;
117
+ var _h;
118
+ var _j;
119
119
  var children = _b.children, id = _b.id, context = _b.context, variables = _b.variables, variablesOptions = _b.variablesOptions;
120
- return __generator(this, function (_h) {
121
- switch (_h.label) {
120
+ return __generator(this, function (_k) {
121
+ switch (_k.label) {
122
122
  case 0:
123
123
  if (!children) {
124
124
  return [2 /*return*/];
@@ -126,55 +126,12 @@ function T(_a) {
126
126
  I18NConfig = (0, getI18NConfig_1.default)();
127
127
  return [4 /*yield*/, (0, getLocale_1.default)()];
128
128
  case 1:
129
- locale = _h.sent();
129
+ locale = _k.sent();
130
130
  defaultLocale = I18NConfig.getDefaultLocale();
131
- regionalTranslationRequired = I18NConfig.requiresRegionalTranslation(locale);
132
- translationRequired = I18NConfig.requiresTranslation(locale) || regionalTranslationRequired;
133
- if (translationRequired) {
134
- translationsPromise = I18NConfig.getTranslations(locale);
135
- }
136
- taggedChildren = I18NConfig.addGTIdentifier(children, id);
137
- // If no translation is required, render the default children
138
- // The dictionary wraps text in this <T> component
139
- // Thus, we need to also handle variables
140
- if (!translationRequired) {
141
- return [2 /*return*/, (0, internal_1.renderDefaultChildren)({
142
- children: taggedChildren,
143
- variables: variables,
144
- variablesOptions: variablesOptions,
145
- defaultLocale: defaultLocale,
146
- renderVariable: renderVariable_1.default,
147
- })];
148
- }
149
- _c = I18NConfig.serializeAndHash(taggedChildren, context, undefined // id is not provided here, to catch erroneous situations where the same id is being used for different <T> components
150
- ), childrenAsObjects = _c[0], key = _c[1];
151
- return [4 /*yield*/, translationsPromise];
152
- case 2:
153
- translations = _h.sent();
154
- translation = id ? translations === null || translations === void 0 ? void 0 : translations[id] : undefined;
155
- // checks if an appropriate translation exists
156
- if (translation && (translation === null || translation === void 0 ? void 0 : translation[key])) {
157
- target = translation[key];
158
- return [2 /*return*/, (0, internal_1.renderTranslatedChildren)({
159
- source: taggedChildren,
160
- target: target,
161
- variables: variables,
162
- variablesOptions: variablesOptions,
163
- locales: [locale, defaultLocale],
164
- renderVariable: renderVariable_1.default,
165
- })];
166
- }
167
131
  renderSettings = I18NConfig.getRenderSettings();
168
- _e = (_d = I18NConfig).translateChildren;
169
- _g = {
170
- source: childrenAsObjects,
171
- targetLocale: locale
172
- };
173
- _f = [__assign(__assign(__assign({}, (id && { id: id })), { hash: key }), (context && { context: context }))];
174
- return [4 /*yield*/, (0, getMetadata_1.default)()];
175
- case 3:
176
- translationPromise = _e.apply(_d, [(_g.metadata = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_h.sent())])), (renderSettings.timeout && { timeout: renderSettings.timeout })]),
177
- _g)]);
132
+ translationRequired = I18NConfig.requiresTranslation(locale);
133
+ dialectTranslationRequired = translationRequired && (0, generaltranslation_1.isSameLanguage)(locale, defaultLocale);
134
+ taggedChildren = I18NConfig.addGTIdentifier(children);
178
135
  renderDefaultLocale = function () {
179
136
  return (0, internal_1.renderDefaultChildren)({
180
137
  children: taggedChildren,
@@ -193,22 +150,64 @@ function T(_a) {
193
150
  });
194
151
  };
195
152
  renderLoadingDefault = function () {
196
- if (regionalTranslationRequired)
153
+ if (dialectTranslationRequired)
197
154
  return renderDefaultLocale();
198
155
  return renderLoadingSkeleton();
199
156
  };
200
- renderTranslatedChildrenPromise = translationPromise.then(function (translation) { return __awaiter(_this, void 0, void 0, function () {
201
- return __generator(this, function (_a) {
202
- return [2 /*return*/, (0, internal_1.renderTranslatedChildren)({
203
- source: taggedChildren,
204
- target: translation,
205
- variables: variables,
206
- variablesOptions: variablesOptions,
207
- locales: [locale, defaultLocale],
208
- renderVariable: renderVariable_1.default,
209
- })];
157
+ // ----- CHECK TRANSLATIONS REQUIRED ----- //
158
+ // If no translation is required, render the default children
159
+ // The dictionary wraps text in this <T> component
160
+ // Thus, we need to also handle variables
161
+ if (!translationRequired) {
162
+ return [2 /*return*/, renderDefaultLocale()];
163
+ }
164
+ translationsPromise = translationRequired && I18NConfig.getCachedTranslations(locale);
165
+ _c = I18NConfig.serializeAndHashChildren(taggedChildren, context), childrenAsObjects = _c[0], key = _c[1];
166
+ if (!(translationsPromise)) return [3 /*break*/, 3];
167
+ return [4 /*yield*/, translationsPromise];
168
+ case 2:
169
+ _d = _k.sent();
170
+ return [3 /*break*/, 4];
171
+ case 3:
172
+ _d = {};
173
+ _k.label = 4;
174
+ case 4:
175
+ translations = _d;
176
+ translationEntry = (_j = translations === null || translations === void 0 ? void 0 : translations[id]) === null || _j === void 0 ? void 0 : _j[key];
177
+ // ----- CHECK CACHED TRANSLATIONS ----- //
178
+ // if we have a cached translation, render it
179
+ if ((translationEntry === null || translationEntry === void 0 ? void 0 : translationEntry.state) === 'success') {
180
+ return [2 /*return*/, (0, internal_1.renderTranslatedChildren)({
181
+ source: taggedChildren,
182
+ target: translationEntry.target,
183
+ variables: variables,
184
+ variablesOptions: variablesOptions,
185
+ locales: [locale, defaultLocale],
186
+ renderVariable: renderVariable_1.default,
187
+ })];
188
+ }
189
+ else if ((translationEntry === null || translationEntry === void 0 ? void 0 : translationEntry.state) === 'error') {
190
+ return [2 /*return*/, renderDefaultLocale()];
191
+ }
192
+ _f = (_e = I18NConfig).translateChildren;
193
+ _h = {
194
+ source: childrenAsObjects,
195
+ targetLocale: locale
196
+ };
197
+ _g = [__assign(__assign(__assign({}, (id && { id: id })), { hash: key }), (context && { context: context }))];
198
+ return [4 /*yield*/, (0, getMetadata_1.default)()];
199
+ case 5:
200
+ translationPromise = _f.apply(_e, [(_h.metadata = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_k.sent())])), (renderSettings.timeout && { timeout: renderSettings.timeout })]),
201
+ _h)]).then(function (translation) {
202
+ return (0, internal_1.renderTranslatedChildren)({
203
+ source: taggedChildren,
204
+ target: translation,
205
+ variables: variables,
206
+ variablesOptions: variablesOptions,
207
+ locales: [locale, defaultLocale],
208
+ renderVariable: renderVariable_1.default,
210
209
  });
211
- }); }).catch(function () {
210
+ }).catch(function () {
212
211
  return renderDefaultLocale();
213
212
  });
214
213
  if (renderSettings.method === 'replace') {
@@ -217,13 +216,10 @@ function T(_a) {
217
216
  else if (renderSettings.method === 'skeleton') {
218
217
  loadingFallback = renderLoadingSkeleton();
219
218
  }
220
- else if (renderSettings.method === 'subtle' && id !== undefined) { // exclude entries with missing ids bc these don't get cached
221
- return [2 /*return*/, renderDefaultLocale()];
222
- }
223
219
  else {
224
220
  loadingFallback = renderLoadingDefault();
225
221
  }
226
- return [2 /*return*/, ((0, jsx_runtime_1.jsx)(react_1.Suspense, { fallback: loadingFallback, children: (0, jsx_runtime_1.jsx)(Resolver, { children: renderTranslatedChildrenPromise }) }))];
222
+ return [2 /*return*/, ((0, jsx_runtime_1.jsx)(react_1.Suspense, { fallback: loadingFallback, children: (0, jsx_runtime_1.jsx)(Resolver, { children: translationPromise }) }))];
227
223
  }
228
224
  });
229
225
  });
@@ -1 +1 @@
1
- {"version":3,"file":"T.js","sourceRoot":"","sources":["../../../src/server/inline/T.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"T.js","sourceRoot":"","sources":["../../../src/server/inline/T.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tx.d.ts","sourceRoot":"","sources":["../../../src/server/strings/tx.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAA8B,EAAE,CAC9B,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;IACP,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,eAAe,CAAC,EAAE,MAAM,CACtB,MAAM,EACN,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,qBAAqB,CACtD,CAAC;IACF,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACf,GACL,OAAO,CAAC,MAAM,CAAC,CAqDjB"}
1
+ {"version":3,"file":"tx.d.ts","sourceRoot":"","sources":["../../../src/server/strings/tx.ts"],"names":[],"mappings":"AAUA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAA8B,EAAE,CAC9B,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;IACP,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,eAAe,CAAC,EAAE,MAAM,CACtB,MAAM,EACN,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,qBAAqB,CACtD,CAAC;IACF,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACf,GACL,OAAO,CAAC,MAAM,CAAC,CAqDjB"}
@@ -92,65 +92,64 @@ var createErrors_1 = require("../../errors/createErrors");
92
92
  */
93
93
  function tx(content_1) {
94
94
  return __awaiter(this, arguments, void 0, function (content, options) {
95
- var I18NConfig, defaultLocale, locale, _a, contentArray, renderContent, _b, _, hash, translations, target, translationPromise, _c, _d, _e, renderSettings, target, error_1;
95
+ var I18NConfig, locale, _a, defaultLocale, translationRequired, contentArray, renderContent, hash, translations, target, translationPromise, _b, _c, _d, target, error_1;
96
+ var _e;
96
97
  var _f;
97
- var _g;
98
98
  if (options === void 0) { options = {}; }
99
- return __generator(this, function (_h) {
100
- switch (_h.label) {
99
+ return __generator(this, function (_g) {
100
+ switch (_g.label) {
101
101
  case 0:
102
+ // ----- SET UP ----- //
102
103
  if (!content)
103
- return [2 /*return*/, ''];
104
+ return [2 /*return*/, '']; // No content to translate
104
105
  I18NConfig = (0, getI18NConfig_1.default)();
105
- defaultLocale = I18NConfig.getDefaultLocale();
106
106
  _a = options.locale;
107
107
  if (_a) return [3 /*break*/, 2];
108
108
  return [4 /*yield*/, (0, getLocale_1.default)()];
109
109
  case 1:
110
- _a = (_h.sent());
111
- _h.label = 2;
110
+ _a = (_g.sent());
111
+ _g.label = 2;
112
112
  case 2:
113
113
  locale = _a;
114
+ defaultLocale = I18NConfig.getDefaultLocale();
115
+ translationRequired = I18NConfig.requiresTranslation(locale);
114
116
  contentArray = (0, generaltranslation_1.splitStringToContent)(content);
115
117
  renderContent = function (content, locales) {
116
118
  return (0, generaltranslation_1.renderContentToString)(content, locales, options.variables, options.variablesOptions);
117
119
  };
118
- if (!I18NConfig.requiresTranslation(locale))
120
+ // ----- RENDER LOGIC ----- //
121
+ // translation required
122
+ if (translationRequired)
119
123
  return [2 /*return*/, renderContent(contentArray, [defaultLocale])];
120
- _b = I18NConfig.serializeAndHash(contentArray, options.context, undefined // id is not provided here, to catch erroneous situations where the same id is being used for different <T> components
121
- ), _ = _b[0], hash = _b[1];
124
+ hash = I18NConfig.hashContent(contentArray, options.context);
122
125
  if (!options.id) return [3 /*break*/, 4];
123
- return [4 /*yield*/, I18NConfig.getTranslations(locale)];
126
+ return [4 /*yield*/, I18NConfig.getCachedTranslations(locale)];
124
127
  case 3:
125
- translations = _h.sent();
126
- target = (_g = translations[options.id]) === null || _g === void 0 ? void 0 : _g[hash];
128
+ translations = _g.sent();
129
+ target = (_f = translations[options.id]) === null || _f === void 0 ? void 0 : _f[hash];
127
130
  if (target)
128
131
  return [2 /*return*/, renderContent(target, [locale, defaultLocale])];
129
- _h.label = 4;
132
+ _g.label = 4;
130
133
  case 4:
131
- _d = (_c = I18NConfig).translateContent;
132
- _f = {
134
+ _c = (_b = I18NConfig).translateContent;
135
+ _e = {
133
136
  source: contentArray,
134
137
  targetLocale: locale
135
138
  };
136
- _e = [__assign({}, options)];
139
+ _d = [__assign({}, options)];
137
140
  return [4 /*yield*/, (0, getMetadata_1.default)()];
138
141
  case 5:
139
- translationPromise = _d.apply(_c, [(_f.options = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_h.sent())])), { hash: hash }]),
140
- _f)]);
141
- renderSettings = I18NConfig.getRenderSettings();
142
- // subtle: wait for CDN to populate or for API to respond, do fallback for now
143
- if (renderSettings.method === 'subtle' || !options.id)
144
- return [2 /*return*/, renderContent(contentArray, [defaultLocale])];
145
- _h.label = 6;
142
+ translationPromise = _c.apply(_b, [(_e.options = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_g.sent())])), { hash: hash }]),
143
+ _e)]);
144
+ _g.label = 6;
146
145
  case 6:
147
- _h.trys.push([6, 8, , 9]);
146
+ _g.trys.push([6, 8, , 9]);
148
147
  return [4 /*yield*/, translationPromise];
149
148
  case 7:
150
- target = _h.sent();
149
+ target = _g.sent();
151
150
  return [2 /*return*/, renderContent(target, [locale, defaultLocale])];
152
151
  case 8:
153
- error_1 = _h.sent();
152
+ error_1 = _g.sent();
154
153
  console.error((0, createErrors_1.createStringTranslationError)(content, options.id), error_1);
155
154
  return [2 /*return*/, renderContent(contentArray, [defaultLocale])];
156
155
  case 9: return [2 /*return*/];
@@ -1 +1 @@
1
- {"version":3,"file":"tx.js","sourceRoot":"","sources":["../../../src/server/strings/tx.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2CA,qBAkEC;AA7GD,yDAG4B;AAC5B,6EAAuD;AACvD,sEAAgD;AAChD,0EAAoD;AACpD,0DAAyE;AAEzE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,SAA8B,EAAE;wDAC9B,OAAe,EACf,OAUM;;;;QAVN,wBAAA,EAAA,YAUM;;;;oBAEN,IAAI,CAAC,OAAO;wBAAE,sBAAO,EAAE,EAAC;oBAElB,UAAU,GAAG,IAAA,uBAAa,GAAE,CAAC;oBAC7B,aAAa,GAAG,UAAU,CAAC,gBAAgB,EAAE,CAAC;oBACrC,KAAA,OAAO,CAAC,MAAM,CAAA;4BAAd,wBAAc;oBAAK,qBAAM,IAAA,mBAAS,GAAE,EAAA;;oBAAlB,KAAA,CAAC,SAAiB,CAAC,CAAA;;;oBAA9C,MAAM,KAAwC;oBAE9C,YAAY,GAAG,IAAA,yCAAoB,EAAC,OAAO,CAAC,CAAC;oBAE7C,aAAa,GAAG,UAAC,OAAY,EAAE,OAAiB;wBACpD,OAAO,IAAA,0CAAqB,EAC1B,OAAO,EACP,OAAO,EACP,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,gBAAgB,CACzB,CAAC;oBACJ,CAAC,CAAC;oBAEF,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,MAAM,CAAC;wBACzC,sBAAO,aAAa,CAAC,YAAY,EAAE,CAAC,aAAa,CAAC,CAAC,EAAC;oBAEhD,KAAY,UAAU,CAAC,gBAAgB,CAC3C,YAAY,EACZ,OAAO,CAAC,OAAO,EACf,SAAS,CAAC,sHAAsH;qBACjI,EAJM,CAAC,QAAA,EAAE,IAAI,QAAA,CAIZ;yBAGE,OAAO,CAAC,EAAE,EAAV,wBAAU;oBACS,qBAAM,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC,EAAA;;oBAAvD,YAAY,GAAG,SAAwC;oBACvD,MAAM,GAAG,MAAA,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,0CAAG,IAAI,CAAC,CAAC;oBAChD,IAAI,MAAM;wBAAE,sBAAO,aAAa,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,EAAC;;;oBAIzC,KAAA,CAAA,KAAA,UAAU,CAAA,CAAC,gBAAgB,CAAA;;wBACpD,MAAM,EAAE,YAAY;wBACpB,YAAY,EAAE,MAAM;;uCACN,OAAO;oBAAM,qBAAM,IAAA,qBAAW,GAAE,EAAA;;oBAH1C,kBAAkB,GAAG,eAGzB,UAAO,6DAAmB,CAAC,SAAmB,CAAC,OAAE,IAAI,MAAA,IAAE;iCACvD;oBAEI,cAAc,GAAG,UAAU,CAAC,iBAAiB,EAAE,CAAC;oBAEtD,8EAA8E;oBAC9E,IAAI,cAAc,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,EAAE;wBAAE,sBAAO,aAAa,CAAC,YAAY,EAAE,CAAC,aAAa,CAAC,CAAC,EAAC;;;;oBAG1F,qBAAM,kBAAkB,EAAA;;oBAAjC,MAAM,GAAG,SAAwB;oBACvC,sBAAO,aAAa,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,EAAC;;;oBAEtD,OAAO,CAAC,KAAK,CAAC,IAAA,2CAA4B,EAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,OAAK,CAAC,CAAC;oBACxE,sBAAO,aAAa,CAAC,YAAY,EAAE,CAAC,aAAa,CAAC,CAAC,EAAC;;;;;CAEvD"}
1
+ {"version":3,"file":"tx.js","sourceRoot":"","sources":["../../../src/server/strings/tx.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4CA,qBAkEC;AA9GD,yDAI4B;AAC5B,6EAAuD;AACvD,sEAAgD;AAChD,0EAAoD;AACpD,0DAAyE;AAEzE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,SAA8B,EAAE;wDAC9B,OAAe,EACf,OAUM;;;;QAVN,wBAAA,EAAA,YAUM;;;;oBAGN,wBAAwB;oBAExB,IAAI,CAAC,OAAO;wBAAE,sBAAO,EAAE,EAAC,CAAE,0BAA0B;oBAE9C,UAAU,GAAG,IAAA,uBAAa,GAAE,CAAC;oBACpB,KAAA,OAAO,CAAC,MAAM,CAAA;4BAAd,wBAAc;oBAAK,qBAAM,IAAA,mBAAS,GAAE,EAAA;;oBAAlB,KAAA,CAAC,SAAiB,CAAC,CAAA;;;oBAA9C,MAAM,KAAwC;oBAC9C,aAAa,GAAG,UAAU,CAAC,gBAAgB,EAAE,CAAC;oBAC9C,mBAAmB,GAAG,UAAU,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;oBAC7D,YAAY,GAAG,IAAA,yCAAoB,EAAC,OAAO,CAAC,CAAC;oBAI7C,aAAa,GAAG,UAAC,OAAY,EAAE,OAAiB;wBACpD,OAAO,IAAA,0CAAqB,EAC1B,OAAO,EACP,OAAO,EACP,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,gBAAgB,CACzB,CAAC;oBACJ,CAAC,CAAC;oBAGF,8BAA8B;oBAE9B,uBAAuB;oBACvB,IAAI,mBAAmB;wBAAE,sBAAO,aAAa,CAAC,YAAY,EAAE,CAAC,aAAa,CAAC,CAAC,EAAC;oBAGvE,IAAI,GAAG,UAAU,CAAC,WAAW,CAAC,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;yBAG/D,OAAO,CAAC,EAAE,EAAV,wBAAU;oBACS,qBAAM,UAAU,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAA;;oBAA7D,YAAY,GAAG,SAA8C;oBAC7D,MAAM,GAAG,MAAA,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,0CAAG,IAAI,CAAC,CAAC;oBAChD,IAAI,MAAM;wBAAE,sBAAO,aAAa,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,EAAC;;;oBAIzC,KAAA,CAAA,KAAA,UAAU,CAAA,CAAC,gBAAgB,CAAA;;wBACpD,MAAM,EAAE,YAAY;wBACpB,YAAY,EAAE,MAAM;;uCACN,OAAO;oBAAM,qBAAM,IAAA,qBAAW,GAAE,EAAA;;oBAH1C,kBAAkB,GAAG,eAGzB,UAAO,6DAAmB,CAAC,SAAmB,CAAC,OAAE,IAAI,MAAA,IAAE;iCACvD;;;;oBAGe,qBAAM,kBAAkB,EAAA;;oBAAjC,MAAM,GAAG,SAAwB;oBACvC,sBAAO,aAAa,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,EAAC;;;oBAEtD,OAAO,CAAC,KAAK,CAAC,IAAA,2CAA4B,EAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,OAAK,CAAC,CAAC;oBACxE,sBAAO,aAAa,CAAC,YAAY,EAAE,CAAC,aAAa,CAAC,CAAC,EAAC;;;;;CAEvD"}
@@ -1,13 +1,11 @@
1
- import { TranslatedChildren, TranslatedContent, TranslationError } from "gt-react/internal";
2
- export type TranslationPromise = {
3
- promise: Promise<TranslatedChildren> | Promise<TranslatedContent>;
4
- hash: string;
5
- type: 'jsx' | 'content';
1
+ import { TaggedChildren, TranslationError, Metadata } from "gt-react/internal";
2
+ export type TaggedEntry = string | TaggedChildren;
3
+ export type TaggedDictionaryEntry = TaggedEntry | [TaggedEntry] | [TaggedEntry, Metadata];
4
+ export type TaggedDictionary = {
5
+ [key: string]: TaggedDictionary | TaggedDictionaryEntry;
6
6
  };
7
- export type Translations = {
8
- [id: string]: {
9
- [hash: string]: TranslatedChildren | TranslatedContent;
10
- } | TranslationError | TranslationPromise;
7
+ export type FlattenedTaggedDictionary = {
8
+ [key: string]: TaggedDictionaryEntry;
11
9
  };
12
10
  export declare class GTTranslationError extends Error {
13
11
  error: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE5F,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,KAAK,GAAG,SAAS,CAAA;CACxB,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,CAAC,EAAE,EAAE,MAAM,GACT;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,GAAG,iBAAiB,CAAA;KAAE,GACxD,gBAAgB,GAChB,kBAAkB,CAAA;CACvB,CAAC;AAEF,qBAAa,kBAAmB,SAAQ,KAAK;IACxB,KAAK,EAAE,MAAM;IAAS,IAAI,EAAE,MAAM;gBAAlC,KAAK,EAAE,MAAM,EAAS,IAAI,EAAE,MAAM;IAKrD,kBAAkB,IAAI,gBAAgB;CAMvC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE/E,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,cAAc,CAAC;AAClD,MAAM,MAAM,qBAAqB,GAAG,WAAW,GAAG,CAAE,WAAW,CAAE,GAAG,CAAE,WAAW,EAAE,QAAQ,CAAE,CAAC;AAC9F,MAAM,MAAM,gBAAgB,GAAG;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,GAAG,qBAAqB,CAAC;CAC3D,CAAA;AACD,MAAM,MAAM,yBAAyB,GAAG;IACpC,CAAC,GAAG,EAAE,MAAM,GAAG,qBAAqB,CAAA;CACvC,CAAA;AAED,qBAAa,kBAAmB,SAAQ,KAAK;IACxB,KAAK,EAAE,MAAM;IAAS,IAAI,EAAE,MAAM;gBAAlC,KAAK,EAAE,MAAM,EAAS,IAAI,EAAE,MAAM;IAKrD,kBAAkB,IAAI,gBAAgB;CAOvC"}
@@ -27,6 +27,7 @@ var GTTranslationError = /** @class */ (function (_super) {
27
27
  }
28
28
  GTTranslationError.prototype.toTranslationError = function () {
29
29
  return {
30
+ state: 'error',
30
31
  error: this.error,
31
32
  code: this.code
32
33
  };
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types/types.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAeA;IAAwC,sCAAK;IAC3C,4BAAmB,KAAa,EAAS,IAAY;QACnD,YAAA,MAAK,YAAC,KAAK,CAAC,SAAC;QADI,WAAK,GAAL,KAAK,CAAQ;QAAS,UAAI,GAAJ,IAAI,CAAQ;QAEnD,KAAI,CAAC,IAAI,GAAG,IAAI,CAAC;;IACnB,CAAC;IAED,+CAAkB,GAAlB;QACE,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAA;IACH,CAAC;IACH,yBAAC;AAAD,CAAC,AAZD,CAAwC,KAAK,GAY5C;AAZY,gDAAkB"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types/types.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAWA;IAAwC,sCAAK;IAC3C,4BAAmB,KAAa,EAAS,IAAY;QACnD,YAAA,MAAK,YAAC,KAAK,CAAC,SAAC;QADI,WAAK,GAAL,KAAK,CAAQ;QAAS,UAAI,GAAJ,IAAI,CAAQ;QAEnD,KAAI,CAAC,IAAI,GAAG,IAAI,CAAC;;IACnB,CAAC;IAED,+CAAkB,GAAlB;QACE,OAAO;YACL,KAAK,EAAE,OAAO;YACd,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAA;IACH,CAAC;IACH,yBAAC;AAAD,CAAC,AAbD,CAAwC,KAAK,GAa5C;AAbY,gDAAkB"}
@@ -0,0 +1,7 @@
1
+ import { Metadata } from "gt-react/internal";
2
+ import { TaggedDictionaryEntry, TaggedEntry } from "../types/types";
3
+ export default function extractEntryMetadata(value: TaggedDictionaryEntry): {
4
+ entry: TaggedEntry;
5
+ metadata?: Metadata;
6
+ };
7
+ //# sourceMappingURL=extractTaggedEntryMetadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extractTaggedEntryMetadata.d.ts","sourceRoot":"","sources":["../../src/utils/extractTaggedEntryMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAEpE,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,KAAK,EAAE,qBAAqB,GAAG;IACxE,KAAK,EAAE,WAAW,CAAC;IACnB,QAAQ,CAAC,EAAE,QAAQ,CAAA;CACtB,CAUA"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = extractEntryMetadata;
4
+ function extractEntryMetadata(value) {
5
+ if (Array.isArray(value)) {
6
+ if (value.length === 1) {
7
+ return { entry: value[0] };
8
+ }
9
+ if (value.length === 2) {
10
+ return { entry: value[0], metadata: value[1] };
11
+ }
12
+ }
13
+ return { entry: value };
14
+ }
15
+ //# sourceMappingURL=extractTaggedEntryMetadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extractTaggedEntryMetadata.js","sourceRoot":"","sources":["../../src/utils/extractTaggedEntryMetadata.ts"],"names":[],"mappings":";;AAGA,uCAaC;AAbD,SAAwB,oBAAoB,CAAC,KAA4B;IAIrE,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;QAC9B,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAa,EAAE,CAAA;QAC9D,CAAC;IACL,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,KAAoB,EAAE,CAAC;AAC3C,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { Children } from 'gt-react/internal';
2
+ /**
3
+ * Replaces fragment tags with spans. This is because they get serialized as strings when passed to client as a dictionary entry.
4
+ * @param children
5
+ * @param startingIndex
6
+ * @returns
7
+ */
8
+ export default function serializeJsx(children: Children, startingIndex?: number): Children;
9
+ //# sourceMappingURL=serializeJsx.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serializeJsx.d.ts","sourceRoot":"","sources":["../../src/utils/serializeJsx.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAiB,MAAM,mBAAmB,CAAC;AAG5D;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,GAAE,MAAU,GAAG,QAAQ,CAwF5F"}
@@ -0,0 +1,156 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || (function () {
30
+ var ownKeys = function(o) {
31
+ ownKeys = Object.getOwnPropertyNames || function (o) {
32
+ var ar = [];
33
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
34
+ return ar;
35
+ };
36
+ return ownKeys(o);
37
+ };
38
+ return function (mod) {
39
+ if (mod && mod.__esModule) return mod;
40
+ var result = {};
41
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
42
+ __setModuleDefault(result, mod);
43
+ return result;
44
+ };
45
+ })();
46
+ var __rest = (this && this.__rest) || function (s, e) {
47
+ var t = {};
48
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
49
+ t[p] = s[p];
50
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
51
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
52
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
53
+ t[p[i]] = s[p[i]];
54
+ }
55
+ return t;
56
+ };
57
+ Object.defineProperty(exports, "__esModule", { value: true });
58
+ exports.default = serializeJsx;
59
+ var jsx_runtime_1 = require("react/jsx-runtime");
60
+ var react_1 = __importStar(require("react"));
61
+ var internal_1 = require("generaltranslation/internal");
62
+ /**
63
+ * Replaces fragment tags with spans. This is because they get serialized as strings when passed to client as a dictionary entry.
64
+ * @param children
65
+ * @param startingIndex
66
+ * @returns
67
+ */
68
+ function serializeJsx(children, startingIndex) {
69
+ if (startingIndex === void 0) { startingIndex = 0; }
70
+ // Object to keep track of the current index for GT IDs
71
+ var index = startingIndex;
72
+ /**
73
+ * Function to create a GTProp object for a ReactElement
74
+ * @param child - The ReactElement for which the GTProp is created
75
+ * @returns - The GTProp object
76
+ */
77
+ var createGTProp = function (child) {
78
+ var type = child.type, props = child.props;
79
+ index += 1;
80
+ var result = { id: index };
81
+ var transformation;
82
+ try {
83
+ transformation = typeof type === 'function' ? (type.gtTransformation || '') : '';
84
+ }
85
+ catch (error) {
86
+ transformation = '';
87
+ }
88
+ if (transformation) {
89
+ var transformationParts = transformation.split('-');
90
+ if (transformationParts[0] === "translate") {
91
+ // throw new Error(createNestedTError(child))
92
+ // console.log
93
+ // TODO: get a better error:
94
+ throw new Error('Nested T error');
95
+ }
96
+ if (transformationParts[0] === "variable") {
97
+ result.variableType = (transformationParts === null || transformationParts === void 0 ? void 0 : transformationParts[1]) || "variable";
98
+ }
99
+ if (transformationParts[0] === "plural") {
100
+ var pluralBranches = Object.entries(props).reduce(function (acc, _a) {
101
+ var branchName = _a[0], branch = _a[1];
102
+ if ((0, internal_1.isAcceptedPluralForm)(branchName)) {
103
+ acc[branchName] = serializeJsx(branch, index);
104
+ }
105
+ return acc;
106
+ }, {});
107
+ if (Object.keys(pluralBranches).length)
108
+ result.branches = pluralBranches;
109
+ }
110
+ if (transformationParts[0] === "branch") {
111
+ var children_1 = props.children, branch = props.branch, branches = __rest(props, ["children", "branch"]);
112
+ var resultBranches = Object.entries(branches).reduce(function (acc, _a) {
113
+ var branchName = _a[0], branch = _a[1];
114
+ acc[branchName] = serializeJsx(branch, index);
115
+ return acc;
116
+ }, {});
117
+ if (Object.keys(resultBranches).length)
118
+ result.branches = resultBranches;
119
+ }
120
+ result.transformation = transformationParts[0];
121
+ }
122
+ return result;
123
+ };
124
+ function handleSingleChildElement(child) {
125
+ var props = child.props;
126
+ // if (props['data-_gt']) throw new Error(createNestedDataGTError(child));
127
+ // Create new props for the element, including the GT identifier and a key
128
+ var generaltranslation = createGTProp(child);
129
+ var newProps = __assign({}, props);
130
+ if (props.children && !generaltranslation.variableType) {
131
+ newProps.children = handleChildren(props.children);
132
+ }
133
+ if (child.type === react_1.default.Fragment) {
134
+ var fragment = (0, jsx_runtime_1.jsx)("span", __assign({ style: { all: 'unset', display: 'contents' } }, newProps));
135
+ return fragment;
136
+ }
137
+ return react_1.default.cloneElement(child, newProps);
138
+ }
139
+ function handleSingleChild(child) {
140
+ if ((0, react_1.isValidElement)(child)) {
141
+ return handleSingleChildElement(child);
142
+ }
143
+ return child;
144
+ }
145
+ function handleChildren(children) {
146
+ if (Array.isArray(children)) {
147
+ return react_1.default.Children.map(children, handleSingleChild);
148
+ }
149
+ else {
150
+ return handleSingleChild(children);
151
+ }
152
+ }
153
+ return handleChildren(children);
154
+ }
155
+ ;
156
+ //# sourceMappingURL=serializeJsx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serializeJsx.js","sourceRoot":"","sources":["../../src/utils/serializeJsx.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gt-next",
3
- "version": "4.3.0",
3
+ "version": "4.3.2-beta",
4
4
  "description": "A Next.js library for automatic internationalization.",
5
5
  "main": "dist/index.server.js",
6
6
  "peerDependencies": {
@@ -120,7 +120,6 @@
120
120
  ],
121
121
  "dependencies": {
122
122
  "@generaltranslation/supported-locales": "^1.1.2",
123
- "generaltranslation": "^6.1.3",
124
- "gt-react": "^8.2.11"
123
+ "gt-react": "^8.2.17-beta"
125
124
  }
126
125
  }