mihrab-methods 1.0.2 → 1.1.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.
- package/README.md +23 -6
- package/certification.json +22 -22
- package/data/corrections/indonesia.json +721 -28
- package/data/corrections/morocco.json +201 -914
- package/dist/cjs/authorities/morocco.js +7 -6
- package/dist/cjs/core/compute.js +1 -1
- package/dist/cjs/data/generated/algeriaCertification.js +1 -1
- package/dist/cjs/data/generated/diyanetCertification.js +1 -1
- package/dist/cjs/data/generated/diyanetWorldPoints.js +1 -1
- package/dist/cjs/data/generated/indonesiaCertification.js +1 -1
- package/dist/cjs/data/generated/indonesiaCorrections.js +1 -1
- package/dist/cjs/data/generated/moroccoCertification.js +1 -1
- package/dist/cjs/data/generated/moroccoCorrections.js +1 -1
- package/dist/cjs/data/generated/moroccoMethodPoints.js +1 -1
- package/dist/cjs/data/generated/swedenCertification.js +1 -1
- package/dist/cjs/methods/morocco.d.ts +43 -20
- package/dist/cjs/methods/morocco.js +59 -25
- package/dist/cjs/methods/revisions.d.ts +1 -1
- package/dist/cjs/methods/revisions.js +1 -1
- package/dist/cjs/server.d.ts +12 -0
- package/dist/cjs/server.js +132 -0
- package/dist/esm/authorities/morocco.js +7 -6
- package/dist/esm/core/compute.js +1 -1
- package/dist/esm/data/generated/algeriaCertification.js +1 -1
- package/dist/esm/data/generated/diyanetCertification.js +1 -1
- package/dist/esm/data/generated/diyanetWorldPoints.js +1 -1
- package/dist/esm/data/generated/indonesiaCertification.js +1 -1
- package/dist/esm/data/generated/indonesiaCorrections.js +1 -1
- package/dist/esm/data/generated/moroccoCertification.js +1 -1
- package/dist/esm/data/generated/moroccoCorrections.js +1 -1
- package/dist/esm/data/generated/moroccoMethodPoints.js +1 -1
- package/dist/esm/data/generated/swedenCertification.js +1 -1
- package/dist/esm/methods/morocco.d.ts +43 -20
- package/dist/esm/methods/morocco.js +54 -24
- package/dist/esm/methods/revisions.d.ts +1 -1
- package/dist/esm/methods/revisions.js +1 -1
- package/dist/esm/server.d.ts +12 -0
- package/dist/esm/server.js +126 -0
- package/docs/methods.md +24 -8
- package/package.json +3 -1
- package/dist/cjs/methods/scratch-congress.d.ts +0 -87
- package/dist/cjs/methods/scratch-congress.js +0 -539
- package/dist/esm/methods/scratch-congress.d.ts +0 -87
- package/dist/esm/methods/scratch-congress.js +0 -534
package/README.md
CHANGED
|
@@ -2,12 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/mihrab-methods)
|
|
4
4
|
[](https://github.com/MihrabHQ/mihrab-methods/actions/workflows/ci.yml)
|
|
5
|
+
[](https://github.com/MihrabHQ/mihrab-methods/actions/workflows/feed.yml)
|
|
6
|
+
[](#usage)
|
|
5
7
|
[](#how-verification-works)
|
|
6
8
|
|
|
7
9
|
**Prayer times that match the published timetable to the printed minute.**
|
|
8
10
|
Each national authority's own calculation method, worked out again from its
|
|
9
11
|
published times and checked day by day against its timetables: <!--fig:total.off-->0<!--/fig--> of
|
|
10
|
-
<!--fig:total.times-->
|
|
12
|
+
<!--fig:total.times-->72,013,209<!--/fig--> times off the printed minute. Free for any app, site or
|
|
11
13
|
mosque to use.
|
|
12
14
|
|
|
13
15
|
```sh
|
|
@@ -33,14 +35,14 @@ The full API, the HTTP server and the per-authority imports are in
|
|
|
33
35
|
<!-- certification-table:start -->
|
|
34
36
|
| Authority | Tables matched | Places | Times checked | Off the printed minute | By the method alone | Correction entries | Checked over |
|
|
35
37
|
|---|---|---:|---:|---:|---:|---:|---|
|
|
36
|
-
| **Sweden** | Islamiska Förbundet’s tables | 107 |
|
|
38
|
+
| **Sweden** | Islamiska Förbundet’s tables | 107 | 61,344 | **0** | 99.967 % | 270 | 11 Oct 2026 → 7 Dec 2027 |
|
|
37
39
|
| | Diyanet’s own tables | 159 | 1,393,794 | **0** | 99.981 % | | 1 Jan 2024 → 31 Dec 2027 |
|
|
38
40
|
| **Diyanet** | its tables worldwide | 8,132 | 69,999,603 | **0** | 99.986 % | 9,118 | 1 Jan 2024 → 31 Dec 2027 |
|
|
39
|
-
| **Morocco** | Habous | 164 |
|
|
41
|
+
| **Morocco** | Habous | 164 | 94,350 | **0** | 99.879 % | 114 | 27 Aug 2026 → 30 Nov 2026 |
|
|
40
42
|
| **Algeria** | Ministry of Religious Affairs | 68 | 101,184 | **0** | 99.365 % | 642 | 1 Oct 2026 → 5 Jun 2027 |
|
|
41
|
-
| **Indonesia** | Kemenag | 517 |
|
|
43
|
+
| **Indonesia** | Kemenag | 517 | 362,934 | **0** | 99.888 % | 405 | 7 Oct 2026 → 31 Jan 2027 |
|
|
42
44
|
|
|
43
|
-
5 of 5 methods certified; 0 of
|
|
45
|
+
5 of 5 methods certified; 0 of 72,013,209 times off the printed minute. Last checked 4 November 2026. Generated from [`certification.json`](certification.json) by `scripts/readme.mjs`.
|
|
44
46
|
<!-- certification-table:end -->
|
|
45
47
|
|
|
46
48
|
"By the method alone" is the formula without its correction list. The list
|
|
@@ -64,7 +66,9 @@ minute either way. Why that can be used freely is in
|
|
|
64
66
|
3. **The record.** [`tools/certify.ts`](tools/certify.ts) writes
|
|
65
67
|
[`certification.json`](certification.json): per authority, the tables
|
|
66
68
|
checked, the times, how many are off with and without the correction
|
|
67
|
-
list, the dates, the method's revision and the list's SHA-256.
|
|
69
|
+
list, the dates, the method's revision and the list's SHA-256. The
|
|
70
|
+
tables are checked again whenever they change and every week, and each
|
|
71
|
+
check that finds a method still at 0 off dates its entry anew.
|
|
68
72
|
4. **The gate.** A method is certified only at **0** off. `timesFor` refuses
|
|
69
73
|
an uncertified method, and says `'method-only'` for a date past the
|
|
70
74
|
checked span. Every number on this page, on the Mihrab website and in its
|
|
@@ -90,6 +94,19 @@ It takes a list only for the revision the build computes, only when it is
|
|
|
90
94
|
the list the record names, and only when its SHA-256 matches. Schemas, tags
|
|
91
95
|
as fixed addresses and the details: [docs/feed.md](docs/feed.md).
|
|
92
96
|
|
|
97
|
+
## Usage
|
|
98
|
+
|
|
99
|
+
<!-- usage:start -->
|
|
100
|
+

|
|
101
|
+
|
|
102
|
+
| | Last 7 days | Last 30 days | Since the first release |
|
|
103
|
+
|---|---:|---:|---:|
|
|
104
|
+
| npm downloads | 66 | 735 | 735 |
|
|
105
|
+
| API requests | — | — | not deployed yet |
|
|
106
|
+
|
|
107
|
+
Counts only, to 2026-11-03, updated weekly (`scripts/stats.mjs`, history in [docs/stats.json](docs/stats.json)): npm's public download counts — every install counts, CI and mirrors included — and Cloudflare's request counts for the API. No addresses, queries or places are recorded anywhere.
|
|
108
|
+
<!-- usage:end -->
|
|
109
|
+
|
|
93
110
|
## More
|
|
94
111
|
|
|
95
112
|
| | |
|
package/certification.json
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"sweden": {
|
|
3
3
|
"certified": true,
|
|
4
|
-
"checkedAt": "2026-
|
|
4
|
+
"checkedAt": "2026-11-04",
|
|
5
5
|
"places": 108,
|
|
6
6
|
"checks": [
|
|
7
7
|
{
|
|
8
8
|
"tables": "Sweden — Islamiska Förbundet’s tables",
|
|
9
9
|
"places": 107,
|
|
10
|
-
"times":
|
|
10
|
+
"times": 61344,
|
|
11
11
|
"off": 0,
|
|
12
12
|
"offWithoutCorrections": 20,
|
|
13
13
|
"from": "2026-10-11",
|
|
14
|
-
"to": "2027-
|
|
14
|
+
"to": "2027-12-07",
|
|
15
15
|
"setAside": {
|
|
16
16
|
"misplaced": [],
|
|
17
|
-
"sourceFaults":
|
|
18
|
-
"copiedRows":
|
|
17
|
+
"sourceFaults": 35037,
|
|
18
|
+
"copiedRows": 682
|
|
19
19
|
}
|
|
20
20
|
},
|
|
21
21
|
{
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
},
|
|
39
39
|
"diyanet": {
|
|
40
40
|
"certified": true,
|
|
41
|
-
"checkedAt": "2026-
|
|
41
|
+
"checkedAt": "2026-11-04",
|
|
42
42
|
"places": 8132,
|
|
43
43
|
"checks": [
|
|
44
44
|
{
|
|
@@ -61,30 +61,30 @@
|
|
|
61
61
|
},
|
|
62
62
|
"morocco": {
|
|
63
63
|
"certified": true,
|
|
64
|
-
"checkedAt": "2026-
|
|
64
|
+
"checkedAt": "2026-11-04",
|
|
65
65
|
"places": 164,
|
|
66
66
|
"checks": [
|
|
67
67
|
{
|
|
68
68
|
"tables": "Morocco — Habous",
|
|
69
69
|
"places": 164,
|
|
70
|
-
"times":
|
|
70
|
+
"times": 94350,
|
|
71
71
|
"off": 0,
|
|
72
|
-
"offWithoutCorrections":
|
|
72
|
+
"offWithoutCorrections": 114,
|
|
73
73
|
"from": "2026-08-27",
|
|
74
|
-
"to": "2026-11-
|
|
74
|
+
"to": "2026-11-30"
|
|
75
75
|
}
|
|
76
76
|
],
|
|
77
77
|
"corrections": {
|
|
78
78
|
"from": "2026-08-27",
|
|
79
|
-
"to": "2026-11-
|
|
80
|
-
"entries":
|
|
81
|
-
"sha256": "
|
|
79
|
+
"to": "2026-11-30",
|
|
80
|
+
"entries": 114,
|
|
81
|
+
"sha256": "2ae7161a7164f7ccebf1aa9f81628a810ce8fdd337e0645907e6c58d0be6aae9"
|
|
82
82
|
},
|
|
83
|
-
"revision":
|
|
83
|
+
"revision": 2
|
|
84
84
|
},
|
|
85
85
|
"algeria": {
|
|
86
86
|
"certified": true,
|
|
87
|
-
"checkedAt": "2026-
|
|
87
|
+
"checkedAt": "2026-11-04",
|
|
88
88
|
"places": 68,
|
|
89
89
|
"checks": [
|
|
90
90
|
{
|
|
@@ -107,24 +107,24 @@
|
|
|
107
107
|
},
|
|
108
108
|
"indonesia": {
|
|
109
109
|
"certified": true,
|
|
110
|
-
"checkedAt": "2026-
|
|
110
|
+
"checkedAt": "2026-11-04",
|
|
111
111
|
"places": 517,
|
|
112
112
|
"checks": [
|
|
113
113
|
{
|
|
114
114
|
"tables": "Indonesia — Kemenag",
|
|
115
115
|
"places": 517,
|
|
116
|
-
"times":
|
|
116
|
+
"times": 362934,
|
|
117
117
|
"off": 0,
|
|
118
|
-
"offWithoutCorrections":
|
|
118
|
+
"offWithoutCorrections": 405,
|
|
119
119
|
"from": "2026-10-07",
|
|
120
|
-
"to": "
|
|
120
|
+
"to": "2027-01-31"
|
|
121
121
|
}
|
|
122
122
|
],
|
|
123
123
|
"corrections": {
|
|
124
124
|
"from": "2026-10-07",
|
|
125
|
-
"to": "
|
|
126
|
-
"entries":
|
|
127
|
-
"sha256": "
|
|
125
|
+
"to": "2027-01-31",
|
|
126
|
+
"entries": 405,
|
|
127
|
+
"sha256": "5d9dc4703832e0ae850aff0af79a6d2436e013f5e1e2203ace41c6e05b36978d"
|
|
128
128
|
},
|
|
129
129
|
"revision": 1
|
|
130
130
|
}
|