deploy: v0.12 fix 存档key名

This commit is contained in:
2026-06-24 03:09:02 +00:00
parent 7a08d49fe3
commit e0a5281119
58743 changed files with 7297269 additions and 39505 deletions
+1
View File
@@ -0,0 +1 @@
export declare function addMonths(date: Date, amount: number): Date;
+15
View File
@@ -0,0 +1,15 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.addMonths = addMonths;
const dateConversion_js_1 = require("../utils/dateConversion.js");
const serial_js_1 = require("../utils/serial.js");
function addMonths(date, amount) {
if (amount === 0) {
return new Date(date.getTime());
}
const hebrew = (0, dateConversion_js_1.toHebrewDate)(date);
const targetIndex = (0, serial_js_1.monthsSinceEpoch)(hebrew) + amount;
const target = (0, serial_js_1.monthIndexToHebrewDate)(targetIndex, hebrew.day);
const day = (0, serial_js_1.clampHebrewDay)(target.year, target.monthIndex, target.day);
return (0, dateConversion_js_1.toGregorianDate)({ ...target, day });
}
+1
View File
@@ -0,0 +1 @@
export declare function addYears(date: Date, amount: number): Date;
+12
View File
@@ -0,0 +1,12 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.addYears = addYears;
const dateConversion_js_1 = require("../utils/dateConversion.js");
const setYear_js_1 = require("./setYear.js");
function addYears(date, amount) {
if (amount === 0) {
return new Date(date.getTime());
}
const hebrew = (0, dateConversion_js_1.toHebrewDate)(date);
return (0, setYear_js_1.setYear)(date, hebrew.year + amount);
}
@@ -0,0 +1 @@
export declare function differenceInCalendarMonths(dateLeft: Date, dateRight: Date): number;
@@ -0,0 +1,10 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.differenceInCalendarMonths = differenceInCalendarMonths;
const dateConversion_js_1 = require("../utils/dateConversion.js");
const serial_js_1 = require("../utils/serial.js");
function differenceInCalendarMonths(dateLeft, dateRight) {
const left = (0, dateConversion_js_1.toHebrewDate)(dateLeft);
const right = (0, dateConversion_js_1.toHebrewDate)(dateRight);
return (0, serial_js_1.monthsSinceEpoch)(left) - (0, serial_js_1.monthsSinceEpoch)(right);
}
@@ -0,0 +1,2 @@
import { type Interval } from "date-fns";
export declare function eachMonthOfInterval(interval: Interval): Date[];
@@ -0,0 +1,23 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.eachMonthOfInterval = eachMonthOfInterval;
const date_fns_1 = require("date-fns");
const dateConversion_js_1 = require("../utils/dateConversion.js");
const serial_js_1 = require("../utils/serial.js");
function eachMonthOfInterval(interval) {
const startDate = (0, date_fns_1.toDate)(interval.start);
const endDate = (0, date_fns_1.toDate)(interval.end);
if (endDate.getTime() < startDate.getTime()) {
return [];
}
const startHebrew = (0, dateConversion_js_1.toHebrewDate)(startDate);
const endHebrew = (0, dateConversion_js_1.toHebrewDate)(endDate);
const startIndex = (0, serial_js_1.monthsSinceEpoch)(startHebrew);
const endIndex = (0, serial_js_1.monthsSinceEpoch)(endHebrew);
const months = [];
for (let index = startIndex; index <= endIndex; index += 1) {
const hebrew = (0, serial_js_1.monthIndexToHebrewDate)(index, 1);
months.push((0, dateConversion_js_1.toGregorianDate)(hebrew));
}
return months;
}
@@ -0,0 +1,2 @@
import { type Interval } from "date-fns";
export declare function eachYearOfInterval(interval: Interval): Date[];
@@ -0,0 +1,19 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.eachYearOfInterval = eachYearOfInterval;
const date_fns_1 = require("date-fns");
const dateConversion_js_1 = require("../utils/dateConversion.js");
function eachYearOfInterval(interval) {
const start = (0, date_fns_1.toDate)(interval.start);
const end = (0, date_fns_1.toDate)(interval.end);
if (end.getTime() < start.getTime()) {
return [];
}
const startYear = (0, dateConversion_js_1.toHebrewDate)(start).year;
const endYear = (0, dateConversion_js_1.toHebrewDate)(end).year;
const years = [];
for (let year = startYear; year <= endYear; year += 1) {
years.push((0, dateConversion_js_1.toGregorianDate)({ year, monthIndex: 0, day: 1 }));
}
return years;
}
+1
View File
@@ -0,0 +1 @@
export declare function endOfMonth(date: Date): Date;
+10
View File
@@ -0,0 +1,10 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.endOfMonth = endOfMonth;
const calendarMath_js_1 = require("../utils/calendarMath.js");
const dateConversion_js_1 = require("../utils/dateConversion.js");
function endOfMonth(date) {
const hebrew = (0, dateConversion_js_1.toHebrewDate)(date);
const day = (0, calendarMath_js_1.daysInHebrewMonth)(hebrew.year, hebrew.monthIndex);
return (0, dateConversion_js_1.toGregorianDate)({ ...hebrew, day });
}
+1
View File
@@ -0,0 +1 @@
export declare function endOfYear(date: Date): Date;
+11
View File
@@ -0,0 +1,11 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.endOfYear = endOfYear;
const calendarMath_js_1 = require("../utils/calendarMath.js");
const dateConversion_js_1 = require("../utils/dateConversion.js");
function endOfYear(date) {
const hebrew = (0, dateConversion_js_1.toHebrewDate)(date);
const lastMonth = (0, calendarMath_js_1.monthsInHebrewYear)(hebrew.year) - 1;
const day = (0, calendarMath_js_1.daysInHebrewMonth)(hebrew.year, lastMonth);
return (0, dateConversion_js_1.toGregorianDate)({ year: hebrew.year, monthIndex: lastMonth, day });
}
@@ -0,0 +1 @@
export declare function findMonthIndexByCode(year: number, preferredCode: string): number;
@@ -0,0 +1,13 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.findMonthIndexByCode = findMonthIndexByCode;
const calendarMath_js_1 = require("../utils/calendarMath.js");
function findMonthIndexByCode(year, preferredCode) {
const monthsCount = (0, calendarMath_js_1.monthsInHebrewYear)(year);
for (let index = 0; index < monthsCount; index += 1) {
if ((0, calendarMath_js_1.getMonthCode)(year, index) === preferredCode) {
return index;
}
}
return -1;
}
+3
View File
@@ -0,0 +1,3 @@
import type { FormatOptions as DateFnsFormatOptions } from "date-fns";
/** Hebrew calendar formatting override. */
export declare function format(date: Date, formatStr: string, options?: DateFnsFormatOptions): string;
+152
View File
@@ -0,0 +1,152 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.format = format;
const calendarMath_js_1 = require("../utils/calendarMath.js");
const dateConversion_js_1 = require("../utils/dateConversion.js");
const serial_js_1 = require("../utils/serial.js");
const fallbackMonthNames = {
tishrei: { en: "Tishrei", he: "תשרי" },
cheshvan: { en: "Cheshvan", he: "חשוון" },
kislev: { en: "Kislev", he: "כסלו" },
tevet: { en: "Tevet", he: "טבת" },
shevat: { en: "Shevat", he: "שבט" },
adarI: { en: "Adar I", he: "אדר א׳" },
adar: { en: "Adar", he: "אדר" },
nisan: { en: "Nisan", he: "ניסן" },
iyar: { en: "Iyar", he: "אייר" },
sivan: { en: "Sivan", he: "סיוון" },
tamuz: { en: "Tammuz", he: "תמוז" },
av: { en: "Av", he: "אב" },
elul: { en: "Elul", he: "אלול" },
};
const fallbackWeekdayNames = {
long: {
en: [
"Sunday",
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday",
],
he: [
"יום ראשון",
"יום שני",
"יום שלישי",
"יום רביעי",
"יום חמישי",
"יום שישי",
"שבת",
],
},
narrow: {
en: ["S", "M", "T", "W", "T", "F", "S"],
he: ["א", "ב", "ג", "ד", "ה", "ו", "ש"],
},
};
const getLocaleCode = (options) => {
return options?.locale?.code ?? "he";
};
const getMonthCodeForDate = (date) => {
const hebrew = (0, dateConversion_js_1.toHebrewDate)(date);
return (0, calendarMath_js_1.getMonthCode)(hebrew.year, hebrew.monthIndex);
};
const formatMonthName = (date, localeCode) => {
try {
return new Intl.DateTimeFormat(localeCode, {
month: "long",
calendar: "hebrew",
}).format(date);
}
catch {
const code = getMonthCodeForDate(date);
const isHebrew = localeCode.startsWith("he");
return isHebrew ? fallbackMonthNames[code].he : fallbackMonthNames[code].en;
}
};
const formatWeekdayName = (date, localeCode, width) => {
try {
return new Intl.DateTimeFormat(localeCode, {
weekday: width,
calendar: "hebrew",
}).format(date);
}
catch {
const index = date.getDay();
const isHebrew = localeCode.startsWith("he");
return isHebrew
? fallbackWeekdayNames[width].he[index]
: fallbackWeekdayNames[width].en[index];
}
};
const formatDateStyle = (date, localeCode, style) => {
try {
return new Intl.DateTimeFormat(localeCode, {
dateStyle: style,
calendar: "hebrew",
}).format(date);
}
catch {
const hebrew = (0, dateConversion_js_1.toHebrewDate)(date);
const month = formatMonthName(date, localeCode);
if (style === "full") {
const weekday = formatWeekdayName(date, localeCode, "long");
return `${weekday}, ${month} ${hebrew.day}, ${hebrew.year}`;
}
return `${month} ${hebrew.day}, ${hebrew.year}`;
}
};
const formatNumber = (value) => {
return value.toString();
};
const buildTimeFormat = (date, localeCode, formatStr) => {
const hour12 = formatStr.includes("a");
return new Intl.DateTimeFormat(localeCode, {
hour: "numeric",
minute: "numeric",
hour12,
}).format(date);
};
/** Hebrew calendar formatting override. */
function format(date, formatStr, options) {
const extendedOptions = options;
const localeCode = getLocaleCode(extendedOptions);
const hebrew = (0, dateConversion_js_1.toHebrewDate)(date);
const monthNumber = (0, serial_js_1.hebrewMonthNumber)(hebrew.monthIndex);
switch (formatStr) {
case "LLLL y":
case "LLLL yyyy":
return `${formatMonthName(date, localeCode)} ${formatNumber(hebrew.year)}`;
case "LLLL":
return formatMonthName(date, localeCode);
case "PPP":
return formatDateStyle(date, localeCode, "long");
case "PPPP":
return formatDateStyle(date, localeCode, "full");
case "cccc":
return formatWeekdayName(date, localeCode, "long");
case "cccccc":
return formatWeekdayName(date, localeCode, "narrow");
case "yyyy":
case "y":
return formatNumber(hebrew.year);
case "yyyy-MM":
return `${formatNumber(hebrew.year)}-${formatNumber(monthNumber).padStart(2, "0")}`;
case "yyyy-MM-dd":
return `${formatNumber(hebrew.year)}-${formatNumber(monthNumber).padStart(2, "0")}-${formatNumber(hebrew.day).padStart(2, "0")}`;
case "MM":
return formatNumber(monthNumber).padStart(2, "0");
case "M":
return formatNumber(monthNumber);
case "dd":
return formatNumber(hebrew.day).padStart(2, "0");
case "d":
return formatNumber(hebrew.day);
default:
if (/[Hh]/.test(formatStr) && /m/.test(formatStr)) {
return buildTimeFormat(date, localeCode, formatStr);
}
return `${formatNumber(hebrew.day)}/${formatNumber(monthNumber)}/${formatNumber(hebrew.year)}`;
}
}
+1
View File
@@ -0,0 +1 @@
export declare function getMonth(date: Date): number;
+7
View File
@@ -0,0 +1,7 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getMonth = getMonth;
const dateConversion_js_1 = require("../utils/dateConversion.js");
function getMonth(date) {
return (0, dateConversion_js_1.toHebrewDate)(date).monthIndex;
}
+1
View File
@@ -0,0 +1 @@
export declare function getYear(date: Date): number;
+7
View File
@@ -0,0 +1,7 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getYear = getYear;
const dateConversion_js_1 = require("../utils/dateConversion.js");
function getYear(date) {
return (0, dateConversion_js_1.toHebrewDate)(date).year;
}
+17
View File
@@ -0,0 +1,17 @@
export * from "./addMonths.js";
export * from "./addYears.js";
export * from "./differenceInCalendarMonths.js";
export * from "./eachMonthOfInterval.js";
export * from "./eachYearOfInterval.js";
export * from "./endOfMonth.js";
export * from "./endOfYear.js";
export * from "./format.js";
export * from "./getMonth.js";
export * from "./getYear.js";
export * from "./isSameMonth.js";
export * from "./isSameYear.js";
export * from "./newDate.js";
export * from "./setMonth.js";
export * from "./setYear.js";
export * from "./startOfMonth.js";
export * from "./startOfYear.js";
+33
View File
@@ -0,0 +1,33 @@
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
__exportStar(require("./addMonths.js"), exports);
__exportStar(require("./addYears.js"), exports);
__exportStar(require("./differenceInCalendarMonths.js"), exports);
__exportStar(require("./eachMonthOfInterval.js"), exports);
__exportStar(require("./eachYearOfInterval.js"), exports);
__exportStar(require("./endOfMonth.js"), exports);
__exportStar(require("./endOfYear.js"), exports);
__exportStar(require("./format.js"), exports);
__exportStar(require("./getMonth.js"), exports);
__exportStar(require("./getYear.js"), exports);
__exportStar(require("./isSameMonth.js"), exports);
__exportStar(require("./isSameYear.js"), exports);
__exportStar(require("./newDate.js"), exports);
__exportStar(require("./setMonth.js"), exports);
__exportStar(require("./setYear.js"), exports);
__exportStar(require("./startOfMonth.js"), exports);
__exportStar(require("./startOfYear.js"), exports);
+1
View File
@@ -0,0 +1 @@
export declare function isSameMonth(dateLeft: Date, dateRight: Date): boolean;
+9
View File
@@ -0,0 +1,9 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.isSameMonth = isSameMonth;
const dateConversion_js_1 = require("../utils/dateConversion.js");
function isSameMonth(dateLeft, dateRight) {
const left = (0, dateConversion_js_1.toHebrewDate)(dateLeft);
const right = (0, dateConversion_js_1.toHebrewDate)(dateRight);
return left.year === right.year && left.monthIndex === right.monthIndex;
}
+1
View File
@@ -0,0 +1 @@
export declare function isSameYear(dateLeft: Date, dateRight: Date): boolean;
+7
View File
@@ -0,0 +1,7 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.isSameYear = isSameYear;
const dateConversion_js_1 = require("../utils/dateConversion.js");
function isSameYear(dateLeft, dateRight) {
return (0, dateConversion_js_1.toHebrewDate)(dateLeft).year === (0, dateConversion_js_1.toHebrewDate)(dateRight).year;
}
+1
View File
@@ -0,0 +1 @@
export declare function newDate(year: number, monthIndex: number, day: number): Date;
+7
View File
@@ -0,0 +1,7 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.newDate = newDate;
const dateConversion_js_1 = require("../utils/dateConversion.js");
function newDate(year, monthIndex, day) {
return (0, dateConversion_js_1.toGregorianDate)({ year, monthIndex, day });
}
+1
View File
@@ -0,0 +1 @@
export declare function setMonth(date: Date, month: number): Date;
+12
View File
@@ -0,0 +1,12 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.setMonth = setMonth;
const dateConversion_js_1 = require("../utils/dateConversion.js");
const serial_js_1 = require("../utils/serial.js");
function setMonth(date, month) {
const hebrew = (0, dateConversion_js_1.toHebrewDate)(date);
const baseIndex = (0, serial_js_1.monthsSinceEpoch)({ year: hebrew.year, monthIndex: 0 });
const targetIndex = baseIndex + month;
const target = (0, serial_js_1.monthIndexToHebrewDate)(targetIndex, hebrew.day);
return (0, dateConversion_js_1.toGregorianDate)(target);
}
+1
View File
@@ -0,0 +1 @@
export declare function setYear(date: Date, year: number): Date;
+31
View File
@@ -0,0 +1,31 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.setYear = setYear;
const calendarMath_js_1 = require("../utils/calendarMath.js");
const dateConversion_js_1 = require("../utils/dateConversion.js");
const serial_js_1 = require("../utils/serial.js");
const findMonthIndexByCode_js_1 = require("./findMonthIndexByCode.js");
function setYear(date, year) {
const hebrew = (0, dateConversion_js_1.toHebrewDate)(date);
const targetYear = year;
const originalCode = (0, calendarMath_js_1.getMonthCode)(hebrew.year, hebrew.monthIndex);
let targetMonthIndex = (0, findMonthIndexByCode_js_1.findMonthIndexByCode)(targetYear, originalCode);
if (targetMonthIndex === -1) {
if (originalCode === "adarI") {
targetMonthIndex = (0, findMonthIndexByCode_js_1.findMonthIndexByCode)(targetYear, "adar");
}
else if (originalCode === "adar" && !(0, calendarMath_js_1.isHebrewLeapYear)(targetYear)) {
targetMonthIndex = (0, findMonthIndexByCode_js_1.findMonthIndexByCode)(targetYear, "adar");
}
else {
const monthsCount = (0, calendarMath_js_1.monthsInHebrewYear)(targetYear);
targetMonthIndex = Math.min(hebrew.monthIndex, monthsCount - 1);
}
}
const day = (0, serial_js_1.clampHebrewDay)(targetYear, targetMonthIndex, hebrew.day);
return (0, dateConversion_js_1.toGregorianDate)({
year: targetYear,
monthIndex: targetMonthIndex,
day,
});
}
+1
View File
@@ -0,0 +1 @@
export declare function startOfMonth(date: Date): Date;
+8
View File
@@ -0,0 +1,8 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.startOfMonth = startOfMonth;
const dateConversion_js_1 = require("../utils/dateConversion.js");
function startOfMonth(date) {
const hebrew = (0, dateConversion_js_1.toHebrewDate)(date);
return (0, dateConversion_js_1.toGregorianDate)({ ...hebrew, day: 1 });
}
+1
View File
@@ -0,0 +1 @@
export declare function startOfYear(date: Date): Date;
+8
View File
@@ -0,0 +1,8 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.startOfYear = startOfYear;
const dateConversion_js_1 = require("../utils/dateConversion.js");
function startOfYear(date) {
const hebrew = (0, dateConversion_js_1.toHebrewDate)(date);
return (0, dateConversion_js_1.toGregorianDate)({ year: hebrew.year, monthIndex: 0, day: 1 });
}