Problem: the hexagonal refactor churns the backend tree for nine more phases; the UI delivery stack (web/ SPA, cmd/desktop Wails wrapper, compose/web image) must move to its own repo first so doc/layout rewrites land once on a backend-only tree. Change: - New repo git.hubris.network/dtoro/oikos-web (v0.33.0): web/, desktop/ (updateURL repointed to oikos-web releases), compose/, own CI (web + desktop jobs), own deploy script (CI-green gate, TOCTOU guard, version-tagged images, prune-to-3), own webhook receiver on :9798 + launchd unit, own compose project publishing the same 8091:80. - Cutover executed on mac-mini in order: oikos stack's web service stopped+removed, oikos-web project brought up on 8091; outer Caddy untouched (targets the published port) — serving + Authentik flow + /wails 404 quirk verified post-cutover. - Stripped from oikos: web/, cmd/desktop/, compose/web/, desktop CI workflow, ci.yml web job, Makefile ui/desktop/desktop-package/install targets, the compose web service, oikos-web from deploy.sh's fallback prune list; wails + go-keyring dropped from go.mod, vendor synced. - README / CONTRIBUTING / AGENTS.md / .agents dev+operations docs now point at the new repo; mbse + mascot design docs carry a path note. Risk: production SPA serving depends on the new pipeline now; rollback is versioned-image re-up of the old web service from a pre-split checkout (port 8091). Desktop builds installed before the split still check dtoro/oikos releases — one manual reinstall, noted in the oikos-web release notes. Verification: go vet, make test (race), make generate-check, golangci (no new findings; baseline down 400→365); post-cutover curls — localhost:8091 200, /wails/runtime.js 404, outer Caddy 302 Authentik.
242 lines
13 KiB
JavaScript
242 lines
13 KiB
JavaScript
var $c51b7e0106f45dea$exports = require("./CalendarDate.cjs");
|
|
var $19485913bea41f19$exports = require("./manipulation.cjs");
|
|
var $05031860ba2f881f$exports = require("./calendars/GregorianCalendar.cjs");
|
|
var $84a63d30beb0af0f$exports = require("./queries.cjs");
|
|
|
|
|
|
function $parcel$export(e, n, v, s) {
|
|
Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
|
|
}
|
|
|
|
$parcel$export(module.exports, "epochFromDate", function () { return $e13115b3b86b9007$export$bd4fb2bc8bb06fb; });
|
|
$parcel$export(module.exports, "toCalendar", function () { return $e13115b3b86b9007$export$b4a036af3fc0b032; });
|
|
$parcel$export(module.exports, "possibleAbsolutes", function () { return $e13115b3b86b9007$export$136f38efe7caf549; });
|
|
$parcel$export(module.exports, "toAbsolute", function () { return $e13115b3b86b9007$export$5107c82f94518f5c; });
|
|
$parcel$export(module.exports, "toCalendarDateTime", function () { return $e13115b3b86b9007$export$b21e0b124e224484; });
|
|
$parcel$export(module.exports, "toDate", function () { return $e13115b3b86b9007$export$e67a095c620b86fe; });
|
|
$parcel$export(module.exports, "fromAbsolute", function () { return $e13115b3b86b9007$export$1b96692a1ba042ac; });
|
|
$parcel$export(module.exports, "fromDate", function () { return $e13115b3b86b9007$export$e57ff100d91bd4b9; });
|
|
$parcel$export(module.exports, "fromDateToLocal", function () { return $e13115b3b86b9007$export$d7f92bcd3596b086; });
|
|
$parcel$export(module.exports, "toCalendarDate", function () { return $e13115b3b86b9007$export$93522d1a439f3617; });
|
|
$parcel$export(module.exports, "toTime", function () { return $e13115b3b86b9007$export$d33f79e3ffc3dc83; });
|
|
$parcel$export(module.exports, "toZoned", function () { return $e13115b3b86b9007$export$84c95a83c799e074; });
|
|
$parcel$export(module.exports, "toTimeZone", function () { return $e13115b3b86b9007$export$538b00033cc11c75; });
|
|
$parcel$export(module.exports, "zonedToDate", function () { return $e13115b3b86b9007$export$83aac07b4c37b25; });
|
|
$parcel$export(module.exports, "toLocalTimeZone", function () { return $e13115b3b86b9007$export$d9b67bc93c097491; });
|
|
/*
|
|
* Copyright 2020 Adobe. All rights reserved.
|
|
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
* governing permissions and limitations under the License.
|
|
*/ // Portions of the code in this file are based on code from the TC39 Temporal proposal.
|
|
// Original licensing can be found in the NOTICE file in the root directory of this source tree.
|
|
|
|
|
|
|
|
|
|
function $e13115b3b86b9007$export$bd4fb2bc8bb06fb(date) {
|
|
date = $e13115b3b86b9007$export$b4a036af3fc0b032(date, new (0, $05031860ba2f881f$exports.GregorianCalendar)());
|
|
let year = (0, $05031860ba2f881f$exports.getExtendedYear)(date.era, date.year);
|
|
return $e13115b3b86b9007$var$epochFromParts(year, date.month, date.day, date.hour, date.minute, date.second, date.millisecond);
|
|
}
|
|
function $e13115b3b86b9007$var$epochFromParts(year, month, day, hour, minute, second, millisecond) {
|
|
// Note: Date.UTC() interprets one and two-digit years as being in the
|
|
// 20th century, so don't use it
|
|
let date = new Date();
|
|
date.setUTCHours(hour, minute, second, millisecond);
|
|
date.setUTCFullYear(year, month - 1, day);
|
|
return date.getTime();
|
|
}
|
|
function $e13115b3b86b9007$export$59c99f3515d3493f(ms, timeZone) {
|
|
// Fast path for UTC.
|
|
if (timeZone === 'UTC') return 0;
|
|
// Fast path: for local timezone after 1970, use native Date.
|
|
// Skip this fast path if the local timezone was explicitly overridden via setLocalTimeZone,
|
|
// since native Date always uses the browser's timezone, not the overridden one.
|
|
if (ms > 0 && timeZone === (0, $84a63d30beb0af0f$exports.getLocalTimeZone)() && !(0, $84a63d30beb0af0f$exports.isLocalTimeZoneOverridden)()) return new Date(ms).getTimezoneOffset() * -60000;
|
|
let { year: year, month: month, day: day, hour: hour, minute: minute, second: second } = $e13115b3b86b9007$var$getTimeZoneParts(ms, timeZone);
|
|
let utc = $e13115b3b86b9007$var$epochFromParts(year, month, day, hour, minute, second, 0);
|
|
return utc - Math.floor(ms / 1000) * 1000;
|
|
}
|
|
const $e13115b3b86b9007$var$formattersByTimeZone = new Map();
|
|
function $e13115b3b86b9007$var$getTimeZoneParts(ms, timeZone) {
|
|
let formatter = $e13115b3b86b9007$var$formattersByTimeZone.get(timeZone);
|
|
if (!formatter) {
|
|
formatter = new Intl.DateTimeFormat('en-US', {
|
|
timeZone: timeZone,
|
|
hour12: false,
|
|
era: 'short',
|
|
year: 'numeric',
|
|
month: 'numeric',
|
|
day: 'numeric',
|
|
hour: 'numeric',
|
|
minute: 'numeric',
|
|
second: 'numeric'
|
|
});
|
|
$e13115b3b86b9007$var$formattersByTimeZone.set(timeZone, formatter);
|
|
}
|
|
let parts = formatter.formatToParts(new Date(ms));
|
|
let namedParts = {};
|
|
for (let part of parts)if (part.type !== 'literal') namedParts[part.type] = part.value;
|
|
return {
|
|
// Firefox returns B instead of BC... https://bugzilla.mozilla.org/show_bug.cgi?id=1752253
|
|
year: namedParts.era === 'BC' || namedParts.era === 'B' ? -namedParts.year + 1 : +namedParts.year,
|
|
month: +namedParts.month,
|
|
day: +namedParts.day,
|
|
hour: namedParts.hour === '24' ? 0 : +namedParts.hour,
|
|
minute: +namedParts.minute,
|
|
second: +namedParts.second
|
|
};
|
|
}
|
|
const $e13115b3b86b9007$var$DAYMILLIS = 86400000;
|
|
function $e13115b3b86b9007$export$136f38efe7caf549(date, timeZone) {
|
|
let ms = $e13115b3b86b9007$export$bd4fb2bc8bb06fb(date);
|
|
let earlier = ms - $e13115b3b86b9007$export$59c99f3515d3493f(ms - $e13115b3b86b9007$var$DAYMILLIS, timeZone);
|
|
let later = ms - $e13115b3b86b9007$export$59c99f3515d3493f(ms + $e13115b3b86b9007$var$DAYMILLIS, timeZone);
|
|
return $e13115b3b86b9007$var$getValidWallTimes(date, timeZone, earlier, later);
|
|
}
|
|
function $e13115b3b86b9007$var$getValidWallTimes(date, timeZone, earlier, later) {
|
|
let found = earlier === later ? [
|
|
earlier
|
|
] : [
|
|
earlier,
|
|
later
|
|
];
|
|
return found.filter((absolute)=>$e13115b3b86b9007$var$isValidWallTime(date, timeZone, absolute));
|
|
}
|
|
function $e13115b3b86b9007$var$isValidWallTime(date, timeZone, absolute) {
|
|
let parts = $e13115b3b86b9007$var$getTimeZoneParts(absolute, timeZone);
|
|
return date.year === parts.year && date.month === parts.month && date.day === parts.day && date.hour === parts.hour && date.minute === parts.minute && date.second === parts.second;
|
|
}
|
|
function $e13115b3b86b9007$export$5107c82f94518f5c(date, timeZone, disambiguation = 'compatible') {
|
|
let dateTime = $e13115b3b86b9007$export$b21e0b124e224484(date);
|
|
// Fast path: if the time zone is UTC, use native Date.
|
|
if (timeZone === 'UTC') return $e13115b3b86b9007$export$bd4fb2bc8bb06fb(dateTime);
|
|
// Fast path: if the time zone is the local timezone and disambiguation is compatible, use native Date.
|
|
// Skip this fast path if the local timezone was explicitly overridden via setLocalTimeZone,
|
|
// since native Date always uses the browser's timezone, not the overridden one.
|
|
if (timeZone === (0, $84a63d30beb0af0f$exports.getLocalTimeZone)() && disambiguation === 'compatible' && !(0, $84a63d30beb0af0f$exports.isLocalTimeZoneOverridden)()) {
|
|
dateTime = $e13115b3b86b9007$export$b4a036af3fc0b032(dateTime, new (0, $05031860ba2f881f$exports.GregorianCalendar)());
|
|
// Don't use Date constructor here because two-digit years are interpreted in the 20th century.
|
|
let date = new Date();
|
|
let year = (0, $05031860ba2f881f$exports.getExtendedYear)(dateTime.era, dateTime.year);
|
|
date.setFullYear(year, dateTime.month - 1, dateTime.day);
|
|
date.setHours(dateTime.hour, dateTime.minute, dateTime.second, dateTime.millisecond);
|
|
return date.getTime();
|
|
}
|
|
let ms = $e13115b3b86b9007$export$bd4fb2bc8bb06fb(dateTime);
|
|
let offsetBefore = $e13115b3b86b9007$export$59c99f3515d3493f(ms - $e13115b3b86b9007$var$DAYMILLIS, timeZone);
|
|
let offsetAfter = $e13115b3b86b9007$export$59c99f3515d3493f(ms + $e13115b3b86b9007$var$DAYMILLIS, timeZone);
|
|
let valid = $e13115b3b86b9007$var$getValidWallTimes(dateTime, timeZone, ms - offsetBefore, ms - offsetAfter);
|
|
if (valid.length === 1) return valid[0];
|
|
if (valid.length > 1) switch(disambiguation){
|
|
// 'compatible' means 'earlier' for "fall back" transitions
|
|
case 'compatible':
|
|
case 'earlier':
|
|
return valid[0];
|
|
case 'later':
|
|
return valid[valid.length - 1];
|
|
case 'reject':
|
|
throw new RangeError('Multiple possible absolute times found');
|
|
}
|
|
switch(disambiguation){
|
|
case 'earlier':
|
|
return Math.min(ms - offsetBefore, ms - offsetAfter);
|
|
// 'compatible' means 'later' for "spring forward" transitions
|
|
case 'compatible':
|
|
case 'later':
|
|
return Math.max(ms - offsetBefore, ms - offsetAfter);
|
|
case 'reject':
|
|
throw new RangeError('No such absolute time found');
|
|
}
|
|
}
|
|
function $e13115b3b86b9007$export$e67a095c620b86fe(dateTime, timeZone, disambiguation = 'compatible') {
|
|
return new Date($e13115b3b86b9007$export$5107c82f94518f5c(dateTime, timeZone, disambiguation));
|
|
}
|
|
function $e13115b3b86b9007$export$1b96692a1ba042ac(ms, timeZone) {
|
|
let offset = $e13115b3b86b9007$export$59c99f3515d3493f(ms, timeZone);
|
|
let date = new Date(ms + offset);
|
|
let year = date.getUTCFullYear();
|
|
let month = date.getUTCMonth() + 1;
|
|
let day = date.getUTCDate();
|
|
let hour = date.getUTCHours();
|
|
let minute = date.getUTCMinutes();
|
|
let second = date.getUTCSeconds();
|
|
let millisecond = date.getUTCMilliseconds();
|
|
return new (0, $c51b7e0106f45dea$exports.ZonedDateTime)(year < 1 ? 'BC' : 'AD', year < 1 ? -year + 1 : year, month, day, timeZone, offset, hour, minute, second, millisecond);
|
|
}
|
|
function $e13115b3b86b9007$export$e57ff100d91bd4b9(date, timeZone) {
|
|
return $e13115b3b86b9007$export$1b96692a1ba042ac(date.getTime(), timeZone);
|
|
}
|
|
function $e13115b3b86b9007$export$d7f92bcd3596b086(date) {
|
|
return $e13115b3b86b9007$export$e57ff100d91bd4b9(date, (0, $84a63d30beb0af0f$exports.getLocalTimeZone)());
|
|
}
|
|
function $e13115b3b86b9007$export$93522d1a439f3617(dateTime) {
|
|
return new (0, $c51b7e0106f45dea$exports.CalendarDate)(dateTime.calendar, dateTime.era, dateTime.year, dateTime.month, dateTime.day);
|
|
}
|
|
function $e13115b3b86b9007$export$6f4d78149f3f53ac(date) {
|
|
return {
|
|
era: date.era,
|
|
year: date.year,
|
|
month: date.month,
|
|
day: date.day
|
|
};
|
|
}
|
|
function $e13115b3b86b9007$export$4d0393e732857be5(date) {
|
|
return {
|
|
hour: date.hour,
|
|
minute: date.minute,
|
|
second: date.second,
|
|
millisecond: date.millisecond
|
|
};
|
|
}
|
|
function $e13115b3b86b9007$export$b21e0b124e224484(date, time) {
|
|
let hour = 0, minute = 0, second = 0, millisecond = 0;
|
|
if ('timeZone' in date) ({ hour: hour, minute: minute, second: second, millisecond: millisecond } = date);
|
|
else if ('hour' in date && !time) return date;
|
|
if (time) ({ hour: hour, minute: minute, second: second, millisecond: millisecond } = time);
|
|
return new (0, $c51b7e0106f45dea$exports.CalendarDateTime)(date.calendar, date.era, date.year, date.month, date.day, hour, minute, second, millisecond);
|
|
}
|
|
function $e13115b3b86b9007$export$d33f79e3ffc3dc83(dateTime) {
|
|
return new (0, $c51b7e0106f45dea$exports.Time)(dateTime.hour, dateTime.minute, dateTime.second, dateTime.millisecond);
|
|
}
|
|
function $e13115b3b86b9007$export$b4a036af3fc0b032(date, calendar) {
|
|
if ((0, $84a63d30beb0af0f$exports.isEqualCalendar)(date.calendar, calendar)) return date;
|
|
let calendarDate = calendar.fromJulianDay(date.calendar.toJulianDay(date));
|
|
let copy = date.copy();
|
|
copy.calendar = calendar;
|
|
copy.era = calendarDate.era;
|
|
copy.year = calendarDate.year;
|
|
copy.month = calendarDate.month;
|
|
copy.day = calendarDate.day;
|
|
(0, $19485913bea41f19$exports.constrain)(copy);
|
|
return copy;
|
|
}
|
|
function $e13115b3b86b9007$export$84c95a83c799e074(date, timeZone, disambiguation) {
|
|
if (date instanceof (0, $c51b7e0106f45dea$exports.ZonedDateTime)) {
|
|
if (date.timeZone === timeZone) return date;
|
|
return $e13115b3b86b9007$export$538b00033cc11c75(date, timeZone);
|
|
}
|
|
let ms = $e13115b3b86b9007$export$5107c82f94518f5c(date, timeZone, disambiguation);
|
|
return $e13115b3b86b9007$export$1b96692a1ba042ac(ms, timeZone);
|
|
}
|
|
function $e13115b3b86b9007$export$83aac07b4c37b25(date) {
|
|
let ms = $e13115b3b86b9007$export$bd4fb2bc8bb06fb(date) - date.offset;
|
|
return new Date(ms);
|
|
}
|
|
function $e13115b3b86b9007$export$538b00033cc11c75(date, timeZone) {
|
|
let ms = $e13115b3b86b9007$export$bd4fb2bc8bb06fb(date) - date.offset;
|
|
return $e13115b3b86b9007$export$b4a036af3fc0b032($e13115b3b86b9007$export$1b96692a1ba042ac(ms, timeZone), date.calendar);
|
|
}
|
|
function $e13115b3b86b9007$export$d9b67bc93c097491(date) {
|
|
return $e13115b3b86b9007$export$538b00033cc11c75(date, (0, $84a63d30beb0af0f$exports.getLocalTimeZone)());
|
|
}
|
|
|
|
|
|
//# sourceMappingURL=conversion.cjs.map
|