@koine/next 2.0.0-beta.4 → 2.0.0-beta.42

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 (159) hide show
  1. package/12/AnalyticsGoogle.d.ts +0 -1
  2. package/12/DisableErrorOverlay.d.ts +0 -5
  3. package/12/NextProgress.d.ts +1 -4
  4. package/12/Seo.d.ts +0 -24
  5. package/12/SeoDefaults.d.ts +0 -3
  6. package/12/seoBuildTags.d.ts +0 -15
  7. package/12/types-seo.d.ts +0 -0
  8. package/12/types.d.ts +1 -0
  9. package/12.cjs.d.ts +1 -0
  10. package/12.cjs.default.js +1 -0
  11. package/12.cjs.js +28 -0
  12. package/12.cjs.mjs +2 -0
  13. package/12.d.ts +3 -0
  14. package/12.esm.js +18 -0
  15. package/config.cjs.d.ts +1 -0
  16. package/config.cjs.default.js +1 -0
  17. package/config.cjs.js +9 -0
  18. package/config.cjs.mjs +2 -0
  19. package/config.d.ts +106 -0
  20. package/config.esm.js +5 -0
  21. package/index.cjs.d.ts +1 -0
  22. package/index.cjs.default.js +1 -0
  23. package/index.cjs.js +25 -0
  24. package/index.cjs.mjs +2 -0
  25. package/index.d.ts +4 -2
  26. package/index.esm.js +14 -0
  27. package/package.json +29 -83
  28. package/theme/ThemeContext.d.ts +11 -0
  29. package/theme/ThemeProvider.d.ts +17 -0
  30. package/theme/useTheme.d.ts +4 -0
  31. package/utils/load.d.ts +1 -0
  32. package/12/AnalyticsGoogle.js +0 -79
  33. package/12/AnalyticsGoogle.mjs +0 -60
  34. package/12/DisableErrorOverlay.js +0 -31
  35. package/12/DisableErrorOverlay.mjs +0 -16
  36. package/12/DynamicNamespaces.d.ts +0 -13
  37. package/12/DynamicNamespaces.js +0 -23
  38. package/12/DynamicNamespaces.mjs +0 -8
  39. package/12/Favicon.d.ts +0 -4
  40. package/12/Favicon.js +0 -29
  41. package/12/Favicon.mjs +0 -10
  42. package/12/Link.d.ts +0 -10
  43. package/12/Link.js +0 -38
  44. package/12/Link.mjs +0 -20
  45. package/12/NextProgress.js +0 -69
  46. package/12/NextProgress.mjs +0 -51
  47. package/12/Seo.js +0 -29
  48. package/12/Seo.mjs +0 -30
  49. package/12/SeoDefaults.js +0 -31
  50. package/12/SeoDefaults.mjs +0 -14
  51. package/12/T.d.ts +0 -16
  52. package/12/T.js +0 -43
  53. package/12/T.mjs +0 -27
  54. package/12/ThemeContext.d.ts +0 -17
  55. package/12/ThemeContext.js +0 -25
  56. package/12/ThemeContext.mjs +0 -7
  57. package/12/ThemeProvider.d.ts +0 -35
  58. package/12/ThemeProvider.js +0 -256
  59. package/12/ThemeProvider.mjs +0 -245
  60. package/12/TransText.d.ts +0 -3
  61. package/12/TransText.js +0 -23
  62. package/12/TransText.mjs +0 -4
  63. package/12/app/AppHead.d.ts +0 -3
  64. package/12/app/AppHead.js +0 -31
  65. package/12/app/AppHead.mjs +0 -12
  66. package/12/app/AppMain.d.ts +0 -35
  67. package/12/app/AppMain.js +0 -6
  68. package/12/app/AppMain.mjs +0 -1
  69. package/12/app/css/AppMain.d.ts +0 -9
  70. package/12/app/css/AppMain.js +0 -39
  71. package/12/app/css/AppMain.mjs +0 -24
  72. package/12/app/css/AppTheme.d.ts +0 -11
  73. package/12/app/css/AppTheme.js +0 -33
  74. package/12/app/css/AppTheme.mjs +0 -17
  75. package/12/app/css/auth/index.d.ts +0 -11
  76. package/12/app/css/auth/index.js +0 -40
  77. package/12/app/css/auth/index.mjs +0 -24
  78. package/12/app/css/index.d.ts +0 -54
  79. package/12/app/css/index.js +0 -36
  80. package/12/app/css/index.mjs +0 -65
  81. package/12/app/index.d.ts +0 -2
  82. package/12/app/index.js +0 -7
  83. package/12/app/index.mjs +0 -2
  84. package/12/app/sc/AppMain.d.ts +0 -11
  85. package/12/app/sc/AppMain.js +0 -70
  86. package/12/app/sc/AppMain.mjs +0 -58
  87. package/12/app/sc/AppTheme.d.ts +0 -14
  88. package/12/app/sc/AppTheme.js +0 -33
  89. package/12/app/sc/AppTheme.mjs +0 -16
  90. package/12/app/sc/auth/index.d.ts +0 -11
  91. package/12/app/sc/auth/index.js +0 -40
  92. package/12/app/sc/auth/index.mjs +0 -24
  93. package/12/app/sc/index.d.ts +0 -56
  94. package/12/app/sc/index.js +0 -36
  95. package/12/app/sc/index.mjs +0 -67
  96. package/12/document/Document.d.ts +0 -15
  97. package/12/document/Document.js +0 -49
  98. package/12/document/Document.mjs +0 -38
  99. package/12/document/css/index.d.ts +0 -17
  100. package/12/document/css/index.js +0 -60
  101. package/12/document/css/index.mjs +0 -53
  102. package/12/document/index.d.ts +0 -2
  103. package/12/document/index.js +0 -19
  104. package/12/document/index.mjs +0 -2
  105. package/12/document/sc/index.d.ts +0 -19
  106. package/12/document/sc/index.js +0 -73
  107. package/12/document/sc/index.mjs +0 -65
  108. package/12/getT.d.ts +0 -9
  109. package/12/getT.js +0 -23
  110. package/12/getT.mjs +0 -8
  111. package/12/index.d.ts +0 -24
  112. package/12/index.js +0 -100
  113. package/12/index.mjs +0 -27
  114. package/12/seoBuildTags.js +0 -126
  115. package/12/seoBuildTags.mjs +0 -121
  116. package/12/to.d.ts +0 -24
  117. package/12/to.js +0 -31
  118. package/12/to.mjs +0 -19
  119. package/12/translationAsOptions.d.ts +0 -3
  120. package/12/translationAsOptions.js +0 -19
  121. package/12/translationAsOptions.mjs +0 -9
  122. package/12/types-i18n.d.ts +0 -118
  123. package/12/types-i18n.js +0 -15
  124. package/12/types-i18n.mjs +0 -12
  125. package/12/types-seo.js +0 -4
  126. package/12/types-seo.mjs +0 -1
  127. package/12/useBackUrl.d.ts +0 -2
  128. package/12/useBackUrl.js +0 -47
  129. package/12/useBackUrl.mjs +0 -28
  130. package/12/useDateFormat.d.ts +0 -7
  131. package/12/useDateFormat.js +0 -42
  132. package/12/useDateFormat.mjs +0 -26
  133. package/12/useForm.d.ts +0 -27
  134. package/12/useForm.js +0 -65
  135. package/12/useForm.mjs +0 -47
  136. package/12/useLocale.d.ts +0 -2
  137. package/12/useLocale.js +0 -25
  138. package/12/useLocale.mjs +0 -6
  139. package/12/useT.d.ts +0 -4
  140. package/12/useT.js +0 -58
  141. package/12/useT.mjs +0 -39
  142. package/12/useTheme.d.ts +0 -7
  143. package/12/useTheme.js +0 -23
  144. package/12/useTheme.mjs +0 -7
  145. package/12/useTo.d.ts +0 -3
  146. package/12/useTo.js +0 -26
  147. package/12/useTo.mjs +0 -8
  148. package/config/index.d.ts +0 -160
  149. package/config/index.js +0 -317
  150. package/config/index.mjs +0 -315
  151. package/getSiteUrl.d.ts +0 -8
  152. package/getSiteUrl.js +0 -24
  153. package/getSiteUrl.mjs +0 -10
  154. package/index.js +0 -20
  155. package/index.mjs +0 -2
  156. package/load.d.ts +0 -10
  157. package/load.js +0 -31
  158. package/load.mjs +0 -13
  159. package/typings.d.ts +0 -72
