full site update

This commit is contained in:
2025-07-24 18:46:24 +02:00
parent bfe2b90d8d
commit 37a6e0ab31
6912 changed files with 540482 additions and 361712 deletions

92
node_modules/ohash/dist/utils/index.mjs generated vendored Normal file
View File

@@ -0,0 +1,92 @@
import { s as serialize } from '../shared/ohash.D__AXeF1.mjs';
export { i as isEqual } from '../shared/ohash.D__AXeF1.mjs';
function diff(obj1, obj2) {
const h1 = _toHashedObject(obj1);
const h2 = _toHashedObject(obj2);
return _diff(h1, h2);
}
function _diff(h1, h2) {
const diffs = [];
const allProps = /* @__PURE__ */ new Set([
...Object.keys(h1.props || {}),
...Object.keys(h2.props || {})
]);
if (h1.props && h2.props) {
for (const prop of allProps) {
const p1 = h1.props[prop];
const p2 = h2.props[prop];
if (p1 && p2) {
diffs.push(..._diff(h1.props?.[prop], h2.props?.[prop]));
} else if (p1 || p2) {
diffs.push(
new DiffEntry((p2 || p1).key, p1 ? "removed" : "added", p2, p1)
);
}
}
}
if (allProps.size === 0 && h1.hash !== h2.hash) {
diffs.push(new DiffEntry((h2 || h1).key, "changed", h2, h1));
}
return diffs;
}
function _toHashedObject(obj, key = "") {
if (obj && typeof obj !== "object") {
return new DiffHashedObject(key, obj, serialize(obj));
}
const props = {};
const hashes = [];
for (const _key in obj) {
props[_key] = _toHashedObject(obj[_key], key ? `${key}.${_key}` : _key);
hashes.push(props[_key].hash);
}
return new DiffHashedObject(key, obj, `{${hashes.join(":")}}`, props);
}
class DiffEntry {
constructor(key, type, newValue, oldValue) {
this.key = key;
this.type = type;
this.newValue = newValue;
this.oldValue = oldValue;
}
toString() {
return this.toJSON();
}
toJSON() {
switch (this.type) {
case "added": {
return `Added \`${this.key}\``;
}
case "removed": {
return `Removed \`${this.key}\``;
}
case "changed": {
return `Changed \`${this.key}\` from \`${this.oldValue?.toString() || "-"}\` to \`${this.newValue.toString()}\``;
}
}
}
}
class DiffHashedObject {
constructor(key, value, hash, props) {
this.key = key;
this.value = value;
this.hash = hash;
this.props = props;
}
toString() {
if (this.props) {
return `{${Object.keys(this.props).join(",")}}`;
} else {
return JSON.stringify(this.value);
}
}
toJSON() {
const k = this.key || ".";
if (this.props) {
return `${k}({${Object.keys(this.props).join(",")}})`;
}
return `${k}(${this.value})`;
}
}
export { diff };