Erster Docker-Stand

This commit is contained in:
Ali
2026-02-20 16:06:40 +09:00
commit f31e2e8ed3
8818 changed files with 1605323 additions and 0 deletions

53
_node_modules/hono/dist/jsx/dom/client.js generated vendored Normal file
View File

@@ -0,0 +1,53 @@
// src/jsx/dom/client.ts
import { useState } from "../hooks/index.js";
import { buildNode, renderNode } from "./render.js";
var createRoot = (element, options = {}) => {
let setJsxNode = (
// unmounted
void 0
);
if (Object.keys(options).length > 0) {
console.warn("createRoot options are not supported yet");
}
return {
render(jsxNode) {
if (setJsxNode === null) {
throw new Error("Cannot update an unmounted root");
}
if (setJsxNode) {
setJsxNode(jsxNode);
} else {
renderNode(
buildNode({
tag: () => {
const [_jsxNode, _setJsxNode] = useState(jsxNode);
setJsxNode = _setJsxNode;
return _jsxNode;
},
props: {}
// eslint-disable-next-line @typescript-eslint/no-explicit-any
}),
element
);
}
},
unmount() {
setJsxNode?.(null);
setJsxNode = null;
}
};
};
var hydrateRoot = (element, reactNode, options = {}) => {
const root = createRoot(element, options);
root.render(reactNode);
return root;
};
var client_default = {
createRoot,
hydrateRoot
};
export {
createRoot,
client_default as default,
hydrateRoot
};

32
_node_modules/hono/dist/jsx/dom/components.js generated vendored Normal file
View File

@@ -0,0 +1,32 @@
// src/jsx/dom/components.ts
import { DOM_ERROR_HANDLER } from "../constants.js";
import { Fragment } from "./jsx-runtime.js";
var ErrorBoundary = (({ children, fallback, fallbackRender, onError }) => {
const res = Fragment({ children });
res[DOM_ERROR_HANDLER] = (err) => {
if (err instanceof Promise) {
throw err;
}
onError?.(err);
return fallbackRender?.(err) || fallback;
};
return res;
});
var Suspense = (({
children,
fallback
}) => {
const res = Fragment({ children });
res[DOM_ERROR_HANDLER] = (err, retry) => {
if (!(err instanceof Promise)) {
throw err;
}
err.finally(retry);
return fallback;
};
return res;
});
export {
ErrorBoundary,
Suspense
};

48
_node_modules/hono/dist/jsx/dom/context.js generated vendored Normal file
View File

@@ -0,0 +1,48 @@
// src/jsx/dom/context.ts
import { DOM_ERROR_HANDLER } from "../constants.js";
import { globalContexts } from "../context.js";
import { setInternalTagFlag } from "./utils.js";
var createContextProviderFunction = (values) => ({ value, children }) => {
if (!children) {
return void 0;
}
const props = {
children: [
{
tag: setInternalTagFlag(() => {
values.push(value);
}),
props: {}
}
]
};
if (Array.isArray(children)) {
props.children.push(...children.flat());
} else {
props.children.push(children);
}
props.children.push({
tag: setInternalTagFlag(() => {
values.pop();
}),
props: {}
});
const res = { tag: "", props, type: "" };
res[DOM_ERROR_HANDLER] = (err) => {
values.pop();
throw err;
};
return res;
};
var createContext = (defaultValue) => {
const values = [defaultValue];
const context = createContextProviderFunction(values);
context.values = values;
context.Provider = context;
globalContexts.push(context);
return context;
};
export {
createContext,
createContextProviderFunction
};

143
_node_modules/hono/dist/jsx/dom/css.js generated vendored Normal file
View File