package/12/index.js DELETED
@@ -1,100 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- function _export(target, all) {
6
- for(var name in all)Object.defineProperty(target, name, {
7
- enumerable: true,
8
- get: all[name]
9
- });
10
- }
11
- _export(exports, {
12
- AnalyticsGoogle: function() {
13
- return _AnalyticsGoogle.AnalyticsGoogle;
14
- },
15
- DisableErrorOverlay: function() {
16
- return _DisableErrorOverlay.DisableErrorOverlay;
17
- },
18
- DynamicNamespaces: function() {
19
- return _DynamicNamespaces.DynamicNamespaces;
20
- },
21
- Favicon: function() {
22
- return _Favicon.Favicon;
23
- },
24
- getT: function() {
25
- return _getT.getT;
26
- },
27
- Link: function() {
28
- return _Link.Link;
29
- },
30
- NextProgress: function() {
31
- return _NextProgress.NextProgress;
32
- },
33
- Seo: function() {
34
- return _Seo.Seo;
35
- },
36
- SeoDefaults: function() {
37
- return _SeoDefaults.SeoDefaults;
38
- },
39
- T: function() {
40
- return _T.T;
41
- },
42
- ThemeContext: function() {
43
- return _ThemeContext.ThemeContext;
44
- },
45
- ThemeProvider: function() {
46
- return _ThemeProvider.ThemeProvider;
47
- },
48
- to: function() {
49
- return _to.to;
50
- },
51
- translationAsOptions: function() {
52
- return _translationAsOptions.translationAsOptions;
53
- },
54
- TransText: function() {
55
- return _TransText.TransText;
56
- },
57
- useBackUrl: function() {
58
- return _useBackUrl.useBackUrl;
59
- },
60
- useDateFormat: function() {
61
- return _useDateFormat.useDateFormat;
62
- },
63
- useForm: function() {
64
- return _useForm.useForm;
65
- },
66
- useLocale: function() {
67
- return _useLocale.useLocale;
68
- },
69
- useT: function() {
70
- return _useT.useT;
71
- },
72
- useTheme: function() {
73
- return _useTheme.useTheme;
74
- },
75
- useTo: function() {
76
- return _useTo.useTo;
77
- }
78
- });
79
- const _AnalyticsGoogle = require("./AnalyticsGoogle");
80
- const _DisableErrorOverlay = require("./DisableErrorOverlay");
81
- const _DynamicNamespaces = require("./DynamicNamespaces");
82
- const _Favicon = require("./Favicon");
83
- const _getT = require("./getT");
84
- const _Link = require("./Link");
85
- const _NextProgress = require("./NextProgress");
86
- const _Seo = require("./Seo");
87
- const _SeoDefaults = require("./SeoDefaults");
88
- const _T = require("./T");
89
- const _ThemeContext = require("./ThemeContext");
90
- const _ThemeProvider = require("./ThemeProvider");
91
- const _to = require("./to");
92
- const _translationAsOptions = require("./translationAsOptions");
93
- const _TransText = require("./TransText");
94
- const _useBackUrl = require("./useBackUrl");
95
- const _useDateFormat = require("./useDateFormat");
96
- const _useForm = require("./useForm");
97
- const _useLocale = require("./useLocale");
98
- const _useT = require("./useT");
99
- const _useTheme = require("./useTheme");
100
- const _useTo = require("./useTo");
package/12/index.mjs DELETED
@@ -1,27 +0,0 @@
1
- export { AnalyticsGoogle } from "./AnalyticsGoogle";
2
- export { DisableErrorOverlay } from "./DisableErrorOverlay";
3
- export { DynamicNamespaces } from "./DynamicNamespaces";
4
- export { Favicon } from "./Favicon";
5
- export { getT } from "./getT";
6
- export { Link } from "./Link";
7
- export { NextProgress } from "./NextProgress";
8
- export { Seo } from "./Seo";
9
- // export {
10
- // seoBuildTags,
11
- // type LinkTag,
12
- // type MetaTag
13
- // } from "./seoBuildTags";
14
- export { SeoDefaults } from "./SeoDefaults";
15
- export { T } from "./T";
16
- export { ThemeContext } from "./ThemeContext";
17
- export { ThemeProvider } from "./ThemeProvider";
18
- export { to } from "./to";
19
- export { translationAsOptions } from "./translationAsOptions";
20
- export { TransText } from "./TransText";
21
- export { useBackUrl } from "./useBackUrl";
22
- export { useDateFormat } from "./useDateFormat";
23
- export { useForm } from "./useForm";
24
- export { useLocale } from "./useLocale";
25
- export { useT } from "./useT";
26
- export { useTheme } from "./useTheme";
27
- export { useTo } from "./useTo";
@@ -1,126 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- function _export(target, all) {
6
- for(var name in all)Object.defineProperty(target, name, {
7
- enumerable: true,
8
- get: all[name]
9
- });
10
- }
11
- _export(exports, {
12
- seoBuildTags: function() {
13
- return seoBuildTags;
14
- },
15
- default: function() {
16
- return _default;
17
- }
18
- });
19
- const _interop_require_default = require("@swc/helpers/_/_interop_require_default");
20
- const _jsxruntime = require("react/jsx-runtime");
21
- const _react = /*#__PURE__*/ _interop_require_default._(require("react"));
22
- const _isArray = /*#__PURE__*/ _interop_require_default._(require("@koine/utils/isArray"));
23
- const defaults = {
24
- tplTitle: ""
25
- };
26
- const seoBuildTags = ({ seo, hidden, keywords, title = "", titleTemplate, defaultTitle, noindex, nofollow, description, languageAlternates = [], twitter, facebook, openGraph, og: ogAlias, canonical, metaTags, linkTags } = {})=>{
27
- const id = "seo-";
28
- const render = [];
29
- const $names = {};
30
- const $properties = {};
31
- if (titleTemplate) {
32
- defaults.tplTitle = titleTemplate;
33
- }
34
- title = title || seo?.title || "";
35
- if (title) {
36
- if (defaults.tplTitle && defaults.tplTitle !== title) {
37
- title = defaults.tplTitle.replace(/%s/g, title);
38
- }
39
- } else if (defaultTitle) {
40
- title = defaultTitle;
41
- }
42
- if (title) {
43
- render.push(/*#__PURE__*/ (0, _jsxruntime.jsx)("title", {
44
- children: title
45
- }, id + "title"));
46
- $properties["og:title"] = title; // overridden later...
47
- }
48
- $names["robots"] = `${noindex || hidden ? "noindex" : "index"},${nofollow || hidden ? "nofollow" : "follow"}`;
49
- description = description || seo?.description;
50
- if (description) {
51
- $names["description"] = description;
52
- $properties["og:description"] = description; // overridden later...
53
- }
54
- keywords = keywords || seo?.keywords;
55
- if (keywords) {
56
- $names["keywords"] = (0, _isArray.default)(keywords) ? keywords.join(", ") : keywords;
57
- }
58
- if (languageAlternates?.length > 0) {
59
- languageAlternates.forEach(({ href, hrefLang })=>{
60
- render.push(/*#__PURE__*/ (0, _jsxruntime.jsx)("link", {
61
- rel: "alternate",
62
- hrefLang: hrefLang,
63
- href: href
64
- }, id + "languageAlternate-" + hrefLang));
65
- });
66
- }
67
- if (canonical) {
68
- render.push(/*#__PURE__*/ (0, _jsxruntime.jsx)("link", {
69
- rel: "canonical",
70
- href: canonical
71
- }, id + "canonical"));
72
- $properties["og:url"] = canonical;
73
- }
74
- if (facebook?.appId) $properties["fb:app_id"] = facebook.appId;
75
- if (twitter) {
76
- if (twitter.cardType) $names["twitter:card"] = twitter.cardType;
77
- if (twitter.site) $names["twitter:site"] = twitter.site;
78
- if (twitter.handle) $names["twitter:creator"] = twitter.handle;
79
- }
80
- const og = ogAlias || openGraph;
81
- if (og?.title) $properties["og:title"] = og?.title;
82
- if (og?.description) $properties["og:description"] = og?.description;
83
- if (og?.url) $properties["og:url"] = og.url;
84
- if (og?.type) $properties["og:type"] = og.type.toLowerCase();
85
- if (og?.locale) $properties["og:locale"] = og.locale;
86
- if (og?.siteName) $properties["og:siteName"] = og.siteName;
87
- const ogimage = og?.image || seo?.ogimage;
88
- if (ogimage) $properties["og:image"] = ogimage;
89
- Object.keys($names).forEach((key)=>{
90
- render.push(/*#__PURE__*/ (0, _jsxruntime.jsx)("meta", {
91
- name: key,
92
- content: $names[key]
93
- }, id + "name-" + key));
94
- });
95
- Object.keys($properties).forEach((key)=>{
96
- render.push(/*#__PURE__*/ (0, _jsxruntime.jsx)("meta", {
97
- property: key,
98
- content: $properties[key]
99
- }, id + "prop-" + +key));
100
- });
101
- if (metaTags && metaTags.length > 0) {
102
- metaTags.forEach((tag)=>{
103
- render.push(/*#__PURE__*/ (0, _jsxruntime.jsx)("meta", {
104
- ...tag
105
- }, id + "meta-" + (tag.name || tag.property || tag.httpEquiv)));
106
- });
107
- }
108
- if (linkTags?.length) {
109
- linkTags.forEach((tag)=>{
110
- render.push(/*#__PURE__*/ (0, _jsxruntime.jsx)("link", {
111
- ...tag
112
- }, id + "link-" + (tag.href || tag.rel)));
113
- });
114
- }
115
- // TODO: alternates and canonical
116
- // canonical = 'https://www.domain.com/';
117
- // languageAlternates={[{
118
- // hrefLang: 'en',
119
- // href: 'https://www.domain.com/en',
120
- // }]}
121
- // <link rel="alternate" hreflang="x-default" href="https://www.domain.com/nl/">
122
- // <link rel="alternate" hreflang="nl" href="https://www.domain.com/nl/">
123
- // <link rel="alternate" hreflang="en" href="https://www.domain.com/en/">
124
- return render;
125
- };
126
- const _default = seoBuildTags;
@@ -1,121 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import React from "react";
3
- import isArray from "@koine/utils/isArray";
4
- const defaults = {
5
- tplTitle: ""
6
- };
7
- /**
8
- * Comparing to `next-seo` we do a couple of things in addition while many
9
- * others are removed.
10
- *
11
- * - Add `seo` meta object coming from a CMS probably
12
- * - Add `ogimage` and `openGraph.image` as single image source
13
- * - Add `og` alias to define `openGraph`
14
- * - Add check for `title` equal to `templateTitle` to avoid meta titles like
15
- * "My site | My site" often happening in homepages
16
- * - Remove the open graph videos and images
17
- *
18
- * - Shorter code
19
- *
20
- * @returns
21
- */ export const seoBuildTags = ({ seo, hidden, keywords, title = "", titleTemplate, defaultTitle, noindex, nofollow, description, languageAlternates = [], twitter, facebook, openGraph, og: ogAlias, canonical, metaTags, linkTags } = {})=>{
22
- const id = "seo-";
23
- const render = [];
24
- const $names = {};
25
- const $properties = {};
26
- if (titleTemplate) {
27
- defaults.tplTitle = titleTemplate;
28
- }
29
- title = title || seo?.title || "";
30
- if (title) {
31
- if (defaults.tplTitle && defaults.tplTitle !== title) {
32
- title = defaults.tplTitle.replace(/%s/g, title);
33
- }
34
- } else if (defaultTitle) {
35
- title = defaultTitle;
36
- }
37
- if (title) {
38
- render.push(/*#__PURE__*/ _jsx("title", {
39
- children: title
40
- }, id + "title"));
41
- $properties["og:title"] = title; // overridden later...
42
- }
43
- $names["robots"] = `${noindex || hidden ? "noindex" : "index"},${nofollow || hidden ? "nofollow" : "follow"}`;
44
- description = description || seo?.description;
45
- if (description) {
46
- $names["description"] = description;
47
- $properties["og:description"] = description; // overridden later...
48
- }
49
- keywords = keywords || seo?.keywords;
50
- if (keywords) {
51
- $names["keywords"] = isArray(keywords) ? keywords.join(", ") : keywords;
52
- }
53
- if (languageAlternates?.length > 0) {
54
- languageAlternates.forEach(({ href, hrefLang })=>{
55
- render.push(/*#__PURE__*/ _jsx("link", {
56
- rel: "alternate",
57
- hrefLang: hrefLang,
58
- href: href
59
- }, id + "languageAlternate-" + hrefLang));
60
- });
61
- }
62
- if (canonical) {
63
- render.push(/*#__PURE__*/ _jsx("link", {
64
- rel: "canonical",
65
- href: canonical
66
- }, id + "canonical"));
67
- $properties["og:url"] = canonical;
68
- }
69
- if (facebook?.appId) $properties["fb:app_id"] = facebook.appId;
70
- if (twitter) {
71
- if (twitter.cardType) $names["twitter:card"] = twitter.cardType;
72
- if (twitter.site) $names["twitter:site"] = twitter.site;
73
- if (twitter.handle) $names["twitter:creator"] = twitter.handle;
74
- }
75
- const og = ogAlias || openGraph;
76
- if (og?.title) $properties["og:title"] = og?.title;
77
- if (og?.description) $properties["og:description"] = og?.description;
78
- if (og?.url) $properties["og:url"] = og.url;
79
- if (og?.type) $properties["og:type"] = og.type.toLowerCase();
80
- if (og?.locale) $properties["og:locale"] = og.locale;
81
- if (og?.siteName) $properties["og:siteName"] = og.siteName;
82
- const ogimage = og?.image || seo?.ogimage;
83
- if (ogimage) $properties["og:image"] = ogimage;
84
- Object.keys($names).forEach((key)=>{
85
- render.push(/*#__PURE__*/ _jsx("meta", {
86
- name: key,
87
- content: $names[key]
88
- }, id + "name-" + key));
89
- });
90
- Object.keys($properties).forEach((key)=>{
91
- render.push(/*#__PURE__*/ _jsx("meta", {
92
- property: key,
93
- content: $properties[key]
94
- }, id + "prop-" + +key));
95
- });
96
- if (metaTags && metaTags.length > 0) {
97
- metaTags.forEach((tag)=>{
98
- render.push(/*#__PURE__*/ _jsx("meta", {
99
- ...tag
100
- }, id + "meta-" + (tag.name || tag.property || tag.httpEquiv)));
101
- });
102
- }
103
- if (linkTags?.length) {
104
- linkTags.forEach((tag)=>{
105
- render.push(/*#__PURE__*/ _jsx("link", {
106
- ...tag
107
- }, id + "link-" + (tag.href || tag.rel)));
108
- });
109
- }
110
- // TODO: alternates and canonical
111
- // canonical = 'https://www.domain.com/';
112
- // languageAlternates={[{
113
- // hrefLang: 'en',
114
- // href: 'https://www.domain.com/en',
115
- // }]}
116
- // <link rel="alternate" hreflang="x-default" href="https://www.domain.com/nl/">
117
- // <link rel="alternate" hreflang="nl" href="https://www.domain.com/nl/">
118
- // <link rel="alternate" hreflang="en" href="https://www.domain.com/en/">
119
- return render;
120
- };
121
- export default seoBuildTags;
package/12/to.d.ts DELETED
@@ -1,24 +0,0 @@
1
- import type { TranslateNamespaced, TranslatedRoute } from "./types-i18n";
2
- type OnlyStatic<T extends string> = T extends `${string}.[${string}].${string}` | `${string}.[${string}]` | `[${string}].${string}` | `[${string}]` ? never : T;
3
- type OnlyDynamic<T extends string> = T extends `${string}.[${string}].${string}` | `${string}.[${string}]` | `[${string}].${string}` | `[${string}]` ? T : never;
4
- /**
5
- * @borrows [awesome-template-literal-types](https://github.com/ghoullier/awesome-template-literal-types#router-params-parsing)
6
- */
7
- type ExtractRouteParams<T extends string> = string extends T ? Record<string, string> : T extends `${infer _Start}[${infer Param}].${infer Rest}` ? {
8
- [k in Param | keyof ExtractRouteParams<Rest>]: string | number;
9
- } : T extends `${infer _Start}[${infer Param}]` ? {
10
- [k in Param]: string | number;
11
- } : {};
12
- export type ToTranslate = TranslateNamespaced<"~">;
13
- export type ToStaticRoute = OnlyStatic<TranslatedRoute>;
14
- export type ToDynamicRoute = OnlyDynamic<TranslatedRoute>;
15
- export type ToArgs = [ToStaticRoute] | [ToDynamicRoute, ExtractRouteParams<ToDynamicRoute>];
16
- /**
17
- * `To` named route utility. It accept either a single argument if that is a static
18
- * route name or a second argument that interpolates the dynamic portions of
19
- * the route name. The types of these portions are automatically inferred.
20
- *
21
- * @borrows [awesome-template-literal-types](https://github.com/ghoullier/awesome-template-literal-types)
22
- */
23
- export declare function to(...args: [ToTranslate, ...ToArgs]): string;
24
- export default to;
package/12/to.js DELETED
@@ -1,31 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- function _export(target, all) {
6
- for(var name in all)Object.defineProperty(target, name, {
7
- enumerable: true,
8
- get: all[name]
9
- });
10
- }
11
- _export(exports, {
12
- to: function() {
13
- return to;
14
- },
15
- default: function() {
16
- return _default;
17
- }
18
- });
19
- function to(...args) {
20
- let relative = "";
21
- const [t] = args;
22
- if (args.length === 3) {
23
- if (args[2]) {
24
- relative = t(args[1], args[2]).replace("*", "");
25
- }
26
- } else if (args.length === 2) {
27
- relative = t(args[1]);
28
- }
29
- return relative;
30
- }
31
- const _default = to;
package/12/to.mjs DELETED
@@ -1,19 +0,0 @@
1
- /**
2
- * `To` named route utility. It accept either a single argument if that is a static
3
- * route name or a second argument that interpolates the dynamic portions of
4
- * the route name. The types of these portions are automatically inferred.
5
- *
6
- * @borrows [awesome-template-literal-types](https://github.com/ghoullier/awesome-template-literal-types)
7
- */ export function to(...args) {
8
- let relative = "";
9
- const [t] = args;
10
- if (args.length === 3) {
11
- if (args[2]) {
12
- relative = t(args[1], args[2]).replace("*", "");
13
- }
14
- } else if (args.length === 2) {
15
- relative = t(args[1]);
16
- }
17
- return relative;
18
- }
19
- export default to;
@@ -1,3 +0,0 @@
1
- import type { Option } from "@koine/react/types";
2
- import type { TranslateLoose } from "./types-i18n";
3
- export declare function translationAsOptions(t: TranslateLoose, i18nKey: string): Option[];
@@ -1,19 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "translationAsOptions", {
6
- enumerable: true,
7
- get: function() {
8
- return translationAsOptions;
9
- }
10
- });
11
- function translationAsOptions(t, i18nKey) {
12
- const dictionary = t(i18nKey, undefined, {
13
- returnObjects: true
14
- });
15
- return Object.keys(dictionary).map((key)=>({
16
- value: key,
17
- label: dictionary[key]
18
- }));
19
- }
@@ -1,9 +0,0 @@
1
- export function translationAsOptions(t, i18nKey) {
2
- const dictionary = t(i18nKey, undefined, {
3
- returnObjects: true
4
- });
5
- return Object.keys(dictionary).map((key)=>({
6
- value: key,
7
- label: dictionary[key]
8
- }));
9
- }
@@ -1,118 +0,0 @@
1
- /**
2
- * @file
3
- *
4
- * Test this on TSplayground:
5
- * https://www.typescriptlang.org/play?#code/PTAEFpK6dv4YpSBQJSgJYEYAcA7YAFwE8AHTfAcwGcA6AEzqJrTGQ86+7hRQYCmAYwA2AQwBOA0PjEBbATTJih0gJJ58oAN4oMlIgIkAzFdIAqEsfhriimAPY2dejKHQAiAH4eAXKGsSAG5XAF8+fXxDEzNQS2tbMXsnGgBhJ2NMKh1w8LYIHkKi4sh8rE1ickVmVnQS+obUFFIyaQApB0oAHgBlbAAaUB6AJgA+UABeIexQAQAPQ3wGGlAaIglKKlcAfiHh2YWBJZW1jepXDF2AAwASbT7QujuR0KuL0H8+1398AQA3IwhNAAKmBemBoAAIpghMlZBISKAHMYAiIRKAiAALaTrBJ2Rw2cHAFDzMgOCREDFVOJWGz4lLQ2EEySIqYaAh0eJ0pIEmhA4Cg8GgABy8kUylUJ0xDgAriIGKA5EkhJiMdjQJkREcxSsAO5GHG0xJwlaSaSCTK-BhEklzMkUqmtGl4pICUUKJSxKYAUQWVlhXQA1gISMjndyTYy4SzBqdNqN+YLQBCAErCGUSGiYAGKsRkVoKlo4hwHXGw1HomU0MQAIy1q3Wm1AyixK2MEgccgCGKN9PwQotlEwcKRNYAVsJKQAKKsysRoxHtzvdto9ADywo1mC1AEo6EK1JSq4o1dIrpRjEYrqAPI2hIGPBiS2tyTj1Q5x5OsFoFHJyYjrAVMgpABKIhQAbQvIdDG-NZrHsHknFmCQO0zABdKdMSIIgyBoXwQDg+8HABEwRAcXU6CETtgAAR2AAB2ABWRiAGZsBYgA2DjgGwABOFjcF4+iAAYdxtUlyUpItw2NXkAAUkkxGgulccwUHGKZdAwcCAGlv1AX0yyIIMQzDcxY0bahRjQ3x3nQeZRBlQRZjkMhSFHCdYRoQYBFc9zJCsEhvJctzETjahWDcOJdLQ0sjmWUA0yoiQGC6cKqEGX4SPGAAfGR-iMcDYryjxH12LKjDssApCEDMswBERESVWQqGkD9PJYd5-HMGK4uORLhHJVL0sGGV8EDfByPwcZdneDA8tubQdNedwwCxTAVg2p9QBraRa3rIgS2PU8b3ax8aGlClaqIObQDyjpuh0wYuVklIFNbLoep0tDRlGKqK3I5sNjkYdsxPckAhQsRETDYDMBB+wAUitxut6+ZFgS9K7pkGU5F2iRsZrBwHC1axsYAQShkg0ss7I8vwXH8cJ4nSem0BrjuZa3ii+y5kc5zAnW6hZhEGgBC6-KSJCUJwMM-1jODUMUXMhszioay+oSi8jFANd2d1j5JcBPgBTBZMBtqzMwdzfMBELakw3nStqzraQsZbJSNQ7LssWkXVpQO3tEMJc2GBhaMEToUBD1AY8Vl90Bz3wS8JGvW8NnvR9DobV8Tvar9KEVXz-wCJYgYKsDzcg5PoOkSg4KiTBg+Q1CaAwrCcLwgiiBUQNiKMYwyIoqi5FohjmLYzjuL4gShNE8S7Ukx0LCDk1ybRd7Pc01xwM3Qu5ZUBXTOV1feSjZkEQstXrP8LS3F0-SD4DRWzNPhlw4vkhd7Q-p0pv27eb82kL5UKHlJzBRAf5KmEC-JhVpsjKKL0+w0HPk4Fk380aHH6klIaNM1aZQKhIXKRsJBFWxqVfWFUJAAOqumK2DUmrWDEK1MBXlbrdTfjYVB8Iv7CjQpgjGKwcEpTwZsUa41Jq6jZtsW6UUFp3GFKEXwnMVroHWpteOJZdoBFdttY6CcPBnVWJdIg11ZFuHup0fAXQ9Lo3iicWm+tFqKOUUtFa-hnFKKuM9ThNBN7KSQcHFBH80EIgwd9X6NCAa6iBvDUGSMkQEwCtDJEKI4YIzBgglGMlkHcPQXwgR9jVZNnpozHWeUiYkwEGTPKlNAqiOFqUvG5Sdos2qdIxOCilEqO5lFVaBwgGlxIELbIAhRbiz6YbKhYRZZ+kPiZJWOSgl5LCXwq+8Y0LS1mUZBZr8XSRhCTw9ZVlYp2P6trAmetdh6x+IQxMZsIQAFV8AiEwMGfSVxfgLHALiCMAhrz6gCAwICYgaBZmFjQTs0hgJ2wEJaO2kMqC4yOCwAIkUIQXUktdNsEMR5-i0MdIQoLFC2XNuAROhjxweGvKC7smKroykpMYCGVxtCgCkEQDM+A1yfi8v4dYMppCvCFOSq4pUaWmmMVixlGoWVstMGiGsvd-AUOFcmBe9opLUkCXCHoJjrqTFOlS8hHh7lCgAIqCoRKwqSJYyRkDlK6E6HKuUIt+caBFWMDBGDJPiYWDAkhiCFBDMQSzdX6sZfudV5thRrnMN6fw-sjix3BdkUN9LTEyuUGCpsOqCRrjcrybaVwiBTh3NeLak1KQ0BlPmSSdshTmDXJCNc-LqTVkvGqLau1MRiD+I4DMqSTrrRSoi5FURQBTgcIWlIe4NVL2knmpwlqjCslcHlMag4rTrpxmiHdS78B6ulTdeaLhJngUVv4dKNlimNJxs0gmFS2nWBCFFUIZrzYFqLWGBO7q7DSGMGNJkSEQ1hoJEehlRAo0PJFHGhNoAk0EtTXSiNlJs3IYPQWk0xbS3lqwCsKtqxa2aobebJtLa21Og7W+btAhe39tlATH96oR0KkkEihQE6p0zpsHO5MxIJIOkXZwrDRaJg7s3XCygpHsYHog5mk92M75RRdRIblvKWDbH8JU1mr6+kKpEEq+8Wnb101M0VPTUULRiDlEQEz6VLOgHfSbJMEIdUAaAyOf2MJVTTujAuAIQhVBuW7LID0Eo9ptkwJmSk7Hx0nuBAJxeQntWrwEJ9d04pYhnISu5zLnpVDY0k-ChgGlVL5Yi5rFYeWdQRfeLsGr4WzCpXMBVswf0oocP2QISEcKbMiCIB+tzaWNSeYJMmYEuphzSkZaCGQtWzCDGHNEzRqwxlfkCEOhOTshR9rENufabt4H6SdvNprkpoNJc1cvMNPW+u2cNZ9NMnK1OGr-lOVweEwMpHXiIfx-RXA0RMweldl9XAOGByJnjrAdyTHGOYZ7XKhu3dG-gYDWhQRTaxHNsLWXVBLdi2iciq2xZanLE4RqJ1Tt7YO67IU6VNpaATlQMGWhccFYEJd2013hPdba6oFr-PgFYNy2loXGlQAqQwAjgQL2tBTHSupD7GAvsHr8YpAJviVlf1awt1QP0AcYCB11iMBJQckEN0iSH+z83Q5QLDiY8PEdqeR+51H6PQBkQcGLZegxs7HQp4iQu8MyBak4z3bDWIkgpsUEKBOJbryAbRyOSgYcapEEp1jmblJfh22FhNciWoGAsOY0dtWWAc8CDtui7asocKRvnSlp07mAAyxMfdTGV6sEzgRLfG++-gc3luIcm9etyu3DvxgOZczBgAQoiKi+BQIjg7Iyk8W7QYpEhnXJn6orheDoGOSF+BE-bh3ydMiRKtQ0GANoS-84BChGJObDsDgmUk0EBIKO5hMRbWklIGFMWCdQhREMkHNOsREXHLbdULdBFVfQwAAchr3v1eTFhBSxCgKnArgQ2m1AAYBIDCxhGbEkl5D40S25wXVS26wYBTDr2kCmDV38U+i10OXQW8A8B+mR0eXsFeXcgbgDTIl+Bu2znRnlgrEnSVDmAxF1BLC1AajwIEDckxFhxVG3AYCkC0HgNj3Nij2rR7gpD1FwOZ1Z1M2g0bV-w0Rj0A3RGzlaiknVBrRrC0JWEdi0DzFDxhGbjNDEB8joCoCjlO0cOcODRRFDQDQuiJkkAYFGmQ2Wyz1JRgyuCSLj2pEhFBUxEiJSloLXxWAYLSxoLoLSF-3lA0LXGMC6A8HCIyIcCiI8ATCFCSO5nIMEy1Wb3yOyMMCKLUNKPKNUh6H0NRRywcXwVUiq1M0NXcwKLX3UgmLGMWnMH6MkBYEeDuAuVAAADFos1gVjtA1iehBolg1V9ZNiYtsZFoTjtinh7gDiGAjj-B7JbADBwAw4XYtRwAvkiBwBXkhCAABIsGgIQDYNycARQb4ogYASacAMaY8BgcAP4SQZGcwOYu4BYgYmgHYtYi4ogI43YLE74EhfkdgRoYkkk8AMoHAAgYAOw8wGofIUk+k+oPgFom7AAcVlyRKmClziCFzGMazx2kA3SWCkytENWK2k2tFGC7xQIEHs1pkt3Zwi2ByF3tzh1ADkm9g2nS3cwyz1wEF+mR1BFjXjVBG6hLCVHeX+MBMwBCxkIkEDBkBhDGURGxCkFzHeRrVdJENkDpyriuCkEhREABDaGPwAFkHAGA5R-l25sJcJ8JgBdQEzmAqgASgSM9rB-DyQqBiAASMgsgABif0kmIM0M8MyMsSc2QuUMQdEtHMmufwo-JwU-LULnZkxfNYUAakw1KcMtVU7QUIWHWlNkogcwQkgoBk8c7gckioY8GkzqOoCchcjgJk5LSkQQUQM0d3EcGcstUff9XrUwWzEIZktc8QV0pPD3GcnU87YXQRW7cXKcBUswbqIXHcXc10IXQXXU+oukxc38hAKcykw6Wk+cv80C6AE2MAEPSgp0NlPkjnaI27KYmCUIL2ZcDwOgSoVoGgcACk-AU1PgaSNcF5EgRY+wIQT6MYv+WYoYndRadKR4cCO4eitCK4+i3peRbQeiugRizi2mUINCdixOHi5i1iviwSq4YSvigSnYEhfEkcgi6kIixqSEAg+QGECioY0zCXJEmi09Oivi7ipiqS0StWI4jiriyS0y6SvSyyzYfikyuy8S2y6gfi3pBrfEqhZHH4omFCYnUAcCMQfUSFBQH5EBf9L44cIwecH5ZM6MzuOMlnLEGUGsSiaiKgGbNETAIwYAQKxQKFUK1ycK3gqKkQGKrCgsugiQcAZQKwOQbCmq1Ncs8g6SJ+IgDogQBSWqgJSi2mCXLGTStSS4C2XBEaLS-Eh4sE54jaQ7d49GCK34y01MkEx4qICEhwKEhmNAuEhE0YzSxaNYgAfUWIpBllWOTh1k6vkHsrOpTgGm2Lcp0H8vtMLkuq7DyhfhRFavateuUjTDWBvnGKaSZnCAwHuLAFBKeJeJmo+PmukD+OTKtOBIhtWshOhK2vhMzF2pFxWH2vOoJiOoGNOt2LxrVMkCuusv1jZQvX0lepvSxiBp1hBsNj7KBGZMXQcDdzyL511NSnYO-LZu1QcFIphHasNSUpIoj3UsmPav5pXJu3MAcBUsIKEFFqmHFqVrUvIulroNlp50FsploEmB3XAgVuFpVroLQmNoVo1pBnNrX0GC+roJ+s+kVtUttpls2RnwaIVuvFxwVC0Njh4OHBICjhjhUGC0pAEGmx1nTU2HrDi3DywBRF0PwzpUlqECFADqgNAzFkXzYwkA4xRTVGj29QkF9VdHjhgLdqIM1W-WMDj3VCzrFG-xY2TOgMUGhRIK3w3Js0OiVDIqdiDzxqkCYHBCFG8vJA7F1BWACqCvysMEKtdAiuiGiv+LitjJAESsxGStStHnStlEyuytyuCoEAKtDyXuKqsFKv+KaquyXnPJHEOinDoBfvYy+xNo5rS0GBfs5AcANrblhzvi1EpCkHxBzCmFKj0zbMpHAiIFiimDfqBH0BRCnDfroC1GoCxEmAmCmBYkAfeEwBQbfvAmGDQnwcmVAZ5HAYxFQYLpoHAmwB-kRXodIb3AAPEFUCnA8GBA8EGFKh3EcyZpQrGR90IcnTQYwaoCwZwamGGHIbcEocRnoJoeIcYYEbCAiHZVly5S0bAYEGlggrHLArAoAsIBnIcGAqJOMZMYoIdAfvG3MZ7LvmgYxFFLFnMC4Z8HUYwFUy0GftfrodNP-snyfCnCIG-oCdoHUbyBAusb-PJMKt8hRR1k6LnKsbid-L4BcecMNTvmlAUBVWAF4dcFrDr0KdKcZShJoA8BQGcxQBcYbPwE2K1AUlagAAkoVcnXB7AM8BAVUOmFBmxmEBAam6mGnj9mmOrhnyYiYZVt4MAemtQVUZm68hnWpimMAFAe5b53hcdln8o1gEUtnQ1ccamMBQhLdUCiB-BwJ3hDFfgNm3BbwZCznQAf5XBIESBb4LmPnYEW8Nprn-LLa6mTyNzHzCt2QtA75S7TBCs1cz0nmfBKMBAwxnDHN8m+nl4wxGnJnWmBABn9H3gKnAWixsWJmz88WVnGU9M8hIhohYWV4bcUhRMt8+zanlzrtQUCChBNzxsczWgnHNG1FFBAWZzXBYmmgMAXHKQphtzvH+k3AAA9GRKVlIKSAltxgQDxjwDFjweV9AJVlV0AaVqlmVmPbV4lvVvTA1jAZVoVtaEV-wcx0uQsBwcV9JyV41tVjEdq3I81zxq191qKO11VmwI8NAhWzVhWsta1sAQ1+1jER1js9koNrgVwaV31tMP8GCBB3UfbSkakrho4Xhm8Lx2N4No16VglrNt-ZRwK-N5N4cotvCvh3V-VuN21mRdN712BmtwwYYP3TN4uftv3at4dgQAdjEU1vtid+BgIPN5bdUzsTUugJ2KcW5qKQtjwYtncS3DALd4tvhrxvdxt7Vw9m8Ntk9g9ltm8S13d1wMh8t+N7tsN0zP15TAIflLhjF3wRZkZ+9qKGsflAlrhv9vVk9oQL9jwYl3wY5ugU5gDtwBgflU1rhuDhDk9zFmE6N6D2ZogcD94YwflBwMJ311tqFAjzd-lId7NgQb9ijxDjATEYDqFGd0D4cLUSjtwTAaj8d4YLhmD9DsULj-QYYFDvDmd-jjwK5kTz3ajwoyTgTvD2T9AP47C0kScEE3ygmT5yGQKKUA+hUQjbRY8Q7d4OQcTuvItv5gFlTsANTkEu0TTowVCEKdyfOLyKVOUIzt-HaaQUzn0twCzqdvD6z0KWThwFjhQRT28Dj-9sINFL1sNp9ztvgUIIAA
6
- *
7
- * @see
8
- * - https://stackoverflow.com/q/75531366/1938970: fix for `Type instantiation is excessively deep and possibly infinite in Promise.all`
9
- *
10
- * @notes
11
- * I might take a better look at how things were done in [i18next](https://github.com/i18next/i18next/blob/master/index.d.ts)
12
- */
13
- type Merge<T, K> = Omit<T, keyof K> & K;
14
- type Join<S1, S2> = S1 extends string ? S2 extends string ? `${S1}.${S2}` : S1 : never;
15
- /**
16
- *
17
- */
18
- export type TranslationsDictionaryDefault = {
19
- "~": any;
20
- };
21
- /**
22
- * Dictionary of all the translations
23
- *
24
- * It must uses `~` as namespace for routes defintions to make the `to` and `useTo`
25
- * working
26
- */
27
- export type TranslationsDictionary = Merge<TranslationsDictionaryDefault, Koine.Translations>;
28
- /**
29
- * Namespaces should match the filenames were translations are defined
30
- */
31
- export type TranslateNamespace = Extract<keyof TranslationsDictionary, string>;
32
- /**
33
- * Recursive mapped type to extract all usable string paths from a translation
34
- * definition object (usually from a JSON file).
35
- * It uses the `infer` "trick" to store the object in memory and prevent
36
- * [infinite instantiation errors](https://stackoverflow.com/q/75531366/1938970)
37
- */
38
- export type TranslationsPaths<T> = {
39
- [K in Extract<keyof T, string>]: T[K] extends Record<string, never> | never[] | "" ? never : T[K] extends Record<string, unknown> ? `${K}` | Join<K, TranslationsPaths<T[K]>> : T[K] extends string | number | boolean | Array<string | number | boolean | object> ? `${K}` : never;
40
- }[Extract<keyof T, string>] extends infer O ? O : never;
41
- /**
42
- * Recursive mapped type of all usable string paths from the whole translations
43
- * dictionary. It uses the `infer` "trick" to store the object in memory and prevent
44
- * [infinite instantiation errors](https://stackoverflow.com/q/75531366/1938970)
45
- */
46
- export type TranslationsAllPaths = {
47
- [N in Extract<keyof TranslationsDictionary, string>]: {
48
- [K in Extract<keyof TranslationsDictionary[N], string>]: TranslationsDictionary[N][K] extends Record<string, never> | never[] | "" ? never : TranslationsDictionary[N][K] extends Record<string, unknown> ? `${N}:${K}` | Join<K extends string ? `${N}:${K}` : `${N}:`, TranslationsPaths<TranslationsDictionary[N][K]>> : TranslationsDictionary[N][K] extends string | number | boolean | Array<string | number | boolean | object> ? `${N}:${K}` : never;
49
- }[Extract<keyof TranslationsDictionary[N], string>];
50
- }[Extract<keyof TranslationsDictionary, string>] extends infer O ? O : never;
51
- /**
52
- * Unlike in `next-translate` we add passing some predefined arguments as
53
- * shortcuts for common use cases:
54
- * - `"obj"` as a shortcut for `{ returnObjects: true }`
55
- * - `""` as a shortcut for `{ fallback: "" }`
56
- *
57
- */
58
- export type TranslationShortcut = "obj" | "";
59
- /**
60
- * Query object to populate the returned translated string interpolating data
61
- * or a TranslationShortcut.
62
- *
63
- * NOTE: when using a shortcut passing TranslationOptions to `t()` is not supported
64
- * TODO: type safe this behaviour of the third argument (options).
65
- */
66
- export type TranslationQuery = undefined | null | TranslationShortcut | {
67
- [key: string]: string | number | boolean;
68
- };
69
- /**
70
- * Opions of the translate function or a TranslationShortcut.
71
- *
72
- * NOTE: when using a shortcut passing TranslationOptions to `t()` is not supported
73
- * TODO: type safe this behaviour of the third argument (options).
74
- */
75
- export type TranslationOptions = undefined | TranslationShortcut | {
76
- returnObjects?: boolean;
77
- fallback?: string | string[];
78
- default?: string;
79
- };
80
- /**
81
- * Translate function which optionally accept a namespace as first argument
82
- */
83
- export type Translate<TNamespace extends TranslateNamespace | undefined = TranslateNamespace> = TNamespace extends TranslateNamespace ? TranslateNamespaced<TNamespace> : TranslateDefault;
84
- /**
85
- * Translate function **without** namespace, it allows to select any of the all
86
- * available strings in all namespaces.
87
- */
88
- export type TranslateDefault = <TReturn = string>(s: TranslationsAllPaths, q?: TranslationQuery, o?: TranslationOptions) => TReturn;
89
- /**
90
- * Translate function **with** namespace, it allows to select only the all available
91
- * strings in the given namespace.
92
- */
93
- export type TranslateNamespaced<TNamespace extends TranslateNamespace> = <TReturn = string>(s: TranslationsPaths<TranslationsDictionary[TNamespace]>, q?: TranslationQuery, o?: TranslationOptions) => TReturn;
94
- /**
95
- * Translate function loose type, to use only in implementations that uses
96
- * the `t` function indirectly without needng knowledge of the string it needs
97
- * to output.
98
- */
99
- export type TranslateLoose = (s?: any, q?: TranslationQuery, o?: TranslationOptions) => string;
100
- /**
101
- * By convention routes definitions are in the `~.json` file in the locales/{locale}/
102
- * root folder. This type represent every possibly name of the defined route's
103
- * localised pathname (even with dynamic portions).
104
- */
105
- export type TranslatedRoute = TranslationsPaths<TranslationsDictionary["~"]>;
106
- /**
107
- * Utility standalone type to extract all (max two level depth) children routes
108
- * that starts with the given string.
109
- *
110
- * This is useful to get the subroutes of an application area, e.g. all subroutes
111
- * of a dashboard, using it with:
112
- *
113
- * ```
114
- * type DashboardRoutes = TranslatedRoutesChildrenOf<"dashboard">;
115
- * ```
116
- */
117
- export type TranslatedRoutesChildrenOf<TStarts extends string, T extends string = TranslatedRoute> = T extends `${TStarts}.${infer First}.${infer Second}` ? First | `${First}.${Second}` : T extends `${TStarts}.${infer First}` ? First : never;
118
- export {};
package/12/types-i18n.js DELETED
@@ -1,15 +0,0 @@
1
- /**
2
- * @file
3
- *
4
- * Test this on TSplayground:
5
- * https://www.typescriptlang.org/play?#code/PTAEFpK6dv4YpSBQJSgJYEYAcA7YAFwE8AHTfAcwGcA6AEzqJrTGQ86+7hRQYCmAYwA2AQwBOA0PjEBbATTJih0gJJ58oAN4oMlIgIkAzFdIAqEsfhriimAPY2dejKHQAiAH4eAXKGsSAG5XAF8+fXxDEzNQS2tbMXsnGgBhJ2NMKh1w8LYIHkKi4sh8rE1ickVmVnQS+obUFFIyaQApB0oAHgBlbAAaUB6AJgA+UABeIexQAQAPQ3wGGlAaIglKKlcAfiHh2YWBJZW1jepXDF2AAwASbT7QujuR0KuL0H8+1398AQA3IwhNAAKmBemBoAAIpghMlZBISKAHMYAiIRKAiAALaTrBJ2Rw2cHAFDzMgOCREDFVOJWGz4lLQ2EEySIqYaAh0eJ0pIEmhA4Cg8GgABy8kUylUJ0xDgAriIGKA5EkhJiMdjQJkREcxSsAO5GHG0xJwlaSaSCTK-BhEklzMkUqmtGl4pICUUKJSxKYAUQWVlhXQA1gISMjndyTYy4SzBqdNqN+YLQBCAErCGUSGiYAGKsRkVoKlo4hwHXGw1HomU0MQAIy1q3Wm1AyixK2MEgccgCGKN9PwQotlEwcKRNYAVsJKQAKKsysRoxHtzvdto9ADywo1mC1AEo6EK1JSq4o1dIrpRjEYrqAPI2hIGPBiS2tyTj1Q5x5OsFoFHJyYjrAVMgpABKIhQAbQvIdDG-NZrHsHknFmCQO0zABdKdMSIIgyBoXwQDg+8HABEwRAcXU6CETtgAAR2AAB2ABWRiAGZsBYgA2DjgGwABOFjcF4+iAAYdxtUlyUpItw2NXkAAUkkxGgulccwUHGKZdAwcCAGlv1AX0yyIIMQzDcxY0bahRjQ3x3nQeZRBlQRZjkMhSFHCdYRoQYBFc9zJCsEhvJctzETjahWDcOJdLQ0sjmWUA0yoiQGC6cKqEGX4SPGAAfGR-iMcDYryjxH12LKjDssApCEDMswBERESVWQqGkD9PJYd5-HMGK4uORLhHJVL0sGGV8EDfByPwcZdneDA8tubQdNedwwCxTAVg2p9QBraRa3rIgS2PU8b3ax8aGlClaqIObQDyjpuh0wYuVklIFNbLoep0tDRlGKqK3I5sNjkYdsxPckAhQsRETDYDMBB+wAUitxut6+ZFgS9K7pkGU5F2iRsZrBwHC1axsYAQShkg0ss7I8vwXH8cJ4nSem0BrjuZa3ii+y5kc5zAnW6hZhEGgBC6-KSJCUJwMM-1jODUMUXMhszioay+oSi8jFANd2d1j5JcBPgBTBZMBtqzMwdzfMBELakw3nStqzraQsZbJSNQ7LssWkXVpQO3tEMJc2GBhaMEToUBD1AY8Vl90Bz3wS8JGvW8NnvR9DobV8Tvar9KEVXz-wCJYgYKsDzcg5PoOkSg4KiTBg+Q1CaAwrCcLwgiiBUQNiKMYwyIoqi5FohjmLYzjuL4gShNE8S7Ukx0LCDk1ybRd7Pc01xwM3Qu5ZUBXTOV1feSjZkEQstXrP8LS3F0-SD4DRWzNPhlw4vkhd7Q-p0pv27eb82kL5UKHlJzBRAf5KmEC-JhVpsjKKL0+w0HPk4Fk380aHH6klIaNM1aZQKhIXKRsJBFWxqVfWFUJAAOqumK2DUmrWDEK1MBXlbrdTfjYVB8Iv7CjQpgjGKwcEpTwZsUa41Jq6jZtsW6UUFp3GFKEXwnMVroHWpteOJZdoBFdttY6CcPBnVWJdIg11ZFuHup0fAXQ9Lo3iicWm+tFqKOUUtFa-hnFKKuM9ThNBN7KSQcHFBH80EIgwd9X6NCAa6iBvDUGSMkQEwCtDJEKI4YIzBgglGMlkHcPQXwgR9jVZNnpozHWeUiYkwEGTPKlNAqiOFqUvG5Sdos2qdIxOCilEqO5lFVaBwgGlxIELbIAhRbiz6YbKhYRZZ+kPiZJWOSgl5LCXwq+8Y0LS1mUZBZr8XSRhCTw9ZVlYp2P6trAmetdh6x+IQxMZsIQAFV8AiEwMGfSVxfgLHALiCMAhrz6gCAwICYgaBZmFjQTs0hgJ2wEJaO2kMqC4yOCwAIkUIQXUktdNsEMR5-i0MdIQoLFC2XNuAROhjxweGvKC7smKroykpMYCGVxtCgCkEQDM+A1yfi8v4dYMppCvCFOSq4pUaWmmMVixlGoWVstMGiGsvd-AUOFcmBe9opLUkCXCHoJjrqTFOlS8hHh7lCgAIqCoRKwqSJYyRkDlK6E6HKuUIt+caBFWMDBGDJPiYWDAkhiCFBDMQSzdX6sZfudV5thRrnMN6fw-sjix3BdkUN9LTEyuUGCpsOqCRrjcrybaVwiBTh3NeLak1KQ0BlPmSSdshTmDXJCNc-LqTVkvGqLau1MRiD+I4DMqSTrrRSoi5FURQBTgcIWlIe4NVL2knmpwlqjCslcHlMag4rTrpxmiHdS78B6ulTdeaLhJngUVv4dKNlimNJxs0gmFS2nWBCFFUIZrzYFqLWGBO7q7DSGMGNJkSEQ1hoJEehlRAo0PJFHGhNoAk0EtTXSiNlJs3IYPQWk0xbS3lqwCsKtqxa2aobebJtLa21Og7W+btAhe39tlATH96oR0KkkEihQE6p0zpsHO5MxIJIOkXZwrDRaJg7s3XCygpHsYHog5mk92M75RRdRIblvKWDbH8JU1mr6+kKpEEq+8Wnb101M0VPTUULRiDlEQEz6VLOgHfSbJMEIdUAaAyOf2MJVTTujAuAIQhVBuW7LID0Eo9ptkwJmSk7Hx0nuBAJxeQntWrwEJ9d04pYhnISu5zLnpVDY0k-ChgGlVL5Yi5rFYeWdQRfeLsGr4WzCpXMBVswf0oocP2QISEcKbMiCIB+tzaWNSeYJMmYEuphzSkZaCGQtWzCDGHNEzRqwxlfkCEOhOTshR9rENufabt4H6SdvNprkpoNJc1cvMNPW+u2cNZ9NMnK1OGr-lOVweEwMpHXiIfx-RXA0RMweldl9XAOGByJnjrAdyTHGOYZ7XKhu3dG-gYDWhQRTaxHNsLWXVBLdi2iciq2xZanLE4RqJ1Tt7YO67IU6VNpaATlQMGWhccFYEJd2013hPdba6oFr-PgFYNy2loXGlQAqQwAjgQL2tBTHSupD7GAvsHr8YpAJviVlf1awt1QP0AcYCB11iMBJQckEN0iSH+z83Q5QLDiY8PEdqeR+51H6PQBkQcGLZegxs7HQp4iQu8MyBak4z3bDWIkgpsUEKBOJbryAbRyOSgYcapEEp1jmblJfh22FhNciWoGAsOY0dtWWAc8CDtui7asocKRvnSlp07mAAyxMfdTGV6sEzgRLfG++-gc3luIcm9etyu3DvxgOZczBgAQoiKi+BQIjg7Iyk8W7QYpEhnXJn6orheDoGOSF+BE-bh3ydMiRKtQ0GANoS-84BChGJObDsDgmUk0EBIKO5hMRbWklIGFMWCdQhREMkHNOsREXHLbdULdBFVfQwAAchr3v1eTFhBSxCgKnArgQ2m1AAYBIDCxhGbEkl5D40S25wXVS26wYBTDr2kCmDV38U+i10OXQW8A8B+mR0eXsFeXcgbgDTIl+Bu2znRnlgrEnSVDmAxF1BLC1AajwIEDckxFhxVG3AYCkC0HgNj3Nij2rR7gpD1FwOZ1Z1M2g0bV-w0Rj0A3RGzlaiknVBrRrC0JWEdi0DzFDxhGbjNDEB8joCoCjlO0cOcODRRFDQDQuiJkkAYFGmQ2Wyz1JRgyuCSLj2pEhFBUxEiJSloLXxWAYLSxoLoLSF-3lA0LXGMC6A8HCIyIcCiI8ATCFCSO5nIMEy1Wb3yOyMMCKLUNKPKNUh6H0NRRywcXwVUiq1M0NXcwKLX3UgmLGMWnMH6MkBYEeDuAuVAAADFos1gVjtA1iehBolg1V9ZNiYtsZFoTjtinh7gDiGAjj-B7JbADBwAw4XYtRwAvkiBwBXkhCAABIsGgIQDYNycARQb4ogYASacAMaY8BgcAP4SQZGcwOYu4BYgYmgHYtYi4ogI43YLE74EhfkdgRoYkkk8AMoHAAgYAOw8wGofIUk+k+oPgFom7AAcVlyRKmClziCFzGMazx2kA3SWCkytENWK2k2tFGC7xQIEHs1pkt3Zwi2ByF3tzh1ADkm9g2nS3cwyz1wEF+mR1BFjXjVBG6hLCVHeX+MBMwBCxkIkEDBkBhDGURGxCkFzHeRrVdJENkDpyriuCkEhREABDaGPwAFkHAGA5R-l25sJcJ8JgBdQEzmAqgASgSM9rB-DyQqBiAASMgsgABif0kmIM0M8MyMsSc2QuUMQdEtHMmufwo-JwU-LULnZkxfNYUAakw1KcMtVU7QUIWHWlNkogcwQkgoBk8c7gckioY8GkzqOoCchcjgJk5LSkQQUQM0d3EcGcstUff9XrUwWzEIZktc8QV0pPD3GcnU87YXQRW7cXKcBUswbqIXHcXc10IXQXXU+oukxc38hAKcykw6Wk+cv80C6AE2MAEPSgp0NlPkjnaI27KYmCUIL2ZcDwOgSoVoGgcACk-AU1PgaSNcF5EgRY+wIQT6MYv+WYoYndRadKR4cCO4eitCK4+i3peRbQeiugRizi2mUINCdixOHi5i1iviwSq4YSvigSnYEhfEkcgi6kIixqSEAg+QGECioY0zCXJEmi09Oivi7ipiqS0StWI4jiriyS0y6SvSyyzYfikyuy8S2y6gfi3pBrfEqhZHH4omFCYnUAcCMQfUSFBQH5EBf9L44cIwecH5ZM6MzuOMlnLEGUGsSiaiKgGbNETAIwYAQKxQKFUK1ycK3gqKkQGKrCgsugiQcAZQKwOQbCmq1Ncs8g6SJ+IgDogQBSWqgJSi2mCXLGTStSS4C2XBEaLS-Eh4sE54jaQ7d49GCK34y01MkEx4qICEhwKEhmNAuEhE0YzSxaNYgAfUWIpBllWOTh1k6vkHsrOpTgGm2Lcp0H8vtMLkuq7DyhfhRFavateuUjTDWBvnGKaSZnCAwHuLAFBKeJeJmo+PmukD+OTKtOBIhtWshOhK2vhMzF2pFxWH2vOoJiOoGNOt2LxrVMkCuusv1jZQvX0lepvSxiBp1hBsNj7KBGZMXQcDdzyL511NSnYO-LZu1QcFIphHasNSUpIoj3UsmPav5pXJu3MAcBUsIKEFFqmHFqVrUvIulroNlp50FsploEmB3XAgVuFpVroLQmNoVo1pBnNrX0GC+roJ+s+kVtUttpls2RnwaIVuvFxwVC0Njh4OHBICjhjhUGC0pAEGmx1nTU2HrDi3DywBRF0PwzpUlqECFADqgNAzFkXzYwkA4xRTVGj29QkF9VdHjhgLdqIM1W-WMDj3VCzrFG-xY2TOgMUGhRIK3w3Js0OiVDIqdiDzxqkCYHBCFG8vJA7F1BWACqCvysMEKtdAiuiGiv+LitjJAESsxGStStHnStlEyuytyuCoEAKtDyXuKqsFKv+KaquyXnPJHEOinDoBfvYy+xNo5rS0GBfs5AcANrblhzvi1EpCkHxBzCmFKj0zbMpHAiIFiimDfqBH0BRCnDfroC1GoCxEmAmCmBYkAfeEwBQbfvAmGDQnwcmVAZ5HAYxFQYLpoHAmwB-kRXodIb3AAPEFUCnA8GBA8EGFKh3EcyZpQrGR90IcnTQYwaoCwZwamGGHIbcEocRnoJoeIcYYEbCAiHZVly5S0bAYEGlggrHLArAoAsIBnIcGAqJOMZMYoIdAfvG3MZ7LvmgYxFFLFnMC4Z8HUYwFUy0GftfrodNP-snyfCnCIG-oCdoHUbyBAusb-PJMKt8hRR1k6LnKsbid-L4BcecMNTvmlAUBVWAF4dcFrDr0KdKcZShJoA8BQGcxQBcYbPwE2K1AUlagAAkoVcnXB7AM8BAVUOmFBmxmEBAam6mGnj9mmOrhnyYiYZVt4MAemtQVUZm68hnWpimMAFAe5b53hcdln8o1gEUtnQ1ccamMBQhLdUCiB-BwJ3hDFfgNm3BbwZCznQAf5XBIESBb4LmPnYEW8Nprn-LLa6mTyNzHzCt2QtA75S7TBCs1cz0nmfBKMBAwxnDHN8m+nl4wxGnJnWmBABn9H3gKnAWixsWJmz88WVnGU9M8hIhohYWV4bcUhRMt8+zanlzrtQUCChBNzxsczWgnHNG1FFBAWZzXBYmmgMAXHKQphtzvH+k3AAA9GRKVlIKSAltxgQDxjwDFjweV9AJVlV0AaVqlmVmPbV4lvVvTA1jAZVoVtaEV-wcx0uQsBwcV9JyV41tVjEdq3I81zxq191qKO11VmwI8NAhWzVhWsta1sAQ1+1jER1js9koNrgVwaV31tMP8GCBB3UfbSkakrho4Xhm8Lx2N4No16VglrNt-ZRwK-N5N4cotvCvh3V-VuN21mRdN712BmtwwYYP3TN4uftv3at4dgQAdjEU1vtid+BgIPN5bdUzsTUugJ2KcW5qKQtjwYtncS3DALd4tvhrxvdxt7Vw9m8Ntk9g9ltm8S13d1wMh8t+N7tsN0zP15TAIflLhjF3wRZkZ+9qKGsflAlrhv9vVk9oQL9jwYl3wY5ugU5gDtwBgflU1rhuDhDk9zFmE6N6D2ZogcD94YwflBwMJ311tqFAjzd-lId7NgQb9ijxDjATEYDqFGd0D4cLUSjtwTAaj8d4YLhmD9DsULj-QYYFDvDmd-jjwK5kTz3ajwoyTgTvD2T9AP47C0kScEE3ygmT5yGQKKUA+hUQjbRY8Q7d4OQcTuvItv5gFlTsANTkEu0TTowVCEKdyfOLyKVOUIzt-HaaQUzn0twCzqdvD6z0KWThwFjhQRT28Dj-9sINFL1sNp9ztvgUIIAA
6
- *
7
- * @see
8
- * - https://stackoverflow.com/q/75531366/1938970: fix for `Type instantiation is excessively deep and possibly infinite in Promise.all`
9
- *
10
- * @notes
11
- * I might take a better look at how things were done in [i18next](https://github.com/i18next/i18next/blob/master/index.d.ts)
12
- */ "use strict";
13
- Object.defineProperty(exports, "__esModule", {
14
- value: true
15
- });