mihrab-methods 0.0.0-stage → 1.0.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 (217) hide show
  1. package/LICENSE +373 -0
  2. package/README.md +319 -2
  3. package/certification.json +120 -0
  4. package/data/corrections/algeria.json +784 -0
  5. package/data/corrections/diyanet.json +18444 -0
  6. package/data/corrections/indonesia.json +210 -0
  7. package/data/corrections/morocco.json +993 -0
  8. package/data/corrections/sweden.json +516 -0
  9. package/dist/cjs/algeria.d.ts +4 -0
  10. package/dist/cjs/algeria.js +22 -0
  11. package/dist/cjs/authorities/algeria.d.ts +3 -0
  12. package/dist/cjs/authorities/algeria.js +57 -0
  13. package/dist/cjs/authorities/diyanet.d.ts +9 -0
  14. package/dist/cjs/authorities/diyanet.js +90 -0
  15. package/dist/cjs/authorities/indonesia.d.ts +4 -0
  16. package/dist/cjs/authorities/indonesia.js +82 -0
  17. package/dist/cjs/authorities/morocco.d.ts +5 -0
  18. package/dist/cjs/authorities/morocco.js +65 -0
  19. package/dist/cjs/authorities/slug.d.ts +2 -0
  20. package/dist/cjs/authorities/slug.js +17 -0
  21. package/dist/cjs/authorities/sweden.d.ts +3 -0
  22. package/dist/cjs/authorities/sweden.js +58 -0
  23. package/dist/cjs/core/api.d.ts +61 -0
  24. package/dist/cjs/core/api.js +176 -0
  25. package/dist/cjs/core/civilDate.d.ts +17 -0
  26. package/dist/cjs/core/civilDate.js +41 -0
  27. package/dist/cjs/core/clock.d.ts +15 -0
  28. package/dist/cjs/core/clock.js +46 -0
  29. package/dist/cjs/core/compute.d.ts +10 -0
  30. package/dist/cjs/core/compute.js +59 -0
  31. package/dist/cjs/core/correctionList.d.ts +25 -0
  32. package/dist/cjs/core/correctionList.js +62 -0
  33. package/dist/cjs/core/fetchLatest.d.ts +57 -0
  34. package/dist/cjs/core/fetchLatest.js +137 -0
  35. package/dist/cjs/core/index.d.ts +14 -0
  36. package/dist/cjs/core/index.js +45 -0
  37. package/dist/cjs/core/registry.d.ts +28 -0
  38. package/dist/cjs/core/registry.js +29 -0
  39. package/dist/cjs/core/types.d.ts +193 -0
  40. package/dist/cjs/core/types.js +22 -0
  41. package/dist/cjs/core.d.ts +2 -0
  42. package/dist/cjs/core.js +18 -0
  43. package/dist/cjs/data/generated/algeriaCertification.d.ts +3 -0
  44. package/dist/cjs/data/generated/algeriaCertification.js +4 -0
  45. package/dist/cjs/data/generated/algeriaCities.d.ts +8 -0
  46. package/dist/cjs/data/generated/algeriaCities.js +5 -0
  47. package/dist/cjs/data/generated/algeriaCorrections.d.ts +3 -0
  48. package/dist/cjs/data/generated/algeriaCorrections.js +4 -0
  49. package/dist/cjs/data/generated/algeriaMethodPoints.d.ts +2 -0
  50. package/dist/cjs/data/generated/algeriaMethodPoints.js +5 -0
  51. package/dist/cjs/data/generated/countryOutlines.d.ts +5 -0
  52. package/dist/cjs/data/generated/countryOutlines.js +5 -0
  53. package/dist/cjs/data/generated/diyanetCertification.d.ts +3 -0
  54. package/dist/cjs/data/generated/diyanetCertification.js +4 -0
  55. package/dist/cjs/data/generated/diyanetCorrections.d.ts +3 -0
  56. package/dist/cjs/data/generated/diyanetCorrections.js +4 -0
  57. package/dist/cjs/data/generated/diyanetCountries.d.ts +5 -0
  58. package/dist/cjs/data/generated/diyanetCountries.js +5 -0
  59. package/dist/cjs/data/generated/diyanetTurkeyPoints.d.ts +7 -0
  60. package/dist/cjs/data/generated/diyanetTurkeyPoints.js +5 -0
  61. package/dist/cjs/data/generated/diyanetWorldPoints.d.ts +10 -0
  62. package/dist/cjs/data/generated/diyanetWorldPoints.js +5 -0
  63. package/dist/cjs/data/generated/indonesiaCertification.d.ts +3 -0
  64. package/dist/cjs/data/generated/indonesiaCertification.js +4 -0
  65. package/dist/cjs/data/generated/indonesiaCorrections.d.ts +3 -0
  66. package/dist/cjs/data/generated/indonesiaCorrections.js +4 -0
  67. package/dist/cjs/data/generated/kemenagMethodPoints.d.ts +2 -0
  68. package/dist/cjs/data/generated/kemenagMethodPoints.js +5 -0
  69. package/dist/cjs/data/generated/kemenagPlaces.d.ts +8 -0
  70. package/dist/cjs/data/generated/kemenagPlaces.js +5 -0
  71. package/dist/cjs/data/generated/moroccoCertification.d.ts +3 -0
  72. package/dist/cjs/data/generated/moroccoCertification.js +4 -0
  73. package/dist/cjs/data/generated/moroccoCities.d.ts +8 -0
  74. package/dist/cjs/data/generated/moroccoCities.js +5 -0
  75. package/dist/cjs/data/generated/moroccoCorrections.d.ts +3 -0
  76. package/dist/cjs/data/generated/moroccoCorrections.js +4 -0
  77. package/dist/cjs/data/generated/moroccoMethodPoints.d.ts +2 -0
  78. package/dist/cjs/data/generated/moroccoMethodPoints.js +5 -0
  79. package/dist/cjs/data/generated/swedenCertification.d.ts +3 -0
  80. package/dist/cjs/data/generated/swedenCertification.js +4 -0
  81. package/dist/cjs/data/generated/swedenCorrections.d.ts +3 -0
  82. package/dist/cjs/data/generated/swedenCorrections.js +4 -0
  83. package/dist/cjs/data/generated/swedenPlaces.d.ts +5 -0
  84. package/dist/cjs/data/generated/swedenPlaces.js +5 -0
  85. package/dist/cjs/diyanet.d.ts +4 -0
  86. package/dist/cjs/diyanet.js +22 -0
  87. package/dist/cjs/index.d.ts +19 -0
  88. package/dist/cjs/index.js +37 -0
  89. package/dist/cjs/indonesia.d.ts +4 -0
  90. package/dist/cjs/indonesia.js +22 -0
  91. package/dist/cjs/locate.d.ts +21 -0
  92. package/dist/cjs/locate.js +204 -0
  93. package/dist/cjs/methods/algeria.d.ts +56 -0
  94. package/dist/cjs/methods/algeria.js +119 -0
  95. package/dist/cjs/methods/indonesia.d.ts +31 -0
  96. package/dist/cjs/methods/indonesia.js +94 -0
  97. package/dist/cjs/methods/morocco.d.ts +61 -0
  98. package/dist/cjs/methods/morocco.js +113 -0
  99. package/dist/cjs/methods/revisions.d.ts +15 -0
  100. package/dist/cjs/methods/revisions.js +18 -0
  101. package/dist/cjs/methods/scratch-congress.d.ts +87 -0
  102. package/dist/cjs/methods/scratch-congress.js +539 -0
  103. package/dist/cjs/methods/sweden.d.ts +88 -0
  104. package/dist/cjs/methods/sweden.js +568 -0
  105. package/dist/cjs/morocco.d.ts +4 -0
  106. package/dist/cjs/morocco.js +22 -0
  107. package/dist/cjs/sun/preciseSun.d.ts +19 -0
  108. package/dist/cjs/sun/preciseSun.js +185 -0
  109. package/dist/cjs/sweden.d.ts +4 -0
  110. package/dist/cjs/sweden.js +22 -0
  111. package/dist/esm/algeria.d.ts +4 -0
  112. package/dist/esm/algeria.js +4 -0
  113. package/dist/esm/authorities/algeria.d.ts +3 -0
  114. package/dist/esm/authorities/algeria.js +51 -0
  115. package/dist/esm/authorities/diyanet.d.ts +9 -0
  116. package/dist/esm/authorities/diyanet.js +83 -0
  117. package/dist/esm/authorities/indonesia.d.ts +4 -0
  118. package/dist/esm/authorities/indonesia.js +75 -0
  119. package/dist/esm/authorities/morocco.d.ts +5 -0
  120. package/dist/esm/authorities/morocco.js +59 -0
  121. package/dist/esm/authorities/slug.d.ts +2 -0
  122. package/dist/esm/authorities/slug.js +14 -0
  123. package/dist/esm/authorities/sweden.d.ts +3 -0
  124. package/dist/esm/authorities/sweden.js +52 -0
  125. package/dist/esm/core/api.d.ts +61 -0
  126. package/dist/esm/core/api.js +162 -0
  127. package/dist/esm/core/civilDate.d.ts +17 -0
  128. package/dist/esm/core/civilDate.js +36 -0
  129. package/dist/esm/core/clock.d.ts +15 -0
  130. package/dist/esm/core/clock.js +39 -0
  131. package/dist/esm/core/compute.d.ts +10 -0
  132. package/dist/esm/core/compute.js +56 -0
  133. package/dist/esm/core/correctionList.d.ts +25 -0
  134. package/dist/esm/core/correctionList.js +56 -0
  135. package/dist/esm/core/fetchLatest.d.ts +57 -0
  136. package/dist/esm/core/fetchLatest.js +98 -0
  137. package/dist/esm/core/index.d.ts +14 -0
  138. package/dist/esm/core/index.js +14 -0
  139. package/dist/esm/core/registry.d.ts +28 -0
  140. package/dist/esm/core/registry.js +23 -0
  141. package/dist/esm/core/types.d.ts +193 -0
  142. package/dist/esm/core/types.js +18 -0
  143. package/dist/esm/core.d.ts +2 -0
  144. package/dist/esm/core.js +2 -0
  145. package/dist/esm/data/generated/algeriaCertification.d.ts +3 -0
  146. package/dist/esm/data/generated/algeriaCertification.js +2 -0
  147. package/dist/esm/data/generated/algeriaCities.d.ts +8 -0
  148. package/dist/esm/data/generated/algeriaCities.js +3 -0
  149. package/dist/esm/data/generated/algeriaCorrections.d.ts +3 -0
  150. package/dist/esm/data/generated/algeriaCorrections.js +2 -0
  151. package/dist/esm/data/generated/algeriaMethodPoints.d.ts +2 -0
  152. package/dist/esm/data/generated/algeriaMethodPoints.js +3 -0
  153. package/dist/esm/data/generated/countryOutlines.d.ts +5 -0
  154. package/dist/esm/data/generated/countryOutlines.js +3 -0
  155. package/dist/esm/data/generated/diyanetCertification.d.ts +3 -0
  156. package/dist/esm/data/generated/diyanetCertification.js +2 -0
  157. package/dist/esm/data/generated/diyanetCorrections.d.ts +3 -0
  158. package/dist/esm/data/generated/diyanetCorrections.js +2 -0
  159. package/dist/esm/data/generated/diyanetCountries.d.ts +5 -0
  160. package/dist/esm/data/generated/diyanetCountries.js +3 -0
  161. package/dist/esm/data/generated/diyanetTurkeyPoints.d.ts +7 -0
  162. package/dist/esm/data/generated/diyanetTurkeyPoints.js +3 -0
  163. package/dist/esm/data/generated/diyanetWorldPoints.d.ts +10 -0
  164. package/dist/esm/data/generated/diyanetWorldPoints.js +3 -0
  165. package/dist/esm/data/generated/indonesiaCertification.d.ts +3 -0
  166. package/dist/esm/data/generated/indonesiaCertification.js +2 -0
  167. package/dist/esm/data/generated/indonesiaCorrections.d.ts +3 -0
  168. package/dist/esm/data/generated/indonesiaCorrections.js +2 -0
  169. package/dist/esm/data/generated/kemenagMethodPoints.d.ts +2 -0
  170. package/dist/esm/data/generated/kemenagMethodPoints.js +3 -0
  171. package/dist/esm/data/generated/kemenagPlaces.d.ts +8 -0
  172. package/dist/esm/data/generated/kemenagPlaces.js +3 -0
  173. package/dist/esm/data/generated/moroccoCertification.d.ts +3 -0
  174. package/dist/esm/data/generated/moroccoCertification.js +2 -0
  175. package/dist/esm/data/generated/moroccoCities.d.ts +8 -0
  176. package/dist/esm/data/generated/moroccoCities.js +3 -0
  177. package/dist/esm/data/generated/moroccoCorrections.d.ts +3 -0
  178. package/dist/esm/data/generated/moroccoCorrections.js +2 -0
  179. package/dist/esm/data/generated/moroccoMethodPoints.d.ts +2 -0
  180. package/dist/esm/data/generated/moroccoMethodPoints.js +3 -0
  181. package/dist/esm/data/generated/swedenCertification.d.ts +3 -0
  182. package/dist/esm/data/generated/swedenCertification.js +2 -0
  183. package/dist/esm/data/generated/swedenCorrections.d.ts +3 -0
  184. package/dist/esm/data/generated/swedenCorrections.js +2 -0
  185. package/dist/esm/data/generated/swedenPlaces.d.ts +5 -0
  186. package/dist/esm/data/generated/swedenPlaces.js +3 -0
  187. package/dist/esm/diyanet.d.ts +4 -0
  188. package/dist/esm/diyanet.js +4 -0
  189. package/dist/esm/index.d.ts +19 -0
  190. package/dist/esm/index.js +19 -0
  191. package/dist/esm/indonesia.d.ts +4 -0
  192. package/dist/esm/indonesia.js +4 -0
  193. package/dist/esm/locate.d.ts +21 -0
  194. package/dist/esm/locate.js +196 -0
  195. package/dist/esm/methods/algeria.d.ts +56 -0
  196. package/dist/esm/methods/algeria.js +114 -0
  197. package/dist/esm/methods/indonesia.d.ts +31 -0
  198. package/dist/esm/methods/indonesia.js +90 -0
  199. package/dist/esm/methods/morocco.d.ts +61 -0
  200. package/dist/esm/methods/morocco.js +107 -0
  201. package/dist/esm/methods/revisions.d.ts +15 -0
  202. package/dist/esm/methods/revisions.js +15 -0
  203. package/dist/esm/methods/scratch-congress.d.ts +87 -0
  204. package/dist/esm/methods/scratch-congress.js +534 -0
  205. package/dist/esm/methods/sweden.d.ts +88 -0
  206. package/dist/esm/methods/sweden.js +563 -0
  207. package/dist/esm/morocco.d.ts +4 -0
  208. package/dist/esm/morocco.js +4 -0
  209. package/dist/esm/package.json +1 -0
  210. package/dist/esm/sun/preciseSun.d.ts +19 -0
  211. package/dist/esm/sun/preciseSun.js +181 -0
  212. package/dist/esm/sweden.d.ts +4 -0
  213. package/dist/esm/sweden.js +4 -0
  214. package/docs/methods.md +190 -0
  215. package/package.json +178 -4
  216. package/schemas/certification.schema.json +59 -0
  217. package/schemas/corrections.schema.json +29 -0