@@ -0,0 +1,143 @@
// src/jsx/dom/css.ts
import {
CLASS_NAME,
DEFAULT_STYLE_ID,
PSEUDO_GLOBAL_SELECTOR,
SELECTOR,
SELECTORS,
STYLE_STRING,
cssCommon,
cxCommon,
keyframesCommon,
viewTransitionCommon
} from "../../helper/css/common.js";
import { rawCssString } from "../../helper/css/common.js";
var splitRule = (rule) => {
const result = [];
let startPos = 0;
let depth = 0;
for (let i = 0, len = rule.length; i < len; i++) {
const char = rule[i];
if (char === "'" || char === '"') {
const quote = char;
i++;
for (; i < len; i++) {
if (rule[i] === "\\") {
i++;
continue;
}
if (rule[i] === quote) {
break;
}
}
continue;
}
if (char === "{") {
depth++;
continue;
}
if (char === "}") {
depth--;
if (depth === 0) {
result.push(rule.slice(startPos, i + 1));
startPos = i + 1;
}
continue;
}
}
return result;
};
var createCssJsxDomObjects = ({ id }) => {
let styleSheet = void 0;
const findStyleSheet = () => {
if (!styleSheet) {
styleSheet = document.querySelector(`style#${id}`)?.sheet;
if (styleSheet) {
;
styleSheet.addedStyles = /* @__PURE__ */ new Set();
}
}
return styleSheet ? [styleSheet, styleSheet.addedStyles] : [];
};
const insertRule = (className, styleString) => {
const [sheet, addedStyles] = findStyleSheet();
if (!sheet || !addedStyles) {
Promise.resolve().then(() => {
if (!findStyleSheet()[0]) {
throw new Error("style sheet not found");
}
insertRule(className, styleString);
});
return;
}
if (!addedStyles.has(className)) {
addedStyles.add(className);
(className.startsWith(PSEUDO_GLOBAL_SELECTOR) ? splitRule(styleString) : [`${className[0] === "@" ? "" : "."}${className}{${styleString}}`]).forEach((rule) => {
sheet.insertRule(rule, sheet.cssRules.length);
});
}
};
const cssObject = {
toString() {
const selector = this[SELECTOR];
insertRule(selector, this[STYLE_STRING]);
this[SELECTORS].forEach(({ [CLASS_NAME]: className, [STYLE_STRING]: styleString }) => {
insertRule(className, styleString);
});
return this[CLASS_NAME];
}
};
const Style2 = ({ children, nonce }) => ({
tag: "style",
props: {
id,
nonce,
children: children && (Array.isArray(children) ? children : [children]).map(
(c) => c[STYLE_STRING]
)
}
// eslint-disable-next-line @typescript-eslint/no-explicit-any
});
return [cssObject, Style2];
};
var createCssContext = ({ id }) => {
const [cssObject, Style2] = createCssJsxDomObjects({ id });
const newCssClassNameObject = (cssClassName) => {
cssClassName.toString = cssObject.toString;
return cssClassName;
};
const css2 = (strings, ...values) => {
return newCssClassNameObject(cssCommon(strings, values));
};
const cx2 = (...args) => {
args = cxCommon(args);
return css2(Array(args.length).fill(""), ...args);
};
const keyframes2 = keyframesCommon;
const viewTransition2 = ((strings, ...values) => {
return newCssClassNameObject(viewTransitionCommon(strings, values));
});
return {
css: css2,
cx: cx2,
keyframes: keyframes2,
viewTransition: viewTransition2,
Style: Style2
};
};
var defaultContext = createCssContext({ id: DEFAULT_STYLE_ID });
var css = defaultContext.css;
var cx = defaultContext.cx;
var keyframes = defaultContext.keyframes;
var viewTransition = defaultContext.viewTransition;
var Style = defaultContext.Style;
export {
Style,
createCssContext,
createCssJsxDomObjects,
css,
cx,
keyframes,
rawCssString,
viewTransition
};

48
_node_modules/hono/dist/jsx/dom/hooks/index.js generated vendored Normal file
View File

@@ -0,0 +1,48 @@
// src/jsx/dom/hooks/index.ts
import { PERMALINK } from "../../constants.js";
import { useContext } from "../../context.js";
import { useCallback, useState } from "../../hooks/index.js";
import { createContext } from "../context.js";
var FormContext = createContext({
pending: false,
data: null,
method: null,
action: null
});
var actions = /* @__PURE__ */ new Set();
var registerAction = (action) => {
actions.add(action);
action.finally(() => actions.delete(action));
};
var useFormStatus = () => {
return useContext(FormContext);
};
var useOptimistic = (state, updateState) => {
const [optimisticState, setOptimisticState] = useState(state);
if (actions.size > 0) {
Promise.all(actions).finally(() => {
setOptimisticState(state);
});
} else {
setOptimisticState(state);
}
const cb = useCallback((newData) => {
setOptimisticState((currentState) => updateState(currentState, newData));
}, []);
return [optimisticState, cb];
};
var useActionState = (fn, initialState, permalink) => {
const [state, setState] = useState(initialState);
const actionState = async (data) => {
setState(await fn(state, data));
};
actionState[PERMALINK] = permalink;
return [state, actionState];
};
export {
FormContext,
registerAction,
useActionState,
useFormStatus,
useOptimistic
};

142
_node_modules/hono/dist/jsx/dom/index.js generated vendored Normal file
View File

