gitsawe 0.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.
@@ -0,0 +1,242 @@
1
+ [
2
+ {
3
+ "name": "1st Week",
4
+ "amharicName": "አንደኛ ሳምንት",
5
+ "key": "1_1st_week",
6
+ "feast": "1st_tsige"
7
+ },
8
+ {
9
+ "name": "2nd Week",
10
+ "amharicName": "ኹለተኛ ሳምንት",
11
+ "key": "1_2nd_week",
12
+ "feast": "1st_tsige"
13
+ },
14
+ {
15
+ "name": "3nd Week",
16
+ "amharicName": "ሦሥተኛ ሳምንት",
17
+ "key": "1_3rd_week",
18
+ "feast": "1st_tsige"
19
+ },
20
+ {
21
+ "name": "4nd Week",
22
+ "amharicName": "አራተኛ ሳምንት",
23
+ "key": "1_4rd_week",
24
+ "feast": "1st_tsige"
25
+ },
26
+ {
27
+ "name": "5th Week",
28
+ "amharicName": "አምስተኛ ሳምንት",
29
+ "key": "1_5th_week",
30
+ "feast": "1st_tsige"
31
+ },
32
+ {
33
+ "name": "6th Week",
34
+ "amharicName": "ስድስተኛ ሳምንት",
35
+ "key": "1_6th_week",
36
+ "feast": "1st_tsige"
37
+ },
38
+ {
39
+ "name": "Sreate Negs",
40
+ "amharicName": "ሥርዓተ ነግሥ",
41
+ "key": "st_abuye_tikmt_negs",
42
+ "feast": "st_abuye_tikimt"
43
+ },
44
+ {
45
+ "name": "Sreate Wazema (Eve)",
46
+ "amharicName": "ሥርዓተ ዋዜማ",
47
+ "key": "st_aregawi_tikmt_eve",
48
+ "feast": "st_aregawi_tikimt"
49
+ },
50
+ {
51
+ "name": "Sreate Negs",
52
+ "amharicName": "ሥርዓተ ነግሥ",
53
+ "key": "st_aregawi_tikmt_negs",
54
+ "feast": "st_aregawi_tikimt"
55
+ },
56
+ {
57
+ "name": "Sreate Wazema (Eve)",
58
+ "amharicName": "ሥርዓተ ዋዜማ",
59
+ "key": "st_stephen_tikimt_eve",
60
+ "feast": "st_stephen_tikimt"
61
+ },
62
+ {
63
+ "name": "Sreate Negs",
64
+ "amharicName": "ሥርዓተ ነግሥ",
65
+ "key": "st_stephen_tikimt_negs",
66
+ "feast": "st_stephen_tikimt"
67
+ },
68
+ {
69
+ "name": "Sreate Wazema (Eve)",
70
+ "amharicName": "ሥርዓተ ዋዜማ",
71
+ "key": "st_medhanealem_tikimt_eve",
72
+ "feast": "st_medhanealem_tikimt"
73
+ },
74
+ {
75
+ "name": "Sreate Negs",
76
+ "amharicName": "ሥርዓተ ነግሥ",
77
+ "key": "st_medhanealem_tikimt_negs",
78
+ "feast": "st_medhanealem_tikimt"
79
+ },
80
+ {
81
+ "name": "Sreate Wazema (Eve)",
82
+ "amharicName": "ሥርዓተ ዋዜማ",
83
+ "key": "qusquam_hidar_eve",
84
+ "feast": "qusquam_hidar"
85
+ },
86
+ {
87
+ "name": "Sreate Negs",
88
+ "amharicName": "ሥርዓተ ነግሥ",
89
+ "key": "qusquam_hidar_negs",
90
+ "feast": "qusquam_hidar"
91
+ },
92
+ {
93
+ "name": "Sreate Wazema (Eve)",
94
+ "amharicName": "ሥርዓተ ዋዜማ",
95
+ "key": "st_georege_hidar_eve",
96
+ "feast": "st_georege_hidar"
97
+ },
98
+ {
99
+ "name": "Sreate Negs",
100
+ "amharicName": "ሥርዓተ ነግሥ",
101
+ "key": "st_georege_hidar_negs",
102
+ "feast": "st_georege_hidar"
103
+ },
104
+ {
105
+ "name": "Sreate Wazema (Eve)",
106
+ "amharicName": "ሥርዓተ ዋዜማ",
107
+ "key": "st_hanna_hidar_eve",
108
+ "feast": "st_hanna_hidar"
109
+ },
110
+ {
111
+ "name": "Sreate Negs",
112
+ "amharicName": "ሥርዓተ ነግሥ",
113
+ "key": "st_hanna_hidar_negs",
114
+ "feast": "st_hanna_hidar"
115
+ },
116
+ {
117
+ "name": "Sreate Wazema (Eve)",
118
+ "amharicName": "ሥርዓተ ዋዜማ",
119
+ "key": "st_michael_hidar_eve",
120
+ "feast": "st_michael_hidar"
121
+ },
122
+ {
123
+ "name": "Sreate Negs",
124
+ "amharicName": "ሥርዓተ ነግሥ",
125
+ "key": "st_michael_hidar_negs",
126
+ "feast": "st_michael_hidar"
127
+ },
128
+ {
129
+ "name": "Sreate Wazema (Eve)",
130
+ "amharicName": "ሥርዓተ ዋዜማ",
131
+ "key": "hidar_tsion_eve",
132
+ "feast": "hidar_tsion"
133
+ },
134
+ {
135
+ "name": "Sreate Negs",
136
+ "amharicName": "ሥርዓተ ነግሥ",
137
+ "key": "hidar_tsion_negs",
138
+ "feast": "hidar_tsion"
139
+ },
140
+ {
141
+ "name": "Sreate Wazema (Eve)",
142
+ "amharicName": "ሥርዓተ ዋዜማ",
143
+ "key": "st_merkorewos_hidar_eve",
144
+ "feast": "st_merkorewos_hidar"
145
+ },
146
+ {
147
+ "name": "Sreate Negs",
148
+ "amharicName": "ሥርዓተ ነግሥ",
149
+ "key": "st_merkorewos_hidar_negs",
150
+ "feast": "st_merkorewos_hidar"
151
+ },
152
+ {
153
+ "name": "Sreate Mahlet",
154
+ "amharicName": "ሥርዓተ ማኅሌት",
155
+ "key": "nebiy_elias_tahsas_eve",
156
+ "feast": "nebiy_elias_tahsas"
157
+ },
158
+ {
159
+ "name": "Sreate Wazema (Eve)",
160
+ "amharicName": "ሥርዓተ ዋዜማ",
161
+ "key": "beata_tahsas_eve",
162
+ "feast": "beata_tahsas"
163
+ },
164
+ {
165
+ "name": "Sreate Mahlet",
166
+ "amharicName": "ሥርዓተ ማኅሌት",
167
+ "key": "beata_tahsas_negs",
168
+ "feast": "beata_tahsas"
169
+ },
170
+ {
171
+ "name": "Sreate Mahlet",
172
+ "amharicName": "ሥርዓተ ማኅሌት",
173
+ "key": "st_arsema_tahsas_negs",
174
+ "feast": "st_arsema_tahsas"
175
+ },
176
+ {
177
+ "name": "Sreate Wazema (Eve)",
178
+ "amharicName": "ሥርዓተ ዋዜማ",
179
+ "key": "mar_samuel_tahsas_eve",
180
+ "feast": "mar_samuel_tahsas"
181
+ },
182
+ {
183
+ "name": "Sreate Mahlet",
184
+ "amharicName": "ሥርዓተ ማኅሌት",
185
+ "key": "mar_samuel_tahsas_negs",
186
+ "feast": "mar_samuel_tahsas"
187
+ },
188
+ {
189
+ "name": "Sreate Wazema (Eve)",
190
+ "amharicName": "ሥርዓተ ዋዜማ",
191
+ "key": "st_gebriel_tahsas_eve",
192
+ "feast": "st_gebriel_tahsas"
193
+ },
194
+ {
195
+ "name": "Sreate Mahlet",
196
+ "amharicName": "ሥርዓተ ማኅሌት",
197
+ "key": "st_gebriel_tahsas_negs",
198
+ "feast": "st_gebriel_tahsas"
199
+ },
200
+ {
201
+ "name": "Sreate Wazema (Eve)",
202
+ "amharicName": "ሥርዓተ ዋዜማ",
203
+ "key": "st_teklehaymanot_tahsas_eve",
204
+ "feast": "st_teklehaymanot_tahsas"
205
+ },
206
+ {
207
+ "name": "Sreate Mahlet",
208
+ "amharicName": "ሥርዓተ ማኅሌት",
209
+ "key": "st_teklehaymanot_tahsas_negs",
210
+ "feast": "st_teklehaymanot_tahsas"
211
+ },
212
+ {
213
+ "name": "Sreate Mahlet",
214
+ "amharicName": "ሥርዓተ ማኅሌት",
215
+ "key": "st_estifanos_tir_negs",
216
+ "feast": "st_estifanos_tir"
217
+ },
218
+ {
219
+ "name": "Sreate Mahlet",
220
+ "amharicName": "ሥርዓተ ማኅሌት",
221
+ "key": "astereyo_maryam_tir_negs",
222
+ "feast": "astereyo_maryam_tir"
223
+ },
224
+ {
225
+ "name": "Sreate Mahlet",
226
+ "amharicName": "ሥርዓተ ማኅሌት",
227
+ "key": "easter_sub_feast",
228
+ "feast": "easter"
229
+ },
230
+ {
231
+ "name": "Sreate Wazema (Eve)",
232
+ "amharicName": "ሥርዓተ ዋዜማ",
233
+ "key": "stGeorge_miyazya_eve",
234
+ "feast": "miyazya_stGeorge"
235
+ },
236
+ {
237
+ "name": "Sreate Negs",
238
+ "amharicName": "ሥርዓተ ነግሥ",
239
+ "key": "stGeorge_miyazya_negs",
240
+ "feast": "miyazya_stGeorge"
241
+ }
242
+ ]
@@ -0,0 +1,19 @@
1
+ import type { Feast, GitsaweEntry, GitsaweFindOptions, Mahlet, Month, PackageEntry, SubFeast } from "./types";
2
+ export declare const dailyGitsawe: GitsaweEntry[];
3
+ export declare const seasonalGitsawe: GitsaweEntry[];
4
+ export declare const monthlyGitsawe: GitsaweEntry[];
5
+ export declare const months: Month[];
6
+ export declare const feasts: Feast[];
7
+ export declare const subFeasts: SubFeast[];
8
+ export declare const mahlets: Mahlet[];
9
+ export declare const packages: PackageEntry[];
10
+ export declare const gitsaweData: GitsaweEntry[];
11
+ export declare function toGitsaweDateKey(date: Date): string | undefined;
12
+ export declare const Gitsawe: {
13
+ daily: GitsaweEntry[];
14
+ seasonal: GitsaweEntry[];
15
+ monthly: GitsaweEntry[];
16
+ all: GitsaweEntry[];
17
+ find(options?: GitsaweFindOptions): GitsaweEntry[];
18
+ };
19
+ export * from "./types";
package/dist/index.js ADDED
@@ -0,0 +1,112 @@
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
17
+ return (mod && mod.__esModule) ? mod : { "default": mod };
18
+ };
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ exports.Gitsawe = exports.gitsaweData = exports.packages = exports.mahlets = exports.subFeasts = exports.feasts = exports.months = exports.monthlyGitsawe = exports.seasonalGitsawe = exports.dailyGitsawe = void 0;
21
+ exports.toGitsaweDateKey = toGitsaweDateKey;
22
+ const daily_gitsawe_json_1 = __importDefault(require("../data/daily-gitsawe.json"));
23
+ const seasonal_gitsawe_json_1 = __importDefault(require("../data/seasonal-gitsawe.json"));
24
+ const monthly_gitsawe_json_1 = __importDefault(require("../data/monthly-gitsawe.json"));
25
+ const months_json_1 = __importDefault(require("../data/months.json"));
26
+ const feasts_json_1 = __importDefault(require("../data/feasts.json"));
27
+ const sub_feasts_json_1 = __importDefault(require("../data/sub-feasts.json"));
28
+ const mahlets_json_1 = __importDefault(require("../data/mahlets.json"));
29
+ const packages_json_1 = __importDefault(require("../data/packages.json"));
30
+ exports.dailyGitsawe = daily_gitsawe_json_1.default;
31
+ exports.seasonalGitsawe = seasonal_gitsawe_json_1.default;
32
+ exports.monthlyGitsawe = monthly_gitsawe_json_1.default;
33
+ exports.months = months_json_1.default;
34
+ exports.feasts = feasts_json_1.default;
35
+ exports.subFeasts = sub_feasts_json_1.default;
36
+ exports.mahlets = mahlets_json_1.default;
37
+ exports.packages = packages_json_1.default;
38
+ exports.gitsaweData = [
39
+ ...exports.dailyGitsawe,
40
+ ...exports.seasonalGitsawe,
41
+ ...exports.monthlyGitsawe,
42
+ ];
43
+ function padDatePart(value) {
44
+ return String(value).padStart(2, "0");
45
+ }
46
+ function gregorianToJulianDayNumber(year, month, day) {
47
+ const calendarOffset = Math.floor((14 - month) / 12);
48
+ const adjustedYear = year + 4800 - calendarOffset;
49
+ const adjustedMonth = month + 12 * calendarOffset - 3;
50
+ return (day +
51
+ Math.floor((153 * adjustedMonth + 2) / 5) +
52
+ 365 * adjustedYear +
53
+ Math.floor(adjustedYear / 4) -
54
+ Math.floor(adjustedYear / 100) +
55
+ Math.floor(adjustedYear / 400) -
56
+ 32045);
57
+ }
58
+ function ethiopianToJulianDayNumber(year, month, day) {
59
+ return 1724221 + 365 * (year - 1) + Math.floor((year - 1) / 4) + 30 * month + day - 31;
60
+ }
61
+ function julianDayNumberToEthiopian(julianDayNumber) {
62
+ const year = Math.floor((4 * (julianDayNumber - 1724221) + 1463) / 1461);
63
+ const month = Math.floor((julianDayNumber - ethiopianToJulianDayNumber(year, 1, 1)) / 30) + 1;
64
+ const day = julianDayNumber + 1 - ethiopianToJulianDayNumber(year, month, 1);
65
+ return { month, day };
66
+ }
67
+ function toGitsaweDateKey(date) {
68
+ if (Number.isNaN(date.getTime())) {
69
+ return undefined;
70
+ }
71
+ const julianDayNumber = gregorianToJulianDayNumber(date.getFullYear(), date.getMonth() + 1, date.getDate());
72
+ const ethiopianDate = julianDayNumberToEthiopian(julianDayNumber);
73
+ return `${padDatePart(ethiopianDate.day)}-${padDatePart(ethiopianDate.month)}`;
74
+ }
75
+ function getGitsaweCollection(type) {
76
+ switch (type) {
77
+ case "daily":
78
+ return exports.dailyGitsawe;
79
+ case "seasonal":
80
+ return exports.seasonalGitsawe;
81
+ case "monthly":
82
+ return exports.monthlyGitsawe;
83
+ case "all":
84
+ case undefined:
85
+ return exports.gitsaweData;
86
+ }
87
+ }
88
+ function normalizeGitsaweDateKey(date) {
89
+ if (date === undefined) {
90
+ return undefined;
91
+ }
92
+ if (typeof date === "string") {
93
+ return date;
94
+ }
95
+ return toGitsaweDateKey(date);
96
+ }
97
+ exports.Gitsawe = {
98
+ daily: exports.dailyGitsawe,
99
+ seasonal: exports.seasonalGitsawe,
100
+ monthly: exports.monthlyGitsawe,
101
+ all: exports.gitsaweData,
102
+ find(options = {}) {
103
+ const dateKey = normalizeGitsaweDateKey(options.date);
104
+ if (options.date !== undefined && dateKey === undefined) {
105
+ return [];
106
+ }
107
+ return getGitsaweCollection(options.type).filter((entry) => {
108
+ return dateKey === undefined || entry.date === dateKey;
109
+ });
110
+ },
111
+ };
112
+ __exportStar(require("./types"), exports);
@@ -0,0 +1,85 @@
1
+ export type LocalizedText = {
2
+ geez?: string;
3
+ amharic?: string;
4
+ english?: string;
5
+ };
6
+ export type VerseReference = {
7
+ bookTitle: string;
8
+ chapter?: number | string;
9
+ start?: number | string;
10
+ end?: number | string;
11
+ endText?: string;
12
+ };
13
+ export type Reading = {
14
+ text: LocalizedText;
15
+ verse: VerseReference;
16
+ zema?: {
17
+ fileId: string;
18
+ fileType: string;
19
+ key: string;
20
+ }[];
21
+ };
22
+ export type GitsaweEntry = {
23
+ date: string;
24
+ title: string;
25
+ mezmur?: string;
26
+ snksar?: LocalizedText[];
27
+ negh?: {
28
+ msbak?: Reading[];
29
+ wengel?: Reading[];
30
+ };
31
+ kidassie?: {
32
+ msbak?: Reading[];
33
+ firstDeacon?: Reading[];
34
+ secondDeacon?: Reading[];
35
+ secondKahn?: Reading[];
36
+ wengel?: Reading[];
37
+ kidassie?: string[];
38
+ };
39
+ himamat?: {
40
+ verses?: VerseReference[];
41
+ msbak?: Reading[];
42
+ }[];
43
+ };
44
+ export type GitsaweType = "daily" | "seasonal" | "monthly" | "all";
45
+ export type GitsaweFindOptions = {
46
+ type?: GitsaweType;
47
+ date?: string | Date;
48
+ };
49
+ export type Month = {
50
+ name: string;
51
+ amharicName: string;
52
+ key: string;
53
+ };
54
+ export type Feast = {
55
+ name: string;
56
+ amharicName: string;
57
+ key: string;
58
+ month: string;
59
+ date?: string;
60
+ };
61
+ export type SubFeast = {
62
+ name: string;
63
+ amharicName: string;
64
+ key: string;
65
+ feast: string;
66
+ };
67
+ export type Mahlet = {
68
+ date?: string;
69
+ title: string;
70
+ detail: {
71
+ key: string;
72
+ verse: string;
73
+ }[];
74
+ source?: string;
75
+ subFeast: string;
76
+ };
77
+ export type PackageEntry = {
78
+ _id?: string;
79
+ createdAt?: string;
80
+ name: {
81
+ am: string;
82
+ en: string;
83
+ };
84
+ key: string;
85
+ };
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
package/package.json ADDED
@@ -0,0 +1,35 @@
1
+ {
2
+ "name": "gitsawe",
3
+ "version": "0.1.0",
4
+ "description": "Open JSON data for Gitsawe readings, feasts, sub-feasts, months, mahlets, and packages.",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "bin": {
8
+ "gitsawe": "bin/gitsawe.js"
9
+ },
10
+ "files": [
11
+ "bin",
12
+ "data",
13
+ "dist",
14
+ "schemas",
15
+ "README.md",
16
+ "LICENSE"
17
+ ],
18
+ "scripts": {
19
+ "build": "tsc -p tsconfig.json",
20
+ "test": "node test/validate.cjs && npm run build && node test/api.cjs && node test/bin.cjs"
21
+ },
22
+ "keywords": [
23
+ "gitsawe",
24
+ "ethiopian-orthodox",
25
+ "geez",
26
+ "amharic",
27
+ "json",
28
+ "open-data"
29
+ ],
30
+ "author": "BereketeAb",
31
+ "license": "MIT",
32
+ "devDependencies": {
33
+ "typescript": "^5.5.4"
34
+ }
35
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "title": "Feasts",
4
+ "type": "array",
5
+ "items": {
6
+ "type": "object",
7
+ "required": [
8
+ "name",
9
+ "amharicName",
10
+ "key",
11
+ "month"
12
+ ],
13
+ "additionalProperties": true
14
+ }
15
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "title": "Gitsawe entries",
4
+ "type": "array",
5
+ "items": {
6
+ "type": "object",
7
+ "required": [
8
+ "date",
9
+ "title"
10
+ ],
11
+ "additionalProperties": true
12
+ }
13
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "title": "Mahlets",
4
+ "type": "array",
5
+ "items": {
6
+ "type": "object",
7
+ "required": [
8
+ "title",
9
+ "detail",
10
+ "subFeast"
11
+ ],
12
+ "additionalProperties": true
13
+ }
14
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "title": "Months",
4
+ "type": "array",
5
+ "items": {
6
+ "type": "object",
7
+ "required": [
8
+ "name",
9
+ "amharicName",
10
+ "key"
11
+ ],
12
+ "additionalProperties": true
13
+ }
14
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "title": "Packages",
4
+ "type": "array",
5
+ "items": {
6
+ "type": "object",
7
+ "required": [
8
+ "name",
9
+ "key"
10
+ ],
11
+ "additionalProperties": true
12
+ }
13
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "title": "Sub-feasts",
4
+ "type": "array",
5
+ "items": {
6
+ "type": "object",
7
+ "required": [
8
+ "name",
9
+ "amharicName",
10
+ "key",
11
+ "feast"
12
+ ],
13
+ "additionalProperties": true
14
+ }
15
+ }