noda-js 0.1.0 → 0.2.0

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 (220) hide show
  1. package/Bcl/CldrWindowsZones.generated.ts +1 -1
  2. package/Bcl/CldrWindowsZones.ts +2 -2
  3. package/Browser/BrowserDateTimeZoneSource.ts +11 -3
  4. package/CalendarOrdinal.generated.ts +1 -1
  5. package/Cultures/all.generated.ts +98 -0
  6. package/Cultures/cs-CZ.generated.ts +2 -2
  7. package/Cultures/da-DK.generated.ts +2 -2
  8. package/Cultures/de-AT.generated.ts +2 -2
  9. package/Cultures/de-CH.generated.ts +2 -2
  10. package/Cultures/de-DE.generated.ts +2 -2
  11. package/Cultures/el-GR.generated.ts +2 -2
  12. package/Cultures/en-001.generated.ts +2 -2
  13. package/Cultures/en-AU.generated.ts +2 -2
  14. package/Cultures/en-CA.generated.ts +2 -2
  15. package/Cultures/en-GB.generated.ts +2 -2
  16. package/Cultures/en-IE.generated.ts +2 -2
  17. package/Cultures/en-IL.generated.ts +2 -2
  18. package/Cultures/en-IN.generated.ts +2 -2
  19. package/Cultures/en-NZ.generated.ts +2 -2
  20. package/Cultures/en-US.generated.ts +2 -2
  21. package/Cultures/en-ZA.generated.ts +2 -2
  22. package/Cultures/es-419.generated.ts +2 -2
  23. package/Cultures/es-ES.generated.ts +2 -2
  24. package/Cultures/es-MX.generated.ts +2 -2
  25. package/Cultures/fi-FI.generated.ts +2 -2
  26. package/Cultures/fr-CA.generated.ts +2 -2
  27. package/Cultures/fr-CH.generated.ts +2 -2
  28. package/Cultures/fr-FR.generated.ts +2 -2
  29. package/Cultures/he-IL.generated.ts +2 -2
  30. package/Cultures/hi-IN.generated.ts +2 -2
  31. package/Cultures/id-ID.generated.ts +2 -2
  32. package/Cultures/index.generated.ts +1 -1
  33. package/Cultures/it-IT.generated.ts +2 -2
  34. package/Cultures/ja-JP.generated.ts +2 -2
  35. package/Cultures/ko-KR.generated.ts +2 -2
  36. package/Cultures/nb-NO.generated.ts +2 -2
  37. package/Cultures/nl-NL.generated.ts +2 -2
  38. package/Cultures/pl-PL.generated.ts +2 -2
  39. package/Cultures/pt-BR.generated.ts +2 -2
  40. package/Cultures/pt-PT.generated.ts +2 -2
  41. package/Cultures/ru-RU.generated.ts +2 -2
  42. package/Cultures/sv-SE.generated.ts +2 -2
  43. package/Cultures/tr-TR.generated.ts +2 -2
  44. package/Cultures/uk-UA.generated.ts +2 -2
  45. package/Cultures/vi-VN.generated.ts +2 -2
  46. package/Cultures/zh-CN.generated.ts +2 -2
  47. package/Cultures/zh-TW.generated.ts +2 -2
  48. package/DateTimeZone.ts +1 -1
  49. package/Extensions/DateTimeZoneProviderExtensions.ts +1 -1
  50. package/Globalization/InvariantCultureData.generated.ts +1 -1
  51. package/Globalization/NodaCultureInfo.ts +189 -14
  52. package/Globalization/PatternResources.generated.ts +1 -1
  53. package/IDateTimeZoneProvider.ts +1 -1
  54. package/IsoDayOfWeek.generated.ts +1 -1
  55. package/LICENSE.txt +201 -201
  56. package/NodaConstants.generated.ts +1 -1
  57. package/PeriodBuilder.ts +4 -4
  58. package/PeriodUnits.generated.ts +1 -1
  59. package/README.md +4 -3
  60. package/Text/Patterns/PatternFields.generated.ts +1 -1
  61. package/Text/PeriodPattern.ts +3 -3
  62. package/Text/TextErrorMessages.generated.ts +1 -1
  63. package/Text/ZonedDateTimePatternParser.ts +1 -1
  64. package/TimeZones/DateTimeZoneCache.ts +2 -2
  65. package/TimeZones/IO/DateTimeZoneReader.ts +2 -2
  66. package/TimeZones/IO/DateTimeZoneWriter.DateTimeZoneType.generated.ts +1 -1
  67. package/TimeZones/IO/TzdbStreamFieldId.generated.ts +1 -1
  68. package/TimeZones/TransitionMode.generated.ts +1 -1
  69. package/TimeZones/TzdbBundledData.generated.ts +1 -1
  70. package/TimeZones/TzdbDateTimeZoneSource.ts +1 -14
  71. package/TimeZones/ZoneEqualityComparer.Options.generated.ts +1 -1
  72. package/Utility/Encoding.ts +101 -0
  73. package/Utility/TickArithmetic.ts +110 -109
  74. package/dist/Bcl/CldrWindowsZones.d.ts +1 -1
  75. package/dist/Bcl/CldrWindowsZones.generated.js +1 -1
  76. package/dist/Bcl/CldrWindowsZones.generated.js.map +1 -1
  77. package/dist/Bcl/CldrWindowsZones.js +2 -2
  78. package/dist/Browser/BrowserDateTimeZoneSource.d.ts +1 -0
  79. package/dist/Browser/BrowserDateTimeZoneSource.d.ts.map +1 -1
  80. package/dist/Browser/BrowserDateTimeZoneSource.js +9 -3
  81. package/dist/Browser/BrowserDateTimeZoneSource.js.map +1 -1
  82. package/dist/CalendarOrdinal.generated.js +1 -1
  83. package/dist/CalendarOrdinal.generated.js.map +1 -1
  84. package/dist/Cultures/all.generated.d.ts +2 -0
  85. package/dist/Cultures/all.generated.d.ts.map +1 -0
  86. package/dist/Cultures/all.generated.js +12 -0
  87. package/dist/Cultures/all.generated.js.map +1 -0
  88. package/dist/Cultures/cs-CZ.generated.js +2 -2
  89. package/dist/Cultures/cs-CZ.generated.js.map +1 -1
  90. package/dist/Cultures/da-DK.generated.js +2 -2
  91. package/dist/Cultures/da-DK.generated.js.map +1 -1
  92. package/dist/Cultures/de-AT.generated.js +2 -2
  93. package/dist/Cultures/de-AT.generated.js.map +1 -1
  94. package/dist/Cultures/de-CH.generated.js +2 -2
  95. package/dist/Cultures/de-CH.generated.js.map +1 -1
  96. package/dist/Cultures/de-DE.generated.js +2 -2
  97. package/dist/Cultures/de-DE.generated.js.map +1 -1
  98. package/dist/Cultures/el-GR.generated.js +2 -2
  99. package/dist/Cultures/el-GR.generated.js.map +1 -1
  100. package/dist/Cultures/en-001.generated.js +2 -2
  101. package/dist/Cultures/en-001.generated.js.map +1 -1
  102. package/dist/Cultures/en-AU.generated.js +2 -2
  103. package/dist/Cultures/en-AU.generated.js.map +1 -1
  104. package/dist/Cultures/en-CA.generated.js +2 -2
  105. package/dist/Cultures/en-CA.generated.js.map +1 -1
  106. package/dist/Cultures/en-GB.generated.js +2 -2
  107. package/dist/Cultures/en-GB.generated.js.map +1 -1
  108. package/dist/Cultures/en-IE.generated.js +2 -2
  109. package/dist/Cultures/en-IE.generated.js.map +1 -1
  110. package/dist/Cultures/en-IL.generated.js +2 -2
  111. package/dist/Cultures/en-IL.generated.js.map +1 -1
  112. package/dist/Cultures/en-IN.generated.js +2 -2
  113. package/dist/Cultures/en-IN.generated.js.map +1 -1
  114. package/dist/Cultures/en-NZ.generated.js +2 -2
  115. package/dist/Cultures/en-NZ.generated.js.map +1 -1
  116. package/dist/Cultures/en-US.generated.js +2 -2
  117. package/dist/Cultures/en-US.generated.js.map +1 -1
  118. package/dist/Cultures/en-ZA.generated.js +2 -2
  119. package/dist/Cultures/en-ZA.generated.js.map +1 -1
  120. package/dist/Cultures/es-419.generated.js +2 -2
  121. package/dist/Cultures/es-419.generated.js.map +1 -1
  122. package/dist/Cultures/es-ES.generated.js +2 -2
  123. package/dist/Cultures/es-ES.generated.js.map +1 -1
  124. package/dist/Cultures/es-MX.generated.js +2 -2
  125. package/dist/Cultures/es-MX.generated.js.map +1 -1
  126. package/dist/Cultures/fi-FI.generated.js +2 -2
  127. package/dist/Cultures/fi-FI.generated.js.map +1 -1
  128. package/dist/Cultures/fr-CA.generated.js +2 -2
  129. package/dist/Cultures/fr-CA.generated.js.map +1 -1
  130. package/dist/Cultures/fr-CH.generated.js +2 -2
  131. package/dist/Cultures/fr-CH.generated.js.map +1 -1
  132. package/dist/Cultures/fr-FR.generated.js +2 -2
  133. package/dist/Cultures/fr-FR.generated.js.map +1 -1
  134. package/dist/Cultures/he-IL.generated.js +2 -2
  135. package/dist/Cultures/he-IL.generated.js.map +1 -1
  136. package/dist/Cultures/hi-IN.generated.js +2 -2
  137. package/dist/Cultures/hi-IN.generated.js.map +1 -1
  138. package/dist/Cultures/id-ID.generated.js +2 -2
  139. package/dist/Cultures/id-ID.generated.js.map +1 -1
  140. package/dist/Cultures/index.generated.js +1 -1
  141. package/dist/Cultures/index.generated.js.map +1 -1
  142. package/dist/Cultures/it-IT.generated.js +2 -2
  143. package/dist/Cultures/it-IT.generated.js.map +1 -1
  144. package/dist/Cultures/ja-JP.generated.js +2 -2
  145. package/dist/Cultures/ja-JP.generated.js.map +1 -1
  146. package/dist/Cultures/ko-KR.generated.js +2 -2
  147. package/dist/Cultures/ko-KR.generated.js.map +1 -1
  148. package/dist/Cultures/nb-NO.generated.js +2 -2
  149. package/dist/Cultures/nb-NO.generated.js.map +1 -1
  150. package/dist/Cultures/nl-NL.generated.js +2 -2
  151. package/dist/Cultures/nl-NL.generated.js.map +1 -1
  152. package/dist/Cultures/pl-PL.generated.js +2 -2
  153. package/dist/Cultures/pl-PL.generated.js.map +1 -1
  154. package/dist/Cultures/pt-BR.generated.js +2 -2
  155. package/dist/Cultures/pt-BR.generated.js.map +1 -1
  156. package/dist/Cultures/pt-PT.generated.js +2 -2
  157. package/dist/Cultures/pt-PT.generated.js.map +1 -1
  158. package/dist/Cultures/ru-RU.generated.js +2 -2
  159. package/dist/Cultures/ru-RU.generated.js.map +1 -1
  160. package/dist/Cultures/sv-SE.generated.js +2 -2
  161. package/dist/Cultures/sv-SE.generated.js.map +1 -1
  162. package/dist/Cultures/tr-TR.generated.js +2 -2
  163. package/dist/Cultures/tr-TR.generated.js.map +1 -1
  164. package/dist/Cultures/uk-UA.generated.js +2 -2
  165. package/dist/Cultures/uk-UA.generated.js.map +1 -1
  166. package/dist/Cultures/vi-VN.generated.js +2 -2
  167. package/dist/Cultures/vi-VN.generated.js.map +1 -1
  168. package/dist/Cultures/zh-CN.generated.js +2 -2
  169. package/dist/Cultures/zh-CN.generated.js.map +1 -1
  170. package/dist/Cultures/zh-TW.generated.js +2 -2
  171. package/dist/Cultures/zh-TW.generated.js.map +1 -1
  172. package/dist/DateTimeZone.js +1 -1
  173. package/dist/Extensions/DateTimeZoneProviderExtensions.js +1 -1
  174. package/dist/Globalization/InvariantCultureData.generated.js +1 -1
  175. package/dist/Globalization/InvariantCultureData.generated.js.map +1 -1
  176. package/dist/Globalization/NodaCultureInfo.d.ts +73 -8
  177. package/dist/Globalization/NodaCultureInfo.d.ts.map +1 -1
  178. package/dist/Globalization/NodaCultureInfo.js +124 -6
  179. package/dist/Globalization/NodaCultureInfo.js.map +1 -1
  180. package/dist/Globalization/PatternResources.generated.js +1 -1
  181. package/dist/Globalization/PatternResources.generated.js.map +1 -1
  182. package/dist/IDateTimeZoneProvider.d.ts +1 -1
  183. package/dist/IsoDayOfWeek.generated.js +1 -1
  184. package/dist/IsoDayOfWeek.generated.js.map +1 -1
  185. package/dist/NodaConstants.generated.js +1 -1
  186. package/dist/NodaConstants.generated.js.map +1 -1
  187. package/dist/PeriodBuilder.d.ts +2 -2
  188. package/dist/PeriodBuilder.js +2 -2
  189. package/dist/PeriodUnits.generated.js +1 -1
  190. package/dist/PeriodUnits.generated.js.map +1 -1
  191. package/dist/Text/Patterns/PatternFields.generated.js +1 -1
  192. package/dist/Text/Patterns/PatternFields.generated.js.map +1 -1
  193. package/dist/Text/PeriodPattern.js +3 -3
  194. package/dist/Text/TextErrorMessages.generated.js +1 -1
  195. package/dist/Text/TextErrorMessages.generated.js.map +1 -1
  196. package/dist/Text/ZonedDateTimePatternParser.js +1 -1
  197. package/dist/TimeZones/DateTimeZoneCache.d.ts +1 -1
  198. package/dist/TimeZones/DateTimeZoneCache.js +2 -2
  199. package/dist/TimeZones/IO/DateTimeZoneReader.js +2 -2
  200. package/dist/TimeZones/IO/DateTimeZoneReader.js.map +1 -1
  201. package/dist/TimeZones/IO/DateTimeZoneWriter.DateTimeZoneType.generated.js +1 -1
  202. package/dist/TimeZones/IO/DateTimeZoneWriter.DateTimeZoneType.generated.js.map +1 -1
  203. package/dist/TimeZones/IO/TzdbStreamFieldId.generated.js +1 -1
  204. package/dist/TimeZones/IO/TzdbStreamFieldId.generated.js.map +1 -1
  205. package/dist/TimeZones/TransitionMode.generated.js +1 -1
  206. package/dist/TimeZones/TransitionMode.generated.js.map +1 -1
  207. package/dist/TimeZones/TzdbBundledData.generated.js +1 -1
  208. package/dist/TimeZones/TzdbBundledData.generated.js.map +1 -1
  209. package/dist/TimeZones/TzdbDateTimeZoneSource.d.ts.map +1 -1
  210. package/dist/TimeZones/TzdbDateTimeZoneSource.js +1 -14
  211. package/dist/TimeZones/TzdbDateTimeZoneSource.js.map +1 -1
  212. package/dist/TimeZones/ZoneEqualityComparer.Options.generated.js +1 -1
  213. package/dist/TimeZones/ZoneEqualityComparer.Options.generated.js.map +1 -1
  214. package/dist/Utility/Encoding.d.ts +5 -0
  215. package/dist/Utility/Encoding.d.ts.map +1 -0
  216. package/dist/Utility/Encoding.js +100 -0
  217. package/dist/Utility/Encoding.js.map +1 -0
  218. package/dist/Utility/TickArithmetic.js +1 -0
  219. package/dist/Utility/TickArithmetic.js.map +1 -1
  220. package/package.json +11 -4