@@ -0,0 +1,142 @@
// src/jsx/dom/index.ts
import { isValidElement, reactAPICompatVersion, shallowEqual } from "../base.js";
import { Children } from "../children.js";
import { DOM_MEMO } from "../constants.js";
import { useContext } from "../context.js";
import {
createRef,
forwardRef,
startTransition,
startViewTransition,
use,
useCallback,
useDebugValue,
useDeferredValue,
useEffect,
useId,
useImperativeHandle,
useInsertionEffect,
useLayoutEffect,
useMemo,
useReducer,
useRef,
useState,
useSyncExternalStore,
useTransition,
useViewTransition
} from "../hooks/index.js";
import { ErrorBoundary, Suspense } from "./components.js";
import { createContext } from "./context.js";
import { useActionState, useFormStatus, useOptimistic } from "./hooks/index.js";
import { Fragment, jsx } from "./jsx-runtime.js";
import { createPortal, flushSync } from "./render.js";
import { render } from "./render.js";
var createElement = (tag, props, ...children) => {
const jsxProps = props ? { ...props } : {};
if (children.length) {
jsxProps.children = children.length === 1 ? children[0] : children;
}
let key = void 0;
if ("key" in jsxProps) {
key = jsxProps.key;
delete jsxProps.key;
}
return jsx(tag, jsxProps, key);
};
var cloneElement = (element, props, ...children) => {
return jsx(
element.tag,
{
...element.props,
...props,
children: children.length ? children : element.props.children
},
element.key
);
};
var memo = (component, propsAreEqual = shallowEqual) => {
const wrapper = ((props) => component(props));
wrapper[DOM_MEMO] = propsAreEqual;
return wrapper;
};
var dom_default = {
version: reactAPICompatVersion,
useState,
useEffect,
useRef,
useCallback,
use,
startTransition,
useTransition,
useDeferredValue,
startViewTransition,
useViewTransition,
useMemo,
useLayoutEffect,
useInsertionEffect,
useReducer,
useId,
useDebugValue,
createRef,
forwardRef,
useImperativeHandle,
useSyncExternalStore,
useFormStatus,
useActionState,
useOptimistic,
Suspense,
ErrorBoundary,
createContext,
useContext,
memo,
isValidElement,
createElement,
cloneElement,
Children,
Fragment,
StrictMode: Fragment,
flushSync,
createPortal
};
export {
Children,
ErrorBoundary,
Fragment,
Fragment as StrictMode,
Suspense,
cloneElement,
createContext,
createElement,
createPortal,
createRef,
dom_default as default,
flushSync,
forwardRef,
isValidElement,
createElement as jsx,
memo,
render,
startTransition,
startViewTransition,
use,
useActionState,
useCallback,
useContext,
useDebugValue,
useDeferredValue,
useEffect,
useFormStatus,
useId,
useImperativeHandle,
useInsertionEffect,
useLayoutEffect,
useMemo,
useOptimistic,
useReducer,
useRef,
useState,
useSyncExternalStore,
useTransition,
useViewTransition,
reactAPICompatVersion as version
};

View File

