cronli5 0.2.0 → 0.3.1
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/CHANGELOG.md +90 -0
- package/README.md +4 -4
- package/cronli5.min.js +2 -2
- package/dist/cronli5.cjs +514 -407
- package/dist/cronli5.js +514 -407
- package/dist/lang/de.cjs +296 -225
- package/dist/lang/de.js +296 -225
- package/dist/lang/en.cjs +471 -364
- package/dist/lang/en.js +471 -364
- package/dist/lang/es.cjs +318 -281
- package/dist/lang/es.js +318 -281
- package/dist/lang/fi.cjs +326 -276
- package/dist/lang/fi.js +326 -276
- package/dist/lang/zh.cjs +308 -236
- package/dist/lang/zh.js +308 -236
- package/package.json +1 -1
- package/src/core/analyze.ts +22 -21
- package/src/core/cadence.ts +164 -0
- package/src/core/index.ts +3 -1
- package/src/core/normalize.ts +3 -3
- package/src/core/parse.ts +1 -1
- package/src/core/{ir.ts → schedule.ts} +23 -24
- package/src/core/shapes.ts +8 -1
- package/src/core/specs.ts +1 -1
- package/src/core/util.ts +4 -83
- package/src/core/validate.ts +2 -2
- package/src/core/weekday.ts +54 -0
- package/src/cronli5.ts +7 -7
- package/src/lang/de/index.ts +329 -288
- package/src/lang/en/dialects.ts +1 -1
- package/src/lang/en/index.ts +640 -516
- package/src/lang/es/index.ts +342 -374
- package/src/lang/es/notes.md +1 -1
- package/src/lang/fi/dialects.ts +1 -1
- package/src/lang/fi/index.ts +367 -372
- package/src/lang/fi/notes.md +23 -8
- package/src/lang/fi/status.json +1 -1
- package/src/lang/zh/index.ts +344 -262
- package/src/types.ts +6 -6
- package/types/core/analyze.d.ts +4 -4
- package/types/core/cadence.d.ts +33 -0
- package/types/core/index.d.ts +3 -1
- package/types/core/normalize.d.ts +1 -1
- package/types/core/parse.d.ts +1 -1
- package/types/core/{ir.d.ts → schedule.d.ts} +16 -21
- package/types/core/shapes.d.ts +2 -1
- package/types/core/specs.d.ts +1 -1
- package/types/core/util.d.ts +1 -15
- package/types/core/weekday.d.ts +10 -0
- package/types/lang/de/index.d.ts +1 -1
- package/types/lang/en/dialects.d.ts +1 -1
- package/types/lang/en/index.d.ts +1 -1
- package/types/lang/es/index.d.ts +1 -1
- package/types/lang/fi/dialects.d.ts +1 -1
- package/types/lang/fi/index.d.ts +1 -1
- package/types/lang/zh/index.d.ts +1 -1
- package/types/types.d.ts +5 -5
package/src/lang/fi/notes.md
CHANGED
|
@@ -97,20 +97,35 @@ first review's naturalness defects ship.
|
|
|
97
97
|
* **OR-scope (restricted-month date-OR-weekday union).** When cron ORs a
|
|
98
98
|
restricted DOM with a restricted DOW *and* the month is restricted, the
|
|
99
99
|
month and the time are shared across both arms. Render
|
|
100
|
-
**`[month] [time]
|
|
101
|
-
union, the time follows it, and the
|
|
100
|
+
**`[month] [time] <DOM> tai <DOW>`**: the month leads and scopes the
|
|
101
|
+
union, the time follows it, and the `… tai …` union comes **last** —
|
|
102
102
|
nothing trails it. A trailing month or time word mis-scopes onto only the
|
|
103
|
-
last arm (`tammikuussa keskiyöllä
|
|
104
|
-
`… tai maanantaisin tammikuussa keskiyöllä`).
|
|
105
|
-
|
|
103
|
+
last arm (`tammikuussa keskiyöllä 1. päivänä tai maanantaisin`, not
|
|
104
|
+
`… tai maanantaisin tammikuussa keskiyöllä`). The union joiner is the
|
|
105
|
+
**plain inclusive `tai`**, never the correlative `joko … tai`: Finnish
|
|
106
|
+
`joko … tai` is the EXCLUSIVE disjunction (only one of the two), which
|
|
107
|
+
destroys cron's union reading. (An earlier panel-pinned `joko … tai` form
|
|
108
|
+
was reversed once a fi native panel flagged the exclusive reading.)
|
|
106
109
|
* **Fronted-month case + day arm.** Single month → inessive (`tammikuussa`),
|
|
107
110
|
list → inessive list (`tammikuussa ja heinäkuussa`), range →
|
|
108
111
|
elative-illative (`kesäkuusta syyskuuhun`). Under a fronted month an
|
|
109
|
-
ordinary DOM drops the generic `kuukauden` (`
|
|
110
|
-
date keeps its idiom (`
|
|
112
|
+
ordinary DOM drops the generic `kuukauden` (`1. päivänä …`); a Quartz
|
|
113
|
+
date keeps its idiom (`kuukauden viimeisenä päivänä …`). The inessive
|
|
111
114
|
list also sidesteps the old genitive coordination bug — one ordinal, no
|
|
112
115
|
`tammikuun ja heinäkuun 1. päivänä`. A **wildcard-month** union is left on
|
|
113
116
|
plain `tai` (nothing to scope).
|
|
117
|
+
* **`*/2` day-of-month in a union.** An open `*/2` (or `1/2`) DOM is the
|
|
118
|
+
odd-day parity class, read as **`kuukauden parittomina päivinä`** (odd days
|
|
119
|
+
of the month, resetting each month: 1, 3, 5, …, 31), never the continuous
|
|
120
|
+
`joka toinen päivä` (which implies an unbroken 48-hour cycle across month
|
|
121
|
+
boundaries) and never its 16-date enumeration. The **standalone** `0 0 */2 * *`
|
|
122
|
+
keeps the parity-neutral cadence `joka toinen päivä`; only the union arm uses
|
|
123
|
+
the odd-day idiom. Other open steps (`*/3`, `2/2`, …) keep their cadence or
|
|
124
|
+
enumeration in a union.
|
|
125
|
+
* **Weekday arm of a union.** A Mon–Fri (`1-5`/`MON-FRI`) weekday reads as the
|
|
126
|
+
recurring class **`arkisin`** (= weekdays), parallel to the recurring date
|
|
127
|
+
arm beside it — not `maanantaista perjantaihin`, which is reserved for the
|
|
128
|
+
**standalone** weekday-only schedule.
|
|
114
129
|
* **Level reorder (anchored minute window/list + specific hours).** When the
|
|
115
130
|
minute is an anchored `kohdalla` clause for a **range** (`0–30`) or
|
|
116
131
|
multi-point **list** (`0 ja 30`) and the hour is a simple `klo`-digit list
|
|
@@ -147,7 +162,7 @@ first review's naturalness defects ship.
|
|
|
147
162
|
The English/Spanish month-range no-fold rule (June 2026) is confirmed
|
|
148
163
|
language-local: `kuukauden 1. päivänä kesäkuusta syyskuuhun` has no
|
|
149
164
|
garden path, because elative/illative marking does the work the comma
|
|
150
|
-
does in Spanish. The
|
|
165
|
+
does in Spanish. The Schedule needed nothing new.
|
|
151
166
|
|
|
152
167
|
## Dialect axes (future)
|
|
153
168
|
|
package/src/lang/fi/status.json
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"name": "Finnish",
|
|
3
3
|
"status": "beta",
|
|
4
4
|
"humanReview": null,
|
|
5
|
-
"modelReview": "blind 3-persona Sonnet panel + round-trip over the spanning set (34 patterns, 2026-06-24). Round-trip clean (meaning preserved). The compound-schedule defects that caused the earlier demotion are fixed and panel-confirmed correct: OR-scope fronts the month+time and
|
|
5
|
+
"modelReview": "blind 3-persona Sonnet panel + round-trip over the spanning set (34 patterns, 2026-06-24). Round-trip clean (meaning preserved). The compound-schedule defects that caused the earlier demotion are fixed and panel-confirmed correct: OR-scope fronts the month+time and joins the union with the inclusive 'tai', plus double-month, genitive month-list, mixed cadence, level reorder, sekä klo for range+isolated hours, and the natural Quartz nearest-weekday word order. 27/34 items at median naturalness ≥ 4; the remaining items are not fixable defects — clock-with-seconds notation klo 9.30.15 is SFS 4175-correct (a panel false-negative), and the cron OR-semantics and the kohdalla minute-anchor register are inherent limits of expressing cron precisely in Finnish (no better form than kohdalla, which was chosen over an adessive calque and matches cronstrue's human locale's intent). A later fi-native panel (2026-06) corrected the OR-day union: the earlier 'joko … tai' bracket is the EXCLUSIVE disjunction in Finnish and broke the union reading, now the plain inclusive 'tai'; '*/2' day-of-month reads as the odd-day parity class 'kuukauden parittomina päivinä' (resetting monthly) rather than the continuous 'joka toinen päivä'; and a Mon–Fri union arm reads as the recurring 'arkisin'. Fixed test-first, round-trip recovers the union.",
|
|
6
6
|
"note": "BETA — model-validated by a blind 3-persona Sonnet panel (see src/lang/fi/notes.md “Compound schedules”), round-trip-clean, with every targeted naturalness defect fixed test-first and the residuals shown to be standards-correct (SFS 4175) or inherent to cron semantics. Graduates to stable only on fluent-human review."
|
|
7
7
|
}
|