@@ -1,13 +1,13 @@
1
1
  // <auto-generated>
2
2
  // This file was generated by tools/NodaJs.Tools (cultures) from NodaTime 3.3.0, .NET 10.0.14, ICU 72.1.0.3.
3
- // Do not edit it by hand: re-run tools/generate.ps1 (PowerShell 7) instead.
3
+ // Do not edit it by hand: re-run tools/generate.ps1 instead.
4
4
  // Culture data comes from ICU/CLDR via .NET's globalization layer (Unicode License; see NOTICE.txt).
5
5
  // </auto-generated>
6
6
 
7
7
  import { NodaCultureInfo } from "../Globalization/NodaCultureInfo.ts";
8
8
 
9
9
  /** The Japanese (Japan) (ja-JP) culture, as .NET sees it. */
10
- export const jaJP: NodaCultureInfo = /*#__PURE__*/ NodaCultureInfo.FromData({
10
+ export const jaJP: NodaCultureInfo = /*#__PURE__*/ NodaCultureInfo.FromDataRegistered({
11
11
  Name: "ja-JP",
12
12
  DateTimeFormat: {
13
13
  Calendar: "GregorianCalendar",
@@ -1,13 +1,13 @@
1
1
  // <auto-generated>
2
2
  // This file was generated by tools/NodaJs.Tools (cultures) from NodaTime 3.3.0, .NET 10.0.14, ICU 72.1.0.3.
3
- // Do not edit it by hand: re-run tools/generate.ps1 (PowerShell 7) instead.
3
+ // Do not edit it by hand: re-run tools/generate.ps1 instead.
4
4
  // Culture data comes from ICU/CLDR via .NET's globalization layer (Unicode License; see NOTICE.txt).
5
5
  // </auto-generated>
6
6
 
7
7
  import { NodaCultureInfo } from "../Globalization/NodaCultureInfo.ts";
8
8
 
9
9
  /** The Korean (Korea) (ko-KR) culture, as .NET sees it. */
10
- export const koKR: NodaCultureInfo = /*#__PURE__*/ NodaCultureInfo.FromData({
10
+ export const koKR: NodaCultureInfo = /*#__PURE__*/ NodaCultureInfo.FromDataRegistered({
11
11
  Name: "ko-KR",
12
12
  DateTimeFormat: {
13
13
  Calendar: "GregorianCalendar",
@@ -1,13 +1,13 @@
1
1
  // <auto-generated>
2
2
  // This file was generated by tools/NodaJs.Tools (cultures) from NodaTime 3.3.0, .NET 10.0.14, ICU 72.1.0.3.
3
- // Do not edit it by hand: re-run tools/generate.ps1 (PowerShell 7) instead.
3
+ // Do not edit it by hand: re-run tools/generate.ps1 instead.
4
4
  // Culture data comes from ICU/CLDR via .NET's globalization layer (Unicode License; see NOTICE.txt).
5
5
  // </auto-generated>
6
6
 
7
7
  import { NodaCultureInfo } from "../Globalization/NodaCultureInfo.ts";
8
8
 
9
9
  /** The Norwegian Bokmål (Norway) (nb-NO) culture, as .NET sees it. */
10
- export const nbNO: NodaCultureInfo = /*#__PURE__*/ NodaCultureInfo.FromData({
10
+ export const nbNO: NodaCultureInfo = /*#__PURE__*/ NodaCultureInfo.FromDataRegistered({
11
11
  Name: "nb-NO",
12
12
  DateTimeFormat: {
13
13
  Calendar: "GregorianCalendar",
@@ -1,13 +1,13 @@
1
1
  // <auto-generated>
2
2
  // This file was generated by tools/NodaJs.Tools (cultures) from NodaTime 3.3.0, .NET 10.0.14, ICU 72.1.0.3.
3
- // Do not edit it by hand: re-run tools/generate.ps1 (PowerShell 7) instead.
3
+ // Do not edit it by hand: re-run tools/generate.ps1 instead.
4
4
  // Culture data comes from ICU/CLDR via .NET's globalization layer (Unicode License; see NOTICE.txt).
5
5
  // </auto-generated>
6
6
 
7
7
  import { NodaCultureInfo } from "../Globalization/NodaCultureInfo.ts";
8
8
 
9
9
  /** The Dutch (Netherlands) (nl-NL) culture, as .NET sees it. */
10
- export const nlNL: NodaCultureInfo = /*#__PURE__*/ NodaCultureInfo.FromData({
10
+ export const nlNL: NodaCultureInfo = /*#__PURE__*/ NodaCultureInfo.FromDataRegistered({
11
11
  Name: "nl-NL",
12
12
  DateTimeFormat: {
13
13
  Calendar: "GregorianCalendar",
@@ -1,13 +1,13 @@
1
1
  // <auto-generated>
2
2
  // This file was generated by tools/NodaJs.Tools (cultures) from NodaTime 3.3.0, .NET 10.0.14, ICU 72.1.0.3.
3
- // Do not edit it by hand: re-run tools/generate.ps1 (PowerShell 7) instead.
3
+ // Do not edit it by hand: re-run tools/generate.ps1 instead.
4
4
  // Culture data comes from ICU/CLDR via .NET's globalization layer (Unicode License; see NOTICE.txt).
5
5
  // </auto-generated>
6
6
 
7
7
  import { NodaCultureInfo } from "../Globalization/NodaCultureInfo.ts";
8
8
 
9
9
  /** The Polish (Poland) (pl-PL) culture, as .NET sees it. */
10
- export const plPL: NodaCultureInfo = /*#__PURE__*/ NodaCultureInfo.FromData({
10
+ export const plPL: NodaCultureInfo = /*#__PURE__*/ NodaCultureInfo.FromDataRegistered({
11
11
  Name: "pl-PL",
12
12
  DateTimeFormat: {
13
13
  Calendar: "GregorianCalendar",
@@ -1,13 +1,13 @@
1
1
  // <auto-generated>
2
2
  // This file was generated by tools/NodaJs.Tools (cultures) from NodaTime 3.3.0, .NET 10.0.14, ICU 72.1.0.3.
3
- // Do not edit it by hand: re-run tools/generate.ps1 (PowerShell 7) instead.
3
+ // Do not edit it by hand: re-run tools/generate.ps1 instead.
4
4
  // Culture data comes from ICU/CLDR via .NET's globalization layer (Unicode License; see NOTICE.txt).
5
5
  // </auto-generated>
6
6
 
7
7
  import { NodaCultureInfo } from "../Globalization/NodaCultureInfo.ts";
8
8
 
9
9
  /** The Portuguese (Brazil) (pt-BR) culture, as .NET sees it. */
10
- export const ptBR: NodaCultureInfo = /*#__PURE__*/ NodaCultureInfo.FromData({
10
+ export const ptBR: NodaCultureInfo = /*#__PURE__*/ NodaCultureInfo.FromDataRegistered({
11
11
  Name: "pt-BR",
12
12
  DateTimeFormat: {
13
13
  Calendar: "GregorianCalendar",
@@ -1,13 +1,13 @@
1
1
  // <auto-generated>
2
2
  // This file was generated by tools/NodaJs.Tools (cultures) from NodaTime 3.3.0, .NET 10.0.14, ICU 72.1.0.3.
3
- // Do not edit it by hand: re-run tools/generate.ps1 (PowerShell 7) instead.
3
+ // Do not edit it by hand: re-run tools/generate.ps1 instead.
4
4
  // Culture data comes from ICU/CLDR via .NET's globalization layer (Unicode License; see NOTICE.txt).
5
5
  // </auto-generated>
6
6
 
7
7
  import { NodaCultureInfo } from "../Globalization/NodaCultureInfo.ts";
8
8
 
9
9
  /** The Portuguese (Portugal) (pt-PT) culture, as .NET sees it. */
10
- export const ptPT: NodaCultureInfo = /*#__PURE__*/ NodaCultureInfo.FromData({
10
+ export const ptPT: NodaCultureInfo = /*#__PURE__*/ NodaCultureInfo.FromDataRegistered({
11
11
  Name: "pt-PT",
12
12
  DateTimeFormat: {
13
13
  Calendar: "GregorianCalendar",
@@ -1,13 +1,13 @@
1
1
  // <auto-generated>
2
2
  // This file was generated by tools/NodaJs.Tools (cultures) from NodaTime 3.3.0, .NET 10.0.14, ICU 72.1.0.3.
3
- // Do not edit it by hand: re-run tools/generate.ps1 (PowerShell 7) instead.
3
+ // Do not edit it by hand: re-run tools/generate.ps1 instead.
4
4
  // Culture data comes from ICU/CLDR via .NET's globalization layer (Unicode License; see NOTICE.txt).
5
5
  // </auto-generated>
6
6
 
7
7
  import { NodaCultureInfo } from "../Globalization/NodaCultureInfo.ts";
8
8
 
9
9
  /** The Russian (Russia) (ru-RU) culture, as .NET sees it. */
10
- export const ruRU: NodaCultureInfo = /*#__PURE__*/ NodaCultureInfo.FromData({
10
+ export const ruRU: NodaCultureInfo = /*#__PURE__*/ NodaCultureInfo.FromDataRegistered({
11
11
  Name: "ru-RU",
12
12
  DateTimeFormat: {
13
13
  Calendar: "GregorianCalendar",
@@ -1,13 +1,13 @@
1
1
  // <auto-generated>
2
2
  // This file was generated by tools/NodaJs.Tools (cultures) from NodaTime 3.3.0, .NET 10.0.14, ICU 72.1.0.3.
3
- // Do not edit it by hand: re-run tools/generate.ps1 (PowerShell 7) instead.
3
+ // Do not edit it by hand: re-run tools/generate.ps1 instead.
4
4
  // Culture data comes from ICU/CLDR via .NET's globalization layer (Unicode License; see NOTICE.txt).
5
5
  // </auto-generated>
6
6
 
7
7
  import { NodaCultureInfo } from "../Globalization/NodaCultureInfo.ts";
8
8
 
9
9
  /** The Swedish (Sweden) (sv-SE) culture, as .NET sees it. */
10
- export const svSE: NodaCultureInfo = /*#__PURE__*/ NodaCultureInfo.FromData({
10
+ export const svSE: NodaCultureInfo = /*#__PURE__*/ NodaCultureInfo.FromDataRegistered({
11
11
  Name: "sv-SE",
12
12
  DateTimeFormat: {
13
13
  Calendar: "GregorianCalendar",
@@ -1,13 +1,13 @@
1
1
  // <auto-generated>
2
2
  // This file was generated by tools/NodaJs.Tools (cultures) from NodaTime 3.3.0, .NET 10.0.14, ICU 72.1.0.3.
3
- // Do not edit it by hand: re-run tools/generate.ps1 (PowerShell 7) instead.
3
+ // Do not edit it by hand: re-run tools/generate.ps1 instead.
4
4
  // Culture data comes from ICU/CLDR via .NET's globalization layer (Unicode License; see NOTICE.txt).
5
5
  // </auto-generated>
6
6
 
7
7
  import { NodaCultureInfo } from "../Globalization/NodaCultureInfo.ts";
8
8
 
9
9
  /** The Turkish (Türkiye) (tr-TR) culture, as .NET sees it. */
10
- export const trTR: NodaCultureInfo = /*#__PURE__*/ NodaCultureInfo.FromData({
10
+ export const trTR: NodaCultureInfo = /*#__PURE__*/ NodaCultureInfo.FromDataRegistered({
11
11
  Name: "tr-TR",
12
12
  DateTimeFormat: {
13
13
  Calendar: "GregorianCalendar",
@@ -1,13 +1,13 @@
1
1
  // <auto-generated>
2
2
  // This file was generated by tools/NodaJs.Tools (cultures) from NodaTime 3.3.0, .NET 10.0.14, ICU 72.1.0.3.
3
- // Do not edit it by hand: re-run tools/generate.ps1 (PowerShell 7) instead.
3
+ // Do not edit it by hand: re-run tools/generate.ps1 instead.
4
4
  // Culture data comes from ICU/CLDR via .NET's globalization layer (Unicode License; see NOTICE.txt).
5
5
  // </auto-generated>
6
6
 
7
7
  import { NodaCultureInfo } from "../Globalization/NodaCultureInfo.ts";
8
8
 
9
9
  /** The Ukrainian (Ukraine) (uk-UA) culture, as .NET sees it. */
10
- export const ukUA: NodaCultureInfo = /*#__PURE__*/ NodaCultureInfo.FromData({
10
+ export const ukUA: NodaCultureInfo = /*#__PURE__*/ NodaCultureInfo.FromDataRegistered({
11
11
  Name: "uk-UA",
12
12
  DateTimeFormat: {
13
13
  Calendar: "GregorianCalendar",
@@ -1,13 +1,13 @@
1
1
  // <auto-generated>
2
2
  // This file was generated by tools/NodaJs.Tools (cultures) from NodaTime 3.3.0, .NET 10.0.14, ICU 72.1.0.3.
3
- // Do not edit it by hand: re-run tools/generate.ps1 (PowerShell 7) instead.
3
+ // Do not edit it by hand: re-run tools/generate.ps1 instead.
4
4
  // Culture data comes from ICU/CLDR via .NET's globalization layer (Unicode License; see NOTICE.txt).
5
5
  // </auto-generated>
6
6
 
7
7
  import { NodaCultureInfo } from "../Globalization/NodaCultureInfo.ts";
8
8
 
9
9
  /** The Vietnamese (Vietnam) (vi-VN) culture, as .NET sees it. */
10
- export const viVN: NodaCultureInfo = /*#__PURE__*/ NodaCultureInfo.FromData({
10
+ export const viVN: NodaCultureInfo = /*#__PURE__*/ NodaCultureInfo.FromDataRegistered({
11
11
  Name: "vi-VN",
12
12
  DateTimeFormat: {
13
13
  Calendar: "GregorianCalendar",
@@ -1,13 +1,13 @@
1
1
  // <auto-generated>
2
2
  // This file was generated by tools/NodaJs.Tools (cultures) from NodaTime 3.3.0, .NET 10.0.14, ICU 72.1.0.3.
3
- // Do not edit it by hand: re-run tools/generate.ps1 (PowerShell 7) instead.
3
+ // Do not edit it by hand: re-run tools/generate.ps1 instead.
4
4
  // Culture data comes from ICU/CLDR via .NET's globalization layer (Unicode License; see NOTICE.txt).
5
5
  // </auto-generated>
6
6
 
7
7
  import { NodaCultureInfo } from "../Globalization/NodaCultureInfo.ts";
8
8
 
9
9
  /** The Chinese (China) (zh-CN) culture, as .NET sees it. */
10
- export const zhCN: NodaCultureInfo = /*#__PURE__*/ NodaCultureInfo.FromData({
10
+ export const zhCN: NodaCultureInfo = /*#__PURE__*/ NodaCultureInfo.FromDataRegistered({
11
11
  Name: "zh-CN",
12
12
  DateTimeFormat: {
13
13
  Calendar: "GregorianCalendar",
@@ -1,13 +1,13 @@
1
1
  // <auto-generated>
2
2
  // This file was generated by tools/NodaJs.Tools (cultures) from NodaTime 3.3.0, .NET 10.0.14, ICU 72.1.0.3.
3
- // Do not edit it by hand: re-run tools/generate.ps1 (PowerShell 7) instead.
3
+ // Do not edit it by hand: re-run tools/generate.ps1 instead.
4
4
  // Culture data comes from ICU/CLDR via .NET's globalization layer (Unicode License; see NOTICE.txt).
5
5
  // </auto-generated>
6
6
 
7
7
  import { NodaCultureInfo } from "../Globalization/NodaCultureInfo.ts";
8
8
 
9
9
  /** The Chinese (Taiwan) (zh-TW) culture, as .NET sees it. */
10
- export const zhTW: NodaCultureInfo = /*#__PURE__*/ NodaCultureInfo.FromData({
10
+ export const zhTW: NodaCultureInfo = /*#__PURE__*/ NodaCultureInfo.FromDataRegistered({
11
11
  Name: "zh-TW",
12
12
  DateTimeFormat: {
13
13
  Calendar: "GregorianCalendar",
package/DateTimeZone.ts CHANGED
@@ -554,7 +554,7 @@ export abstract class DateTimeZone implements IZoneIntervalMap {
554
554
  */
555
555
  static fromJSON(json: string, provider: IDateTimeZoneProvider): DateTimeZone {
556
556
  Preconditions.CheckNotNull(provider, "provider");
557
- return provider.get(json);
557
+ return provider.Get(json);
558
558
  }
559
559
  // #endregion
560
560
  }
@@ -19,7 +19,7 @@ export function GetAllZones(provider: IDateTimeZoneProvider): Iterable<DateTimeZ
19
19
  Preconditions.CheckNotNull(provider, "provider");
20
20
  return (function* () {
21
21
  for (const id of provider.Ids) {
22
- yield provider.get(id);
22
+ yield provider.Get(id);
23
23
  }
24
24
  })();
25
25
  }
@@ -1,6 +1,6 @@
1
1
  // <auto-generated>
2
2
  // This file was generated by tools/NodaJs.Tools (cultures) from NodaTime 3.3.0, .NET 10.0.14, ICU 72.1.0.3.
3
- // Do not edit it by hand: re-run tools/generate.ps1 (PowerShell 7) instead.
3
+ // Do not edit it by hand: re-run tools/generate.ps1 instead.
4
4
  // Culture data comes from ICU/CLDR via .NET's globalization layer (Unicode License; see NOTICE.txt).
5
5
  // </auto-generated>
6
6
 
@@ -2,12 +2,15 @@
2
2
  // NodaTime reads. The data is generated from .NET by tools/NodaJs.Tools data, into src/noda-js/Cultures/*.generated.ts,
3
3
  // and member names are .NET's (PascalCase), so ported code reads them as NodaTime reads the .NET objects.
4
4
 
5
+ import { ArgumentError, InvalidOperationError } from "../Utility/SystemExceptions.ts";
5
6
  import { invariantCultureData } from "./InvariantCultureData.generated.ts";
6
7
  import { PatternResources } from "./PatternResources.generated.ts";
7
8
 
8
9
  /** Culture data as written by tools/NodaJs.Tools (data). */
9
10
  export interface CultureData {
11
+ /** The culture name (CultureInfo.Name), e.g. "es-ES"; "" for the invariant culture. */
10
12
  readonly Name: string;
13
+ /** The culture's date and time formatting data (CultureInfo.DateTimeFormat). */
11
14
  readonly DateTimeFormat: DateTimeFormatData;
12
15
  /** NodaTime pattern resources that differ from the neutral ones (src/noda-js/Globalization/PatternResources.generated.ts). */
13
16
  readonly PatternResources?: Readonly<Record<string, string>>;
@@ -17,36 +20,64 @@ export interface CultureData {
17
20
  export interface DateTimeFormatData {
18
21
  /** The .NET calendar type name, e.g. "GregorianCalendar". */
19
22
  readonly Calendar: string;
23
+ /** The designator for hours before noon, e.g. "AM" (the `tt` pattern specifier). */
20
24
  readonly AMDesignator: string;
25
+ /** The designator for hours after noon, e.g. "PM" (the `tt` pattern specifier). */
21
26
  readonly PMDesignator: string;
27
+ /** The separator between hours, minutes and seconds (the `:` pattern specifier), e.g. ":". */
22
28
  readonly TimeSeparator: string;
29
+ /** The separator between year, month and day (the `/` pattern specifier), e.g. "/". */
23
30
  readonly DateSeparator: string;
31
+ /** The short date pattern (standard pattern `d`), e.g. "dd/MM/yyyy". */
24
32
  readonly ShortDatePattern: string;
33
+ /** The long date pattern (standard pattern `D`), e.g. "dddd, d MMMM yyyy". */
25
34
  readonly LongDatePattern: string;
35
+ /** The short time pattern (standard pattern `t`), e.g. "HH:mm". */
26
36
  readonly ShortTimePattern: string;
37
+ /** The long time pattern (standard pattern `T`), e.g. "HH:mm:ss". */
27
38
  readonly LongTimePattern: string;
39
+ /** The long date and long time pattern (standard pattern `F`), e.g. "dddd, d MMMM yyyy HH:mm:ss". */
28
40
  readonly FullDateTimePattern: string;
41
+ /** The month and day pattern (.NET's `M` format), e.g. "d MMMM". */
29
42
  readonly MonthDayPattern: string;
43
+ /** The year and month pattern (.NET's `Y` format), e.g. "MMMM yyyy". */
30
44
  readonly YearMonthPattern: string;
45
+ /** The sortable (ISO 8601) date and time pattern (.NET's `s` format): "yyyy'-'MM'-'dd'T'HH':'mm':'ss". */
31
46
  readonly SortableDateTimePattern: string;
47
+ /** The universal sortable date and time pattern (.NET's `u` format): "yyyy'-'MM'-'dd HH':'mm':'ss'Z'". */
32
48
  readonly UniversalSortableDateTimePattern: string;
49
+ /** The RFC 1123 date and time pattern (.NET's `R` format): "ddd, dd MMM yyyy HH':'mm':'ss 'GMT'". */
33
50
  readonly RFC1123Pattern: string;
34
- /** 13 entries, as in .NET (the last is for a 13th month, and usually empty). */
51
+ /**
52
+ * The full month names (the `MMMM` pattern specifier, standalone), January first: 13 entries, as in .NET (the last is
53
+ * for a 13th month, and usually empty).
54
+ */
35
55
  readonly MonthNames: readonly string[];
56
+ /** The abbreviated month names (the `MMM` pattern specifier, standalone): 13 entries, like {@link MonthNames}. */
36
57
  readonly AbbreviatedMonthNames: readonly string[];
58
+ /**
59
+ * The full month names in the genitive case, used with a day (`d MMMM`) in languages that inflect them (e.g. Russian,
60
+ * Polish): 13 entries, like {@link MonthNames}. The same as MonthNames where the language doesn't distinguish them.
61
+ */
37
62
  readonly MonthGenitiveNames: readonly string[];
63
+ /** The abbreviated month names in the genitive case (`d MMM`): 13 entries, like {@link MonthGenitiveNames}. */
38
64
  readonly AbbreviatedMonthGenitiveNames: readonly string[];
39
- /** 7 entries, Sunday first, as in .NET. */
65
+ /** The full day names (the `dddd` pattern specifier): 7 entries, Sunday first, as in .NET. */
40
66
  readonly DayNames: readonly string[];
67
+ /** The abbreviated day names (the `ddd` pattern specifier): 7 entries, Sunday first. */
41
68
  readonly AbbreviatedDayNames: readonly string[];
69
+ /** The shortest day names (e.g. "Su"): 7 entries, Sunday first. */
42
70
  readonly ShortestDayNames: readonly string[];
43
- /** GetEraName(1..n) of the culture's calendar. */
71
+ /** The full era names (the `gg` pattern specifier): GetEraName(1..n) of the culture's calendar. */
44
72
  readonly EraNames: readonly string[];
45
- /** GetAbbreviatedEraName(1..n) of the culture's calendar. */
73
+ /** The abbreviated era names: GetAbbreviatedEraName(1..n) of the culture's calendar. */
46
74
  readonly AbbreviatedEraNames: readonly string[];
47
- /** System.DayOfWeek value (0 = Sunday). */
75
+ /** The first day of the week, as a System.DayOfWeek value (0 = Sunday). */
48
76
  readonly FirstDayOfWeek: number;
49
- /** System.Globalization.CalendarWeekRule value. */
77
+ /**
78
+ * How the first week of the year is chosen, as a System.Globalization.CalendarWeekRule value (0 = FirstDay,
79
+ * 1 = FirstFullWeek, 2 = FirstFourDayWeek).
80
+ */
50
81
  readonly CalendarWeekRule: number;
51
82
  }
52
83
 
@@ -70,28 +101,47 @@ export enum CompareOptions {
70
101
  export class DateTimeFormatInfo implements DateTimeFormatData {
71
102
  /** @inheritDoc */
72
103
  readonly Calendar!: string;
104
+ /** @inheritDoc */
73
105
  readonly AMDesignator!: string;
106
+ /** @inheritDoc */
74
107
  readonly PMDesignator!: string;
108
+ /** @inheritDoc */
75
109
  readonly TimeSeparator!: string;
110
+ /** @inheritDoc */
76
111
  readonly DateSeparator!: string;
112
+ /** @inheritDoc */
77
113
  readonly ShortDatePattern!: string;
114
+ /** @inheritDoc */
78
115
  readonly LongDatePattern!: string;
116
+ /** @inheritDoc */
79
117
  readonly ShortTimePattern!: string;
118
+ /** @inheritDoc */
80
119
  readonly LongTimePattern!: string;
120
+ /** @inheritDoc */
81
121
  readonly FullDateTimePattern!: string;
122
+ /** @inheritDoc */
82
123
  readonly MonthDayPattern!: string;
124
+ /** @inheritDoc */
83
125
  readonly YearMonthPattern!: string;
126
+ /** @inheritDoc */
84
127
  readonly SortableDateTimePattern!: string;
128
+ /** @inheritDoc */
85
129
  readonly UniversalSortableDateTimePattern!: string;
130
+ /** @inheritDoc */
86
131
  readonly RFC1123Pattern!: string;
87
132
  /** @inheritDoc */
88
133
  readonly MonthNames!: readonly string[];
134
+ /** @inheritDoc */
89
135
  readonly AbbreviatedMonthNames!: readonly string[];
136
+ /** @inheritDoc */
90
137
  readonly MonthGenitiveNames!: readonly string[];
138
+ /** @inheritDoc */
91
139
  readonly AbbreviatedMonthGenitiveNames!: readonly string[];
92
140
  /** @inheritDoc */
93
141
  readonly DayNames!: readonly string[];
142
+ /** @inheritDoc */
94
143
  readonly AbbreviatedDayNames!: readonly string[];
144
+ /** @inheritDoc */
95
145
  readonly ShortestDayNames!: readonly string[];
96
146
  /** @inheritDoc */
97
147
  readonly EraNames!: readonly string[];
@@ -127,8 +177,9 @@ export class DateTimeFormatInfo implements DateTimeFormatData {
127
177
  * parsers make. Backed by Intl.Collator; tested against .NET's results by test/golden/compare.
128
178
  */
129
179
  export class CompareInfo {
130
- private _ignoreCaseCollator: Intl.Collator | undefined;
131
- private _collator: Intl.Collator | undefined;
180
+ // null: the host has no usable Intl.Collator.
181
+ private _ignoreCaseCollator: Intl.Collator | null | undefined;
182
+ private _collator: Intl.Collator | null | undefined;
132
183
 
133
184
  constructor(readonly Name: string) {}
134
185
 
@@ -159,10 +210,23 @@ export class CompareInfo {
159
210
  const ub = b.toUpperCase();
160
211
  return ua < ub ? -1 : ua > ub ? 1 : 0;
161
212
  }
162
- case CompareOptions.IgnoreCase:
163
- return Math.sign((this._ignoreCaseCollator ??= new Intl.Collator(this.Locale, { sensitivity: "accent" })).compare(a, b));
164
- default:
165
- return Math.sign((this._collator ??= new Intl.Collator(this.Locale, { sensitivity: "variant" })).compare(a, b));
213
+ case CompareOptions.IgnoreCase: {
214
+ const collator = (this._ignoreCaseCollator ??= CreateCollator(this.Locale, "accent"));
215
+ if (collator !== null) {
216
+ return Math.sign(collator.compare(a, b));
217
+ }
218
+ // Intl not available: case-insensitive ordinal comparison instead of culture-aware.
219
+ const ua = a.toUpperCase();
220
+ const ub = b.toUpperCase();
221
+ return ua < ub ? -1 : ua > ub ? 1 : 0;
222
+ }
223
+ default: {
224
+ const collator = (this._collator ??= CreateCollator(this.Locale, "variant"));
225
+ if (collator !== null) {
226
+ return Math.sign(collator.compare(a, b));
227
+ }
228
+ return a < b ? -1 : a > b ? 1 : 0;
229
+ }
166
230
  }
167
231
  }
168
232
 
@@ -199,19 +263,73 @@ export class NodaCultureInfo {
199
263
  return new NodaCultureInfo(data);
200
264
  }
201
265
 
266
+ /**
267
+ * Creates a culture from exported data and registers it for {@link CurrentCulture}: how the culture modules of
268
+ * noda-js/cultures create their cultures.
269
+ * @internal
270
+ */
271
+ static FromDataRegistered(data: CultureData): NodaCultureInfo {
272
+ const culture = new NodaCultureInfo(data);
273
+ NodaCultureInfo.Register(culture);
274
+ return culture;
275
+ }
276
+
202
277
  /** Equivalent of CultureInfo.InvariantCulture. */
203
278
  static get InvariantCulture(): NodaCultureInfo {
204
279
  return (invariantCulture ??= new NodaCultureInfo(invariantCultureData));
205
280
  }
206
281
 
282
+ /**
283
+ * Makes cultures available to {@link CurrentCulture}. The cultures of noda-js/cultures register themselves when an
284
+ * app uses them, but a bundler drops a culture module the app imports and never otherwise uses: register such
285
+ * cultures here, or `import "noda-js/cultures/all"` to bundle and register every culture. A culture registered
286
+ * under a name already registered replaces it.
287
+ */
288
+ static Register(...cultures: NodaCultureInfo[]): void {
289
+ for (const culture of cultures) {
290
+ if (!(culture instanceof NodaCultureInfo)) {
291
+ throw new ArgumentError("Only NodaCultureInfo values can be registered.", "cultures");
292
+ }
293
+ // The invariant culture isn't a host language's culture.
294
+ if (culture.Name !== "") {
295
+ registeredCultures.set(culture.Name.toLowerCase(), culture);
296
+ }
297
+ }
298
+ }
299
+
300
+ /**
301
+ * noda-js: the culture of the host's preferred language (equivalent of CultureInfo.CurrentCulture). Takes the host's
302
+ * languages in order of preference (`navigator.languages` in browsers, `navigator.language`, or else the default
303
+ * locale of `Intl.DateTimeFormat`) and returns the first one that matches a registered culture (see {@link Register}):
304
+ * a culture with the same name ("es-AR"), else one named by the language alone ("es"), else the first registered
305
+ * culture of that language ("es-ES"). Evaluated on each access, so it follows changes to the host's languages.
306
+ * @throws {InvalidOperationError} None of the host's languages matches a registered culture.
307
+ */
308
+ static get CurrentCulture(): NodaCultureInfo {
309
+ const languages = HostLanguages();
310
+ for (const language of languages) {
311
+ const culture = MatchRegisteredCulture(language);
312
+ if (culture !== undefined) {
313
+ return culture;
314
+ }
315
+ }
316
+ const registered: string[] = [];
317
+ registeredCultures.forEach((culture) => registered.push(culture.Name));
318
+ throw new InvalidOperationError(
319
+ `${languages.length === 0 ? "The host reports no languages (no navigator or Intl)" : `None of the host's languages (${languages.join(", ")})`} matches a registered culture ` +
320
+ `(${registered.length === 0 ? "none are registered" : registered.join(", ")}). Import the cultures you support ` +
321
+ `from noda-js/cultures and register them with NodaCultureInfo.Register, or import "noda-js/cultures/all".`,
322
+ );
323
+ }
324
+
207
325
  /** Cultures are always read-only in noda-js. */
208
326
  get IsReadOnly(): boolean {
209
327
  return true;
210
328
  }
211
329
 
212
330
  /**
213
- * Equivalent of PatternResources.ResourceManager.GetString(name, culture): NodaTime's own localized
214
- * resources (offset patterns, era names).
331
+ * Equivalent of PatternResources.ResourceManager.GetString(name, culture):
332
+ * NodaTime's own localized resources (offset patterns, era names).
215
333
  */
216
334
  GetPatternResource(name: string): string | null {
217
335
  return this._patternResourceOverrides[name] ?? PatternResources[name] ?? null;
@@ -223,3 +341,60 @@ export class NodaCultureInfo {
223
341
  }
224
342
 
225
343
  let invariantCulture: NodaCultureInfo | undefined;
344
+
345
+ // noda-js: the cultures registered for NodaCultureInfo.CurrentCulture, by lower-case name, in registration order.
346
+ const registeredCultures = new Map<string, NodaCultureInfo>();
347
+
348
+ /** The host's languages, most preferred first (BCP 47 tags such as "es-AR"). */
349
+ function HostLanguages(): readonly string[] {
350
+ if (typeof navigator !== "undefined") {
351
+ if (navigator.languages !== undefined && Array.isArray(navigator.languages) && navigator.languages.length > 0) {
352
+ return navigator.languages;
353
+ }
354
+ if (typeof navigator.language === "string") {
355
+ return [navigator.language];
356
+ }
357
+ }
358
+ // No navigator (e.g. Node before 21): Intl's default locale, if Intl is available.
359
+ try {
360
+ if (typeof Intl !== "undefined" && typeof Intl.DateTimeFormat === "function") {
361
+ const locale = new Intl.DateTimeFormat().resolvedOptions().locale;
362
+ if (typeof locale === "string" && locale !== "") {
363
+ return [locale];
364
+ }
365
+ }
366
+ } catch {
367
+ // No usable Intl: no host languages.
368
+ }
369
+ return [];
370
+ }
371
+
372
+ /** An Intl.Collator for the locale, or null if Intl is not available. */
373
+ function CreateCollator(locale: string, sensitivity: "accent" | "variant"): Intl.Collator | null {
374
+ try {
375
+ return typeof Intl !== "undefined" && typeof Intl.Collator === "function" ? new Intl.Collator(locale, { sensitivity }) : null;
376
+ } catch {
377
+ return null;
378
+ }
379
+ }
380
+
381
+ /** The registered culture for a language tag: same name, else the language alone, else that language's first. */
382
+ function MatchRegisteredCulture(tag: string): NodaCultureInfo | undefined {
383
+ const name = tag.toLowerCase();
384
+ const exact = registeredCultures.get(name);
385
+ if (exact !== undefined) {
386
+ return exact;
387
+ }
388
+ const language = name.split("-")[0]!;
389
+ const neutral = registeredCultures.get(language);
390
+ if (neutral !== undefined) {
391
+ return neutral;
392
+ }
393
+ let first: NodaCultureInfo | undefined;
394
+ registeredCultures.forEach((culture, key) => {
395
+ if (first === undefined && key.split("-")[0] === language) {
396
+ first = culture;
397
+ }
398
+ });
399
+ return first;
400
+ }
@@ -1,6 +1,6 @@
1
1
  // <auto-generated>
2
2
  // This file was generated by tools/NodaJs.Tools (cultures) from NodaTime 3.3.0, .NET 10.0.14, ICU 72.1.0.3.
3
- // Do not edit it by hand: re-run tools/generate.ps1 (PowerShell 7) instead.
3
+ // Do not edit it by hand: re-run tools/generate.ps1 instead.
4
4
  // Source: NodaTime/Globalization/PatternResources.resx
5
5
  // </auto-generated>
6
6
 
@@ -89,5 +89,5 @@ export interface IDateTimeZoneProvider {
89
89
  * @returns The {@link DateTimeZone} for the given ID.
90
90
  * @throws {DateTimeZoneNotFoundError} This provider does not support the given ID.
91
91
  */
92
- get(id: string): DateTimeZone;
92
+ Get(id: string): DateTimeZone;
93
93
  }
@@ -1,6 +1,6 @@
1
1
  // <auto-generated>
2
2
  // This file was generated by tools/NodaJs.Tools (enums) from NodaTime 3.3.0, .NET 10.0.14, ICU 72.1.0.3.
3
- // Do not edit it by hand: re-run tools/generate.ps1 (PowerShell 7) instead.
3
+ // Do not edit it by hand: re-run tools/generate.ps1 instead.
4
4
  // Source: NodaTime.IsoDayOfWeek (enum)
5
5
  // </auto-generated>
6
6