@@ -0,0 +1,337 @@
// src/jsx/dom/intrinsic-element/components.ts
import { useContext } from "../../context.js";
import { use, useCallback, useMemo, useState } from "../../hooks/index.js";
import { dataPrecedenceAttr, deDupeKeyMap, domRenderers } from "../../intrinsic-element/common.js";
import { FormContext, registerAction } from "../hooks/index.js";
import { createPortal, getNameSpaceContext } from "../render.js";
var clearCache = () => {
blockingPromiseMap = /* @__PURE__ */ Object.create(null);
createdElements = /* @__PURE__ */ Object.create(null);
};
var composeRef = (ref, cb) => {
return useMemo(
() => (e) => {
let refCleanup;
if (ref) {
if (typeof ref === "function") {
refCleanup = ref(e) || (() => {
ref(null);
});
} else if (ref && "current" in ref) {
ref.current = e;
refCleanup = () => {
ref.current = null;
};
}
}
const cbCleanup = cb(e);
return () => {
cbCleanup?.();
refCleanup?.();
};
},
[ref]
);
};
var blockingPromiseMap = /* @__PURE__ */ Object.create(null);
var createdElements = /* @__PURE__ */ Object.create(null);
var documentMetadataTag = (tag, props, preserveNodeType, supportSort, supportBlocking) => {
if (props?.itemProp) {
return {
tag,
props,
type: tag,
ref: props.ref
};
}
const head = document.head;
let { onLoad, onError, precedence, blocking, ...restProps } = props;
let element = null;
let created = false;
const deDupeKeys = deDupeKeyMap[tag];
let existingElements = void 0;
if (deDupeKeys.length > 0) {
const tags = head.querySelectorAll(tag);
LOOP: for (const e of tags) {
for (const key of deDupeKeyMap[tag]) {
if (e.getAttribute(key) === props[key]) {
element = e;
break LOOP;
}
}
}
if (!element) {
const cacheKey = deDupeKeys.reduce(
(acc, key) => props[key] === void 0 ? acc : `${acc}-${key}-${props[key]}`,
tag
);
created = !createdElements[cacheKey];
element = createdElements[cacheKey] ||= (() => {
const e = document.createElement(tag);
for (const key of deDupeKeys) {
if (props[key] !== void 0) {
e.setAttribute(key, props[key]);
}
if (props.rel) {
e.setAttribute("rel", props.rel);
}
}
return e;
})();
}
} else {
existingElements = head.querySelectorAll(tag);
}
precedence = supportSort ? precedence ?? "" : void 0;
if (supportSort) {
restProps[dataPrecedenceAttr] = precedence;
}
const insert = useCallback(
(e) => {
if (deDupeKeys.length > 0) {
let found = false;
for (const existingElement of head.querySelectorAll(tag)) {
if (found && existingElement.getAttribute(dataPrecedenceAttr) !== precedence) {
head.insertBefore(e, existingElement);
return;
}
if (existingElement.getAttribute(dataPrecedenceAttr) === precedence) {
found = true;
}
}
head.appendChild(e);
} else if (existingElements) {
let found = false;
for (const existingElement of existingElements) {
if (existingElement === e) {
found = true;
break;
}
}
if (!found) {
head.insertBefore(
e,
head.contains(existingElements[0]) ? existingElements[0] : head.querySelector(tag)
);
}
existingElements = void 0;
}
},
[precedence]
);
const ref = composeRef(props.ref, (e) => {
const key = deDupeKeys[0];
if (preserveNodeType === 2) {
e.innerHTML = "";
}
if (created || existingElements) {
insert(e);
}
if (!onError && !onLoad) {
return;
}
let promise = blockingPromiseMap[e.getAttribute(key)] ||= new Promise(
(resolve, reject) => {
e.addEventListener("load", resolve);
e.addEventListener("error", reject);
}
);
if (onLoad) {
promise = promise.then(onLoad);
}
if (onError) {
promise = promise.catch(onError);
}
promise.catch(() => {
});
});
if (supportBlocking && blocking === "render") {
const key = deDupeKeyMap[tag][0];
if (props[key]) {
const value = props[key];
const promise = blockingPromiseMap[value] ||= new Promise((resolve, reject) => {
insert(element);
element.addEventListener("load", resolve);
element.addEventListener("error", reject);
});
use(promise);
}
}
const jsxNode = {
tag,
type: tag,
props: {
...restProps,
ref
},
ref
};
jsxNode.p = preserveNodeType;
if (element) {
jsxNode.e = element;
}
return createPortal(
jsxNode,
head
// eslint-disable-next-line @typescript-eslint/no-explicit-any
);
};
var title = (props) => {
const nameSpaceContext = getNameSpaceContext();
const ns = nameSpaceContext && useContext(nameSpaceContext);
if (ns?.endsWith("svg")) {
return {
tag: "title",
props,
type: "title",
// eslint-disable-next-line @typescript-eslint/no-explicit-any
ref: props.ref
};
}
return documentMetadataTag("title", props, void 0, false, false);
};
var script = (props) => {
if (!props || ["src", "async"].some((k) => !props[k])) {
return {
tag: "script",
props,
type: "script",
ref: props.ref
};
}
return documentMetadataTag("script", props, 1, false, true);
};
var style = (props) => {
if (!props || !["href", "precedence"].every((k) => k in props)) {
return {
tag: "style",
props,
type: "style",
ref: props.ref
};
}
props["data-href"] = props.href;
delete props.href;
return documentMetadataTag("style", props, 2, true, true);
};
var link = (props) => {
if (!props || ["onLoad", "onError"].some((k) => k in props) || props.rel === "stylesheet" && (!("precedence" in props) || "disabled" in props)) {
return {
tag: "link",
props,
type: "link",
ref: props.ref
};
}
return documentMetadataTag("link", props, 1, "precedence" in props, true);
};
var meta = (props) => {
return documentMetadataTag("meta", props, void 0, false, false);
};
var customEventFormAction = /* @__PURE__ */ Symbol();
var form = (props) => {
const { action, ...restProps } = props;
if (typeof action !== "function") {
;
restProps.action = action;
}
const [state, setState] = useState([null, false]);
const onSubmit = useCallback(
async (ev) => {
const currentAction = ev.isTrusted ? action : ev.detail[customEventFormAction];
if (typeof currentAction !== "function") {
return;
}
ev.preventDefault();
const formData = new FormData(ev.target);
setState([formData, true]);
const actionRes = currentAction(formData);
if (actionRes instanceof Promise) {
registerAction(actionRes);
await actionRes;
}
setState([null, true]);
},
[]
);
const ref = composeRef(props.ref, (el) => {
el.addEventListener("submit", onSubmit);
return () => {
el.removeEventListener("submit", onSubmit);
};
});
const [data, isDirty] = state;
state[1] = false;
return {
tag: FormContext,
props: {
value: {
pending: data !== null,
data,
method: data ? "post" : null,
action: data ? action : null
},
children: {
tag: "form",
props: {
...restProps,
ref
},
type: "form",
ref
}
},
f: isDirty
// eslint-disable-next-line @typescript-eslint/no-explicit-any
};
};
var formActionableElement = (tag, {
formAction,
...props
}) => {
if (typeof formAction === "function") {
const onClick = useCallback((ev) => {
ev.preventDefault();
ev.currentTarget.form.dispatchEvent(
new CustomEvent("submit", { detail: { [customEventFormAction]: formAction } })
);
}, []);
props.ref = composeRef(props.ref, (el) => {
el.addEventListener("click", onClick);
return () => {
el.removeEventListener("click", onClick);
};
});
}
return {
tag,
props,
type: tag,
ref: props.ref
// eslint-disable-next-line @typescript-eslint/no-explicit-any
};
};
var input = (props) => formActionableElement("input", props);
var button = (props) => formActionableElement("button", props);
Object.assign(domRenderers, {
title,
script,
style,
link,
meta,
form,
input,
button
});
export {
button,
clearCache,
composeRef,
form,
input,
link,
meta,
script,
style,
title
};

19
_node_modules/hono/dist/jsx/dom/jsx-dev-runtime.js generated vendored Normal file
View File

