ponomar-ts 0.1.0-alpha.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/LICENSE +674 -0
- package/NOTICE.md +27 -0
- package/README.md +105 -0
- package/dist/core/calendar/jdate.d.ts +52 -0
- package/dist/core/calendar/jdate.d.ts.map +1 -0
- package/dist/core/calendar/jdate.js +151 -0
- package/dist/core/calendar/jdate.js.map +1 -0
- package/dist/core/calendar/pcalendar.d.ts +21 -0
- package/dist/core/calendar/pcalendar.d.ts.map +1 -0
- package/dist/core/calendar/pcalendar.js +33 -0
- package/dist/core/calendar/pcalendar.js.map +1 -0
- package/dist/core/dsl/eval.d.ts +10 -0
- package/dist/core/dsl/eval.d.ts.map +1 -0
- package/dist/core/dsl/eval.js +83 -0
- package/dist/core/dsl/eval.js.map +1 -0
- package/dist/core/dsl/index.d.ts +4 -0
- package/dist/core/dsl/index.d.ts.map +1 -0
- package/dist/core/dsl/index.js +4 -0
- package/dist/core/dsl/index.js.map +1 -0
- package/dist/core/dsl/lexer.d.ts +14 -0
- package/dist/core/dsl/lexer.d.ts.map +1 -0
- package/dist/core/dsl/lexer.js +121 -0
- package/dist/core/dsl/lexer.js.map +1 -0
- package/dist/core/dsl/parser.d.ts +25 -0
- package/dist/core/dsl/parser.d.ts.map +1 -0
- package/dist/core/dsl/parser.js +103 -0
- package/dist/core/dsl/parser.js.map +1 -0
- package/dist/data/divineLiturgy.d.ts +3 -0
- package/dist/data/divineLiturgy.d.ts.map +1 -0
- package/dist/data/divineLiturgy.js +80 -0
- package/dist/data/divineLiturgy.js.map +1 -0
- package/dist/data/index.d.ts +6 -0
- package/dist/data/index.d.ts.map +1 -0
- package/dist/data/index.js +8 -0
- package/dist/data/index.js.map +1 -0
- package/dist/data/menaion.d.ts +3 -0
- package/dist/data/menaion.d.ts.map +1 -0
- package/dist/data/menaion.js +18363 -0
- package/dist/data/menaion.js.map +1 -0
- package/dist/data/pentecostarion.d.ts +3 -0
- package/dist/data/pentecostarion.d.ts.map +1 -0
- package/dist/data/pentecostarion.js +4096 -0
- package/dist/data/pentecostarion.js.map +1 -0
- package/dist/data/triodion.d.ts +3 -0
- package/dist/data/triodion.d.ts.map +1 -0
- package/dist/data/triodion.js +841 -0
- package/dist/data/triodion.js.map +1 -0
- package/dist/data/types.d.ts +30 -0
- package/dist/data/types.d.ts.map +1 -0
- package/dist/data/types.js +5 -0
- package/dist/data/types.js.map +1 -0
- package/dist/engine/day.d.ts +23 -0
- package/dist/engine/day.d.ts.map +1 -0
- package/dist/engine/day.js +41 -0
- package/dist/engine/day.js.map +1 -0
- package/dist/engine/index.d.ts +20 -0
- package/dist/engine/index.d.ts.map +1 -0
- package/dist/engine/index.js +26 -0
- package/dist/engine/index.js.map +1 -0
- package/dist/engine/lookup.d.ts +7 -0
- package/dist/engine/lookup.d.ts.map +1 -0
- package/dist/engine/lookup.js +30 -0
- package/dist/engine/lookup.js.map +1 -0
- package/dist/engine/resolve.d.ts +15 -0
- package/dist/engine/resolve.d.ts.map +1 -0
- package/dist/engine/resolve.js +30 -0
- package/dist/engine/resolve.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -0
- package/dist/paschalion.d.ts +31 -0
- package/dist/paschalion.d.ts.map +1 -0
- package/dist/paschalion.js +60 -0
- package/dist/paschalion.js.map +1 -0
- package/package.json +89 -0
- package/src/core/calendar/jdate.ts +192 -0
- package/src/core/calendar/pcalendar.ts +47 -0
- package/src/core/dsl/eval.ts +94 -0
- package/src/core/dsl/index.ts +15 -0
- package/src/core/dsl/lexer.ts +121 -0
- package/src/core/dsl/parser.ts +148 -0
- package/src/data/divineLiturgy.ts +82 -0
- package/src/data/index.ts +8 -0
- package/src/data/menaion.ts +18365 -0
- package/src/data/pentecostarion.ts +4098 -0
- package/src/data/triodion.ts +843 -0
- package/src/data/types.ts +35 -0
- package/src/engine/day.ts +67 -0
- package/src/engine/index.ts +44 -0
- package/src/engine/lookup.ts +34 -0
- package/src/engine/resolve.ts +49 -0
- package/src/index.ts +17 -0
- package/src/paschalion.ts +80 -0
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
// Ported from Ponomar/StringOp.java (typiconman/ponomar) — tokenizer.
|
|
2
|
+
//
|
|
3
|
+
// The upstream Java `StringOp.eval` is a recursive text-splitting parser.
|
|
4
|
+
// This port tokenises first and then runs a Pratt parser, which yields the
|
|
5
|
+
// same semantics for well-formed expressions but tolerates arbitrary
|
|
6
|
+
// whitespace (upstream requires spaces around binary operators due to its
|
|
7
|
+
// `substring(0, n - 1)` / `substring(n + 2)` slicing).
|
|
8
|
+
export class LexError extends Error {
|
|
9
|
+
source;
|
|
10
|
+
pos;
|
|
11
|
+
constructor(message, source, pos) {
|
|
12
|
+
super(`${message} at position ${pos} in ${JSON.stringify(source)}`);
|
|
13
|
+
this.name = "LexError";
|
|
14
|
+
this.source = source;
|
|
15
|
+
this.pos = pos;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
const SINGLE = {
|
|
19
|
+
"(": "LP",
|
|
20
|
+
")": "RP",
|
|
21
|
+
"+": "PLUS",
|
|
22
|
+
"-": "MINUS",
|
|
23
|
+
"*": "STAR",
|
|
24
|
+
"/": "SLASH",
|
|
25
|
+
"%": "PERCENT",
|
|
26
|
+
};
|
|
27
|
+
export function tokenize(source) {
|
|
28
|
+
const out = [];
|
|
29
|
+
let i = 0;
|
|
30
|
+
const n = source.length;
|
|
31
|
+
while (i < n) {
|
|
32
|
+
const c = source[i];
|
|
33
|
+
if (c === " " || c === "\t" || c === "\n" || c === "\r") {
|
|
34
|
+
i++;
|
|
35
|
+
continue;
|
|
36
|
+
}
|
|
37
|
+
const start = i;
|
|
38
|
+
const two = source.slice(i, i + 2);
|
|
39
|
+
switch (two) {
|
|
40
|
+
case "==":
|
|
41
|
+
out.push({ kind: "EQ", text: two, pos: start });
|
|
42
|
+
i += 2;
|
|
43
|
+
continue;
|
|
44
|
+
case "!=":
|
|
45
|
+
out.push({ kind: "NE", text: two, pos: start });
|
|
46
|
+
i += 2;
|
|
47
|
+
continue;
|
|
48
|
+
case "<=":
|
|
49
|
+
out.push({ kind: "LE", text: two, pos: start });
|
|
50
|
+
i += 2;
|
|
51
|
+
continue;
|
|
52
|
+
case ">=":
|
|
53
|
+
out.push({ kind: "GE", text: two, pos: start });
|
|
54
|
+
i += 2;
|
|
55
|
+
continue;
|
|
56
|
+
case "&&":
|
|
57
|
+
out.push({ kind: "AND", text: two, pos: start });
|
|
58
|
+
i += 2;
|
|
59
|
+
continue;
|
|
60
|
+
case "||":
|
|
61
|
+
out.push({ kind: "OR", text: two, pos: start });
|
|
62
|
+
i += 2;
|
|
63
|
+
continue;
|
|
64
|
+
}
|
|
65
|
+
if (c === "<") {
|
|
66
|
+
out.push({ kind: "LT", text: "<", pos: start });
|
|
67
|
+
i++;
|
|
68
|
+
continue;
|
|
69
|
+
}
|
|
70
|
+
if (c === ">") {
|
|
71
|
+
out.push({ kind: "GT", text: ">", pos: start });
|
|
72
|
+
i++;
|
|
73
|
+
continue;
|
|
74
|
+
}
|
|
75
|
+
if (c === "!") {
|
|
76
|
+
out.push({ kind: "NOT", text: "!", pos: start });
|
|
77
|
+
i++;
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
const single = SINGLE[c];
|
|
81
|
+
if (single !== undefined) {
|
|
82
|
+
out.push({ kind: single, text: c, pos: start });
|
|
83
|
+
i++;
|
|
84
|
+
continue;
|
|
85
|
+
}
|
|
86
|
+
if (isDigit(c) || (c === "." && isDigit(source[i + 1] ?? ""))) {
|
|
87
|
+
let j = i;
|
|
88
|
+
while (j < n && isDigit(source[j]))
|
|
89
|
+
j++;
|
|
90
|
+
if (source[j] === ".") {
|
|
91
|
+
j++;
|
|
92
|
+
while (j < n && isDigit(source[j]))
|
|
93
|
+
j++;
|
|
94
|
+
}
|
|
95
|
+
out.push({ kind: "NUMBER", text: source.slice(i, j), pos: start });
|
|
96
|
+
i = j;
|
|
97
|
+
continue;
|
|
98
|
+
}
|
|
99
|
+
if (isIdentStart(c)) {
|
|
100
|
+
let j = i + 1;
|
|
101
|
+
while (j < n && isIdentPart(source[j]))
|
|
102
|
+
j++;
|
|
103
|
+
out.push({ kind: "IDENT", text: source.slice(i, j), pos: start });
|
|
104
|
+
i = j;
|
|
105
|
+
continue;
|
|
106
|
+
}
|
|
107
|
+
throw new LexError(`Unexpected character ${JSON.stringify(c)}`, source, i);
|
|
108
|
+
}
|
|
109
|
+
out.push({ kind: "EOF", text: "", pos: n });
|
|
110
|
+
return out;
|
|
111
|
+
}
|
|
112
|
+
function isDigit(c) {
|
|
113
|
+
return c >= "0" && c <= "9";
|
|
114
|
+
}
|
|
115
|
+
function isIdentStart(c) {
|
|
116
|
+
return (c >= "a" && c <= "z") || (c >= "A" && c <= "Z") || c === "_";
|
|
117
|
+
}
|
|
118
|
+
function isIdentPart(c) {
|
|
119
|
+
return isIdentStart(c) || isDigit(c);
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=lexer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lexer.js","sourceRoot":"","sources":["../../../src/core/dsl/lexer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export type BinaryOp = "||" | "&&" | "==" | "!=" | "<" | "<=" | ">" | ">=" | "+" | "-" | "*" | "/" | "%";
|
|
2
|
+
export type UnaryOp = "!" | "-";
|
|
3
|
+
export type Expr = {
|
|
4
|
+
readonly kind: "number";
|
|
5
|
+
readonly value: number;
|
|
6
|
+
} | {
|
|
7
|
+
readonly kind: "ident";
|
|
8
|
+
readonly name: string;
|
|
9
|
+
} | {
|
|
10
|
+
readonly kind: "unary";
|
|
11
|
+
readonly op: UnaryOp;
|
|
12
|
+
readonly operand: Expr;
|
|
13
|
+
} | {
|
|
14
|
+
readonly kind: "binary";
|
|
15
|
+
readonly op: BinaryOp;
|
|
16
|
+
readonly left: Expr;
|
|
17
|
+
readonly right: Expr;
|
|
18
|
+
};
|
|
19
|
+
export declare class ParseError extends Error {
|
|
20
|
+
readonly source: string;
|
|
21
|
+
readonly pos: number;
|
|
22
|
+
constructor(message: string, source: string, pos: number);
|
|
23
|
+
}
|
|
24
|
+
export declare function parse(source: string): Expr;
|
|
25
|
+
//# sourceMappingURL=parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/core/dsl/parser.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,QAAQ,GACjB,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,GAAG,GACH,IAAI,GACJ,GAAG,GACH,IAAI,GACJ,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,CAAC;AAEP,MAAM,MAAM,OAAO,GAAG,GAAG,GAAG,GAAG,CAAC;AAEhC,MAAM,MAAM,IAAI,GACb;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACnD;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACjD;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAA;CAAE,GACxE;IACA,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;CACpB,CAAC;AAEL,qBAAa,UAAW,SAAQ,KAAK;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;gBACT,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;CAMxD;AAoBD,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAM1C"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
// Ported from Ponomar/StringOp.java (typiconman/ponomar) — Pratt parser.
|
|
2
|
+
//
|
|
3
|
+
// Precedence (low → high) matches the upstream recursive text-splitting
|
|
4
|
+
// evaluator, which splits on operators in exactly this order:
|
|
5
|
+
// ||, &&, == / !=, < / <= / > / >=, + / -, * / / / %, unary ! / -.
|
|
6
|
+
import { tokenize } from "./lexer.js";
|
|
7
|
+
export class ParseError extends Error {
|
|
8
|
+
source;
|
|
9
|
+
pos;
|
|
10
|
+
constructor(message, source, pos) {
|
|
11
|
+
super(`${message} at position ${pos} in ${JSON.stringify(source)}`);
|
|
12
|
+
this.name = "ParseError";
|
|
13
|
+
this.source = source;
|
|
14
|
+
this.pos = pos;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
const INFIX = {
|
|
18
|
+
OR: { prec: 1, op: "||" },
|
|
19
|
+
AND: { prec: 2, op: "&&" },
|
|
20
|
+
EQ: { prec: 3, op: "==" },
|
|
21
|
+
NE: { prec: 3, op: "!=" },
|
|
22
|
+
LT: { prec: 4, op: "<" },
|
|
23
|
+
LE: { prec: 4, op: "<=" },
|
|
24
|
+
GT: { prec: 4, op: ">" },
|
|
25
|
+
GE: { prec: 4, op: ">=" },
|
|
26
|
+
PLUS: { prec: 5, op: "+" },
|
|
27
|
+
MINUS: { prec: 5, op: "-" },
|
|
28
|
+
STAR: { prec: 6, op: "*" },
|
|
29
|
+
SLASH: { prec: 6, op: "/" },
|
|
30
|
+
PERCENT: { prec: 6, op: "%" },
|
|
31
|
+
};
|
|
32
|
+
const UNARY_PREC = 7;
|
|
33
|
+
export function parse(source) {
|
|
34
|
+
const tokens = tokenize(source);
|
|
35
|
+
const p = new Parser(source, tokens);
|
|
36
|
+
const expr = p.parseExpr(0);
|
|
37
|
+
p.expect("EOF");
|
|
38
|
+
return expr;
|
|
39
|
+
}
|
|
40
|
+
class Parser {
|
|
41
|
+
i = 0;
|
|
42
|
+
source;
|
|
43
|
+
tokens;
|
|
44
|
+
constructor(source, tokens) {
|
|
45
|
+
this.source = source;
|
|
46
|
+
this.tokens = tokens;
|
|
47
|
+
}
|
|
48
|
+
parseExpr(minPrec) {
|
|
49
|
+
let left = this.parseUnary();
|
|
50
|
+
while (true) {
|
|
51
|
+
const tok = this.peek();
|
|
52
|
+
const inf = INFIX[tok.kind];
|
|
53
|
+
if (inf === undefined || inf.prec < minPrec)
|
|
54
|
+
break;
|
|
55
|
+
this.i++;
|
|
56
|
+
const right = this.parseExpr(inf.prec + 1);
|
|
57
|
+
left = { kind: "binary", op: inf.op, left, right };
|
|
58
|
+
}
|
|
59
|
+
return left;
|
|
60
|
+
}
|
|
61
|
+
parseUnary() {
|
|
62
|
+
const tok = this.peek();
|
|
63
|
+
if (tok.kind === "NOT") {
|
|
64
|
+
this.i++;
|
|
65
|
+
return { kind: "unary", op: "!", operand: this.parseExpr(UNARY_PREC) };
|
|
66
|
+
}
|
|
67
|
+
if (tok.kind === "MINUS") {
|
|
68
|
+
this.i++;
|
|
69
|
+
return { kind: "unary", op: "-", operand: this.parseExpr(UNARY_PREC) };
|
|
70
|
+
}
|
|
71
|
+
return this.parsePrimary();
|
|
72
|
+
}
|
|
73
|
+
parsePrimary() {
|
|
74
|
+
const tok = this.peek();
|
|
75
|
+
if (tok.kind === "NUMBER") {
|
|
76
|
+
this.i++;
|
|
77
|
+
return { kind: "number", value: Number(tok.text) };
|
|
78
|
+
}
|
|
79
|
+
if (tok.kind === "IDENT") {
|
|
80
|
+
this.i++;
|
|
81
|
+
return { kind: "ident", name: tok.text };
|
|
82
|
+
}
|
|
83
|
+
if (tok.kind === "LP") {
|
|
84
|
+
this.i++;
|
|
85
|
+
const inner = this.parseExpr(0);
|
|
86
|
+
this.expect("RP");
|
|
87
|
+
return inner;
|
|
88
|
+
}
|
|
89
|
+
throw new ParseError(`Expected expression, got ${tok.kind} ${JSON.stringify(tok.text)}`, this.source, tok.pos);
|
|
90
|
+
}
|
|
91
|
+
peek() {
|
|
92
|
+
return this.tokens[this.i];
|
|
93
|
+
}
|
|
94
|
+
expect(kind) {
|
|
95
|
+
const tok = this.peek();
|
|
96
|
+
if (tok.kind !== kind) {
|
|
97
|
+
throw new ParseError(`Expected ${kind}, got ${tok.kind} ${JSON.stringify(tok.text)}`, this.source, tok.pos);
|
|
98
|
+
}
|
|
99
|
+
this.i++;
|
|
100
|
+
return tok;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../src/core/dsl/parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"divineLiturgy.d.ts","sourceRoot":"","sources":["../../src/data/divineLiturgy.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,eAAO,MAAM,uBAAuB,EAAE,aAAa,CAAC,OAAO,CA2EjD,CAAC"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
// AUTO-GENERATED by scripts/codegen — DO NOT EDIT.
|
|
2
|
+
// Source: vendor/ponomar/Ponomar/languages/xml (git submodule).
|
|
3
|
+
// Regenerate with `npm run codegen`.
|
|
4
|
+
export const DIVINE_LITURGY_COMMANDS = [
|
|
5
|
+
{
|
|
6
|
+
"name": "Transfer",
|
|
7
|
+
"value": "nday >= 52 || nday < -55",
|
|
8
|
+
"cmd": "GS == 1",
|
|
9
|
+
"comment": "This determines whether the sequential readings may be skipped or transferred."
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"name": "Transfer",
|
|
13
|
+
"value": "nday >= 52 || nday < -55",
|
|
14
|
+
"cmd": "GS == 0",
|
|
15
|
+
"comment": "This determines whether the sequential readings may be skipped or transferred."
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"name": "Suppress",
|
|
19
|
+
"value": "doy == 4 && dow != 0 && dow != 6",
|
|
20
|
+
"cmd": "GS == 1",
|
|
21
|
+
"comment": "Eve of Theophany can have seq. readings on Sat. (see Table 25b, 2019) and on Sun. (see Table 24b, 2087)"
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"name": "Suppress",
|
|
25
|
+
"value": "doy == 357 && dow != 6",
|
|
26
|
+
"cmd": "GS == 1",
|
|
27
|
+
"comment": "Eve of Nativity can have seq. readings on Sat. (see Table 27a, 2084)"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"name": "Suppress",
|
|
31
|
+
"value": "(doy == 358 || doy == 5)",
|
|
32
|
+
"comment": "Nativity and Theophany never have seq. readings"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"name": "Suppress",
|
|
36
|
+
"value": "(doy == 256 || doy == 217) && dow == 0",
|
|
37
|
+
"comment": "Suppress seq. readings if Exaltation or Transfiguration falls on Sunday"
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"name": "Class3Transfers",
|
|
41
|
+
"value": "!(doy == 358 || doy == 357 || doy == 4 || doy == 5 || doy == 256 || doy == 217) && ((dRank >= 5 && dow != 0) || dRank == 8)",
|
|
42
|
+
"cmd": "GS == 1 || GS == 0"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"name": "Class3Transfers",
|
|
46
|
+
"value": "(doy == 3 && dow == 5) || (doy == 356 && dow == 5)",
|
|
47
|
+
"cmd": "GS == 1 || GS == 0",
|
|
48
|
+
"comment": "There is no Liturgy on Friday when the Royal Hours occur. The readings are moved to Thursday."
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"name": "Class3Transfers",
|
|
52
|
+
"value": "(doy == 256 || doy == 217) && dow != 0",
|
|
53
|
+
"comment": "Exaltation and Transfiguration readings are only transferred if it's not a Sunday"
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"name": "TransferRulesB",
|
|
57
|
+
"value": "dow != 0 && !(nday >= -63 && nday <= 0) && doy != 338",
|
|
58
|
+
"cmd": "GS == 1",
|
|
59
|
+
"comment": "This determines the rules used to transfer the readings to the previous day. Note that St. Nicholas's day has a special set of rules"
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"name": "TransferRulesF",
|
|
63
|
+
"value": "!(nday >= -63 && nday <= 0) && (dow == 2 && doy != 339) || ((doy == 340 && (dow != 0 && dow != 2)))",
|
|
64
|
+
"cmd": "GS == 1",
|
|
65
|
+
"comment": "This determines the rules used to transfer the readings to the next day (forwards). Note that St. Nicholas's day has a special set of rules."
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"name": "TransferRulesB",
|
|
69
|
+
"value": "dow != 0 && !(nday >= -63 && nday <= 0) && doy != 338",
|
|
70
|
+
"cmd": "GS == 0",
|
|
71
|
+
"comment": "This determines the rules used to transfer the readings to the previous day. Note that St. Nicholas's day has a special set of rules"
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"name": "TransferRulesF",
|
|
75
|
+
"value": "!(nday >= -63 && nday <= 0) && (dow == 2 && doy != 339) || ((doy == 340 && (dow != 0 && dow != 2)))",
|
|
76
|
+
"cmd": "GS == 0",
|
|
77
|
+
"comment": "This determines the rules used to transfer the readings to the next day (forwards). Note that St. Nicholas's day has a special set of rules."
|
|
78
|
+
}
|
|
79
|
+
];
|
|
80
|
+
//# sourceMappingURL=divineLiturgy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"divineLiturgy.js","sourceRoot":"","sources":["../../src/data/divineLiturgy.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,gEAAgE;AAChE,qCAAqC;AAIrC,MAAM,CAAC,MAAM,uBAAuB,GAA2B;IAC9D;QACC,MAAM,EAAE,UAAU;QAClB,OAAO,EAAE,0BAA0B;QACnC,KAAK,EAAE,SAAS;QAChB,SAAS,EAAE,gFAAgF;KAC3F;IACD;QACC,MAAM,EAAE,UAAU;QAClB,OAAO,EAAE,0BAA0B;QACnC,KAAK,EAAE,SAAS;QAChB,SAAS,EAAE,gFAAgF;KAC3F;IACD;QACC,MAAM,EAAE,UAAU;QAClB,OAAO,EAAE,kCAAkC;QAC3C,KAAK,EAAE,SAAS;QAChB,SAAS,EAAE,yGAAyG;KACpH;IACD;QACC,MAAM,EAAE,UAAU;QAClB,OAAO,EAAE,wBAAwB;QACjC,KAAK,EAAE,SAAS;QAChB,SAAS,EAAE,sEAAsE;KACjF;IACD;QACC,MAAM,EAAE,UAAU;QAClB,OAAO,EAAE,0BAA0B;QACnC,SAAS,EAAE,iDAAiD;KAC5D;IACD;QACC,MAAM,EAAE,UAAU;QAClB,OAAO,EAAE,wCAAwC;QACjD,SAAS,EAAE,yEAAyE;KACpF;IACD;QACC,MAAM,EAAE,iBAAiB;QACzB,OAAO,EAAE,6HAA6H;QACtI,KAAK,EAAE,oBAAoB;KAC3B;IACD;QACC,MAAM,EAAE,iBAAiB;QACzB,OAAO,EAAE,oDAAoD;QAC7D,KAAK,EAAE,oBAAoB;QAC3B,SAAS,EAAE,+FAA+F;KAC1G;IACD;QACC,MAAM,EAAE,iBAAiB;QACzB,OAAO,EAAE,wCAAwC;QACjD,SAAS,EAAE,mFAAmF;KAC9F;IACD;QACC,MAAM,EAAE,gBAAgB;QACxB,OAAO,EAAE,uDAAuD;QAChE,KAAK,EAAE,SAAS;QAChB,SAAS,EAAE,sIAAsI;KACjJ;IACD;QACC,MAAM,EAAE,gBAAgB;QACxB,OAAO,EAAE,sGAAsG;QAC/G,KAAK,EAAE,SAAS;QAChB,SAAS,EAAE,8IAA8I;KACzJ;IACD;QACC,MAAM,EAAE,gBAAgB;QACxB,OAAO,EAAE,uDAAuD;QAChE,KAAK,EAAE,SAAS;QAChB,SAAS,EAAE,sIAAsI;KACjJ;IACD;QACC,MAAM,EAAE,gBAAgB;QACxB,OAAO,EAAE,sGAAsG;QAC/G,KAAK,EAAE,SAAS;QAChB,SAAS,EAAE,8IAA8I;KACzJ;CACQ,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export * from "./types.ts";
|
|
2
|
+
export { PENTECOSTARION } from "./pentecostarion.ts";
|
|
3
|
+
export { TRIODION } from "./triodion.ts";
|
|
4
|
+
export { MENAION } from "./menaion.ts";
|
|
5
|
+
export { DIVINE_LITURGY_COMMANDS } from "./divineLiturgy.ts";
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/data/index.ts"],"names":[],"mappings":"AAGA,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// Barrel for generated data + shared type definitions. This file is
|
|
2
|
+
// hand-written; individual data modules alongside are auto-generated.
|
|
3
|
+
export * from "./types.js";
|
|
4
|
+
export { PENTECOSTARION } from "./pentecostarion.js";
|
|
5
|
+
export { TRIODION } from "./triodion.js";
|
|
6
|
+
export { MENAION } from "./menaion.js";
|
|
7
|
+
export { DIVINE_LITURGY_COMMANDS } from "./divineLiturgy.js";
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/data/index.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,sEAAsE;AAEtE,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menaion.d.ts","sourceRoot":"","sources":["../../src/data/menaion.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,eAAO,MAAM,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAs7jB7C,CAAC"}
|