@@ -0,0 +1,516 @@
1
+ {
2
+ "from": "2024-01-01",
3
+ "to": "2027-12-31",
4
+ "points": {
5
+ "55.376,13.159": [
6
+ "2027-01-27 maghrib +1"
7
+ ],
8
+ "55.417,12.844": [
9
+ "2025-05-04 sunrise -1",
10
+ "2026-06-14 isha -1",
11
+ "2027-02-04 sunrise +1"
12
+ ],
13
+ "55.430,13.136": [
14
+ "2024-04-26 sunrise -1"
15
+ ],
16
+ "55.483,13.507": [
17
+ "2027-12-26 asr -1"
18
+ ],
19
+ "55.513,13.234": [
20
+ "2024-08-30 maghrib +1",
21
+ "2025-08-18 maghrib +1",
22
+ "2027-11-10 asr +1"
23
+ ],
24
+ "55.535,14.325": [
25
+ "2026-12-22 maghrib -1",
26
+ "2027-04-12 isha +1",
27
+ "2027-04-15 isha +1",
28
+ "2027-04-16 isha +1",
29
+ "2027-04-17 isha +1",
30
+ "2027-04-20 isha +1",
31
+ "2027-04-21 isha +1",
32
+ "2027-04-25 isha +1",
33
+ "2027-04-30 isha +1"
34
+ ],
35
+ "55.556,14.337": [
36
+ "2024-03-20 sunrise +1",
37
+ "2024-05-14 maghrib +1"
38
+ ],
39
+ "55.673,13.074": [
40
+ "2024-07-25 isha +1",
41
+ "2026-06-24 isha -1",
42
+ "2027-01-10 asr -1",
43
+ "2027-01-25 asr +1",
44
+ "2027-11-17 sunrise -1"
45
+ ],
46
+ "55.713,13.186": [
47
+ "2024-02-15 isha +1"
48
+ ],
49
+ "55.718,13.021": [
50
+ "2025-04-22 fajr +1",
51
+ "2025-05-05 fajr +1",
52
+ "2027-09-20 fajr -1"
53
+ ],
54
+ "55.777,13.087": [
55
+ "2026-10-27 maghrib +1"
56
+ ],
57
+ "55.800,13.661": [
58
+ "2027-02-09 sunrise -1"
59
+ ],
60
+ "55.837,13.296": [
61
+ "2026-05-02 fajr +1"
62
+ ],
63
+ "55.878,12.832": [
64
+ "2024-12-29 sunrise +1",
65
+ "2025-04-30 sunrise -1"
66
+ ],
67
+ "55.931,13.541": [
68
+ "2025-07-31 fajr +1"
69
+ ],
70
+ "56.030,14.158": [
71
+ "2025-01-01 fajr +1"
72
+ ],
73
+ "56.048,14.576": [
74
+ "2025-07-22 sunrise -1",
75
+ "2025-12-10 asr +1"
76
+ ],
77
+ "56.156,13.762": [
78
+ "2024-08-14 maghrib +1",
79
+ "2025-06-18 fajr +1"
80
+ ],
81
+ "56.175,15.587": [
82
+ "2024-11-04 maghrib +1",
83
+ "2026-08-16 asr +1"
84
+ ],
85
+ "56.199,12.549": [
86
+ "2026-07-25 sunrise -1"
87
+ ],
88
+ "56.206,15.279": [
89
+ "2027-03-21 isha -1",
90
+ "2027-05-02 fajr -1"
91
+ ],
92
+ "56.244,12.872": [
93
+ "2024-06-06 maghrib +1"
94
+ ],
95
+ "56.520,13.044": [
96
+ "2025-03-28 asr -1",
97
+ "2025-07-20 isha -1"
98
+ ],
99
+ "56.668,16.353": [
100
+ "2024-01-06 sunrise +1"
101
+ ],
102
+ "56.750,15.260": [
103
+ "2025-06-09 isha -1"
104
+ ],
105
+ "56.750,15.894": [
106
+ "2025-08-11 asr +1",
107
+ "2026-11-20 isha +1",
108
+ "2027-05-10 sunrise -1"
109
+ ],
110
+ "56.835,13.939": [
111
+ "2025-05-13 isha -1",
112
+ "2025-06-02 fajr +1"
113
+ ],
114
+ "56.884,14.803": [
115
+ "2027-12-10 isha +1"
116
+ ],
117
+ "57.033,16.444": [
118
+ "2027-09-07 maghrib +1"
119
+ ],
120
+ "57.106,12.254": [
121
+ "2024-06-12 fajr +1",
122
+ "2024-07-31 fajr +1",
123
+ "2025-12-07 asr -1"
124
+ ],
125
+ "57.167,16.027": [
126
+ "2026-11-13 asr +1",
127
+ "2026-12-26 sunrise +1"
128
+ ],
129
+ "57.180,14.052": [
130
+ "2026-09-11 isha +1"
131
+ ],
132
+ "57.264,16.456": [
133
+ "2025-12-23 maghrib -1"
134
+ ],
135
+ "57.301,13.525": [
136
+ "2024-07-12 fajr +1"
137
+ ],
138
+ "57.345,12.133": [
139
+ "2026-10-10 maghrib +1"
140
+ ],
141
+ "57.368,13.726": [
142
+ "2024-04-07 fajr +1",
143
+ "2024-04-13 fajr +1",
144
+ "2024-04-19 fajr +1",
145
+ "2024-04-25 fajr +1",
146
+ "2025-08-15 maghrib +1"
147
+ ],
148
+ "57.401,14.668": [
149
+ "2024-07-20 fajr +1"
150
+ ],
151
+ "57.426,15.079": [
152
+ "2024-06-28 isha -1",
153
+ "2027-06-04 sunrise -1"
154
+ ],
155
+ "57.488,13.360": [
156
+ "2024-01-16 sunrise -1",
157
+ "2025-07-28 maghrib +1",
158
+ "2027-04-07 maghrib -1"
159
+ ],
160
+ "57.493,12.652": [
161
+ "2025-01-16 fajr +1",
162
+ "2025-11-18 maghrib +1",
163
+ "2026-08-15 asr +1",
164
+ "2027-08-15 maghrib +1"
165
+ ],
166
+ "57.500,15.844": [
167
+ "2027-03-25 isha -1",
168
+ "2027-08-03 isha +1"
169
+ ],
170
+ "57.501,12.093": [
171
+ "2026-08-09 fajr -1"
172
+ ],
173
+ "57.635,18.292": [
174
+ "2026-08-08 asr +1",
175
+ "2026-11-21 maghrib +1"
176
+ ],
177
+ "57.650,12.009": [
178
+ "2025-04-28 sunrise -1",
179
+ "2026-05-17 maghrib +1",
180
+ "2026-05-18 maghrib +1",
181
+ "2026-07-20 fajr -1"
182
+ ],
183
+ "57.667,15.844": [
184
+ "2024-03-22 fajr +1",
185
+ "2025-08-18 sunrise -1",
186
+ "2027-09-04 sunrise -1"
187
+ ],
188
+ "57.678,12.609": [
189
+ "2024-10-31 isha +1"
190
+ ],
191
+ "57.689,12.225": [
192
+ "2026-08-11 fajr -1",
193
+ "2026-11-25 sunrise -1"
194
+ ],
195
+ "57.695,11.652": [
196
+ "2026-08-18 fajr -1",
197
+ "2026-08-31 fajr -1",
198
+ "2027-04-06 isha -1"
199
+ ],
200
+ "57.720,11.994": [
201
+ "2026-08-08 fajr -1",
202
+ "2027-08-07 maghrib +1"
203
+ ],
204
+ "57.733,12.110": [
205
+ "2025-02-16 fajr -1"
206
+ ],
207
+ "57.760,16.630": [
208
+ "2025-06-20 asr -1"
209
+ ],
210
+ "57.767,12.280": [
211
+ "2024-11-01 maghrib +1",
212
+ "2025-04-14 fajr +1",
213
+ "2026-05-19 fajr -1"
214
+ ],
215
+ "57.796,13.415": [
216
+ "2025-05-03 maghrib +1",
217
+ "2025-09-26 sunrise -1",
218
+ "2027-04-18 sunrise +1"
219
+ ],
220
+ "57.801,12.309": [
221
+ "2024-12-31 maghrib -1",
222
+ "2027-06-29 isha -1"
223
+ ],
224
+ "58.071,11.830": [
225
+ "2024-03-10 asr -1",
226
+ "2024-06-22 fajr +1",
227
+ "2024-08-25 isha -1"
228
+ ],
229
+ "58.180,13.544": [
230
+ "2025-10-29 asr +1",
231
+ "2027-02-12 maghrib +1"
232
+ ],
233
+ "58.322,15.136": [
234
+ "2026-05-03 isha +1",
235
+ "2026-09-04 sunrise -1",
236
+ "2027-06-19 sunrise -1"
237
+ ],
238
+ "58.352,11.936": [
239
+ "2025-08-20 maghrib +1"
240
+ ],
241
+ "58.369,12.329": [
242
+ "2024-09-11 isha +1",
243
+ "2027-12-31 sunrise +1"
244
+ ],
245
+ "58.385,13.842": [
246
+ "2024-05-15 asr +1",
247
+ "2027-05-24 maghrib +1"
248
+ ],
249
+ "58.467,11.689": [
250
+ "2026-06-17 fajr -1"
251
+ ],
252
+ "58.500,13.159": [
253
+ "2024-07-28 asr +1",
254
+ "2024-08-20 maghrib +1",
255
+ "2024-08-31 isha +1",
256
+ "2025-07-04 maghrib -1",
257
+ "2027-09-10 isha +1"
258
+ ],
259
+ "58.500,15.621": [
260
+ "2026-12-02 maghrib +1",
261
+ "2027-06-08 fajr +1"
262
+ ],
263
+ "58.538,15.043": [
264
+ "2026-08-08 asr +1",
265
+ "2027-01-09 sunrise +1"
266
+ ],
267
+ "58.592,16.174": [
268
+ "2025-10-27 sunrise +1"
269
+ ],
270
+ "58.675,17.130": [
271
+ "2024-11-11 maghrib +1",
272
+ "2025-05-13 maghrib +1",
273
+ "2025-08-03 asr +1",
274
+ "2026-08-12 sunrise -1",
275
+ "2027-08-10 sunrise -1"
276
+ ],
277
+ "58.700,12.461": [
278
+ "2027-07-30 asr +1"
279
+ ],
280
+ "58.711,13.827": [
281
+ "2025-06-09 sunrise -1"
282
+ ],
283
+ "58.718,15.774": [
284
+ "2024-03-29 isha -1",
285
+ "2025-08-21 fajr -1",
286
+ "2025-09-03 fajr -1"
287
+ ],
288
+ "58.752,17.013": [
289
+ "2024-02-10 asr +1",
290
+ "2025-05-11 isha +1"
291
+ ],
292
+ "58.908,17.949": [
293
+ "2025-07-29 sunrise -1",
294
+ "2027-01-07 sunrise +1",
295
+ "2027-05-04 fajr +1"
296
+ ],
297
+ "58.943,11.170": [
298
+ "2026-01-30 isha -1",
299
+ "2026-05-30 sunrise -1",
300
+ "2027-06-24 fajr +1"
301
+ ],
302
+ "58.991,16.202": [
303
+ "2026-03-06 isha -1",
304
+ "2026-07-31 maghrib +1"
305
+ ],
306
+ "59.034,12.222": [
307
+ "2024-08-06 fajr -1"
308
+ ],
309
+ "59.058,16.589": [
310
+ "2026-05-22 sunrise -1"
311
+ ],
312
+ "59.095,17.559": [
313
+ "2025-06-05 fajr -1"
314
+ ],
315
+ "59.191,17.630": [
316
+ "2024-05-07 maghrib +1",
317
+ "2026-10-08 maghrib +1",
318
+ "2027-05-15 isha -1"
319
+ ],
320
+ "59.268,18.191": [
321
+ "2027-07-13 fajr +1",
322
+ "2027-11-29 maghrib +1"
323
+ ],
324
+ "59.277,15.211": [
325
+ "2024-05-27 fajr -1",
326
+ "2027-04-08 sunrise +1"
327
+ ],
328
+ "59.317,14.115": [
329
+ "2024-08-09 maghrib +1"
330
+ ],
331
+ "59.319,18.459": [
332
+ "2027-05-20 sunrise -1"
333
+ ],
334
+ "59.330,18.034": [
335
+ "2024-07-18 maghrib +1",
336
+ "2024-08-05 isha +1"
337
+ ],
338
+ "59.333,14.502": [
339
+ "2024-03-24 asr -1",
340
+ "2024-12-11 isha +1"
341
+ ],
342
+ "59.375,17.018": [
343
+ "2025-06-20 maghrib -1"
344
+ ],
345
+ "59.377,17.948": [
346
+ "2025-08-17 isha +1",
347
+ "2026-08-13 asr +1",
348
+ "2027-12-13 maghrib -1"
349
+ ],
350
+ "59.417,17.827": [
351
+ "2025-04-21 fajr -1",
352
+ "2025-06-30 maghrib -1",
353
+ "2026-11-29 maghrib +1",
354
+ "2027-08-02 sunrise -1"
355
+ ],
356
+ "59.514,15.989": [
357
+ "2024-06-21 asr +1",
358
+ "2027-08-24 sunrise -1"
359
+ ],
360
+ "59.542,18.073": [
361
+ "2026-06-05 sunrise -1",
362
+ "2027-05-23 asr +1",
363
+ "2027-07-26 maghrib +1"
364
+ ],
365
+ "59.584,17.494": [
366
+ "2025-08-06 isha +1"
367
+ ],
368
+ "59.601,15.230": [
369
+ "2026-03-05 fajr -1",
370
+ "2027-08-12 maghrib +1"
371
+ ],
372
+ "59.619,17.851": [
373
+ "2024-05-29 fajr -1"
374
+ ],
375
+ "59.620,16.544": [
376
+ "2024-09-23 maghrib +1",
377
+ "2025-08-24 maghrib +1",
378
+ "2026-09-16 fajr -1"
379
+ ],
380
+ "59.717,14.161": [
381
+ "2024-07-20 isha +1"
382
+ ],
383
+ "59.862,17.636": [
384
+ "2024-07-23 isha +1",
385
+ "2024-08-17 isha +1",
386
+ "2024-08-18 fajr -1",
387
+ "2024-09-14 maghrib +1",
388
+ "2026-06-24 isha -1"
389
+ ],
390
+ "59.926,16.589": [
391
+ "2026-04-30 fajr +1",
392
+ "2026-09-04 maghrib +1",
393
+ "2027-07-13 sunrise -1"
394
+ ],
395
+ "59.990,15.804": [
396
+ "2027-03-13 isha -1"
397
+ ],
398
+ "60.133,12.994": [
399
+ "2026-06-07 isha +1",
400
+ "2026-06-16 isha +1",
401
+ "2026-06-21 isha +1",
402
+ "2026-06-22 isha +1",
403
+ "2026-06-23 isha +1",
404
+ "2026-06-24 isha +1",
405
+ "2026-06-25 isha +1",
406
+ "2026-06-26 isha +1",
407
+ "2026-06-27 isha +1",
408
+ "2026-11-16 fajr -1"
409
+ ],
410
+ "60.139,15.184": [
411
+ "2024-04-09 sunrise +1",
412
+ "2026-02-19 maghrib +1"
413
+ ],
414
+ "60.154,16.175": [
415
+ "2024-12-14 fajr +1",
416
+ "2026-10-23 isha +1"
417
+ ],
418
+ "60.609,15.628": [
419
+ "2027-05-01 fajr -1",
420
+ "2027-08-01 fajr -1"
421
+ ],
422
+ "60.618,16.771": [
423
+ "2026-07-23 sunrise -1"
424
+ ],
425
+ "60.680,17.116": [
426
+ "2024-12-16 sunrise +1",
427
+ "2026-08-02 sunrise -1"
428
+ ],
429
+ "61.010,14.550": [
430
+ "2027-10-14 maghrib +1"
431
+ ],
432
+ "61.349,16.390": [
433
+ "2025-07-24 sunrise -1",
434
+ "2027-01-06 sunrise +1"
435
+ ],
436
+ "61.735,17.104": [
437
+ "2024-07-26 maghrib +1",
438
+ "2024-08-11 fajr -1",
439
+ "2025-01-01 sunrise +1",
440
+ "2026-08-27 fajr -1",
441
+ "2026-09-02 fajr -1",
442
+ "2026-09-08 fajr -1",
443
+ "2026-09-14 fajr -1"
444
+ ],
445
+ "61.833,16.091": [
446
+ "2025-09-19 sunrise -1"
447
+ ],
448
+ "62.037,14.370": [
449
+ "2027-01-09 maghrib -1",
450
+ "2027-08-11 isha +1"
451
+ ],
452
+ "62.401,17.323": [
453
+ "2025-11-16 sunrise -1",
454
+ "2027-07-27 sunrise -1"
455
+ ],
456
+ "62.930,17.785": [
457
+ "2024-07-27 sunrise -1",
458
+ "2025-08-01 fajr -1",
459
+ "2025-08-30 fajr -1",
460
+ "2025-09-12 fajr -1",
461
+ "2026-11-23 sunrise -1"
462
+ ],
463
+ "63.179,14.644": [
464
+ "2025-04-27 isha +1",
465
+ "2027-09-13 isha +1"
466
+ ],
467
+ "63.291,18.710": [
468
+ "2024-07-21 maghrib +1"
469
+ ],
470
+ "63.834,20.238": [
471
+ "2024-01-18 maghrib +1",
472
+ "2026-05-02 fajr -1"
473
+ ],
474
+ "64.751,20.945": [
475
+ "2025-05-04 asr +1",
476
+ "2026-08-07 fajr -1"
477
+ ],
478
+ "65.313,21.513": [
479
+ "2027-05-26 isha +1"
480
+ ],
481
+ "65.600,22.157": [
482
+ "2025-04-11 maghrib -1",
483
+ "2025-09-05 maghrib +1"
484
+ ],
485
+ "65.827,21.700": [
486
+ "2024-05-03 isha +1",
487
+ "2024-08-24 maghrib +1",
488
+ "2025-04-26 isha +1"
489
+ ],
490
+ "66.599,19.841": [
491
+ "2024-04-21 maghrib -1",
492
+ "2026-11-08 sunrise -1",
493
+ "2027-05-07 isha +1"
494
+ ],
495
+ "67.138,20.659": [
496
+ "2025-08-04 maghrib +1",
497
+ "2025-08-28 sunrise -1",
498
+ "2026-04-25 isha +1",
499
+ "2026-09-10 isha +1",
500
+ "2026-09-19 isha +1",
501
+ "2026-09-28 isha +1"
502
+ ],
503
+ "67.206,23.397": [
504
+ "2024-03-22 asr -1",
505
+ "2025-02-14 sunrise -1"
506
+ ],
507
+ "67.859,20.226": [
508
+ "2024-08-06 isha -1",
509
+ "2025-08-07 isha -1",
510
+ "2025-08-18 sunrise -1",
511
+ "2026-08-07 isha -1",
512
+ "2027-01-30 fajr -1",
513
+ "2027-09-23 maghrib +1"
514
+ ]
515
+ }
516
+ }
@@ -0,0 +1,4 @@
1
+ /** mihrab-methods/algeria — the algeria method with its places and correction list, and nothing else's. */
2
+ import './authorities/algeria.js';
3
+ export * from './core/index.js';
4
+ export { places } from './authorities/algeria.js';
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.places = void 0;
18
+ /** mihrab-methods/algeria — the algeria method with its places and correction list, and nothing else's. */
19
+ require("./authorities/algeria.js");
20
+ __exportStar(require("./core/index.js"), exports);
21
+ var algeria_js_1 = require("./authorities/algeria.js");
22
+ Object.defineProperty(exports, "places", { enumerable: true, get: function () { return algeria_js_1.places; } });
@@ -0,0 +1,3 @@
1
+ import type { Place } from '../core/types.js';
2
+ export declare const algeria: import("../core/registry.js").AuthorityData;
3
+ export declare const places: Place[];
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.places = exports.algeria = void 0;
7
+ /**
8
+ * Algeria — the Ministry of Religious Affairs and Wakfs: its cities at the
9
+ * points its table is computed at.
10
+ */
11
+ const algeriaCities_js_1 = __importDefault(require("../data/generated/algeriaCities.js"));
12
+ const algeriaMethodPoints_js_1 = __importDefault(require("../data/generated/algeriaMethodPoints.js"));
13
+ const algeriaCorrections_js_1 = __importDefault(require("../data/generated/algeriaCorrections.js"));
14
+ const algeriaCertification_js_1 = __importDefault(require("../data/generated/algeriaCertification.js"));
15
+ const revisions_js_1 = require("../methods/revisions.js");
16
+ const registry_js_1 = require("../core/registry.js");
17
+ const AUTHORITY = 'algeria';
18
+ function buildPlaces() {
19
+ return algeriaCities_js_1.default.map(c => {
20
+ const key = String(c.id);
21
+ return {
22
+ authority: AUTHORITY,
23
+ id: `${AUTHORITY}:${key}`,
24
+ key,
25
+ name: c.nameEn ?? c.name,
26
+ country: 'DZ',
27
+ lat: algeriaMethodPoints_js_1.default[key]?.[0] ?? c.lat,
28
+ lon: algeriaMethodPoints_js_1.default[key]?.[1] ?? c.lon,
29
+ tz: 'Africa/Algiers',
30
+ };
31
+ });
32
+ }
33
+ exports.algeria = (0, registry_js_1.registerAuthority)({
34
+ authority: AUTHORITY,
35
+ revision: revisions_js_1.METHOD_REVISION.algeria,
36
+ places: buildPlaces(),
37
+ corrections: algeriaCorrections_js_1.default,
38
+ certification: algeriaCertification_js_1.default,
39
+ description: {
40
+ name: 'Algeria — Ministry of Religious Affairs and Wakfs',
41
+ method: 'NOAA’s solar formulas; Dhuhr at the transit; every other time the transit plus or minus the hour angle, the declination taken at that prayer’s own moment and the equation of time kept at noon’s; Fajr 18°, Isha 17°, sunrise and sunset at −0.833°; Asr from the signed noon shadow; Maghrib three minutes after sunset; every time rounded up to the minute.',
42
+ countries: ['DZ'],
43
+ parameters: {
44
+ fajrAngle: 18,
45
+ ishaAngle: 17,
46
+ sunriseAltitude: -0.833,
47
+ asrShadow: 1,
48
+ asrNoonShadow: 'tan(φ − δ) with its sign',
49
+ maghribAfterSunsetMinutes: 3,
50
+ rounding: 'up to the minute',
51
+ sun: 'NOAA solar calculator series; declination iterated at each prayer, equation of time at noon',
52
+ },
53
+ sources: [{ title: 'Ministry of Religious Affairs and Wakfs — مواقيت الصلاة', url: 'https://www.marw.dz/' }],
54
+ spec: 'docs/methods.md#algeria',
55
+ },
56
+ });
57
+ exports.places = exports.algeria.places;
@@ -0,0 +1,9 @@
1
+ import type { Place } from '../core/types.js';
2
+ /** Diyanet's own country numbers → ISO 3166-1 alpha-2 (Northern Cyprus is 'CY'). */
3
+ export declare function diyanetCountry(id: string): {
4
+ name: string;
5
+ iso: string;
6
+ };
7
+ declare const places: Place[];
8
+ export declare const diyanet: import("../core/registry.js").AuthorityData;
9
+ export { places };
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.places = exports.diyanet = void 0;
7
+ exports.diyanetCountry = diyanetCountry;
8
+ /**
9
+ * Diyanet — Türkiye's districts (a point per prayer per year) and its
10
+ * places worldwide, each at the point Diyanet computes it, in the zone its
11
+ * table is printed in, with Isha's angle for its country.
12
+ */
13
+ const diyanetWorldPoints_js_1 = __importDefault(require("../data/generated/diyanetWorldPoints.js"));
14
+ const diyanetTurkeyPoints_js_1 = __importDefault(require("../data/generated/diyanetTurkeyPoints.js"));
15
+ const diyanetCountries_js_1 = __importDefault(require("../data/generated/diyanetCountries.js"));
16
+ const diyanetCorrections_js_1 = __importDefault(require("../data/generated/diyanetCorrections.js"));
17
+ const diyanetCertification_js_1 = __importDefault(require("../data/generated/diyanetCertification.js"));
18
+ const revisions_js_1 = require("../methods/revisions.js");
19
+ const registry_js_1 = require("../core/registry.js");
20
+ const AUTHORITY = 'diyanet';
21
+ /** Diyanet's own country numbers → ISO 3166-1 alpha-2 (Northern Cyprus is 'CY'). */
22
+ function diyanetCountry(id) {
23
+ return diyanetCountries_js_1.default[id] ?? { name: `Country ${id}`, iso: 'ZZ' };
24
+ }
25
+ function buildPlaces() {
26
+ const out = Object.entries(diyanetWorldPoints_js_1.default).map(([iid, v]) => ({
27
+ authority: AUTHORITY,
28
+ id: `${AUTHORITY}:${iid}`,
29
+ key: iid,
30
+ name: v.name,
31
+ country: diyanetCountry(v.country).iso,
32
+ lat: v.lat,
33
+ lon: v.lon,
34
+ tz: v.tz,
35
+ ishaDeg: v.ishaDeg,
36
+ ...(v.clock ? { clock: v.clock } : {}),
37
+ }));
38
+ // Türkiye's districts (and Northern Cyprus's), with a point per prayer per year
39
+ for (const [iid, v] of Object.entries(diyanetTurkeyPoints_js_1.default)) {
40
+ const base = v.years['2026'] ?? Object.values(v.years)[0];
41
+ out.push({
42
+ authority: AUTHORITY,
43
+ id: `${AUTHORITY}:${iid}`,
44
+ key: iid,
45
+ name: v.name,
46
+ country: v.country === '1' ? 'CY' : 'TR',
47
+ lat: base[1][0],
48
+ lon: base[1][1],
49
+ tz: v.country === '1' ? 'Asia/Nicosia' : 'Europe/Istanbul',
50
+ ishaDeg: 17,
51
+ prayerPoints: v.years,
52
+ });
53
+ }
54
+ return out;
55
+ }
56
+ const places = buildPlaces();
57
+ exports.places = places;
58
+ exports.diyanet = (0, registry_js_1.registerAuthority)({
59
+ authority: AUTHORITY,
60
+ revision: revisions_js_1.METHOD_REVISION.diyanet,
61
+ places,
62
+ corrections: diyanetCorrections_js_1.default,
63
+ certification: diyanetCertification_js_1.default,
64
+ description: {
65
+ name: 'Diyanet — Türkiye and worldwide',
66
+ method: 'The Congress method as Diyanet computes it (see Sweden), with Isha at 16° in most of Europe, Russia, Central Asia, China and North America and 17° elsewhere; in Türkiye and Northern Cyprus each prayer at a point of its own per district and year; tables printed on their own clocks where Diyanet keeps one.',
67
+ countries: [...new Set(places.map(p => p.country))].sort(),
68
+ parameters: {
69
+ fajrAngle: 18,
70
+ ishaAngle: '16 or 17, by country (Place.ishaDeg)',
71
+ sunriseAltitude: -0.833,
72
+ asrShadow: 1,
73
+ 'temkin.sunrise': -7,
74
+ 'temkin.dhuhr': 5,
75
+ 'temkin.asr': 4,
76
+ 'temkin.maghrib': 7,
77
+ minimumDayMinutes: 300,
78
+ minimumNightMinutes: 300,
79
+ transitionBandMinutes: 20,
80
+ highLatitudeRule: 'the Congress’s, worked at 16° whatever the printed Isha angle; midsummer is the takdir’s day where its true Isha falls later than the carried share',
81
+ rounding: 'to the nearest minute, after the method’s own temkin',
82
+ coordinatePrecision: '0.001°',
83
+ },
84
+ sources: [
85
+ { title: 'Diyanet — Namaz Vakitleri', url: 'https://namazvakti.diyanet.gov.tr/' },
86
+ { title: 'Diyanet — the Congress’s criteria (Tespit Kriterleri)', url: 'https://awqatsalah.com/' },
87
+ ],
88
+ spec: 'docs/methods.md#sweden-and-diyanet',
89
+ },
90
+ });