@dxos/web-context-react 0.0.0 → 0.8.4-main.16b68245aa

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/README.md CHANGED
@@ -40,7 +40,7 @@ import { useWebComponentContext } from '@dxos/web-context-react';
40
40
 
41
41
  const MyComponent = () => {
42
42
  const theme = useWebComponentContext(ThemeContext, { subscribe: true });
43
-
43
+
44
44
  return <div style={{ color: theme?.color }}>Hello World</div>;
45
45
  };
46
46
  ```
@@ -0,0 +1,192 @@
1
+ // src/index.ts
2
+ export * from "@dxos/web-context";
3
+
4
+ // src/consumer.ts
5
+ import { useContext as useContext2, useEffect as useEffect2, useState } from "react";
6
+ import { ContextRequestEvent as ContextRequestEvent2 } from "@dxos/web-context";
7
+
8
+ // src/internal.ts
9
+ import { createContext } from "react";
10
+ var HostElementContext = createContext(void 0);
11
+
12
+ // src/provider.tsx
13
+ import React, { createContext as createContext2, useCallback, useContext, useEffect, useRef } from "react";
14
+ import { CONTEXT_PROVIDER_EVENT, CONTEXT_REQUEST_EVENT, ContextProviderEvent, ContextRequestEvent } from "@dxos/web-context";
15
+ var ContextRequestHandlerContext = /* @__PURE__ */ createContext2(void 0);
16
+ function tryHandleContextRequest(event) {
17
+ return false;
18
+ }
19
+ function useContextRequestHandler() {
20
+ return useContext(ContextRequestHandlerContext);
21
+ }
22
+ var ContextProtocolProvider = ({ context, value, children }) => {
23
+ const parentHandler = useContext(ContextRequestHandlerContext);
24
+ const subscriptions = useRef(/* @__PURE__ */ new WeakMap()).current;
25
+ const subscriptionRefs = useRef(/* @__PURE__ */ new Set()).current;
26
+ const valueRef = useRef(value);
27
+ useEffect(() => {
28
+ valueRef.current = value;
29
+ }, [
30
+ value
31
+ ]);
32
+ const handleRequest = useCallback((event) => {
33
+ if (event.context !== context) {
34
+ if (parentHandler) {
35
+ return parentHandler(event);
36
+ }
37
+ return false;
38
+ }
39
+ const currentValue = valueRef.current;
40
+ if (event.subscribe) {
41
+ const callback = event.callback;
42
+ const consumerHost = event.contextTarget || event.composedPath()[0];
43
+ const unsubscribe = () => {
44
+ const info = subscriptions.get(callback);
45
+ if (info) {
46
+ subscriptionRefs.delete(info.ref);
47
+ subscriptions.delete(callback);
48
+ }
49
+ };
50
+ const ref = new WeakRef(callback);
51
+ subscriptions.set(callback, {
52
+ unsubscribe,
53
+ consumerHost,
54
+ ref
55
+ });
56
+ subscriptionRefs.add(ref);
57
+ event.callback(currentValue, unsubscribe);
58
+ } else {
59
+ event.callback(currentValue);
60
+ }
61
+ return true;
62
+ }, [
63
+ context,
64
+ parentHandler
65
+ ]);
66
+ const handleContextRequestEvent = useCallback((e) => {
67
+ const event = e;
68
+ if (handleRequest(event)) {
69
+ event.stopImmediatePropagation();
70
+ }
71
+ }, [
72
+ handleRequest
73
+ ]);
74
+ const handleContextProviderEvent = useCallback((e) => {
75
+ const event = e;
76
+ if (event.context !== context) {
77
+ return;
78
+ }
79
+ if (containerRef.current && event.contextTarget === containerRef.current) {
80
+ return;
81
+ }
82
+ const seen = /* @__PURE__ */ new Set();
83
+ for (const ref of subscriptionRefs) {
84
+ const callback = ref.deref();
85
+ if (!callback) {
86
+ subscriptionRefs.delete(ref);
87
+ continue;
88
+ }
89
+ const info = subscriptions.get(callback);
90
+ if (!info) {
91
+ continue;
92
+ }
93
+ if (seen.has(callback)) {
94
+ continue;
95
+ }
96
+ seen.add(callback);
97
+ info.consumerHost.dispatchEvent(new ContextRequestEvent(context, callback, {
98
+ subscribe: true,
99
+ target: info.consumerHost
100
+ }));
101
+ }
102
+ event.stopPropagation();
103
+ }, [
104
+ context
105
+ ]);
106
+ useEffect(() => {
107
+ for (const ref of subscriptionRefs) {
108
+ const callback = ref.deref();
109
+ if (!callback) {
110
+ subscriptionRefs.delete(ref);
111
+ continue;
112
+ }
113
+ const info = subscriptions.get(callback);
114
+ if (info) {
115
+ callback(value, info.unsubscribe);
116
+ }
117
+ }
118
+ }, [
119
+ value
120
+ ]);
121
+ const containerRef = useRef(null);
122
+ useEffect(() => {
123
+ const el = containerRef.current;
124
+ if (!el) {
125
+ return;
126
+ }
127
+ el.addEventListener(CONTEXT_REQUEST_EVENT, handleContextRequestEvent);
128
+ el.addEventListener(CONTEXT_PROVIDER_EVENT, handleContextProviderEvent);
129
+ el.dispatchEvent(new ContextProviderEvent(context, el));
130
+ return () => {
131
+ el.removeEventListener(CONTEXT_REQUEST_EVENT, handleContextRequestEvent);
132
+ el.removeEventListener(CONTEXT_PROVIDER_EVENT, handleContextProviderEvent);
133
+ subscriptionRefs.clear();
134
+ };
135
+ }, [
136
+ handleContextRequestEvent,
137
+ handleContextProviderEvent,
138
+ context
139
+ ]);
140
+ return /* @__PURE__ */ React.createElement(ContextRequestHandlerContext.Provider, {
141
+ value: handleRequest
142
+ }, /* @__PURE__ */ React.createElement("div", {
143
+ role: "none",
144
+ className: "contents",
145
+ ref: containerRef
146
+ }, children));
147
+ };
148
+
149
+ // src/consumer.ts
150
+ function useWebComponentContext(context, options) {
151
+ const [value, setValue] = useState(void 0);
152
+ const handler = useContextRequestHandler();
153
+ const hostElement = useContext2(HostElementContext);
154
+ useEffect2(() => {
155
+ let unsubscribeFn;
156
+ const callback = (newValue, unsubscribe) => {
157
+ setValue(newValue);
158
+ if (unsubscribe) {
159
+ unsubscribeFn = unsubscribe;
160
+ }
161
+ };
162
+ const targetElement = options?.element ?? hostElement ?? document.body;
163
+ const event = new ContextRequestEvent2(context, callback, {
164
+ subscribe: options?.subscribe,
165
+ target: targetElement
166
+ });
167
+ let handled = false;
168
+ if (handler) {
169
+ handled = handler(event);
170
+ }
171
+ if (!handled) {
172
+ targetElement.dispatchEvent(event);
173
+ }
174
+ return () => {
175
+ unsubscribeFn?.();
176
+ };
177
+ }, [
178
+ context,
179
+ options?.subscribe,
180
+ options?.element,
181
+ handler,
182
+ hostElement
183
+ ]);
184
+ return value;
185
+ }
186
+ export {
187
+ ContextProtocolProvider,
188
+ tryHandleContextRequest,
189
+ useContextRequestHandler,
190
+ useWebComponentContext
191
+ };
192
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/index.ts", "../../../src/consumer.ts", "../../../src/internal.ts", "../../../src/provider.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nexport * from '@dxos/web-context';\n\nexport * from './consumer';\nexport * from './provider';\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useContext, useEffect, useState } from 'react';\n\nimport { ContextRequestEvent, type ContextType, type UnknownContext } from '@dxos/web-context';\n\nimport { HostElementContext } from './internal';\nimport { useContextRequestHandler } from './provider';\n\n/**\n * Options for useWebComponentContext hook\n */\nexport interface UseWebComponentContextOptions {\n /**\n * Whether to subscribe to context updates.\n * If true, the returned value will update when the provider's value changes.\n * Default: false\n */\n subscribe?: boolean;\n\n /**\n * The element to dispatch the context-request event from.\n * This is only used when there's no React provider in the tree.\n * Default: document.body\n */\n element?: HTMLElement;\n}\n\n/**\n * A React hook that requests context using the Web Component Context Protocol.\n *\n * This first tries to use the React context chain (for providers in the same\n * React tree), then falls back to dispatching a DOM event (for web component\n * providers).\n *\n * @param context - The context key to request\n * @param options - Optional configuration\n * @returns The context value or undefined\n */\nexport function useWebComponentContext<T extends UnknownContext>(\n context: T,\n options?: UseWebComponentContextOptions,\n): ContextType<T> | undefined {\n const [value, setValue] = useState<ContextType<T> | undefined>(undefined);\n\n const handler = useContextRequestHandler();\n const hostElement = useContext(HostElementContext);\n\n useEffect(() => {\n let unsubscribeFn: (() => void) | undefined;\n\n const callback = (newValue: ContextType<T>, unsubscribe?: () => void) => {\n setValue(newValue);\n if (unsubscribe) {\n unsubscribeFn = unsubscribe;\n }\n };\n\n const targetElement = options?.element ?? hostElement ?? document.body;\n\n const event = new ContextRequestEvent(context, callback, {\n subscribe: options?.subscribe,\n target: targetElement,\n });\n\n let handled = false;\n if (handler) {\n handled = handler(event);\n }\n\n if (!handled) {\n targetElement.dispatchEvent(event);\n }\n\n return () => {\n unsubscribeFn?.();\n };\n }, [context, options?.subscribe, options?.element, handler, hostElement]);\n\n return value;\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { createContext } from 'react';\n\n/**\n * Internal React context for passing the host element to nested components.\n * This allows useWebComponentContext to dispatch events from the custom element.\n */\nexport const HostElementContext = createContext<HTMLElement | undefined>(undefined);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, {\n type JSX,\n type PropsWithChildren,\n createContext,\n useCallback,\n useContext,\n useEffect,\n useRef,\n} from 'react';\n\nimport {\n CONTEXT_PROVIDER_EVENT,\n CONTEXT_REQUEST_EVENT,\n type ContextCallback,\n ContextProviderEvent,\n ContextRequestEvent,\n type ContextType,\n type UnknownContext,\n} from '@dxos/web-context';\n\n/**\n * Handler function type for context requests passed via React context\n */\ntype ContextRequestHandler = (event: ContextRequestEvent<UnknownContext>) => boolean;\n\n/**\n * Internal React context for passing context request handlers down the tree.\n * This allows useWebComponentContext to work synchronously in React.\n */\nconst ContextRequestHandlerContext = createContext<ContextRequestHandler | undefined>(undefined);\n\n/**\n * Try to handle a context request using the React context chain.\n * Returns true if handled, false otherwise.\n * Used internally by useWebComponentContext.\n */\nexport function tryHandleContextRequest(event: ContextRequestEvent<UnknownContext>): boolean {\n // This function is intended to be used where useContext is invalid (outside component),\n // but context handling in React MUST happen inside components.\n // So this helper might be less useful in React than in Solid if not used inside a hook/component.\n // However, we can export the context itself for consumers to use `useContext`.\n return false;\n}\n\n/**\n * Get the context request handler from React context.\n * Used internally by useWebComponentContext.\n */\nexport function useContextRequestHandler(): ContextRequestHandler | undefined {\n return useContext(ContextRequestHandlerContext);\n}\n\n/**\n * Props for the ContextProtocolProvider component\n */\nexport interface ContextProtocolProviderProps<T extends UnknownContext> {\n /** The context key to provide */\n context: T;\n /** The value to provide */\n value: ContextType<T>;\n}\n\n/**\n * A provider component that:\n * 1. Handles context-request events from web components (via DOM events)\n * 2. Handles context requests from React consumers (via React context)\n * 3. Supports subscriptions for reactive updates\n * 4. Uses WeakRef for subscriptions to prevent memory leaks\n */\nexport const ContextProtocolProvider = <T extends UnknownContext>({\n context,\n value,\n children,\n}: PropsWithChildren<ContextProtocolProviderProps<T>>): JSX.Element => {\n // Get parent handler if one exists (for nested providers)\n const parentHandler = useContext(ContextRequestHandlerContext);\n\n // Track subscriptions with their stable unsubscribe functions and consumer host elements\n interface SubscriptionInfo {\n unsubscribe: () => void;\n consumerHost: Element;\n ref: WeakRef<ContextCallback<ContextType<T>>>;\n }\n\n // We use refs for mutable state that doesn't trigger re-renders\n const subscriptions = useRef(new WeakMap<ContextCallback<ContextType<T>>, SubscriptionInfo>()).current;\n const subscriptionRefs = useRef(new Set<WeakRef<ContextCallback<ContextType<T>>>>()).current;\n const valueRef = useRef(value);\n\n // Update value ref when prop changes\n useEffect(() => {\n valueRef.current = value;\n }, [value]);\n\n // Core handler logic\n const handleRequest = useCallback(\n (event: ContextRequestEvent<UnknownContext>): boolean => {\n if (event.context !== context) {\n if (parentHandler) {\n return parentHandler(event);\n }\n return false;\n }\n\n const currentValue = valueRef.current; // Use latest value\n\n if (event.subscribe) {\n const callback = event.callback as ContextCallback<ContextType<T>>;\n const consumerHost = event.contextTarget || (event.composedPath()[0] as Element);\n\n const unsubscribe = () => {\n const info = subscriptions.get(callback);\n if (info) {\n subscriptionRefs.delete(info.ref);\n subscriptions.delete(callback);\n }\n };\n\n const ref = new WeakRef(callback);\n subscriptions.set(callback, { unsubscribe, consumerHost, ref });\n subscriptionRefs.add(ref);\n\n event.callback(currentValue, unsubscribe);\n } else {\n event.callback(currentValue);\n }\n\n return true;\n },\n [context, parentHandler], // Dependencies\n );\n\n // Handle DOM context-request events\n const handleContextRequestEvent = useCallback(\n (e: Event) => {\n const event = e as ContextRequestEvent<UnknownContext>;\n if (handleRequest(event)) {\n event.stopImmediatePropagation();\n }\n },\n [handleRequest],\n );\n\n // Handle context-provider events\n const handleContextProviderEvent = useCallback(\n (e: Event) => {\n const event = e as ContextProviderEvent<UnknownContext>;\n if (event.context !== context) {\n return;\n }\n if (containerRef.current && event.contextTarget === containerRef.current) {\n return;\n }\n\n const seen = new Set<ContextCallback<ContextType<T>>>();\n for (const ref of subscriptionRefs) {\n const callback = ref.deref();\n if (!callback) {\n subscriptionRefs.delete(ref);\n continue;\n }\n\n const info = subscriptions.get(callback);\n if (!info) {\n continue;\n }\n\n if (seen.has(callback)) {\n continue;\n }\n seen.add(callback);\n\n info.consumerHost.dispatchEvent(\n new ContextRequestEvent(context, callback, { subscribe: true, target: info.consumerHost }),\n );\n }\n event.stopPropagation();\n },\n [context],\n );\n\n // Notify subscribers when value changes.\n useEffect(() => {\n // Skip notification if value hasn't changed? React does this for us if we use dependencies correctly?\n // No, we need to imperatively call callbacks.\n // value constraint is in the dependency array.\n\n for (const ref of subscriptionRefs) {\n const callback = ref.deref();\n if (!callback) {\n subscriptionRefs.delete(ref);\n continue;\n }\n const info = subscriptions.get(callback);\n if (info) {\n callback(value, info.unsubscribe);\n }\n }\n }, [value]);\n\n const containerRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const el = containerRef.current;\n if (!el) {\n return;\n }\n\n el.addEventListener(CONTEXT_REQUEST_EVENT, handleContextRequestEvent);\n el.addEventListener(CONTEXT_PROVIDER_EVENT, handleContextProviderEvent);\n\n // Announce provider.\n el.dispatchEvent(new ContextProviderEvent(context, el));\n\n return () => {\n el.removeEventListener(CONTEXT_REQUEST_EVENT, handleContextRequestEvent);\n el.removeEventListener(CONTEXT_PROVIDER_EVENT, handleContextProviderEvent);\n subscriptionRefs.clear();\n };\n }, [handleContextRequestEvent, handleContextProviderEvent, context]);\n\n return (\n <ContextRequestHandlerContext.Provider value={handleRequest}>\n <div role='none' className='contents' ref={containerRef}>\n {children}\n </div>\n </ContextRequestHandlerContext.Provider>\n );\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["useContext", "useEffect", "useState", "ContextRequestEvent", "createContext", "HostElementContext", "undefined", "React", "createContext", "useCallback", "useContext", "useEffect", "useRef", "CONTEXT_PROVIDER_EVENT", "CONTEXT_REQUEST_EVENT", "ContextProviderEvent", "ContextRequestEvent", "ContextRequestHandlerContext", "undefined", "tryHandleContextRequest", "event", "useContextRequestHandler", "ContextProtocolProvider", "context", "value", "children", "parentHandler", "subscriptions", "WeakMap", "current", "subscriptionRefs", "Set", "valueRef", "handleRequest", "currentValue", "subscribe", "callback", "consumerHost", "contextTarget", "composedPath", "unsubscribe", "info", "get", "delete", "ref", "WeakRef", "set", "add", "handleContextRequestEvent", "e", "stopImmediatePropagation", "handleContextProviderEvent", "containerRef", "seen", "deref", "has", "dispatchEvent", "target", "stopPropagation", "el", "addEventListener", "removeEventListener", "clear", "Provider", "div", "role", "className", "useWebComponentContext", "context", "options", "value", "setValue", "useState", "undefined", "handler", "useContextRequestHandler", "hostElement", "useContext", "HostElementContext", "useEffect", "unsubscribeFn", "callback", "newValue", "unsubscribe", "targetElement", "element", "document", "body", "event", "ContextRequestEvent", "subscribe", "target", "handled", "dispatchEvent"]
7
+ }
@@ -0,0 +1 @@
1
+ {"inputs":{"src/internal.ts":{"bytes":1122,"imports":[{"path":"react","kind":"import-statement","external":true}],"format":"esm"},"src/provider.tsx":{"bytes":21080,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/web-context","kind":"import-statement","external":true}],"format":"esm"},"src/consumer.ts":{"bytes":6500,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/web-context","kind":"import-statement","external":true},{"path":"src/internal.ts","kind":"import-statement","original":"./internal"},{"path":"src/provider.tsx","kind":"import-statement","original":"./provider"}],"format":"esm"},"src/index.ts":{"bytes":575,"imports":[{"path":"@dxos/web-context","kind":"import-statement","external":true},{"path":"src/consumer.ts","kind":"import-statement","original":"./consumer"},{"path":"src/provider.tsx","kind":"import-statement","original":"./provider"}],"format":"esm"}},"outputs":{"dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":15075},"dist/lib/browser/index.mjs":{"imports":[{"path":"@dxos/web-context","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/web-context","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/web-context","kind":"import-statement","external":true}],"exports":["ContextProtocolProvider","tryHandleContextRequest","useContextRequestHandler","useWebComponentContext"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":35},"src/consumer.ts":{"bytesInOutput":1096},"src/internal.ts":{"bytesInOutput":87},"src/provider.tsx":{"bytesInOutput":4009}},"bytes":5478}}}
@@ -0,0 +1,194 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+
3
+ // src/index.ts
4
+ export * from "@dxos/web-context";
5
+
6
+ // src/consumer.ts
7
+ import { useContext as useContext2, useEffect as useEffect2, useState } from "react";
8
+ import { ContextRequestEvent as ContextRequestEvent2 } from "@dxos/web-context";
9
+
10
+ // src/internal.ts
11
+ import { createContext } from "react";
12
+ var HostElementContext = createContext(void 0);
13
+
14
+ // src/provider.tsx
15
+ import React, { createContext as createContext2, useCallback, useContext, useEffect, useRef } from "react";
16
+ import { CONTEXT_PROVIDER_EVENT, CONTEXT_REQUEST_EVENT, ContextProviderEvent, ContextRequestEvent } from "@dxos/web-context";
17
+ var ContextRequestHandlerContext = /* @__PURE__ */ createContext2(void 0);
18
+ function tryHandleContextRequest(event) {
19
+ return false;
20
+ }
21
+ function useContextRequestHandler() {
22
+ return useContext(ContextRequestHandlerContext);
23
+ }
24
+ var ContextProtocolProvider = ({ context, value, children }) => {
25
+ const parentHandler = useContext(ContextRequestHandlerContext);
26
+ const subscriptions = useRef(/* @__PURE__ */ new WeakMap()).current;
27
+ const subscriptionRefs = useRef(/* @__PURE__ */ new Set()).current;
28
+ const valueRef = useRef(value);
29
+ useEffect(() => {
30
+ valueRef.current = value;
31
+ }, [
32
+ value
33
+ ]);
34
+ const handleRequest = useCallback((event) => {
35
+ if (event.context !== context) {
36
+ if (parentHandler) {
37
+ return parentHandler(event);
38
+ }
39
+ return false;
40
+ }
41
+ const currentValue = valueRef.current;
42
+ if (event.subscribe) {
43
+ const callback = event.callback;
44
+ const consumerHost = event.contextTarget || event.composedPath()[0];
45
+ const unsubscribe = () => {
46
+ const info = subscriptions.get(callback);
47
+ if (info) {
48
+ subscriptionRefs.delete(info.ref);
49
+ subscriptions.delete(callback);
50
+ }
51
+ };
52
+ const ref = new WeakRef(callback);
53
+ subscriptions.set(callback, {
54
+ unsubscribe,
55
+ consumerHost,
56
+ ref
57
+ });
58
+ subscriptionRefs.add(ref);
59
+ event.callback(currentValue, unsubscribe);
60
+ } else {
61
+ event.callback(currentValue);
62
+ }
63
+ return true;
64
+ }, [
65
+ context,
66
+ parentHandler
67
+ ]);
68
+ const handleContextRequestEvent = useCallback((e) => {
69
+ const event = e;
70
+ if (handleRequest(event)) {
71
+ event.stopImmediatePropagation();
72
+ }
73
+ }, [
74
+ handleRequest
75
+ ]);
76
+ const handleContextProviderEvent = useCallback((e) => {
77
+ const event = e;
78
+ if (event.context !== context) {
79
+ return;
80
+ }
81
+ if (containerRef.current && event.contextTarget === containerRef.current) {
82
+ return;
83
+ }
84
+ const seen = /* @__PURE__ */ new Set();
85
+ for (const ref of subscriptionRefs) {
86
+ const callback = ref.deref();
87
+ if (!callback) {
88
+ subscriptionRefs.delete(ref);
89
+ continue;
90
+ }
91
+ const info = subscriptions.get(callback);
92
+ if (!info) {
93
+ continue;
94
+ }
95
+ if (seen.has(callback)) {
96
+ continue;
97
+ }
98
+ seen.add(callback);
99
+ info.consumerHost.dispatchEvent(new ContextRequestEvent(context, callback, {
100
+ subscribe: true,
101
+ target: info.consumerHost
102
+ }));
103
+ }
104
+ event.stopPropagation();
105
+ }, [
106
+ context
107
+ ]);
108
+ useEffect(() => {
109
+ for (const ref of subscriptionRefs) {
110
+ const callback = ref.deref();
111
+ if (!callback) {
112
+ subscriptionRefs.delete(ref);
113
+ continue;
114
+ }
115
+ const info = subscriptions.get(callback);
116
+ if (info) {
117
+ callback(value, info.unsubscribe);
118
+ }
119
+ }
120
+ }, [
121
+ value
122
+ ]);
123
+ const containerRef = useRef(null);
124
+ useEffect(() => {
125
+ const el = containerRef.current;
126
+ if (!el) {
127
+ return;
128
+ }
129
+ el.addEventListener(CONTEXT_REQUEST_EVENT, handleContextRequestEvent);
130
+ el.addEventListener(CONTEXT_PROVIDER_EVENT, handleContextProviderEvent);
131
+ el.dispatchEvent(new ContextProviderEvent(context, el));
132
+ return () => {
133
+ el.removeEventListener(CONTEXT_REQUEST_EVENT, handleContextRequestEvent);
134
+ el.removeEventListener(CONTEXT_PROVIDER_EVENT, handleContextProviderEvent);
135
+ subscriptionRefs.clear();
136
+ };
137
+ }, [
138
+ handleContextRequestEvent,
139
+ handleContextProviderEvent,
140
+ context
141
+ ]);
142
+ return /* @__PURE__ */ React.createElement(ContextRequestHandlerContext.Provider, {
143
+ value: handleRequest
144
+ }, /* @__PURE__ */ React.createElement("div", {
145
+ role: "none",
146
+ className: "contents",
147
+ ref: containerRef
148
+ }, children));
149
+ };
150
+
151
+ // src/consumer.ts
152
+ function useWebComponentContext(context, options) {
153
+ const [value, setValue] = useState(void 0);
154
+ const handler = useContextRequestHandler();
155
+ const hostElement = useContext2(HostElementContext);
156
+ useEffect2(() => {
157
+ let unsubscribeFn;
158
+ const callback = (newValue, unsubscribe) => {
159
+ setValue(newValue);
160
+ if (unsubscribe) {
161
+ unsubscribeFn = unsubscribe;
162
+ }
163
+ };
164
+ const targetElement = options?.element ?? hostElement ?? document.body;
165
+ const event = new ContextRequestEvent2(context, callback, {
166
+ subscribe: options?.subscribe,
167
+ target: targetElement
168
+ });
169
+ let handled = false;
170
+ if (handler) {
171
+ handled = handler(event);
172
+ }
173
+ if (!handled) {
174
+ targetElement.dispatchEvent(event);
175
+ }
176
+ return () => {
177
+ unsubscribeFn?.();
178
+ };
179
+ }, [
180
+ context,
181
+ options?.subscribe,
182
+ options?.element,
183
+ handler,
184
+ hostElement
185
+ ]);
186
+ return value;
187
+ }
188
+ export {
189
+ ContextProtocolProvider,
190
+ tryHandleContextRequest,
191
+ useContextRequestHandler,
192
+ useWebComponentContext
193
+ };
194
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/index.ts", "../../../src/consumer.ts", "../../../src/internal.ts", "../../../src/provider.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nexport * from '@dxos/web-context';\n\nexport * from './consumer';\nexport * from './provider';\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useContext, useEffect, useState } from 'react';\n\nimport { ContextRequestEvent, type ContextType, type UnknownContext } from '@dxos/web-context';\n\nimport { HostElementContext } from './internal';\nimport { useContextRequestHandler } from './provider';\n\n/**\n * Options for useWebComponentContext hook\n */\nexport interface UseWebComponentContextOptions {\n /**\n * Whether to subscribe to context updates.\n * If true, the returned value will update when the provider's value changes.\n * Default: false\n */\n subscribe?: boolean;\n\n /**\n * The element to dispatch the context-request event from.\n * This is only used when there's no React provider in the tree.\n * Default: document.body\n */\n element?: HTMLElement;\n}\n\n/**\n * A React hook that requests context using the Web Component Context Protocol.\n *\n * This first tries to use the React context chain (for providers in the same\n * React tree), then falls back to dispatching a DOM event (for web component\n * providers).\n *\n * @param context - The context key to request\n * @param options - Optional configuration\n * @returns The context value or undefined\n */\nexport function useWebComponentContext<T extends UnknownContext>(\n context: T,\n options?: UseWebComponentContextOptions,\n): ContextType<T> | undefined {\n const [value, setValue] = useState<ContextType<T> | undefined>(undefined);\n\n const handler = useContextRequestHandler();\n const hostElement = useContext(HostElementContext);\n\n useEffect(() => {\n let unsubscribeFn: (() => void) | undefined;\n\n const callback = (newValue: ContextType<T>, unsubscribe?: () => void) => {\n setValue(newValue);\n if (unsubscribe) {\n unsubscribeFn = unsubscribe;\n }\n };\n\n const targetElement = options?.element ?? hostElement ?? document.body;\n\n const event = new ContextRequestEvent(context, callback, {\n subscribe: options?.subscribe,\n target: targetElement,\n });\n\n let handled = false;\n if (handler) {\n handled = handler(event);\n }\n\n if (!handled) {\n targetElement.dispatchEvent(event);\n }\n\n return () => {\n unsubscribeFn?.();\n };\n }, [context, options?.subscribe, options?.element, handler, hostElement]);\n\n return value;\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { createContext } from 'react';\n\n/**\n * Internal React context for passing the host element to nested components.\n * This allows useWebComponentContext to dispatch events from the custom element.\n */\nexport const HostElementContext = createContext<HTMLElement | undefined>(undefined);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, {\n type JSX,\n type PropsWithChildren,\n createContext,\n useCallback,\n useContext,\n useEffect,\n useRef,\n} from 'react';\n\nimport {\n CONTEXT_PROVIDER_EVENT,\n CONTEXT_REQUEST_EVENT,\n type ContextCallback,\n ContextProviderEvent,\n ContextRequestEvent,\n type ContextType,\n type UnknownContext,\n} from '@dxos/web-context';\n\n/**\n * Handler function type for context requests passed via React context\n */\ntype ContextRequestHandler = (event: ContextRequestEvent<UnknownContext>) => boolean;\n\n/**\n * Internal React context for passing context request handlers down the tree.\n * This allows useWebComponentContext to work synchronously in React.\n */\nconst ContextRequestHandlerContext = createContext<ContextRequestHandler | undefined>(undefined);\n\n/**\n * Try to handle a context request using the React context chain.\n * Returns true if handled, false otherwise.\n * Used internally by useWebComponentContext.\n */\nexport function tryHandleContextRequest(event: ContextRequestEvent<UnknownContext>): boolean {\n // This function is intended to be used where useContext is invalid (outside component),\n // but context handling in React MUST happen inside components.\n // So this helper might be less useful in React than in Solid if not used inside a hook/component.\n // However, we can export the context itself for consumers to use `useContext`.\n return false;\n}\n\n/**\n * Get the context request handler from React context.\n * Used internally by useWebComponentContext.\n */\nexport function useContextRequestHandler(): ContextRequestHandler | undefined {\n return useContext(ContextRequestHandlerContext);\n}\n\n/**\n * Props for the ContextProtocolProvider component\n */\nexport interface ContextProtocolProviderProps<T extends UnknownContext> {\n /** The context key to provide */\n context: T;\n /** The value to provide */\n value: ContextType<T>;\n}\n\n/**\n * A provider component that:\n * 1. Handles context-request events from web components (via DOM events)\n * 2. Handles context requests from React consumers (via React context)\n * 3. Supports subscriptions for reactive updates\n * 4. Uses WeakRef for subscriptions to prevent memory leaks\n */\nexport const ContextProtocolProvider = <T extends UnknownContext>({\n context,\n value,\n children,\n}: PropsWithChildren<ContextProtocolProviderProps<T>>): JSX.Element => {\n // Get parent handler if one exists (for nested providers)\n const parentHandler = useContext(ContextRequestHandlerContext);\n\n // Track subscriptions with their stable unsubscribe functions and consumer host elements\n interface SubscriptionInfo {\n unsubscribe: () => void;\n consumerHost: Element;\n ref: WeakRef<ContextCallback<ContextType<T>>>;\n }\n\n // We use refs for mutable state that doesn't trigger re-renders\n const subscriptions = useRef(new WeakMap<ContextCallback<ContextType<T>>, SubscriptionInfo>()).current;\n const subscriptionRefs = useRef(new Set<WeakRef<ContextCallback<ContextType<T>>>>()).current;\n const valueRef = useRef(value);\n\n // Update value ref when prop changes\n useEffect(() => {\n valueRef.current = value;\n }, [value]);\n\n // Core handler logic\n const handleRequest = useCallback(\n (event: ContextRequestEvent<UnknownContext>): boolean => {\n if (event.context !== context) {\n if (parentHandler) {\n return parentHandler(event);\n }\n return false;\n }\n\n const currentValue = valueRef.current; // Use latest value\n\n if (event.subscribe) {\n const callback = event.callback as ContextCallback<ContextType<T>>;\n const consumerHost = event.contextTarget || (event.composedPath()[0] as Element);\n\n const unsubscribe = () => {\n const info = subscriptions.get(callback);\n if (info) {\n subscriptionRefs.delete(info.ref);\n subscriptions.delete(callback);\n }\n };\n\n const ref = new WeakRef(callback);\n subscriptions.set(callback, { unsubscribe, consumerHost, ref });\n subscriptionRefs.add(ref);\n\n event.callback(currentValue, unsubscribe);\n } else {\n event.callback(currentValue);\n }\n\n return true;\n },\n [context, parentHandler], // Dependencies\n );\n\n // Handle DOM context-request events\n const handleContextRequestEvent = useCallback(\n (e: Event) => {\n const event = e as ContextRequestEvent<UnknownContext>;\n if (handleRequest(event)) {\n event.stopImmediatePropagation();\n }\n },\n [handleRequest],\n );\n\n // Handle context-provider events\n const handleContextProviderEvent = useCallback(\n (e: Event) => {\n const event = e as ContextProviderEvent<UnknownContext>;\n if (event.context !== context) {\n return;\n }\n if (containerRef.current && event.contextTarget === containerRef.current) {\n return;\n }\n\n const seen = new Set<ContextCallback<ContextType<T>>>();\n for (const ref of subscriptionRefs) {\n const callback = ref.deref();\n if (!callback) {\n subscriptionRefs.delete(ref);\n continue;\n }\n\n const info = subscriptions.get(callback);\n if (!info) {\n continue;\n }\n\n if (seen.has(callback)) {\n continue;\n }\n seen.add(callback);\n\n info.consumerHost.dispatchEvent(\n new ContextRequestEvent(context, callback, { subscribe: true, target: info.consumerHost }),\n );\n }\n event.stopPropagation();\n },\n [context],\n );\n\n // Notify subscribers when value changes.\n useEffect(() => {\n // Skip notification if value hasn't changed? React does this for us if we use dependencies correctly?\n // No, we need to imperatively call callbacks.\n // value constraint is in the dependency array.\n\n for (const ref of subscriptionRefs) {\n const callback = ref.deref();\n if (!callback) {\n subscriptionRefs.delete(ref);\n continue;\n }\n const info = subscriptions.get(callback);\n if (info) {\n callback(value, info.unsubscribe);\n }\n }\n }, [value]);\n\n const containerRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const el = containerRef.current;\n if (!el) {\n return;\n }\n\n el.addEventListener(CONTEXT_REQUEST_EVENT, handleContextRequestEvent);\n el.addEventListener(CONTEXT_PROVIDER_EVENT, handleContextProviderEvent);\n\n // Announce provider.\n el.dispatchEvent(new ContextProviderEvent(context, el));\n\n return () => {\n el.removeEventListener(CONTEXT_REQUEST_EVENT, handleContextRequestEvent);\n el.removeEventListener(CONTEXT_PROVIDER_EVENT, handleContextProviderEvent);\n subscriptionRefs.clear();\n };\n }, [handleContextRequestEvent, handleContextProviderEvent, context]);\n\n return (\n <ContextRequestHandlerContext.Provider value={handleRequest}>\n <div role='none' className='contents' ref={containerRef}>\n {children}\n </div>\n </ContextRequestHandlerContext.Provider>\n );\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["useContext", "useEffect", "useState", "ContextRequestEvent", "createContext", "HostElementContext", "undefined", "React", "createContext", "useCallback", "useContext", "useEffect", "useRef", "CONTEXT_PROVIDER_EVENT", "CONTEXT_REQUEST_EVENT", "ContextProviderEvent", "ContextRequestEvent", "ContextRequestHandlerContext", "undefined", "tryHandleContextRequest", "event", "useContextRequestHandler", "ContextProtocolProvider", "context", "value", "children", "parentHandler", "subscriptions", "WeakMap", "current", "subscriptionRefs", "Set", "valueRef", "handleRequest", "currentValue", "subscribe", "callback", "consumerHost", "contextTarget", "composedPath", "unsubscribe", "info", "get", "delete", "ref", "WeakRef", "set", "add", "handleContextRequestEvent", "e", "stopImmediatePropagation", "handleContextProviderEvent", "containerRef", "seen", "deref", "has", "dispatchEvent", "target", "stopPropagation", "el", "addEventListener", "removeEventListener", "clear", "Provider", "div", "role", "className", "useWebComponentContext", "context", "options", "value", "setValue", "useState", "undefined", "handler", "useContextRequestHandler", "hostElement", "useContext", "HostElementContext", "useEffect", "unsubscribeFn", "callback", "newValue", "unsubscribe", "targetElement", "element", "document", "body", "event", "ContextRequestEvent", "subscribe", "target", "handled", "dispatchEvent"]
7
+ }
@@ -0,0 +1 @@
1
+ {"inputs":{"src/internal.ts":{"bytes":1122,"imports":[{"path":"react","kind":"import-statement","external":true}],"format":"esm"},"src/provider.tsx":{"bytes":21080,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/web-context","kind":"import-statement","external":true}],"format":"esm"},"src/consumer.ts":{"bytes":6500,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/web-context","kind":"import-statement","external":true},{"path":"src/internal.ts","kind":"import-statement","original":"./internal"},{"path":"src/provider.tsx","kind":"import-statement","original":"./provider"}],"format":"esm"},"src/index.ts":{"bytes":575,"imports":[{"path":"@dxos/web-context","kind":"import-statement","external":true},{"path":"src/consumer.ts","kind":"import-statement","original":"./consumer"},{"path":"src/provider.tsx","kind":"import-statement","original":"./provider"}],"format":"esm"}},"outputs":{"dist/lib/node-esm/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":15077},"dist/lib/node-esm/index.mjs":{"imports":[{"path":"@dxos/web-context","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/web-context","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/web-context","kind":"import-statement","external":true}],"exports":["ContextProtocolProvider","tryHandleContextRequest","useContextRequestHandler","useWebComponentContext"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":35},"src/consumer.ts":{"bytesInOutput":1096},"src/internal.ts":{"bytesInOutput":87},"src/provider.tsx":{"bytesInOutput":4009}},"bytes":5571}}}
@@ -0,0 +1,31 @@
1
+ import { type ContextType, type UnknownContext } from '@dxos/web-context';
2
+ /**
3
+ * Options for useWebComponentContext hook
4
+ */
5
+ export interface UseWebComponentContextOptions {
6
+ /**
7
+ * Whether to subscribe to context updates.
8
+ * If true, the returned value will update when the provider's value changes.
9
+ * Default: false
10
+ */
11
+ subscribe?: boolean;
12
+ /**
13
+ * The element to dispatch the context-request event from.
14
+ * This is only used when there's no React provider in the tree.
15
+ * Default: document.body
16
+ */
17
+ element?: HTMLElement;
18
+ }
19
+ /**
20
+ * A React hook that requests context using the Web Component Context Protocol.
21
+ *
22
+ * This first tries to use the React context chain (for providers in the same
23
+ * React tree), then falls back to dispatching a DOM event (for web component
24
+ * providers).
25
+ *
26
+ * @param context - The context key to request
27
+ * @param options - Optional configuration
28
+ * @returns The context value or undefined
29
+ */
30
+ export declare function useWebComponentContext<T extends UnknownContext>(context: T, options?: UseWebComponentContextOptions): ContextType<T> | undefined;
31
+ //# sourceMappingURL=consumer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consumer.d.ts","sourceRoot":"","sources":["../../../src/consumer.ts"],"names":[],"mappings":"AAMA,OAAO,EAAuB,KAAK,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAK/F;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;;OAIG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,cAAc,EAC7D,OAAO,EAAE,CAAC,EACV,OAAO,CAAC,EAAE,6BAA6B,GACtC,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS,CAsC5B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=consumer.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consumer.test.d.ts","sourceRoot":"","sources":["../../../src/consumer.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ export * from '@dxos/web-context';
2
+ export * from './consumer';
3
+ export * from './provider';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,mBAAmB,CAAC;AAElC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Internal React context for passing the host element to nested components.
3
+ * This allows useWebComponentContext to dispatch events from the custom element.
4
+ */
5
+ export declare const HostElementContext: import("react").Context<HTMLElement | undefined>;
6
+ //# sourceMappingURL=internal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../../src/internal.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,eAAO,MAAM,kBAAkB,kDAAoD,CAAC"}
@@ -0,0 +1,36 @@
1
+ import { type JSX, type PropsWithChildren } from 'react';
2
+ import { ContextRequestEvent, type ContextType, type UnknownContext } from '@dxos/web-context';
3
+ /**
4
+ * Handler function type for context requests passed via React context
5
+ */
6
+ type ContextRequestHandler = (event: ContextRequestEvent<UnknownContext>) => boolean;
7
+ /**
8
+ * Try to handle a context request using the React context chain.
9
+ * Returns true if handled, false otherwise.
10
+ * Used internally by useWebComponentContext.
11
+ */
12
+ export declare function tryHandleContextRequest(event: ContextRequestEvent<UnknownContext>): boolean;
13
+ /**
14
+ * Get the context request handler from React context.
15
+ * Used internally by useWebComponentContext.
16
+ */
17
+ export declare function useContextRequestHandler(): ContextRequestHandler | undefined;
18
+ /**
19
+ * Props for the ContextProtocolProvider component
20
+ */
21
+ export interface ContextProtocolProviderProps<T extends UnknownContext> {
22
+ /** The context key to provide */
23
+ context: T;
24
+ /** The value to provide */
25
+ value: ContextType<T>;
26
+ }
27
+ /**
28
+ * A provider component that:
29
+ * 1. Handles context-request events from web components (via DOM events)
30
+ * 2. Handles context requests from React consumers (via React context)
31
+ * 3. Supports subscriptions for reactive updates
32
+ * 4. Uses WeakRef for subscriptions to prevent memory leaks
33
+ */
34
+ export declare const ContextProtocolProvider: <T extends UnknownContext>({ context, value, children, }: PropsWithChildren<ContextProtocolProviderProps<T>>) => JSX.Element;
35
+ export {};
36
+ //# sourceMappingURL=provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/provider.tsx"],"names":[],"mappings":"AAIA,OAAc,EACZ,KAAK,GAAG,EACR,KAAK,iBAAiB,EAMvB,MAAM,OAAO,CAAC;AAEf,OAAO,EAKL,mBAAmB,EACnB,KAAK,WAAW,EAChB,KAAK,cAAc,EACpB,MAAM,mBAAmB,CAAC;AAE3B;;GAEG;AACH,KAAK,qBAAqB,GAAG,CAAC,KAAK,EAAE,mBAAmB,CAAC,cAAc,CAAC,KAAK,OAAO,CAAC;AAQrF;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,mBAAmB,CAAC,cAAc,CAAC,GAAG,OAAO,CAM3F;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,IAAI,qBAAqB,GAAG,SAAS,CAE5E;AAED;;GAEG;AACH,MAAM,WAAW,4BAA4B,CAAC,CAAC,SAAS,cAAc;IACpE,iCAAiC;IACjC,OAAO,EAAE,CAAC,CAAC;IACX,2BAA2B;IAC3B,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;CACvB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,GAAI,CAAC,SAAS,cAAc,iCAI7D,iBAAiB,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,KAAG,GAAG,CAAC,OA2J3D,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=provider.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.test.d.ts","sourceRoot":"","sources":["../../../src/provider.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ {"version":"7.0.0-dev.20260421.2","root":[[125,130]],"fileNames":["lib.es5.d.ts","lib.es2015.d.ts","lib.es2016.d.ts","lib.es2017.d.ts","lib.es2018.d.ts","lib.es2019.d.ts","lib.es2020.d.ts","lib.es2021.d.ts","lib.dom.d.ts","lib.es2015.core.d.ts","lib.es2015.collection.d.ts","lib.es2015.generator.d.ts","lib.es2015.iterable.d.ts","lib.es2015.promise.d.ts","lib.es2015.proxy.d.ts","lib.es2015.reflect.d.ts","lib.es2015.symbol.d.ts","lib.es2015.symbol.wellknown.d.ts","lib.es2016.array.include.d.ts","lib.es2016.intl.d.ts","lib.es2017.arraybuffer.d.ts","lib.es2017.date.d.ts","lib.es2017.object.d.ts","lib.es2017.sharedmemory.d.ts","lib.es2017.string.d.ts","lib.es2017.intl.d.ts","lib.es2017.typedarrays.d.ts","lib.es2018.asyncgenerator.d.ts","lib.es2018.asynciterable.d.ts","lib.es2018.intl.d.ts","lib.es2018.promise.d.ts","lib.es2018.regexp.d.ts","lib.es2019.array.d.ts","lib.es2019.object.d.ts","lib.es2019.string.d.ts","lib.es2019.symbol.d.ts","lib.es2019.intl.d.ts","lib.es2020.bigint.d.ts","lib.es2020.date.d.ts","lib.es2020.promise.d.ts","lib.es2020.sharedmemory.d.ts","lib.es2020.string.d.ts","lib.es2020.symbol.wellknown.d.ts","lib.es2020.intl.d.ts","lib.es2020.number.d.ts","lib.es2021.promise.d.ts","lib.es2021.string.d.ts","lib.es2021.weakref.d.ts","lib.es2021.intl.d.ts","lib.decorators.d.ts","lib.decorators.legacy.d.ts","../../../../../node_modules/.pnpm/@types+react@19.2.7/node_modules/@types/react/global.d.ts","../../../../../node_modules/.pnpm/csstype@3.2.3/node_modules/csstype/index.d.ts","../../../../../node_modules/.pnpm/@types+react@19.2.7/node_modules/@types/react/index.d.ts","../../../../../node_modules/.pnpm/@types+react-dom@19.2.3_@types+react@19.2.7/node_modules/@types/react-dom/client.d.ts","../../../../../node_modules/.pnpm/@types+aria-query@5.0.4/node_modules/@types/aria-query/index.d.ts","../../../../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/types/matches.d.ts","../../../../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/types/wait-for.d.ts","../../../../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/types/query-helpers.d.ts","../../../../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/types/queries.d.ts","../../../../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/types/get-queries-for-element.d.ts","../../../../../node_modules/.pnpm/pretty-format@27.5.1/node_modules/pretty-format/build/types.d.ts","../../../../../node_modules/.pnpm/pretty-format@27.5.1/node_modules/pretty-format/build/index.d.ts","../../../../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/types/screen.d.ts","../../../../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/types/wait-for-element-to-be-removed.d.ts","../../../../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/types/get-node-text.d.ts","../../../../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/types/events.d.ts","../../../../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/types/pretty-dom.d.ts","../../../../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/types/role-helpers.d.ts","../../../../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/types/config.d.ts","../../../../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/types/suggestions.d.ts","../../../../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/types/index.d.ts","../../../../../node_modules/.pnpm/@types+react-dom@19.2.3_@types+react@19.2.7/node_modules/@types/react-dom/test-utils/index.d.ts","../../../../../node_modules/.pnpm/@testing-library+react@16.3.0_@testing-library+dom@10.4.1_@types+react-dom@19.2.3_@type_20513faa518b6064909a901fb0e6bfbb/node_modules/@testing-library/react/types/index.d.ts","../../../../../node_modules/.pnpm/@vitest+pretty-format@4.1.5/node_modules/@vitest/pretty-format/dist/index.d.ts","../../../../../node_modules/.pnpm/@vitest+utils@4.1.5/node_modules/@vitest/utils/dist/display.d.ts","../../../../../node_modules/.pnpm/@vitest+utils@4.1.5/node_modules/@vitest/utils/dist/types.d.ts","../../../../../node_modules/.pnpm/@vitest+utils@4.1.5/node_modules/@vitest/utils/dist/helpers.d.ts","../../../../../node_modules/.pnpm/@vitest+utils@4.1.5/node_modules/@vitest/utils/dist/timers.d.ts","../../../../../node_modules/.pnpm/@vitest+utils@4.1.5/node_modules/@vitest/utils/dist/index.d.ts","../../../../../node_modules/.pnpm/@vitest+utils@4.1.5/node_modules/@vitest/utils/dist/types.d-BCElaP-c.d.ts","../../../../../node_modules/.pnpm/@vitest+utils@4.1.5/node_modules/@vitest/utils/dist/diff.d.ts","../../../../../node_modules/.pnpm/@vitest+runner@4.1.5/node_modules/@vitest/runner/dist/tasks.d-Bh0IjN67.d.ts","../../../../../node_modules/.pnpm/@vitest+runner@4.1.5/node_modules/@vitest/runner/dist/index.d.ts","../../../../../node_modules/.pnpm/vitest@4.1.5_@opentelemetry+api@1.9.0_@types+node@22.10.2_@vitest+browser-playwright@4._626b8fe3e7710073f867b39a5370dce1/node_modules/vitest/dist/chunks/traces.d.D2T_R8rx.d.ts","../../../../../node_modules/.pnpm/vite@8.0.10_@types+node@22.10.2_esbuild@0.28.0_jiti@2.6.1_terser@5.46.0_tsx@4.21.0_yaml@2.8.2/node_modules/vite/types/hmrPayload.d.ts","../../../../../node_modules/.pnpm/vite@8.0.10_@types+node@22.10.2_esbuild@0.28.0_jiti@2.6.1_terser@5.46.0_tsx@4.21.0_yaml@2.8.2/node_modules/vite/dist/node/chunks/moduleRunnerTransport.d.ts","../../../../../node_modules/.pnpm/vite@8.0.10_@types+node@22.10.2_esbuild@0.28.0_jiti@2.6.1_terser@5.46.0_tsx@4.21.0_yaml@2.8.2/node_modules/vite/types/customEvent.d.ts","../../../../../node_modules/.pnpm/vite@8.0.10_@types+node@22.10.2_esbuild@0.28.0_jiti@2.6.1_terser@5.46.0_tsx@4.21.0_yaml@2.8.2/node_modules/vite/types/hot.d.ts","../../../../../node_modules/.pnpm/vite@8.0.10_@types+node@22.10.2_esbuild@0.28.0_jiti@2.6.1_terser@5.46.0_tsx@4.21.0_yaml@2.8.2/node_modules/vite/dist/node/module-runner.d.ts","../../../../../node_modules/.pnpm/@vitest+snapshot@4.1.5/node_modules/@vitest/snapshot/dist/environment.d-DOJxxZV9.d.ts","../../../../../node_modules/.pnpm/@vitest+snapshot@4.1.5/node_modules/@vitest/snapshot/dist/rawSnapshot.d-D_X3-62x.d.ts","../../../../../node_modules/.pnpm/@vitest+snapshot@4.1.5/node_modules/@vitest/snapshot/dist/index.d.ts","../../../../../node_modules/.pnpm/vitest@4.1.5_@opentelemetry+api@1.9.0_@types+node@22.10.2_@vitest+browser-playwright@4._626b8fe3e7710073f867b39a5370dce1/node_modules/vitest/dist/chunks/config.d.A1h_Y6Jt.d.ts","../../../../../node_modules/.pnpm/vitest@4.1.5_@opentelemetry+api@1.9.0_@types+node@22.10.2_@vitest+browser-playwright@4._626b8fe3e7710073f867b39a5370dce1/node_modules/vitest/dist/chunks/environment.d.CrsxCzP1.d.ts","../../../../../node_modules/.pnpm/vitest@4.1.5_@opentelemetry+api@1.9.0_@types+node@22.10.2_@vitest+browser-playwright@4._626b8fe3e7710073f867b39a5370dce1/node_modules/vitest/dist/chunks/rpc.d.B_8sPU0w.d.ts","../../../../../node_modules/.pnpm/vitest@4.1.5_@opentelemetry+api@1.9.0_@types+node@22.10.2_@vitest+browser-playwright@4._626b8fe3e7710073f867b39a5370dce1/node_modules/vitest/dist/chunks/worker.d.ZpHpO4yb.d.ts","../../../../../node_modules/.pnpm/vitest@4.1.5_@opentelemetry+api@1.9.0_@types+node@22.10.2_@vitest+browser-playwright@4._626b8fe3e7710073f867b39a5370dce1/node_modules/vitest/dist/chunks/browser.d.BcoexmFG.d.ts","../../../../../node_modules/.pnpm/@vitest+spy@4.1.5/node_modules/@vitest/spy/optional-types.d.ts","../../../../../node_modules/.pnpm/@vitest+spy@4.1.5/node_modules/@vitest/spy/dist/index.d.ts","../../../../../node_modules/.pnpm/tinyrainbow@3.1.0/node_modules/tinyrainbow/dist/index.d.ts","../../../../../node_modules/.pnpm/@standard-schema+spec@1.1.0/node_modules/@standard-schema/spec/dist/index.d.ts","../../../../../node_modules/.pnpm/@types+deep-eql@4.0.2/node_modules/@types/deep-eql/index.d.ts","../../../../../node_modules/.pnpm/@types+chai@5.2.2/node_modules/@types/chai/index.d.ts","../../../../../node_modules/.pnpm/@vitest+expect@4.1.5/node_modules/@vitest/expect/dist/index.d.ts","../../../../../node_modules/.pnpm/@vitest+runner@4.1.5/node_modules/@vitest/runner/dist/utils.d.ts","../../../../../node_modules/.pnpm/tinybench@2.9.0/node_modules/tinybench/dist/index.d.ts","../../../../../node_modules/.pnpm/vitest@4.1.5_@opentelemetry+api@1.9.0_@types+node@22.10.2_@vitest+browser-playwright@4._626b8fe3e7710073f867b39a5370dce1/node_modules/vitest/dist/chunks/benchmark.d.DAaHLpsq.d.ts","../../../../../node_modules/.pnpm/vitest@4.1.5_@opentelemetry+api@1.9.0_@types+node@22.10.2_@vitest+browser-playwright@4._626b8fe3e7710073f867b39a5370dce1/node_modules/vitest/dist/chunks/global.d.DVsSRdQ5.d.ts","../../../../../node_modules/.pnpm/vitest@4.1.5_@opentelemetry+api@1.9.0_@types+node@22.10.2_@vitest+browser-playwright@4._626b8fe3e7710073f867b39a5370dce1/node_modules/vitest/optional-runtime-types.d.ts","../../../../../node_modules/.pnpm/@vitest+mocker@4.1.5_vite@8.0.10_@types+node@22.10.2_esbuild@0.28.0_jiti@2.6.1_terser@5.46.0_tsx@4.21.0_yaml@2.8.2_/node_modules/@vitest/mocker/dist/types.d-BjI5eAwu.d.ts","../../../../../node_modules/.pnpm/@vitest+mocker@4.1.5_vite@8.0.10_@types+node@22.10.2_esbuild@0.28.0_jiti@2.6.1_terser@5.46.0_tsx@4.21.0_yaml@2.8.2_/node_modules/@vitest/mocker/dist/index.d-B41z0AuW.d.ts","../../../../../node_modules/.pnpm/@vitest+mocker@4.1.5_vite@8.0.10_@types+node@22.10.2_esbuild@0.28.0_jiti@2.6.1_terser@5.46.0_tsx@4.21.0_yaml@2.8.2_/node_modules/@vitest/mocker/dist/index.d.ts","../../../../../node_modules/.pnpm/vitest@4.1.5_@opentelemetry+api@1.9.0_@types+node@22.10.2_@vitest+browser-playwright@4._626b8fe3e7710073f867b39a5370dce1/node_modules/vitest/dist/chunks/suite.d.udJtyAgw.d.ts","../../../../../node_modules/.pnpm/vitest@4.1.5_@opentelemetry+api@1.9.0_@types+node@22.10.2_@vitest+browser-playwright@4._626b8fe3e7710073f867b39a5370dce1/node_modules/vitest/dist/chunks/evaluatedModules.d.BxJ5omdx.d.ts","../../../../../node_modules/.pnpm/vitest@4.1.5_@opentelemetry+api@1.9.0_@types+node@22.10.2_@vitest+browser-playwright@4._626b8fe3e7710073f867b39a5370dce1/node_modules/vitest/dist/runners.d.ts","../../../../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/utils.d.ts","../../../../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/overloads.d.ts","../../../../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/branding.d.ts","../../../../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/messages.d.ts","../../../../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/index.d.ts","../../../../../node_modules/.pnpm/vitest@4.1.5_@opentelemetry+api@1.9.0_@types+node@22.10.2_@vitest+browser-playwright@4._626b8fe3e7710073f867b39a5370dce1/node_modules/vitest/dist/index.d.ts","../../../web-context/dist/types/src/protocol.d.ts","../../../web-context/dist/types/src/index.d.ts","../../src/internal.ts","../../src/provider.tsx","../../src/consumer.ts","../../src/consumer.test.tsx","../../src/index.ts","../../src/provider.test.tsx","../../../../../node_modules/.pnpm/@types+node@22.10.2/node_modules/@types/node/compatibility/disposable.d.ts","../../../../../node_modules/.pnpm/@types+node@22.10.2/node_modules/@types/node/compatibility/indexable.d.ts","../../../../../node_modules/.pnpm/@types+node@22.10.2/node_modules/@types/node/compatibility/iterators.d.ts","../../../../../node_modules/.pnpm/@types+node@22.10.2/node_modules/@types/node/compatibility/index.d.ts","../../../../../node_modules/.pnpm/@types+node@22.10.2/node_modules/@types/node/globals.typedarray.d.ts","../../../../../node_modules/.pnpm/@types+node@22.10.2/node_modules/@types/node/buffer.buffer.d.ts","../../../../../node_modules/.pnpm/buffer@6.0.3/node_modules/buffer/index.d.ts","../../../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/header.d.ts","../../../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/readable.d.ts","../../../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/file.d.ts","../../../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/fetch.d.ts","../../../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/formdata.d.ts","../../../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/connector.d.ts","../../../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/client.d.ts","../../../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/errors.d.ts","../../../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/dispatcher.d.ts","../../../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/global-dispatcher.d.ts","../../../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/global-origin.d.ts","../../../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/pool-stats.d.ts","../../../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/pool.d.ts","../../../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/handlers.d.ts","../../../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/balanced-pool.d.ts","../../../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/agent.d.ts","../../../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/mock-interceptor.d.ts","../../../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/mock-agent.d.ts","../../../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/mock-client.d.ts","../../../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/mock-pool.d.ts","../../../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/mock-errors.d.ts","../../../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/proxy-agent.d.ts","../../../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/env-http-proxy-agent.d.ts","../../../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/retry-handler.d.ts","../../../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/retry-agent.d.ts","../../../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/api.d.ts","../../../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/interceptors.d.ts","../../../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/util.d.ts","../../../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/cookies.d.ts","../../../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/patch.d.ts","../../../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/websocket.d.ts","../../../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/eventsource.d.ts","../../../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/filereader.d.ts","../../../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/diagnostics-channel.d.ts","../../../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/content-type.d.ts","../../../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/cache.d.ts","../../../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/index.d.ts","../../../../../node_modules/.pnpm/@types+node@22.10.2/node_modules/@types/node/globals.d.ts","../../../../../node_modules/.pnpm/@types+node@22.10.2/node_modules/@types/node/assert.d.ts","../../../../../node_modules/.pnpm/@types+node@22.10.2/node_modules/@types/node/assert/strict.d.ts","../../../../../node_modules/.pnpm/@types+node@22.10.2/node_modules/@types/node/async_hooks.d.ts","../../../../../node_modules/.pnpm/@types+node@22.10.2/node_modules/@types/node/buffer.d.ts","../../../../../node_modules/.pnpm/@types+node@22.10.2/node_modules/@types/node/child_process.d.ts","../../../../../node_modules/.pnpm/@types+node@22.10.2/node_modules/@types/node/cluster.d.ts","../../../../../node_modules/.pnpm/@types+node@22.10.2/node_modules/@types/node/console.d.ts","../../../../../node_modules/.pnpm/@types+node@22.10.2/node_modules/@types/node/constants.d.ts","../../../../../node_modules/.pnpm/@types+node@22.10.2/node_modules/@types/node/crypto.d.ts","../../../../../node_modules/.pnpm/@types+node@22.10.2/node_modules/@types/node/dgram.d.ts","../../../../../node_modules/.pnpm/@types+node@22.10.2/node_modules/@types/node/diagnostics_channel.d.ts","../../../../../node_modules/.pnpm/@types+node@22.10.2/node_modules/@types/node/dns.d.ts","../../../../../node_modules/.pnpm/@types+node@22.10.2/node_modules/@types/node/dns/promises.d.ts","../../../../../node_modules/.pnpm/@types+node@22.10.2/node_modules/@types/node/domain.d.ts","../../../../../node_modules/.pnpm/@types+node@22.10.2/node_modules/@types/node/dom-events.d.ts","../../../../../node_modules/.pnpm/@types+node@22.10.2/node_modules/@types/node/events.d.ts","../../../../../node_modules/.pnpm/@types+node@22.10.2/node_modules/@types/node/fs.d.ts","../../../../../node_modules/.pnpm/@types+node@22.10.2/node_modules/@types/node/fs/promises.d.ts","../../../../../node_modules/.pnpm/@types+node@22.10.2/node_modules/@types/node/http.d.ts","../../../../../node_modules/.pnpm/@types+node@22.10.2/node_modules/@types/node/http2.d.ts","../../../../../node_modules/.pnpm/@types+node@22.10.2/node_modules/@types/node/https.d.ts","../../../../../node_modules/.pnpm/@types+node@22.10.2/node_modules/@types/node/inspector.d.ts","../../../../../node_modules/.pnpm/@types+node@22.10.2/node_modules/@types/node/module.d.ts","../../../../../node_modules/.pnpm/@types+node@22.10.2/node_modules/@types/node/net.d.ts","../../../../../node_modules/.pnpm/@types+node@22.10.2/node_modules/@types/node/os.d.ts","../../../../../node_modules/.pnpm/@types+node@22.10.2/node_modules/@types/node/path.d.ts","../../../../../node_modules/.pnpm/@types+node@22.10.2/node_modules/@types/node/perf_hooks.d.ts","../../../../../node_modules/.pnpm/@types+node@22.10.2/node_modules/@types/node/process.d.ts","../../../../../node_modules/.pnpm/@types+node@22.10.2/node_modules/@types/node/punycode.d.ts","../../../../../node_modules/.pnpm/@types+node@22.10.2/node_modules/@types/node/querystring.d.ts","../../../../../node_modules/.pnpm/@types+node@22.10.2/node_modules/@types/node/readline.d.ts","../../../../../node_modules/.pnpm/@types+node@22.10.2/node_modules/@types/node/readline/promises.d.ts","../../../../../node_modules/.pnpm/@types+node@22.10.2/node_modules/@types/node/repl.d.ts","../../../../../node_modules/.pnpm/@types+node@22.10.2/node_modules/@types/node/sea.d.ts","../../../../../node_modules/.pnpm/@types+node@22.10.2/node_modules/@types/node/sqlite.d.ts","../../../../../node_modules/.pnpm/@types+node@22.10.2/node_modules/@types/node/stream.d.ts","../../../../../node_modules/.pnpm/@types+node@22.10.2/node_modules/@types/node/stream/promises.d.ts","../../../../../node_modules/.pnpm/@types+node@22.10.2/node_modules/@types/node/stream/consumers.d.ts","../../../../../node_modules/.pnpm/@types+node@22.10.2/node_modules/@types/node/stream/web.d.ts","../../../../../node_modules/.pnpm/@types+node@22.10.2/node_modules/@types/node/string_decoder.d.ts","../../../../../node_modules/.pnpm/@types+node@22.10.2/node_modules/@types/node/test.d.ts","../../../../../node_modules/.pnpm/@types+node@22.10.2/node_modules/@types/node/timers.d.ts","../../../../../node_modules/.pnpm/@types+node@22.10.2/node_modules/@types/node/timers/promises.d.ts","../../../../../node_modules/.pnpm/@types+node@22.10.2/node_modules/@types/node/tls.d.ts","../../../../../node_modules/.pnpm/@types+node@22.10.2/node_modules/@types/node/trace_events.d.ts","../../../../../node_modules/.pnpm/@types+node@22.10.2/node_modules/@types/node/tty.d.ts","../../../../../node_modules/.pnpm/@types+node@22.10.2/node_modules/@types/node/url.d.ts","../../../../../node_modules/.pnpm/@types+node@22.10.2/node_modules/@types/node/util.d.ts","../../../../../node_modules/.pnpm/@types+node@22.10.2/node_modules/@types/node/v8.d.ts","../../../../../node_modules/.pnpm/@types+node@22.10.2/node_modules/@types/node/vm.d.ts","../../../../../node_modules/.pnpm/@types+node@22.10.2/node_modules/@types/node/wasi.d.ts","../../../../../node_modules/.pnpm/@types+node@22.10.2/node_modules/@types/node/worker_threads.d.ts","../../../../../node_modules/.pnpm/@types+node@22.10.2/node_modules/@types/node/zlib.d.ts","../../../../../node_modules/.pnpm/@types+node@22.10.2/node_modules/@types/node/index.d.ts"],"fileInfos":[{"version":"a1aa1a5e065d48ef5c7bb99e38412f96","affectsGlobalScope":true,"impliedNodeFormat":1},"d4306fb2e47f74835e8674ffac07d76f","e437c5c1302869326c3bb93da85bbbcf","e4324975a566567b21d350615f1fc6ac","333b1b9a2a9ac3b8497dba5c63b5ba50","6cffacd662b6eb5fa7a36aa2ea366bfa","b4c34f9c23304dbef2d23698637ed638","e5cb86a5fc491796ecd1d2dd348d208f",{"version":"aae8996e8b5684814785a42cbbefcd79","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"01ac052ec4a79e87229f90466a9645f8","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"edba5df642941aa062a62f6328c6df3d","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"6344b55f26a4e81d9608777dbfb877dd","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"3c0ed28e53d3695b363e256ec1c023fd","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"4c2761daba7f17141c25baa0821ac5da","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b87656acabd63e69379ff6ffcfe52fc7","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"597469522da047a5af5222cc6989f405","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"bb3a710cbcda0533bb127712927cbe37","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"55d97a8c6fbf34a30450a7b1e5f7a298","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"0ee05eb59426d33e374226d8dcfa708b","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"e347c14030993906efcfbb88915b6a05","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b0231263857c9b6a03641acdc9280ceb","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"3b15c4a83b598cacb4067676e6f0abed","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b417d97b7934cef63b1889abec0bbfbf","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"09a6cf4032ebba60ce22a501e663f881","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"7a42de379b489e8f7b647455bebfc576","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"e22cc07e3f3cc242ba52fa3f8ea1fc58","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"2c45da767a1bfbb220848df1bc4029e4","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b44c3e0fbaf2130cdcf6ac38b120ffa1","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b612fb5cf8e5d964b92063a75207632a","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"02705151a5e1551b9162a9ed8ab763f7","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"41025e398be9215d32e4337335da8f0b","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"52684c2b1f353a5538e4f275182a54cd","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"6dedb6a4f90d1df3a6fbe5693e44886c","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"ca3f36fe3562c07e0f0d71c2bebd3f6d","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"409974d6129befbb8226ddd1c6558568","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"4d9cfde2a1ae1b4925f1f9bc10848e5d","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"7e1daecc66dd564144e3bb1a0266b5fd","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"a8e1d9bb35fd0637f2f9fd2b2a54f2ec","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"4f168501772a6543182765bfd5f2fbfe","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"a19c80aad1b2162103496f5ba293a732","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b69afa63cd5d059851c78adb2856ee09","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"ae2fc5d954e9b0f5feee3d481b953c27","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"1cfd3091a071d8b6feec15277643bafe","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"692bcd75364db0f65d428801c7884466","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"a0d87491913d843139e0c993650a3235","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"4ef72aa378127e7b7abba915b0110b1e","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"3ec74c6a7d4463f0254db3a74cf75646","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"84c2bdfa470d075526cce6322d81b0b6","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"0b3844c2b8c73e4e1ab91431411cad11","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"f64453cbf9671f28158677fa5c43967a","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"33f317af5428801f944a478d2c1e38e5","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"755636ad6f32b63f262ec9940496a366","affectsGlobalScope":true,"impliedNodeFormat":1},"8244c8f803a86fcac606483469eb85c3","7e177b23b10dbd1faeea2f4c5df28e43","28d5a5718a71d0113016569329319e79","56d080dfccb3c53a2d6c74c4f24252e3","3fcb673f9582e954b88e5301cea2e116","b70a23ee97272dcedf89a59eb13dce09","6294201618a7ac0b0aca11519e05beca","5404d75b707f770973bbfef8d6435b0b","66d6d2eeab2fe724d820ec343699b384","637ab145289a60542ee70edb98701030","de33595bdcb1218563e354efc70822bd","cb26617fcf48e41362825205d749886d","acfbf135a9ab3e0f7da298da54518715","e8ad67e7491d8f1f9a93b33b7415868c","77a3ee497da0d9f6f0b7977c6114cb3c","e1c7093ed7cf79a829f3949f0eea4d21","164404971a17bc3ec6026e1b1e1048cc","6085bc7c76200dfd2cb23e5b4209aca4","1aaec34fdd055abfa1bd0a4fafa64af7","756c116cd2a8fdfa70fd27becfe948b8","f9faf828914bf27566a22c68abd9e088","f352b9cf8acb230fe6bdd431404817f2",{"version":"ed63d99e1e5c371dc120bef1b84057fc","impliedNodeFormat":99},{"version":"4d3fb552bfc7fb53c9195b2fafb512c0","impliedNodeFormat":99},{"version":"fbf7ba69043f86dc506ba28263e2e783","impliedNodeFormat":99},{"version":"a611eb6935df7737a77b34b01c631a4a","impliedNodeFormat":99},{"version":"6d08f6f1d0ee294c119d0e66f826331a","impliedNodeFormat":99},{"version":"d0abb8fa314728650d85450ff59db909","impliedNodeFormat":99},{"version":"abe007be89c2ad52c4d67fc2b0f6da6b","impliedNodeFormat":99},{"version":"64c75f6d2d6076a260a3934f79d53914","impliedNodeFormat":99},{"version":"d1d3543c4fd710bf57c1620b46224928","impliedNodeFormat":99},{"version":"d8e5827b29ff5f752cb917592f40d89e","impliedNodeFormat":99},{"version":"47f7401876f3c0a5b80bd01fbdfaed2b","impliedNodeFormat":99},{"version":"c5156ca866ebe97e9684210705e65b18","impliedNodeFormat":99},{"version":"cf03c427cb6cbebe8bd7cbad8932b8e3","impliedNodeFormat":99},{"version":"421606974dd976bfc5ae48946dc1afac","impliedNodeFormat":99},{"version":"4aeb817c2b1122f77bdaeb4e884e9479","impliedNodeFormat":99},{"version":"c52142a849d48e8e4286c2eec06173ff","impliedNodeFormat":99},{"version":"0221e2868d1f0d6df8321d945764aadb","impliedNodeFormat":99},{"version":"d2f6ad6f161f0a522886f64842c96a0e","impliedNodeFormat":99},{"version":"618ace1500cc84e42bc2e47c64f8c407","impliedNodeFormat":99},{"version":"9dd3c481cc870c4bf19e59d34f030a27","impliedNodeFormat":99},{"version":"b5c81396e966d59acab5a45f66b70866","impliedNodeFormat":99},{"version":"f94aa434ddb9e71f6e80395de85f6850","impliedNodeFormat":99},{"version":"3486e8f7f01b9874a793ddd451eb62a5","impliedNodeFormat":99},{"version":"cb0e7222aae349c2fb4f89b26efa81bd","impliedNodeFormat":99},{"version":"b9129d694ae6cf810850117dda49d045","impliedNodeFormat":99},{"version":"0d7bbad7f82c886c5f36730065aec119","impliedNodeFormat":99},{"version":"369460c2755240ac2d3d006f09adb5ca","impliedNodeFormat":99},{"version":"4509fca76e721cdf9edb2d028395a117","impliedNodeFormat":99},"548472bfd4ebe2f1c8f494b960a27836",{"version":"31d11e53cef40d113a56c173ad0ac9f4","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"2c51637edf65b89d39356deff680ed36","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"b80d7107e7f3e430139e1bff13ac1681","impliedNodeFormat":99},{"version":"bd01f3bcdc72c9256e5cd5093d132df3","impliedNodeFormat":99},{"version":"b01bdc9acbaf3eb24eef464959e8e627","impliedNodeFormat":99},{"version":"2a75a1a065e5d0439fa1514d9c89b0eb","impliedNodeFormat":99},{"version":"b9129d694ae6cf810850117dda49d045","impliedNodeFormat":99},{"version":"c01d22bc96b89eedc0ed1f11d8c270ab","impliedNodeFormat":99},{"version":"c15bc5b81c64386efb6f85fb596c4349","impliedNodeFormat":99},{"version":"5794a694c1f75a9cc38cb5e9c757224e","impliedNodeFormat":99},{"version":"4040d5640775a803b2ca1aa914f7a1d4","impliedNodeFormat":99},{"version":"5ed96746ee2e7eb084ad54f0e0e518bc","impliedNodeFormat":99},{"version":"eba7786b00a4e551c36bafa71bfb1876","impliedNodeFormat":99},"8d8a98bf45979ce5401d9ca4027940cd","7d98e95d38525423bbe0f05e0a508a41","96920299d013de56061cbc74a1d658b2","439adabdf29be1212ec7acc292679f21","3eb46d20ed056dcbfa5e75bad9014661",{"version":"b46aa1886055db890de9be52a97b301e","impliedNodeFormat":99},"40f6d98a59ec5443585abf12e266651f","3b710df51e0ca8f28252f9e605f0d93e",{"version":"1968bda63ffcb2728a389189f8853248","signature":"560b3312beb0858b471bc26c3eb5e0f2","impliedNodeFormat":1},{"version":"e4714835ad0aff53ba9d085d6c883f51","signature":"da7049a1adda9e80babe2d105994ca59","impliedNodeFormat":1},{"version":"c84305c10accd50dbae44516133d026c","signature":"86507752dad3e95f044a03b5baf1fa8e","impliedNodeFormat":1},{"version":"4eb4a3a4adc502425d4eacffb76a14fc","signature":"abe7d9981d6018efb6b2b794f40a1607","impliedNodeFormat":1},{"version":"b26484dd6b6695c93a395fdfaefa5258","signature":"64a2134e58153e5651284a37e0438cbd","impliedNodeFormat":1},{"version":"6d4aa254a80ad37aee0ce894c71740d1","signature":"abe7d9981d6018efb6b2b794f40a1607","impliedNodeFormat":1},{"version":"90630acdc4134173bcf216f187bd3010","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"f5a82824905a90c7452696b157ccbf8e","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"2514e9a2749c0fc18d2f478e9e1e641e","affectsGlobalScope":true,"impliedNodeFormat":1},"fe51d7a9bcdbcce1e65bbcf39b212298",{"version":"60edda1b5f28f8e7d7a6fae700faef3c","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"d81e6947fba1bc10b8eec34069255664","affectsGlobalScope":true,"impliedNodeFormat":1},"8e91e7228778516936913f666d057c19","628b774b54637325e286752c79c12432","597e516ba8427cccc7f3fe944da2f942","514fd35e5eb35bb2e5cbb908af0a0aa2","ed57ae88565308729f2327f26d684976","dcd932d6b0038f2e250e30dc10125b22","9508c917bd7e458745e222a82dd24ef0","fabf86f455f96b90538cc26320ab2765","14550b4cd9f433e0addd8b6d67614d23","3658d7d7a61e0ebff921a3292f22e90b","35fef7bac8048f583e4ce6eaa0c2a4c0","6752dc653fc7a333027249fd851fdb62","b9ad7e689b46dfba362c1bf174e69018","8b0a2930dfabdf27c69c6bb1eeabcdc8","4513b1ed15523d247040689f37fa9db2","5c0c499eed773a750903d9497beafacd","2377da227d1bac82ff7b3f2081ddf8d3","beef985b474fefeb80d27fb2c8778371","c79fc9d9f09ae598a374ae7c0b5284a4","f2caa3cebb1e6be855519004830a6be0","8ebc9f2a77c900e710801214c5cb994c","ec617a0e0577dd6a3210c3b067ecb325","1db5d06e485bd82d6d5f6e36925a8714","24b864518967840216c779b5e5f00975","8719cd8047700bfb6046798390053823","f2840afb502c94db92dab0fb8d27812f","a7e7d08b372210c203745d3eac61a411","531183cc80535e0e94226d720e5eb038","f627eb958ca52c85e42f04dce4661f86","9a43fc665bce9012a3d5fe1b574ff4dc","13f4b4da6546a34719fd6bde15fb63dd","a589216508844bfc00e62fc2d97fda45","865aea1c3209e31b076cb6fe780e769e","12e64aaf26af0f5c8f1b263dd66e3feb","928971ebbcdf5b093ef37669b33bddf6","b744265d8ad12b7d4d5c5dc35d18d44e","eff32168b8348b822afeed9cbf61afa7","9aafd1f29b4d8861c1c6c34bf83c0721",{"version":"00164cbcc1c01daff01c48524e115ebe","affectsGlobalScope":true,"impliedNodeFormat":1},"75c35382241d634380073a71ae31bc9a","7deced3ef46e082f97d49bb71622526a","71574c6791f69b167ce1ab489b2b61b2",{"version":"6df4dcd8b41052cc26a6af73c6937f86","affectsGlobalScope":true,"impliedNodeFormat":1},"cbae34574fe31d4a5ef3adee146fb6f5","4a7b1858837296766fd68ce1378e74eb",{"version":"9fc8636e70e507ea8d98a7aabd265ee5","affectsGlobalScope":true,"impliedNodeFormat":1},"c57682233d627206c477b36c1c175b7c",{"version":"5cecadfdb3e00997c9616c1d5ce6b8f4","affectsGlobalScope":true,"impliedNodeFormat":1},"c328f7ad3324dad3b014a361b567a205","12c7178deaecc79c215849791e088b34","fb3449da0f8a0403fcb36d2470b68886","57c04b416fb330a87d0a4705e6e37c2f","958d9865bfe33c94973e3d58ac66b1d0",{"version":"7ed47a7721271e796e9756b45734feaf","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"8bc6a5a95cd2df9f0392da0fa4cb03e3","affectsGlobalScope":true,"impliedNodeFormat":1},"775e118d246ffda9283d94772389bc3c","523e9bbd311f55326ac83a7c40fc29bd","fdd14f5f74212b0d9bd023f9f4f61e62","21baad704fab1c96b85de59aa92438b0","4a0ef467ec8fa0206d0e58fed7c6955d","41a388d3894be87ff371e130db43c3e4",{"version":"3f609011f15f3445c65cc543549895cc","affectsGlobalScope":true,"impliedNodeFormat":1},"dceaed506efef02de8922a129914605d","2500b39777a662899066e61fcf737a52","bdbbfddd2833453519a4c6864652469e",{"version":"311fbe00bc63e7cf2dab9d48d54d5e1e","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"e6616c1a81dff896f04c18da7cf5e8a0","affectsGlobalScope":true,"impliedNodeFormat":1},"d1dfd59bf8b7e71f40ee1d3a2f1b5fcf","53c41ffbbc4356e365d72a537ffb9289","e15247d10b79191ac297212d1183ed03","dd0c03e63afe38f86d61b2d54a9ad760","20049c404ad43da435aac0c69c179cc4","9c44db35c5ff2a61538ae34208bbe504","2c7e200709d82fec821e0154eb745d9e","c626f8a955ddf43bfe6785adb1c3ca4d","c8206d568b54e5ea06131963eecd576a","cf3b2ff720e926f366519cc83c99018a",{"version":"776ec94e2f1f2ebbc5b231103a647984","affectsGlobalScope":true,"impliedNodeFormat":1},"c2e6363d164e809228f71291dcc83add",{"version":"0042ce968ec6274197843485333d3134","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"bf9362f571b6cc12cc5a25da6b9a8675","affectsGlobalScope":true,"impliedNodeFormat":1},"9473140d6a11c5887d169fbdfcd0cb41","e5d364c503b63abd949a746cdc6a4066","d63b35c1a5097295f0659f5583c8fb83","3509aa3de97926c2922f378a248ddb48",{"version":"e6099c385b8384a91dc4f1e601769a6f","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"1413cfdb74da5bf264ec30490f261de1","affectsGlobalScope":true,"impliedNodeFormat":1},"e5c06dabd06c35e42950e36d082ba24f","ac26345510b3b253794221bf8c7d7a1d","eb4ea93209a96f6f1a9c85b8d43816fb",{"version":"a0d07c37a8456336ed8d7dfd9522ea99","affectsGlobalScope":true,"impliedNodeFormat":1},"194b317939f5bde463fc9c0f8d27a314","a7106559a4309e79d396f27199eda706"],"fileIdsList":[[136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[60,136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[57,58,59,60,61,64,65,66,67,68,69,70,71,136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[56,136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[63,136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[57,58,59,136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[57,58,136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[60,61,63,136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[58,136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[54,55,72,73,136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[103,136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[136,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[136,176,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[136,176,177,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[136,176,177,178,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[136,176,177,178,179,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[136,176,177,178,179,180,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[131,132,133,136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[136,176,177,178,179,180,181,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[136,176,177,178,179,180,181,182,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[136,176,177,178,179,180,181,182,183,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[136,176,177,178,179,180,181,182,183,184,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[136,176,177,178,179,180,181,182,183,184,185,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[136,176,177,178,179,180,181,182,183,184,185,186,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[136,176,177,178,179,180,181,182,183,184,185,186,187,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[136,176,177,178,179,180,181,182,183,184,185,186,187,188,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[136,174,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[136,174,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[134,135,136,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,216,217,218,219,220,221,222,223,224,225,226,227,228],[136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,217,218,219,220,221,222,223,224,225,226,227,228],[136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,218,219,220,221,222,223,224,225,226,227,228],[136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,219,220,221,222,223,224,225,226,227,228],[136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,220,221,222,223,224,225,226,227,228],[136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,221,222,223,224,225,226,227,228],[136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,222,223,224,225,226,227,228],[136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,223,224,225,226,227,228],[136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,224,225,226,227,228],[136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,225,226,227,228],[136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,226,227,228],[136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,227,228],[136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,228],[136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227],[54,136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[52,53,136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[76,82,100,101,102,104,136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[111,136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[111,112,136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[80,82,83,136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[80,82,136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[80,136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[75,80,91,92,136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[75,80,91,136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[99,136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[75,81,136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[75,136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[77,136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[75,76,77,78,79,136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[117,118,136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[117,118,119,120,136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[117,119,136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[117,136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[62,136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[136,146,150,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[136,146,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[136,141,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[136,143,146,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229],[136,141,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229],[136,138,139,142,145,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[136,146,153,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[136,138,144,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[136,146,167,168,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[136,142,146,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229],[136,167,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229],[136,140,141,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229],[136,140,141,142,143,144,145,146,147,148,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,168,169,170,171,172,173,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[136,146,161,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[136,146,153,154,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[136,144,146,154,155,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[136,145,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[136,138,141,146,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[136,146,150,154,155,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[136,150,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[136,144,146,149,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[136,138,143,146,153,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[136,141,146,167,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229],[86,136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[86,87,88,89,136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[88,136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[84,106,107,109,136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[84,85,97,109,136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[75,82,84,85,93,109,136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[90,136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[75,84,85,93,105,108,136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[84,85,90,93,109,136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[84,106,107,108,109,136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[84,90,94,95,96,109,136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[75,80,82,84,85,90,93,94,95,96,97,98,100,105,106,107,108,109,110,113,114,115,116,121,136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[75,82,84,85,93,94,106,107,108,109,114,136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[54,74,122,124,126,127,136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[54,124,125,126,136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[124,126,127,136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[54,74,122,124,126,136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[54,124,136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[123,136,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228]],"options":{"allowJs":false,"composite":true,"emitDeclarationOnly":true,"declaration":true,"declarationMap":true,"experimentalDecorators":true,"jsx":3,"module":200,"noImplicitOverride":true,"noUncheckedSideEffectImports":false,"outDir":"./","rewriteRelativeImportExtensions":true,"skipLibCheck":true,"strict":true,"stripInternal":true,"sourceMap":true,"target":99,"esModuleInterop":true},"referencedMap":[[102,1],[70,1],[67,1],[66,1],[61,2],[72,3],[57,4],[68,5],[60,6],[59,7],[69,1],[64,8],[71,1],[65,9],[58,1],[74,10],[56,1],[104,11],[103,1],[176,12],[177,13],[178,14],[136,15],[179,16],[180,17],[181,18],[131,1],[134,19],[132,1],[133,1],[182,20],[183,21],[184,22],[185,23],[186,24],[187,25],[188,26],[190,1],[189,27],[191,28],[192,29],[193,30],[175,31],[135,1],[194,32],[195,33],[196,34],[229,35],[197,36],[198,37],[199,38],[200,39],[201,40],[202,41],[203,42],[204,43],[205,44],[206,45],[207,46],[208,47],[209,48],[210,49],[211,50],[213,51],[212,52],[214,53],[215,54],[216,55],[217,56],[218,57],[219,58],[220,59],[221,60],[222,61],[223,62],[224,63],[225,64],[226,65],[227,66],[228,67],[55,68],[73,68],[52,1],[54,69],[50,1],[51,1],[9,1],[11,1],[10,1],[2,1],[12,1],[13,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[3,1],[20,1],[21,1],[4,1],[22,1],[26,1],[23,1],[24,1],[25,1],[27,1],[28,1],[29,1],[5,1],[30,1],[31,1],[32,1],[33,1],[6,1],[37,1],[34,1],[35,1],[36,1],[38,1],[7,1],[39,1],[44,1],[45,1],[40,1],[41,1],[42,1],[43,1],[8,1],[49,1],[46,1],[47,1],[48,1],[1,1],[105,70],[112,71],[113,72],[111,1],[75,1],[84,73],[83,74],[106,73],[91,75],[93,76],[92,77],[100,78],[99,1],[82,79],[76,80],[78,81],[80,82],[79,1],[81,80],[77,1],[137,1],[53,1],[119,83],[121,84],[120,85],[118,86],[117,1],[63,87],[62,1],[107,1],[101,1],[153,88],[163,89],[152,88],[173,90],[144,91],[143,1],[172,92],[166,93],[171,91],[146,94],[160,95],[145,96],[169,97],[141,98],[140,92],[170,99],[142,100],[147,89],[148,1],[151,89],[138,1],[174,101],[164,102],[155,103],[156,104],[158,105],[154,106],[157,107],[167,92],[149,108],[150,109],[159,110],[139,1],[162,102],[161,89],[165,1],[168,111],[87,112],[90,113],[88,112],[86,1],[89,114],[108,115],[98,116],[94,117],[95,75],[115,118],[109,119],[96,120],[114,121],[85,1],[97,122],[122,123],[116,124],[110,1],[128,125],[127,126],[129,127],[125,68],[130,128],[126,129],[124,130],[123,1]],"latestChangedDtsFile":"./src/provider.test.d.ts"}
package/package.json CHANGED
@@ -1,9 +1,13 @@
1
1
  {
2
2
  "name": "@dxos/web-context-react",
3
- "version": "0.0.0",
3
+ "version": "0.8.4-main.16b68245aa",
4
4
  "description": "React integration with web context protocol",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "https://github.com/dxos/dxos"
10
+ },
7
11
  "license": "MIT",
8
12
  "author": "DXOS.org",
9
13
  "sideEffects": true,
@@ -17,15 +21,12 @@
17
21
  }
18
22
  },
19
23
  "types": "dist/types/src/index.d.ts",
20
- "typesVersions": {
21
- "*": {}
22
- },
23
24
  "files": [
24
25
  "dist",
25
26
  "src"
26
27
  ],
27
28
  "dependencies": {
28
- "@dxos/web-context": "0.0.0"
29
+ "@dxos/web-context": "0.8.4-main.16b68245aa"
29
30
  },
30
31
  "devDependencies": {
31
32
  "@testing-library/react": "^16.3.0",
@@ -33,7 +34,7 @@
33
34
  "@types/react-dom": "~19.2.3",
34
35
  "react": "~19.2.3",
35
36
  "react-dom": "~19.2.3",
36
- "vitest": "3.2.4"
37
+ "vitest": "4.1.5"
37
38
  },
38
39
  "peerDependencies": {
39
40
  "react": "~19.2.3"
@@ -5,7 +5,7 @@
5
5
  // @vitest-environment jsdom
6
6
 
7
7
  import { act, cleanup, render, screen } from '@testing-library/react';
8
- import React from 'react';
8
+ import React, { ReactNode, useEffect, useRef, useState } from 'react';
9
9
  import { afterEach, describe, expect, test } from 'vitest';
10
10
 
11
11
  import { CONTEXT_REQUEST_EVENT, createContext } from '@dxos/web-context';
@@ -37,7 +37,7 @@ describe('useWebComponentContext', () => {
37
37
 
38
38
  test('consumes context from updates (subscription)', async () => {
39
39
  const Container = () => {
40
- const [val, setVal] = React.useState('initial');
40
+ const [val, setVal] = useState('initial');
41
41
  return (
42
42
  <>
43
43
  <button onClick={() => setVal('updated')}>Update</button>
@@ -59,9 +59,9 @@ describe('useWebComponentContext', () => {
59
59
  });
60
60
 
61
61
  test('consumes context from DOM parent (outside React tree)', () => {
62
- const Wrapper = ({ children }: { children: React.ReactNode }) => {
63
- const ref = React.useRef<HTMLDivElement>(null);
64
- React.useEffect(() => {
62
+ const Wrapper = ({ children }: { children: ReactNode }) => {
63
+ const ref = useRef<HTMLDivElement>(null);
64
+ useEffect(() => {
65
65
  const handler = (e: Event) => {
66
66
  const event = e as any;
67
67
  if (event.context === ctx) {
package/src/provider.tsx CHANGED
@@ -149,8 +149,12 @@ export const ContextProtocolProvider = <T extends UnknownContext>({
149
149
  const handleContextProviderEvent = useCallback(
150
150
  (e: Event) => {
151
151
  const event = e as ContextProviderEvent<UnknownContext>;
152
- if (event.context !== context) return;
153
- if (containerRef.current && event.contextTarget === containerRef.current) return;
152
+ if (event.context !== context) {
153
+ return;
154
+ }
155
+ if (containerRef.current && event.contextTarget === containerRef.current) {
156
+ return;
157
+ }
154
158
 
155
159
  const seen = new Set<ContextCallback<ContextType<T>>>();
156
160
  for (const ref of subscriptionRefs) {
@@ -161,9 +165,13 @@ export const ContextProtocolProvider = <T extends UnknownContext>({
161
165
  }
162
166
 
163
167
  const info = subscriptions.get(callback);
164
- if (!info) continue;
168
+ if (!info) {
169
+ continue;
170
+ }
165
171
 
166
- if (seen.has(callback)) continue;
172
+ if (seen.has(callback)) {
173
+ continue;
174
+ }
167
175
  seen.add(callback);
168
176
 
169
177
  info.consumerHost.dispatchEvent(
@@ -175,11 +183,11 @@ export const ContextProtocolProvider = <T extends UnknownContext>({
175
183
  [context],
176
184
  );
177
185
 
178
- // Notify subscribers when value changes
186
+ // Notify subscribers when value changes.
179
187
  useEffect(() => {
180
188
  // Skip notification if value hasn't changed? React does this for us if we use dependencies correctly?
181
189
  // No, we need to imperatively call callbacks.
182
- // value constraint is in the dependency array
190
+ // value constraint is in the dependency array.
183
191
 
184
192
  for (const ref of subscriptionRefs) {
185
193
  const callback = ref.deref();
@@ -198,12 +206,14 @@ export const ContextProtocolProvider = <T extends UnknownContext>({
198
206
 
199
207
  useEffect(() => {
200
208
  const el = containerRef.current;
201
- if (!el) return;
209
+ if (!el) {
210
+ return;
211
+ }
202
212
 
203
213
  el.addEventListener(CONTEXT_REQUEST_EVENT, handleContextRequestEvent);
204
214
  el.addEventListener(CONTEXT_PROVIDER_EVENT, handleContextProviderEvent);
205
215
 
206
- // Announce provider
216
+ // Announce provider.
207
217
  el.dispatchEvent(new ContextProviderEvent(context, el));
208
218
 
209
219
  return () => {
@@ -215,7 +225,7 @@ export const ContextProtocolProvider = <T extends UnknownContext>({
215
225
 
216
226
  return (
217
227
  <ContextRequestHandlerContext.Provider value={handleRequest}>
218
- <div ref={containerRef} style={{ display: 'contents' }}>
228
+ <div role='none' className='contents' ref={containerRef}>
219
229
  {children}
220
230
  </div>
221
231
  </ContextRequestHandlerContext.Provider>