@@ -0,0 +1,19 @@
// src/jsx/dom/jsx-dev-runtime.ts
import * as intrinsicElementTags from "./intrinsic-element/components.js";
var jsxDEV = (tag, props, key) => {
if (typeof tag === "string" && intrinsicElementTags[tag]) {
tag = intrinsicElementTags[tag];
}
return {
tag,
type: tag,
props,
key,
ref: props.ref
};
};
var Fragment = (props) => jsxDEV("", props, void 0);
export {
Fragment,
jsxDEV
};

8
_node_modules/hono/dist/jsx/dom/jsx-runtime.js generated vendored Normal file
View File

@@ -0,0 +1,8 @@
// src/jsx/dom/jsx-runtime.ts
import { jsxDEV, Fragment } from "./jsx-dev-runtime.js";
import { jsxDEV as jsxDEV2 } from "./jsx-dev-runtime.js";
export {
Fragment,
jsxDEV as jsx,
jsxDEV2 as jsxs
};

597
_node_modules/hono/dist/jsx/dom/render.js generated vendored Normal file
View File

@@ -0,0 +1,597 @@
// src/jsx/dom/render.ts
import { toArray } from "../children.js";
import {
DOM_ERROR_HANDLER,
DOM_INTERNAL_TAG,
DOM_MEMO,
DOM_RENDERER,
DOM_STASH
} from "../constants.js";
import { globalContexts as globalJSXContexts, useContext } from "../context.js";
import { STASH_EFFECT } from "../hooks/index.js";
import { normalizeIntrinsicElementKey, styleObjectForEach } from "../utils.js";
import { createContext } from "./context.js";
var HONO_PORTAL_ELEMENT = "_hp";
var eventAliasMap = {
Change: "Input",
DoubleClick: "DblClick"
};
var nameSpaceMap = {
svg: "2000/svg",
math: "1998/Math/MathML"
};
var buildDataStack = [];
var refCleanupMap = /* @__PURE__ */ new WeakMap();
var nameSpaceContext = void 0;
var getNameSpaceContext = () => nameSpaceContext;
var isNodeString = (node) => "t" in node;
var eventCache = {
// pre-define events that are used very frequently
onClick: ["click", false]
};
var getEventSpec = (key) => {
if (!key.startsWith("on")) {
return void 0;
}
if (eventCache[key]) {
return eventCache[key];
}
const match = key.match(/^on([A-Z][a-zA-Z]+?(?:PointerCapture)?)(Capture)?$/);
if (match) {
const [, eventName, capture] = match;
return eventCache[key] = [(eventAliasMap[eventName] || eventName).toLowerCase(), !!capture];
}
return void 0;
};
var toAttributeName = (element, key) => nameSpaceContext && element instanceof SVGElement && /[A-Z]/.test(key) && (key in element.style || // Presentation attributes are findable in style object. "clip-path", "font-size", "stroke-width", etc.
key.match(/^(?:o|pai|str|u|ve)/)) ? key.replace(/([A-Z])/g, "-$1").toLowerCase() : key;
var applyProps = (container, attributes, oldAttributes) => {
attributes ||= {};
for (let key in attributes) {
const value = attributes[key];
if (key !== "children" && (!oldAttributes || oldAttributes[key] !== value)) {
key = normalizeIntrinsicElementKey(key);
const eventSpec = getEventSpec(key);
if (eventSpec) {
if (oldAttributes?.[key] !== value) {
if (oldAttributes) {
container.removeEventListener(eventSpec[0], oldAttributes[key], eventSpec[1]);
}
if (value != null) {
if (typeof value !== "function") {
throw new Error(`Event handler for "${key}" is not a function`);
}
container.addEventListener(eventSpec[0], value, eventSpec[1]);
}
}
} else if (key === "dangerouslySetInnerHTML" && value) {
container.innerHTML = value.__html;
} else if (key === "ref") {
let cleanup;
if (typeof value === "function") {
cleanup = value(container) || (() => value(null));
} else if (value && "current" in value) {
value.current = container;
cleanup = () => value.current = null;
}
refCleanupMap.set(container, cleanup);
} else if (key === "style") {
const style = container.style;
if (typeof value === "string") {
style.cssText = value;
} else {
style.cssText = "";
if (value != null) {
styleObjectForEach(value, style.setProperty.bind(style));
}
}
} else {
if (key === "value") {
const nodeName = container.nodeName;
if (nodeName === "INPUT" || nodeName === "TEXTAREA" || nodeName === "SELECT") {
;
container.value = value === null || value === void 0 || value === false ? null : value;
if (nodeName === "TEXTAREA") {
container.textContent = value;
continue;
} else if (nodeName === "SELECT") {
if (container.selectedIndex === -1) {
;
container.selectedIndex = 0;
}
continue;
}
}
} else if (key === "checked" && container.nodeName === "INPUT" || key === "selected" && container.nodeName === "OPTION") {
;
container[key] = value;
}
const k = toAttributeName(container, key);
if (value === null || value === void 0 || value === false) {
container.removeAttribute(k);
} else if (value === true) {
container.setAttribute(k, "");
} else if (typeof value === "string" || typeof value === "number") {
container.setAttribute(k, value);
} else {
container.setAttribute(k, value.toString());
}
}
}
}
if (oldAttributes) {
for (let key in oldAttributes) {
const value = oldAttributes[key];
if (key !== "children" && !(key in attributes)) {
key = normalizeIntrinsicElementKey(key);
const eventSpec = getEventSpec(key);
if (eventSpec) {
container.removeEventListener(eventSpec[0], value, eventSpec[1]);
} else if (key === "ref") {
refCleanupMap.get(container)?.();
} else {
container.removeAttribute(toAttributeName(container, key));
}
}
}
}
};
var invokeTag = (context, node) => {
node[DOM_STASH][0] = 0;
buildDataStack.push([context, node]);
const func = node.tag[DOM_RENDERER] || node.tag;
const props = func.defaultProps ? {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
...func.defaultProps,
...node.props
} : node.props;
try {
return [func.call(null, props)];
} finally {
buildDataStack.pop();
}
};
var getNextChildren = (node, container, nextChildren, childrenToRemove, callbacks) => {
if (node.vR?.length) {
childrenToRemove.push(...node.vR);
delete node.vR;
}
if (typeof node.tag === "function") {
node[DOM_STASH][1][STASH_EFFECT]?.forEach((data) => callbacks.push(data));
}
node.vC.forEach((child) => {
if (isNodeString(child)) {
nextChildren.push(child);
} else {
if (typeof child.tag === "function" || child.tag === "") {
child.c = container;
const currentNextChildrenIndex = nextChildren.length;
getNextChildren(child, container, nextChildren, childrenToRemove, callbacks);
if (child.s) {
for (let i = currentNextChildrenIndex; i < nextChildren.length; i++) {
nextChildren[i].s = true;
}
child.s = false;
}
} else {
nextChildren.push(child);
if (child.vR?.length) {
childrenToRemove.push(...child.vR);
delete child.vR;
}
}
}
});
};
var findInsertBefore = (node) => {
for (; ; node = node.tag === HONO_PORTAL_ELEMENT || !node.vC || !node.pP ? node.nN : node.vC[0]) {
if (!node) {
return null;
}
if (node.tag !== HONO_PORTAL_ELEMENT && node.e) {
return node.e;
}
}
};
var removeNode = (node) => {
if (!isNodeString(node)) {
node[DOM_STASH]?.[1][STASH_EFFECT]?.forEach((data) => data[2]?.());
refCleanupMap.get(node.e)?.();
if (node.p === 2) {
node.vC?.forEach((n) => n.p = 2);
}
node.vC?.forEach(removeNode);
}
if (!node.p) {
node.e?.remove();
delete node.e;
}
if (typeof node.tag === "function") {
updateMap.delete(node);
fallbackUpdateFnArrayMap.delete(node);
delete node[DOM_STASH][3];
node.a = true;
}
};
var apply = (node, container, isNew) => {
node.c = container;
applyNodeObject(node, container, isNew);
};
var findChildNodeIndex = (childNodes, child) => {
if (!child) {
return;
}
for (let i = 0, len = childNodes.length; i < len; i++) {
if (childNodes[i] === child) {
return i;
}
}
return;
};
var cancelBuild = /* @__PURE__ */ Symbol();
var applyNodeObject = (node, container, isNew) => {
const next = [];
const remove = [];
const callbacks = [];
getNextChildren(node, container, next, remove, callbacks);
remove.forEach(removeNode);
const childNodes = isNew ? void 0 : container.childNodes;
let offset;
let insertBeforeNode = null;
if (isNew) {
offset = -1;
} else if (!childNodes.length) {
offset = 0;
} else {
const offsetByNextNode = findChildNodeIndex(childNodes, findInsertBefore(node.nN));
if (offsetByNextNode !== void 0) {
insertBeforeNode = childNodes[offsetByNextNode];
offset = offsetByNextNode;
} else {
offset = findChildNodeIndex(childNodes, next.find((n) => n.tag !== HONO_PORTAL_ELEMENT && n.e)?.e) ?? -1;
}
if (offset === -1) {
isNew = true;
}
}
for (let i = 0, len = next.length; i < len; i++, offset++) {
const child = next[i];
let el;
if (child.s && child.e) {
el = child.e;
child.s = false;
} else {
const isNewLocal = isNew || !child.e;
if (isNodeString(child)) {
if (child.e && child.d) {
child.e.textContent = child.t;
}
child.d = false;
el = child.e ||= document.createTextNode(child.t);
} else {
el = child.e ||= child.n ? document.createElementNS(child.n, child.tag) : document.createElement(child.tag);
applyProps(el, child.props, child.pP);
applyNodeObject(child, el, isNewLocal);
}
}
if (child.tag === HONO_PORTAL_ELEMENT) {
offset--;
} else if (isNew) {
if (!el.parentNode) {
container.appendChild(el);
}
} else if (childNodes[offset] !== el && childNodes[offset - 1] !== el) {
if (childNodes[offset + 1] === el) {
container.appendChild(childNodes[offset]);
} else {
container.insertBefore(el, insertBeforeNode || childNodes[offset] || null);
}
}
}
if (node.pP) {
delete node.pP;
}
if (callbacks.length) {
const useLayoutEffectCbs = [];
const useEffectCbs = [];
callbacks.forEach(([, useLayoutEffectCb, , useEffectCb, useInsertionEffectCb]) => {
if (useLayoutEffectCb) {
useLayoutEffectCbs.push(useLayoutEffectCb);
}
if (useEffectCb) {
useEffectCbs.push(useEffectCb);
}
useInsertionEffectCb?.();
});
useLayoutEffectCbs.forEach((cb) => cb());
if (useEffectCbs.length) {
requestAnimationFrame(() => {
useEffectCbs.forEach((cb) => cb());
});
}
}
};
var isSameContext = (oldContexts, newContexts) => !!(oldContexts && oldContexts.length === newContexts.length && oldContexts.every((ctx, i) => ctx[1] === newContexts[i][1]));
var fallbackUpdateFnArrayMap = /* @__PURE__ */ new WeakMap();
var build = (context, node, children) => {
const buildWithPreviousChildren = !children && node.pC;
if (children) {
node.pC ||= node.vC;
}
let foundErrorHandler;
try {
children ||= typeof node.tag == "function" ? invokeTag(context, node) : toArray(node.props.children);
if (children[0]?.tag === "" && children[0][DOM_ERROR_HANDLER]) {
foundErrorHandler = children[0][DOM_ERROR_HANDLER];
context[5].push([context, foundErrorHandler, node]);
}
const oldVChildren = buildWithPreviousChildren ? [...node.pC] : node.vC ? [...node.vC] : void 0;
const vChildren = [];
let prevNode;
for (let i = 0; i < children.length; i++) {
if (Array.isArray(children[i])) {
children.splice(i, 1, ...children[i].flat());
}
let child = buildNode(children[i]);
if (child) {
if (typeof child.tag === "function" && // eslint-disable-next-line @typescript-eslint/no-explicit-any
!child.tag[DOM_INTERNAL_TAG]) {
if (globalJSXContexts.length > 0) {
child[DOM_STASH][2] = globalJSXContexts.map((c) => [c, c.values.at(-1)]);
}
if (context[5]?.length) {
child[DOM_STASH][3] = context[5].at(-1);
}
}
let oldChild;
if (oldVChildren && oldVChildren.length) {
const i2 = oldVChildren.findIndex(
isNodeString(child) ? (c) => isNodeString(c) : child.key !== void 0 ? (c) => c.key === child.key && c.tag === child.tag : (c) => c.tag === child.tag
);
if (i2 !== -1) {
oldChild = oldVChildren[i2];
oldVChildren.splice(i2, 1);
}
}
if (oldChild) {
if (isNodeString(child)) {
if (oldChild.t !== child.t) {
;
oldChild.t = child.t;
oldChild.d = true;
}
child = oldChild;
} else {
const pP = oldChild.pP = oldChild.props;
oldChild.props = child.props;
oldChild.f ||= child.f || node.f;
if (typeof child.tag === "function") {
const oldContexts = oldChild[DOM_STASH][2];
oldChild[DOM_STASH][2] = child[DOM_STASH][2] || [];
oldChild[DOM_STASH][3] = child[DOM_STASH][3];
if (!oldChild.f && ((oldChild.o || oldChild) === child.o || // The code generated by the react compiler is memoized under this condition.
oldChild.tag[DOM_MEMO]?.(pP, oldChild.props)) && // The `memo` function is memoized under this condition.
isSameContext(oldContexts, oldChild[DOM_STASH][2])) {
oldChild.s = true;
}
}
child = oldChild;
}
} else if (!isNodeString(child) && nameSpaceContext) {
const ns = useContext(nameSpaceContext);
if (ns) {
child.n = ns;
}
}
if (!isNodeString(child) && !child.s) {
build(context, child);
delete child.f;
}
vChildren.push(child);
if (prevNode && !prevNode.s && !child.s) {
for (let p = prevNode; p && !isNodeString(p); p = p.vC?.at(-1)) {
p.nN = child;
}
}
prevNode = child;
}
}
node.vR = buildWithPreviousChildren ? [...node.vC, ...oldVChildren || []] : oldVChildren || [];
node.vC = vChildren;
if (buildWithPreviousChildren) {
delete node.pC;
}
} catch (e) {
node.f = true;
if (e === cancelBuild) {
if (foundErrorHandler) {
return;
} else {
throw e;
}
}
const [errorHandlerContext, errorHandler, errorHandlerNode] = node[DOM_STASH]?.[3] || [];
if (errorHandler) {
const fallbackUpdateFn = () => update([0, false, context[2]], errorHandlerNode);
const fallbackUpdateFnArray = fallbackUpdateFnArrayMap.get(errorHandlerNode) || [];
fallbackUpdateFnArray.push(fallbackUpdateFn);
fallbackUpdateFnArrayMap.set(errorHandlerNode, fallbackUpdateFnArray);
const fallback = errorHandler(e, () => {
const fnArray = fallbackUpdateFnArrayMap.get(errorHandlerNode);
if (fnArray) {
const i = fnArray.indexOf(fallbackUpdateFn);
if (i !== -1) {
fnArray.splice(i, 1);
return fallbackUpdateFn();
}
}
});
if (fallback) {
if (context[0] === 1) {
context[1] = true;
} else {
build(context, errorHandlerNode, [fallback]);
if ((errorHandler.length === 1 || context !== errorHandlerContext) && errorHandlerNode.c) {
apply(errorHandlerNode, errorHandlerNode.c, false);
return;
}
}
throw cancelBuild;
}
}
throw e;
} finally {
if (foundErrorHandler) {
context[5].pop();
}
}
};
var buildNode = (node) => {
if (node === void 0 || node === null || typeof node === "boolean") {
return void 0;
} else if (typeof node === "string" || typeof node === "number") {
return { t: node.toString(), d: true };
} else {
if ("vR" in node) {
node = {
tag: node.tag,
props: node.props,
key: node.key,
f: node.f,
type: node.tag,
ref: node.props.ref,
o: node.o || node
// eslint-disable-next-line @typescript-eslint/no-explicit-any
};
}
if (typeof node.tag === "function") {
;
node[DOM_STASH] = [0, []];
} else {
const ns = nameSpaceMap[node.tag];
if (ns) {
nameSpaceContext ||= createContext("");
node.props.children = [
{
tag: nameSpaceContext,
props: {
value: node.n = `http://www.w3.org/${ns}`,
children: node.props.children
}
}
];
}
}
return node;
}
};
var replaceContainer = (node, from, to) => {
if (node.c === from) {
node.c = to;
node.vC.forEach((child) => replaceContainer(child, from, to));
}
};
var updateSync = (context, node) => {
node[DOM_STASH][2]?.forEach(([c, v]) => {
c.values.push(v);
});
try {
build(context, node, void 0);
} catch {
return;
}
if (node.a) {
delete node.a;
return;
}
node[DOM_STASH][2]?.forEach(([c]) => {
c.values.pop();
});
if (context[0] !== 1 || !context[1]) {
apply(node, node.c, false);
}
};
var updateMap = /* @__PURE__ */ new WeakMap();
var currentUpdateSets = [];
var update = async (context, node) => {
context[5] ||= [];
const existing = updateMap.get(node);
if (existing) {
existing[0](void 0);
}
let resolve;
const promise = new Promise((r) => resolve = r);
updateMap.set(node, [
resolve,
() => {
if (context[2]) {
context[2](context, node, (context2) => {
updateSync(context2, node);
}).then(() => resolve(node));
} else {
updateSync(context, node);
resolve(node);
}
}
]);
if (currentUpdateSets.length) {
;
currentUpdateSets.at(-1).add(node);
} else {
await Promise.resolve();
const latest = updateMap.get(node);
if (latest) {
updateMap.delete(node);
latest[1]();
}
}
return promise;
};
var renderNode = (node, container) => {
const context = [];
context[5] = [];
context[4] = true;
build(context, node, void 0);
context[4] = false;
const fragment = document.createDocumentFragment();
apply(node, fragment, true);
replaceContainer(node, fragment, container);
container.replaceChildren(fragment);
};
var render = (jsxNode, container) => {
renderNode(buildNode({ tag: "", props: { children: jsxNode } }), container);
};
var flushSync = (callback) => {
const set = /* @__PURE__ */ new Set();
currentUpdateSets.push(set);
callback();
set.forEach((node) => {
const latest = updateMap.get(node);
if (latest) {
updateMap.delete(node);
latest[1]();
}
});
currentUpdateSets.pop();
};
var createPortal = (children, container, key) => ({
tag: HONO_PORTAL_ELEMENT,
props: {
children
},
key,
e: container,
p: 1
// eslint-disable-next-line @typescript-eslint/no-explicit-any
});
export {
build,
buildDataStack,
buildNode,
createPortal,
flushSync,
getNameSpaceContext,
render,
renderNode,
update
};

