@quantabit/invite-sdk 1.0.0
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/LICENSE +21 -0
- package/README.md +47 -0
- package/dist/index.cjs +4429 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.esm.js +4415 -0
- package/dist/index.esm.js.map +1 -0
- package/package.json +65 -0
- package/types/index.d.ts +26 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../node_modules/react/cjs/react.production.js","../../../node_modules/react/cjs/react.development.js","../../../node_modules/react/index.js","../../sdk-config/dist/index.esm.js","../src/services/inviteApi.js","../src/hooks/useInvite.js","../src/i18n/index.js","../src/components/InvitePanel.jsx","../src/index.js"],"sourcesContent":["/**\n * @license React\n * react.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nfunction getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n}\nvar ReactNoopUpdateQueue = {\n isMounted: function () {\n return !1;\n },\n enqueueForceUpdate: function () {},\n enqueueReplaceState: function () {},\n enqueueSetState: function () {}\n },\n assign = Object.assign,\n emptyObject = {};\nfunction Component(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\nComponent.prototype.isReactComponent = {};\nComponent.prototype.setState = function (partialState, callback) {\n if (\n \"object\" !== typeof partialState &&\n \"function\" !== typeof partialState &&\n null != partialState\n )\n throw Error(\n \"takes an object of state variables to update or a function which returns an object of state variables.\"\n );\n this.updater.enqueueSetState(this, partialState, callback, \"setState\");\n};\nComponent.prototype.forceUpdate = function (callback) {\n this.updater.enqueueForceUpdate(this, callback, \"forceUpdate\");\n};\nfunction ComponentDummy() {}\nComponentDummy.prototype = Component.prototype;\nfunction PureComponent(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\nvar pureComponentPrototype = (PureComponent.prototype = new ComponentDummy());\npureComponentPrototype.constructor = PureComponent;\nassign(pureComponentPrototype, Component.prototype);\npureComponentPrototype.isPureReactComponent = !0;\nvar isArrayImpl = Array.isArray;\nfunction noop() {}\nvar ReactSharedInternals = { H: null, A: null, T: null, S: null },\n hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction ReactElement(type, key, props) {\n var refProp = props.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== refProp ? refProp : null,\n props: props\n };\n}\nfunction cloneAndReplaceKey(oldElement, newKey) {\n return ReactElement(oldElement.type, newKey, oldElement.props);\n}\nfunction isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n}\nfunction escape(key) {\n var escaperLookup = { \"=\": \"=0\", \":\": \"=2\" };\n return (\n \"$\" +\n key.replace(/[=:]/g, function (match) {\n return escaperLookup[match];\n })\n );\n}\nvar userProvidedKeyEscapeRegex = /\\/+/g;\nfunction getElementKey(element, index) {\n return \"object\" === typeof element && null !== element && null != element.key\n ? escape(\"\" + element.key)\n : index.toString(36);\n}\nfunction resolveThenable(thenable) {\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n default:\n switch (\n (\"string\" === typeof thenable.status\n ? thenable.then(noop, noop)\n : ((thenable.status = \"pending\"),\n thenable.then(\n function (fulfilledValue) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"fulfilled\"),\n (thenable.value = fulfilledValue));\n },\n function (error) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"rejected\"), (thenable.reason = error));\n }\n )),\n thenable.status)\n ) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n }\n }\n throw thenable;\n}\nfunction mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {\n var type = typeof children;\n if (\"undefined\" === type || \"boolean\" === type) children = null;\n var invokeCallback = !1;\n if (null === children) invokeCallback = !0;\n else\n switch (type) {\n case \"bigint\":\n case \"string\":\n case \"number\":\n invokeCallback = !0;\n break;\n case \"object\":\n switch (children.$$typeof) {\n case REACT_ELEMENT_TYPE:\n case REACT_PORTAL_TYPE:\n invokeCallback = !0;\n break;\n case REACT_LAZY_TYPE:\n return (\n (invokeCallback = children._init),\n mapIntoArray(\n invokeCallback(children._payload),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n )\n );\n }\n }\n if (invokeCallback)\n return (\n (callback = callback(children)),\n (invokeCallback =\n \"\" === nameSoFar ? \".\" + getElementKey(children, 0) : nameSoFar),\n isArrayImpl(callback)\n ? ((escapedPrefix = \"\"),\n null != invokeCallback &&\n (escapedPrefix =\n invokeCallback.replace(userProvidedKeyEscapeRegex, \"$&/\") + \"/\"),\n mapIntoArray(callback, array, escapedPrefix, \"\", function (c) {\n return c;\n }))\n : null != callback &&\n (isValidElement(callback) &&\n (callback = cloneAndReplaceKey(\n callback,\n escapedPrefix +\n (null == callback.key ||\n (children && children.key === callback.key)\n ? \"\"\n : (\"\" + callback.key).replace(\n userProvidedKeyEscapeRegex,\n \"$&/\"\n ) + \"/\") +\n invokeCallback\n )),\n array.push(callback)),\n 1\n );\n invokeCallback = 0;\n var nextNamePrefix = \"\" === nameSoFar ? \".\" : nameSoFar + \":\";\n if (isArrayImpl(children))\n for (var i = 0; i < children.length; i++)\n (nameSoFar = children[i]),\n (type = nextNamePrefix + getElementKey(nameSoFar, i)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (((i = getIteratorFn(children)), \"function\" === typeof i))\n for (\n children = i.call(children), i = 0;\n !(nameSoFar = children.next()).done;\n\n )\n (nameSoFar = nameSoFar.value),\n (type = nextNamePrefix + getElementKey(nameSoFar, i++)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (\"object\" === type) {\n if (\"function\" === typeof children.then)\n return mapIntoArray(\n resolveThenable(children),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n );\n array = String(children);\n throw Error(\n \"Objects are not valid as a React child (found: \" +\n (\"[object Object]\" === array\n ? \"object with keys {\" + Object.keys(children).join(\", \") + \"}\"\n : array) +\n \"). If you meant to render a collection of children, use an array instead.\"\n );\n }\n return invokeCallback;\n}\nfunction mapChildren(children, func, context) {\n if (null == children) return children;\n var result = [],\n count = 0;\n mapIntoArray(children, result, \"\", \"\", function (child) {\n return func.call(context, child, count++);\n });\n return result;\n}\nfunction lazyInitializer(payload) {\n if (-1 === payload._status) {\n var ctor = payload._result;\n ctor = ctor();\n ctor.then(\n function (moduleObject) {\n if (0 === payload._status || -1 === payload._status)\n (payload._status = 1), (payload._result = moduleObject);\n },\n function (error) {\n if (0 === payload._status || -1 === payload._status)\n (payload._status = 2), (payload._result = error);\n }\n );\n -1 === payload._status && ((payload._status = 0), (payload._result = ctor));\n }\n if (1 === payload._status) return payload._result.default;\n throw payload._result;\n}\nvar reportGlobalError =\n \"function\" === typeof reportError\n ? reportError\n : function (error) {\n if (\n \"object\" === typeof window &&\n \"function\" === typeof window.ErrorEvent\n ) {\n var event = new window.ErrorEvent(\"error\", {\n bubbles: !0,\n cancelable: !0,\n message:\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error),\n error: error\n });\n if (!window.dispatchEvent(event)) return;\n } else if (\n \"object\" === typeof process &&\n \"function\" === typeof process.emit\n ) {\n process.emit(\"uncaughtException\", error);\n return;\n }\n console.error(error);\n },\n Children = {\n map: mapChildren,\n forEach: function (children, forEachFunc, forEachContext) {\n mapChildren(\n children,\n function () {\n forEachFunc.apply(this, arguments);\n },\n forEachContext\n );\n },\n count: function (children) {\n var n = 0;\n mapChildren(children, function () {\n n++;\n });\n return n;\n },\n toArray: function (children) {\n return (\n mapChildren(children, function (child) {\n return child;\n }) || []\n );\n },\n only: function (children) {\n if (!isValidElement(children))\n throw Error(\n \"React.Children.only expected to receive a single React element child.\"\n );\n return children;\n }\n };\nexports.Activity = REACT_ACTIVITY_TYPE;\nexports.Children = Children;\nexports.Component = Component;\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.Profiler = REACT_PROFILER_TYPE;\nexports.PureComponent = PureComponent;\nexports.StrictMode = REACT_STRICT_MODE_TYPE;\nexports.Suspense = REACT_SUSPENSE_TYPE;\nexports.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n ReactSharedInternals;\nexports.__COMPILER_RUNTIME = {\n __proto__: null,\n c: function (size) {\n return ReactSharedInternals.H.useMemoCache(size);\n }\n};\nexports.cache = function (fn) {\n return function () {\n return fn.apply(null, arguments);\n };\n};\nexports.cacheSignal = function () {\n return null;\n};\nexports.cloneElement = function (element, config, children) {\n if (null === element || void 0 === element)\n throw Error(\n \"The argument must be a React element, but you passed \" + element + \".\"\n );\n var props = assign({}, element.props),\n key = element.key;\n if (null != config)\n for (propName in (void 0 !== config.key && (key = \"\" + config.key), config))\n !hasOwnProperty.call(config, propName) ||\n \"key\" === propName ||\n \"__self\" === propName ||\n \"__source\" === propName ||\n (\"ref\" === propName && void 0 === config.ref) ||\n (props[propName] = config[propName]);\n var propName = arguments.length - 2;\n if (1 === propName) props.children = children;\n else if (1 < propName) {\n for (var childArray = Array(propName), i = 0; i < propName; i++)\n childArray[i] = arguments[i + 2];\n props.children = childArray;\n }\n return ReactElement(element.type, key, props);\n};\nexports.createContext = function (defaultValue) {\n defaultValue = {\n $$typeof: REACT_CONTEXT_TYPE,\n _currentValue: defaultValue,\n _currentValue2: defaultValue,\n _threadCount: 0,\n Provider: null,\n Consumer: null\n };\n defaultValue.Provider = defaultValue;\n defaultValue.Consumer = {\n $$typeof: REACT_CONSUMER_TYPE,\n _context: defaultValue\n };\n return defaultValue;\n};\nexports.createElement = function (type, config, children) {\n var propName,\n props = {},\n key = null;\n if (null != config)\n for (propName in (void 0 !== config.key && (key = \"\" + config.key), config))\n hasOwnProperty.call(config, propName) &&\n \"key\" !== propName &&\n \"__self\" !== propName &&\n \"__source\" !== propName &&\n (props[propName] = config[propName]);\n var childrenLength = arguments.length - 2;\n if (1 === childrenLength) props.children = children;\n else if (1 < childrenLength) {\n for (var childArray = Array(childrenLength), i = 0; i < childrenLength; i++)\n childArray[i] = arguments[i + 2];\n props.children = childArray;\n }\n if (type && type.defaultProps)\n for (propName in ((childrenLength = type.defaultProps), childrenLength))\n void 0 === props[propName] &&\n (props[propName] = childrenLength[propName]);\n return ReactElement(type, key, props);\n};\nexports.createRef = function () {\n return { current: null };\n};\nexports.forwardRef = function (render) {\n return { $$typeof: REACT_FORWARD_REF_TYPE, render: render };\n};\nexports.isValidElement = isValidElement;\nexports.lazy = function (ctor) {\n return {\n $$typeof: REACT_LAZY_TYPE,\n _payload: { _status: -1, _result: ctor },\n _init: lazyInitializer\n };\n};\nexports.memo = function (type, compare) {\n return {\n $$typeof: REACT_MEMO_TYPE,\n type: type,\n compare: void 0 === compare ? null : compare\n };\n};\nexports.startTransition = function (scope) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n try {\n var returnValue = scope(),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n \"object\" === typeof returnValue &&\n null !== returnValue &&\n \"function\" === typeof returnValue.then &&\n returnValue.then(noop, reportGlobalError);\n } catch (error) {\n reportGlobalError(error);\n } finally {\n null !== prevTransition &&\n null !== currentTransition.types &&\n (prevTransition.types = currentTransition.types),\n (ReactSharedInternals.T = prevTransition);\n }\n};\nexports.unstable_useCacheRefresh = function () {\n return ReactSharedInternals.H.useCacheRefresh();\n};\nexports.use = function (usable) {\n return ReactSharedInternals.H.use(usable);\n};\nexports.useActionState = function (action, initialState, permalink) {\n return ReactSharedInternals.H.useActionState(action, initialState, permalink);\n};\nexports.useCallback = function (callback, deps) {\n return ReactSharedInternals.H.useCallback(callback, deps);\n};\nexports.useContext = function (Context) {\n return ReactSharedInternals.H.useContext(Context);\n};\nexports.useDebugValue = function () {};\nexports.useDeferredValue = function (value, initialValue) {\n return ReactSharedInternals.H.useDeferredValue(value, initialValue);\n};\nexports.useEffect = function (create, deps) {\n return ReactSharedInternals.H.useEffect(create, deps);\n};\nexports.useEffectEvent = function (callback) {\n return ReactSharedInternals.H.useEffectEvent(callback);\n};\nexports.useId = function () {\n return ReactSharedInternals.H.useId();\n};\nexports.useImperativeHandle = function (ref, create, deps) {\n return ReactSharedInternals.H.useImperativeHandle(ref, create, deps);\n};\nexports.useInsertionEffect = function (create, deps) {\n return ReactSharedInternals.H.useInsertionEffect(create, deps);\n};\nexports.useLayoutEffect = function (create, deps) {\n return ReactSharedInternals.H.useLayoutEffect(create, deps);\n};\nexports.useMemo = function (create, deps) {\n return ReactSharedInternals.H.useMemo(create, deps);\n};\nexports.useOptimistic = function (passthrough, reducer) {\n return ReactSharedInternals.H.useOptimistic(passthrough, reducer);\n};\nexports.useReducer = function (reducer, initialArg, init) {\n return ReactSharedInternals.H.useReducer(reducer, initialArg, init);\n};\nexports.useRef = function (initialValue) {\n return ReactSharedInternals.H.useRef(initialValue);\n};\nexports.useState = function (initialState) {\n return ReactSharedInternals.H.useState(initialState);\n};\nexports.useSyncExternalStore = function (\n subscribe,\n getSnapshot,\n getServerSnapshot\n) {\n return ReactSharedInternals.H.useSyncExternalStore(\n subscribe,\n getSnapshot,\n getServerSnapshot\n );\n};\nexports.useTransition = function () {\n return ReactSharedInternals.H.useTransition();\n};\nexports.version = \"19.2.5\";\n","/**\n * @license React\n * react.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function defineDeprecationWarning(methodName, info) {\n Object.defineProperty(Component.prototype, methodName, {\n get: function () {\n console.warn(\n \"%s(...) is deprecated in plain JavaScript React classes. %s\",\n info[0],\n info[1]\n );\n }\n });\n }\n function getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable)\n return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n }\n function warnNoop(publicInstance, callerName) {\n publicInstance =\n ((publicInstance = publicInstance.constructor) &&\n (publicInstance.displayName || publicInstance.name)) ||\n \"ReactClass\";\n var warningKey = publicInstance + \".\" + callerName;\n didWarnStateUpdateForUnmountedComponent[warningKey] ||\n (console.error(\n \"Can't call %s on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the %s component.\",\n callerName,\n publicInstance\n ),\n (didWarnStateUpdateForUnmountedComponent[warningKey] = !0));\n }\n function Component(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n }\n function ComponentDummy() {}\n function PureComponent(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n }\n function noop() {}\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return type.displayName || \"Context\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\n \"object\" === typeof type &&\n null !== type &&\n type.$$typeof === REACT_LAZY_TYPE\n )\n return \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function UnknownOwner() {\n return Error(\"react-stack-top-frame\");\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(type, key, props, owner, debugStack, debugTask) {\n var refProp = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== refProp ? refProp : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(type, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugStack\n });\n Object.defineProperty(type, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugTask\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function cloneAndReplaceKey(oldElement, newKey) {\n newKey = ReactElement(\n oldElement.type,\n newKey,\n oldElement.props,\n oldElement._owner,\n oldElement._debugStack,\n oldElement._debugTask\n );\n oldElement._store &&\n (newKey._store.validated = oldElement._store.validated);\n return newKey;\n }\n function validateChildKeys(node) {\n isValidElement(node)\n ? node._store && (node._store.validated = 1)\n : \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_LAZY_TYPE &&\n (\"fulfilled\" === node._payload.status\n ? isValidElement(node._payload.value) &&\n node._payload.value._store &&\n (node._payload.value._store.validated = 1)\n : node._store && (node._store.validated = 1));\n }\n function isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n }\n function escape(key) {\n var escaperLookup = { \"=\": \"=0\", \":\": \"=2\" };\n return (\n \"$\" +\n key.replace(/[=:]/g, function (match) {\n return escaperLookup[match];\n })\n );\n }\n function getElementKey(element, index) {\n return \"object\" === typeof element &&\n null !== element &&\n null != element.key\n ? (checkKeyStringCoercion(element.key), escape(\"\" + element.key))\n : index.toString(36);\n }\n function resolveThenable(thenable) {\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n default:\n switch (\n (\"string\" === typeof thenable.status\n ? thenable.then(noop, noop)\n : ((thenable.status = \"pending\"),\n thenable.then(\n function (fulfilledValue) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"fulfilled\"),\n (thenable.value = fulfilledValue));\n },\n function (error) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"rejected\"),\n (thenable.reason = error));\n }\n )),\n thenable.status)\n ) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n }\n }\n throw thenable;\n }\n function mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {\n var type = typeof children;\n if (\"undefined\" === type || \"boolean\" === type) children = null;\n var invokeCallback = !1;\n if (null === children) invokeCallback = !0;\n else\n switch (type) {\n case \"bigint\":\n case \"string\":\n case \"number\":\n invokeCallback = !0;\n break;\n case \"object\":\n switch (children.$$typeof) {\n case REACT_ELEMENT_TYPE:\n case REACT_PORTAL_TYPE:\n invokeCallback = !0;\n break;\n case REACT_LAZY_TYPE:\n return (\n (invokeCallback = children._init),\n mapIntoArray(\n invokeCallback(children._payload),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n )\n );\n }\n }\n if (invokeCallback) {\n invokeCallback = children;\n callback = callback(invokeCallback);\n var childKey =\n \"\" === nameSoFar ? \".\" + getElementKey(invokeCallback, 0) : nameSoFar;\n isArrayImpl(callback)\n ? ((escapedPrefix = \"\"),\n null != childKey &&\n (escapedPrefix =\n childKey.replace(userProvidedKeyEscapeRegex, \"$&/\") + \"/\"),\n mapIntoArray(callback, array, escapedPrefix, \"\", function (c) {\n return c;\n }))\n : null != callback &&\n (isValidElement(callback) &&\n (null != callback.key &&\n ((invokeCallback && invokeCallback.key === callback.key) ||\n checkKeyStringCoercion(callback.key)),\n (escapedPrefix = cloneAndReplaceKey(\n callback,\n escapedPrefix +\n (null == callback.key ||\n (invokeCallback && invokeCallback.key === callback.key)\n ? \"\"\n : (\"\" + callback.key).replace(\n userProvidedKeyEscapeRegex,\n \"$&/\"\n ) + \"/\") +\n childKey\n )),\n \"\" !== nameSoFar &&\n null != invokeCallback &&\n isValidElement(invokeCallback) &&\n null == invokeCallback.key &&\n invokeCallback._store &&\n !invokeCallback._store.validated &&\n (escapedPrefix._store.validated = 2),\n (callback = escapedPrefix)),\n array.push(callback));\n return 1;\n }\n invokeCallback = 0;\n childKey = \"\" === nameSoFar ? \".\" : nameSoFar + \":\";\n if (isArrayImpl(children))\n for (var i = 0; i < children.length; i++)\n (nameSoFar = children[i]),\n (type = childKey + getElementKey(nameSoFar, i)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (((i = getIteratorFn(children)), \"function\" === typeof i))\n for (\n i === children.entries &&\n (didWarnAboutMaps ||\n console.warn(\n \"Using Maps as children is not supported. Use an array of keyed ReactElements instead.\"\n ),\n (didWarnAboutMaps = !0)),\n children = i.call(children),\n i = 0;\n !(nameSoFar = children.next()).done;\n\n )\n (nameSoFar = nameSoFar.value),\n (type = childKey + getElementKey(nameSoFar, i++)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (\"object\" === type) {\n if (\"function\" === typeof children.then)\n return mapIntoArray(\n resolveThenable(children),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n );\n array = String(children);\n throw Error(\n \"Objects are not valid as a React child (found: \" +\n (\"[object Object]\" === array\n ? \"object with keys {\" + Object.keys(children).join(\", \") + \"}\"\n : array) +\n \"). If you meant to render a collection of children, use an array instead.\"\n );\n }\n return invokeCallback;\n }\n function mapChildren(children, func, context) {\n if (null == children) return children;\n var result = [],\n count = 0;\n mapIntoArray(children, result, \"\", \"\", function (child) {\n return func.call(context, child, count++);\n });\n return result;\n }\n function lazyInitializer(payload) {\n if (-1 === payload._status) {\n var ioInfo = payload._ioInfo;\n null != ioInfo && (ioInfo.start = ioInfo.end = performance.now());\n ioInfo = payload._result;\n var thenable = ioInfo();\n thenable.then(\n function (moduleObject) {\n if (0 === payload._status || -1 === payload._status) {\n payload._status = 1;\n payload._result = moduleObject;\n var _ioInfo = payload._ioInfo;\n null != _ioInfo && (_ioInfo.end = performance.now());\n void 0 === thenable.status &&\n ((thenable.status = \"fulfilled\"),\n (thenable.value = moduleObject));\n }\n },\n function (error) {\n if (0 === payload._status || -1 === payload._status) {\n payload._status = 2;\n payload._result = error;\n var _ioInfo2 = payload._ioInfo;\n null != _ioInfo2 && (_ioInfo2.end = performance.now());\n void 0 === thenable.status &&\n ((thenable.status = \"rejected\"), (thenable.reason = error));\n }\n }\n );\n ioInfo = payload._ioInfo;\n if (null != ioInfo) {\n ioInfo.value = thenable;\n var displayName = thenable.displayName;\n \"string\" === typeof displayName && (ioInfo.name = displayName);\n }\n -1 === payload._status &&\n ((payload._status = 0), (payload._result = thenable));\n }\n if (1 === payload._status)\n return (\n (ioInfo = payload._result),\n void 0 === ioInfo &&\n console.error(\n \"lazy: Expected the result of a dynamic import() call. Instead received: %s\\n\\nYour code should look like: \\n const MyComponent = lazy(() => import('./MyComponent'))\\n\\nDid you accidentally put curly braces around the import?\",\n ioInfo\n ),\n \"default\" in ioInfo ||\n console.error(\n \"lazy: Expected the result of a dynamic import() call. Instead received: %s\\n\\nYour code should look like: \\n const MyComponent = lazy(() => import('./MyComponent'))\",\n ioInfo\n ),\n ioInfo.default\n );\n throw payload._result;\n }\n function resolveDispatcher() {\n var dispatcher = ReactSharedInternals.H;\n null === dispatcher &&\n console.error(\n \"Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\\n1. You might have mismatching versions of React and the renderer (such as React DOM)\\n2. You might be breaking the Rules of Hooks\\n3. You might have more than one copy of React in the same app\\nSee https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem.\"\n );\n return dispatcher;\n }\n function releaseAsyncTransition() {\n ReactSharedInternals.asyncTransitions--;\n }\n function enqueueTask(task) {\n if (null === enqueueTaskImpl)\n try {\n var requireString = (\"require\" + Math.random()).slice(0, 7);\n enqueueTaskImpl = (module && module[requireString]).call(\n module,\n \"timers\"\n ).setImmediate;\n } catch (_err) {\n enqueueTaskImpl = function (callback) {\n !1 === didWarnAboutMessageChannel &&\n ((didWarnAboutMessageChannel = !0),\n \"undefined\" === typeof MessageChannel &&\n console.error(\n \"This browser does not have a MessageChannel implementation, so enqueuing tasks via await act(async () => ...) will fail. Please file an issue at https://github.com/facebook/react/issues if you encounter this warning.\"\n ));\n var channel = new MessageChannel();\n channel.port1.onmessage = callback;\n channel.port2.postMessage(void 0);\n };\n }\n return enqueueTaskImpl(task);\n }\n function aggregateErrors(errors) {\n return 1 < errors.length && \"function\" === typeof AggregateError\n ? new AggregateError(errors)\n : errors[0];\n }\n function popActScope(prevActQueue, prevActScopeDepth) {\n prevActScopeDepth !== actScopeDepth - 1 &&\n console.error(\n \"You seem to have overlapping act() calls, this is not supported. Be sure to await previous act() calls before making a new one. \"\n );\n actScopeDepth = prevActScopeDepth;\n }\n function recursivelyFlushAsyncActWork(returnValue, resolve, reject) {\n var queue = ReactSharedInternals.actQueue;\n if (null !== queue)\n if (0 !== queue.length)\n try {\n flushActQueue(queue);\n enqueueTask(function () {\n return recursivelyFlushAsyncActWork(returnValue, resolve, reject);\n });\n return;\n } catch (error) {\n ReactSharedInternals.thrownErrors.push(error);\n }\n else ReactSharedInternals.actQueue = null;\n 0 < ReactSharedInternals.thrownErrors.length\n ? ((queue = aggregateErrors(ReactSharedInternals.thrownErrors)),\n (ReactSharedInternals.thrownErrors.length = 0),\n reject(queue))\n : resolve(returnValue);\n }\n function flushActQueue(queue) {\n if (!isFlushing) {\n isFlushing = !0;\n var i = 0;\n try {\n for (; i < queue.length; i++) {\n var callback = queue[i];\n do {\n ReactSharedInternals.didUsePromise = !1;\n var continuation = callback(!1);\n if (null !== continuation) {\n if (ReactSharedInternals.didUsePromise) {\n queue[i] = callback;\n queue.splice(0, i);\n return;\n }\n callback = continuation;\n } else break;\n } while (1);\n }\n queue.length = 0;\n } catch (error) {\n queue.splice(0, i + 1), ReactSharedInternals.thrownErrors.push(error);\n } finally {\n isFlushing = !1;\n }\n }\n }\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());\n var REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n MAYBE_ITERATOR_SYMBOL = Symbol.iterator,\n didWarnStateUpdateForUnmountedComponent = {},\n ReactNoopUpdateQueue = {\n isMounted: function () {\n return !1;\n },\n enqueueForceUpdate: function (publicInstance) {\n warnNoop(publicInstance, \"forceUpdate\");\n },\n enqueueReplaceState: function (publicInstance) {\n warnNoop(publicInstance, \"replaceState\");\n },\n enqueueSetState: function (publicInstance) {\n warnNoop(publicInstance, \"setState\");\n }\n },\n assign = Object.assign,\n emptyObject = {};\n Object.freeze(emptyObject);\n Component.prototype.isReactComponent = {};\n Component.prototype.setState = function (partialState, callback) {\n if (\n \"object\" !== typeof partialState &&\n \"function\" !== typeof partialState &&\n null != partialState\n )\n throw Error(\n \"takes an object of state variables to update or a function which returns an object of state variables.\"\n );\n this.updater.enqueueSetState(this, partialState, callback, \"setState\");\n };\n Component.prototype.forceUpdate = function (callback) {\n this.updater.enqueueForceUpdate(this, callback, \"forceUpdate\");\n };\n var deprecatedAPIs = {\n isMounted: [\n \"isMounted\",\n \"Instead, make sure to clean up subscriptions and pending requests in componentWillUnmount to prevent memory leaks.\"\n ],\n replaceState: [\n \"replaceState\",\n \"Refactor your code to use setState instead (see https://github.com/facebook/react/issues/3236).\"\n ]\n };\n for (fnName in deprecatedAPIs)\n deprecatedAPIs.hasOwnProperty(fnName) &&\n defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);\n ComponentDummy.prototype = Component.prototype;\n deprecatedAPIs = PureComponent.prototype = new ComponentDummy();\n deprecatedAPIs.constructor = PureComponent;\n assign(deprecatedAPIs, Component.prototype);\n deprecatedAPIs.isPureReactComponent = !0;\n var isArrayImpl = Array.isArray,\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals = {\n H: null,\n A: null,\n T: null,\n S: null,\n actQueue: null,\n asyncTransitions: 0,\n isBatchingLegacy: !1,\n didScheduleLegacyUpdate: !1,\n didUsePromise: !1,\n thrownErrors: [],\n getCurrentStack: null,\n recentlyCreatedOwnerStacks: 0\n },\n hasOwnProperty = Object.prototype.hasOwnProperty,\n createTask = console.createTask\n ? console.createTask\n : function () {\n return null;\n };\n deprecatedAPIs = {\n react_stack_bottom_frame: function (callStackForError) {\n return callStackForError();\n }\n };\n var specialPropKeyWarningShown, didWarnAboutOldJSXRuntime;\n var didWarnAboutElementRef = {};\n var unknownOwnerDebugStack = deprecatedAPIs.react_stack_bottom_frame.bind(\n deprecatedAPIs,\n UnknownOwner\n )();\n var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));\n var didWarnAboutMaps = !1,\n userProvidedKeyEscapeRegex = /\\/+/g,\n reportGlobalError =\n \"function\" === typeof reportError\n ? reportError\n : function (error) {\n if (\n \"object\" === typeof window &&\n \"function\" === typeof window.ErrorEvent\n ) {\n var event = new window.ErrorEvent(\"error\", {\n bubbles: !0,\n cancelable: !0,\n message:\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error),\n error: error\n });\n if (!window.dispatchEvent(event)) return;\n } else if (\n \"object\" === typeof process &&\n \"function\" === typeof process.emit\n ) {\n process.emit(\"uncaughtException\", error);\n return;\n }\n console.error(error);\n },\n didWarnAboutMessageChannel = !1,\n enqueueTaskImpl = null,\n actScopeDepth = 0,\n didWarnNoAwaitAct = !1,\n isFlushing = !1,\n queueSeveralMicrotasks =\n \"function\" === typeof queueMicrotask\n ? function (callback) {\n queueMicrotask(function () {\n return queueMicrotask(callback);\n });\n }\n : enqueueTask;\n deprecatedAPIs = Object.freeze({\n __proto__: null,\n c: function (size) {\n return resolveDispatcher().useMemoCache(size);\n }\n });\n var fnName = {\n map: mapChildren,\n forEach: function (children, forEachFunc, forEachContext) {\n mapChildren(\n children,\n function () {\n forEachFunc.apply(this, arguments);\n },\n forEachContext\n );\n },\n count: function (children) {\n var n = 0;\n mapChildren(children, function () {\n n++;\n });\n return n;\n },\n toArray: function (children) {\n return (\n mapChildren(children, function (child) {\n return child;\n }) || []\n );\n },\n only: function (children) {\n if (!isValidElement(children))\n throw Error(\n \"React.Children.only expected to receive a single React element child.\"\n );\n return children;\n }\n };\n exports.Activity = REACT_ACTIVITY_TYPE;\n exports.Children = fnName;\n exports.Component = Component;\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.Profiler = REACT_PROFILER_TYPE;\n exports.PureComponent = PureComponent;\n exports.StrictMode = REACT_STRICT_MODE_TYPE;\n exports.Suspense = REACT_SUSPENSE_TYPE;\n exports.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n ReactSharedInternals;\n exports.__COMPILER_RUNTIME = deprecatedAPIs;\n exports.act = function (callback) {\n var prevActQueue = ReactSharedInternals.actQueue,\n prevActScopeDepth = actScopeDepth;\n actScopeDepth++;\n var queue = (ReactSharedInternals.actQueue =\n null !== prevActQueue ? prevActQueue : []),\n didAwaitActCall = !1;\n try {\n var result = callback();\n } catch (error) {\n ReactSharedInternals.thrownErrors.push(error);\n }\n if (0 < ReactSharedInternals.thrownErrors.length)\n throw (\n (popActScope(prevActQueue, prevActScopeDepth),\n (callback = aggregateErrors(ReactSharedInternals.thrownErrors)),\n (ReactSharedInternals.thrownErrors.length = 0),\n callback)\n );\n if (\n null !== result &&\n \"object\" === typeof result &&\n \"function\" === typeof result.then\n ) {\n var thenable = result;\n queueSeveralMicrotasks(function () {\n didAwaitActCall ||\n didWarnNoAwaitAct ||\n ((didWarnNoAwaitAct = !0),\n console.error(\n \"You called act(async () => ...) without await. This could lead to unexpected testing behaviour, interleaving multiple act calls and mixing their scopes. You should - await act(async () => ...);\"\n ));\n });\n return {\n then: function (resolve, reject) {\n didAwaitActCall = !0;\n thenable.then(\n function (returnValue) {\n popActScope(prevActQueue, prevActScopeDepth);\n if (0 === prevActScopeDepth) {\n try {\n flushActQueue(queue),\n enqueueTask(function () {\n return recursivelyFlushAsyncActWork(\n returnValue,\n resolve,\n reject\n );\n });\n } catch (error$0) {\n ReactSharedInternals.thrownErrors.push(error$0);\n }\n if (0 < ReactSharedInternals.thrownErrors.length) {\n var _thrownError = aggregateErrors(\n ReactSharedInternals.thrownErrors\n );\n ReactSharedInternals.thrownErrors.length = 0;\n reject(_thrownError);\n }\n } else resolve(returnValue);\n },\n function (error) {\n popActScope(prevActQueue, prevActScopeDepth);\n 0 < ReactSharedInternals.thrownErrors.length\n ? ((error = aggregateErrors(\n ReactSharedInternals.thrownErrors\n )),\n (ReactSharedInternals.thrownErrors.length = 0),\n reject(error))\n : reject(error);\n }\n );\n }\n };\n }\n var returnValue$jscomp$0 = result;\n popActScope(prevActQueue, prevActScopeDepth);\n 0 === prevActScopeDepth &&\n (flushActQueue(queue),\n 0 !== queue.length &&\n queueSeveralMicrotasks(function () {\n didAwaitActCall ||\n didWarnNoAwaitAct ||\n ((didWarnNoAwaitAct = !0),\n console.error(\n \"A component suspended inside an `act` scope, but the `act` call was not awaited. When testing React components that depend on asynchronous data, you must await the result:\\n\\nawait act(() => ...)\"\n ));\n }),\n (ReactSharedInternals.actQueue = null));\n if (0 < ReactSharedInternals.thrownErrors.length)\n throw (\n ((callback = aggregateErrors(ReactSharedInternals.thrownErrors)),\n (ReactSharedInternals.thrownErrors.length = 0),\n callback)\n );\n return {\n then: function (resolve, reject) {\n didAwaitActCall = !0;\n 0 === prevActScopeDepth\n ? ((ReactSharedInternals.actQueue = queue),\n enqueueTask(function () {\n return recursivelyFlushAsyncActWork(\n returnValue$jscomp$0,\n resolve,\n reject\n );\n }))\n : resolve(returnValue$jscomp$0);\n }\n };\n };\n exports.cache = function (fn) {\n return function () {\n return fn.apply(null, arguments);\n };\n };\n exports.cacheSignal = function () {\n return null;\n };\n exports.captureOwnerStack = function () {\n var getCurrentStack = ReactSharedInternals.getCurrentStack;\n return null === getCurrentStack ? null : getCurrentStack();\n };\n exports.cloneElement = function (element, config, children) {\n if (null === element || void 0 === element)\n throw Error(\n \"The argument must be a React element, but you passed \" +\n element +\n \".\"\n );\n var props = assign({}, element.props),\n key = element.key,\n owner = element._owner;\n if (null != config) {\n var JSCompiler_inline_result;\n a: {\n if (\n hasOwnProperty.call(config, \"ref\") &&\n (JSCompiler_inline_result = Object.getOwnPropertyDescriptor(\n config,\n \"ref\"\n ).get) &&\n JSCompiler_inline_result.isReactWarning\n ) {\n JSCompiler_inline_result = !1;\n break a;\n }\n JSCompiler_inline_result = void 0 !== config.ref;\n }\n JSCompiler_inline_result && (owner = getOwner());\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (key = \"\" + config.key));\n for (propName in config)\n !hasOwnProperty.call(config, propName) ||\n \"key\" === propName ||\n \"__self\" === propName ||\n \"__source\" === propName ||\n (\"ref\" === propName && void 0 === config.ref) ||\n (props[propName] = config[propName]);\n }\n var propName = arguments.length - 2;\n if (1 === propName) props.children = children;\n else if (1 < propName) {\n JSCompiler_inline_result = Array(propName);\n for (var i = 0; i < propName; i++)\n JSCompiler_inline_result[i] = arguments[i + 2];\n props.children = JSCompiler_inline_result;\n }\n props = ReactElement(\n element.type,\n key,\n props,\n owner,\n element._debugStack,\n element._debugTask\n );\n for (key = 2; key < arguments.length; key++)\n validateChildKeys(arguments[key]);\n return props;\n };\n exports.createContext = function (defaultValue) {\n defaultValue = {\n $$typeof: REACT_CONTEXT_TYPE,\n _currentValue: defaultValue,\n _currentValue2: defaultValue,\n _threadCount: 0,\n Provider: null,\n Consumer: null\n };\n defaultValue.Provider = defaultValue;\n defaultValue.Consumer = {\n $$typeof: REACT_CONSUMER_TYPE,\n _context: defaultValue\n };\n defaultValue._currentRenderer = null;\n defaultValue._currentRenderer2 = null;\n return defaultValue;\n };\n exports.createElement = function (type, config, children) {\n for (var i = 2; i < arguments.length; i++)\n validateChildKeys(arguments[i]);\n i = {};\n var key = null;\n if (null != config)\n for (propName in (didWarnAboutOldJSXRuntime ||\n !(\"__self\" in config) ||\n \"key\" in config ||\n ((didWarnAboutOldJSXRuntime = !0),\n console.warn(\n \"Your app (or one of its dependencies) is using an outdated JSX transform. Update to the modern JSX transform for faster performance: https://react.dev/link/new-jsx-transform\"\n )),\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (key = \"\" + config.key)),\n config))\n hasOwnProperty.call(config, propName) &&\n \"key\" !== propName &&\n \"__self\" !== propName &&\n \"__source\" !== propName &&\n (i[propName] = config[propName]);\n var childrenLength = arguments.length - 2;\n if (1 === childrenLength) i.children = children;\n else if (1 < childrenLength) {\n for (\n var childArray = Array(childrenLength), _i = 0;\n _i < childrenLength;\n _i++\n )\n childArray[_i] = arguments[_i + 2];\n Object.freeze && Object.freeze(childArray);\n i.children = childArray;\n }\n if (type && type.defaultProps)\n for (propName in ((childrenLength = type.defaultProps), childrenLength))\n void 0 === i[propName] && (i[propName] = childrenLength[propName]);\n key &&\n defineKeyPropWarningGetter(\n i,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n var propName = 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return ReactElement(\n type,\n key,\n i,\n getOwner(),\n propName ? Error(\"react-stack-top-frame\") : unknownOwnerDebugStack,\n propName ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n exports.createRef = function () {\n var refObject = { current: null };\n Object.seal(refObject);\n return refObject;\n };\n exports.forwardRef = function (render) {\n null != render && render.$$typeof === REACT_MEMO_TYPE\n ? console.error(\n \"forwardRef requires a render function but received a `memo` component. Instead of forwardRef(memo(...)), use memo(forwardRef(...)).\"\n )\n : \"function\" !== typeof render\n ? console.error(\n \"forwardRef requires a render function but was given %s.\",\n null === render ? \"null\" : typeof render\n )\n : 0 !== render.length &&\n 2 !== render.length &&\n console.error(\n \"forwardRef render functions accept exactly two parameters: props and ref. %s\",\n 1 === render.length\n ? \"Did you forget to use the ref parameter?\"\n : \"Any additional parameter will be undefined.\"\n );\n null != render &&\n null != render.defaultProps &&\n console.error(\n \"forwardRef render functions do not support defaultProps. Did you accidentally pass a React component?\"\n );\n var elementType = { $$typeof: REACT_FORWARD_REF_TYPE, render: render },\n ownName;\n Object.defineProperty(elementType, \"displayName\", {\n enumerable: !1,\n configurable: !0,\n get: function () {\n return ownName;\n },\n set: function (name) {\n ownName = name;\n render.name ||\n render.displayName ||\n (Object.defineProperty(render, \"name\", { value: name }),\n (render.displayName = name));\n }\n });\n return elementType;\n };\n exports.isValidElement = isValidElement;\n exports.lazy = function (ctor) {\n ctor = { _status: -1, _result: ctor };\n var lazyType = {\n $$typeof: REACT_LAZY_TYPE,\n _payload: ctor,\n _init: lazyInitializer\n },\n ioInfo = {\n name: \"lazy\",\n start: -1,\n end: -1,\n value: null,\n owner: null,\n debugStack: Error(\"react-stack-top-frame\"),\n debugTask: console.createTask ? console.createTask(\"lazy()\") : null\n };\n ctor._ioInfo = ioInfo;\n lazyType._debugInfo = [{ awaited: ioInfo }];\n return lazyType;\n };\n exports.memo = function (type, compare) {\n null == type &&\n console.error(\n \"memo: The first argument must be a component. Instead received: %s\",\n null === type ? \"null\" : typeof type\n );\n compare = {\n $$typeof: REACT_MEMO_TYPE,\n type: type,\n compare: void 0 === compare ? null : compare\n };\n var ownName;\n Object.defineProperty(compare, \"displayName\", {\n enumerable: !1,\n configurable: !0,\n get: function () {\n return ownName;\n },\n set: function (name) {\n ownName = name;\n type.name ||\n type.displayName ||\n (Object.defineProperty(type, \"name\", { value: name }),\n (type.displayName = name));\n }\n });\n return compare;\n };\n exports.startTransition = function (scope) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n currentTransition._updatedFibers = new Set();\n ReactSharedInternals.T = currentTransition;\n try {\n var returnValue = scope(),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n \"object\" === typeof returnValue &&\n null !== returnValue &&\n \"function\" === typeof returnValue.then &&\n (ReactSharedInternals.asyncTransitions++,\n returnValue.then(releaseAsyncTransition, releaseAsyncTransition),\n returnValue.then(noop, reportGlobalError));\n } catch (error) {\n reportGlobalError(error);\n } finally {\n null === prevTransition &&\n currentTransition._updatedFibers &&\n ((scope = currentTransition._updatedFibers.size),\n currentTransition._updatedFibers.clear(),\n 10 < scope &&\n console.warn(\n \"Detected a large number of updates inside startTransition. If this is due to a subscription please re-write it to use React provided hooks. Otherwise concurrent mode guarantees are off the table.\"\n )),\n null !== prevTransition &&\n null !== currentTransition.types &&\n (null !== prevTransition.types &&\n prevTransition.types !== currentTransition.types &&\n console.error(\n \"We expected inner Transitions to have transferred the outer types set and that you cannot add to the outer Transition while inside the inner.This is a bug in React.\"\n ),\n (prevTransition.types = currentTransition.types)),\n (ReactSharedInternals.T = prevTransition);\n }\n };\n exports.unstable_useCacheRefresh = function () {\n return resolveDispatcher().useCacheRefresh();\n };\n exports.use = function (usable) {\n return resolveDispatcher().use(usable);\n };\n exports.useActionState = function (action, initialState, permalink) {\n return resolveDispatcher().useActionState(\n action,\n initialState,\n permalink\n );\n };\n exports.useCallback = function (callback, deps) {\n return resolveDispatcher().useCallback(callback, deps);\n };\n exports.useContext = function (Context) {\n var dispatcher = resolveDispatcher();\n Context.$$typeof === REACT_CONSUMER_TYPE &&\n console.error(\n \"Calling useContext(Context.Consumer) is not supported and will cause bugs. Did you mean to call useContext(Context) instead?\"\n );\n return dispatcher.useContext(Context);\n };\n exports.useDebugValue = function (value, formatterFn) {\n return resolveDispatcher().useDebugValue(value, formatterFn);\n };\n exports.useDeferredValue = function (value, initialValue) {\n return resolveDispatcher().useDeferredValue(value, initialValue);\n };\n exports.useEffect = function (create, deps) {\n null == create &&\n console.warn(\n \"React Hook useEffect requires an effect callback. Did you forget to pass a callback to the hook?\"\n );\n return resolveDispatcher().useEffect(create, deps);\n };\n exports.useEffectEvent = function (callback) {\n return resolveDispatcher().useEffectEvent(callback);\n };\n exports.useId = function () {\n return resolveDispatcher().useId();\n };\n exports.useImperativeHandle = function (ref, create, deps) {\n return resolveDispatcher().useImperativeHandle(ref, create, deps);\n };\n exports.useInsertionEffect = function (create, deps) {\n null == create &&\n console.warn(\n \"React Hook useInsertionEffect requires an effect callback. Did you forget to pass a callback to the hook?\"\n );\n return resolveDispatcher().useInsertionEffect(create, deps);\n };\n exports.useLayoutEffect = function (create, deps) {\n null == create &&\n console.warn(\n \"React Hook useLayoutEffect requires an effect callback. Did you forget to pass a callback to the hook?\"\n );\n return resolveDispatcher().useLayoutEffect(create, deps);\n };\n exports.useMemo = function (create, deps) {\n return resolveDispatcher().useMemo(create, deps);\n };\n exports.useOptimistic = function (passthrough, reducer) {\n return resolveDispatcher().useOptimistic(passthrough, reducer);\n };\n exports.useReducer = function (reducer, initialArg, init) {\n return resolveDispatcher().useReducer(reducer, initialArg, init);\n };\n exports.useRef = function (initialValue) {\n return resolveDispatcher().useRef(initialValue);\n };\n exports.useState = function (initialState) {\n return resolveDispatcher().useState(initialState);\n };\n exports.useSyncExternalStore = function (\n subscribe,\n getSnapshot,\n getServerSnapshot\n ) {\n return resolveDispatcher().useSyncExternalStore(\n subscribe,\n getSnapshot,\n getServerSnapshot\n );\n };\n exports.useTransition = function () {\n return resolveDispatcher().useTransition();\n };\n exports.version = \"19.2.5\";\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());\n })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","import { useState, useEffect, useCallback } from 'react';\n\n/**\n * @quantabit/sdk-config - BaseApiClient\n * \n * SDK API 客户端基类\n * 封装所有通用的配置、请求、Token 管理逻辑\n * \n * 使用方式:\n * ```javascript\n * import { BaseApiClient } from '@quantabit/sdk-config';\n * \n * class MyApiClient extends BaseApiClient {\n * constructor(config = {}) {\n * super('/my-module', config); // 只需传入模块路径\n * }\n * \n * // 专注于业务方法\n * async getList() {\n * return this.request('/list');\n * }\n * }\n * ```\n */\n\n\nfunction joinUrlSegments(baseUrl = '', path = '') {\n const cleanBase = String(baseUrl || '').replace(/\\/+$/, '');\n const cleanPath = String(path || '').replace(/^\\/+/, '');\n\n if (!cleanBase) {\n return cleanPath ? `/${cleanPath}` : '';\n }\n\n if (!cleanPath) {\n return cleanBase;\n }\n\n return `${cleanBase}/${cleanPath}`;\n}\n\nasync function parseResponseBody(response) {\n if (response.status === 204 || response.status === 205) {\n return null;\n }\n\n const contentType = response.headers.get('content-type') || '';\n if (contentType.includes('application/json')) {\n return response.json();\n }\n\n const text = await response.text();\n if (!text) {\n return null;\n }\n\n try {\n return JSON.parse(text);\n } catch {\n return text;\n }\n}\n\n/**\n * SDK API 客户端基类\n * 所有 SDK 的 API 客户端都应继承此类\n */\nclass BaseApiClient {\n /**\n * 构造函数\n * @param {string} modulePath - 模块路径,如 '/auth', '/points', '/wallet'\n * @param {Object} config - 配置选项\n * @param {string} config.baseUrl - 自定义基础 URL(覆盖全局配置)\n * @param {number} config.timeout - 自定义超时时间(毫秒)\n * @param {number} config.maxRetries - 最大重试次数(默认 0 不重试)\n * @param {number} config.retryDelay - 重试间隔基数毫秒(默认 1000,指数退避)\n * @param {Function} config.onError - 错误回调\n * @param {Function} config.getLanguage - 获取语言的函数\n */\n constructor(modulePath = '', config = {}) {\n this.modulePath = modulePath;\n this._customBaseUrl = config.baseUrl;\n this._customTimeout = config.timeout;\n this.maxRetries = config.maxRetries || 0;\n this.retryDelay = config.retryDelay || 1000;\n this.token = null;\n this.onError = config.onError;\n this.getLanguage = config.getLanguage || (() => 'zh');\n\n // 从全局配置初始化\n this._updateFromGlobalConfig(getConfig());\n\n // 订阅配置变更(使用 WeakRef 避免内存泄漏)\n if (typeof WeakRef !== 'undefined') {\n const weakSelf = new WeakRef(this);\n let unsubscribe;\n const listener = (newConfig) => {\n const self = weakSelf.deref();\n if (self) {\n self._updateFromGlobalConfig(newConfig);\n } else if (unsubscribe) {\n unsubscribe();\n }\n };\n unsubscribe = subscribeConfig(listener);\n this._unsubscribe = unsubscribe;\n } else {\n this._unsubscribe = subscribeConfig((newConfig) => {\n this._updateFromGlobalConfig(newConfig);\n });\n }\n }\n\n /**\n * 从全局配置更新本地配置\n * @private\n */\n _updateFromGlobalConfig(globalConfig) {\n // 只有未自定义时才使用全局配置\n if (!this._customBaseUrl) {\n let base = globalConfig.apiBaseUrl || '/api/v1';\n const isAbsolute = /^https?:\\/\\//i.test(base);\n const isServer = typeof window === 'undefined';\n if (!isAbsolute && isServer) {\n // 如果是 Server 端或 Node.js 环境,将相对路径补全为完整品牌域名路径\n const fullUrl = globalConfig.apiFullUrl || 'https://api.qbitchain.io';\n base = joinUrlSegments(fullUrl, base);\n }\n this.baseUrl = joinUrlSegments(base, this.modulePath);\n } else {\n this.baseUrl = joinUrlSegments(this._customBaseUrl, '');\n }\n\n if (!this._customTimeout) {\n this.timeout = globalConfig.timeout || 30000;\n } else {\n this.timeout = this._customTimeout;\n }\n }\n\n /**\n * 设置 Token\n * @param {string} token - 访问令牌\n */\n setToken(token) {\n this.token = token;\n }\n\n /**\n * 设置基础 URL\n * @param {string} url - 新的基础 URL\n */\n setBaseUrl(url) {\n this._customBaseUrl = url;\n this.baseUrl = joinUrlSegments(url, '');\n }\n\n /**\n * 获取当前使用的 Token\n * 优先使用实例 Token,否则从存储获取\n * @returns {string|null}\n */\n getToken() {\n return this.token || getToken();\n }\n\n /**\n * 发送 HTTP 请求\n * @param {string} endpoint - API 端点(相对于 baseUrl)\n * @param {Object} options - fetch 选项\n * @returns {Promise<any>} 响应数据\n */\n async request(endpoint, options = {}) {\n const url = `${this.baseUrl}${endpoint}`;\n const retryCount = options._retryCount || 0;\n\n // 构建请求头\n const headers = {\n 'Content-Type': 'application/json',\n 'Accept-Language': this.getLanguage(),\n ...options.headers,\n };\n\n // 添加认证头\n const token = this.getToken();\n if (token) {\n headers['Authorization'] = `Bearer ${token}`;\n }\n\n // 超时控制\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), this.timeout);\n\n try {\n const response = await fetch(url, {\n ...options,\n headers,\n signal: controller.signal,\n });\n\n clearTimeout(timeoutId);\n\n // 5xx 服务端错误 — 可重试\n if (response.status >= 500 && retryCount < this.maxRetries) {\n const delay = this.retryDelay * Math.pow(2, retryCount);\n logger.warn(`${this.constructor.name} 5xx error, retrying in ${delay}ms... (${retryCount + 1}/${this.maxRetries})`);\n await new Promise(r => setTimeout(r, delay));\n return this.request(endpoint, { ...options, _retryCount: retryCount + 1 });\n }\n\n // 解析响应\n const data = await parseResponseBody(response);\n\n // 处理错误响应\n if (!response.ok) {\n let errorMsg =\n (data && typeof data === 'object' ? data.message || data.detail : null) ||\n (typeof data === 'string' ? data : null);\n if (Array.isArray(errorMsg)) {\n errorMsg = errorMsg[0]?.msg || errorMsg[0]?.message || JSON.stringify(errorMsg);\n } else if (typeof errorMsg === 'object' && errorMsg !== null) {\n errorMsg = errorMsg.msg || errorMsg.message || JSON.stringify(errorMsg);\n }\n\n const error = new Error(errorMsg || `HTTP ${response.status}`);\n error.code = data?.code || `HTTP_${response.status}`;\n error.status = response.status;\n error.data = data;\n\n this.onError?.(error);\n logger.error(`${this.constructor.name} Error:`, error.message);\n throw error;\n }\n\n return data;\n } catch (error) {\n clearTimeout(timeoutId);\n\n // 处理超时错误\n if (error.name === 'AbortError') {\n const timeoutError = new Error('Request timeout');\n timeoutError.code = 'TIMEOUT';\n this.onError?.(timeoutError);\n throw timeoutError;\n }\n\n // 处理网络错误 — 可重试\n if (error.name === 'TypeError' && error.message.includes('fetch')) {\n if (retryCount < this.maxRetries) {\n const delay = this.retryDelay * Math.pow(2, retryCount);\n logger.warn(`${this.constructor.name} Network error, retrying in ${delay}ms...`);\n await new Promise(r => setTimeout(r, delay));\n return this.request(endpoint, { ...options, _retryCount: retryCount + 1 });\n }\n const networkError = new Error('Network error');\n networkError.code = 'NETWORK_ERROR';\n this.onError?.(networkError);\n throw networkError;\n }\n\n throw error;\n }\n }\n\n /**\n * GET 请求便捷方法\n * @param {string} endpoint - API 端点\n * @param {Object} params - 查询参数\n */\n async get(endpoint, params = {}) {\n const query = new URLSearchParams(params).toString();\n const url = query ? `${endpoint}?${query}` : endpoint;\n return this.request(url, { method: 'GET' });\n }\n\n /**\n * POST 请求便捷方法\n * @param {string} endpoint - API 端点\n * @param {Object} data - 请求体数据\n */\n async post(endpoint, data = {}) {\n return this.request(endpoint, {\n method: 'POST',\n body: JSON.stringify(data),\n });\n }\n\n /**\n * PUT 请求便捷方法\n * @param {string} endpoint - API 端点\n * @param {Object} data - 请求体数据\n */\n async put(endpoint, data = {}) {\n return this.request(endpoint, {\n method: 'PUT',\n body: JSON.stringify(data),\n });\n }\n\n /**\n * DELETE 请求便捷方法\n * @param {string} endpoint - API 端点\n * @param {Object} data - 请求体数据(可选)\n */\n async delete(endpoint, data = null) {\n const options = { method: 'DELETE' };\n if (data) {\n options.body = JSON.stringify(data);\n }\n return this.request(endpoint, options);\n }\n\n /**\n * PATCH 请求便捷方法\n * @param {string} endpoint - API 端点\n * @param {Object} data - 请求体数据\n */\n async patch(endpoint, data = {}) {\n return this.request(endpoint, {\n method: 'PATCH',\n body: JSON.stringify(data),\n });\n }\n\n /**\n * 销毁实例,取消配置订阅\n */\n destroy() {\n if (this._unsubscribe) {\n this._unsubscribe();\n this._unsubscribe = null;\n }\n }\n}\n\n/**\n * 创建 API 客户端的工厂函数\n * 用于快速创建简单的 API 客户端\n * \n * @param {string} modulePath - 模块路径\n * @param {Object} methods - 方法定义对象\n * @returns {BaseApiClient} API 客户端实例\n * \n * @example\n * const myApi = createApiClient('/my-module', {\n * getList: (client) => client.get('/list'),\n * create: (client, data) => client.post('/', data),\n * });\n */\nfunction createApiClient(modulePath, methods = {}) {\n const client = new BaseApiClient(modulePath);\n\n // 绑定自定义方法\n Object.entries(methods).forEach(([name, fn]) => {\n client[name] = (...args) => fn(client, ...args);\n });\n\n return client;\n}\n\n/**\n * @quantabit/sdk-config - ConsentManager\n * \n * 全局隐私同意管理器\n * 统一管理所有 SDK 的数据采集同意状态\n * \n * 隐私等级:\n * - essential: 核心功能(无需同意,如认证、安全)\n * - functional: 功能增强(如语言偏好、主题设置)\n * - analytics: 数据分析(如页面浏览、点击追踪)\n * - marketing: 营销推广(如广告追踪、再营销)\n * \n * 合规标准: GDPR, CCPA, ePrivacy\n */\n\n\n// ============ 隐私等级定义 ============\n\nconst PrivacyLevel = {\n ESSENTIAL: 'essential', // 核心必需 — 不可关闭\n FUNCTIONAL: 'functional', // 功能性 — 可选\n ANALYTICS: 'analytics', // 数据分析 — 需同意\n MARKETING: 'marketing', // 营销追踪 — 需同意\n};\n\n// ============ 同意状态 ============\n\nconst ConsentStatus = {\n UNKNOWN: 'unknown', // 用户尚未做出选择\n GRANTED: 'granted', // 用户已同意\n DENIED: 'denied', // 用户已拒绝\n WITHDRAWN: 'withdrawn', // 用户撤回同意\n};\n\n// ============ 存储键 ============\n\nconst CONSENT_STORAGE_KEY = 'qbit_privacy_consent';\nconst CONSENT_TIMESTAMP_KEY = 'qbit_privacy_consent_ts';\nconst CONSENT_VERSION_KEY = 'qbit_privacy_consent_ver';\n\n// 当前隐私政策版本 — 版本变更时会要求用户重新同意\nconst CURRENT_PRIVACY_VERSION = '1.0.0';\n\n// ============ ConsentManager ============\n\nclass ConsentManagerClass {\n constructor() {\n this._consent = {\n [PrivacyLevel.ESSENTIAL]: ConsentStatus.GRANTED, // 核心永远同意\n [PrivacyLevel.FUNCTIONAL]: ConsentStatus.UNKNOWN,\n [PrivacyLevel.ANALYTICS]: ConsentStatus.UNKNOWN,\n [PrivacyLevel.MARKETING]: ConsentStatus.UNKNOWN,\n };\n this._listeners = new Set();\n this._initialized = false;\n this._blockedCallbacks = new Map(); // SDK 名称 -> 被阻塞的回调列表\n }\n\n /**\n * 初始化同意管理器\n * 从 localStorage 恢复已保存的同意状态\n */\n init() {\n if (this._initialized) return this;\n \n // 初始化审计日志\n this._auditLog = [];\n\n if (typeof window !== 'undefined') {\n try {\n // 检查 GPC (Global Privacy Control) 信号 — CCPA §999.315\n if (navigator.globalPrivacyControl === true) {\n logger.info('[ConsentManager] GPC 信号检测到 — 自动拒绝非必要追踪');\n this._consent[PrivacyLevel.ANALYTICS] = ConsentStatus.DENIED;\n this._consent[PrivacyLevel.MARKETING] = ConsentStatus.DENIED;\n this._consent[PrivacyLevel.FUNCTIONAL] = ConsentStatus.GRANTED; // GPC 不影响功能性\n this._gpcDetected = true;\n this._persistConsent();\n this._addAuditEntry('gpc_detected', 'analytics,marketing auto-denied by GPC signal');\n this._initialized = true;\n return this;\n }\n\n // 检查隐私政策版本是否变更\n const savedVersion = localStorage.getItem(CONSENT_VERSION_KEY);\n if (savedVersion !== CURRENT_PRIVACY_VERSION) {\n // 隐私政策更新,需要用户重新同意\n logger.info('隐私政策版本已更新,需要重新同意');\n this._addAuditEntry('policy_version_change', `${savedVersion} → ${CURRENT_PRIVACY_VERSION}`);\n this._clearStoredConsent();\n } else {\n // 恢复已保存的同意状态\n const saved = localStorage.getItem(CONSENT_STORAGE_KEY);\n if (saved) {\n const parsed = JSON.parse(saved);\n Object.assign(this._consent, parsed);\n // 核心同意永远保持\n this._consent[PrivacyLevel.ESSENTIAL] = ConsentStatus.GRANTED;\n }\n }\n } catch (e) {\n logger.warn('无法恢复隐私同意状态:', e);\n }\n }\n\n this._initialized = true;\n return this;\n }\n\n /**\n * 获取指定等级的同意状态\n * @param {string} level - 隐私等级\n * @returns {string} 同意状态\n */\n getConsent(level) {\n return this._consent[level] || ConsentStatus.UNKNOWN;\n }\n\n /**\n * 获取所有同意状态\n * @returns {object} 完整的同意状态对象\n */\n getAllConsent() {\n return { ...this._consent };\n }\n\n /**\n * 检查是否已同意指定等级\n * @param {string} level - 隐私等级\n * @returns {boolean}\n */\n hasConsent(level) {\n if (level === PrivacyLevel.ESSENTIAL) return true;\n return this._consent[level] === ConsentStatus.GRANTED;\n }\n\n /**\n * 检查用户是否已做出选择(非 unknown 状态)\n * @returns {boolean}\n */\n hasUserDecided() {\n return Object.keys(this._consent)\n .filter(k => k !== PrivacyLevel.ESSENTIAL)\n .some(k => this._consent[k] !== ConsentStatus.UNKNOWN);\n }\n\n /**\n * 设置同意状态\n * @param {string} level - 隐私等级\n * @param {boolean} granted - 是否同意\n */\n setConsent(level, granted) {\n if (level === PrivacyLevel.ESSENTIAL) {\n logger.warn('核心功能同意不能被修改');\n return;\n }\n\n const newStatus = granted ? ConsentStatus.GRANTED : ConsentStatus.DENIED;\n const oldStatus = this._consent[level];\n this._consent[level] = newStatus;\n\n // 持久化\n this._persistConsent();\n\n // 审计日志\n this._addAuditEntry('consent_change', `${level}: ${oldStatus} → ${newStatus}`);\n\n // 通知监听器\n this._notifyListeners(level, newStatus, oldStatus);\n\n // 如果同意了,执行被阻塞的回调\n if (granted) {\n this._executeBlockedCallbacks(level);\n }\n\n logger.info(`隐私同意已更新: ${level} = ${newStatus}`);\n }\n\n /**\n * 接受所有\n */\n acceptAll() {\n [PrivacyLevel.FUNCTIONAL, PrivacyLevel.ANALYTICS, PrivacyLevel.MARKETING]\n .forEach(level => {\n this._consent[level] = ConsentStatus.GRANTED;\n });\n this._persistConsent();\n this._notifyListeners('all', ConsentStatus.GRANTED);\n\n // 执行所有被阻塞的回调\n for (const level of Object.keys(this._consent)) {\n this._executeBlockedCallbacks(level);\n }\n\n logger.info('用户已接受所有隐私同意');\n }\n\n /**\n * 仅接受必需项\n */\n acceptEssentialOnly() {\n [PrivacyLevel.FUNCTIONAL, PrivacyLevel.ANALYTICS, PrivacyLevel.MARKETING]\n .forEach(level => {\n this._consent[level] = ConsentStatus.DENIED;\n });\n this._persistConsent();\n this._notifyListeners('all', ConsentStatus.DENIED);\n\n logger.info('用户仅接受必要隐私同意');\n }\n\n /**\n * 撤回所有同意\n */\n withdrawAll() {\n [PrivacyLevel.FUNCTIONAL, PrivacyLevel.ANALYTICS, PrivacyLevel.MARKETING]\n .forEach(level => {\n this._consent[level] = ConsentStatus.WITHDRAWN;\n });\n this._persistConsent();\n this._notifyListeners('all', ConsentStatus.WITHDRAWN);\n\n logger.info('用户已撤回所有隐私同意');\n }\n\n /**\n * 在获得同意后执行回调\n * 如果已同意则立即执行,否则挂起等待同意\n * \n * @param {string} level - 所需的隐私等级\n * @param {function} callback - 回调函数\n * @param {string} sdkName - SDK 标识 (用于调试)\n */\n withConsent(level, callback, sdkName = 'unknown') {\n if (this.hasConsent(level)) {\n callback();\n } else {\n // 挂起回调,等待同意\n if (!this._blockedCallbacks.has(level)) {\n this._blockedCallbacks.set(level, []);\n }\n this._blockedCallbacks.get(level).push({ callback, sdkName });\n logger.debug(`[${sdkName}] 功能已挂起,等待 ${level} 隐私同意`);\n }\n }\n\n /**\n * 订阅同意变更\n * @param {function} listener - (level, newStatus, oldStatus) => void\n * @returns {function} 取消订阅函数\n */\n subscribe(listener) {\n this._listeners.add(listener);\n return () => this._listeners.delete(listener);\n }\n\n /**\n * 按隐私等级订阅同意变更\n * 比 subscribe 更精准 — 只在指定等级变更时触发\n * \n * @param {string} level - 隐私等级 (analytics/functional/marketing)\n * @param {function} callback - (granted: boolean) => void\n * @returns {function} 取消订阅函数\n * \n * @example\n * consentManager.onConsentChange('analytics', (granted) => {\n * if (granted) startTracking();\n * else stopTracking();\n * });\n */\n onConsentChange(level, callback) {\n const wrapper = (changedLevel, newStatus) => {\n // 精确匹配 或 全局变更(acceptAll/withdrawAll)\n if (changedLevel === level || changedLevel === 'all') {\n const granted = changedLevel === 'all' \n ? this.hasConsent(level) \n : newStatus === ConsentStatus.GRANTED;\n try {\n callback(granted);\n } catch (e) {\n logger.error(`[ConsentManager] onConsentChange 回调错误 (${level}):`, e);\n }\n }\n };\n this._listeners.add(wrapper);\n return () => this._listeners.delete(wrapper);\n }\n\n /**\n * 获取隐私摘要 — 用于展示给用户\n * @returns {object} \n */\n getPrivacySummary() {\n return {\n version: CURRENT_PRIVACY_VERSION,\n consent: this.getAllConsent(),\n decided: this.hasUserDecided(),\n timestamp: typeof window !== 'undefined' \n ? localStorage.getItem(CONSENT_TIMESTAMP_KEY) \n : null,\n categories: {\n [PrivacyLevel.ESSENTIAL]: {\n label: 'Essential',\n labelZh: '核心必需',\n description: 'Required for basic functionality like security and authentication.',\n descriptionZh: '安全认证等基础功能所必需,不可关闭。',\n required: true,\n },\n [PrivacyLevel.FUNCTIONAL]: {\n label: 'Functional',\n labelZh: '功能增强',\n description: 'Enables enhanced features like language preferences and theme settings.',\n descriptionZh: '语言偏好、主题设置等功能增强。',\n required: false,\n },\n [PrivacyLevel.ANALYTICS]: {\n label: 'Analytics',\n labelZh: '数据分析',\n description: 'Helps us understand usage patterns to improve the product.',\n descriptionZh: '帮助我们了解使用模式以改进产品。',\n required: false,\n },\n [PrivacyLevel.MARKETING]: {\n label: 'Marketing',\n labelZh: '营销推广',\n description: 'Used for personalized content and advertising.',\n descriptionZh: '用于个性化内容和广告推送。',\n required: false,\n },\n },\n };\n }\n\n // ============ 内部方法 ============\n\n _persistConsent() {\n if (typeof window === 'undefined') return;\n try {\n localStorage.setItem(CONSENT_STORAGE_KEY, JSON.stringify(this._consent));\n localStorage.setItem(CONSENT_TIMESTAMP_KEY, new Date().toISOString());\n localStorage.setItem(CONSENT_VERSION_KEY, CURRENT_PRIVACY_VERSION);\n } catch (e) {\n logger.warn('无法持久化隐私同意:', e);\n }\n }\n\n _clearStoredConsent() {\n if (typeof window === 'undefined') return;\n try {\n localStorage.removeItem(CONSENT_STORAGE_KEY);\n localStorage.removeItem(CONSENT_TIMESTAMP_KEY);\n localStorage.removeItem(CONSENT_VERSION_KEY);\n } catch (e) { /* ignore */ }\n }\n\n _notifyListeners(level, newStatus, oldStatus) {\n this._listeners.forEach(listener => {\n try {\n listener(level, newStatus, oldStatus);\n } catch (e) {\n logger.error('隐私同意监听器执行错误:', e);\n }\n });\n\n // 触发全局事件\n if (typeof window !== 'undefined') {\n try {\n window.dispatchEvent(new CustomEvent('qbit:consent-change', {\n detail: { level, status: newStatus, previousStatus: oldStatus }\n }));\n } catch (e) { /* ignore */ }\n }\n }\n\n _executeBlockedCallbacks(level) {\n const callbacks = this._blockedCallbacks.get(level) || [];\n callbacks.forEach(({ callback, sdkName }) => {\n try {\n logger.debug(`[${sdkName}] 同意已获得,执行挂起的功能`);\n callback();\n } catch (e) {\n logger.error(`[${sdkName}] 挂起回调执行错误:`, e);\n }\n });\n this._blockedCallbacks.delete(level);\n }\n\n // ============ 审计日志 ============\n\n /**\n * 添加审计条目\n * @param {string} action - 操作类型\n * @param {string} detail - 详细信息\n * @private\n */\n _addAuditEntry(action, detail) {\n if (!this._auditLog) this._auditLog = [];\n this._auditLog.push({\n action,\n detail,\n timestamp: new Date().toISOString(),\n consent: { ...this._consent },\n });\n // 保留最近 50 条\n if (this._auditLog.length > 50) {\n this._auditLog = this._auditLog.slice(-50);\n }\n }\n\n /**\n * 获取同意审计日志 — 用于 GDPR 数据导出\n * @returns {Array} 审计条目\n */\n getConsentLog() {\n return this._auditLog || [];\n }\n\n /**\n * 是否检测到 GPC 信号\n * @returns {boolean}\n */\n get isGPCDetected() {\n return this._gpcDetected === true;\n }\n\n /**\n * 是否检测到 DNT 信号\n * @returns {boolean}\n */\n get isDNTDetected() {\n if (typeof navigator === 'undefined') return false;\n return navigator.doNotTrack === '1' || navigator.doNotTrack === 'yes';\n }\n}\n\n// ============ 单例导出 ============\n\nconst consentManager = new ConsentManagerClass();\n\n/**\n * React Hook: 隐私同意管理\n * \n * @example\n * const { consent, hasConsent, setConsent, acceptAll } = useConsent();\n * \n * if (hasConsent('analytics')) {\n * // 可以进行数据追踪\n * }\n */\nfunction useConsent() {\n const [consent, setConsentState] = useState(() => consentManager.getAllConsent());\n\n useEffect(() => {\n consentManager.init();\n setConsentState(consentManager.getAllConsent());\n\n const unsubscribe = consentManager.subscribe(() => {\n setConsentState(consentManager.getAllConsent());\n });\n return unsubscribe;\n }, []);\n\n const setConsentLevel = useCallback((level, granted) => {\n consentManager.setConsent(level, granted);\n }, []);\n\n const acceptAllFn = useCallback(() => {\n consentManager.acceptAll();\n }, []);\n\n const acceptEssentialFn = useCallback(() => {\n consentManager.acceptEssentialOnly();\n }, []);\n\n const withdrawFn = useCallback(() => {\n consentManager.withdrawAll();\n }, []);\n\n return {\n consent,\n hasConsent: (level) => consentManager.hasConsent(level),\n hasUserDecided: consentManager.hasUserDecided(),\n setConsent: setConsentLevel,\n acceptAll: acceptAllFn,\n acceptEssentialOnly: acceptEssentialFn,\n withdrawAll: withdrawFn,\n summary: consentManager.getPrivacySummary(),\n };\n}\n\n/**\n * @quantabit/sdk-config - DataSanitizer\n * \n * 数据脱敏工具\n * 自动检测和脱敏 PII (个人身份信息)\n * 用于日志、错误报告、分析数据中的隐私保护\n */\n\n// ============ PII 检测模式 ============\n\nconst PII_PATTERNS = {\n // 邮箱地址\n email: {\n regex: /[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}/g,\n mask: (match) => {\n const [local, domain] = match.split('@');\n return `${local[0]}***@${domain}`;\n },\n },\n // 手机号码 (国际格式)\n phone: {\n regex: /(\\+?\\d{1,4}[-.\\s]?)?\\(?\\d{2,4}\\)?[-.\\s]?\\d{3,4}[-.\\s]?\\d{3,4}/g,\n mask: (match) => {\n const digits = match.replace(/\\D/g, '');\n if (digits.length < 7) return match; // 太短不是手机号\n return `${digits.slice(0, 3)}****${digits.slice(-4)}`;\n },\n },\n // 身份证号 (中国)\n idCard: {\n regex: /\\d{6}(19|20)\\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\\d|3[01])\\d{3}[0-9Xx]/g,\n mask: (match) => `${match.slice(0, 6)}********${match.slice(-4)}`,\n },\n // 钱包地址 (Ethereum-style)\n walletAddress: {\n regex: /0x[a-fA-F0-9]{40}/g,\n mask: (match) => `${match.slice(0, 6)}...${match.slice(-4)}`,\n },\n // IP 地址\n ipAddress: {\n regex: /\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\b/g,\n mask: (match) => {\n const parts = match.split('.');\n return `${parts[0]}.${parts[1]}.*.*`;\n },\n },\n // JWT Token\n jwtToken: {\n regex: /eyJ[a-zA-Z0-9_-]+\\.eyJ[a-zA-Z0-9_-]+\\.[a-zA-Z0-9_-]+/g,\n mask: () => '[REDACTED_TOKEN]',\n },\n // API Key patterns\n apiKey: {\n regex: /(api[_-]?key|apikey|secret|password|token|auth)[=:]\\s*['\"]?([a-zA-Z0-9_\\-./+]{20,})['\"]?/gi,\n mask: (match) => {\n const colonIdx = match.indexOf(':');\n const equalIdx = match.indexOf('=');\n const sepIdx = colonIdx >= 0 ? colonIdx : equalIdx;\n const key = match.slice(0, sepIdx + 1);\n return `${key} [REDACTED]`;\n },\n },\n // 信用卡号 (Visa/MC/Amex 等常见格式)\n creditCard: {\n regex: /\\b(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|3[47][0-9]{13}|6(?:011|5[0-9]{2})[0-9]{12})\\b/g,\n mask: (match) => `****-****-****-${match.slice(-4)}`,\n },\n // DID (去中心化身份标识符)\n did: {\n regex: /did:[a-z]+:[a-zA-Z0-9._%-]+/g,\n mask: (match) => {\n const parts = match.split(':');\n if (parts.length >= 3) {\n const id = parts[2];\n return `${parts[0]}:${parts[1]}:${id.slice(0, 6)}...${id.slice(-4)}`;\n }\n return `${match.slice(0, 12)}...`;\n },\n },\n // SSN (美国社会安全号)\n ssn: {\n regex: /\\b\\d{3}-\\d{2}-\\d{4}\\b/g,\n mask: () => '***-**-****',\n },\n};\n\n// ============ 敏感字段名 ============\n\nconst SENSITIVE_FIELDS = new Set([\n 'password', 'passwd', 'secret', 'token', 'accessToken', 'refreshToken',\n 'access_token', 'refresh_token', 'api_key', 'apiKey', 'privateKey',\n 'private_key', 'ssn', 'socialSecurityNumber', 'creditCard', 'credit_card',\n 'cardNumber', 'card_number', 'cvv', 'pin', 'otp', 'mnemonic', 'seed',\n 'seedPhrase', 'seed_phrase', 'idNumber', 'id_number', 'passport',\n // Web3 / DeFi 扩展\n 'keystore', 'encryptedKey', 'encrypted_key', 'recoveryPhrase', 'recovery_phrase',\n 'walletSeed', 'wallet_seed', 'derivationPath', 'derivation_path',\n 'secretKey', 'secret_key', 'signingKey', 'signing_key',\n // 支付安全\n 'cardCvv', 'card_cvv', 'securityCode', 'security_code',\n 'expiryDate', 'expiry_date', 'paymentPassword', 'payment_password',\n]);\n\n// ============ DataSanitizer ============\n\nclass DataSanitizerClass {\n constructor() {\n this._customRules = [];\n this._whitelistFields = new Set();\n }\n\n /**\n * 脱敏文本内容 — 自动检测并掩码 PII\n * @param {string} text - 原始文本\n * @param {string[]} types - 要检测的 PII 类型 (默认全部)\n * @returns {string} 脱敏后的文本\n */\n sanitizeText(text, types = null) {\n if (typeof text !== 'string') return text;\n\n let result = text;\n const patterns = types \n ? Object.entries(PII_PATTERNS).filter(([key]) => types.includes(key))\n : Object.entries(PII_PATTERNS);\n\n for (const [, { regex, mask }] of patterns) {\n // 因为 regex 有 /g 标志,需要重置 lastIndex\n regex.lastIndex = 0;\n result = result.replace(regex, mask);\n }\n\n // 应用自定义规则\n for (const rule of this._customRules) {\n rule.regex.lastIndex = 0;\n result = result.replace(rule.regex, rule.mask);\n }\n\n return result;\n }\n\n /**\n * 脱敏对象 — 递归处理所有字段\n * @param {object} obj - 原始对象\n * @param {object} options - 选项\n * @returns {object} 脱敏后的深拷贝对象\n */\n sanitizeObject(obj, options = {}) {\n if (obj === null || obj === undefined) return obj;\n if (typeof obj !== 'object') return obj;\n if (Array.isArray(obj)) {\n return obj.map(item => this.sanitizeObject(item, options));\n }\n\n const maxDepth = options.maxDepth || 10;\n const currentDepth = options._currentDepth || 0;\n\n if (currentDepth >= maxDepth) {\n return '[MAX_DEPTH_REACHED]';\n }\n\n const result = {};\n for (const [key, value] of Object.entries(obj)) {\n // 白名单字段跳过\n if (this._whitelistFields.has(key)) {\n result[key] = value;\n continue;\n }\n\n // 检查是否为敏感字段\n if (SENSITIVE_FIELDS.has(key) || SENSITIVE_FIELDS.has(key.toLowerCase())) {\n result[key] = typeof value === 'string' && value.length > 0 \n ? '[REDACTED]' \n : value;\n continue;\n }\n\n // 递归处理对象\n if (typeof value === 'object' && value !== null) {\n result[key] = this.sanitizeObject(value, {\n ...options,\n _currentDepth: currentDepth + 1,\n });\n } else if (typeof value === 'string') {\n result[key] = this.sanitizeText(value);\n } else {\n result[key] = value;\n }\n }\n\n return result;\n }\n\n /**\n * 脱敏 URL — 移除查询参数中的敏感信息\n * @param {string} url - 原始 URL\n * @returns {string} 脱敏后的 URL\n */\n sanitizeUrl(url) {\n if (typeof url !== 'string') return url;\n\n try {\n const parsed = new URL(url, 'https://placeholder.com');\n const sensitiveParams = ['token', 'key', 'secret', 'password', 'auth', 'api_key', 'access_token'];\n \n for (const param of sensitiveParams) {\n if (parsed.searchParams.has(param)) {\n parsed.searchParams.set(param, '[REDACTED]');\n }\n }\n\n // 如果原始 URL 是相对路径\n if (!url.startsWith('http')) {\n return parsed.pathname + parsed.search + parsed.hash;\n }\n return parsed.toString();\n } catch {\n // URL 解析失败,使用文本脱敏\n return this.sanitizeText(url);\n }\n }\n\n /**\n * 创建安全的日志对象\n * 用于错误报告和审计日志\n * \n * @param {object} data - 原始数据\n * @returns {object} 安全的日志数据\n */\n createSafeLogEntry(data) {\n return this.sanitizeObject(data);\n }\n\n /**\n * 添加自定义脱敏规则\n * @param {string} name - 规则名称\n * @param {RegExp} regex - 匹配正则 (必须有 /g 标志)\n * @param {function} mask - 掩码函数 (match) => maskedString\n */\n addRule(name, regex, mask) {\n this._customRules.push({ name, regex, mask });\n }\n\n /**\n * 添加白名单字段 — 这些字段不会被脱敏\n * @param {string[]} fields - 字段名列表\n */\n addWhitelist(fields) {\n fields.forEach(f => this._whitelistFields.add(f));\n }\n\n /**\n * 匿名化用户数据\n * 用于分析统计时的数据处理\n * \n * @param {object} userData - 用户数据\n * @returns {object} 匿名化后的数据\n */\n anonymize(userData) {\n if (!userData || typeof userData !== 'object') return userData;\n\n const anonymized = { ...userData };\n\n // 替换直接标识符\n if (anonymized.email) anonymized.email = this._hashString(anonymized.email);\n if (anonymized.phone) anonymized.phone = this._hashString(anonymized.phone);\n if (anonymized.name) delete anonymized.name;\n if (anonymized.realName) delete anonymized.realName;\n if (anonymized.real_name) delete anonymized.real_name;\n if (anonymized.address) delete anonymized.address;\n if (anonymized.ip) anonymized.ip = this._anonymizeIp(anonymized.ip);\n if (anonymized.walletAddress) {\n anonymized.walletAddress = anonymized.walletAddress.slice(0, 6) + '...';\n }\n\n // 保留非标识性数据用于分析\n // 如:国家、语言、设备类型、浏览器类型等\n\n return anonymized;\n }\n\n // ============ 内部方法 ============\n\n /**\n * 简单哈希 — 用于匿名化(非加密安全)\n */\n _hashString(str) {\n let hash = 0;\n for (let i = 0; i < str.length; i++) {\n const char = str.charCodeAt(i);\n hash = ((hash << 5) - hash) + char;\n hash = hash & hash; // Convert to 32bit integer\n }\n return `anon_${Math.abs(hash).toString(36)}`;\n }\n\n _anonymizeIp(ip) {\n if (typeof ip !== 'string') return ip;\n const parts = ip.split('.');\n if (parts.length === 4) {\n return `${parts[0]}.${parts[1]}.0.0`;\n }\n return ip;\n }\n\n /**\n * 一键日志脱敏 — 所有 SDK 通用的日志安全输出\n * 自动检测并脱敏 PII、Token、API Key 等敏感数据\n * \n * @param {...*} args - 任意数量的日志参数\n * @returns {string[]} 脱敏后的日志参数数组\n * \n * @example\n * // 替代 console.log(user.email, token)\n * console.log(...dataSanitizer.sanitizeForLogging(user.email, token));\n */\n sanitizeForLogging(...args) {\n return args.map(arg => {\n if (typeof arg === 'string') {\n return this.sanitizeText(arg);\n }\n if (arg && typeof arg === 'object') {\n try {\n return JSON.parse(JSON.stringify(arg, (key, value) => {\n if (typeof value === 'string') {\n return this.sanitizeText(value);\n }\n // 脱敏常见敏感字段名\n const sensitiveKeys = ['password', 'secret', 'token', 'apiKey', 'api_key', \n 'authorization', 'cookie', 'session', 'private_key',\n 'mnemonic', 'seed', 'passphrase'];\n if (sensitiveKeys.includes(key.toLowerCase())) {\n return '[REDACTED]';\n }\n return value;\n }));\n } catch {\n return '[Object - sanitize failed]';\n }\n }\n return arg;\n });\n }\n\n /**\n * 完全移除所有 PII — GDPR 数据删除场景\n * 比 sanitizeText 更激进,直接替换为占位符\n * \n * @param {*} data - 任意数据\n * @returns {*} PII 完全移除后的数据\n */\n redactAllPII(data) {\n if (typeof data === 'string') {\n let result = data;\n for (const { regex } of Object.values(PII_PATTERNS)) {\n const freshRegex = new RegExp(regex.source, regex.flags);\n result = result.replace(freshRegex, '[PII_REMOVED]');\n }\n return result;\n }\n if (Array.isArray(data)) {\n return data.map(item => this.redactAllPII(item));\n }\n if (data && typeof data === 'object') {\n const result = {};\n for (const [key, value] of Object.entries(data)) {\n result[key] = this.redactAllPII(value);\n }\n return result;\n }\n return data;\n }\n}\n\n// ============ 单例导出 ============\n\nconst dataSanitizer = new DataSanitizerClass();\n\n/**\n * Privacy Orchestrator — 统一隐私合规编排器\n * \n * 跨所有 SDK 的一站式隐私操作:\n * - 一键数据删除 (GDPR 第17条: 被遗忘权)\n * - 一键数据导出 (GDPR 第20条: 数据可携带性)\n * - 统一同意管理\n * - 全平台数据声明\n * \n * 使用场景:\n * import { privacyOrchestrator } from '@quantabit/sdk-config';\n * await privacyOrchestrator.deleteAllUserData(); // GDPR 数据删除\n * const exportData = await privacyOrchestrator.exportAllUserData(); // 数据导出\n */\n\n\n/**\n * 隐私编排器\n */\nclass PrivacyOrchestratorClass {\n constructor() {\n // 注册的 SDK 清理器\n this._cleaners = new Map();\n // 注册的 SDK 数据导出器\n this._exporters = new Map();\n // 注册的 SDK 数据声明\n this._disclosures = new Map();\n }\n\n /**\n * 注册 SDK 的隐私操作\n * 各 SDK 在初始化时调用此方法注册自己的隐私处理函数\n * \n * @param {string} sdkName - SDK 名称\n * @param {object} handlers - 隐私处理器\n * @param {function} handlers.clean - 数据清理函数 (应返回 boolean)\n * @param {function} handlers.export - 数据导出函数 (应返回 object)\n * @param {function} handlers.getDisclosure - 数据声明函数\n */\n register(sdkName, handlers = {}) {\n if (handlers.clean) this._cleaners.set(sdkName, handlers.clean);\n if (handlers.export) this._exporters.set(sdkName, handlers.export);\n if (handlers.getDisclosure) this._disclosures.set(sdkName, handlers.getDisclosure);\n }\n\n /**\n * 注销 SDK\n */\n unregister(sdkName) {\n this._cleaners.delete(sdkName);\n this._exporters.delete(sdkName);\n this._disclosures.delete(sdkName);\n }\n\n /**\n * 一键删除所有用户数据 — GDPR 第17条: 被遗忘权\n * 调用所有已注册 SDK 的数据清理函数\n * \n * @returns {Promise<object>} 每个 SDK 的清理结果\n */\n async deleteAllUserData() {\n const results = {};\n const errors = [];\n\n for (const [sdkName, cleanFn] of this._cleaners) {\n try {\n const result = await cleanFn();\n results[sdkName] = { success: true, result };\n } catch (error) {\n results[sdkName] = { success: false, error: error.message };\n errors.push({ sdk: sdkName, error: error.message });\n }\n }\n\n // 清除通用 localStorage 数据\n this._clearGenericLocalStorage();\n\n // 撤销所有同意\n consentManager.init();\n consentManager.acceptEssentialOnly();\n\n return {\n timestamp: new Date().toISOString(),\n action: 'delete_all_user_data',\n gdprArticle: 'Art. 17 - Right to erasure',\n sdkResults: results,\n errors,\n localStorageCleared: true,\n consentReset: true,\n };\n }\n\n /**\n * 一键导出所有用户数据 — GDPR 第20条: 数据可携带性\n * 调用所有已注册 SDK 的数据导出函数\n * \n * @param {object} options - 导出选项\n * @param {string} options.format - 导出格式 (json/csv)\n * @returns {Promise<object>} 合并的导出数据\n */\n async exportAllUserData(options = {}) {\n const exportData = {\n exportDate: new Date().toISOString(),\n format: 'QBit Platform Data Export (GDPR Art. 20)',\n platform: 'QuantaBit',\n sdkData: {},\n errors: [],\n };\n\n for (const [sdkName, exportFn] of this._exporters) {\n try {\n const data = await exportFn(options);\n exportData.sdkData[sdkName] = data;\n } catch (error) {\n exportData.errors.push({ sdk: sdkName, error: error.message });\n }\n }\n\n // 添加同意记录\n exportData.consentHistory = consentManager.getConsentLog?.() || 'Not available';\n\n return exportData;\n }\n\n /**\n * 获取全平台数据使用声明\n * 汇总所有 SDK 的数据收集声明\n * \n * @returns {object} 统一的数据声明\n */\n getFullDataDisclosure() {\n const disclosure = {\n platform: 'QuantaBit',\n lastUpdated: new Date().toISOString(),\n sdks: {},\n consentLevels: {\n essential: '核心安全功能(身份验证、防欺诈),无需同意。',\n functional: '增强体验(推送通知、钱包功能),需要用户同意。',\n analytics: '使用分析和行为追踪,需要用户明确同意。',\n marketing: '营销和广告定向,需要用户明确同意。',\n },\n };\n\n for (const [sdkName, disclosureFn] of this._disclosures) {\n try {\n disclosure.sdks[sdkName] = disclosureFn();\n } catch (e) {\n disclosure.sdks[sdkName] = { error: e.message };\n }\n }\n\n return disclosure;\n }\n\n /**\n * 撤销所有同意并停止所有追踪\n */\n revokeAllConsent() {\n consentManager.init();\n consentManager.acceptEssentialOnly();\n return { success: true, timestamp: new Date().toISOString() };\n }\n\n /**\n * 获取已注册的 SDK 数量\n */\n get registeredSDKs() {\n return {\n cleaners: [...this._cleaners.keys()],\n exporters: [...this._exporters.keys()],\n disclosures: [...this._disclosures.keys()],\n };\n }\n\n /**\n * 清除通用 localStorage 数据\n * @private\n */\n _clearGenericLocalStorage() {\n if (typeof localStorage === 'undefined') return;\n \n const prefixes = [\n 'qbit_', 'im_', 'tracking_', 'analytics_', \n 'wallet_', 'push_', 'notification_',\n ];\n \n const keysToRemove = [];\n for (let i = 0; i < localStorage.length; i++) {\n const key = localStorage.key(i);\n if (key && prefixes.some(prefix => key.startsWith(prefix))) {\n keysToRemove.push(key);\n }\n }\n \n keysToRemove.forEach(key => localStorage.removeItem(key));\n }\n\n // ============ 自动注册辅助 ============\n\n /**\n * 从 SDK 实例自动注册隐私处理器\n * SDK 只需实现 clearAllUserData/exportXxxData/getDataDisclosure 任一方法即可\n * \n * @param {string} sdkName - SDK 名称\n * @param {object} instance - SDK 实例\n * \n * @example\n * // 在 SDK 初始化时自动注册\n * privacyOrchestrator.registerFromInstance('search-sdk', searchApi);\n */\n registerFromInstance(sdkName, instance) {\n const handlers = {};\n \n // 自动检测清理方法\n const cleanMethods = ['clearAllUserData', 'clearData', 'clearLocal', 'gdprClear'];\n for (const method of cleanMethods) {\n if (typeof instance[method] === 'function') {\n handlers.clean = () => instance[method]();\n break;\n }\n }\n\n // 自动检测导出方法\n const exportMethods = [\n 'exportMyData', 'exportSearchData', 'exportPushData',\n 'exportPaymentData', 'exportKycData', 'exportChatData',\n 'exportData',\n ];\n for (const method of exportMethods) {\n if (typeof instance[method] === 'function') {\n handlers.export = (opts) => instance[method](opts);\n break;\n }\n }\n\n // 自动检测声明方法 \n if (typeof instance.getDataDisclosure === 'function') {\n handlers.getDisclosure = () => instance.getDataDisclosure();\n }\n\n if (Object.keys(handlers).length > 0) {\n this.register(sdkName, handlers);\n }\n }\n\n /**\n * 批量注册多个 SDK\n * @param {Object<string, object>} sdkMap - { sdkName: instance }\n */\n registerBatch(sdkMap) {\n for (const [name, instance] of Object.entries(sdkMap)) {\n this.registerFromInstance(name, instance);\n }\n }\n}\n\nconst privacyOrchestrator = new PrivacyOrchestratorClass();\n\n/**\n * @quantabit/sdk-config\n * \n * QuantaBit SDK Unified Config\n * \n * All SDKs share this config - single point of modification for global effect:\n * - API base URL\n * - Timeout\n * - Auth configuration\n * - Debug mode\n * \n * Usage:\n * 1. Use default configuration directly\n * import { getConfig } from '@quantabit/sdk-config';\n * const config = getConfig();\n * \n * 2. Initialize config at app startup\n * import { initConfig } from '@quantabit/sdk-config';\n * initConfig({ apiBaseUrl: 'https://api.example.com' });\n * \n * 3. 使用 React Hook\n * import { useSDKConfig } from '@quantabit/sdk-config';\n * const { config, setApiBaseUrl } = useSDKConfig();\n */\n\n// ============ 默认配置 ============\n\n/**\n * 默认 API 配置\n * 注意:生产环境应通过 initConfig 覆盖这些值\n */\nconst DEFAULT_CONFIG = {\n // === API 配置 ===\n apiBaseUrl: '/api/v1', // API 基础路径(相对路径,由后端代理)\n apiFullUrl: (typeof process !== 'undefined' && process.env?.QBIT_API_URL) || \n (typeof window !== 'undefined' && window.location?.origin?.includes('dev') \n ? 'https://api.dev.qbitchain.io' \n : 'https://api.qbitchain.io'), // 完整 API URL Fallback 品牌域名\n \n // === 超时配置 ===\n timeout: 30000, // 请求超时(毫秒)\n retryCount: 3, // 重试次数\n retryDelay: 1000, // 重试延迟(毫秒)\n \n // === Auth configuration ===\n tokenStorageKey: 'qbit_did_access_token',\n refreshTokenStorageKey: 'qbit_did_refresh_token',\n currentSessionKey: 'qbit_did_current',\n autoRefreshToken: true, // 自动刷新 Token\n \n // === WebSocket 配置 ===\n wsBaseUrl: '', // WebSocket URL(需通过 initConfig 配置)\n wsReconnect: true,\n wsReconnectInterval: 3000,\n\n // === 收银台配置 ===\n checkoutUrl: (typeof process !== 'undefined' && process.env?.CHECKOUT_URL) || 'https://pay.qbitchain.io',\n checkoutSandboxUrl: (typeof process !== 'undefined' && process.env?.CHECKOUT_SANDBOX_URL) || 'https://sandbox-pay.qbitchain.io',\n \n // === 各子系统入口 URL ===\n merchantUrl: (typeof process !== 'undefined' && process.env?.NEXT_PUBLIC_MERCHANT_URL) || 'https://merchant.qbitchain.io',\n adminUrl: (typeof process !== 'undefined' && process.env?.NEXT_PUBLIC_ADMIN_URL) || 'https://admin.qbitchain.io',\n payUrl: (typeof process !== 'undefined' && process.env?.NEXT_PUBLIC_PAY_URL) || 'https://pay.qbitchain.io',\n walletUrl: (typeof process !== 'undefined' && process.env?.NEXT_PUBLIC_WALLET_URL) || 'https://wallet.qbitchain.io',\n didApiUrl: (typeof process !== 'undefined' && process.env?.NEXT_PUBLIC_DID_API_URL) || 'https://did.qbitchain.io',\n \n // === 调试配置 ===\n debug: process.env.NODE_ENV !== 'production',\n logLevel: 'info', // 'debug' | 'info' | 'warn' | 'error'\n \n // === 环境配置 ===\n environment: process.env.NODE_ENV || 'development',\n \n // === QBit Chain 链配置 ===\n chainNetwork: 'mainnet', // 当前链网络: 'mainnet' | 'testnet' | 'devnet'\n chainEndpoint: 'https://api.mainnet.qbitchain.io/', // RPC 端点\n chainWsEndpoint: 'wss://api.mainnet.qbitchain.io/', // WebSocket RPC 端点\n chainCommitment: 'confirmed', // 确认级别: 'processed' | 'confirmed' | 'finalized'\n chainTimeoutMs: 30000, // 链交互超时(毫秒)\n \n // === 语言配置 ===\n language: 'zh', // 默认语言\n fallbackLanguage: 'en', // 回退语言\n supportedLanguages: ['zh', 'en', 'ja', 'ko'], // Supported Languages\n languageStorageKey: 'qbit_did_language', // localStorage key\n};\n\nfunction isAbsoluteUrl(value = '') {\n return /^https?:\\/\\//i.test(value);\n}\n\nfunction trimTrailingSlash(value = '') {\n return value.endsWith('/') ? value.slice(0, -1) : value;\n}\n\nfunction deriveApiFullUrl(apiBaseUrl) {\n return isAbsoluteUrl(apiBaseUrl) ? trimTrailingSlash(apiBaseUrl) : '';\n}\n\nfunction deriveWsBaseUrl(apiBaseUrl, currentWsBaseUrl = '') {\n if (currentWsBaseUrl) {\n return trimTrailingSlash(currentWsBaseUrl);\n }\n\n if (!isAbsoluteUrl(apiBaseUrl)) {\n return '';\n }\n\n return trimTrailingSlash(apiBaseUrl).replace(/^http/i, 'ws');\n}\n\n\n// ============ QBit Chain 网络配置 ============\n\n/**\n * QBit Chain 规范程序地址(重新创世后与 Solana 规范地址对齐)\n * 单一来源,供所有 SDK / web 引用,杜绝散落硬编码。\n * 与 qbit_webs/qbit-chain.config.json 及 configs/qbit_program_registry.json 保持一致。\n */\nconst CANONICAL_PROGRAMS = {\n system: '11111111111111111111111111111111',\n token: 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA',\n token2022: 'TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb',\n associatedToken: 'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL',\n memo: 'MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr',\n tokenMetadata: 'metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s',\n mplCore: 'CoREENxT6tW1HoK8ypY1SxRMZTcVPm7R94rH4PZNhX7d',\n raydiumCpmm: 'CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C',\n raydiumCpSwap: 'CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C', // 别名(向后兼容)\n raydiumAmmV4: '675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8',\n raydiumClmm: 'CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK',\n squadsV4: 'SQDS4ep65T869zMMBKyuUq6aD6EgTu8psMjkvj52pCf',\n orcaWhirlpool: 'whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc',\n openbookV2: 'opnb2LAfJYbRMAHHvqjCwQxanZn7ReEHp1k81EohpZb',\n mplBubblegum: 'BGUMAp9Gq7iTEuizy4pqaxsTyUCBK68MDfK752saRPUY',\n mplCandyGuard: 'Guard1JwRhJkVH6XZhzoYxeBVQe872VH6QggF4BWmS9g',\n};\n\n/**\n * QBit 代币 mint(非 program_id)。\n * ⚠️ XWIN 当前为旧链 mint,重新创世后需在规范 TokenkegQ 下重发并回填新 mint。\n */\nconst CANONICAL_TOKENS = {\n wQBT: { mint: 'So11111111111111111111111111111111111111112', decimals: 9, symbol: 'wQBT', name: 'Wrapped QBT' },\n XWIN: { mint: 'Gw3veigZZ9FYfhixrQkD8hLUGUGq88AbTgnu7Ay3WwBa', decimals: 6, symbol: 'XWIN', name: 'XWIN', status: 'pending_reissue_on_new_genesis' },\n};\n\n/**\n * QBit Chain 网络端点配置\n * 基于 Solana 改编,RPC 接口完全兼容\n */\nconst CHAIN_NETWORKS = {\n mainnet: {\n name: 'QBit Mainnet',\n rpcEndpoint: 'https://api.mainnet.qbitchain.io/',\n wsEndpoint: 'wss://api.mainnet.qbitchain.io/',\n explorerUrl: 'https://explorer.mg.qbitchain.io',\n genesisHash: 'ABQCTh13HE4NvKGCjppZn5KajNpm35yqQMUXosVacAyR',\n nativeToken: { symbol: 'QBT', decimals: 9, name: 'QBit Token' },\n programs: { ...CANONICAL_PROGRAMS },\n tokens: { ...CANONICAL_TOKENS },\n },\n testnet: {\n name: 'QBit Testnet',\n rpcEndpoint: 'https://api.testnet.qbitchain.io/',\n wsEndpoint: 'wss://api.testnet.qbitchain.io/',\n explorerUrl: 'https://explorer.testnet.qbitchain.io',\n genesisHash: '',\n nativeToken: { symbol: 'QBT', decimals: 9, name: 'QBit Token (Test)' },\n programs: { ...CANONICAL_PROGRAMS },\n tokens: { ...CANONICAL_TOKENS },\n },\n devnet: {\n name: 'QBit Devnet',\n rpcEndpoint: 'https://api.devnet.qbitchain.io/',\n wsEndpoint: 'wss://api.devnet.qbitchain.io/',\n explorerUrl: 'https://explorer.devnet.qbitchain.io',\n genesisHash: '',\n nativeToken: { symbol: 'QBT', decimals: 9, name: 'QBit Token (Dev)' },\n programs: { ...CANONICAL_PROGRAMS },\n tokens: { ...CANONICAL_TOKENS },\n },\n};\n\n// ============ 环境预设 ============\n\n/**\n * 环境预设配置\n * 快速切换不同环境的配置\n */\nconst ENVIRONMENT_PRESETS = {\n development: {\n apiBaseUrl: '/api/v1',\n apiFullUrl: '',\n wsBaseUrl: '',\n chainNetwork: 'devnet',\n chainEndpoint: CHAIN_NETWORKS.devnet.rpcEndpoint,\n chainWsEndpoint: CHAIN_NETWORKS.devnet.wsEndpoint,\n debug: true,\n logLevel: 'debug',\n merchantUrl: (typeof process !== 'undefined' && process.env?.NEXT_PUBLIC_MERCHANT_URL) || 'http://localhost:3501',\n adminUrl: (typeof process !== 'undefined' && process.env?.NEXT_PUBLIC_ADMIN_URL) || 'http://localhost:3400',\n payUrl: (typeof process !== 'undefined' && process.env?.NEXT_PUBLIC_PAY_URL) || 'http://localhost:3502',\n walletUrl: (typeof process !== 'undefined' && process.env?.NEXT_PUBLIC_WALLET_URL) || 'http://localhost:3503',\n didApiUrl: (typeof process !== 'undefined' && process.env?.NEXT_PUBLIC_DID_API_URL) || 'http://localhost:8102',\n },\n staging: {\n apiBaseUrl: '/api/v1',\n apiFullUrl: '',\n wsBaseUrl: '',\n chainNetwork: 'testnet',\n chainEndpoint: CHAIN_NETWORKS.testnet.rpcEndpoint,\n chainWsEndpoint: CHAIN_NETWORKS.testnet.wsEndpoint,\n debug: true,\n logLevel: 'info',\n merchantUrl: (typeof process !== 'undefined' && process.env?.NEXT_PUBLIC_MERCHANT_URL) || 'https://merchant.qbitchain.dev',\n adminUrl: (typeof process !== 'undefined' && process.env?.NEXT_PUBLIC_ADMIN_URL) || 'https://admin.qbitchain.dev',\n payUrl: (typeof process !== 'undefined' && process.env?.NEXT_PUBLIC_PAY_URL) || 'https://pay.qbitchain.dev',\n walletUrl: (typeof process !== 'undefined' && process.env?.NEXT_PUBLIC_WALLET_URL) || 'https://wallet.qbitchain.dev',\n didApiUrl: (typeof process !== 'undefined' && process.env?.NEXT_PUBLIC_DID_API_URL) || 'https://did.qbitchain.dev',\n },\n production: {\n apiBaseUrl: '/api/v1',\n apiFullUrl: '',\n wsBaseUrl: '',\n chainNetwork: 'mainnet',\n chainEndpoint: CHAIN_NETWORKS.mainnet.rpcEndpoint,\n chainWsEndpoint: CHAIN_NETWORKS.mainnet.wsEndpoint,\n debug: false,\n logLevel: 'error',\n merchantUrl: (typeof process !== 'undefined' && process.env?.NEXT_PUBLIC_MERCHANT_URL) || 'https://merchant.qbitchain.io',\n adminUrl: (typeof process !== 'undefined' && process.env?.NEXT_PUBLIC_ADMIN_URL) || 'https://admin.qbitchain.io',\n payUrl: (typeof process !== 'undefined' && process.env?.NEXT_PUBLIC_PAY_URL) || 'https://pay.qbitchain.io',\n walletUrl: (typeof process !== 'undefined' && process.env?.NEXT_PUBLIC_WALLET_URL) || 'https://wallet.qbitchain.io',\n didApiUrl: (typeof process !== 'undefined' && process.env?.NEXT_PUBLIC_DID_API_URL) || 'https://did.qbitchain.io',\n },\n};\n\n// ============ 配置状态 ============\n\n\nconst getInitialConfig = () => {\n const env = (typeof process !== 'undefined' && process.env?.NODE_ENV) || 'development';\n const preset = ENVIRONMENT_PRESETS[env] || ENVIRONMENT_PRESETS.development;\n return {\n ...DEFAULT_CONFIG,\n ...preset,\n environment: env,\n };\n};\n\nlet _config = getInitialConfig();\nlet _listeners = new Set();\nlet _languageListeners = new Set(); // 语言变更监听器\n\n// ============ 核心函数 ============\n\n/**\n * 获取当前配置\n * @returns {object} 当前配置对象\n */\nfunction getConfig() {\n return { ..._config };\n}\n\n/**\n * 初始化 SDK 配置\n * 应在应用启动时调用一次\n * \n * @param {object} options - 配置选项\n * @param {string} options.apiBaseUrl - API base URL(如 '/api/v1' 或完整 URL)\n * @param {number} options.timeout - 请求Timeout(毫秒)\n * @param {boolean} options.debug - 是否开启Debug mode\n * @param {string} options.environment - 环境标识\n */\nfunction initConfig(options = {}) {\n _config = {\n ..._config,\n ...options,\n };\n\n if (Object.prototype.hasOwnProperty.call(options, 'apiBaseUrl')) {\n _config.apiFullUrl = deriveApiFullUrl(_config.apiBaseUrl);\n if (!Object.prototype.hasOwnProperty.call(options, 'wsBaseUrl')) {\n _config.wsBaseUrl = deriveWsBaseUrl(_config.apiBaseUrl, '');\n }\n }\n\n if (Object.prototype.hasOwnProperty.call(options, 'wsBaseUrl')) {\n _config.wsBaseUrl = deriveWsBaseUrl(_config.apiBaseUrl, options.wsBaseUrl);\n }\n \n // 通知所有监听者\n _notifyListeners();\n \n if (_config.debug) {\n console.log('[SDK Config] 配置已初始化:', _config);\n }\n \n return _config;\n}\n\n/**\n * 设置 API base URL\n * 便捷方法,用于动态切换 API 地址\n * \n * @param {string} url - 新的 API URL\n */\nfunction setApiBaseUrl(url) {\n _config.apiBaseUrl = url;\n _config.apiFullUrl = deriveApiFullUrl(url);\n _config.wsBaseUrl = deriveWsBaseUrl(url, '');\n _notifyListeners();\n \n if (_config.debug) {\n console.log('[SDK Config] API URL 已更新:', url);\n }\n}\n\n/**\n * 设置链网络\n * 便捷方法,切换 mainnet/testnet/devnet\n * \n * @param {string} network - 网络名称 ('mainnet' | 'testnet' | 'devnet')\n */\nfunction setChainNetwork(network) {\n const endpoints = CHAIN_NETWORKS[network];\n if (!endpoints) {\n console.warn(`[SDK Config] 未知链网络: ${network},支持: mainnet, testnet, devnet`);\n return;\n }\n _config.chainNetwork = network;\n _config.chainEndpoint = endpoints.rpcEndpoint;\n _config.chainWsEndpoint = endpoints.wsEndpoint || '';\n _notifyListeners();\n \n if (_config.debug) {\n console.log(`[SDK Config] 链网络已切换: ${network} -> ${endpoints.rpcEndpoint}`);\n }\n}\n\n/**\n * 获取当前链配置\n * @returns {object} 链配置对象\n */\nfunction getChainConfig() {\n return {\n network: _config.chainNetwork,\n endpoint: _config.chainEndpoint,\n wsEndpoint: _config.chainWsEndpoint,\n commitment: _config.chainCommitment,\n timeoutMs: _config.chainTimeoutMs,\n ...CHAIN_NETWORKS[_config.chainNetwork],\n };\n}\n\n/**\n * 设置 WebSocket URL\n * \n * @param {string} url - 新的 WebSocket URL\n */\nfunction setWsBaseUrl(url) {\n _config.wsBaseUrl = deriveWsBaseUrl(_config.apiBaseUrl, url);\n _notifyListeners();\n}\n\n/**\n * 设置Debug mode\n * \n * @param {boolean} debug - 是否开启调试\n */\nfunction setDebug(debug) {\n _config.debug = debug;\n _notifyListeners();\n}\n\n/**\n * 重置为默认配置\n */\nfunction resetConfig() {\n _config = { ...DEFAULT_CONFIG };\n _notifyListeners();\n}\n\n// ============ 配置监听 ============\n\n/**\n * 订阅配置变更\n * \n * @param {function} listener - 监听回调\n * @returns {function} 取消订阅函数\n */\nfunction subscribeConfig(listener) {\n _listeners.add(listener);\n return () => _listeners.delete(listener);\n}\n\nfunction _notifyListeners() {\n const config = getConfig();\n _listeners.forEach(listener => {\n try {\n listener(config);\n } catch (err) {\n console.error('[SDK Config] 监听器执行错误:', err);\n }\n });\n}\n\n// CANONICAL_PROGRAMS, CANONICAL_TOKENS, CHAIN_NETWORKS, ENVIRONMENT_PRESETS relocated to top of file\n\n/**\n * 使用环境预设初始化配置\n * \n * @param {string} env - 环境名称 ('development' | 'staging' | 'production')\n * @param {object} overrides - 额外覆盖配置\n */\nfunction initWithEnvironment(env, overrides = {}) {\n const preset = ENVIRONMENT_PRESETS[env];\n if (!preset) {\n console.warn(`[SDK Config] 未知环境: ${env}, 使用默认配置`);\n return initConfig(overrides);\n }\n \n return initConfig({\n ...preset,\n environment: env,\n ...overrides,\n });\n}\n\n/**\n * React Hook: 获取和管理 SDK 配置\n * \n * @example\n * const { config, setApiBaseUrl, initConfig } = useSDKConfig();\n * \n * // 读取配置\n * console.log(config.apiBaseUrl);\n * \n * // 动态修改 API URL\n * setApiBaseUrl('https://new-api.example.com');\n */\nfunction useSDKConfig() {\n const [config, setConfigState] = useState(getConfig);\n \n useEffect(() => {\n const unsubscribe = subscribeConfig(setConfigState);\n return unsubscribe;\n }, []);\n \n const updateConfig = useCallback((options) => {\n initConfig(options);\n }, []);\n \n const updateApiUrl = useCallback((url) => {\n setApiBaseUrl(url);\n }, []);\n \n const updateWsUrl = useCallback((url) => {\n setWsBaseUrl(url);\n }, []);\n \n const reset = useCallback(() => {\n resetConfig();\n }, []);\n \n return {\n config,\n initConfig: updateConfig,\n setApiBaseUrl: updateApiUrl,\n setWsBaseUrl: updateWsUrl,\n resetConfig: reset,\n initWithEnvironment,\n };\n}\n\n/**\n * React Hook: 获取和管理 QBit Chain 配置\n * \n * @example\n * const { chainConfig, setNetwork } = useChainConfig();\n * console.log(chainConfig.endpoint);\n * setNetwork('testnet');\n */\nfunction useChainConfig() {\n const [chainConfig, setChainState] = useState(getChainConfig);\n \n useEffect(() => {\n const unsubscribe = subscribeConfig(() => {\n setChainState(getChainConfig());\n });\n return unsubscribe;\n }, []);\n \n const setNetwork = useCallback((network) => {\n setChainNetwork(network);\n }, []);\n \n return {\n chainConfig,\n setNetwork,\n networks: CHAIN_NETWORKS,\n };\n}\n\n// ============ Request Utilities ============\n\n/**\n * 构建完整的 API URL\n * \n * @param {string} endpoint - API 端点(如 '/auth/login')\n * @param {boolean} useFullUrl - 是否使用完整 URL\n * @returns {string} 完整的 URL\n */\nfunction buildApiUrl(endpoint, useFullUrl = false) {\n const baseUrl = useFullUrl ? _config.apiFullUrl : _config.apiBaseUrl;\n if (!baseUrl) {\n return endpoint.startsWith('/') ? endpoint : `/${endpoint}`;\n }\n if (isAbsoluteUrl(endpoint)) {\n return endpoint;\n }\n // 确保不会出现双斜杠\n const cleanEndpoint = endpoint.startsWith('/') ? endpoint : `/${endpoint}`;\n const cleanBase = trimTrailingSlash(baseUrl);\n return `${cleanBase}${cleanEndpoint}`;\n}\n\n/**\n * 获取认证 Token\n * \n * @returns {string|null} Token 或 null\n */\nfunction getToken() {\n if (typeof window === 'undefined') return null;\n return localStorage.getItem(_config.tokenStorageKey);\n}\n\n/**\n * 获取刷新 Token\n * \n * @returns {string|null} Refresh Token 或 null\n */\nfunction getRefreshToken() {\n if (typeof window === 'undefined') return null;\n return localStorage.getItem(_config.refreshTokenStorageKey);\n}\n\n/**\n * 保存认证 Token\n * \n * @param {string} accessToken - Access Token\n * @param {string} refreshToken - Refresh Token(可选)\n */\nfunction saveTokens(accessToken, refreshToken) {\n if (typeof window === 'undefined') return;\n localStorage.setItem(_config.tokenStorageKey, accessToken);\n if (refreshToken) {\n localStorage.setItem(_config.refreshTokenStorageKey, refreshToken);\n }\n}\n\n/**\n * 清除所有 Token\n */\nfunction clearTokens() {\n if (typeof window === 'undefined') return;\n localStorage.removeItem(_config.tokenStorageKey);\n localStorage.removeItem(_config.refreshTokenStorageKey);\n localStorage.removeItem(_config.currentSessionKey);\n}\n\n/**\n * 检查是否已认证\n * \n * @returns {boolean} 是否有有效 Token\n */\nfunction isAuthenticated() {\n return !!getToken();\n}\n\n// ============ Logger ============\n\nconst LOG_LEVELS = { debug: 0, info: 1, warn: 2, error: 3 };\n\n/**\n * SDK 日志工具\n * 根据配置的日志级别输出日志\n */\nconst logger = {\n debug: (...args) => {\n if (_config.debug && LOG_LEVELS[_config.logLevel] <= LOG_LEVELS.debug) {\n console.debug('[SDK]', ...args);\n }\n },\n info: (...args) => {\n if (_config.debug && LOG_LEVELS[_config.logLevel] <= LOG_LEVELS.info) {\n console.info('[SDK]', ...args);\n }\n },\n warn: (...args) => {\n if (LOG_LEVELS[_config.logLevel] <= LOG_LEVELS.warn) {\n console.warn('[SDK]', ...args);\n }\n },\n error: (...args) => {\n console.error('[SDK]', ...args);\n },\n};\n\n// ============ Language Management ============\n\n/**\n * 获取当前语言\n * 优先从 localStorage 读取,否则使用默认配置\n * \n * @returns {string} 当前语言代码\n */\nfunction getLanguage() {\n // SSR 安全检查\n if (typeof window === 'undefined') {\n return _config.language;\n }\n \n // 尝试从 localStorage 读取\n const stored = localStorage.getItem(_config.languageStorageKey);\n if (stored && _config.supportedLanguages.includes(stored)) {\n return stored;\n }\n \n // 尝试从浏览器获取\n const browserLang = navigator.language?.split('-')[0];\n if (browserLang && _config.supportedLanguages.includes(browserLang)) {\n return browserLang;\n }\n \n return _config.language;\n}\n\n/**\n * 设置全局语言\n * 会通知所有订阅的 SDK 和组件\n * \n * @param {string} lang - 语言代码 ('zh' | 'en' | 'ja' | 'ko')\n * @returns {boolean} 是否设置成功\n */\nfunction setLanguage(lang) {\n // 验证语言代码\n if (!_config.supportedLanguages.includes(lang)) {\n logger.warn(`不Supported Languages: ${lang}, Supported Languages: ${_config.supportedLanguages.join(', ')}`);\n return false;\n }\n \n const previousLang = _config.language;\n _config.language = lang;\n \n // 持久化到 localStorage\n if (typeof window !== 'undefined') {\n localStorage.setItem(_config.languageStorageKey, lang);\n \n // 触发全局 CustomEvent,让不直接依赖此模块的 SDK 也能收到通知\n try {\n const event = new CustomEvent('qbit-did:language-change', {\n detail: { language: lang, oldLanguage: previousLang }\n });\n window.dispatchEvent(event);\n } catch (e) {\n // 忽略事件触发错误\n }\n }\n \n // 通知所有语言监听器\n _notifyLanguageListeners(lang, previousLang);\n \n if (_config.debug) {\n console.log(`[SDK Config] 语言已切换: ${previousLang} -> ${lang}`);\n }\n \n return true;\n}\n\n/**\n * 初始化语言(应用启动时调用)\n * 从 localStorage 或浏览器偏好读取\n */\nfunction initLanguage() {\n const detectedLang = getLanguage();\n _config.language = detectedLang;\n \n if (_config.debug) {\n console.log(`[SDK Config] 语言已初始化: ${detectedLang}`);\n }\n \n return detectedLang;\n}\n\n/**\n * 订阅语言变更\n * \n * @param {function} listener - 回调函数 (newLang, oldLang) => void\n * @returns {function} 取消订阅函数\n */\nfunction subscribeLanguage(listener) {\n _languageListeners.add(listener);\n return () => _languageListeners.delete(listener);\n}\n\nfunction _notifyLanguageListeners(newLang, oldLang) {\n _languageListeners.forEach(listener => {\n try {\n listener(newLang, oldLang);\n } catch (err) {\n console.error('[SDK Config] 语言监听器执行错误:', err);\n }\n });\n}\n\n/**\n * React Hook: 获取和管理语言\n * \n * @example\n * const { language, setLanguage, supportedLanguages } = useLanguage();\n * \n * // 切换语言\n * setLanguage('en');\n */\nfunction useLanguage() {\n const [language, setLangState] = useState(getLanguage);\n \n useEffect(() => {\n // 初始化语言\n const currentLang = getLanguage();\n setLangState(currentLang);\n \n // 订阅语言变更\n const unsubscribe = subscribeLanguage((newLang) => {\n setLangState(newLang);\n });\n \n return unsubscribe;\n }, []);\n \n const updateLanguage = useCallback((lang) => {\n setLanguage(lang);\n }, []);\n \n return {\n language,\n setLanguage: updateLanguage,\n supportedLanguages: _config.supportedLanguages,\n fallbackLanguage: _config.fallbackLanguage,\n };\n}\n\n// ============ Exports ============\n\nvar index = {\n getConfig,\n initConfig,\n setApiBaseUrl,\n setWsBaseUrl,\n setDebug,\n resetConfig,\n subscribeConfig,\n initWithEnvironment,\n ENVIRONMENT_PRESETS,\n buildApiUrl,\n getToken,\n getRefreshToken,\n saveTokens,\n clearTokens,\n isAuthenticated,\n logger,\n useSDKConfig,\n // 链配置\n CHAIN_NETWORKS,\n CANONICAL_PROGRAMS,\n CANONICAL_TOKENS,\n setChainNetwork,\n getChainConfig,\n useChainConfig,\n // 语言管理\n getLanguage,\n setLanguage,\n initLanguage,\n subscribeLanguage,\n useLanguage,\n};\n\nexport { BaseApiClient, CANONICAL_PROGRAMS, CANONICAL_TOKENS, CHAIN_NETWORKS, ConsentStatus, ENVIRONMENT_PRESETS, PrivacyLevel, PrivacyOrchestratorClass, buildApiUrl, clearTokens, consentManager, createApiClient, dataSanitizer, index as default, getChainConfig, getConfig, getLanguage, getRefreshToken, getToken, initConfig, initLanguage, initWithEnvironment, isAuthenticated, logger, privacyOrchestrator, resetConfig, saveTokens, setApiBaseUrl, setChainNetwork, setDebug, setLanguage, setWsBaseUrl, subscribeConfig, subscribeLanguage, useChainConfig, useConsent, useLanguage, useSDKConfig };\n//# sourceMappingURL=index.esm.js.map\n","/**\n * QuantaBit Invite SDK - inviteApi Service\n * \n * 用于向后端数据库记录邀请人与被邀请人关系,以及获取当前用户已邀请数量与奖励历史\n */\n\nimport { BaseApiClient } from '@quantabit/sdk-config';\n\nexport class InviteApiClient extends BaseApiClient {\n constructor(config = {}) {\n super('/invites', config);\n }\n\n // 绑定邀请关系\n async bindInvite(inviteCode, inviteeId) {\n return this.post('/bind', { inviteCode, inviteeId });\n }\n\n // 获取当前用户的邀请佣金、已邀请人总览\n async getInviteStats(userId) {\n return this.get('/stats', { userId });\n }\n\n // 获取邀请列表详情\n async getInviteList(userId, params = {}) {\n return this.get('/list', { userId, ...params });\n }\n\n // 领取/提取邀请奖励\n async claimRewards(userId) {\n return this.post('/claim-rewards', { userId });\n }\n}\n\nexport const inviteApi = new InviteApiClient();\n","/**\n * QuantaBit Invite SDK - useInvite Hook\n * \n * 用于获取当前用户的邀请统计信息、生成分享链接及处理领奖逻辑\n */\n\nimport { useState, useEffect, useCallback } from 'react';\nimport { inviteApi } from '../services/inviteApi.js';\n\nexport function useInvite(userId) {\n const [stats, setStats] = useState({ totalInvited: 0, rewardsEarned: 0, claimable: 0 });\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState(null);\n\n const fetchStats = useCallback(async () => {\n if (!userId) return;\n setLoading(true);\n setError(null);\n try {\n const data = await inviteApi.getInviteStats(userId);\n setStats({\n totalInvited: data?.totalInvited ?? 0,\n rewardsEarned: data?.rewardsEarned ?? 0,\n claimable: data?.claimable ?? 0\n });\n } catch (err) {\n setError(err);\n // 降级 mock 模拟数据,供开发预览\n setStats({ totalInvited: 12, rewardsEarned: 1200, claimable: 300 });\n } finally {\n setLoading(false);\n }\n }, [userId]);\n\n const claim = useCallback(async () => {\n if (!userId) return false;\n setLoading(true);\n try {\n await inviteApi.claimRewards(userId);\n await fetchStats();\n return true;\n } catch (err) {\n setError(err);\n // Mock领奖成功\n setStats(prev => ({ ...prev, claimable: 0 }));\n return true;\n } finally {\n setLoading(false);\n }\n }, [userId, fetchStats]);\n\n useEffect(() => {\n fetchStats();\n }, [userId, fetchStats]);\n\n return {\n stats,\n loading,\n error,\n refresh: fetchStats,\n claim,\n };\n}\n","/**\n * QuantaBit Invite SDK - i18n support\n */\n\nconst messages = {\n en: {\n invitePanelTitle: 'Invite Friends & Earn Rewards',\n inviteLink: 'Your Invitation Link',\n copyLink: 'Copy Link',\n copied: 'Copied!',\n scanQR: 'Scan QR Code to Invite',\n totalInvited: 'Total Invited',\n rewardsEarned: 'Rewards Earned',\n claim: 'Claim',\n invitationCode: 'Invite Code',\n },\n zh: {\n invitePanelTitle: '邀请好友,共享奖励',\n inviteLink: '您的邀请专属链接',\n copyLink: '复制链接',\n copied: '已复制!',\n scanQR: '扫描二维码邀请',\n totalInvited: '累计邀请人数',\n rewardsEarned: '已获得奖励',\n claim: '立即领取',\n invitationCode: '邀请码',\n },\n ja: {\n invitePanelTitle: '友達を招待して報酬を獲得',\n inviteLink: '招待リンク',\n copyLink: 'リンクをコピー',\n copied: 'コピーしました!',\n scanQR: 'QRコードをスキャンして招待',\n totalInvited: '合計招待数',\n rewardsEarned: '獲得した報酬',\n claim: '受け取る',\n invitationCode: '招待コード',\n },\n ko: {\n invitePanelTitle: '친구 초대하고 보상 받기',\n inviteLink: '나의 초대 링크',\n copyLink: '링크 복사',\n copied: '복사 완료!',\n scanQR: 'QR 코드로 친구 초대',\n totalInvited: '총 초대 인원',\n rewardsEarned: '획득한 보상',\n claim: '보상 수령',\n invitationCode: '초대 코드',\n }\n};\n\nconst SUPPORTED_LANGUAGES = ['en', 'zh', 'ja', 'ko'];\nlet currentLanguage = 'en';\n\nexport function setLanguage(lang) {\n if (SUPPORTED_LANGUAGES.includes(lang)) currentLanguage = lang;\n}\n\nexport function getLanguage() {\n return currentLanguage;\n}\n\nexport function t(key) {\n return (messages[currentLanguage] || messages.en)[key] || key;\n}\n\nexport { messages, SUPPORTED_LANGUAGES };\n","/**\n * QuantaBit Invite SDK - InvitePanel Component\n * \n * 邀请好友面板组件。支持显示邀请码、复制专属链接、动态生成二维码、展示邀请数据和立即领取奖励。\n */\n\nimport React, { useState, useEffect, useRef } from 'react';\nimport { t } from '../i18n';\nimport { useInvite } from '../hooks/useInvite';\n\nexport function InvitePanel({ \n userId, \n inviteCode, \n baseUrl = 'https://qbitchain.io/register',\n className = '' \n}) {\n const { stats, loading, claim } = useInvite(userId);\n const [copied, setCopied] = useState(false);\n const qrContainerRef = useRef(null);\n\n const inviteLink = inviteCode \n ? `${baseUrl}?invite_code=${encodeURIComponent(inviteCode)}`\n : baseUrl;\n\n useEffect(() => {\n if (qrContainerRef.current && inviteLink) {\n // 动态生成公共二维码图片\n const size = 140;\n const qrUrl = `https://api.qrserver.com/v1/create-qr-code/?size=${size}x${size}&data=${encodeURIComponent(inviteLink)}&margin=10`;\n \n qrContainerRef.current.innerHTML = `<img src=\"${qrUrl}\" alt=\"QR\" width=\"${size}\" height=\"${size}\" style=\"border-radius: 8px; box-shadow: 0 4px 10px rgba(0,0,0,0.15);\" />`;\n }\n }, [inviteLink]);\n\n const handleCopy = () => {\n navigator.clipboard.writeText(inviteLink)\n .then(() => {\n setCopied(true);\n setTimeout(() => setCopied(false), 2000);\n })\n .catch(err => console.error('Failed to copy invite link:', err));\n };\n\n return (\n <div className={`qbit-invite-panel ${className}`}>\n <div className=\"qbit-invite-card\">\n <h3 className=\"qbit-invite-title\">{t('invitePanelTitle')}</h3>\n \n <div className=\"qbit-invite-stats-row\">\n <div className=\"qbit-invite-stat\">\n <span className=\"label\">{t('totalInvited')}</span>\n <span className=\"value\">{loading ? '...' : stats.totalInvited}</span>\n </div>\n <div className=\"qbit-invite-stat\">\n <span className=\"label\">{t('rewardsEarned')}</span>\n <span className=\"value highlight\">{loading ? '...' : `${stats.rewardsEarned} QBT`}</span>\n </div>\n </div>\n\n <div className=\"qbit-invite-body\">\n <div className=\"qbit-invite-link-box\">\n <label className=\"qbit-invite-label\">{t('inviteLink')}</label>\n <div className=\"qbit-invite-input-group\">\n <input type=\"text\" readOnly value={inviteLink} />\n <button onClick={handleCopy} className={copied ? 'copied' : ''}>\n {copied ? t('copied') : t('copyLink')}\n </button>\n </div>\n </div>\n\n <div className=\"qbit-invite-qr-container\">\n <label className=\"qbit-invite-label\">{t('scanQR')}</label>\n <div ref={qrContainerRef} className=\"qbit-invite-qr-box\">\n {/* QR Image will be generated here */}\n </div>\n </div>\n </div>\n\n {stats.claimable > 0 && (\n <div className=\"qbit-invite-claim-banner\">\n <p>You have <strong>{stats.claimable} QBT</strong> claimable reward!</p>\n <button className=\"qbit-invite-btn-claim\" onClick={claim}>\n {t('claim')}\n </button>\n </div>\n )}\n </div>\n\n <style>{`\n .qbit-invite-panel {\n font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif;\n width: 100%;\n max-width: 500px;\n }\n .qbit-invite-card {\n background: #111827;\n border: 1px solid #1f2937;\n border-radius: 16px;\n padding: 24px;\n color: #f3f4f6;\n box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.3);\n }\n .qbit-invite-title {\n margin-top: 0;\n margin-bottom: 20px;\n font-size: 18px;\n font-weight: 700;\n text-align: center;\n background: linear-gradient(135deg, #60a5fa, #3b82f6);\n -webkit-background-clip: text;\n -webkit-text-fill-color: transparent;\n }\n .qbit-invite-stats-row {\n display: flex;\n justify-content: space-around;\n background: #1f293780;\n padding: 16px;\n border-radius: 12px;\n margin-bottom: 20px;\n border: 1px solid #37415140;\n }\n .qbit-invite-stat {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 6px;\n }\n .qbit-invite-stat .label {\n font-size: 12px;\n color: #9ca3af;\n }\n .qbit-invite-stat .value {\n font-size: 20px;\n font-weight: bold;\n }\n .qbit-invite-stat .value.highlight {\n color: #3b82f6;\n }\n .qbit-invite-body {\n display: flex;\n flex-direction: column;\n gap: 16px;\n }\n .qbit-invite-label {\n display: block;\n font-size: 12px;\n color: #9ca3af;\n margin-bottom: 6px;\n text-transform: uppercase;\n }\n .qbit-invite-input-group {\n display: flex;\n gap: 8px;\n }\n .qbit-invite-input-group input {\n flex: 1;\n background: #1f2937;\n border: 1px solid #374151;\n border-radius: 8px;\n padding: 8px 12px;\n color: #f3f4f6;\n outline: none;\n font-size: 13px;\n }\n .qbit-invite-input-group button {\n background: #3b82f6;\n border: none;\n color: white;\n padding: 8px 16px;\n border-radius: 8px;\n font-weight: 500;\n cursor: pointer;\n font-size: 13px;\n transition: background 0.2s;\n }\n .qbit-invite-input-group button:hover {\n background: #2563eb;\n }\n .qbit-invite-input-group button.copied {\n background: #10b981;\n }\n .qbit-invite-qr-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n margin-top: 10px;\n }\n .qbit-invite-qr-box {\n background: white;\n padding: 8px;\n border-radius: 12px;\n display: inline-block;\n }\n .qbit-invite-claim-banner {\n margin-top: 20px;\n background: rgba(16, 185, 129, 0.1);\n border: 1px dashed rgba(16, 185, 129, 0.3);\n border-radius: 12px;\n padding: 12px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n .qbit-invite-claim-banner p {\n margin: 0;\n font-size: 13px;\n color: #34d399;\n }\n .qbit-invite-btn-claim {\n background: #10b981;\n color: white;\n border: none;\n padding: 6px 12px;\n border-radius: 6px;\n font-weight: 600;\n font-size: 12px;\n cursor: pointer;\n transition: background 0.2s;\n }\n .qbit-invite-btn-claim:hover {\n background: #059669;\n }\n `}</style>\n </div>\n );\n}\n","export class QbitInviteSDK {\n /**\n * 初始化邀请 SDK\n * @param {Object} options 配置项\n */\n constructor(options = {}) {\n this.options = {\n lang: options.lang || 'zh', // 默认语言: 'zh' 或 'en'\n paramName: options.paramName || 'invite_code', // URL 中邀请码的参数名\n storageKey: options.storageKey || 'qbit_invite_code', // 本地存储的 key\n storageType: options.storageType || 'localStorage', // 存储方式:'localStorage', 'sessionStorage', 'cookie'\n cookieDomain: options.cookieDomain || '', // 如果使用 cookie,指定 domain 解决跨子域问题\n cookieExpireDays: options.cookieExpireDays || 30, // cookie 过期天数\n \n // 新增:奖励相关配置\n enableReward: options.enableReward !== undefined ? options.enableReward : false, // 奖励功能开关,默认关闭\n rewardAmount: options.rewardAmount || 100, // 奖励数额\n rewardName: options.rewardName || '', // 奖励名称 (如果不填,将根据语言取默认值)\n ...options\n };\n\n // 多语言字典 (i18n)\n this.i18n = {\n zh: {\n defaultRewardName: '积分',\n toastTitle: '🎉 专属邀请奖励',\n toastMessage: '您已通过邀请链接访问!注册即可获得 <strong class=\"qbit-invite-highlight\">{amount} {name}</strong> 奖励。',\n close: '关闭'\n },\n en: {\n defaultRewardName: 'Points',\n toastTitle: '🎉 Exclusive Invite Reward',\n toastMessage: 'You visited via an invite link! Register now to receive a <strong class=\"qbit-invite-highlight\">{amount} {name}</strong> reward.',\n close: 'Close'\n }\n };\n\n // 自动补全未填写的奖励名称\n if (!this.options.rewardName) {\n this.options.rewardName = this.i18n[this.options.lang].defaultRewardName;\n }\n\n // 初始化样式\n if (this.options.enableReward) {\n this._initToastStyles();\n }\n\n // 自动初始化:从 URL 捕获邀请码并保存\n this._captureInviteCodeFromUrl();\n }\n\n /**\n * 切换语言\n * @param {string} lang 语言代码 ('zh' | 'en')\n */\n setLanguage(lang) {\n if (this.i18n[lang]) {\n this.options.lang = lang;\n // 如果使用了默认的奖励名称,切换语言时也顺便更新\n if (\n this.options.rewardName === this.i18n['zh'].defaultRewardName || \n this.options.rewardName === this.i18n['en'].defaultRewardName\n ) {\n this.options.rewardName = this.i18n[lang].defaultRewardName;\n }\n }\n }\n\n /**\n * 内部方法:注入 Toast 弹窗样式\n */\n _initToastStyles() {\n if (document.getElementById('qbit-invite-sdk-styles')) return;\n\n const style = document.createElement('style');\n style.id = 'qbit-invite-sdk-styles';\n style.innerHTML = `\n .qbit-invite-toast-container {\n position: fixed;\n bottom: 24px;\n right: 24px;\n z-index: 999999;\n font-family: system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Arial, sans-serif;\n pointer-events: none;\n }\n .qbit-invite-toast {\n background: #ffffff;\n border-radius: 12px;\n box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05), 0 0 0 1px rgba(0,0,0,0.05);\n width: 320px;\n padding: 16px 20px;\n transform: translateX(120%);\n opacity: 0;\n transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);\n pointer-events: auto;\n position: relative;\n }\n .qbit-invite-toast.qbit-show {\n transform: translateX(0);\n opacity: 1;\n }\n .qbit-invite-toast-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 8px;\n }\n .qbit-invite-toast-title {\n font-size: 16px;\n font-weight: 600;\n color: #111827;\n margin: 0;\n }\n .qbit-invite-toast-close {\n background: transparent;\n border: none;\n color: #9ca3af;\n cursor: pointer;\n padding: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 4px;\n transition: background 0.2s;\n }\n .qbit-invite-toast-close:hover {\n background: #f3f4f6;\n color: #4b5563;\n }\n .qbit-invite-toast-body {\n font-size: 14px;\n color: #4b5563;\n margin: 0;\n line-height: 1.5;\n }\n .qbit-invite-highlight {\n color: #ef4444; /* 奖励高亮色 */\n font-weight: 600;\n }\n `;\n document.head.appendChild(style);\n }\n\n /**\n * 显示奖励提示弹窗\n */\n showRewardToast() {\n if (!this.options.enableReward) return;\n\n const t = this.i18n[this.options.lang] || this.i18n['zh'];\n const message = t.toastMessage\n .replace('{amount}', this.options.rewardAmount)\n .replace('{name}', this.options.rewardName);\n\n // 创建容器\n let container = document.getElementById('qbit-invite-toast-container');\n if (!container) {\n container = document.createElement('div');\n container.id = 'qbit-invite-toast-container';\n container.className = 'qbit-invite-toast-container';\n document.body.appendChild(container);\n }\n\n // 创建 Toast 元素\n const toast = document.createElement('div');\n toast.className = 'qbit-invite-toast';\n toast.innerHTML = `\n <div class=\"qbit-invite-toast-header\">\n <h3 class=\"qbit-invite-toast-title\">${t.toastTitle}</h3>\n <button class=\"qbit-invite-toast-close\" aria-label=\"${t.close}\">\n <svg width=\"16\" height=\"16\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M6 18L18 6M6 6l12 12\" />\n </svg>\n </button>\n </div>\n <p class=\"qbit-invite-toast-body\">${message}</p>\n `;\n\n container.appendChild(toast);\n\n // 触发动画\n requestAnimationFrame(() => {\n toast.classList.add('qbit-show');\n });\n\n // 关闭事件\n const closeBtn = toast.querySelector('.qbit-invite-toast-close');\n const hideToast = () => {\n toast.classList.remove('qbit-show');\n setTimeout(() => {\n if (toast.parentNode) toast.parentNode.removeChild(toast);\n }, 400);\n };\n\n closeBtn.addEventListener('click', hideToast);\n\n // 自动消失 (6秒后)\n setTimeout(hideToast, 6000);\n }\n\n /**\n * 内部方法:从 URL 中捕获邀请码\n */\n _captureInviteCodeFromUrl() {\n try {\n const urlParams = new URLSearchParams(window.location.search);\n const code = urlParams.get(this.options.paramName);\n if (code) {\n this.setInviteCode(code);\n // 触发一个自定义事件,方便页面其他逻辑监听\n window.dispatchEvent(new CustomEvent('qbit-invite-captured', { detail: { code } }));\n\n // 如果开启了奖励且本次会话还没有弹过窗,则弹窗提示\n const sessionFlag = 'qbit_invite_toast_shown_' + code;\n if (this.options.enableReward && !sessionStorage.getItem(sessionFlag)) {\n this.showRewardToast();\n sessionStorage.setItem(sessionFlag, '1');\n }\n }\n } catch (error) {\n console.warn('QbitInviteSDK: URL 解析失败', error);\n }\n }\n\n /**\n * 保存邀请码到本地存储\n * @param {string} code 邀请码\n */\n setInviteCode(code) {\n if (!code) return;\n \n const { storageType, storageKey, cookieDomain, cookieExpireDays } = this.options;\n \n if (storageType === 'localStorage') {\n localStorage.setItem(storageKey, code);\n } else if (storageType === 'sessionStorage') {\n sessionStorage.setItem(storageKey, code);\n } else if (storageType === 'cookie') {\n let expires = '';\n if (cookieExpireDays) {\n const date = new Date();\n date.setTime(date.getTime() + (cookieExpireDays * 24 * 60 * 60 * 1000));\n expires = `; expires=${date.toUTCString()}`;\n }\n const domain = cookieDomain ? `; domain=${cookieDomain}` : '';\n document.cookie = `${storageKey}=${encodeURIComponent(code)}${expires}${domain}; path=/`;\n }\n }\n\n /**\n * 获取当前存储的邀请码\n * @returns {string|null} 邀请码\n */\n getInviteCode() {\n const { storageType, storageKey } = this.options;\n \n if (storageType === 'localStorage') {\n return localStorage.getItem(storageKey);\n } else if (storageType === 'sessionStorage') {\n return sessionStorage.getItem(storageKey);\n } else if (storageType === 'cookie') {\n const nameEQ = storageKey + '=';\n const ca = document.cookie.split(';');\n for(let i = 0; i < ca.length; i++) {\n let c = ca[i];\n while (c.charAt(0) === ' ') c = c.substring(1, c.length);\n if (c.indexOf(nameEQ) === 0) return decodeURIComponent(c.substring(nameEQ.length, c.length));\n }\n }\n return null;\n }\n\n /**\n * 注册成功后清除邀请码\n */\n clearInviteCode() {\n const { storageType, storageKey, cookieDomain } = this.options;\n \n if (storageType === 'localStorage') {\n localStorage.removeItem(storageKey);\n } else if (storageType === 'sessionStorage') {\n sessionStorage.removeItem(storageKey);\n } else if (storageType === 'cookie') {\n const domain = cookieDomain ? `; domain=${cookieDomain}` : '';\n document.cookie = `${storageKey}=; expires=Thu, 01 Jan 1970 00:00:00 UTC${domain}; path=/`;\n }\n }\n\n /**\n * 生成包含当前用户邀请码的分享链接\n * @param {string} baseUrl 基础链接(如官网首页或注册页)\n * @param {string} userInviteCode 当前用户的邀请码\n * @returns {string} 完整的邀请链接\n */\n generateInviteLink(baseUrl, userInviteCode) {\n if (!userInviteCode) return baseUrl;\n try {\n const url = new URL(baseUrl);\n url.searchParams.set(this.options.paramName, userInviteCode);\n return url.toString();\n } catch (error) {\n // 如果 baseUrl 不是完整的绝对路径,做降级处理\n const separator = baseUrl.includes('?') ? '&' : '?';\n return `${baseUrl}${separator}${this.options.paramName}=${encodeURIComponent(userInviteCode)}`;\n }\n }\n\n /**\n * 生成二维码(依赖免费的公共 API 生成,或者您可以后续替换为本地二维码库)\n * @param {string} containerId 容器元素的 ID\n * @param {string} inviteLink 要生成二维码的链接\n * @param {Object} options 二维码配置 (size, color 等)\n */\n renderQRCode(containerId, inviteLink, options = {}) {\n const container = document.getElementById(containerId);\n if (!container) {\n console.error(`QbitInviteSDK: 找不到容器 ID 为 ${containerId} 的元素`);\n return;\n }\n\n const size = options.size || 200;\n // 使用可靠的第三方 API 生成二维码,方便轻量级集成\n const qrUrl = `https://api.qrserver.com/v1/create-qr-code/?size=${size}x${size}&data=${encodeURIComponent(inviteLink)}&margin=10`;\n\n const img = document.createElement('img');\n img.src = qrUrl;\n img.alt = '邀请二维码';\n img.width = size;\n img.height = size;\n img.style.borderRadius = '8px';\n img.style.boxShadow = '0 4px 6px rgba(0, 0, 0, 0.1)';\n\n container.innerHTML = '';\n container.appendChild(img);\n }\n\n /**\n * 自动将邀请码追加到指定的跳转链接上(适用于官网跳转注册页的场景)\n * 这样用户点击注册按钮时,URL 自动带上邀请码。\n * @param {string} selector 链接的 CSS 选择器,例如 '.register-link'\n */\n appendCodeToLinks(selector) {\n const code = this.getInviteCode();\n if (!code) return;\n\n const links = document.querySelectorAll(selector);\n links.forEach(link => {\n try {\n // 如果是绝对路径\n if (link.href && link.href.startsWith('http')) {\n const url = new URL(link.href);\n url.searchParams.set(this.options.paramName, code);\n link.href = url.toString();\n } else if (link.getAttribute('href')) {\n // 相对路径降级处理\n const href = link.getAttribute('href');\n const separator = href.includes('?') ? '&' : '?';\n link.setAttribute('href', `${href}${separator}${this.options.paramName}=${encodeURIComponent(code)}`);\n }\n } catch (e) {\n console.warn('QbitInviteSDK: 链接改写失败', link);\n }\n });\n }\n\n /**\n * 自动将邀请码填入注册表单(适用于隐藏域或只读输入框)\n * @param {string} inputSelector 输入框的 CSS 选择器,例如 '#inviteCodeInput'\n */\n autoFillForm(inputSelector) {\n const code = this.getInviteCode();\n if (!code) return;\n\n const input = document.querySelector(inputSelector);\n if (input) {\n input.value = code;\n // 触发 input 事件,确保 React/Vue 等框架能够捕获到值的改变\n input.dispatchEvent(new Event('input', { bubbles: true }));\n input.dispatchEvent(new Event('change', { bubbles: true }));\n }\n }\n }\n\nif (typeof window !== 'undefined') {\n window.QbitInviteSDK = QbitInviteSDK;\n}\n\n// API Service, Hooks, Component and i18n re-exports\nexport { inviteApi, InviteApiClient } from './services/inviteApi.js';\nexport { useInvite } from './hooks/useInvite.js';\nexport { InvitePanel } from './components/InvitePanel.jsx';\nexport { messages, SUPPORTED_LANGUAGES, setLanguage, getLanguage, t } from './i18n/index.js';\n\nexport default QbitInviteSDK;\n"],"names":["REACT_ELEMENT_TYPE","Symbol","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_CONSUMER_TYPE","REACT_CONTEXT_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_ACTIVITY_TYPE","MAYBE_ITERATOR_SYMBOL","iterator","getIteratorFn","maybeIterable","_typeof","ReactNoopUpdateQueue","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","assign","Object","emptyObject","Component","props","context","updater","refs","prototype","isReactComponent","setState","partialState","callback","Error","forceUpdate","ComponentDummy","PureComponent","pureComponentPrototype","constructor","isPureReactComponent","isArrayImpl","Array","isArray","noop","ReactSharedInternals","H","A","T","S","hasOwnProperty","ReactElement","type","key","refProp","ref","$$typeof","cloneAndReplaceKey","oldElement","newKey","isValidElement","object","escape","escaperLookup","replace","match","userProvidedKeyEscapeRegex","getElementKey","element","index","toString","resolveThenable","thenable","status","value","reason","then","fulfilledValue","error","mapIntoArray","children","array","escapedPrefix","nameSoFar","invokeCallback","_init","_payload","c","push","nextNamePrefix","i","length","call","next","done","String","keys","join","mapChildren","func","result","count","child","lazyInitializer","payload","_status","ctor","_result","moduleObject","reportGlobalError","reportError","window","ErrorEvent","event","bubbles","cancelable","message","dispatchEvent","process","emit","console","Children","map","forEach","forEachFunc","forEachContext","apply","arguments","n","toArray","only","react_production","Activity","Fragment","Profiler","StrictMode","Suspense","__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE","__COMPILER_RUNTIME","__proto__","size","useMemoCache","cache","fn","cacheSignal","cloneElement","config","propName","childArray","createContext","defaultValue","_currentValue","_currentValue2","_threadCount","Provider","Consumer","_context","createElement","childrenLength","defaultProps","createRef","current","forwardRef","render","lazy","memo","compare","startTransition","scope","prevTransition","currentTransition","returnValue","onStartTransitionFinish","types","unstable_useCacheRefresh","useCacheRefresh","use","usable","useActionState","action","initialState","permalink","useCallback","deps","useContext","Context","useDebugValue","useDeferredValue","initialValue","useEffect","create","useEffectEvent","useId","useImperativeHandle","useInsertionEffect","useLayoutEffect","useMemo","useOptimistic","passthrough","reducer","useReducer","initialArg","init","useRef","useState","useSyncExternalStore","subscribe","getSnapshot","getServerSnapshot","useTransition","version","env","NODE_ENV","defineDeprecationWarning","methodName","info","defineProperty","get","warn","warnNoop","publicInstance","callerName","displayName","name","warningKey","didWarnStateUpdateForUnmountedComponent","testStringCoercion","checkKeyStringCoercion","JSCompiler_inline_result","e","JSCompiler_temp_const","JSCompiler_inline_result$jscomp$0","toStringTag","getComponentNameFromType","REACT_CLIENT_REFERENCE","REACT_SUSPENSE_LIST_TYPE","tag","innerType","x","getTaskName","getOwner","dispatcher","UnknownOwner","hasValidKey","getter","getOwnPropertyDescriptor","isReactWarning","defineKeyPropWarningGetter","warnAboutAccessingKey","specialPropKeyWarningShown","configurable","elementRefGetterWithDeprecationWarning","componentName","didWarnAboutElementRef","owner","debugStack","debugTask","_owner","enumerable","_store","writable","freeze","_debugStack","_debugTask","validated","validateChildKeys","node","childKey","entries","didWarnAboutMaps","ioInfo","_ioInfo","start","end","performance","now","_ioInfo2","resolveDispatcher","releaseAsyncTransition","asyncTransitions","enqueueTask","task","enqueueTaskImpl","requireString","Math","random","slice","module","setImmediate","_err","didWarnAboutMessageChannel","MessageChannel","channel","port1","onmessage","port2","postMessage","aggregateErrors","errors","AggregateError","popActScope","prevActQueue","prevActScopeDepth","actScopeDepth","recursivelyFlushAsyncActWork","resolve","reject","queue","actQueue","flushActQueue","thrownErrors","isFlushing","didUsePromise","continuation","splice","__REACT_DEVTOOLS_GLOBAL_HOOK__","registerInternalModuleStart","deprecatedAPIs","replaceState","fnName","isBatchingLegacy","didScheduleLegacyUpdate","getCurrentStack","recentlyCreatedOwnerStacks","createTask","react_stack_bottom_frame","callStackForError","didWarnAboutOldJSXRuntime","unknownOwnerDebugStack","bind","unknownOwnerDebugTask","didWarnNoAwaitAct","queueSeveralMicrotasks","queueMicrotask","exports","act","didAwaitActCall","error$0","_thrownError","returnValue$jscomp$0","a","_currentRenderer","_currentRenderer2","_i","refObject","seal","elementType","ownName","set","lazyType","_debugInfo","awaited","_updatedFibers","Set","clear","formatterFn","registerInternalModuleStop","reactModule","require$$0","require$$1","joinUrlSegments","baseUrl","undefined","path","cleanBase","cleanPath","concat","parseResponseBody","_x","_parseResponseBody","_asyncToGenerator","_regenerator","m","_callee9","response","contentType","text","w","_context9","p","headers","includes","json","v","JSON","parse","BaseApiClient","_this","modulePath","_classCallCheck","_customBaseUrl","_customTimeout","timeout","maxRetries","retryDelay","token","onError","getLanguage","_updateFromGlobalConfig","getConfig","WeakRef","weakSelf","unsubscribe","listener","newConfig","self","deref","subscribeConfig","_unsubscribe","_createClass","globalConfig","base","apiBaseUrl","isAbsolute","test","isServer","fullUrl","apiFullUrl","setToken","setBaseUrl","url","getToken","_request","_callee","endpoint","options","retryCount","controller","timeoutId","delay","data","_this$onError","errorMsg","_errorMsg$","_errorMsg$2","_this$onError2","timeoutError","_this$onError3","_delay","networkError","_args","_t","_retryCount","_objectSpread","AbortController","setTimeout","abort","fetch","signal","clearTimeout","pow","logger","Promise","r","request","ok","detail","msg","stringify","code","_x2","_get","_callee2","params","query","_args2","_context2","URLSearchParams","method","_x3","_post","_callee3","_args3","_context3","body","post","_x4","_put","_callee4","_args4","_context4","put","_x5","_delete2","_callee5","_args5","_context5","delete","_x6","_patch","_callee6","_args6","_context6","patch","_x7","destroy","InviteApiClient","_BaseApiClient","_callSuper","_inherits","_bindInvite","inviteCode","inviteeId","bindInvite","_getInviteStats","userId","getInviteStats","_getInviteList","getInviteList","_claimRewards","claimRewards","inviteApi","useInvite","_useState","totalInvited","rewardsEarned","claimable","_useState2","_slicedToArray","stats","setStats","_useState3","_useState4","loading","setLoading","_useState5","_useState6","setError","fetchStats","_data$totalInvited","_data$rewardsEarned","_data$claimable","f","claim","_t2","prev","refresh","messages","en","invitePanelTitle","inviteLink","copyLink","copied","scanQR","invitationCode","zh","ja","ko","SUPPORTED_LANGUAGES","currentLanguage","setLanguage","lang","t","InvitePanel","_ref","_ref$baseUrl","_ref$className","className","_useInvite","setCopied","qrContainerRef","encodeURIComponent","qrUrl","innerHTML","handleCopy","navigator","clipboard","writeText","err","React","readOnly","onClick","QbitInviteSDK","paramName","storageKey","storageType","cookieDomain","cookieExpireDays","enableReward","rewardAmount","rewardName","i18n","defaultRewardName","toastTitle","toastMessage","close","_initToastStyles","_captureInviteCodeFromUrl","document","getElementById","style","id","head","appendChild","showRewardToast","container","toast","requestAnimationFrame","classList","add","closeBtn","querySelector","hideToast","remove","parentNode","removeChild","addEventListener","urlParams","location","search","setInviteCode","CustomEvent","sessionFlag","sessionStorage","getItem","setItem","_this$options","localStorage","expires","date","Date","setTime","getTime","toUTCString","domain","cookie","getInviteCode","_this$options2","nameEQ","ca","split","charAt","substring","indexOf","decodeURIComponent","clearInviteCode","_this$options3","removeItem","generateInviteLink","userInviteCode","URL","searchParams","separator","renderQRCode","containerId","img","src","alt","width","height","borderRadius","boxShadow","appendCodeToLinks","selector","links","querySelectorAll","link","href","startsWith","getAttribute","setAttribute","autoFillForm","inputSelector","input","Event"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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","x_google_ignoreList":[0,1,2]}
|