33
_node_modules/hono/dist/jsx/dom/server.js generated vendored Normal file
View File

@@ -0,0 +1,33 @@
// src/jsx/dom/server.ts
import { renderToReadableStream as renderToReadableStreamHono } from "../streaming.js";
import version from "./index.js";
var renderToString = (element, options = {}) => {
if (Object.keys(options).length > 0) {
console.warn("options are not supported yet");
}
const res = element?.toString() ?? "";
if (typeof res !== "string") {
throw new Error("Async component is not supported in renderToString");
}
return res;
};
var renderToReadableStream = async (element, options = {}) => {
if (Object.keys(options).some((key) => key !== "onError")) {
console.warn("options are not supported yet, except onError");
}
if (!element || typeof element !== "object") {
element = element?.toString() ?? "";
}
return renderToReadableStreamHono(element, options.onError);
};
var server_default = {
renderToString,
renderToReadableStream,
version
};
export {
server_default as default,
renderToReadableStream,
renderToString,
version
};

10
_node_modules/hono/dist/jsx/dom/utils.js generated vendored Normal file
View File

@@ -0,0 +1,10 @@
// src/jsx/dom/utils.ts
import { DOM_INTERNAL_TAG } from "../constants.js";
var setInternalTagFlag = (fn) => {
;
fn[DOM_INTERNAL_TAG] = true;
return fn;
};
export {
setInternalTagFlag
};