@apps-in-toss/web-framework 0.0.0-dev.1741599426292 → 0.0.0-dev.1741675190621
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 +674 -0
- package/README.md +20 -0
- package/dist/cli/index.js +20338 -20456
- package/dist/prebuilt/dev.android.js +433 -401
- package/dist/prebuilt/dev.ios.js +434 -402
- package/dist/prebuilt/prod.android.js +18 -3
- package/dist/prebuilt/prod.ios.js +18 -3
- package/dist/prebuilt/prod.json +6 -6
- package/package.json +11 -9
- package/dist/prebuilt/prod.android.js.map +0 -7
- package/dist/prebuilt/prod.ios.js.map +0 -7
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["protocol-bedrock-require:react", "../../../../.yarn/cache/react-npm-18.2.0-c9949028e9-b562d9b569.zip/node_modules/react/cjs/react-jsx-runtime.production.min.js", "../../../../.yarn/cache/react-npm-18.2.0-c9949028e9-b562d9b569.zip/node_modules/react/jsx-runtime.js", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/types/global.ts", "../../../../.yarn/cache/@swc-helpers-npm-0.5.13-710c6c1e6e-b9df578401.zip/node_modules/@swc/helpers/esm/_define_property.js", "../../../../.yarn/cache/@swc-helpers-npm-0.5.13-710c6c1e6e-b9df578401.zip/node_modules/@swc/helpers/esm/_object_spread.js", "../../../../.yarn/cache/@swc-helpers-npm-0.5.13-710c6c1e6e-b9df578401.zip/node_modules/@swc/helpers/esm/_object_spread_props.js", "../../../../.yarn/cache/@swc-helpers-npm-0.5.13-710c6c1e6e-b9df578401.zip/node_modules/@swc/helpers/esm/_object_without_properties_loose.js", "../../../../.yarn/cache/@swc-helpers-npm-0.5.13-710c6c1e6e-b9df578401.zip/node_modules/@swc/helpers/esm/_object_without_properties.js", "protocol-bedrock-require:@react-navigation/native", "../../../../.yarn/__virtual__/@react-native-bedrock-native-virtual-ffe1719821/0/cache/@react-native-bedrock-native-npm-0.0.0-dev.1741593643819-0ec2f04e5b-964104af8f.zip/node_modules/@react-native-bedrock/native/src/@react-navigation/native.ts", "protocol-bedrock-require:react-native-safe-area-context", "../../../../.yarn/__virtual__/@react-native-bedrock-native-virtual-ffe1719821/0/cache/@react-native-bedrock-native-npm-0.0.0-dev.1741593643819-0ec2f04e5b-964104af8f.zip/node_modules/@react-native-bedrock/native/src/react-native-safe-area-context/index.ts", "../../../../.yarn/cache/@swc-helpers-npm-0.5.13-710c6c1e6e-b9df578401.zip/node_modules/@swc/helpers/esm/_array_with_holes.js", "../../../../.yarn/cache/@swc-helpers-npm-0.5.13-710c6c1e6e-b9df578401.zip/node_modules/@swc/helpers/esm/_iterable_to_array_limit.js", "../../../../.yarn/cache/@swc-helpers-npm-0.5.13-710c6c1e6e-b9df578401.zip/node_modules/@swc/helpers/esm/_non_iterable_rest.js", "../../../../.yarn/cache/@swc-helpers-npm-0.5.13-710c6c1e6e-b9df578401.zip/node_modules/@swc/helpers/esm/_array_like_to_array.js", "../../../../.yarn/cache/@swc-helpers-npm-0.5.13-710c6c1e6e-b9df578401.zip/node_modules/@swc/helpers/esm/_unsupported_iterable_to_array.js", "../../../../.yarn/cache/@swc-helpers-npm-0.5.13-710c6c1e6e-b9df578401.zip/node_modules/@swc/helpers/esm/_sliced_to_array.js", "protocol-bedrock-require:react-native", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/contexts/colors.ts", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/contexts/ColorPreferenceContext.tsx", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/visibility/react-navigation/useNavigationSafely.tsx", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/visibility/react-navigation/useIsFocusedSafely.tsx", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/visibility/react-navigation/index.ts", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/visibility/useIsAppForeground.tsx", "../../../../.yarn/cache/@swc-helpers-npm-0.5.13-710c6c1e6e-b9df578401.zip/node_modules/@swc/helpers/esm/_async_to_generator.js", "../../../../.yarn/cache/@swc-helpers-npm-0.5.13-710c6c1e6e-b9df578401.zip/node_modules/@swc/helpers/esm/_instanceof.js", "../../../../.yarn/cache/@swc-helpers-npm-0.5.13-710c6c1e6e-b9df578401.zip/node_modules/@swc/helpers/esm/_type_of.js", "../../../../.yarn/cache/tslib-npm-2.6.3-ba8e699c2d-2598aef53d.zip/node_modules/tslib/tslib.es6.mjs", "../../../../.yarn/cache/@swc-helpers-npm-0.5.13-710c6c1e6e-b9df578401.zip/node_modules/@swc/helpers/esm/_ts_generator.js", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/native-modules/natives/BedrockModule.ts", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/native-modules/natives/closeView.ts", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/native-modules/natives/getLocale.ts", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/native-modules/natives/getSchemeUri.ts", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/native-modules/natives/generateHapticFeedback/index.ts", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/native-modules/natives/share.ts", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/native-modules/natives/setSecureScreen.ts", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/native-modules/natives/setScreenAwakeMode.ts", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/native-modules/natives/getDeviceId.ts", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/native-modules/natives/getNetworkStatus/index.ts", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/native-modules/natives/index.ts", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/native-modules/core/BedrockCoreModule.ts", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/native-modules/index.ts", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/native-event-emitter/nativeEventEmitter.ts", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/native-event-emitter/index.ts", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/visibility/useVisibilityChanged.tsx", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/visibility/useVisibility.tsx", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/visibility/utils/usePrevious.tsx", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/visibility/useVisibilityChange.ts", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/visibility/VisibilityProvider.tsx", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/visibility/index.ts", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/bedrock-app/App/index.ios.tsx", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/bedrock-app/registerPage.ts", "protocol-bedrock-require:@react-navigation/native-stack", "../../../../.yarn/__virtual__/@react-native-bedrock-native-virtual-ffe1719821/0/cache/@react-native-bedrock-native-npm-0.0.0-dev.1741593643819-0ec2f04e5b-964104af8f.zip/node_modules/@react-native-bedrock/native/src/@react-navigation/native-stack.ts", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/router/components/BedrockStack.tsx", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/router/hooks/useIsInitialScreen.ts", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/router/components/CanGoBackGuard.tsx", "protocol-bedrock-require:react-native-svg", "../../../../.yarn/__virtual__/@react-native-bedrock-native-virtual-ffe1719821/0/cache/@react-native-bedrock-native-npm-0.0.0-dev.1741593643819-0ec2f04e5b-964104af8f.zip/node_modules/@react-native-bedrock/native/src/react-native-svg.ts", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/router/components/BackButton.tsx", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/router/components/RouterBackButton.tsx", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/router/utils/matchers.ts", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/router/utils/path.ts", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/router/utils/createParentRouteScreenMap.ts", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/router/utils/defaultParserParams.ts", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/router/BedrockRoute.ts", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/router/utils/screen.tsx", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/router/utils/index.ts", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/router/utils/mergeParentLayoutScreen.tsx", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/router/hooks/useBedrockRouterControls.tsx", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/router/hooks/useBedrockStackNavigatorStyle.ts", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/router/hooks/useInitialRouteName.tsx", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/router/Router.tsx", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/router/types/RequireContext.ts", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/router/types/RouteScreen.ts", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/router/types/Screen.tsx", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/router/types/index.ts", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/router/index.ts", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/use-back-event/useBackEvent.tsx", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/use-back-event/index.ts", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/bedrock-app/Bedrock.tsx", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/bedrock-app/index.ts", "../../../../.yarn/__virtual__/@react-native-bedrock-style-utils-virtual-9c397953cc/0/cache/@react-native-bedrock-style-utils-npm-0.0.0-dev.1741593643819-aa726eed26-7aa8dbc379.zip/node_modules/@react-native-bedrock/style-utils/src/box-spacing.tsx", "../../../../.yarn/__virtual__/@react-native-bedrock-style-utils-virtual-9c397953cc/0/cache/@react-native-bedrock-style-utils-npm-0.0.0-dev.1741593643819-aa726eed26-7aa8dbc379.zip/node_modules/@react-native-bedrock/style-utils/src/flex.tsx", "../../../../.yarn/__virtual__/@react-native-bedrock-style-utils-virtual-9c397953cc/0/cache/@react-native-bedrock-style-utils-npm-0.0.0-dev.1741593643819-aa726eed26-7aa8dbc379.zip/node_modules/@react-native-bedrock/style-utils/src/spacing.tsx", "../../../../.yarn/__virtual__/@react-native-bedrock-style-utils-virtual-9c397953cc/0/cache/@react-native-bedrock-style-utils-npm-0.0.0-dev.1741593643819-aa726eed26-7aa8dbc379.zip/node_modules/@react-native-bedrock/style-utils/src/children.tsx", "../../../../.yarn/__virtual__/@react-native-bedrock-style-utils-virtual-9c397953cc/0/cache/@react-native-bedrock-style-utils-npm-0.0.0-dev.1741593643819-aa726eed26-7aa8dbc379.zip/node_modules/@react-native-bedrock/style-utils/src/stack.tsx", "../../../../.yarn/__virtual__/@react-native-bedrock-style-utils-virtual-9c397953cc/0/cache/@react-native-bedrock-style-utils-npm-0.0.0-dev.1741593643819-aa726eed26-7aa8dbc379.zip/node_modules/@react-native-bedrock/style-utils/src/index.ts", "../../../../.yarn/__virtual__/@react-native-bedrock-lottie-virtual-96b65ad829/0/cache/@react-native-bedrock-lottie-npm-0.0.0-dev.1741593643819-dabe81735e-767a938ea2.zip/node_modules/@react-native-bedrock/lottie/src/ensureSafeLottie.ts", "../../../../.yarn/__virtual__/@react-native-bedrock-lottie-virtual-96b65ad829/0/cache/@react-native-bedrock-lottie-npm-0.0.0-dev.1741593643819-dabe81735e-767a938ea2.zip/node_modules/@react-native-bedrock/lottie/src/useFetchResource.tsx", "../../../../.yarn/__virtual__/@react-native-bedrock-lottie-virtual-96b65ad829/0/cache/@react-native-bedrock-lottie-npm-0.0.0-dev.1741593643819-dabe81735e-767a938ea2.zip/node_modules/@react-native-bedrock/lottie/src/Lottie.tsx", "../../../../.yarn/__virtual__/@react-native-bedrock-lottie-virtual-96b65ad829/0/cache/@react-native-bedrock-lottie-npm-0.0.0-dev.1741593643819-dabe81735e-767a938ea2.zip/node_modules/@react-native-bedrock/lottie/src/index.ts", "../../../../.yarn/cache/@swc-helpers-npm-0.5.13-710c6c1e6e-b9df578401.zip/node_modules/@swc/helpers/esm/_array_without_holes.js", "../../../../.yarn/cache/@swc-helpers-npm-0.5.13-710c6c1e6e-b9df578401.zip/node_modules/@swc/helpers/esm/_iterable_to_array.js", "../../../../.yarn/cache/@swc-helpers-npm-0.5.13-710c6c1e6e-b9df578401.zip/node_modules/@swc/helpers/esm/_non_iterable_spread.js", "../../../../.yarn/cache/@swc-helpers-npm-0.5.13-710c6c1e6e-b9df578401.zip/node_modules/@swc/helpers/esm/_to_consumable_array.js", "../../../../.yarn/__virtual__/@react-native-bedrock-image-virtual-6b7f11b261/0/cache/@react-native-bedrock-image-npm-0.0.0-dev.1741593643819-f225de98ea-13600a2e61.zip/node_modules/@react-native-bedrock/image/src/hooks/usePreservedCallback.ts", "../../../../.yarn/__virtual__/@react-native-bedrock-image-virtual-6b7f11b261/0/cache/@react-native-bedrock-image-npm-0.0.0-dev.1741593643819-f225de98ea-13600a2e61.zip/node_modules/@react-native-bedrock/image/src/SvgImage.tsx", "../../../../.yarn/__virtual__/@react-native-bedrock-image-virtual-6b7f11b261/0/cache/@react-native-bedrock-image-npm-0.0.0-dev.1741593643819-f225de98ea-13600a2e61.zip/node_modules/@react-native-bedrock/image/src/Image.tsx", "../../../../.yarn/__virtual__/@react-native-bedrock-image-virtual-6b7f11b261/0/cache/@react-native-bedrock-image-npm-0.0.0-dev.1741593643819-f225de98ea-13600a2e61.zip/node_modules/@react-native-bedrock/image/src/index.ts", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/rn-polyfills/symbol-asynciterator/index.ts", "../../../../.yarn/__virtual__/react-native-url-polyfill-virtual-87beb7af26/0/cache/react-native-url-polyfill-npm-1.3.0-5e052246a0-d8167ad2cc.zip/node_modules/react-native-url-polyfill/js/ios10Fix.js", "../../../../.yarn/unplugged/react-native-virtual-7713454f6e/node_modules/react-native/Libraries/Utilities/defineLazyObjectProperty.js", "../../../../.yarn/unplugged/react-native-virtual-7713454f6e/node_modules/react-native/Libraries/Utilities/PolyfillFunctions.js", "../../../../.yarn/__virtual__/react-native-url-polyfill-virtual-87beb7af26/0/cache/react-native-url-polyfill-npm-1.3.0-5e052246a0-d8167ad2cc.zip/node_modules/react-native-url-polyfill/package.json", "../../../../.yarn/cache/@swc-helpers-npm-0.5.13-710c6c1e6e-b9df578401.zip/node_modules/@swc/helpers/esm/_class_call_check.js", "../../../../.yarn/cache/@swc-helpers-npm-0.5.13-710c6c1e6e-b9df578401.zip/node_modules/@swc/helpers/esm/_create_class.js", "../../../../.yarn/cache/webidl-conversions-npm-5.0.0-5fd5be45a0-bf31df332e.zip/node_modules/webidl-conversions/lib/index.js", "../../../../.yarn/cache/whatwg-url-without-unicode-npm-8.0.0-3-e5acd3329e-c27a637ab7.zip/node_modules/whatwg-url-without-unicode/lib/utils.js", "../../../../.yarn/cache/base64-js-npm-1.5.1-e2734c0c2c-f23823513b.zip/node_modules/base64-js/index.js", "../../../../.yarn/cache/ieee754-npm-1.2.1-126b9cdc4f-b0782ef5e0.zip/node_modules/ieee754/index.js", "../../../../.yarn/cache/buffer-npm-5.7.1-7ed7d3354c-27cac81cff.zip/node_modules/buffer/index.js", "../../../../.yarn/cache/punycode-patch-34b9deb900-8e754553fa.zip/node_modules/punycode/punycode.js", "../../../../.yarn/cache/whatwg-url-without-unicode-npm-8.0.0-3-e5acd3329e-c27a637ab7.zip/node_modules/whatwg-url-without-unicode/lib/infra.js", "../../../../.yarn/cache/whatwg-url-without-unicode-npm-8.0.0-3-e5acd3329e-c27a637ab7.zip/node_modules/whatwg-url-without-unicode/lib/urlencoded.js", "../../../../.yarn/cache/whatwg-url-without-unicode-npm-8.0.0-3-e5acd3329e-c27a637ab7.zip/node_modules/whatwg-url-without-unicode/lib/url-state-machine.js", "../../../../.yarn/cache/whatwg-url-without-unicode-npm-8.0.0-3-e5acd3329e-c27a637ab7.zip/node_modules/whatwg-url-without-unicode/lib/URLSearchParams-impl.js", "../../../../.yarn/cache/whatwg-url-without-unicode-npm-8.0.0-3-e5acd3329e-c27a637ab7.zip/node_modules/whatwg-url-without-unicode/lib/URLSearchParams.js", "../../../../.yarn/cache/whatwg-url-without-unicode-npm-8.0.0-3-e5acd3329e-c27a637ab7.zip/node_modules/whatwg-url-without-unicode/lib/URL-impl.js", "../../../../.yarn/cache/whatwg-url-without-unicode-npm-8.0.0-3-e5acd3329e-c27a637ab7.zip/node_modules/whatwg-url-without-unicode/lib/URL.js", "../../../../.yarn/cache/whatwg-url-without-unicode-npm-8.0.0-3-e5acd3329e-c27a637ab7.zip/node_modules/whatwg-url-without-unicode/webidl2js-wrapper.js", "../../../../.yarn/cache/whatwg-url-without-unicode-npm-8.0.0-3-e5acd3329e-c27a637ab7.zip/node_modules/whatwg-url-without-unicode/index.js", "../../../../.yarn/__virtual__/react-native-url-polyfill-virtual-87beb7af26/0/cache/react-native-url-polyfill-npm-1.3.0-5e052246a0-d8167ad2cc.zip/node_modules/react-native-url-polyfill/js/URL.js", "../../../../.yarn/__virtual__/react-native-url-polyfill-virtual-87beb7af26/0/cache/react-native-url-polyfill-npm-1.3.0-5e052246a0-d8167ad2cc.zip/node_modules/react-native-url-polyfill/js/URLSearchParams.js", "../../../../.yarn/__virtual__/react-native-url-polyfill-virtual-87beb7af26/0/cache/react-native-url-polyfill-npm-1.3.0-5e052246a0-d8167ad2cc.zip/node_modules/react-native-url-polyfill/index.js", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/rn-polyfills/url/index.ts", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/rn-polyfills/index.ts", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/dev-entrypoint/index.tsx", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/blur/constants.ts", "protocol-bedrock-require:@react-native-community/blur", "../../../../.yarn/__virtual__/@react-native-bedrock-native-virtual-ffe1719821/0/cache/@react-native-bedrock-native-npm-0.0.0-dev.1741593643819-0ec2f04e5b-964104af8f.zip/node_modules/@react-native-bedrock/native/src/@react-native-community/blur.ts", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/blur/ReactNativeBlurModule.ts", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/blur/BlurView.tsx", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/blur/index.ts", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/keyboard/useKeyboardAnimatedHeight.tsx", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/keyboard/KeyboardAboveView.tsx", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/keyboard/index.ts", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/intersection-observer/IOContext.ts", "../../../../.yarn/cache/@swc-helpers-npm-0.5.13-710c6c1e6e-b9df578401.zip/node_modules/@swc/helpers/esm/_assert_this_initialized.js", "../../../../.yarn/cache/@swc-helpers-npm-0.5.13-710c6c1e6e-b9df578401.zip/node_modules/@swc/helpers/esm/_set_prototype_of.js", "../../../../.yarn/cache/@swc-helpers-npm-0.5.13-710c6c1e6e-b9df578401.zip/node_modules/@swc/helpers/esm/_inherits.js", "../../../../.yarn/cache/@swc-helpers-npm-0.5.13-710c6c1e6e-b9df578401.zip/node_modules/@swc/helpers/esm/_get_prototype_of.js", "../../../../.yarn/cache/@swc-helpers-npm-0.5.13-710c6c1e6e-b9df578401.zip/node_modules/@swc/helpers/esm/_is_native_reflect_construct.js", "../../../../.yarn/cache/@swc-helpers-npm-0.5.13-710c6c1e6e-b9df578401.zip/node_modules/@swc/helpers/esm/_possible_constructor_return.js", "../../../../.yarn/cache/@swc-helpers-npm-0.5.13-710c6c1e6e-b9df578401.zip/node_modules/@swc/helpers/esm/_create_super.js", "../../../../.yarn/cache/@swc-helpers-npm-0.5.13-710c6c1e6e-b9df578401.zip/node_modules/@swc/helpers/esm/_construct.js", "../../../../.yarn/cache/@swc-helpers-npm-0.5.13-710c6c1e6e-b9df578401.zip/node_modules/@swc/helpers/esm/_is_native_function.js", "../../../../.yarn/cache/@swc-helpers-npm-0.5.13-710c6c1e6e-b9df578401.zip/node_modules/@swc/helpers/esm/_wrap_native_super.js", "../../../../.yarn/cache/es-toolkit-npm-1.32.0-019fc7c155-56ba965570.zip/node_modules/es-toolkit/dist/function/debounce.mjs", "../../../../.yarn/cache/es-toolkit-npm-1.32.0-019fc7c155-56ba965570.zip/node_modules/es-toolkit/dist/function/throttle.mjs", "../../../../.yarn/cache/es-toolkit-npm-1.32.0-019fc7c155-56ba965570.zip/node_modules/es-toolkit/dist/index.mjs", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/intersection-observer/IntersectionObserver.ts", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/intersection-observer/IOManager.ts", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/intersection-observer/withIO.tsx", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/intersection-observer/IOFlatList.ts", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/intersection-observer/IOScrollView.ts", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/intersection-observer/InView.tsx", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/intersection-observer/index.ts", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/utils/noop.ts", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/utils/usePreservedCallback.ts", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/impression-area/ImpressionArea.tsx", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/impression-area/index.ts", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/scroll-view-inertial-background/ScrollViewInertialBackground.tsx", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/scroll-view-inertial-background/index.ts", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/react/useWaitForReturnNavigator.ts", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/react/index.ts", "protocol-bedrock-require:react-native-video", "../../../../.yarn/__virtual__/@react-native-bedrock-native-virtual-ffe1719821/0/cache/@react-native-bedrock-native-npm-0.0.0-dev.1741593643819-0ec2f04e5b-964104af8f.zip/node_modules/@react-native-bedrock/native/src/react-native-video.ts", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/video/instance.tsx", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/video/Video.tsx", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/video/index.ts", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/bridge-handler/useBridgeHandler.tsx", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/bridge-handler/index.ts", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/bedrock-event/index.ts", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/index.ts", "protocol-bedrock-require:react-native-webview", "../../../../.yarn/__virtual__/@react-native-bedrock-native-virtual-ffe1719821/0/cache/@react-native-bedrock-native-npm-0.0.0-dev.1741593643819-0ec2f04e5b-964104af8f.zip/node_modules/@react-native-bedrock/native/src/react-native-webview.ts", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/bridges.ts", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/src/constants.ts", "../../../../.yarn/__virtual__/@apps-in-toss-framework-virtual-574b136add/1/apps-in-toss-packages/framework/dist/index.js", "../../react-native/pages/index.tsx", "../../react-native/pages/_404.tsx", "../../../../.yarn/__virtual__/react-native-bedrock-virtual-7c6291436f/0/cache/react-native-bedrock-npm-0.0.0-dev.1741593643819-1bbf38fc8b-cebb92f4a0.zip/node_modules/react-native-bedrock/dist/presets/common/polyfills/symbol-asynciterator.js", "../../react-native/context.ts"],
|
|
4
|
-
"sourcesContent": ["module.exports = __bedrock_require__('react');", "/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its 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'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n", "'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n", "/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-var */\nimport type { ComponentType } from 'react';\n\nexport interface BedrockGlobal {\n shared: {\n buildNumber: string;\n };\n apps: {\n [appName: string]: {\n buildNumber: string;\n };\n };\n}\n\ndeclare global {\n // @internal\n var __SPLIT_CHUNK_ENABLED__: boolean;\n\n // @internal\n var __bedrock_require__: (id: string) => any;\n\n // @internal\n var __bedrock: BedrockGlobal;\n\n // @internal\n var Page: ComponentType<any>;\n\n var window: any;\n}\n", "function _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true });\n } else obj[key] = value;\n\n return obj;\n}\nexport { _define_property as _ };\n", "import { _ as _define_property } from \"./_define_property.js\";\n\nfunction _object_spread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === \"function\") {\n ownKeys = ownKeys.concat(\n Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n })\n );\n }\n\n ownKeys.forEach(function(key) {\n _define_property(target, key, source[key]);\n });\n }\n\n return target;\n}\nexport { _object_spread as _ };\n", "function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) {\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\nfunction _object_spread_props(target, source) {\n source = source != null ? source : {};\n\n if (Object.getOwnPropertyDescriptors) Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n else {\n ownKeys(Object(source)).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\nexport { _object_spread_props as _ };\n", "function _object_without_properties_loose(source, excluded) {\n if (source == null) return {};\n\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\nexport { _object_without_properties_loose as _ };\n", "import { _ as _object_without_properties_loose } from \"./_object_without_properties_loose.js\";\n\nfunction _object_without_properties(source, excluded) {\n if (source == null) return {};\n\n var target = _object_without_properties_loose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\nexport { _object_without_properties as _ };\n", "module.exports = __bedrock_require__('@react-navigation/native');", "export * from '@react-navigation/native';\n", "module.exports = __bedrock_require__('react-native-safe-area-context');", "export * from 'react-native-safe-area-context';\n", "function _array_with_holes(arr) {\n if (Array.isArray(arr)) return arr;\n}\nexport { _array_with_holes as _ };\n", "function _iterable_to_array_limit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n\n var _arr = [];\n var _n = true;\n var _d = false;\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\nexport { _iterable_to_array_limit as _ };\n", "function _non_iterable_rest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _non_iterable_rest as _ };\n", "function _array_like_to_array(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\nexport { _array_like_to_array as _ };\n", "import { _ as _array_like_to_array } from \"./_array_like_to_array.js\";\n\nfunction _unsupported_iterable_to_array(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _array_like_to_array(o, minLen);\n\n var n = Object.prototype.toString.call(o).slice(8, -1);\n\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(n);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);\n}\nexport { _unsupported_iterable_to_array as _ };\n", "import { _ as _array_with_holes } from \"./_array_with_holes.js\";\nimport { _ as _iterable_to_array_limit } from \"./_iterable_to_array_limit.js\";\nimport { _ as _non_iterable_rest } from \"./_non_iterable_rest.js\";\nimport { _ as _unsupported_iterable_to_array } from \"./_unsupported_iterable_to_array.js\";\n\nfunction _sliced_to_array(arr, i) {\n return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();\n}\nexport { _sliced_to_array as _ };\n", "module.exports = __bedrock_require__('react-native');", "export type AdaptiveColors = {\n background: string;\n grey900: string;\n grey800: string;\n};\n\nexport const adaptiveLightColors: AdaptiveColors = {\n background: '#ffffff',\n grey900: '#191f28',\n grey800: '#333d4b',\n};\n\nexport const adaptiveDarkColors: AdaptiveColors = {\n background: '#17171c',\n grey900: '#ffffff',\n grey800: '#e4e4e5',\n};\n", "import { createContext, useMemo, type PropsWithChildren, useContext } from 'react';\nimport { adaptiveDarkColors, adaptiveLightColors } from './colors';\nimport { ColorPreference } from '../initial-props/index';\n\nexport interface ColorPreferenceContextValue {\n colorPreference: ColorPreference;\n}\n\nconst defaultColorPreferenceValue = {\n colorPreference: 'light',\n} as const;\n\nconst ColorPreferenceContext = createContext<ColorPreferenceContextValue>(defaultColorPreferenceValue);\n\nexport interface ColorPreferenceProviderProps {\n colorPreference?: ColorPreference;\n}\n\nexport function ColorPreferenceProvider({\n colorPreference = 'light',\n children,\n}: PropsWithChildren<ColorPreferenceProviderProps>) {\n const colorPreferenceValue = useMemo(() => ({ colorPreference }), [colorPreference]);\n\n return <ColorPreferenceContext.Provider value={colorPreferenceValue}>{children}</ColorPreferenceContext.Provider>;\n}\n\nexport function useColorPreference() {\n const value = useContext(ColorPreferenceContext);\n\n if (value == null) {\n throw new Error(\n 'useColorPreference은 ColorPreferenceProvider 안에서만 사용 가능합니다. ColorPreferenceProvider 를 추가해주세요.'\n );\n }\n\n return value;\n}\n\nexport function useAdaptiveColor() {\n const { colorPreference } = useColorPreference();\n\n switch (colorPreference) {\n case 'dark':\n return adaptiveDarkColors;\n case 'light':\n default:\n return adaptiveLightColors;\n }\n}\n", "import {\n NavigationContainerRefContext,\n NavigationContext,\n NavigationProp,\n} from '@react-native-bedrock/native/@react-navigation/native';\nimport { useContext } from 'react';\n\n/**\n * @name useNavigationSafely\n * @category Hooks\n * @kind function\n * @link https://github.com/react-navigation/react-navigation/blob/d1cd940d9a3fb46bec0eb6bf4f8023789fc93b28/packages/core/src/useNavigation.tsx#L13\n * @description\n * `@react-navigation/native`에서 화면 간의 이동을 관리하는 [`useNavigation`](https://reactnavigation.org/docs/use-navigation/)을 안전하게 사용할 수 있도록 만든 Hook이에요.\n * 이 Hook은 `@react-navigation/native`에서 제공하는 `useNavigation`을 기반으로 만들어 졌지만, `navigation`이나 `root` 객체가 `null`이거나 `undefined`일 때 에러를 발생시키지 않아 보다 안전하게 동작해요.\n * 또, `@react-navigation/native`를 사용하지 않는 환경에서도 코드가 안전하게 동작하게 만들어 사용자가 에러를 경험하지 않아요.\n *\n * @returns {NavigationProp<ReactNavigation.RootParamList> | undefined} - 화면이 보이는 상태이에요.\n * @example\n * ```typescript\n * const navigation = useNavigationSafely();\n * const isNavigationFocused = () => navigation?.isFocused() ?? true;\n * ```\n */\nexport function useNavigationSafely(): NavigationProp<ReactNavigation.RootParamList> | undefined {\n const root = useContext(NavigationContainerRefContext);\n const navigation = useContext(NavigationContext);\n\n return (navigation ?? root ?? undefined) as NavigationProp<ReactNavigation.RootParamList> | undefined;\n}\n", "import { useDebugValue, useEffect, useState } from 'react';\nimport { useNavigationSafely } from './useNavigationSafely';\n\n/**\n * @name useIsFocusedSafely\n * @category Hooks\n * @kind function\n * @link https://github.com/react-navigation/react-navigation/blob/%40react-navigation/native%406.1.18/packages/core/src/useIsFocused.tsx\n * @description\n * 현재 화면이 포커스된 상태인지 여부를 반환해요.\n *\n * `@react-navigation/native`에서 제공하던 `useIsFocused`를 안전하게 사용할 수 있도록 만든 Hook이에요.\n * 이 Hook은 `@react-navigation/native` 에서 제공하는 `useIsFocused`을 기반으로, `navigation` 이나 `root` 객체가 `null`이거나 `undefined`일 때에 에러를 throw 하지 않도록 만들었어요.\n * `@react-navigation/native` 를 쓰지 않는 환경에서 코드가 사용 되더라도 유저가 에러를 보지 않도록 만들었어요.\n *\n * @returns {boolean} - 현재 화면의 포커스 상태를 반환해요.\n * @example\n * ```typescript\n * const isFocused = useIsFocusedSafely();\n * console.log(isFocused); // true or false\n * ```\n */\nexport function useIsFocusedSafely(): boolean {\n const navigation = useNavigationSafely();\n const isNavigationFocused = () => navigation?.isFocused() ?? true;\n\n const [isFocused, setIsFocused] = useState(isNavigationFocused());\n\n const valueToReturn = isNavigationFocused();\n\n if (isFocused !== valueToReturn) {\n // If the value has changed since the last render, we need to update it.\n // This could happen if we missed an update from the event listeners during re-render.\n // React will process this update immediately, so the old subscription value won't be committed.\n // It is still nice to avoid returning a mismatched value though, so let's override the return value.\n // This is the same logic as in https://github.com/facebook/react/tree/master/packages/use-subscription\n setIsFocused(valueToReturn);\n }\n\n useEffect(() => {\n if (navigation == null) {\n return;\n }\n\n const unsubscribeFocus = navigation.addListener('focus', () => setIsFocused(true));\n\n const unsubscribeBlur = navigation.addListener('blur', () => setIsFocused(false));\n\n return () => {\n unsubscribeFocus();\n unsubscribeBlur();\n };\n }, [navigation]);\n\n useDebugValue(valueToReturn);\n\n return valueToReturn;\n}\n", "export * from './useIsFocusedSafely';\nexport * from './useNavigationSafely';\n", "import { createContext, ReactElement, ReactNode, useContext, useEffect, useState } from 'react';\nimport { AppState, AppStateStatus } from 'react-native';\n\ninterface Props {\n children: ReactNode;\n}\n\nconst AppStateContext = createContext<AppStateStatus | undefined>(undefined);\n\n/**\n * @name AppStateProvider\n * @category Providers\n * @description\n * 토스 React Native 화면의 `AppState`를 관리하는 Provider예요. 이 Provider는 앱의 상태(활성, 백그라운드 등)를 관리하고, 이를 구독하는 자식 컴포넌트로 전달해요.\n * @link https://reactnative.dev/docs/appstate\n * @param {Props} children - `AppStateProvider`로 감쌀 자식 컴포넌트에요. 이 컴포넌트는`AppState`의 변화를 감지하고 반응할 수 있어요.\n * @returns {ReactElement} - `AppStateProvider` 로 감싼 React Provider 컴포넌트예요.\n * @example\n * ```tsx\n * export function App() {\n * return (\n * <AppStateProvider>\n * <MyApp />\n * </AppStateProvider>\n * );\n * }\n * ```\n */\nexport function AppStateProvider({ children }: Props): ReactElement {\n const [appState, setAppState] = useState<AppStateStatus>(AppState.currentState);\n\n const handleAppStateChange = (status: AppStateStatus) => {\n setAppState(status);\n };\n\n useEffect(() => {\n const subscription = AppState.addEventListener('change', handleAppStateChange);\n\n return () => {\n subscription.remove();\n };\n }, []);\n\n return <AppStateContext.Provider value={appState}>{children}</AppStateContext.Provider>;\n}\n\n/**\n * @category Hooks\n * @name useIsAppForeground\n * @description\n * React Native 앱이 포그라운드(foreground) 상태인지 여부를 반환해요.\n *\n * @see https://reactnative.dev/docs/0.72/appstate#app-states\n * @returns {boolean} - 앱이 포그라운드 상태인지 여부를 반환해요.\n * @throws {Error} 관리 중인 AppState의 상태가 `null`일 때 에러를 발생시켜요.\n * @example\n * ```typescript\n * const isForeground = useIsAppForeground();\n * ```\n */\nexport const useIsAppForeground = (): boolean => {\n const appState = useContext(AppStateContext);\n\n if (appState == null) {\n throw new Error('useIsAppForeground must be used within a AppStateProvider');\n }\n\n /**\n * iOS 에서는 'inactive' 상태도 포그라운드(foreground)로 간주해요.\n * 'inactive' 는 iOS 에서만 존재하는 상태로, 예를 들어 제어센터나 알림창이 떠 있는 상태예요.\n * @see https://reactnative.dev/docs/0.72/appstate#app-states\n */\n return appState === 'active' || appState === 'inactive';\n};\n", "function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) resolve(value);\n else Promise.resolve(value).then(_next, _throw);\n}\nfunction _async_to_generator(fn) {\n return function() {\n var self = this, args = arguments;\n\n return new Promise(function(resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\nexport { _async_to_generator as _ };\n", "function _instanceof(left, right) {\n if (right != null && typeof Symbol !== \"undefined\" && right[Symbol.hasInstance]) {\n return !!right[Symbol.hasInstance](left);\n } else return left instanceof right;\n}\nexport { _instanceof as _ };\n", "function _type_of(obj) {\n \"@swc/helpers - typeof\";\n\n return obj && typeof Symbol !== \"undefined\" && obj.constructor === Symbol ? \"symbol\" : typeof obj;\n}\nexport { _type_of as _ };\n", "/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n", "export { __generator as _ } from \"tslib\";\n", "import { NativeModules } from 'react-native';\nimport type { HapticFeedbackOptions } from './generateHapticFeedback/types';\nimport type { NetworkStatus } from './getNetworkStatus/types';\n\ninterface BedrockModule {\n closeView: () => void;\n generateHapticFeedback: (options: HapticFeedbackOptions) => Promise<void>;\n share: (message: { message: string }) => void;\n setSecureScreen: (options: { enabled: boolean }) => Promise<{ enabled: boolean }>;\n setScreenAwakeMode: (options: { enabled: boolean }) => Promise<{ enabled: boolean }>;\n getNetworkStatus: () => Promise<NetworkStatus>;\n\n deviceId: string;\n DeviceInfo: {\n locale: string;\n };\n schemeUri: string;\n}\n\nexport const BedrockModule: BedrockModule = NativeModules.BedrockModule;\n", "import { BedrockModule } from './BedrockModule';\n\n/**\n * @public\n * @tag BedrockModule\n * @category BedrockModules\n * @kind function\n * @name closeView\n * @description 현재 화면을 닫는 함수에요. 예를 들어, \"닫기\" 버튼을 눌러서 서비스를 종료할 때 사용할 수 있어요.\n * @returns {Promise<void>}\n *\n * @example\n * ### 닫기 버튼을 눌러 화면 닫기\n *\n * ```tsx\n * import { Button } from 'react-native';\n * import { closeView } from 'react-native-bedrock';\n *\n * function CloseButton() {\n * return <Button title=\"닫기\" onPress={closeView} />;\n * }\n * ```\n */\nexport async function closeView() {\n return BedrockModule.closeView();\n}\n", "import { Platform } from 'react-native';\nimport { BedrockModule } from './BedrockModule';\n\n/**\n * @public\n * @tag BedrockModule\n * @category BedrockModules\n * @kind function\n * @name getLocale\n * @description\n * 사용자의 로케일(locale) 정보를 반환해요. 네이티브 모듈에서 로케일 정보를 가져올 수 없을 때는 기본값으로 'ko-KR'을 반환합니다. 앱의 현지화 및 언어 설정과 관련된 기능을 구현할 때 사용하세요.\n *\n * @returns {string} 사용자의 로케일 정보를 반환해요.\n *\n * @example\n * ### 현재 사용자의 로케일 정보 가져오기\n *\n * ```tsx\n * import { getLocale } from 'react-native-bedrock';\n * import { Text } from 'react-native';\n *\n * function MyPage() {\n * const locale = getLocale();\n *\n * return (\n * <Text>사용자의 로케일 정보: {locale}</Text>\n * )\n * }\n *\n * ```\n */\nexport function getLocale() {\n const locale = BedrockModule?.DeviceInfo?.locale ?? 'ko-KR';\n\n if (Platform.OS === 'android') {\n return replaceUnderbarToHypen(locale);\n }\n\n return locale;\n}\n\n/**\n * android 에서 언더바(`_`) 로 구분되고 있어서, 이를 하이픈(`-`)으로 변경합니다.\n */\nfunction replaceUnderbarToHypen(locale: string) {\n return locale.replaceAll('_', '-');\n}\n", "import { BedrockModule } from './BedrockModule';\n\n/**\n * @public\n * @name getSchemeUri\n * @tag BedrockModule\n * @category BedrockModules\n * @kind function\n * @description 처음에 화면에 진입한 스킴 값이에요. 페이지 이동으로 인한 URI 변경은 반영되지 않아요.\n * @returns {string} 처음에 화면에 진입한 스킴 값을 반환해요.\n *\n * @example\n * ### 처음 진입한 스킴 값 가져오기\n *\n * ```tsx\n * import { getSchemeUri } from 'react-native-bedrock';\n * import { Text } from 'react-native';\n *\n * function MyPage() {\n * const schemeUri = getSchemeUri();\n *\n * return <Text>처음에 화면에 진입한 스킴 값: {schemeUri}</Text>\n * }\n * ```\n */\nexport function getSchemeUri() {\n return BedrockModule.schemeUri;\n}\n", "import { HapticFeedbackOptions, HapticFeedbackType } from './types';\nimport { BedrockModule } from '../BedrockModule';\n\n/**\n * @public\n * @tag BedrockModule\n * @category BedrockModules\n * @kind function\n * @name generateHapticFeedback\n * @description 디바이스에 햅틱 진동을 일으키는 함수예요. 예를 들어, 버튼 터치나 화면전환에 드라마틱한 효과를 주고 싶을 때 사용할 수 있어요. [HapticFeedbackOptions](../Types/HapticFeedbackOptions.html)에서 진동타입을 확인해 보세요.\n * @returns {void}\n *\n * @example\n * ### 버튼을 눌러 햅틱 일으키기\n *\n * ```tsx\n * import { Button } from 'react-native';\n * import { generateHapticFeedback } from 'react-native-bedrock';\n *\n * function GenerateHapticFeedback() {\n * return <Button title=\"햅틱\" onPress={() => { generateHapticFeedback( { type: \"tickWeak\"}) }} />;\n * }\n * ```\n */\nexport function generateHapticFeedback(options: HapticFeedbackOptions) {\n return BedrockModule.generateHapticFeedback(options);\n}\n\nexport type { HapticFeedbackType };\n", "import { BedrockModule } from './BedrockModule';\n\n/**\n * @public\n * @tag BedrockModule\n * @category BedrockModules\n * @kind function\n * @name share\n * @description\n * 사용자가 콘텐츠를 다른 사람과 공유할 수 있도록 네이티브 공유 시트를 표시해요.\n * `options.message` 속성에 공유할 메시지를 전달하면, 사용자가 선택할 수 있는 앱 목록이 표시돼요.\n * 예를 들어, 사용자가 텍스트 메시지를 공유하거나 메모 앱에 저장하려고 할 때 유용해요.\n * @param {object} options - 공유할 메시지를 담은 객체예요.\n * @param {string} options.message - 공유할 텍스트 문자열이에요. 예를 들어, \"안녕하세요! 이 내용을 공유합니다.\"\n *\n * @example\n * ### 공유하기 기능 구현하기\n *\n * 아래는 버튼을 클릭하면 메시지를 공유하는 간단한 예제예요.\n *\n * ```tsx\n * import { share } from 'react-native-bedrock';\n * import { Button } from 'react-native';\n *\n * function MyPage() {\n * return (\n * <Button\n * title=\"공유\"\n * onPress={() => share({ message: '공유할 메시지입니다.' })}\n * />\n * );\n * }\n * ```\n */\nexport async function share(message: { message: string }) {\n BedrockModule.share(message);\n}\n", "import { BedrockModule } from './BedrockModule';\n\n/**\n * @public\n * @name setSecureScreen\n * @tag BedrockModule\n * @category BedrockModules\n * @kind function\n * @description\n * 화면 캡쳐를 차단해서 민감한 정보가 유출되지 않도록 보호하거나, 필요할 경우 캡쳐를 허용하도록 설정해요. 예를 들어 보안이 중요한 화면에서 사용할 수 있어요.\n *\n * @param {object} options 화면 캡쳐 설정 옵션이에요.\n * @param {boolean} options.enabled 화면 캡쳐를 차단할지 여부를 설정해요. `true`면 캡쳐를 차단하고, `false`면 허용해요.\n * @returns {enabled: boolean} 현재 설정된 캡쳐 차단 상태를 반환해요.\n *\n * @example\n * ### 캡쳐 허용 상태 변경하기\n *\n * ```tsx\n * import { Button } from 'react-native';\n * import { setSecureScreen } from 'react-native-bedrock';\n *\n * function SetSecureScreen() {\n * return <Button title=\"캡쳐 막기\" onPress={async () => {\n * await setSecureScreen({ enabled: true });\n * }} />;\n * }\n * ```\n */\nexport function setSecureScreen(options: { enabled: boolean }): Promise<{ enabled: boolean }> {\n return BedrockModule.setSecureScreen(options);\n}\n", "import { BedrockModule } from \"./BedrockModule\";\n\n/**\n * @public\n * @tag BedrockModule\n * @category BedrockModules\n * @kind function\n * @name setScreenAwakeMode\n * @description\n * `setScreenAwakeMode` 함수는 화면이 항상 켜져 있도록 설정하거나 해제하는 기능을 제공해요. \n * 이 기능은 웹툰, 동영상, 문서 읽기 등 화면을 지속해서 켜두어야 하는 상황에서 유용해요. \n * \n * `enabled` 옵션을 `true`로 설정하면 화면이 꺼지지 않게 유지하고, `false`로 설정하면 기본 화면 보호기 시간에 따라 화면이 꺼져요. 특히, 이 함수는 앱 전체에 영향을 미치므로 특정 화면에서만 사용하려면 화면을 벗어날 때 이전 상태로 복구하는 추가 작업이 필요해요. \n * \n * 예를 들어, 미디어 콘텐츠 감상 화면에서는 항상 켜짐 모드를 활성화하고, 화면을 떠날 때 설정을 복구해서 불필요한 배터리 소모를 방지할 수 있어요. \n * \n * 다만, 앱에서 벗어나는 상황에서는 항상 켜짐 모드가 비활성화될 수 있으니 주의해야 해요.\n *\n * @param {object} options 화면 항상 켜짐 모드의 설정 값이에요.\n * @param {boolean} options.enabled 화면 항상 켜짐 모드를 켜거나 끄는 옵션이에요. \n * `true`로 설정하면 화면이 항상 켜지고, `false`로 설정하면 화면 보호기 시간에 따라 꺼져요.\n *\n * @returns {object} 현재 화면 항상 켜짐 모드의 설정 상태를 반환해요.\n * @returns {boolean} enabled 화면 항상 켜짐 모드가 켜져 있는지 여부를 나타내는 값이에요.\n * \n * @example\n * ### 화면 항상 켜짐 모드 설정하기 \n * \n * ```tsx\n * import { Button } from 'react-native';\n * import { setScreenAwakeMode } from 'react-native-bedrock';\n * \n * function SetScreenAwakeMode() {\n * return (\n * <Button\n * title=\"화면 항상 켜기\"\n * onPress={() => {\n * setScreenAwakeMode({ enabled: true });\n * }}\n * />\n * );\n * }\n * ```\n *\n * ### 화면 항상 켜짐 모드 복구하기\n * 특정 화면을 벗어날 때 이전 상태로 복구하려면 다음과 같이 `useEffect`를 사용하세요.\n * \n * ```tsx\n * import { useEffect } from 'react';\n * import { setScreenAwakeMode, cleanUp } from 'react-native-bedrock';\n * \n * function MediaScreen() {\n * useEffect(() => {\n * setScreenAwakeMode({ enabled: true });\n * \n * return () => {\n * setScreenAwakeMode({ enabled: false }); // 설정을 이전 상태로 복구해요.\n * };\n * }, []);\n * \n * return <Text>미디어 콘텐츠를 감상하는 화면</Text>;\n * }\n * ```\n */\nexport async function setScreenAwakeMode(options: { enabled: boolean }) {\n return BedrockModule.setScreenAwakeMode(options)\n}\n", "import { BedrockModule } from './BedrockModule';\n\n/**\n * @public\n * @tag BedrockModule\n * @category BedrockModules\n * @kind function\n * @name getDeviceId\n * @description\n * 사용 중인 기기의 고유 식별자를 문자열로 반환해요.\n *\n * 이 함수는 현재 사용 중인 기기의 고유 식별자를 문자열로 반환해요. 기기별로 설정이나 데이터를 저장하거나 사용자의 기기를 식별해서 로그를 기록하고 분석하는 데 사용할 수 있어요. 같은 사용자의 여러 기기를 구분하는 데도 유용해요.\n *\n * @returns {string} 기기의 고유 식별자를 나타내는 문자열이에요.\n *\n * @example\n * ### 기기 고유 식별자 가져오기\n *\n * ```tsx\n * import { getDeviceId } from 'react-native-bedrock';\n * import { Text } from 'react-native';\n *\n * function MyPage() {\n * const id = getDeviceId();\n *\n * return (\n * <Text>사용자의 기기 고유 식별자: {id}</Text>\n * );\n * }\n * ```\n */\nexport function getDeviceId() {\n return BedrockModule.deviceId;\n}\n", "import type { NetworkStatus } from './types';\nimport { BedrockModule } from '../BedrockModule';\n\n/**\n * @public\n * @tag BedrockModule\n * @category BedrockModules\n * @kind function\n * @name getNetworkStatus\n * @description\n * 디바이스의 현재 네트워크 연결 상태를 가져오는 함수예요.\n * 반환 값은 `NetworkStatus` 타입으로, 인터넷 연결 여부와 연결 유형(Wi-Fi, 모바일 데이터 등)을 나타내요. 값은 다음 중 하나예요.\n *\n * - `OFFLINE`: 인터넷에 연결되지 않은 상태예요.\n * - `WIFI`: Wi-Fi에 연결된 상태예요.\n * - `2G`: 2G 네트워크에 연결된 상태예요.\n * - `3G`: 3G 네트워크에 연결된 상태예요.\n * - `4G`: 4G 네트워크에 연결된 상태예요.\n * - `5G`: 5G 네트워크에 연결된 상태예요.\n * - `WWAN`: 인터넷은 연결되었지만, 연결 유형(Wi-Fi, 2G~5G)을 알 수 없는 상태예요. 이 상태는 iOS에서만 확인할 수 있어요.\n * - `UNKNOWN`: 인터넷 연결 상태를 알 수 없는 상태예요. 이 상태는 안드로이드에서만 확인할 수 있어요.\n *\n * @returns {Promise<NetworkStatus>} 네트워크 상태를 반환해요.\n *\n * @example\n * ### 현재 네트워크 상태 가져오기\n *\n * 네트워크 연결 상태를 가져와 화면에 표시하는 예제예요.\n *\n * ```tsx\n * import { useState, useEffect } from 'react';\n * import { Text, View } from 'react-native';\n * import { getNetworkStatus, NetworkStatus } from 'react-native-bedrock';\n *\n * function GetNetworkStatus() {\n * const [status, setStatus] = useState<NetworkStatus | ''>('');\n *\n * useEffect(() => {\n * async function fetchStatus() {\n * const networkStatus = await getNetworkStatus();\n * setStatus(networkStatus);\n * }\n *\n * fetchStatus();\n * }, []);\n *\n * return (\n * <View>\n * <Text>현재 네트워크 상태: {status}</Text>\n * </View>\n * );\n * }\n * ```\n */\nexport function getNetworkStatus(): Promise<NetworkStatus> {\n return BedrockModule.getNetworkStatus();\n}\n\n/** export type */\nexport type { NetworkStatus };\n", "export * from './closeView';\nexport * from './getLocale';\nexport * from './getSchemeUri';\nexport * from './generateHapticFeedback';\nexport * from './share';\nexport * from './setSecureScreen';\nexport * from './setScreenAwakeMode';\nexport * from './getDeviceId';\nexport * from './getNetworkStatus';\n", "import { NativeModules } from 'react-native';\n\ninterface BedrockCoreModule {\n addListener: (eventType: string) => void;\n removeListeners: (count: number) => void;\n}\n\nexport const BedrockCoreModule: BedrockCoreModule = NativeModules.BedrockCoreModule;\n", "/** Bridges API */\nexport * from './natives';\nexport { BedrockCoreModule } from './core/BedrockCoreModule';\n", "import { EmitterSubscription, NativeEventEmitter } from 'react-native';\nimport { EventEmitters } from './eventEmitters';\nimport { EventEmitterSchema } from './eventEmitters/types';\nimport { BedrockCoreModule } from '../native-modules';\n\ntype MapOf<T> = T extends EventEmitterSchema<infer K, any> ? { [key in K]: T } : never;\ntype UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never;\ntype EventEmittersMap = UnionToIntersection<MapOf<EventEmitters>>;\ntype EventKeys = keyof EventEmittersMap;\ntype ParamOf<K extends EventKeys> = EventEmittersMap[K]['params'];\n/**\n * @interface BedrockEventEmitter\n * @description\n * 네이티브 플랫폼에서 발생하는 이벤트들을 처리하는 NativeEventEmitter를 토스에서 사용하는 형태에 맞게 정의한 인터페이스에요.\n * @property {(event: EventKeys, callback: (...params: ParamOf<E>) => void) => EmitterSubscription} addListener - 이벤트 리스너를 추가하는 함수\n * @property {(subscription: EmitterSubscription) => void} removeSubscription - 이벤트 구독을 제거하는 함수\n */\ninterface BedrockEventEmitter {\n addListener<Event extends EventKeys>(\n event: Event,\n callback: (...params: ParamOf<Event>) => void\n ): EmitterSubscription;\n}\n\n/**\n * @kind constant\n * @name nativeEventEmitter\n * @description\n * 토스 네이티브 플랫폼에서 제공하는 react-native의 NativeEventEmitter instance에요.\n * @type {BedrockEventEmitter}\n */\nexport const nativeEventEmitter = new NativeEventEmitter(BedrockCoreModule) as unknown as BedrockEventEmitter;\n", "export * from './nativeEventEmitter';\n", "import { createContext, PropsWithChildren, ReactElement, useContext, useEffect, useState } from 'react';\nimport { nativeEventEmitter } from '../native-event-emitter';\n\nconst VisibilityChangedContext = createContext<boolean | undefined>(undefined);\n\n/**\n * @name VisibilityChangedProvider\n * @category Providers\n * @kind function\n * @description\n * 토스 앱 React Native 화면이 보이는지 여부를 관리하는 Provider예요.\n * 토스 앱의 `visibilityChanged` 이벤트를 구독해서 화면이 보이는지 여부를 감지하고 관리해요.\n *\n * @param {ReactNode | undefined} children - 화면이 보이는지 여부를 확인하는 자식 컴포넌트예요.\n * @param {boolean} isVisible - 화면이 보이는지 여부를 나타내는 `boolean` 값이에요.\n * @returns {ReactElement} - `VisibilityChangedContext.Provider`로 감싼 React Provider 컴포넌트예요.\n * @example\n * ```typescript\n * export function VisibilityProvider({ isVisible, children }: Props) {\n * return (\n * <VisibilityChangedProvider isVisible={isVisible}>\n * {children}\n * </VisibilityChangedProvider>\n * );\n * }\n * ```\n */\nexport function VisibilityChangedProvider({\n children,\n isVisible,\n}: PropsWithChildren<{ isVisible: boolean }>): ReactElement {\n const [visible, setVisible] = useState(isVisible);\n\n useEffect(() => {\n const subscription = nativeEventEmitter.addListener('visibilityChanged', (nextVisible) => {\n setVisible(nextVisible);\n });\n\n return () => {\n subscription.remove();\n };\n }, []);\n\n return <VisibilityChangedContext.Provider value={visible}>{children}</VisibilityChangedContext.Provider>;\n}\n\n/**\n * @name useVisibilityChanged\n * @category Hooks\n * @kind function\n * @description\n * 토스 앱 React Native 화면이 보이는지 여부를 반환하는 Hook이에요.\n * @returns {boolean} - 화면이 보이는지 여부를 반환해요.\n * @throws {Error} `VisibilityChangedProvider` 내부에서 사용되지 않았을 때 에러를 발생시켜요.\n * @example\n * ```typescript\n * const isVisible = useVisibilityChanged();\n * console.log(isVisible);\n * // true or false\n * ```\n */\nexport function useVisibilityChanged(): boolean {\n const isVisible = useContext(VisibilityChangedContext);\n\n if (isVisible == null) {\n throw new Error('useVisibilityChanged must be used within a VisibilityChangedProvider');\n }\n\n return isVisible;\n}\n", "import { Platform } from 'react-native';\nimport { useIsFocusedSafely } from './react-navigation/useIsFocusedSafely';\nimport { useIsAppForeground } from './useIsAppForeground';\nimport { useVisibilityChanged } from './useVisibilityChanged';\n\n/**\n * @public\n * @tag AppState\n * @category Hooks\n * @name useVisibility\n * @description\n * 화면이 사용자에게 보이는 상태인지 여부를 반환해요.\n * 앱의 화면이 현재 사용자에게 보인다면 `true`를 반환하고, 보이지 않는다면 `false`를 반환해요. 단, 시스템 공유하기 모달([share](/reference/react-native-bedrock/BedrockModules/share))을 열고 닫을 때는 화면이 보이는 상태가 바뀌지 않아요.\n *\n * 사용 예시는 다음과 같아요.\n * - 다른 앱으로 전환하거나 홈 버튼을 누르면 `false` 를 반환해요.\n * - 다시 토스 앱으로 돌아오거나 화면이 보이면 `true` 를 반환해요.\n * - 토스 앱 내 다른 서비스로 이동하면 `false` 를 반환해요.\n *\n * @returns {boolean} - 현재 화면이 사용자에게 보이는지 여부에요.\n * @example\n *\n * ### 화면이 보이는 상태를 확인하는 예제\n *\n * ```tsx\n * import { useEffect } from 'react';\n * import { Text } from 'react-native';\n * import { useVisibility } from 'react-native-bedrock';\n *\n * export function UseVisibilityExample() {\n * const visibility = useVisibility();\n *\n * useEffect(() => {\n * console.log({ visibility });\n * }, [visibility]);\n *\n * return <Text>홈 화면으로 나갔다 들어오면 로그가 남겨져요.</Text>;\n * }\n * ```\n */\nexport function useVisibility(): boolean {\n const visible = useVisibilityChanged();\n const isForeground = useIsAppForeground();\n const isReactNavigationFocused = useIsFocusedSafely();\n\n /**\n * 안드로이드에서는 AppState를 사용하지 않아요. (AppState는 `onHostPause`와 `onHostResume`을 사용해요.)\n * 안드로이드 5.172.0 버전부터 `visibilityChanged`는 `onHostStop`과 `onHostStart`를 사용해요.\n * - 예를 들어, 안드로이드에서 공유 모달(share 앱브릿지 호출)이 뜨는 경우에도 `visible` 상태가 유지돼요.\n */\n const androidCondition = visible && isReactNavigationFocused;\n const iOSCondition = visible && isForeground && isReactNavigationFocused;\n\n return Platform.OS === 'android' ? androidCondition : iOSCondition;\n}\n", "import { useEffect, useRef } from 'react';\n\n/**\n * @name usePrevious\n * @category Hooks\n * @kind function\n * @description\n * 이전 값을 반환하는 Hook이에요.\n * @param {T} value - 이전 값을 반환할 값이에요.\n * @returns {T} - 이전 값을 반환해요.\n * @example\n * ```typescript\n * const isVisible = useVisibility();\n * const prevValue = usePrevious<boolean>(isVisible) ?? false;\n * ```\n */\nexport function usePrevious<T>(value: T): T {\n const ref: any = useRef<T>();\n useEffect(() => {\n ref.current = value;\n }, [value]);\n\n return ref.current;\n}\n", "import { useEffect } from 'react';\nimport { useVisibility } from './useVisibility';\nimport { usePrevious } from './utils/usePrevious';\n\n/**\n * 화면이 보이는지 여부를 나타내는 문자열이에요.\n * @typedef {string} VisibilityState\n * @property {'visible'} visible - 화면이 보이는 상태예요.\n * @property {'hidden'} hidden - 화면이 보이지 않는 상태예요.\n */\nexport type VisibilityState = 'visible' | 'hidden';\n\n/**\n * @callback VisibilityCallback\n * @param {VisibilityState} state - 화면의 보이는 상태를 나타내는 문자열이에요.\n */\nexport type VisibilityCallback = (state: VisibilityState) => void;\n\n/**\n * @public\n * @tag AppState\n * @name useVisibilityChange\n * @category Hooks\n * @kind function\n * @description\n * 화면의 보이는 상태가 변경될 때 해당 상태를 전달하는 콜백 함수를 호출해요.\n * 이 콜백 함수에는 [useVisibility](../Hooks/useVisibility.html)의 반환값이 전달돼요. 반환값이 `true`이면 `visible`, `false`이면 `hidden` 문자열이 전달돼요.\n *\n * @param {VisibilityCallback} callback - 화면이 보이는지 여부가 바뀔 때 그 변경을 전달하는 콜백 함수를 호출해요.\n * @example\n *\n * ### 화면의 보이는 상태가 변경될 때 로그를 남기는 예제\n *\n * ```tsx\n * import { useState } from 'react';\n * import { Text, View } from 'react-native';\n * import { useVisibilityChange, VisibilityState } from 'react-native-bedrock';\n *\n * export function UseVisibilityChangeExample() {\n * const [visibilityHistory, setVisibilityHistory] = useState<VisibilityState[]>([]);\n *\n * useVisibilityChange((visibility) => {\n * setVisibilityHistory((prev) => [...prev, visibility]);\n * });\n *\n * return (\n * <View>\n * <Text>홈 화면으로 나갔다 들어오면 로그가 남겨져요.</Text>\n *\n * {visibilityHistory.map((visibility, index) => (\n * <Text key={index}>{JSON.stringify(visibility)}</Text>\n * ))}\n * </View>\n * );\n * }\n * ```\n */\nexport function useVisibilityChange(callback: VisibilityCallback) {\n const isVisible = useVisibility();\n\n const prevValue = usePrevious<boolean>(isVisible) ?? false;\n\n useEffect(() => {\n if (prevValue === isVisible) {\n return;\n }\n\n callback(isVisible ? 'visible' : 'hidden');\n }, [callback, isVisible, prevValue]);\n}\n", "import { ReactElement, ReactNode } from 'react';\nimport { AppStateProvider } from './useIsAppForeground';\nimport { VisibilityChangedProvider } from './useVisibilityChanged';\n\ninterface Props {\n isVisible: boolean;\n children: ReactNode;\n}\n\n/**\n * @name VisibilityProvider\n * @category Providers\n * @kind function\n * @description\n * ReactNative 뷰가 현재 포그라운드(foreground) 상태인지 여부를 관리하는 Provider에요.\n * @param {boolean} isVisible - 앱이 포그라운드(foreground) 상태인지 여부예요.\n * @param {ReactNode | undefined} children - `AppState` 를 바라보는 자식 컴포넌트예요.\n * @returns {ReactElement} - `VisibilityChangedProvider` 로 감싼 React Provider 컴포넌트예요.\n * @example\n * ```typescript\n *\n * function App() {\n * return (\n * <VisibilityProvider isVisible={true}>\n * <MyApp />\n * </VisibilityProvider>\n * );\n * }\n *\n * ```\n */\nexport function VisibilityProvider({ isVisible, children }: Props): ReactElement {\n return (\n <VisibilityChangedProvider isVisible={isVisible}>\n <AppStateProvider>{children}</AppStateProvider>\n </VisibilityChangedProvider>\n );\n}\n", "export * from './react-navigation';\nexport * from './useIsAppForeground';\nexport * from './useVisibility';\nexport * from './useVisibilityChanged';\nexport * from './useVisibilityChange';\nexport * from './VisibilityProvider';\n", "import { useEffect, useMemo, useState } from 'react';\nimport { Appearance } from 'react-native';\nimport { ColorPreferenceProvider } from '../../contexts/ColorPreferenceContext';\nimport { ColorPreference } from '../../initial-props/index';\nimport { VisibilityProvider } from '../../visibility/index';\nimport { Props } from './index';\n\ntype IOSInitialProps = Props & {\n isVisible: boolean;\n};\n\nexport function App({ children, ...props }: IOSInitialProps) {\n const { isVisible, initialColorPreference } = useMemo(() => props, [props]);\n const colorPreference = useColorPreference(initialColorPreference);\n\n return (\n <ColorPreferenceProvider colorPreference={colorPreference}>\n <VisibilityProvider isVisible={isVisible}>{children}</VisibilityProvider>\n </ColorPreferenceProvider>\n );\n}\n\nfunction useColorPreference(initialColorPreference: ColorPreference) {\n const [colorPreference, setColorPreference] = useState(initialColorPreference);\n\n useEffect(() => {\n const subscription = Appearance.addChangeListener(({ colorScheme }) => {\n if (colorScheme == null) {\n return;\n }\n\n setColorPreference(colorScheme);\n });\n\n return () => {\n subscription?.remove();\n };\n }, []);\n\n return colorPreference;\n}\n", "import type { ComponentType } from 'react';\n\nconst globalThis = new Function('return this')();\n\n/**\n * @kind function\n * @name registerPage\n * @description\n * 페이지 컴포넌트를 등록하는 함수예요.\n *\n * @param {ComponentType<any>} Page - 등록할 페이지 컴포넌트\n * @returns {ComponentType<any>} 등록된 페이지 컴포넌트를 반환해요.\n *\n * @example\n * ```typescript\n * import { registerPage } from './path/to/module';\n *\n * const MyPage: React.FC = () => <div>My Page</div>;\n *\n * registerPage(MyPage);\n * ```\n */\nexport function registerPage(Page: ComponentType<any>): ComponentType<any> {\n if (globalThis.__SPLIT_CHUNK_ENABLED__) {\n globalThis.Page = Page;\n }\n\n return Page;\n}\n", "module.exports = __bedrock_require__('@react-navigation/native-stack');", "import * as Types from '@react-navigation/native-stack/lib/typescript/src/types';\n\nexport * from '@react-navigation/native-stack';\nexport type { Types };\n", "import { createNativeStackNavigator } from '@react-native-bedrock/native/@react-navigation/native-stack';\n\nfunction createBedrockStackNavigator() {\n const Stack = createNativeStackNavigator();\n\n return {\n Navigator: Stack.Navigator,\n Screen: Stack.Screen,\n };\n}\n\nexport const BedrockStack = createBedrockStackNavigator();\n", "import { useNavigationState } from '@react-native-bedrock/native/@react-navigation/native';\n\nexport function useIsInitialScreen() {\n const index = useNavigationState((state) => state?.index ?? 0);\n\n return index === 0;\n}\n", "import { ReactNode, useEffect } from 'react';\nimport { BackHandler } from 'react-native';\nimport { useIsInitialScreen } from '../hooks/useIsInitialScreen';\n\nexport function CanGoBackGuard({\n children,\n canGoBack,\n onBack,\n}: {\n canGoBack: boolean;\n children: ReactNode;\n onBack?: () => void;\n}) {\n const isInitialScreen = useIsInitialScreen();\n const shouldBlockGoingBack = !canGoBack;\n\n useEffect(() => {\n if (!isInitialScreen || !canGoBack) {\n // TODO: BedrockModule 이 들어와야해요.\n // setIosSwipeGestureEnabled({ isEnabled: false });\n\n return () => {\n // TODO: BedrockModule 이 들어와야해요.\n // setIosSwipeGestureEnabled({ isEnabled: true });\n };\n }\n\n return;\n }, [canGoBack, isInitialScreen]);\n\n useEffect(() => {\n if (shouldBlockGoingBack) {\n const subscription = BackHandler.addEventListener('hardwareBackPress', () => {\n onBack?.();\n return true;\n });\n\n return () => {\n subscription.remove();\n };\n }\n\n return;\n }, [shouldBlockGoingBack, onBack]);\n\n return <>{children}</>;\n}\n", "module.exports = __bedrock_require__('react-native-svg');", "export { default } from 'react-native-svg';\nexport * from 'react-native-svg';\n", "import { SvgXml } from '@react-native-bedrock/native/react-native-svg';\nimport { Platform, TouchableOpacity, TouchableOpacityProps, View } from 'react-native';\nimport { useAdaptiveColor } from '../../contexts/ColorPreferenceContext';\n\ninterface BackButtonProps extends TouchableOpacityProps {\n tintColor?: string;\n onPress?: () => void;\n}\nfunction BackButton({ tintColor, onPress }: BackButtonProps) {\n const adaptive = useAdaptiveColor();\n\n return <NavbarBackButton onPress={onPress} color={tintColor ?? adaptive.grey900} />;\n}\n\nfunction NavbarBackButton({ onPress, color }: { onPress?: () => void; color?: string }) {\n return (\n <TouchableOpacity\n hitSlop={{ top: 10, right: 10, bottom: 10, left: 10 }}\n style={{ width: 24, height: 24 }}\n onPress={onPress}\n accessible={true}\n accessibilityLabel=\"뒤로가기\"\n accessibilityRole=\"button\"\n >\n <View style={{ width: 24, height: 24 }}>\n <SvgXml\n width={24}\n height={24}\n xml={BACK_BUTTON_XML.replace(/fill=\"#[0-9a-fA-F]{6}\"/g, `fill=\"${color}\"`)}\n style={{\n marginLeft: BACK_BUTTON_MARGIN,\n }}\n />\n </View>\n </TouchableOpacity>\n );\n}\n\nconst ANDROID_BACK_BUTTON = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"line-icon\">\n<path fill=\"#B0B8C1\" fill-rule=\"evenodd\" d=\"M20.966 10.8H6.93l5.451-5.451a1.2 1.2 0 10-1.697-1.697l-7.5 7.5c-.003.002-.004.006-.007.009a1.2 1.2 0 00-.252 1.298c.06.143.145.27.252.38l.007.01 7.5 7.5c.235.234.542.35.848.35a1.2 1.2 0 00.849-2.048L6.931 13.2h14.036a1.2 1.2 0 100-2.4\"/>\n</svg>`;\n\nconst IOS_BACK_BUTTON = `<svg enable-background=\"new 0 0 24 24\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"m20.8 20.7c-.3 0-.6-.1-.8-.4l-7.5-7.5c-.5-.5-.5-1.2 0-1.7l7.5-7.5c.5-.5 1.2-.5 1.7 0s.5 1.2 0 1.7l-6.8 6.7 6.7 6.7c.5.5.5 1.2 0 1.7-.2.2-.5.3-.8.3z\" fill=\"#b0b8c1\"/>\n</svg>`;\n\nconst BACK_BUTTON_XML = Platform.select<string>({\n android: ANDROID_BACK_BUTTON,\n ios: IOS_BACK_BUTTON,\n default: IOS_BACK_BUTTON,\n});\n\nconst BACK_BUTTON_MARGIN = Platform.select<number>({\n android: -4,\n ios: -12,\n default: -12,\n});\n\nexport { BackButton };\n", "import { NavigationContainerRefWithCurrent } from '@react-native-bedrock/native/@react-navigation/native';\nimport { BackButton } from './BackButton';\nimport { closeView } from '../../native-modules';\n\nexport type RouterBackButtonProps = {\n onPress?: () => void;\n tintColor?: string;\n canGoBack?: boolean;\n onBack?: () => void;\n navigationContainerRef: NavigationContainerRefWithCurrent<any>;\n};\n\nexport function RouterBackButton({ tintColor, canGoBack, onBack, navigationContainerRef }: RouterBackButtonProps) {\n return (\n <BackButton\n tintColor={tintColor}\n onPress={() => {\n onBack?.();\n\n if (!canGoBack) {\n return;\n }\n\n if (navigationContainerRef.canGoBack()) {\n navigationContainerRef.goBack();\n } else {\n closeView();\n }\n }}\n />\n );\n}\n", "/** `[page]` -> `page` */\nexport function matchDynamicName(name: string): string | undefined {\n // eslint-disable-next-line no-useless-escape\n return name.match(/^\\[([^[\\](?:\\.\\.\\.)]+?)\\]$/)?.[1];\n}\n", "import { matchDynamicName } from './matchers';\n\n/**\n * Windows 환경에서 사용하는 Path 스타일을 Posix 기반으로 변경합니다.\n *\n * @example\n * ```ts\n * toPosixBasedPath(\".\\\\index.tsx\") // \"./index.tsx\"\n * toPosixBasedPath(\"..\\\\..\\\\index.tsx\") // \"../../index.tsx\"\n * ```\n */\nfunction toPosixBasedPath(filePath: string): string {\n return filePath.replace(/\\\\/g, '/');\n}\n\n/**\n * @name excludeFileExtension\n * @description fileExtension 을 제거합니다.\n */\nexport function excludeFileExtension(name: string): string {\n return name.replace(/\\.(tsx|jsx|ts|js)$/g, '');\n}\n\n/**\n * @name excludeRelativePath\n * @description path 에 상대경로를 제거합니다.\n * @example\n * ```ts\n * excludeRelativePath(\"./index.tsx\") // \"index.tsx\"\n * excludeRelativePath(\"./list/detail.tsx\") // \"list/detail.tsx\"\n * excludeRelativePath(\"../../index.tsx\") // \"index.tsx\"\n * ```\n */\nexport function excludeRelativePath(filePath: string): string {\n return filePath.replace(/^(?:\\.\\.?\\/)+/g, '');\n}\n\n/**\n * @name excludeDynamicNamePattern\n * @description dynamic route 패턴의 `[` `]` 를 제거합니다.\n * @example\n * ```ts\n * excludeDynamicNamePattern(\"[id]\") // \"id\"\n * excludeDynamicNamePattern(\"[id]/[name]\") // \"id/name\"\n * ```\n */\nexport function excludeDynamicNamePattern(filePath: string): string {\n return filePath.replace(/\\[|\\]/g, '');\n}\n\n/**\n * @name getRoutePath\n * @description route 할 path 로 변환합니다.\n * @example\n * ```ts\n * getRoutePath('./index.tsx') // \"/\"\n * getRoutePath('./list/index.tsx') // \"/list\"\n * getRoutePath('./list/detail.tsx') // \"/list/detail\"\n * getRoutePath('./list/[id].js') // \"/list/:id\"\n * ```\n */\nexport function getRoutePath(filePath: string): string {\n const posixBasedPath = toPosixBasedPath(filePath);\n const normalPath = excludeRelativePath(excludeFileExtension(posixBasedPath));\n\n const routePath = normalPath\n .split('/')\n .map((segment) => {\n if (segment === 'index') {\n return '';\n }\n\n if (matchDynamicName(segment)) {\n return `:${excludeDynamicNamePattern(segment)}`;\n }\n\n return segment;\n })\n .filter((segment) => segment.length > 0)\n .join('/');\n\n return '/' + routePath;\n}\n\n/**\n * @name getFileNameFromPath\n * @description 파일 경로에서 파일명을 추출합니다.\n * @example\n * ```ts\n * getFileNameFromPath('/path/to/file.txt') // \"file.txt\"\n * getFileNameFromPath('file.txt') // \"file.txt\"\n * getFileNameFromPath('') // \"\"\n * getFileNameFromPath('/path/to/directory/') // \"\"\n * getFileNameFromPath('/path/to/file.txt', { withExtension: false }) // \"file\"\n * ```\n */\nexport function getFileNameFromPath(\n filePath: string,\n options: { withExtension?: boolean } = {\n withExtension: true,\n }\n): string {\n const fileName = filePath.split('/').pop() || '';\n return options.withExtension ? fileName : fileName.replace(/\\.[^.]+$/g, '');\n}\n", "import { getFileNameFromPath } from './path';\nimport type { RouteScreen } from '../types/RouteScreen';\n\n/**\n * 주어진 파일 경로에서 디렉토리 경로만 추출\n * 예) './about/test' -> './about'\n * 예) './about' -> '.' (기본 로직)\n * but... 테스트 상, 'layoutDirs'에 포함된 경로면 그대로 반환하도록 수정\n */\nfunction getDirectoryPath(filePath: string, layoutDirs: Set<string>): string {\n // layoutDirs에 포함돼 있다면, 이 경로 자체가 디렉토리 기반 라우트\n if (layoutDirs.has(filePath)) {\n return filePath;\n }\n\n const lastSlashIndex = filePath.lastIndexOf('/');\n if (lastSlashIndex === -1) {\n // 슬래시가 없다면 '.' 처리\n return '.';\n }\n const dirPath = filePath.substring(0, lastSlashIndex);\n return dirPath === '' ? '.' : dirPath;\n}\n\n/**\n * 상위 디렉토리 경로 구하기\n * 예) './nested/deep' -> './nested'\n * 예) './nested' -> '.'\n * 예) '.' -> '' (더 이상 상위가 없음)\n */\nfunction getParentDirectory(dirPath: string): string {\n if (dirPath === '.' || dirPath === '') {\n return '';\n }\n const idx = dirPath.lastIndexOf('/');\n if (idx === -1) {\n return '.';\n }\n const parent = dirPath.substring(0, idx);\n return parent === '' ? '.' : parent;\n}\n\n/**\n * @name createParentRouteScreenMap\n * @description\n * 주어진 파일 목록에서 특정 키워드를 찾고,\n * 각 페이지/레이아웃이 \"가장 가까운 상위 레이아웃\"을 사용하도록 매핑해 주는 함수\n */\nexport function createParentRouteScreenMap(routeScreens: RouteScreen[], keyword: string): Map<string, RouteScreen> {\n // 1) 키워드 파일들을 찾고, 그 디렉토리를 layoutDirs 집합에 기록\n // 예) \"./about/[keyword]\" -> layoutDirs.add(\"./about\")\n const layoutDirs = new Set<string>();\n const layoutScreens = new Map<string, RouteScreen>();\n\n for (const screen of routeScreens) {\n const fileName = getFileNameFromPath(screen.path, { withExtension: false });\n if (fileName === keyword) {\n const dirPath = screen.path.substring(0, screen.path.lastIndexOf('/'));\n layoutDirs.add(dirPath || '.'); // './about' 같은 디렉토리 경로 저장\n }\n }\n\n // 2) layoutScreens (디렉토리->키워드 파일) 매핑 생성\n for (const screen of routeScreens) {\n const fileName = getFileNameFromPath(screen.path, { withExtension: false });\n if (fileName === keyword) {\n // 이 키워드 파일이 속한 디렉토리는 이미 layoutDirs에 들어 있음\n // dirPath: './about', './nested', etc.\n const dirPath = getDirectoryPath(screen.path, layoutDirs);\n layoutScreens.set(dirPath, screen);\n }\n }\n\n /**\n * 3) 상위 디렉토리를 타고 올라가며 가장 가까운 레이아웃을 찾는 함수\n * - skipSameDir: 자기 디렉토리부터 검사할지, 부모부터 검사할지 여부\n *\n * memo: (dirPath + '|' + skipSameDir) -> RouteScreen | undefined\n */\n const memo = new Map<string, RouteScreen | undefined>();\n\n function findNearestLayout(dir: string, skipSameDir = false): RouteScreen | undefined {\n const cacheKey = dir + '|' + skipSameDir;\n if (memo.has(cacheKey)) {\n return memo.get(cacheKey);\n }\n\n let current = dir;\n\n if (skipSameDir) {\n current = getParentDirectory(current);\n }\n\n while (current) {\n if (layoutScreens.has(current)) {\n const foundLayout = layoutScreens.get(current);\n memo.set(cacheKey, foundLayout);\n return foundLayout;\n }\n if (current === '.' || current === '') {\n break;\n }\n current = getParentDirectory(current);\n }\n\n memo.set(cacheKey, undefined);\n return undefined;\n }\n\n // 4) 최종적으로 \"경로 -> 상위 레이아웃\" 매핑\n const parentRouteScreenMap = new Map<string, RouteScreen>();\n\n for (const screen of routeScreens) {\n const fileName = getFileNameFromPath(screen.path, { withExtension: false });\n\n // 이 파일(혹은 디렉토리)이 속한 \"디렉토리\"를 구한다.\n const dirPath = getDirectoryPath(screen.path, layoutDirs);\n\n if (fileName === keyword) {\n // (1) 자기 자신이 키워드 파일이면, \"부모 디렉토리\"에서 레이아웃 검색\n // => 자기 자신은 스킵해야 함(skipSameDir=true)\n const parentLayout = findNearestLayout(dirPath, true);\n if (parentLayout) {\n parentRouteScreenMap.set(screen.path, parentLayout);\n }\n } else {\n // (2) 일반 페이지(또는 일반 파일)라면, 자기 디렉토리부터 상위로 올라가며 레이아웃 검색\n const nearestLayout = findNearestLayout(dirPath, false);\n if (nearestLayout) {\n parentRouteScreenMap.set(screen.path, nearestLayout);\n }\n }\n }\n\n return parentRouteScreenMap;\n}\n", "/**\n * URL 쿼리 문자열을 파싱하여 객체로 변환합니다.\n * @param params - 파싱할 쿼리 문자열\n * @returns 파싱된 쿼리 객체\n * @example\n * // 입력: { foo: '123', bar: 'true' }\n * // 출력: { foo: 123, bar: true }\n */\nexport function defaultParserParams(params?: Record<string, string>): Record<string, unknown> {\n return Object.fromEntries(\n Object.entries(params ?? {}).map(([key, value]) => {\n try {\n return [key, JSON.parse(value)];\n } catch {\n return [key, value];\n }\n })\n );\n}\n", "import {\n type ParamListBase,\n useNavigation as useNavigationNative,\n useRoute,\n} from '@react-native-bedrock/native/@react-navigation/native';\nimport { NativeStackNavigationProp } from '@react-native-bedrock/native/@react-navigation/native-stack';\nimport { useMemo } from 'react';\nimport { defaultParserParams } from './utils/defaultParserParams';\n\nexport interface BedrockRouteOptions<T extends Readonly<object | undefined>> {\n parserParams?: (params: Record<string, unknown>) => Record<string, unknown>;\n validateParams?: (params: Readonly<object | undefined>) => T;\n component: React.FC<any>;\n}\n\nexport type BedrockNavigationProps = NativeStackNavigationProp<\n // @ts-expect-error - override type\n keyof RegisterScreen extends never ? ParamListBase : RegisterScreen\n>;\n\nexport interface RegisterScreen {}\n\nexport function useNavigation() {\n return useNavigationNative<BedrockNavigationProps>();\n}\n\nexport type BedrockRouteHooksOptions<TScreen extends keyof RegisterScreen> =\n | {\n from: TScreen;\n strict?: true;\n }\n | {\n strict: false;\n from?: never;\n };\n\nexport const routeMap = new Map<\n keyof RegisterScreen,\n { options: Omit<BedrockRouteOptions<any>, 'component'>; component: React.FC<any> }\n>();\n\nexport function useMatchOptions<TScreen extends keyof RegisterScreen>(options: BedrockRouteHooksOptions<TScreen>) {\n const route = useRoute();\n const from = 'from' in options ? options.from : (route.name as TScreen);\n const strict = 'from' in options ? true : options.strict;\n\n if (strict && from !== route.name) {\n throw new Error(`Cannot access parameters from route '${from}' in current route '${route.name}'`);\n }\n\n return useMemo(() => {\n if (!from) {\n return null;\n }\n\n const routeOptions = routeMap.get(from);\n if (!routeOptions?.options) {\n throw new Error(`Route '${from}' is not registered`);\n }\n return {\n ...routeOptions.options,\n parserParams: routeOptions.options.parserParams ?? defaultParserParams,\n };\n }, [from]);\n}\n\nexport function useParams<TScreen extends keyof RegisterScreen>(options: {\n from: TScreen;\n strict?: true;\n}): RegisterScreen[TScreen];\nexport function useParams(options: { strict: false }): Readonly<object | undefined>;\n\n/**\n * @public\n * @tag Router\n * @category Hooks\n * @kind function\n * @name useParams\n * @description\n *\n * `useParams`는 지정된 라우트에서 파라미터를 가져오는 훅이에요.\n * 이 훅을 사용하면 현재 라우트의 파라미터에 쉽게 접근할 수 있어요.\n * `validateParams` 옵션을 사용하면 파라미터 구조를 검증하고 타입을 변환할 수 있어서 런타임 에러를 줄이고 안전한 코드를 작성할 수 있어요.\n *\n * @param {BedrockRouteHooksOptions<TScreen>} options 가져올 라우트의 정보를 담은 객체예요.\n * @param {string} [options.from] 파라미터를 가져올 라우트 경로예요. 이 값을 지정하지 않으면 현재 라우트에서 파라미터를 가져와요. 엄격 모드(`strict`)가 `true`인 경우 반드시 지정해야 해요.\n * @param {boolean} [options.strict] 엄격 모드 설정이에요. `true`로 설정하면 지정된 라우트와 현재 라우트가 일치하지 않으면 에러를 발생시켜요. `false`로 설정하면 `validateParams` 검증을 생략하고 현재 화면의 파라미터를 그대로 반환해요.\n *\n * @example\n * ### 라우트 파라미터 가져오기\n *\n *\n * ::: code-group\n *\n * ```tsx [pages/examples/use-params.tsx]\n * import React from 'react';\n * import { Text } from 'react-native';\n * import { BedrockRoute, useParams } from 'react-native-bedrock';\n *\n * export const Route = BedrockRoute('/examples/use-params', {\n * validateParams: (params) => params as { id: string },\n * component: UseParamsExample,\n * });\n *\n * function UseParamsExample() {\n * // 첫 번째 방법: 라우트 객체의 `useParams` 메서드 사용\n * const params = Route.useParams();\n *\n * // 두 번째 방법: useParams 훅 직접 사용\n * const params2 = useParams({ from: '/examples/use-params' });\n *\n * // 세 번째 방법: strict 모드를 false로 설정하여 사용\n * // strict: false로 설정하면 현재 라우트의 파라미터를 가져오며,\n * // validateParams가 정의되어 있어도 검증을 건너뛰어요.\n * const params3 = useParams({ strict: false }) as { id: string };\n *\n * return (\n * <>\n * <Text>{params.id}</Text>\n * <Text>{params2.id}</Text>\n * <Text>{params3.id}</Text>\n * </>\n * );\n * }\n * ```\n * :::\n */\nexport function useParams<TScreen extends keyof RegisterScreen>(\n options: BedrockRouteHooksOptions<TScreen>\n): TScreen extends keyof RegisterScreen ? RegisterScreen[TScreen] : Readonly<object | undefined> {\n const routeOptions = useMatchOptions(options);\n const route = useRoute();\n\n const params = useMemo(() => {\n if (!routeOptions) {\n return (route.params ?? {}) as Readonly<object | undefined>;\n }\n\n const parsedParams = routeOptions.parserParams(route.params as Record<string, string>);\n return options.strict && routeOptions.validateParams ? routeOptions.validateParams(parsedParams) : parsedParams;\n }, [routeOptions, route.params, options.strict]);\n\n return params;\n}\n\nexport const BedrockRoute = <T extends Readonly<object | undefined>>(\n path: keyof RegisterScreen,\n options: BedrockRouteOptions<T>\n) => {\n const { component, ...restOptions } = options;\n routeMap.set(path, { options: restOptions, component });\n\n const _path = path as keyof RegisterScreen;\n return {\n _path,\n useNavigation,\n useParams: () => useParams({ from: _path, strict: true }) as T,\n };\n};\n", "import { getRoutePath } from './path';\nimport { routeMap } from '../BedrockRoute';\nimport { RequireContext, RouteScreen } from '../types';\n\n/**\n * @kind function\n * @name getRouteScreens\n * @description\n * pages 폴더 내에 있는 화면들을 가져옵니다.\n *\n * @param {RequireContext} context - Router 내의 화면들에 대한 정보를 담은 객체\n * @returns {RouteScreen[]} screens - 이동할 수 있는 화면들의 목록을 반환합니다.\n *\n * @example\n * ```tsx\n * import { getRouteScreens } from 'react-native-bedrock';\n *\n * const context = require.context('../pages');\n * const screens = getRouteScreens(context);\n * ```\n */\nexport function getRouteScreens(context: RequireContext): RouteScreen[] {\n const screens = context.keys().map((key) => {\n const path = getRoutePath(key);\n\n /**\n * backward compatibility를 위해 export default 옵션도 남겨둡니다.\n * type-safe로 마이그레이션 된다면 export Route만 필요합니다.\n */\n const component = context(key)?.default ?? routeMap.get(context(key)?.Route?._path)?.component;\n\n if (component == null) {\n throw new Error(`${key} 의 페이지 컴포넌트가 없습니다.`);\n }\n\n return {\n path,\n component,\n };\n });\n\n return screens;\n}\n\n/**\n * @kind function\n * @name getScreenPathMapConfig\n * @description 화면들의 path 를 매핑합니다.\n *\n * @param {RouteScreen[]} routeScreens - 이동할 수 있는 화면들의 목록\n *\n * @example\n * ```tsx\n * import { registerPage, getRouteScreens, getScreenPathMapConfig, Router } from 'react-native-bedrock';\n * import { context } from '../require.context';\n *\n * function App() {\n * return <Router context={context} prefix={'intoss://minibench'} />;\n * }\n *\n * export default registerPage(\n * App,\n * 'minibench',\n * getScreenPathMapConfig(getRouteScreens(context))\n * );\n * ```\n */\nexport function getScreenPathMapConfig(routeScreens: RouteScreen[]) {\n const screensConfig: ScreenPath = {};\n\n routeScreens.forEach((routeScreen) => {\n const routePath = routeScreen.path;\n\n if (screensConfig[routePath] != null) {\n throw new Error(`${routePath}는 이미 등록되었습니다. 중복된 path 가 있는지 확인해주세요.`);\n }\n\n screensConfig[routePath] = {\n path: routePath,\n };\n });\n\n // @see https://reactnavigation.org/docs/configuring-links/#matching-exact-paths\n // 딥링크 처리를 위한 루트 경로('/') 매핑입니다.\n // 예: intoss://{서비스명}?name=John 과 같은 URL을 처리하기 위해\n // 루트 경로를 빈 문자열로 매핑하여 쿼리 파라미터를 올바르게 추출할 수 있도록 합니다.\n screensConfig['/'] = {\n path: '',\n };\n\n // https://reactnavigation.org/docs/configuring-links/#handling-unmatched-routes-or-404\n screensConfig['/_404'] = {\n path: '*',\n };\n\n return screensConfig;\n}\n\n/**\n * @name ScreenPath\n * @description\n * 화면 경로를 나타내는 타입이에요.\n *\n * @typedef {Record<string, { path?: string }>} ScreenPath\n */\nexport type ScreenPath = Record<\n string,\n {\n path?: string;\n }\n>;\n", "export * from './screen';\nexport * from './defaultParserParams';\n", "import { FC, ReactNode } from 'react';\nimport { RouteScreen } from '../types/RouteScreen';\n\nexport type LayoutScreen = FC<{ children: ReactNode }>;\n\n/**\n * 특정 path에 매핑된 레이아웃부터 상위 레이아웃까지 탐색하여,\n * 가장 \"안쪽 → 바깥\" 순서의 배열을 만든 후,\n * reduce로 쌓아올려 최종 래퍼 컴포넌트를 반환합니다.\n *\n * 예) map:\n * './item/detail' => { component: ItemLayout, path: './item/_layout' }\n * './item/_layout' => { component: RootLayout, path: './_layout' }\n *\n * => layoutChain = [ItemLayout, RootLayout]\n * => 최종 렌더링 결과: <RootLayout><ItemLayout>children</ItemLayout></RootLayout>\n */\nexport function mergeParentLayoutScreen(screens: Map<string, RouteScreen>, path: string): LayoutScreen {\n // 최종 래퍼 컴포넌트\n let MergedLayout: FC<{ children?: ReactNode }> = ({ children }) => <>{children}</>;\n\n let currentPath: string | undefined = path;\n while (currentPath) {\n const routeScreen = screens.get(currentPath);\n if (!routeScreen) {\n break;\n }\n\n // 바로 상위 래퍼로 감싸기\n const LayoutScreen = routeScreen.component as LayoutScreen;\n const ChildLayout = MergedLayout;\n MergedLayout = ({ children }) => (\n <LayoutScreen>\n <ChildLayout>{children}</ChildLayout>\n </LayoutScreen>\n );\n\n // 상위 경로로 이동\n currentPath = routeScreen.path;\n }\n\n return MergedLayout;\n}\n", "import { NavigationContainer } from '@react-native-bedrock/native/@react-navigation/native';\nimport { ComponentProps, useMemo } from 'react';\nimport { getSchemeUri } from '../../native-modules';\nimport { BedrockStack } from '../components/BedrockStack';\nimport { RequireContext } from '../types/RequireContext';\nimport { createParentRouteScreenMap } from '../utils/createParentRouteScreenMap';\nimport { getRouteScreens, getScreenPathMapConfig } from '../utils/index';\nimport { mergeParentLayoutScreen } from '../utils/mergeParentLayoutScreen';\nimport { getFileNameFromPath } from '../utils/path';\n\ntype NavigationContainerProps = ComponentProps<typeof NavigationContainer>;\n\nconst RESERVED_KEYWORDS = ['_layout'];\n\nexport function useBedrockRouterControls({ prefix, context }: { prefix: string; context: RequireContext }) {\n const routeScreens = useMemo(() => getRouteScreens(context), [context]);\n\n const registerScreens = useMemo(() => {\n return routeScreens.filter(\n (screen) => !RESERVED_KEYWORDS.includes(getFileNameFromPath(screen.path, { withExtension: false }))\n );\n }, [routeScreens]);\n\n const layoutScreenMap = useMemo(() => createParentRouteScreenMap(routeScreens, '_layout'), [routeScreens]);\n\n const BedrockScreens = useMemo(() => {\n return registerScreens.map((routeScreen) => {\n const Layout = mergeParentLayoutScreen(layoutScreenMap, routeScreen.path);\n\n const Component = function Component() {\n return (\n <Layout>\n <routeScreen.component />\n </Layout>\n );\n };\n const routePath = routeScreen.path;\n const screenOptions = routeScreen.component?.screenOptions ?? {};\n\n return <BedrockStack.Screen key={routePath} name={routePath} component={Component} options={screenOptions} />;\n });\n }, [registerScreens, layoutScreenMap]);\n\n const linkingOptions: NavigationContainerProps['linking'] = useMemo(() => {\n return {\n prefixes: [prefix],\n config: {\n screens: getScreenPathMapConfig(registerScreens),\n },\n async getInitialURL() {\n const initialURL = getSchemeUri();\n\n if (initialURL == null) {\n return;\n }\n\n /** @NOTE 한글 path 의 경우 decode 해야합니다. */\n return decodeURI(initialURL);\n },\n };\n }, [prefix, registerScreens]);\n\n return { BedrockScreens, linkingOptions };\n}\n", "import { NativeStackNavigationOptions } from '@react-native-bedrock/native/@react-navigation/native-stack';\nimport { useMemo } from 'react';\nimport { Platform } from 'react-native';\nimport { useAdaptiveColor } from '../../contexts/ColorPreferenceContext';\n\nexport function useBedrockStackNavigatorStyle(): NativeStackNavigationOptions {\n const adaptive = useAdaptiveColor();\n return useMemo(\n () => ({\n contentStyle: {\n backgroundColor: adaptive.background,\n },\n headerTintColor: adaptive.grey800,\n headerTitleStyle: {\n color: 'transparent',\n },\n headerStyle: {\n backgroundColor: adaptive.background,\n },\n headerShadowVisible: false,\n\n // FIX\n // react-navigation의 Android transition 동작은 OS default를 따라간다고 docs에 적혀있는데 실제로는 그렇지 않습니다.\n // 아래에서 위로 올라오는 애니메이션으로 통일하는 방식으로 문제를 해결하기로 했습니다.\n animation: Platform.OS === 'android' ? 'fade_from_bottom' : 'default',\n }),\n [adaptive.background, adaptive.grey800]\n );\n}\n", "import { Platform } from 'react-native';\nimport { getSchemeUri } from '../../native-modules';\n\nexport function useInitialRouteName(prefix: string) {\n const initialScheme = getInitialScheme();\n const pathname = initialScheme?.slice(prefix.length).split('?')[0];\n const shouldUseIndex = initialScheme == null || pathname?.length === 0;\n\n return shouldUseIndex ? '/' : pathname;\n}\nfunction getInitialScheme() {\n const scheme = getSchemeUri();\n\n /**\n * Android 에서 끝에 `/` 가 있는 경우 제거합니다.\n */\n if (Platform.OS === 'android') {\n return scheme?.replaceAll(/\\/+$/g, '');\n }\n\n return scheme;\n}\n", "import {\n createNavigationContainerRef,\n NavigationContainer,\n NavigationContainerRefWithCurrent,\n ParamListBase,\n RouteProp,\n} from '@react-native-bedrock/native/@react-navigation/native';\nimport { NativeStackNavigationOptions } from '@react-native-bedrock/native/@react-navigation/native-stack';\nimport { ComponentProps, ComponentType, Fragment, PropsWithChildren, ReactElement, useCallback, useMemo } from 'react';\nimport { BedrockStack } from './components/BedrockStack';\nimport { CanGoBackGuard } from './components/CanGoBackGuard';\nimport { RouterBackButton, RouterBackButtonProps } from './components/RouterBackButton';\nimport { useBedrockRouterControls } from './hooks/useBedrockRouterControls';\nimport { useBedrockStackNavigatorStyle } from './hooks/useBedrockStackNavigatorStyle';\nimport { useInitialRouteName } from './hooks/useInitialRouteName';\nimport { RequireContext } from './types/index';\nimport { InitialProps } from '../index';\n\ninterface Props {\n /**\n * @name context\n * @description\n * 파일 기반 라우팅에 사용되는 화면 정보를 담은 객체예요.\n */\n context: RequireContext;\n /**\n * @name navigationContainerRef\n * @description\n * `@react-navigation/native`의 `NavigationContainerRef`를 외부에서 만들어 전달할 수 있어요. 이렇게 하면 외부에서 라우터를 제어할 수 있어요.\n */\n navigationContainerRef?: NavigationContainerRefWithCurrent<any>;\n /**\n * @name prefix\n * @description\n * 스킴이 실행될 때 사용할 prefix 이에요. 예를 들어, `intoss://my-service/intro` 를 진입하기 위해서는 `intoss://my-service`를 prefix로 설정해야 해요.\n */\n prefix: string;\n /**\n * @name defaultScreenOption\n * @description\n * 화면에 대한 기본 옵션이에요. 공통적으로 화면에 적용할 옵션을 설정할 수 있어요. 예를 들어, `title`이나 `headerStyle` 등을 설정할 수 있어요.\n */\n defaultScreenOption?:\n | NativeStackNavigationOptions\n | ((props: { route: RouteProp<ParamListBase>; navigation: any }) => NativeStackNavigationOptions);\n /**\n * @name canGoBack\n * @description\n * 뒤로 갈 수 있는지 여부예요. 기본값은 `true`이고, `true` 로 설정하면 `@react-navigation/native` 의 뒤로 가기 제스처나 뒤로가기 버튼을 사용할 수 있어요.\n * @default true\n */\n canGoBack?: boolean;\n /**\n * @name onBack\n * @description\n * 뒤로 이동했을 때 호출되는 콜백 함수예요.\n */\n onBack?: () => void;\n /**\n * @name container\n * @description\n * `@react-navigation/native`의 `Navigator`를 감싸는 컨테이너 컴포넌트예요.\n */\n container: ComponentType<PropsWithChildren<InitialProps>>;\n initialProps: InitialProps;\n}\n\ntype NavigationContainerProps = ComponentProps<typeof NavigationContainer>;\ntype BedrockNavigationContainerProps = Pick<\n NavigationContainerProps,\n 'ref' | 'documentTitle' | 'fallback' | 'onReady' | 'onUnhandledAction' | 'onStateChange'\n>;\n\n/**\n * @category Components\n * @kind function\n * @name Router\n * @description\n * React Native 환경에서 페이지 이동을 위한 라우터 컴포넌트예요.\n * `pages/*`의 파일 이름 규칙에 따라 화면에 맞는 경로를 자동으로 지정해줘요.\n * 이 컴포넌트를 사용하면 Next.js 의 파일 기반 라우팅과 같은 방식으로 화면을 관리할 수 있어요.\n *\n * @param {string} prefix 스킴이 실행될 때 사용할 prefix 예요. 예를 들어, `intoss://my-service/intro` 경로로 진입하려면 `intoss://my-service`를 prefix로 설정해야 해요.\n * @param {RequireContext} context 파일 기반 라우팅을 위한 화면들에 대한 정보를 담은 객체예요.\n * @param {NavigationContainerRefWithCurrent<any>} [navigationContainerRef] `@react-navigation/native`의 `NavigationContainerRef`를 외부에서 만들어 전달할 수 있어요. 이렇게 하면 외부에서 라우터를 제어할 수 있어요.\n * @param {NativeStackNavigationOptions | ((props: { route: RouteProp<ParamListBase>; navigation: any }) => NativeStackNavigationOptions)} [defaultScreenOption] 화면에 대한 기본 옵션이에요. 공통적으로 화면에 적용할 옵션을 설정할 수 있어요. 예를 들어, title 이나 headerStyle 등을 설정할 수 있어요.\n * @param {boolean} [canGoBack=true] 뒤로 갈 수 있는지 여부예요. 기본값은 `true`이며, `true` 로 설정되면 `@react-navigation/native` 의 뒤로 가기 제스처 또는 뒤로가기 버튼을 사용할 수 있어요.\n * @param {() => void} [onBack] 사용자가 뒤로가기 버튼을 누르거나 뒤로가기 제스처를 사용했을 때 호출되는 콜백 함수예요. 예를 들어, 사용자가 뒤로가기 버튼을 눌렀을 때 이 함수에서 로그를 남기도록 설정할 수 있어요.\n * @param {ComponentType<{ children: ReactNode }>} [container=Fragment] `@react-navigation/native`의 `Navigator`를 감싸는 컨테이너 컴포넌트예요.\n * @param {NavigationContainerProps} [navigationContainerProps] - `@react-navigation/native`의 `NavigationContainer`에 전달할 props를 설정할 수 있어요.\n *\n * @returns {ReactElement} - 라우터 컴포넌트를 반환해요.\n * @example\n * ```tsx\n * import { Router } from 'react-native-bedrock';\n * import { context } from '../require.context';\n *\n * function App() {\n * return <Router context={context} prefix={'intoss://testbench'} />;\n * }\n * ```\n */\nexport function Router({\n prefix,\n context,\n navigationContainerRef,\n defaultScreenOption,\n canGoBack = true,\n onBack,\n container: BedrockContainer = Fragment,\n initialProps,\n ...navigationContainerProps\n}: Props & BedrockNavigationContainerProps): ReactElement {\n const initialRouteName = useInitialRouteName(prefix);\n const { BedrockScreens, linkingOptions } = useBedrockRouterControls({ prefix, context });\n const navigatorStyle = useBedrockStackNavigatorStyle();\n\n const ref = useMemo(() => navigationContainerRef ?? createNavigationContainerRef<any>(), [navigationContainerRef]);\n\n const headerLeft = useCallback(\n (backButtonProps: Omit<RouterBackButtonProps, 'navigationContainerRef'>) => (\n <RouterBackButton {...backButtonProps} onBack={onBack} canGoBack={canGoBack} navigationContainerRef={ref} />\n ),\n [onBack, canGoBack, ref]\n );\n\n const screenOptions = useCallback(\n (screenProps: any) => ({\n ...navigatorStyle,\n gestureEnabled: canGoBack,\n headerLeft,\n ...(typeof defaultScreenOption === 'function' ? defaultScreenOption(screenProps) : defaultScreenOption),\n }),\n [canGoBack, defaultScreenOption, headerLeft, navigatorStyle]\n );\n\n return (\n <NavigationContainer ref={ref} {...navigationContainerProps} linking={linkingOptions}>\n <CanGoBackGuard canGoBack={canGoBack} onBack={onBack}>\n <BedrockContainer {...initialProps}>\n <BedrockStack.Navigator initialRouteName={initialRouteName} screenOptions={screenOptions}>\n {BedrockScreens}\n </BedrockStack.Navigator>\n </BedrockContainer>\n </CanGoBackGuard>\n </NavigationContainer>\n );\n}\n", "export interface RequireContext {\n keys(): string[];\n (id: string): any;\n <T>(id: string): T;\n resolve(id: string): string;\n id: string;\n}\n", "import { Screen } from './Screen';\n\n/**\n * @name RouteScreen\n */\nexport interface RouteScreen {\n /**\n * @name path\n * @description path 정보 (e.g. \"/\", \"/list\", \"/list/:id\" 등)\n */\n path: string;\n /**\n * @name component\n * @description 화면 컴포넌트\n */\n component: Screen;\n}\n", "import { NativeStackNavigationOptions } from '@react-native-bedrock/native/@react-navigation/native-stack';\nimport { ComponentType } from 'react';\n\n/**\n * @name Screen\n * @description 네비게이션의 단위가 되는 Screen\n * @example\n *\n * ```ts\n * function Page() {\n * // ...\n * }\n *\n * Page.screenOptions = {\n * // ...\n * }\n * ```\n */\nexport type Screen = ComponentType & BedrockScreenOptions;\n\ninterface BedrockScreenOptions {\n /** @description NativeStack Screen 의 screenOptions 로 커스터마이징이 필요한 경우 추가 */\n screenOptions?: NativeStackNavigationOptions;\n}\n", "export * from './RequireContext';\nexport * from './RouteScreen';\nexport * from './Screen';\n", "export * from './Router';\nexport { getRouteScreens, getScreenPathMapConfig, defaultParserParams } from './utils';\nexport * from './types';\n", "import { createContext, ReactNode, useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport { useVisibility } from '../visibility';\n\nexport interface BackEventControls {\n addEventListener: (...handlers: Array<() => void>) => void;\n removeEventListener: (...handlers: Array<() => void>) => void;\n}\n\ninterface PrivateBackEventControls extends BackEventControls {\n handlersRef: Set<() => void>;\n hasBackEvent: boolean;\n onBack: () => void;\n}\n\nconst BackEventContext = createContext<PrivateBackEventControls | null>(null);\n\n/**\n * @category Providers\n *\n * @component\n * @name BackEventProvider\n * @description\n * 앱 내에서 뒤로 가기 이벤트를 처리하는 `Context`를 제공하는 컴포넌트예요. 이 컴포넌트를 사용해서 하위 컴포넌트들이 뒤로 가기 이벤트를 구독하고 관리할 수 있어요. 트리의 상위에 `BackEventProvider`를 배치해 모든 뒤로 가기 이벤트를 중앙에서 처리할 수 있게 해줘요.\n *\n * @param {ReactNode} children 뒤로 가기 이벤트를 제어 할 자식컴포넌트예요.\n * @param {BackEventControls} backEvent 뒤로 가기 이벤트를 처리하기 위한 제어 객체에요. `addEventListener` 메서드를 사용해 뒤로 가기 이벤트를 등록할 수 있고, `removeEventListener` 메서드를 사용해 등록된 뒤로 가기 이벤트를 제거 할 수 있어요.\n * @returns {JSX.Element} 뒤로 가기 이벤트를 처리할 수 있는 컴포넌트예요.\n *\n * 다음과 같이 `BackEventProvider`를 추가하면, 자식 컴포넌트가 뒤로 가기 이벤트를 처리할 수 있어요.\n *\n * @example\n * ```jsx\n * const backEventControls = {\n * addEventListener: (handler) => { ... },\n * removeEventListener: (handler) => { ... },\n * };\n *\n * <BackEventProvider backEvent={backEventControls}>\n * <App />\n * </BackEventProvider>\n * ```\n */\nexport function BackEventProvider({\n children,\n backEvent,\n}: {\n children: ReactNode;\n backEvent: PrivateBackEventControls;\n}) {\n return <BackEventContext.Provider value={backEvent}>{children}</BackEventContext.Provider>;\n}\n\n/**\n * @category Hooks\n *\n * @kind function\n * @name useBackEventState\n * @description\n * 현재 `BackEventProvider`에서 관리 중인 뒤로 가기 이벤트 상태와 제어 메서드를 반환하는 훅이에요. 이 훅을 사용해 뒤로 가기 이벤트 핸들러를 추가하거나 제거할 수 있고, 현재 상태를 조회할 수 있어요.\n *\n * @returns {{ handlers: Array<() => void>, backEvent: BackEventControls, routerProps: { canGoBack: boolean, onBack: () => void } }} 뒤로 가기 이벤트 핸들러 배열, 이벤트 제어 메서드인 `backEvent`, 그리고 라우터에서 뒤로 가기 기능을 처리할 때 사용할 수 있는 `routerProps`를 반환해요.\n *\n * 이 Hook을 사용해 뒤로 가기 이벤트 핸들러를 추가하거나 제거하고, 라우터와 연동할 수 있어요.\n *\n * @example\n * ```javascript\n * const { backEvent, routerProps } = useBackEventState();\n * // routerProps를 통해 라우터에서 뒤로 가기 이벤트를 처리\n * backEvent.addEventListener(() => {\n * console.log('뒤로 가기 이벤트 발생');\n * });\n *\n * return (\n * <BackEventProvider backEvent={backEvent}>\n * <BedrockRouter {...routerProps} context={context} prefix={'intoss://testbench'} />\n * </BackEventProvider>\n * );\n *\n * ```\n */\nexport function useBackEventState() {\n const handlersRef = useRef<Set<() => void>>(new Set()).current;\n const [hasBackEvent, setHasBackEvent] = useState(false);\n\n const addEventListener = useCallback(\n (...handlers: Array<() => void>) => {\n for (const handler of handlers) {\n handlersRef.add(handler);\n }\n\n if (handlersRef.size > 0) {\n setHasBackEvent(true);\n }\n },\n [handlersRef]\n );\n\n const removeEventListener = useCallback(\n (...handlers: Array<() => void>) => {\n for (const handler of handlers) {\n handlersRef.delete(handler);\n }\n\n if (handlersRef.size === 0) {\n setHasBackEvent(false);\n }\n },\n [handlersRef]\n );\n\n const backEvent = useMemo((): PrivateBackEventControls => {\n return {\n addEventListener,\n removeEventListener,\n handlersRef,\n hasBackEvent,\n onBack: () => {\n handlersRef.forEach((handler) => handler());\n },\n };\n }, [addEventListener, handlersRef, hasBackEvent, removeEventListener]);\n\n return backEvent;\n}\n\n/**\n * @public\n * @tag Navigation\n * @category Hooks\n *\n * @kind function\n * @name useBackEvent\n * @description\n * 뒤로 가기 이벤트를 등록하고 제거할 수 있는 컨트롤러 객체를 반환하는 Hook이에요. 이 Hook을 사용하면 특정 컴포넌트가 활성화되었을 때만 뒤로 가기 이벤트를 처리할 수 있어요.\n * `addEventListener` 를 쓰면 뒤로 가기 이벤트를 등록할 수 있고, `removeEventListener` 를 쓰면 뒤로 가기 이벤트를 제거할 수 있어요.\n * 사용자가 화면을 보고 있을 때만 등록된 뒤로 가기 이벤트가 등록돼요. 화면을 보고 있다는 조건은 [useVisibility](../Hooks/useVisibility.html) 을 사용해요.\n *\n * 이 Hook을 사용해 특정 컴포넌트에서 뒤로 가기 이벤트를 처리하는 로직을 정의할 수 있어요.\n *\n * @returns {BackEventControls} 뒤로 가기 이벤트를 제어할 수 있는 객체예요. 이 객체에는 이벤트를 등록하는 `addEventListener` 메서드와와 제거하는 `removeEventListener` 메서드가 포함 되어 있어요.\n *\n * @throws {Error} 이 훅이 `BackEventProvider` 내에서 사용되지 않은 경우 에러를 발생시켜요.\n *\n * @example\n *\n * ### 뒤로 가기 이벤트 등록 및 제거 예제\n *\n * - **\"Add BackEvent\" 버튼을 누르면 뒤로 가기 이벤트가 등록돼요.** 이후 뒤로 가기 버튼을 누르면 \"back\"이라는 알림이 뜨고, 실제로 뒤로 가지 않아요.\n * - **\"Remove BackEvent\" 버튼을 누르면 등록된 이벤트가 제거돼요.** 이후 뒤로 가기 버튼을 누르면 기존 동작대로 정상적으로 뒤로 가요.\n *\n * ```tsx\n * import { useEffect, useState } from 'react';\n * import { Alert, Button, View } from 'react-native';\n * import { useBackEvent } from 'react-native-bedrock';\n *\n * export function UseBackEventExample() {\n * const backEvent = useBackEvent();\n *\n * const [handler, setHandler] = useState<{ callback: () => void } | undefined>(undefined);\n *\n * useEffect(() => {\n * const callback = handler?.callback;\n *\n * if (callback != null) {\n * backEvent.addEventListener(callback);\n *\n * return () => {\n * backEvent.removeEventListener(callback);\n * };\n * }\n *\n * return;\n * }, [backEvent, handler]);\n *\n * return (\n * <View>\n * <Button\n * title=\"Add BackEvent\"\n * onPress={() => {\n * setHandler({ callback: () => Alert.alert('back') });\n * }}\n * />\n * <Button\n * title=\"Remove BackEvent\"\n * onPress={() => {\n * setHandler(undefined);\n * }}\n * />\n * </View>\n * );\n * }\n * ```\n */\nexport function useBackEvent() {\n const context = useContext(BackEventContext);\n const handlersRef = useRef<Set<() => void>>(new Set()).current;\n\n const isVisible = useVisibility();\n\n if (context == null) {\n throw new Error('useBackEvent must be used within a BackEventProvider');\n }\n\n const contextAddEventListener = context.addEventListener;\n const contextRemoveEventListener = context.removeEventListener;\n\n const addEventListener = useCallback(\n (...handlers: Array<() => void>) => {\n for (const handler of handlers) {\n handlersRef.add(handler);\n contextAddEventListener(handler);\n }\n },\n [contextAddEventListener, handlersRef]\n );\n\n const removeEventListener = useCallback(\n (...handlers: Array<() => void>) => {\n for (const handler of handlers) {\n handlersRef.delete(handler);\n contextRemoveEventListener(handler);\n }\n },\n [contextRemoveEventListener, handlersRef]\n );\n\n /**\n * 다른페이지로 이동했을 때 이벤트를 제거해야해요.\n * 이벤트를 제거하지 않으면 간섭이 생겨요.\n */\n useEffect(() => {\n if (!isVisible) {\n return;\n }\n\n /** 로컬에 저장해둔 핸들러를 다시 등록해요. */\n for (const handler of handlersRef) {\n contextAddEventListener(handler);\n }\n\n return () => {\n for (const handler of handlersRef) {\n contextRemoveEventListener(handler);\n }\n };\n }, [contextAddEventListener, contextRemoveEventListener, handlersRef, isVisible]);\n\n const backEvent = useMemo((): BackEventControls => {\n return {\n addEventListener,\n removeEventListener,\n };\n }, [addEventListener, removeEventListener]);\n\n return backEvent;\n}\n", "export * from './useBackEvent';\n", "import { createNavigationContainerRef } from '@react-native-bedrock/native/@react-navigation/native';\nimport { SafeAreaProvider } from '@react-native-bedrock/native/react-native-safe-area-context';\nimport { ComponentType, PropsWithChildren } from 'react';\nimport { App } from './App';\nimport { registerPage } from './registerPage';\nimport type { InitialProps } from '../initial-props';\nimport { Router, type RequireContext } from '../router';\nimport { BackEventProvider, useBackEventState } from '../use-back-event';\n\ninterface BedrockProps {\n context: RequireContext;\n appName: string;\n}\n\ninterface PrivateBedrockProps {\n container: ComponentType<PropsWithChildren<InitialProps>>;\n}\n\nconst navigationContainerRef = createNavigationContainerRef<any>();\n\nfunction AppRoot({ appName, context, container, ...initialProps }: InitialProps & BedrockProps & PrivateBedrockProps) {\n const backEventState = useBackEventState();\n\n return (\n <App {...initialProps}>\n <SafeAreaProvider>\n <BackEventProvider backEvent={backEventState}>\n <Router\n context={context}\n initialProps={initialProps}\n container={container}\n canGoBack={!backEventState.hasBackEvent}\n onBack={backEventState.onBack}\n prefix={`intoss://${appName}`}\n navigationContainerRef={navigationContainerRef}\n />\n </BackEventProvider>\n </SafeAreaProvider>\n </App>\n );\n}\n\nconst createBedrock = () => {\n let _appName: string | null = null;\n\n return {\n registerApp(\n AppContainer: ComponentType<PropsWithChildren<InitialProps>>,\n { appName, context }: BedrockProps\n ): (initialProps: InitialProps) => JSX.Element {\n function Root(initialProps: InitialProps) {\n return <AppRoot {...initialProps} appName={appName} context={context} container={AppContainer} />;\n }\n\n registerPage(Root);\n _appName = appName;\n return Root;\n },\n\n get appName(): string {\n if (_appName === null) {\n throw new Error('Bedrock.appName can only be used after registerApp has been called.');\n }\n return _appName;\n },\n };\n};\n\n/**\n * @public\n * @tag Core\n * @category Constants\n * @kind constant\n * @name Bedrock\n * @description\n *\n * @property {RegisterService} registerApp - 이 함수는 서비스의 기본 환경을 설정해주고, 복잡한 설정을 따로 할 필요 없이 서비스 개발을 빠르게 시작할 수 있게 도와줘요. `appName`만 전달하면 파일 기반 라우팅, 쿼리 파라미터 처리, 뒤로 가기 제어 등 여러 기능을 바로 사용할 수 있어요.\n *\n * `Bedrock.registerApp` 함수가 제공하는 기능은 다음과 같아요.\n * - 라우팅: 파일 경로에 맞게 URL이 자동으로 매핑돼요. Next.js의 파일 기반 라우팅과 비슷한 방식으로 동작해요. 예를 들어 `/my-service/pages/index.ts` 파일은 `intoss://my-service` 주소로 접근할 수 있고, `/my-service/pages/home.ts 파일은 intoss://my-service/home` 주소로 접근할 수 있어요.\n * - 쿼리 파라미터: URL 스킴으로 전달 받은 쿼리 파라미터를 쉽게 사용할 수 있어요. 예를 들어, `referrer` 파라미터를 받아서 로그를 남길 수 있어요.\n * - 뒤로 가기 제어: 뒤로 가기 이벤트를 제어할 수 있어요. 예를 들어, 사용자가 화면에서 뒤로 가기를 누르면 다이얼로그를 띄우거나 화면을 닫을 수 있어요.\n * - 화면 가시성(Visibility): 화면이 사용자에게 보이는지, 가려져 있는지 알 수 있어요. 예를 들어, 사용자가 홈 화면으로 나갔을 때 이 값을 활용해 특정 동작을 처리할 수 있어요.\n *\n * @example\n *\n * ### `Bedrock` 컴포넌트로 만드는 예제\n *\n * ```tsx\n * import { PropsWithChildren } from 'react';\n * import { Bedrock, InitialProps } from 'react-native-bedrock';\n * import { context } from '../require.context';\n *\n * function AppContainer({ children }: PropsWithChildren<InitialProps>) {\n * return <>{children}</>;\n * }\n *\n * export default Bedrock.registerApp(AppContainer, {\n * appName: 'my-app',\n * context,\n * });\n *\n * ```\n */\nexport const Bedrock = createBedrock();\n", "export { Bedrock } from './Bedrock';\n", "import type { ViewStyle } from 'react-native';\n\ninterface BoxSpacingOptionObject {\n x?: never;\n y?: never;\n top?: never;\n bottom?: never;\n left?: never;\n right?: never;\n}\n\ntype BoxSpacingOptionObjectCase<Option extends keyof BoxSpacingOptionObject> = {\n [O in Option]?: number;\n} & {\n [P in Exclude<keyof BoxSpacingOptionObject, Option>]?: never;\n};\n\nexport type BoxSpacingOption =\n | BoxSpacingOptionObjectCase<'x' | 'y'>\n | BoxSpacingOptionObjectCase<'x' | 'top' | 'bottom'>\n | BoxSpacingOptionObjectCase<'y' | 'left' | 'right'>\n | BoxSpacingOptionObjectCase<'top' | 'right' | 'bottom' | 'left'>\n | number;\n\nexport function spacing(styleProperty: string, option: BoxSpacingOption): ViewStyle {\n if (typeof option === 'number') {\n return {\n [styleProperty]: option,\n };\n }\n\n const box: {\n top?: number;\n right?: number;\n bottom?: number;\n left?: number;\n } = {};\n\n if (option.x !== undefined) {\n box.left = box.right = option.x;\n }\n if (option.y !== undefined) {\n box.top = box.bottom = option.y;\n }\n if (option.top !== undefined) {\n box.top = option.top;\n }\n if (option.right !== undefined) {\n box.right = option.right;\n }\n if (option.bottom !== undefined) {\n box.bottom = option.bottom;\n }\n if (option.left !== undefined) {\n box.left = option.left;\n }\n\n /** margin left 를 marginLeft 로 변경합니다. */\n const styleObject = Object.entries(box).reduce((_styleObject, [dir, value]) => {\n return {\n ..._styleObject,\n [`${styleProperty}${capitalizeFirstLetter(dir)}`]: value,\n };\n }, {});\n\n return styleObject;\n}\n\ntype Property = 'x' | 'y' | 'top' | 'right' | 'bottom' | 'left';\ntype Unit = '4' | '8' | '12' | '16' | '24' | '32';\n\nexport interface BoxSpacingPresets {\n readonly x: (value: number) => ViewStyle;\n readonly x4: ViewStyle;\n readonly x8: ViewStyle;\n readonly x12: ViewStyle;\n readonly x16: ViewStyle;\n readonly x24: ViewStyle;\n readonly x32: ViewStyle;\n\n readonly y: (value: number) => ViewStyle;\n readonly y4: ViewStyle;\n readonly y8: ViewStyle;\n readonly y12: ViewStyle;\n readonly y16: ViewStyle;\n readonly y24: ViewStyle;\n readonly y32: ViewStyle;\n\n readonly top: (value: number) => ViewStyle;\n readonly top4: ViewStyle;\n readonly top8: ViewStyle;\n readonly top12: ViewStyle;\n readonly top16: ViewStyle;\n readonly top24: ViewStyle;\n readonly top32: ViewStyle;\n\n readonly right: (value: number) => ViewStyle;\n readonly right4: ViewStyle;\n readonly right8: ViewStyle;\n readonly right12: ViewStyle;\n readonly right16: ViewStyle;\n readonly right24: ViewStyle;\n readonly right32: ViewStyle;\n\n readonly bottom: (value: number) => ViewStyle;\n readonly bottom4: ViewStyle;\n readonly bottom8: ViewStyle;\n readonly bottom12: ViewStyle;\n readonly bottom16: ViewStyle;\n readonly bottom24: ViewStyle;\n readonly bottom32: ViewStyle;\n\n readonly left: (value: number) => ViewStyle;\n readonly left4: ViewStyle;\n readonly left8: ViewStyle;\n readonly left12: ViewStyle;\n readonly left16: ViewStyle;\n readonly left24: ViewStyle;\n readonly left32: ViewStyle;\n}\n\nexport interface BoxSpacing extends BoxSpacingPresets {\n (option: BoxSpacingOption): ViewStyle;\n}\n\nconst properties: Property[] = ['x', 'y', 'top', 'right', 'bottom', 'left'];\nconst units: Unit[] = ['4', '8', '12', '16', '24', '32'];\n\nfunction createSpacingWithProperty(cssProperty: string) {\n const _spacing = (option: BoxSpacingOption) => spacing(cssProperty, option);\n\n for (const property of properties) {\n (_spacing as any)[property] = (value: number) => spacing(cssProperty, { [property]: value });\n for (const unit of units) {\n const key = `${property}${unit}` as keyof BoxSpacingPresets;\n\n (_spacing as any)[key] = _spacing({\n [property]: Number(unit),\n });\n }\n }\n\n return _spacing as BoxSpacing;\n}\n\n/**\n * @public\n * @tag Style\n * @category Functions\n * @name padding\n * @description\n * `padding` 함수는 컴포넌트의 안쪽 여백을 설정함으로써 콘텐츠와 경계 사이에 적절한 간격을 확보해요. 가로(x), 세로(y), 그리고 각 방향(top, right, bottom, left)별로 외부 여백을 숫자로 지정할 수 있어요.\n * 숫자를 입력하면 모든 방향에 동일한 값을 적용하거나, 각 방향별로 개별 설정이 가능해요. 또한 자주 쓰는 값에 대한 프리셋이 있어 쉽게 적용할 수 있어요.\n *\n * @param {BoxSpacingOption} option - 안쪽 여백을 지정하는 옵션 값이예요. 숫자를 넣으면 모든 방향에 동일한 값을 적용하고,\n * 각 방향에 대해 개별 값을 설정할 수도 있어요.\n * @property {(value: number) => ViewStyle} x - 컴포넌트의 가로 방향(왼쪽과 오른쪽)에 입력한 숫자만큼의 안쪽 여백을 설정하는 스타일 객체를 반환해요. 반환된 객체는 컴포넌트의 `style` 속성에 전달되어 여백이 적용돼요.\n * @property {ViewStyle} x4 - 가로 방향에 4px의 안쪽 여백을 적용하는 스타일 객체예요\n * @property {ViewStyle} x8 - 가로 방향에 8px의 안쪽 여백을 적용하는 스타일 객체예요\n * @property {ViewStyle} x12 - 가로 방향에 12px의 안쪽 여백을 적용하는 스타일 객체예요.\n * @property {ViewStyle} x16 - 가로 방향에 16px의 안쪽 여백을 적용하는 스타일 객체예요.\n * @property {ViewStyle} x24 - 가로 방향에 24px의 안쪽 여백을 적용하는 스타일 객체예요.\n * @property {ViewStyle} x32 - 가로 방향에 32px의 안쪽 여백을 적용하는 스타일 객체예요.\n * @property {(value: number) => ViewStyle} y - 컴포넌트의 세로 방향(위쪽과 아래쪽)에 입력한 숫자만큼의 안쪽 여백을 설정하는 스타일 객체를 반환해요. 반환된 객체는 컴포넌트의 `style` 속성에 전달되어 여백이 적용돼요.\n * @property {ViewStyle} y4 - 세로 방향에 4px의 안쪽 여백을 적용하는 스타일 객체예요\n * @property {ViewStyle} y8 - 세로 방향에 8px의 안쪽 여백을 적용하는 스타일 객체예요\n * @property {ViewStyle} y12 - 세로 방향에 12px의 안쪽 여백을 적용하는 스타일 객체예요.\n * @property {ViewStyle} y16 - 세로 방향에 16px의 안쪽 여백을 적용하는 스타일 객체예요.\n * @property {ViewStyle} y24 - 세로 방향에 24px의 안쪽 여백을 적용하는 스타일 객체예요.\n * @property {ViewStyle} y32 - 세로 방향에 32px의 안쪽 여백을 적용하는 스타일 객체예요.\n * @property {(value: number) => ViewStyle} top - 컴포넌트의 위쪽 방향에 입력한 숫자만큼의 안쪽 여백을 설정하는 스타일 객체를 반환해요. 반환된 객체는 컴포넌트의 `style` 속성에 전달되어 여백이 적용돼요.\n * @property {ViewStyle} top4 - 위에 4px의 안쪽 여백을 적용하는 스타일 객체예요\n * @property {ViewStyle} top8 - 위에 8px의 안쪽 여백을 적용하는 스타일 객체예요\n * @property {ViewStyle} top12 - 위에 12px의 안쪽 여백을 적용하는 스타일 객체예요.\n * @property {ViewStyle} top16 - 위에 16px의 안쪽 여백을 적용하는 스타일 객체예요.\n * @property {ViewStyle} top24 - 위에 24px의 안쪽 여백을 적용하는 스타일 객체예요.\n * @property {ViewStyle} top32 - 위에 32px의 안쪽 여백을 적용하는 스타일 객체예요.\n * @property {(value: number) => ViewStyle} right - 컴포넌트의 오른쪽 방향에 입력한 숫자만큼의 안쪽 여백을 설정하는 스타일 객체를 반환해요. 반환된 객체는 컴포넌트의 `style` 속성에 전달되어 여백이 적용돼요.\n * @property {ViewStyle} right4 - 오른쪽에 4px의 안쪽 여백을 적용하는 스타일 객체예요\n * @property {ViewStyle} right8 - 오른쪽에 8px의 안쪽 여백을 적용하는 스타일 객체예요\n * @property {ViewStyle} right12 - 오른쪽에 12px의 안쪽 여백을 적용하는 스타일 객체예요.\n * @property {ViewStyle} right16 - 오른쪽에 16px의 안쪽 여백을 적용하는 스타일 객체예요.\n * @property {ViewStyle} right24 - 오른쪽에 24px의 안쪽 여백을 적용하는 스타일 객체예요.\n * @property {ViewStyle} right32 - 오른쪽에 32px의 안쪽 여백을 적용하는 스타일 객체예요.\n * @property {(value: number) => ViewStyle} bottom - 컴포넌트의 아래쪽 방향에 입력한 숫자만큼의 안쪽 여백을 설정하는 스타일 객체를 반환해요. 반환된 객체는 컴포넌트의 `style` 속성에 전달되어 여백이 적용돼요.\n * @property {ViewStyle} bottom4 - 아래에 4px의 안쪽 여백을 적용하는 스타일 객체예요\n * @property {ViewStyle} bottom8 - 아래에 8px의 안쪽 여백을 적용하는 스타일 객체예요\n * @property {ViewStyle} bottom12 - 아래에 12px의 안쪽 여백을 적용하는 스타일 객체예요.\n * @property {ViewStyle} bottom16 - 아래에 16px의 안쪽 여백을 적용하는 스타일 객체예요.\n * @property {ViewStyle} bottom24 - 아래에 24px의 안쪽 여백을 적용하는 스타일 객체예요.\n * @property {ViewStyle} bottom32 - 아래에 32px의 안쪽 여백을 적용하는 스타일 객체예요.\n * @property {(value: number) => ViewStyle} left - 컴포넌트의 왼쪽 방향에 입력한 숫자만큼의 안쪽 여백을 설정하는 스타일 객체를 반환해요. 반환된 객체는 컴포넌트의 `style` 속성에 전달되어 여백이 적용돼요.\n * @property {ViewStyle} left4 - 왼쪽에 4px의 안쪽 여백을 적용하는 스타일 객체예요\n * @property {ViewStyle} left8 - 왼쪽에 8px의 안쪽 여백을 적용하는 스타일 객체예요\n * @property {ViewStyle} left12 - 왼쪽에 12px의 안쪽 여백을 적용하는 스타일 객체예요.\n * @property {ViewStyle} left16 - 왼쪽에 16px의 안쪽 여백을 적용하는 스타일 객체예요.\n * @property {ViewStyle} left24 - 왼쪽에 24px의 안쪽 여백을 적용하는 스타일 객체예요.\n * @property {ViewStyle} left32 - 왼쪽에 32px의 안쪽 여백을 적용하는 스타일 객체예요.\n *\n * @example\n * ## 가로, 세로 방향에 8px의 안쪽 여백을 적용하고, 아래 방향에 임의의 여백(100px)을 적용하는 예제예요.\n *\n * ```tsx\n * import { padding } from '@react-native-bedrock/core';\n * import { View } from 'react-native';\n *\n * function Component() {\n * return (\n * <View>\n * <View style={padding.x8}>\n * <Text>가로 여백이 있어요</Text>\n * </View>\n * <View style={padding.y8}>\n * <Text>세로 여백이 있어요</Text>\n * </View>\n * <View style={padding.bottom(100)}>\n * <Text>아래에 100만큼의 여백이 있어요</Text>\n * </View>\n * </View>\n * );\n * }\n * ```\n */\nexport const padding = createSpacingWithProperty('padding');\n\n/**\n * @public\n * @tag Style\n * @category Functions\n * @name margin\n * @description\n * `margin` 함수는 컴포넌트의 외부 간격을 설정해서, 컴포넌트들 간의 적절한 간격을 확보해요. 가로(x), 세로(y), 그리고 각 방향(top, right, bottom, left)별로 외부 여백을 숫자로 지정할 수 있어요.\n * 숫자를 입력하면 모든 방향에 동일한 값을 적용하거나, 각 방향별로 개별 설정이 가능해요. 또한 자주 쓰는 값에 대한 프리셋이 있어 쉽게 적용할 수 있어요.\n *\n * @param {BoxSpacingOption} option - 바깥쪽 여백을 지정하는 옵션 값이예요. 숫자를 넣으면 모든 방향에 동일한 값을 적용하고,\n * 각 방향에 대해 개별 값을 설정할 수도 있어요.\n * @property {(value: number) => ViewStyle} x - 컴포넌트의 가로 방향(왼쪽과 오른쪽)에 입력한 숫자만큼의 바깥쪽 여백을 설정하는 스타일 객체를 반환해요. 반환된 객체는 컴포넌트의 `style` 속성에 전달되어 여백이 적용돼요.\n * @property {ViewStyle} x4 - 가로 방향에 4px의 바깥쪽 여백을 적용하는 스타일 객체예요\n * @property {ViewStyle} x8 - 가로 방향에 8px의 바깥쪽 여백을 적용하는 스타일 객체예요\n * @property {ViewStyle} x12 - 가로 방향에 12px의 바깥쪽 여백을 적용하는 스타일 객체예요.\n * @property {ViewStyle} x16 - 가로 방향에 16px의 바깥쪽 여백을 적용하는 스타일 객체예요.\n * @property {ViewStyle} x24 - 가로 방향에 24px의 바깥쪽 여백을 적용하는 스타일 객체예요.\n * @property {ViewStyle} x32 - 가로 방향에 32px의 바깥쪽 여백을 적용하는 스타일 객체예요.\n * @property {(value: number) => ViewStyle} y - 컴포넌트의 세로 방향(위쪽과 아래쪽)에 입력한 숫자만큼의 바깥쪽 여백을 설정하는 스타일 객체를 반환해요. 반환된 객체는 컴포넌트의 `style` 속성에 전달되어 여백이 적용돼요.\n * @property {ViewStyle} y4 - 세로 방향에 4px의 바깥쪽 여백을 적용하는 스타일 객체예요\n * @property {ViewStyle} y8 - 세로 방향에 8px의 바깥쪽 여백을 적용하는 스타일 객체예요\n * @property {ViewStyle} y12 - 세로 방향에 12px의 바깥쪽 여백을 적용하는 스타일 객체예요.\n * @property {ViewStyle} y16 - 세로 방향에 16px의 바깥쪽 여백을 적용하는 스타일 객체예요.\n * @property {ViewStyle} y24 - 세로 방향에 24px의 바깥쪽 여백을 적용하는 스타일 객체예요.\n * @property {ViewStyle} y32 - 세로 방향에 32px의 바깥쪽 여백을 적용하는 스타일 객체예요.\n * @property {(value: number) => ViewStyle} top - 컴포넌트의 위쪽 방향에 입력한 숫자만큼의 바깥쪽 여백을 설정하는 스타일 객체를 반환해요. 반환된 객체는 컴포넌트의 `style` 속성에 전달되어 여백이 적용돼요.\n * @property {ViewStyle} top4 - 위에 4px의 바깥쪽 여백을 적용하는 스타일 객체예요\n * @property {ViewStyle} top8 - 위에 8px의 바깥쪽 여백을 적용하는 스타일 객체예요\n * @property {ViewStyle} top12 - 위에 12px의 바깥쪽 여백을 적용하는 스타일 객체예요.\n * @property {ViewStyle} top16 - 위에 16px의 바깥쪽 여백을 적용하는 스타일 객체예요.\n * @property {ViewStyle} top24 - 위에 24px의 바깥쪽 여백을 적용하는 스타일 객체예요.\n * @property {ViewStyle} top32 - 위에 32px의 바깥쪽 여백을 적용하는 스타일 객체예요.\n * @property {(value: number) => ViewStyle} right - 컴포넌트의 오른쪽 방향에 입력한 숫자만큼의 바깥쪽 여백을 설정하는 스타일 객체를 반환해요. 반환된 객체는 컴포넌트의 `style` 속성에 전달되어 여백이 적용돼요.\n * @property {ViewStyle} right4 - 오른쪽에 4px의 바깥쪽 여백을 적용하는 스타일 객체예요\n * @property {ViewStyle} right8 - 오른쪽에 8px의 바깥쪽 여백을 적용하는 스타일 객체예요\n * @property {ViewStyle} right12 - 오른쪽에 12px의 바깥쪽 여백을 적용하는 스타일 객체예요.\n * @property {ViewStyle} right16 - 오른쪽에 16px의 바깥쪽 여백을 적용하는 스타일 객체예요.\n * @property {ViewStyle} right24 - 오른쪽에 24px의 바깥쪽 여백을 적용하는 스타일 객체예요.\n * @property {ViewStyle} right32 - 오른쪽에 32px의 바깥쪽 여백을 적용하는 스타일 객체예요.\n * @property {(value: number) => ViewStyle} bottom - 컴포넌트의 아래쪽 방향에 입력한 숫자만큼의 바깥쪽 여백을 설정하는 스타일 객체를 반환해요. 반환된 객체는 컴포넌트의 `style` 속성에 전달되어 여백이 적용돼요.\n * @property {ViewStyle} bottom4 - 아래에 4px의 바깥쪽 여백을 적용하는 스타일 객체예요\n * @property {ViewStyle} bottom8 - 아래에 8px의 바깥쪽 여백을 적용하는 스타일 객체예요\n * @property {ViewStyle} bottom12 - 아래에 12px의 바깥쪽 여백을 적용하는 스타일 객체예요.\n * @property {ViewStyle} bottom16 - 아래에 16px의 바깥쪽 여백을 적용하는 스타일 객체예요.\n * @property {ViewStyle} bottom24 - 아래에 24px의 바깥쪽 여백을 적용하는 스타일 객체예요.\n * @property {ViewStyle} bottom32 - 아래에 32px의 바깥쪽 여백을 적용하는 스타일 객체예요.\n * @property {(value: number) => ViewStyle} left - 컴포넌트의 왼쪽 방향에 입력한 숫자만큼의 바깥쪽 여백을 설정하는 스타일 객체를 반환해요. 반환된 객체는 컴포넌트의 `style` 속성에 전달되어 여백이 적용돼요.\n * @property {ViewStyle} left4 - 왼쪽에 4px의 바깥쪽 여백을 적용하는 스타일 객체예요\n * @property {ViewStyle} left8 - 왼쪽에 8px의 바깥쪽 여백을 적용하는 스타일 객체예요\n * @property {ViewStyle} left12 - 왼쪽에 12px의 바깥쪽 여백을 적용하는 스타일 객체예요.\n * @property {ViewStyle} left16 - 왼쪽에 16px의 바깥쪽 여백을 적용하는 스타일 객체예요.\n * @property {ViewStyle} left24 - 왼쪽에 24px의 바깥쪽 여백을 적용하는 스타일 객체예요.\n * @property {ViewStyle} left32 - 왼쪽에 32px의 바깥쪽 여백을 적용하는 스타일 객체예요.\n *\n * @example\n * ## 가로, 세로 방향에 8px의 바깥쪽 여백을 적용하고, 아래 방향에 임의의 여백(100px)을 적용하는 예제예요.\n *\n * ```tsx\n * import { margin } from '@react-native-bedrock/core';\n * import { View } from 'react-native';\n *\n * function Component() {\n * return (\n * <View>\n * <View style={margin.x8}>\n * <Text>가로 여백이 있어요</Text>\n * </View>\n * <View style={margin.y8}>\n * <Text>세로 여백이 있어요</Text>\n * </View>\n * <View style={margin.bottom(100)}>\n * <Text>아래에 100만큼의 여백이 있어요</Text>\n * </View>\n * </View>\n * );\n * }\n * ```\n */\nexport const margin = createSpacingWithProperty('margin');\n\nfunction capitalizeFirstLetter(str: string) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\n", "import { forwardRef, type ReactElement, type ReactNode, type Ref } from 'react';\nimport { View, type ViewProps, type ViewStyle } from 'react-native';\n\ninterface FlexOptions {\n align?: ViewStyle['alignItems'];\n justify?: ViewStyle['justifyContent'];\n direction?: ViewStyle['flexDirection'];\n}\n\ninterface Props extends FlexOptions, ViewProps {\n style?: ViewProps['style'];\n children?: ReactNode;\n}\n\ntype FlexReturnType = (props: Props & { ref?: Ref<View> }) => ReactElement | null;\n\nexport function flex(options: FlexOptions | ViewStyle['alignItems']): ViewStyle;\nexport function flex(\n align: ViewStyle['alignItems'] | FlexOptions,\n justify?: ViewStyle['justifyContent'],\n direction?: ViewStyle['flexDirection']\n): ViewStyle;\nexport function flex(\n alignOrFlexOptions: FlexOptions | ViewStyle['alignItems'],\n justify: ViewStyle['justifyContent'] = 'flex-start',\n direction: ViewStyle['flexDirection'] = 'column'\n): ViewStyle {\n if (typeof alignOrFlexOptions === 'object') {\n const { align = 'stretch', direction = 'column', justify = 'flex-start' } = alignOrFlexOptions;\n\n return {\n alignItems: align,\n display: 'flex',\n flexDirection: direction,\n justifyContent: justify,\n };\n }\n\n return {\n display: 'flex',\n alignItems: alignOrFlexOptions,\n flexDirection: direction,\n justifyContent: justify,\n };\n}\n\nflex.center = (direction?: FlexOptions['direction']) => flex({ justify: 'center', align: 'center', direction });\n\nconst BaseFlex = forwardRef<View, Props>(function (\n { align = 'stretch', justify = 'flex-start', direction = 'column', style, ...restProps },\n ref\n) {\n return <View ref={ref} style={[flex({ align, direction, justify }), style]} {...restProps} />;\n}) as FlexReturnType;\n\ntype FlexType = typeof BaseFlex & {\n Center: typeof BaseFlex;\n CenterVertical: typeof BaseFlex;\n CenterHorizontal: typeof BaseFlex;\n};\n\n/**\n * @public\n * @tag Style\n * @category Components\n * @name Flex\n * @description\n * `Flex`는 자식 요소들을 [**Flexbox 레이아웃**](https://reactnative.dev/docs/0.72/flexbox)을 기준으로 배치하는 컴포넌트예요. Flexbox를 사용하면, 가로 및 세로 방향으로 요소들을 쉽게 정렬하고, 중앙 정렬을 간편하게 설정할 수 있어요.\n * 자식 요소를 정 중앙에 배치할 때에는 `Flex.Center`, 세로 중앙에 배치할 때에는 `Flex.CenterVertical`, 가로 중앙에 배치할 때에는 `Flex.CenterHorizontal`을 사용해요.\n *\n * @param {object} [props] - 컴포넌트에 전달되는 `props` 객체예요.\n * @param {'flex-start' | 'flex-end' | 'center' | 'stretch' | 'baseline'} [props.align = 'stretch'] - 중심축 기준(Flex 방향)으로 자식 요소를 정렬하는 설정 값이에요. `'column'` 방향을 예로 들면 `'center'`는 수평 중앙에 배치하고, `'stretch'`는 요소의 폭이 `'auto'`인 경우 부모의 폭에 맞게 늘려요. 이 값은 [`alignItems`](https://reactnative.dev/docs/0.72/layout-props#alignitems)에 적용되며, 기본값은 `'stretch'`예요.\n * @param {'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'space-evenly'} [props.justify = 'flex-start'] - 교차축(Flex 방향의 교차 방향) 기준으로 자식 요소를 정렬하는 설정 값이에요. `'column'` 방향을 예로 들어, `flex-start`는 요소를 부모의 위쪽에 배치하고, `'center'`는 부모의 수직 중앙에 배치해요. 이 값은 [`justifyContent`](https://reactnative.dev/docs/0.72/layout-props#justifycontent)에 적용되며, 기본값은 `'flex-start'`예요.\n * @param {'column' | 'row'} [props.direction = 'column'] - 자식 요소들이 배치될 방향을 설정하는 값이에요. [`flexDirection`](https://reactnative.dev/docs/0.72/layout-props#flexdirection)에 적용되며, 기본값은 `'column'`이에요.\n * @param {ViewProps['style']} [props.style] - `Flex` 컴포넌트에 적용할 `style` 객체예요. Flexbox 레이아웃 외에 컴포넌트의 배경색, 테두리, 여백 등 다른 스타일을 지정할 때 사용해요. 기본값은 `undefined`에요.\n *\n * @property {FlexCenter} [Center] - `Flex.Center`는 자식 요소들을 **Flex Layout** 기준으로 가로와 세로 모두 정 중앙에 배치하는 컴포넌트예요.\n * @property {FlexCenterVertical} [CenterVertical] - `Flex.CenterVertical`는 자식 요소들을 Flex Layout 기준으로 **세로 방향으로 중앙에 정렬**하기 위한 컴포넌트예요.\n * @property {FlexCenterHorizontal} [CenterHorizontal] - `Flex.CenterHorizontal`는 자식 요소들을 Flex Layout 기준으로 **가로 방향으로 중앙에 정렬**하기 위한 컴포넌트예요.\n *\n * @example\n * ### 가로, 세로 방향으로 요소들을 배치하는 예제예요.\n *\n * ```tsx\n * import { Flex } from '@react-native-bedrock/core';\n * import { Text } from 'react-native';\n *\n * function FlexExample() {\n * return (\n * <>\n * <Flex direction=\"column\">\n * <Text>세로로 배치해요</Text>\n * <Text>1</Text>\n * <Text>2</Text>\n * <Text>3</Text>\n * </Flex>\n * <Flex direction=\"row\">\n * <Text>가로로 배치해요</Text>\n * <Text>1</Text>\n * <Text>2</Text>\n * <Text>3</Text>\n * </Flex>\n * </>\n * );\n * }\n * ```\n */\nexport const Flex = BaseFlex as FlexType;\n\n/**\n * @public\n * @tag Style\n * @category Components\n * @name FlexCenter\n * @description\n * `Flex.Center`는 자식 요소들을 [**Flexbox 레이아웃**](https://reactnative.dev/docs/0.72/flexbox) 기준으로 가로와 세로 모두 정 중앙에 배치하는 컴포넌트예요.\n * `alignItems`와 `justifyContent` 속성 모두 `'center'`로 설정되어, 자식 요소들이 부모 컴포넌트의 중앙에 배치돼요.\n * `Flexbox`를 사용해 중앙 정렬을 간편하게 할 수 있어요.\n *\n * @param {object} [props] - 컴포넌트에 전달되는 props 객체예요.\n * @param {'flex-start' | 'flex-end' | 'center' | 'stretch' | 'baseline'} [props.align = 'center'] - 중심축 기준(Flex 방향)으로 자식 요소를 정렬하는 설정 값이에요. `'column'` 방향을 예로 들어, `'center'`는 수평 중앙에 배치하고, `'stretch'`는 요소의 폭이 `'auto'`일 때 부모의 폭에 맞게 늘려요. 이 값은 [`alignItems`](https://reactnative.dev/docs/0.72/layout-props#alignitems)에 적용되며, 기본값은 `'center'`예요.\n * @param {'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'space-evenly'} [props.justify = 'center'] - 교차축(Flex 방향의 교차 방향) 기준으로 자식 요소를 정렬하는 설정 값이에요. `'column'` 방향을 예로 들어, `flex-start`는 요소를 부모의 위쪽에 배치하고, `'center'`는 부모의 수직 중앙에 배치해요. 이 값은 [`justifyContent`](https://reactnative.dev/docs/0.72/layout-props#justifycontent)에 적용되며, 기본값은 `'center'`예요.\n * @param {'column' | 'row'} [props.direction = 'column'] - 자식 요소들이 배치될 방향을 설정하는 값이에요. 기본값은 `'column'`으로, 세로 방향으로 배치돼요.\n * @param {ViewProps['style']} [props.style] - `Flex.Center` 컴포넌트에 적용할 `style` 객체예요. Flexbox 레이아웃 외에 컴포넌트의 배경색, 테두리, 여백 등 다른 스타일을 지정할 때 사용해요. 기본값은 `undefined`에요.\n *\n * @example\n * ### 요소를 정 중앙에 배치하는 예제예요.\n *\n * ```tsx\n * import { Flex } from '@react-native-bedrock/core';\n * import { Text } from 'react-native';\n *\n * function FlexCenterExample() {\n * return (\n * <Flex.Center style={{ width: '100%', height: 100, borderWidth: 1 }}>\n * <Text>정 중앙에 배치해요</Text>\n * </Flex.Center>\n * );\n * }\n * ```\n */\nexport const FlexCenter = forwardRef<View, Props>(function FlexCenter(props, ref) {\n return <BaseFlex align=\"center\" justify=\"center\" {...props} ref={ref} />;\n});\n\n/**\n * @public\n * @tag Style\n * @category Components\n * @name FlexCenterVertical\n * @description\n * `Flex.CenterVertical`는 자식 요소들을 [**Flexbox 레이아웃**](https://reactnative.dev/docs/0.72/flexbox) 기준으로 **세로 방향으로 중앙에 정렬**하기 위한 컴포넌트예요.\n * `justifyContent` 속성이 `'center'`로 설정되어, 자식 요소들이 부모 컴포넌트의 세로 중앙에 배치돼요.\n *\n * @param {object} [props] - 컴포넌트에 전달되는 props 객체예요.\n * @param {'flex-start' | 'flex-end' | 'center' | 'stretch' | 'baseline'} [props.align = 'center'] - 중심축 기준(Flex 방향)으로 자식 요소를 정렬하는 설정 값이에요. `'column'` 방향을 예로 들어, `'center'`는 수평 중앙에 배치하고, `'stretch'`는 요소의 폭이 `'auto'`인 경우 부모의 폭에 맞게 늘려요. 이 값은 [`alignItems`](https://reactnative.dev/docs/0.72/layout-props#alignitems)에 적용되며, 기본값은 `'stretch'`예요.\n * @param {'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'space-evenly'} [props.justify = 'center'] - 교차축(Flex 방향의 교차 방향) 기준으로 자식 요소를 정렬하는 설정 값이에요. `'column'` 방향을 예로 들어, `flex-start`는 요소를 부모의 위쪽에 배치하고, `'center'`는 부모의 수직 중앙에 배치해요. 이 값은 [`justifyContent`](https://reactnative.dev/docs/0.72/layout-props#justifycontent)에 적용되며, 기본값은 `'center'`예요.\n * @param {'column' | 'row'} [props.direction = 'column'] - 자식 요소들이 배치될 방향을 설정하는 값이에요. 기본값은 `'column'`으로, 세로 방향으로 배치돼요.\n * @param {ViewProps['style']} [props.style] - `Flex.CenterVertical` 컴포넌트에 적용할 `style` 객체예요. Flexbox 레이아웃 외에 컴포넌트의 배경색, 테두리, 여백 등 다른 스타일을 지정할 때 사용해요. 기본값은 `undefined`에요.\n *\n * @example\n * ### 세로 방향으로 요소들을 중앙 정렬하는 예제예요.\n *\n * ```tsx\n * import { Flex } from '@react-native-bedrock/core';\n * import { Text } from 'react-native';\n *\n * function FlexCenterVerticalExample() {\n * return (\n * <Flex.CenterVertical style={{ width: '100%', height: 100, borderWidth: 1 }}>\n * <Text>세로 중앙에 배치해요</Text>\n * </Flex.CenterVertical>\n * );\n * }\n * ```\n */\nexport const FlexCenterVertical = forwardRef<View, Props>(function FlexCenterVertical(props, ref) {\n return <BaseFlex justify=\"center\" {...props} ref={ref} />;\n});\n\n/**\n * @public\n * @tag Style\n * @category Components\n * @name FlexCenterHorizontal\n * @description\n * `Flex.CenterHorizontal`는 자식 요소들을 [**Flexbox 레이아웃**](https://reactnative.dev/docs/0.72/flexbox) 기준으로 **가로 방향으로 중앙에 정렬**하기 위한 컴포넌트예요.\n * `alignItems` 속성이 `'center'`로 설정되어, 자식 요소들이 부모 컴포넌트의 가로 중앙에 배치돼요.\n *\n * @param {object} [props] - 컴포넌트에 전달되는 props 객체예요.\n * @param {'flex-start' | 'flex-end' | 'center' | 'stretch' | 'baseline'} [props.align = 'center'] - 중심축 기준(Flex 방향)으로 자식 요소를 정렬하는 설정 값이에요. `'column'` 방향을 예로 들어, `'center'`는 수평 중앙에 배치하고, `'stretch'`는 요소의 폭이 `'auto'`인 경우 부모의 폭에 맞게 늘려요. 이 값은 [`alignItems`](https://reactnative.dev/docs/0.72/layout-props#alignitems)에 적용되며, 기본값은 `'center'`예요.\n * @param {'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'space-evenly'} [props.justify = 'flex-start'] - 교차축(Flex 방향의 교차 방향) 기준으로 자식 요소를 정렬하는 설정 값이에요. `'column'` 방향을 예로 들어, `flex-start`는 요소를 부모의 위쪽에 배치하고, `'center'`는 부모의 수직 중앙에 배치해요. 이 값은 [`justifyContent`](https://reactnative.dev/docs/0.72/layout-props#justifycontent)에 적용되며, 기본값은 `'flex-start'`예요.\n * @param {'column' | 'row'} [props.direction = 'column'] - 자식 요소들이 배치될 방향을 설정하는 값이에요. 기본값은 `'column'`으로 세로 방향으로 배치돼요.\n * @param {ViewProps['style']} [props.style] - `Flex.CenterHorizontal` 컴포넌트에 적용할 `style` 객체예요. Flexbox 레이아웃 외에 컴포넌트의 배경색, 테두리, 여백 등 다른 스타일을 지정할 때 사용해요. 기본값은 `undefined`에요.\n *\n * @example\n * ### 가로 방향으로 요소들을 중앙 정렬하는 예제예요.\n *\n * ```tsx\n * import { Flex } from '@react-native-bedrock/core';\n * import { Text } from 'react-native';\n *\n * function FlexCenterHorizontalExample() {\n * return (\n * <Flex.CenterHorizontal style={{ width: '100%', height: 100, borderWidth: 1 }}>\n * <Text>가로 중앙에 배치해요</Text>\n * </Flex.CenterHorizontal>\n * );\n * }\n * ```\n */\nexport const FlexCenterHorizontal = forwardRef<View, Props>(function FlexCenterHorizontal(props, ref) {\n return <BaseFlex align=\"center\" {...props} ref={ref} />;\n});\n\nFlex.Center = FlexCenter;\nFlex.CenterVertical = FlexCenterVertical;\nFlex.CenterHorizontal = FlexCenterHorizontal;\n", "import { memo } from 'react';\nimport { View, type StyleProp, type ViewProps, type ViewStyle } from 'react-native';\n\ninterface Props extends ViewProps {\n size: number;\n direction?: 'vertical' | 'horizontal';\n style?: StyleProp<ViewStyle>;\n}\n\n/**\n * @public\n * @tag Style\n * @category Components\n * @name Spacing\n * @description\n * `Spacing`은 빈 공간을 차지해서 여백을 추가하는 컴포넌트예요. 가로 혹은 세로 방향으로 여백의 크기를 지정할 수 있어요.\n *\n * @param {object} [props] - 컴포넌트에 전달되는 `props` 객체예요.\n * @param {number} props.size - 여백의 크기를 설정하는 숫자 값이에요.\n * @param {'vertical' | 'horizontal'} [props.direction = 'vertical'] - 여백을 차지할 방향을 설정해요. 기본값은 `'vertical'`이에요.\n * @param {StyleProp<ViewStyle>} [props.style] - `Spacing` 컴포넌트에 적용할 `style` 값이에요. 기본값은 `undefined`이고, 추가 스타일을 적용할 때 사용돼요.\n *\n * @example\n * ### 가로, 세로 방향에 크기가 `16`인 여백을 추가하여 빈 공간을 만들어 낸 예제\n *\n * ```tsx\n * import { View, Text } from 'react-native';\n * import { Spacing } from 'react-native-bedrock';\n *\n * export function SpacingExample() {\n * return (\n * <View>\n * <Text>Top</Text>\n * <Spacing size={16} direction=\"vertical\" style={{ backgroundColor: 'red', width: 5 }} />\n * <Text>Bottom, 세로 여백만큼 아래에 위치해 있어요</Text>\n *\n * <View style={{ flexDirection: 'row' }}>\n * <Text>Left</Text>\n * <Spacing size={16} direction=\"horizontal\" style={{ backgroundColor: 'red', height: 5 }} />\n * <Text>Right, 가로 여백만큼 옆에 위치해 있어요</Text>\n * </View>\n * </View>\n * );\n * }\n * ```\n */\nexport const Spacing = memo(function Spacing({ size, direction = 'vertical', style, ...restProps }: Props) {\n const directionStyle =\n direction === 'vertical'\n ? {\n height: size,\n }\n : {\n width: size,\n };\n\n return <View style={[directionStyle, style]} {...restProps} />;\n});\n", "import React, { Fragment, type ReactNode } from 'react';\n\n/**\n * @category Constants\n * @name Children\n * @description\n * `Children`는 자식 요소와 관련된 레이아웃을 제어하는 다양한 컴포넌트를 제공해요.\n *\n * @property {ChildrenGap} Gap - `Children.Gap`는 여러 자식 요소 사이에 지정한 컴포넌트(gap)를 추가해서 렌더링할 때 사용하는 컴포넌트예요.\n */\nexport const Children = {\n /**\n * @name Children.Gap\n * @description ReactNode children 을 렌더할 때 사이에 gap 컴포넌트를 렌더합니다.\n */\n Gap: ChildrenGap,\n};\n\ninterface ChildrenGapProps {\n children: ReactNode;\n gap: ReactNode;\n}\n\n/**\n * @category Components\n * @name ChildrenGap\n * @description\n * `Children.Gap`은 여러 자식 요소 사이에 간격(gap)을 추가해서 일정한 레이아웃을 유지하는 데 유용한 컴포넌트예요.\n * 이 컴포넌트를 사용하면, 자식 요소 사이에 일정한 간격을 적용해 더 깔끔하고 일관된 UI 디자인을 구현할 수 있어요.\n *\n * @param {object} props - 컴포넌트에 전달되는 `props` 객체예요.\n * @param {ReactNode} props.children - 렌더링할 자식 컴포넌트들이에요.\n * @param {ReactNode} props.gap - 자식 요소 사이에 넣을 컴포넌트예요. `gap`은 유효한 React 컴포넌트여야 해요.\n *\n * @throws {Error} `gap`이 유효한 React 컴포넌트가 아닐 때 에러가 발생해요. `gap`에는 반드시 `React.Element`를 사용해야 해요.\n *\n * @example\n * ## 자식 요소 사이에 16px 크기의 여백을 추가하고 싶을 때\n *\n * ```tsx\n * import { Children, Spacing } from '@react-native-bedrock/core';\n * import { Text } from 'react-native';\n *\n * function Component() {\n * return (\n * <Children.Gap gap={<Spacing size={16} />}>\n * <Text>첫 번째</Text>\n * <Text>두 번째</Text>\n * <Text>세 번째</Text>\n * </Children.Gap>\n * );\n * }\n * ```\n */\nfunction ChildrenGap({ children, gap }: ChildrenGapProps) {\n if (!React.isValidElement(gap)) {\n throw new Error('gap prop 값은 컴포넌트를 사용해야 합니다.');\n }\n\n return (\n <>\n {React.Children.map(children, (child, index) => {\n const isLastChild = index === React.Children.count(children) - 1;\n\n return (\n <Fragment key={index}>\n {child}\n {!isLastChild && child != null ? gap : undefined}\n </Fragment>\n );\n })}\n </>\n );\n}\n", "import { forwardRef, type ReactElement } from 'react';\nimport { View, type ViewProps, type ViewStyle } from 'react-native';\nimport { Children } from './children';\nimport { Flex } from './flex';\nimport { Spacing } from './spacing';\n\ntype Direction = 'horizontal' | 'vertical';\n\ninterface StackProps extends ViewProps {\n direction?: Direction;\n gutter?: number | ReactElement;\n align?: ViewStyle['alignItems'];\n justify?: ViewStyle['justifyContent'];\n}\n\nconst BaseStack = forwardRef<View, StackProps>(function BaseStack(props, ref) {\n const { direction = 'vertical', gutter = 0, children, ...rest } = props;\n\n return (\n <Flex ref={ref} direction={direction === 'vertical' ? 'column' : 'row'} {...rest}>\n <Children.Gap\n gap={typeof gutter === 'number' ? <Spacing direction={direction} size={gutter ?? 24} /> : props.gutter}\n >\n {children}\n </Children.Gap>\n </Flex>\n );\n});\n\n/**\n * @public\n * @tag Style\n * @category Components\n * @name Stack\n * @description\n * `Stack`은 자식 요소들을 Stack 방식으로 가로 혹은 세로로 배치하고, 자식 요소 사이에 간격을 설정할 수 있는 컴포넌트예요.\n * `direction` 속성으로 가로(`horizontal`) 또는 세로(`vertical`) 방향을 지정할 수 있고, 자식 요소들 사이의 간격을 `gutter` 속성으로 조절할 수 있어요.\n * 가로로 배치할 때는 `Stack.Horizontal`, 세로로 배치할 때는 `Stack.Vertical` 컴포넌트를 사용할 수 있어요.\n *\n * @param {object} [props] - 컴포넌트에 전달되는 props 객체예요.\n * @param {'flex-start' | 'flex-end' | 'center' | 'stretch' | 'baseline'} [props.align] - 중심축 기준(Flex 방향)으로 자식 요소를 정렬하는 설정 값이에요. `'column'` 방향을 예로 들면 `'center'`는 수평 중앙에 배치하고, `'stretch'`는 요소의 폭이 `'auto'`인 경우 부모의 폭에 맞게 늘려요. 이 값은 [`alignItems`](https://reactnative.dev/docs/0.72/layout-props#alignitems)에 적용돼요.\n * @param {'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'space-evenly'} [props.justify] - 교차축(Flex 방향의 교차 방향) 기준으로 자식 요소를 정렬하는 설정 값이에요. `'column'` 방향을 예로 들어, `flex-start`는 요소를 부모의 위쪽에 배치하고, `'center'`는 부모의 수직 중앙에 배치해요. 이 값은 [`justifyContent`](https://reactnative.dev/docs/0.72/layout-props#justifycontent)에 적용돼요.\n * @param {'vertical' | 'horizontal'} [props.direction = 'vertical'] - 자식 요소를 배치할 방향을 설정하는 값이에요. 기본값은 `'vertical'`이에요.\n * @param {number | ReactElement} [props.gutter] - 자식 요소 간의 간격을 설정하는 값이에요. 숫자를 입력하면 픽셀 단위로 여백을 설정하고, `ReactElement`를 전달하면 해당 컴포넌트가 간격으로 사용돼요. 숫자를 사용하면 간격을 정확하게 제어할 수 있고, `ReactElement`를 사용하면 더 복잡한 커스텀 간격을 구현할 수 있어요.\n *\n * @property {StackHorizontal} [Horizontal] - `Stack.Horizontal`은 자식 요소들을 **가로 방향**으로 정렬하여 쌓는 컴포넌트예요.\n * @property {StackVertical} [Vertical] - `Stack.Vertical`은 자식 요소들을 **세로 방향**으로 정렬하여 쌓는 컴포넌트예요.\n *\n * @example\n * ### 가로, 세로 방향으로 요소들을 배치하고 간격을 16으로 설정한 예제예요.\n *\n * ```tsx\n * import { Text } from 'react-native';\n * import { Stack } from '@react-native-bedrock/core';\n *\n * export function StackExample() {\n * return (\n * <>\n * <Stack gutter={16} direction=\"horizontal\">\n * <Text>16간격을 두고 가로 방향으로 배치해요</Text>\n * <Text>1</Text>\n * <Text>2</Text>\n * <Text>3</Text>\n * </Stack>\n * <Stack gutter={16} direction=\"vertical\">\n * <Text>16간격을 두고 세로 방향으로 배치해요</Text>\n * <Text>1</Text>\n * <Text>2</Text>\n * <Text>3</Text>\n * </Stack>\n * </>\n * );\n * }\n * ```\n */\nexport const Stack = BaseStack as StackType;\n\ntype StackType = typeof BaseStack & {\n Vertical: typeof StackVertical;\n Horizontal: typeof StackHorizontal;\n};\n\ntype StackWithoutDirectionProps = Omit<StackProps, 'direction'>;\n\n/**\n * @public\n * @tag Style\n * @category Components\n * @name StackHorizontal\n * @description\n * `Stack.Horizontal`은 자식 요소를 가로로 쌓아 배치하는 컴포넌트에요. 이 컴포넌트를 사용하면, 자식 요소 간의 간격을 `gutter` 속성으로 쉽게 조절할 수 있어, 가로 방향으로 일관된 레이아웃을 유지할 수 있어요.\n *\n * @param {object} [props] - 컴포넌트에 전달되는 props 객체예요.\n * @param {'flex-start' | 'flex-end' | 'center' | 'stretch' | 'baseline'} [props.align = 'stretch'] - 자식 요소의 가로 정렬을 설정하는 값이에요. Flexbox의 `align-items` 속성과 동일하게 동작하며, 기본값은 `'stretch'`로 자식 요소의 폭이 `'auto'`인 경우 부모의 너비에 맞춰 늘어나요.\n * @param {'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'space-evenly'} [props.justify = 'flex-start'] - 자식 요소의 가로 정렬을 설정하는 값이에요. Flexbox의 `justify-content` 속성과 동일하게 동작하며, 기본값은 `'flex-start'`로 자식 요소들이 위쪽에 정렬돼요.\n * @param {number | ReactElement} [props.gutter] - 자식 요소 간의 간격을 설정하는 값이에요. 숫자를 입력하면 픽셀 단위로 여백을 설정하고, `ReactElement`를 전달하면 해당 컴포넌트가 간격으로 사용돼요. 숫자를 사용하면 간격을 정확하게 제어할 수 있고, `ReactElement`를 사용하면 더 복잡한 커스텀 간격을 구현할 수 있어요.\n *\n * @example\n * ### 가로 방향으로 요소들을 배치하고, 간격을 16으로 설정한 예제예요.\n *\n * ```tsx\n * import { Stack } from '@react-native-bedrock/core';\n * import { View, Text } from 'react-native';\n *\n * function StackHorizontalExample() {\n * return (\n <Stack.Horizontal gutter={16}>\n <Text>16간격을 두고 가로 방향으로 배치해요</Text>\n <Text>1</Text>\n <Text>2</Text>\n <Text>3</Text>\n </Stack.Horizontal>\n * );\n * }\n * ```\n */\nconst StackHorizontal = forwardRef<View, StackWithoutDirectionProps>(function StackHorizontal(props, ref) {\n return <Stack direction=\"horizontal\" {...props} ref={ref} />;\n});\n\n/**\n * @public\n * @tag Style\n * @category Components\n * @name StackVertical\n * @description\n * `Stack.Vertical`은 자식 요소를 세로로 쌓아 배치하는 컴포넌트에요. 이 컴포넌트를 사용하면 자식 요소 간의 간격을 `gutter` 속성으로 쉽게 조절할 수 있어, 세로 방향으로 일관된 레이아웃을 유지할 수 있어요.\n *\n * @param {object} [props] - 컴포넌트에 전달되는 props 객체예요.\n * @param {string} [props.align = 'stretch'] - 자식 요소의 세로 정렬을 설정하는 값이에요. Flexbox의 `align-items` 속성과 동일하게 동작하며, 기본값은 `'stretch'`로 자식 요소의 높이가 `'auto'`인 경우 부모의 높이에 맞춰 늘어나요.\n * @param {string} [props.justify = 'flex-start'] - 자식 요소의 가로 정렬을 설정하는 값이에요. Flexbox의 `justify-content` 속성과 동일하게 동작하며, 기본값은 `'flex-start'`로 자식 요소들이 왼쪽에 정렬돼요.\n * @param {number | ReactElement} [props.gutter] - 자식 요소 간의 간격을 설정하는 값이에요. 숫자를 입력하면 픽셀 단위로 여백을 설정하고, `ReactElement`를 전달하면 해당 컴포넌트가 간격으로 사용돼요. 숫자를 사용하면 간격을 정확하게 제어할 수 있고, `ReactElement`를 사용하면 더 복잡한 커스텀 간격을 구현할 수 있어요.\n *\n * @example\n * ### 가로 방향으로 요소들을 배치하고 간격으로 16만큼 설정한 예제예요.\n *\n * ```tsx\n * import { Stack } from '@react-native-bedrock/core';\n * import { View, Text } from 'react-native';\n *\n * ```tsx\n * import { Stack } from '@react-native-bedrock/core';\n * import { View, Text } from 'react-native';\n *\n * function StackVerticalExample() {\n * return (\n <Stack.Vertical gutter={16}>\n <Text>16간격을 두고 세로 방향으로 배치해요</Text>\n <Text>1</Text>\n <Text>2</Text>\n <Text>3</Text>\n </Stack.Vertical>\n * );\n * }\n * ```\n */\nconst StackVertical = forwardRef<View, StackWithoutDirectionProps>(function StackVertical(props, ref) {\n return <Stack direction=\"vertical\" {...props} ref={ref} />;\n});\n\nStack.Horizontal = StackHorizontal;\nStack.Vertical = StackVertical;\n", "export { margin, padding } from './box-spacing';\nexport { Flex } from './flex';\nexport { Spacing } from './spacing';\nexport { Stack } from './stack';\n", "import type { AnimationObject } from '@react-native-bedrock/native/lottie-react-native';\nimport { Platform } from 'react-native';\n\ntype LottieAnimationObject = AnimationObject & { fonts: { list: unknown[] } };\n\n/**\n * 안드로이드에서 fonts.list 에 커스텀폰트가 있는경우 크래시가 발생합니다.\n * 따라서 안드로이드의 경우 fonts.list 의 내용을 지웁니다.\n */\nexport function ensureSafeLottie(jsonData: LottieAnimationObject): LottieAnimationObject {\n if (Platform.OS === 'android') {\n return {\n ...jsonData,\n fonts: {\n list: [],\n },\n };\n } else {\n return jsonData;\n }\n}\n\nexport function hasFonts(jsonData: LottieAnimationObject) {\n if (jsonData && 'fonts' in jsonData) {\n if ('list' in jsonData.fonts) {\n return jsonData.fonts.list.length > 0;\n }\n }\n\n return false;\n}\n", "import LottieView from '@react-native-bedrock/native/lottie-react-native';\nimport { useEffect, useState, type ComponentProps } from 'react';\n\nexport function useFetchResource(src: string, onError?: ComponentProps<typeof LottieView>['onAnimationFailure']) {\n const [data, setData] = useState(null);\n\n useEffect(() => {\n async function run() {\n const response = await fetch(src);\n setData(await response.json());\n }\n\n run().catch(\n onError ??\n ((e) => {\n throw e;\n })\n );\n }, [src, onError]);\n\n return data;\n}\n", "import LottieView from '@react-native-bedrock/native/lottie-react-native';\nimport type { ComponentProps } from 'react';\nimport { View } from 'react-native';\nimport { ensureSafeLottie, hasFonts } from './ensureSafeLottie';\nimport { useFetchResource } from './useFetchResource';\n\ntype LottieReactNativeProps = ComponentProps<typeof LottieView>;\ntype BedrockSpecificLottieProps = {\n /**\n * 레이아웃 시프팅을 방지하기 위해 height을 필수로 받습니다.\n */\n height: number | '100%';\n width?: number | '100%';\n maxWidth?: number;\n src: string;\n};\n\ntype Props = BedrockSpecificLottieProps & Omit<LottieReactNativeProps, 'source'>;\n\n/**\n * @public\n * @tag Asset\n * @name Lottie\n * @category Components\n * @description `Lottie` 컴포넌트를 사용해서 Lottie 애니메이션을 렌더링할 수 있어요. 이 컴포넌트로 Lottie JSON 파일을 로드하고 애니메이션을 재생해요. 특징으로는 레이아웃 시프팅을 방지하려면 높이를 필수로 지정해야 해요.\n * @link https://github.com/lottie-react-native/lottie-react-native/blob/master/docs/api.md\n *\n * @param {object} [props] - 컴포넌트에 전달되는 `props` 객체예요. `lottie-react-native` 라이브러리의 `LottieView` 컴포넌트에서 지원하는 속성들을 사용할 수 있어요.\n * @param {number | '100%'} [props.width] - Lottie 애니메이션의 너비예요.\n * @param {number | '100%'} props.height - Lottie 애니메이션의 높이예요. 레이아웃 시프팅 방지를 위해 필수로 지정해야 해요.\n * @param {string} props.src - Lottie JSON 파일의 URL이에요. 안정성 검사를 위해서 `LottieView`의 `source`를 직접 사용하지 않아요. `src`를 사용해 주세요.\n * @param {number} [props.maxWidth] - Lottie 애니메이션의 최대 너비예요.\n * @param {boolean} [props.autoPlay=true] - 컴포넌트가 마운트되면 자동으로 애니메이션을 재생할지 여부예요.\n * @param {number} [props.speed=1] - 애니메이션의 재생 속도예요.\n * @returns {ReactElement} `lottie-react-native` 라이브러리의 `LottieView` 엘리먼트를 반환해요.\n *\n * @example\n *\n * ### Lottie 애니메이션 렌더링하기\n *\n * 다음 예시는 Lottie 애니메이션을 렌더링하고, 애니메이션 로드 실패 시 콘솔에 에러 메시지를 출력하는 방법을 보여줘요.\n *\n * ```tsx\n * import { Lottie } from '@react-native-bedrock/core';\n *\n * export function LottieExample() {\n * return (\n * <Lottie\n * height={100}\n * src=\"https://my-lottie-animation-url.com\"\n * autoPlay={true}\n * loop={false}\n * onAnimationFailure={() => {\n * console.log('Animation Failed');\n * }}\n * onAnimationFinish={() => {\n * console.log('Animation Finished');\n * }}\n * />\n * );\n * ```\n */\nexport function Lottie({\n width,\n maxWidth,\n height,\n src,\n autoPlay = true,\n speed = 1,\n style,\n onAnimationFailure,\n ...props\n}: Props) {\n const jsonData = useFetchResource(src, onAnimationFailure);\n // 애니메이션 데이터를 로드하지 못했을 때\n if (jsonData == null) {\n return <View testID=\"lottie-placeholder\" style={[{ opacity: 1, width, height }, style]} />;\n }\n\n if (hasFonts(jsonData) && __DEV__) {\n throw new Error(\n `Lottie 리소스에 커스텀 폰트가 포함되어 있어 안전하지 않아요. 커스텀 폰트를 지워주세요. source: ${src}`\n );\n }\n\n return (\n <LottieView\n source={ensureSafeLottie(jsonData)}\n autoPlay={autoPlay}\n speed={speed}\n style={[{ width, height, maxWidth }, style]}\n onAnimationFailure={onAnimationFailure}\n {...props}\n />\n );\n}\n", "export * from './Lottie';\n", "import { _ as _array_like_to_array } from \"./_array_like_to_array.js\";\n\nfunction _array_without_holes(arr) {\n if (Array.isArray(arr)) return _array_like_to_array(arr);\n}\nexport { _array_without_holes as _ };\n", "function _iterable_to_array(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) {\n return Array.from(iter);\n }\n}\nexport { _iterable_to_array as _ };\n", "function _non_iterable_spread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _non_iterable_spread as _ };\n", "import { _ as _array_without_holes } from \"./_array_without_holes.js\";\nimport { _ as _iterable_to_array } from \"./_iterable_to_array.js\";\nimport { _ as _non_iterable_spread } from \"./_non_iterable_spread.js\";\nimport { _ as _unsupported_iterable_to_array } from \"./_unsupported_iterable_to_array.js\";\n\nfunction _to_consumable_array(arr) {\n return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();\n}\nexport { _to_consumable_array as _ };\n", "import { useCallback, useEffect, useRef } from 'react';\n\nexport function usePreservedCallback<Callback extends (...args: any[]) => any>(callback: Callback) {\n const callbackRef = useRef<Callback>(callback);\n\n useEffect(() => {\n callbackRef.current = callback;\n }, [callback]);\n\n return useCallback(\n (...args: any[]) => {\n return callbackRef.current(...args);\n },\n [callbackRef]\n ) as Callback;\n}\n", "import { SvgUri, SvgXml } from '@react-native-bedrock/native/react-native-svg';\nimport { createElement, useEffect, useCallback, useState } from 'react';\nimport { View, type ViewStyle, type StyleProp } from 'react-native';\nimport { usePreservedCallback } from './hooks/usePreservedCallback';\nimport type { DimensionValue, NumberValue } from './types';\n\nexport interface SvgImageProps {\n url: string;\n width?: DimensionValue;\n height?: DimensionValue;\n style?: StyleProp<any>;\n testID?: string;\n onLoadStart?: () => void;\n onLoadEnd?: () => void;\n onError?: () => void;\n}\n\n/**\n * @name SvgImage\n * @category Components\n * @description `SvgImage` 컴포넌트는 외부에서 주어진 URL을 통해 SVG 이미지를 로드하고 렌더링해요.\n * @link https://github.com/software-mansion/react-native-svg/tree/v13.14.0/README.md\n *\n * @param {object} props - 컴포넌트에 전달되는 `props` 객체예요.\n * @param {string} props.url - 로드할 SVG 이미지의 URI 주소예요.\n * @param {number | string} [props.width = '100%'] - SVG 이미지의 가로 크기를 설정해요. 기본값은 '`100%`'예요.\n * @param {number | string} [props.height = '100%'] - SVG 이미지의 세로 크기를 설정해요. 기본값은 '`100%`'예요.\n * @param {object} props.style - 이미지 컴포넌트의 스타일을 설정해요.\n * @param {() => void} props.onLoadStart - SVG 이미지 리소스가 로드되기 시작할 때 호출되는 콜백 함수예요.\n * @param {() => void} props.onLoadEnd - SVG 이미지 리소스가 로드된 후 호출되는 콜백 함수예요.\n * @param {() => void} props.onError - SVG 이미지 로드 중 에러가 발생했을 때 호출되는 콜백 함수예요.\n *\n * @example\n * ```tsx\n * import { SvgImage } from './SvgImage';\n * import { View } from 'react-native';\n *\n * function MyComponent() {\n * return (\n * <View>\n * <SvgImage\n * url=\"https://example.com/icon.svg\"\n * width={100}\n * height={100}\n * onError={() => console.log('SVG 로드 중 에러가 발생했습니다')}\n * />\n * </View>\n * );\n * }\n * ```\n */\nexport function SvgImage({\n url,\n width = '100%',\n height = '100%',\n style,\n testID,\n onLoadStart: _onLoadStart,\n onLoadEnd: _onLoadEnd,\n onError: _onError,\n}: SvgImageProps) {\n const svgStyle = { width, height } as { width: NumberValue; height: NumberValue };\n const [data, setData] = useState<string | undefined>(undefined);\n const [isError, setIsError] = useState(false);\n\n const onLoadStart = usePreservedCallback(() => _onLoadStart?.());\n const onLoadEnd = usePreservedCallback(() => _onLoadEnd?.());\n const onError = usePreservedCallback(() => _onError?.());\n\n // 이미지가 화면에 그려지지 않았을 때 레이아웃을 영역을 차지하기 위한 컴포넌트\n const Fallback = useCallback(\n () => createElement(View, { style: { width, height } as ViewStyle }, null),\n [width, height]\n );\n\n useEffect(() => {\n let isMounted = true;\n\n /**\n * 먼저 fetch를 통해 XML 리소스를 받아오고, 실패한 경우 직접 URI를 Svg 컴포넌트로 전달하여 로드를 시도합니다\n */\n async function fetchSvg() {\n onLoadStart();\n\n try {\n const response = await fetch(url);\n const svg = await response.text();\n\n if (isMounted) {\n onLoadEnd();\n setData(svg);\n }\n } catch {\n setIsError(true);\n }\n }\n\n fetchSvg();\n\n return () => {\n isMounted = false;\n };\n }, [onLoadStart, onLoadEnd, url]);\n\n if (data == null) {\n return <Fallback />;\n }\n\n if (isError) {\n return (\n <SvgUri\n testID={testID}\n uri={url}\n style={style}\n {...svgStyle}\n onError={onError}\n onLoad={onLoadEnd}\n fallback={<Fallback />}\n />\n );\n }\n\n return <SvgXml testID={testID} xml={data} style={style} {...svgStyle} fallback={<Fallback />} />;\n}\n", "import FastImage, {\n FastImageProps,\n Source as FastImageSource,\n} from '@react-native-bedrock/native/react-native-fast-image';\nimport { StyleSheet } from 'react-native';\nimport { SvgImage } from './SvgImage';\n\ntype Source = {\n uri?: string;\n cache?: FastImageSource['cache'];\n};\n\ninterface ImageProps extends Omit<FastImageProps, 'source'> {\n source?: Source;\n}\n\n/**\n * @public\n * @tag Asset\n * @name Image\n * @category Components\n * @description `Image` 컴포넌트를 사용해서 비트맵 이미지(png, jpg 등)나 벡터 이미지(svg)를 로드하고 화면에 렌더링할 수 있어요. 이미지 형식에 맞게 자동으로 적절한 방식으로 렌더링돼요.\n * @link https://github.com/DylanVann/react-native-fast-image/tree/v8.6.3/README.md\n *\n * @param {object} [props] - 컴포넌트에 전달되는 `props` 객체예요.\n * @param {object} [props.style] - 이미지 컴포넌트의 스타일을 설정하는 객체예요. `width`, `height` 등 레이아웃 관련 속성을 포함할 수 있어요.\n * @param {object} [props.source] - 로드할 이미지 리소스에 대한 정보를 담고 있는 객체예요.\n * @param {string} [props.source.uri] - 로드할 이미지 리소스를 나타내는 URI 주소예요.\n * @param {'immutable' | 'web' | 'cacheOnly'} [props.source.cache = 'immutable'] - 이미지 캐시 전략을 설정할 수 있는 옵션이에요. 이 옵션은 비트맵 이미지에만 적용돼요. 기본값은 `immutable`이예요.\n * @param {() => void} [props.onLoadStart] - 이미지 로딩이 시작될 때 호출되는 콜백 함수예요.\n * @param {() => void} [props.onLoadEnd] - 이미지 로딩이 완료되었을 때 호출되는 콜백 함수예요.\n * @param {() => void} [props.onError] - 이미지 로드 중 에러가 발생했을 때 호출되는 콜백 함수예요.\n *\n * @example\n * ### 이미지 로드 및 렌더링 예시\n *\n * 다음 예시는 비트맵 및 벡터 이미지 리소스를 로드하고, 에러가 발생했을 때 `console.log`로 에러 메시지를 출력하는 방법을 보여줘요.\n *\n * ```tsx\n * import { View } from 'react-native';\n * import { Image } from 'react-native-bedrock';\n *\n * export function ImageExample() {\n * return (\n * <View>\n * <Image\n * source={{ uri: 'my-image-link' }}\n * style={{\n * width: 300,\n * height: 300,\n * borderWidth: 1,\n * }}\n * onError={() => {\n * console.log('이미지 로드 실패');\n * }}\n * />\n *\n * <Image\n * source={{ uri: 'my-svg-link' }}\n * style={{\n * width: 300,\n * height: 300,\n * borderWidth: 1,\n * }}\n * onError={() => {\n * console.log('이미지 로드 실패');\n * }}\n * />\n * </View>\n * );\n * }\n * ```\n */\nfunction Image(props: ImageProps) {\n if (typeof props.source === 'object' && props.source.uri?.endsWith('.svg')) {\n const style = StyleSheet.flatten(props.style);\n const width = style?.width;\n const height = style?.height;\n\n return (\n <SvgImage\n testID={props.testID}\n url={props.source.uri!}\n width={width}\n height={height}\n style={props.style}\n onLoadStart={props.onLoadStart}\n onLoadEnd={props.onLoadEnd}\n onError={props.onError}\n />\n );\n }\n\n return <FastImage {...props} />;\n}\n\nexport { Image };\n", "export * from './Image';\n", "/**\n * @swc/helpers 빌드 호환성을위한 폴리필\n *\n * @see https://github.com/swc-project/swc/blob/v1.4.15/packages/helpers/esm/_async_iterator.js#L3\n *\n * - babel: `Symbol.asyncIterator`에 대한 fallback이 존재하여 빌드 후 런타임 문제 없음\n * - swc: `Symbol.asyncIterator`에 대한 fallback이 없어 미리 정의해주어야 함\n */\nexport function setup() {\n if (typeof Symbol !== 'undefined' && !Symbol.asyncIterator) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n Symbol.asyncIterator = Symbol.for('@@asyncIterator');\n }\n}\n", "/**\n * There's a bug happening on iOS 10 where `ArrayBuffer.prototype.byteLength`\n * is not defined, but present on the object returned by the function/constructor\n * See https://github.com/charpeni/react-native-url-polyfill/issues/190\n * */\n\nimport {Platform} from 'react-native';\n\nconst majorVersionIOS = parseInt(Platform.Version, 10);\n\nif (Platform.OS === 'ios' && majorVersionIOS === 10) {\n if (\n Object.getOwnPropertyDescriptor(ArrayBuffer.prototype, 'byteLength') == null\n ) {\n // eslint-disable-next-line no-extend-native\n Object.defineProperty(ArrayBuffer.prototype, 'byteLength', {\n configurable: true,\n enumerable: false,\n get() {\n return null;\n },\n });\n }\n}\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 * @format\n * strict\n */\n\n'use strict';\n\n/**\n * Defines a lazily evaluated property on the supplied `object`.\n */\nfunction defineLazyObjectProperty(\n object,\n name,\n descriptor\n\n\n\n\n,\n) {\n const {get} = descriptor;\n const enumerable = descriptor.enumerable !== false;\n const writable = descriptor.writable !== false;\n\n let value;\n let valueSet = false;\n function getValue() {\n // WORKAROUND: A weird infinite loop occurs where calling `getValue` calls\n // `setValue` which calls `Object.defineProperty` which somehow triggers\n // `getValue` again. Adding `valueSet` breaks this loop.\n if (!valueSet) {\n // Calling `get()` here can trigger an infinite loop if it fails to\n // remove the getter on the property, which can happen when executing\n // JS in a V8 context. `valueSet = true` will break this loop, and\n // sets the value of the property to undefined, until the code in `get()`\n // finishes, at which point the property is set to the correct value.\n valueSet = true;\n setValue(get());\n }\n return value;\n }\n function setValue(newValue) {\n value = newValue;\n valueSet = true;\n Object.defineProperty(object, name, {\n value: newValue,\n configurable: true,\n enumerable,\n writable,\n });\n }\n\n Object.defineProperty(object, name, {\n get: getValue,\n set: setValue,\n configurable: true,\n enumerable,\n });\n}\n\nmodule.exports = defineLazyObjectProperty;\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 * strict\n * @format\n */\n\n'use strict';\n\nconst defineLazyObjectProperty = require('./defineLazyObjectProperty');\n\n/**\n * Sets an object's property. If a property with the same name exists, this will\n * replace it but maintain its descriptor configuration. The property will be\n * replaced with a lazy getter.\n *\n * In DEV mode the original property value will be preserved as `original[PropertyName]`\n * so that, if necessary, it can be restored. For example, if you want to route\n * network requests through DevTools (to trace them):\n *\n * global.XMLHttpRequest = global.originalXMLHttpRequest;\n *\n * @see https://github.com/facebook/react-native/issues/934\n */\nfunction polyfillObjectProperty(\n object,\n name,\n getValue,\n) {\n const descriptor = Object.getOwnPropertyDescriptor(object, name);\n if (__DEV__ && descriptor) {\n const backupName = `original${name[0].toUpperCase()}${name.substr(1)}`;\n Object.defineProperty(object, backupName, descriptor);\n }\n\n const {enumerable, writable, configurable = false} = descriptor || {};\n if (descriptor && !configurable) {\n console.error('Failed to set polyfill. ' + name + ' is not configurable.');\n return;\n }\n\n defineLazyObjectProperty(object, name, {\n get: getValue,\n enumerable: enumerable !== false,\n writable: writable !== false,\n });\n}\n\nfunction polyfillGlobal(name, getValue) {\n polyfillObjectProperty(global, name, getValue);\n}\n\nmodule.exports = {polyfillObjectProperty, polyfillGlobal};\n", "{\n \"name\": \"react-native-url-polyfill\",\n \"version\": \"1.3.0\",\n \"description\": \"A lightweight and trustworthy URL polyfill for React Native\",\n \"keywords\": [\n \"URL\",\n \"URLSearchParams\",\n \"polyfill\",\n \"react native\",\n \"whatwg-url\"\n ],\n \"bugs\": {\n \"url\": \"https://github.com/charpeni/react-native-url-polyfill/issues\"\n },\n \"homepage\": \"https://github.com/charpeni/react-native-url-polyfill\",\n \"readme\": \"https://github.com/charpeni/react-native-url-polyfill#readme\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/charpeni/react-native-url-polyfill.git\"\n },\n \"main\": \"index.js\",\n \"types\": \"index.d.ts\",\n \"scripts\": {\n \"test\": \"jest\",\n \"lint\": \"eslint .\",\n \"bundle-size\": \"node scripts/bundle-size\"\n },\n \"author\": \"Nicolas Charpentier <nicolas.charpentier079@gmail.com>\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"whatwg-url-without-unicode\": \"8.0.0-3\"\n },\n \"devDependencies\": {\n \"@react-native-community/eslint-config\": \"^2.0.0\",\n \"chalk\": \"^4.0.0\",\n \"eslint\": \"^7.1.0\",\n \"eslint-plugin-prettier\": \"^3.1.3\",\n \"execa\": \"^5.0.0\",\n \"filesize\": \"^6.1.0\",\n \"husky\": \">=1\",\n \"jest\": \"^26.0.1\",\n \"lint-staged\": \">=8\",\n \"metro-react-native-babel-preset\": \"^0.65.0\",\n \"ora\": \"^5.3.0\",\n \"prepend-file\": \"^1.3.1\",\n \"prettier\": \"^2.0.5\",\n \"react\": \"16.13.1\",\n \"react-native\": \"0.63.4\",\n \"rmfr\": \"^2.0.0\",\n \"source-map-explorer\": \"^2.4.2\",\n \"tmp\": \"^0.2.1\",\n \"typescript\": \"^4.1.3\",\n \"uuid\": \"^8.1.0\"\n },\n \"peerDependencies\": {\n \"react-native\": \"*\"\n },\n \"jest\": {\n \"preset\": \"react-native\",\n \"testPathIgnorePatterns\": [\n \"/node_modules/\",\n \"./detox/\"\n ]\n },\n \"husky\": {\n \"hooks\": {\n \"pre-commit\": \"lint-staged\"\n }\n },\n \"lint-staged\": {\n \"*.js\": [\n \"eslint --fix\",\n \"git add\"\n ]\n }\n}\n", "function _class_call_check(instance, Constructor) {\n if (!(instance instanceof Constructor)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _class_call_check as _ };\n", "function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n\n if (\"value\" in descriptor) descriptor.writable = true;\n\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nfunction _create_class(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n\n return Constructor;\n}\nexport { _create_class as _ };\n", "\"use strict\";\n\nfunction _(message, opts) {\n return `${opts && opts.context ? opts.context : \"Value\"} ${message}.`;\n}\n\nfunction type(V) {\n if (V === null) {\n return \"Null\";\n }\n switch (typeof V) {\n case \"undefined\":\n return \"Undefined\";\n case \"boolean\":\n return \"Boolean\";\n case \"number\":\n return \"Number\";\n case \"string\":\n return \"String\";\n case \"symbol\":\n return \"Symbol\";\n case \"object\":\n // Falls through\n case \"function\":\n // Falls through\n default:\n // Per ES spec, typeof returns an implemention-defined value that is not any of the existing ones for\n // uncallable non-standard exotic objects. Yet Type() which the Web IDL spec depends on returns Object for\n // such cases. So treat the default case as an object.\n return \"Object\";\n }\n}\n\n// Round x to the nearest integer, choosing the even integer if it lies halfway between two.\nfunction evenRound(x) {\n // There are four cases for numbers with fractional part being .5:\n //\n // case | x | floor(x) | round(x) | expected | x <> 0 | x % 1 | x & 1 | example\n // 1 | 2n + 0.5 | 2n | 2n + 1 | 2n | > | 0.5 | 0 | 0.5 -> 0\n // 2 | 2n + 1.5 | 2n + 1 | 2n + 2 | 2n + 2 | > | 0.5 | 1 | 1.5 -> 2\n // 3 | -2n - 0.5 | -2n - 1 | -2n | -2n | < | -0.5 | 0 | -0.5 -> 0\n // 4 | -2n - 1.5 | -2n - 2 | -2n - 1 | -2n - 2 | < | -0.5 | 1 | -1.5 -> -2\n // (where n is a non-negative integer)\n //\n // Branch here for cases 1 and 4\n if ((x > 0 && (x % 1) === +0.5 && (x & 1) === 0) ||\n (x < 0 && (x % 1) === -0.5 && (x & 1) === 1)) {\n return censorNegativeZero(Math.floor(x));\n }\n\n return censorNegativeZero(Math.round(x));\n}\n\nfunction integerPart(n) {\n return censorNegativeZero(Math.trunc(n));\n}\n\nfunction sign(x) {\n return x < 0 ? -1 : 1;\n}\n\nfunction modulo(x, y) {\n // https://tc39.github.io/ecma262/#eqn-modulo\n // Note that http://stackoverflow.com/a/4467559/3191 does NOT work for large modulos\n const signMightNotMatch = x % y;\n if (sign(y) !== sign(signMightNotMatch)) {\n return signMightNotMatch + y;\n }\n return signMightNotMatch;\n}\n\nfunction censorNegativeZero(x) {\n return x === 0 ? 0 : x;\n}\n\nfunction createIntegerConversion(bitLength, typeOpts) {\n const isSigned = !typeOpts.unsigned;\n\n let lowerBound;\n let upperBound;\n if (bitLength === 64) {\n upperBound = Math.pow(2, 53) - 1;\n lowerBound = !isSigned ? 0 : -Math.pow(2, 53) + 1;\n } else if (!isSigned) {\n lowerBound = 0;\n upperBound = Math.pow(2, bitLength) - 1;\n } else {\n lowerBound = -Math.pow(2, bitLength - 1);\n upperBound = Math.pow(2, bitLength - 1) - 1;\n }\n\n const twoToTheBitLength = Math.pow(2, bitLength);\n const twoToOneLessThanTheBitLength = Math.pow(2, bitLength - 1);\n\n return (V, opts) => {\n if (opts === undefined) {\n opts = {};\n }\n\n let x = +V;\n x = censorNegativeZero(x); // Spec discussion ongoing: https://github.com/heycam/webidl/issues/306\n\n if (opts.enforceRange) {\n if (!Number.isFinite(x)) {\n throw new TypeError(_(\"is not a finite number\", opts));\n }\n\n x = integerPart(x);\n\n if (x < lowerBound || x > upperBound) {\n throw new TypeError(_(\n `is outside the accepted range of ${lowerBound} to ${upperBound}, inclusive`, opts));\n }\n\n return x;\n }\n\n if (!Number.isNaN(x) && opts.clamp) {\n x = Math.min(Math.max(x, lowerBound), upperBound);\n x = evenRound(x);\n return x;\n }\n\n if (!Number.isFinite(x) || x === 0) {\n return 0;\n }\n x = integerPart(x);\n\n // Math.pow(2, 64) is not accurately representable in JavaScript, so try to avoid these per-spec operations if\n // possible. Hopefully it's an optimization for the non-64-bitLength cases too.\n if (x >= lowerBound && x <= upperBound) {\n return x;\n }\n\n // These will not work great for bitLength of 64, but oh well. See the README for more details.\n x = modulo(x, twoToTheBitLength);\n if (isSigned && x >= twoToOneLessThanTheBitLength) {\n return x - twoToTheBitLength;\n }\n return x;\n };\n}\n\nexports.any = V => {\n return V;\n};\n\nexports.void = function () {\n return undefined;\n};\n\nexports.boolean = function (val) {\n return !!val;\n};\n\nexports.byte = createIntegerConversion(8, { unsigned: false });\nexports.octet = createIntegerConversion(8, { unsigned: true });\n\nexports.short = createIntegerConversion(16, { unsigned: false });\nexports[\"unsigned short\"] = createIntegerConversion(16, { unsigned: true });\n\nexports.long = createIntegerConversion(32, { unsigned: false });\nexports[\"unsigned long\"] = createIntegerConversion(32, { unsigned: true });\n\nexports[\"long long\"] = createIntegerConversion(64, { unsigned: false });\nexports[\"unsigned long long\"] = createIntegerConversion(64, { unsigned: true });\n\nexports.double = (V, opts) => {\n const x = +V;\n\n if (!Number.isFinite(x)) {\n throw new TypeError(_(\"is not a finite floating-point value\", opts));\n }\n\n return x;\n};\n\nexports[\"unrestricted double\"] = V => {\n const x = +V;\n\n return x;\n};\n\nexports.float = (V, opts) => {\n const x = +V;\n\n if (!Number.isFinite(x)) {\n throw new TypeError(_(\"is not a finite floating-point value\", opts));\n }\n\n if (Object.is(x, -0)) {\n return x;\n }\n\n const y = Math.fround(x);\n\n if (!Number.isFinite(y)) {\n throw new TypeError(_(\"is outside the range of a single-precision floating-point value\", opts));\n }\n\n return y;\n};\n\nexports[\"unrestricted float\"] = V => {\n const x = +V;\n\n if (isNaN(x)) {\n return x;\n }\n\n if (Object.is(x, -0)) {\n return x;\n }\n\n return Math.fround(x);\n};\n\nexports.DOMString = function (V, opts) {\n if (opts === undefined) {\n opts = {};\n }\n\n if (opts.treatNullAsEmptyString && V === null) {\n return \"\";\n }\n\n if (typeof V === \"symbol\") {\n throw new TypeError(_(\"is a symbol, which cannot be converted to a string\", opts));\n }\n\n return String(V);\n};\n\nexports.ByteString = (V, opts) => {\n const x = exports.DOMString(V, opts);\n let c;\n for (let i = 0; (c = x.codePointAt(i)) !== undefined; ++i) {\n if (c > 255) {\n throw new TypeError(_(\"is not a valid ByteString\", opts));\n }\n }\n\n return x;\n};\n\nexports.USVString = (V, opts) => {\n const S = exports.DOMString(V, opts);\n const n = S.length;\n const U = [];\n for (let i = 0; i < n; ++i) {\n const c = S.charCodeAt(i);\n if (c < 0xD800 || c > 0xDFFF) {\n U.push(String.fromCodePoint(c));\n } else if (0xDC00 <= c && c <= 0xDFFF) {\n U.push(String.fromCodePoint(0xFFFD));\n } else if (i === n - 1) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n const d = S.charCodeAt(i + 1);\n if (0xDC00 <= d && d <= 0xDFFF) {\n const a = c & 0x3FF;\n const b = d & 0x3FF;\n U.push(String.fromCodePoint((2 << 15) + ((2 << 9) * a) + b));\n ++i;\n } else {\n U.push(String.fromCodePoint(0xFFFD));\n }\n }\n }\n\n return U.join(\"\");\n};\n\nexports.object = (V, opts) => {\n if (type(V) !== \"Object\") {\n throw new TypeError(_(\"is not an object\", opts));\n }\n\n return V;\n};\n\n// Not exported, but used in Function and VoidFunction.\n\n// Neither Function nor VoidFunction is defined with [TreatNonObjectAsNull], so\n// handling for that is omitted.\nfunction convertCallbackFunction(V, opts) {\n if (typeof V !== \"function\") {\n throw new TypeError(_(\"is not a function\", opts));\n }\n return V;\n}\n\nconst abByteLengthGetter =\n Object.getOwnPropertyDescriptor(ArrayBuffer.prototype, \"byteLength\").get;\n\nfunction isArrayBuffer(V) {\n try {\n abByteLengthGetter.call(V);\n return true;\n } catch (e) {\n return false;\n }\n}\n\n// I don't think we can reliably detect detached ArrayBuffers.\nexports.ArrayBuffer = (V, opts) => {\n if (!isArrayBuffer(V)) {\n throw new TypeError(_(\"is not a view on an ArrayBuffer object\", opts));\n }\n return V;\n};\n\nconst dvByteLengthGetter =\n Object.getOwnPropertyDescriptor(DataView.prototype, \"byteLength\").get;\nexports.DataView = (V, opts) => {\n try {\n dvByteLengthGetter.call(V);\n return V;\n } catch (e) {\n throw new TypeError(_(\"is not a view on an DataView object\", opts));\n }\n};\n\n[\n Int8Array, Int16Array, Int32Array, Uint8Array,\n Uint16Array, Uint32Array, Uint8ClampedArray, Float32Array, Float64Array\n].forEach(func => {\n const name = func.name;\n const article = /^[AEIOU]/.test(name) ? \"an\" : \"a\";\n exports[name] = (V, opts) => {\n if (!ArrayBuffer.isView(V) || V.constructor.name !== name) {\n throw new TypeError(_(`is not ${article} ${name} object`, opts));\n }\n\n return V;\n };\n});\n\n// Common definitions\n\nexports.ArrayBufferView = (V, opts) => {\n if (!ArrayBuffer.isView(V)) {\n throw new TypeError(_(\"is not a view on an ArrayBuffer object\", opts));\n }\n\n return V;\n};\n\nexports.BufferSource = (V, opts) => {\n if (!ArrayBuffer.isView(V) && !isArrayBuffer(V)) {\n throw new TypeError(_(\"is not an ArrayBuffer object or a view on one\", opts));\n }\n\n return V;\n};\n\nexports.DOMTimeStamp = exports[\"unsigned long long\"];\n\nexports.Function = convertCallbackFunction;\n\nexports.VoidFunction = convertCallbackFunction;\n", "\"use strict\";\n\n// Returns \"Type(value) is Object\" in ES terminology.\nfunction isObject(value) {\n return typeof value === \"object\" && value !== null || typeof value === \"function\";\n}\n\nfunction hasOwn(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nconst wrapperSymbol = Symbol(\"wrapper\");\nconst implSymbol = Symbol(\"impl\");\nconst sameObjectCaches = Symbol(\"SameObject caches\");\nconst ctorRegistrySymbol = Symbol.for(\"[webidl2js] constructor registry\");\n\nfunction getSameObject(wrapper, prop, creator) {\n if (!wrapper[sameObjectCaches]) {\n wrapper[sameObjectCaches] = Object.create(null);\n }\n\n if (prop in wrapper[sameObjectCaches]) {\n return wrapper[sameObjectCaches][prop];\n }\n\n wrapper[sameObjectCaches][prop] = creator();\n return wrapper[sameObjectCaches][prop];\n}\n\nfunction wrapperForImpl(impl) {\n return impl ? impl[wrapperSymbol] : null;\n}\n\nfunction implForWrapper(wrapper) {\n return wrapper ? wrapper[implSymbol] : null;\n}\n\nfunction tryWrapperForImpl(impl) {\n const wrapper = wrapperForImpl(impl);\n return wrapper ? wrapper : impl;\n}\n\nfunction tryImplForWrapper(wrapper) {\n const impl = implForWrapper(wrapper);\n return impl ? impl : wrapper;\n}\n\nconst iterInternalSymbol = Symbol(\"internal\");\nconst IteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()));\n\nfunction isArrayIndexPropName(P) {\n if (typeof P !== \"string\") {\n return false;\n }\n const i = P >>> 0;\n if (i === Math.pow(2, 32) - 1) {\n return false;\n }\n const s = `${i}`;\n if (P !== s) {\n return false;\n }\n return true;\n}\n\nconst byteLengthGetter =\n Object.getOwnPropertyDescriptor(ArrayBuffer.prototype, \"byteLength\").get;\nfunction isArrayBuffer(value) {\n try {\n byteLengthGetter.call(value);\n return true;\n } catch (e) {\n return false;\n }\n}\n\nconst supportsPropertyIndex = Symbol(\"supports property index\");\nconst supportedPropertyIndices = Symbol(\"supported property indices\");\nconst supportsPropertyName = Symbol(\"supports property name\");\nconst supportedPropertyNames = Symbol(\"supported property names\");\nconst indexedGet = Symbol(\"indexed property get\");\nconst indexedSetNew = Symbol(\"indexed property set new\");\nconst indexedSetExisting = Symbol(\"indexed property set existing\");\nconst namedGet = Symbol(\"named property get\");\nconst namedSetNew = Symbol(\"named property set new\");\nconst namedSetExisting = Symbol(\"named property set existing\");\nconst namedDelete = Symbol(\"named property delete\");\n\nmodule.exports = exports = {\n isObject,\n hasOwn,\n wrapperSymbol,\n implSymbol,\n getSameObject,\n ctorRegistrySymbol,\n wrapperForImpl,\n implForWrapper,\n tryWrapperForImpl,\n tryImplForWrapper,\n iterInternalSymbol,\n IteratorPrototype,\n isArrayBuffer,\n isArrayIndexPropName,\n supportsPropertyIndex,\n supportedPropertyIndices,\n supportsPropertyName,\n supportedPropertyNames,\n indexedGet,\n indexedSetNew,\n indexedSetExisting,\n namedGet,\n namedSetNew,\n namedSetExisting,\n namedDelete\n};\n", "'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n", "/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n", "/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nvar K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n var arr = new Uint8Array(1)\n var proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n var buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n var valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n var b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(\n value[Symbol.toPrimitive]('string'), encodingOrOffset, length\n )\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n var length = byteLength(string, encoding) | 0\n var buf = createBuffer(length)\n\n var actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n var buf = createBuffer(length)\n for (var i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n var copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n var buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n var buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n Buffer.from(buf).copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n var len = string.length\n var mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return '<Buffer ' + str + '>'\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n var strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (var i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n var limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n var limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n var len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nvar hexSliceLookupTable = (function () {\n var alphabet = '0123456789abcdef'\n var table = new Array(256)\n for (var i = 0; i < 16; ++i) {\n var i16 = i * 16\n for (var j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n", "'use strict';\n\n/** Highest positive signed 32-bit float value */\nconst maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\n\n/** Bootstring parameters */\nconst base = 36;\nconst tMin = 1;\nconst tMax = 26;\nconst skew = 38;\nconst damp = 700;\nconst initialBias = 72;\nconst initialN = 128; // 0x80\nconst delimiter = '-'; // '\\x2D'\n\n/** Regular expressions */\nconst regexPunycode = /^xn--/;\nconst regexNonASCII = /[^\\0-\\x7E]/; // non-ASCII chars\nconst regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\n\n/** Error messages */\nconst errors = {\n\t'overflow': 'Overflow: input needs wider integers to process',\n\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t'invalid-input': 'Invalid input'\n};\n\n/** Convenience shortcuts */\nconst baseMinusTMin = base - tMin;\nconst floor = Math.floor;\nconst stringFromCharCode = String.fromCharCode;\n\n/*--------------------------------------------------------------------------*/\n\n/**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\nfunction error(type) {\n\tthrow new RangeError(errors[type]);\n}\n\n/**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\nfunction map(array, fn) {\n\tconst result = [];\n\tlet length = array.length;\n\twhile (length--) {\n\t\tresult[length] = fn(array[length]);\n\t}\n\treturn result;\n}\n\n/**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {Array} A new string of characters returned by the callback\n * function.\n */\nfunction mapDomain(string, fn) {\n\tconst parts = string.split('@');\n\tlet result = '';\n\tif (parts.length > 1) {\n\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t// the local part (i.e. everything up to `@`) intact.\n\t\tresult = parts[0] + '@';\n\t\tstring = parts[1];\n\t}\n\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\tstring = string.replace(regexSeparators, '\\x2E');\n\tconst labels = string.split('.');\n\tconst encoded = map(labels, fn).join('.');\n\treturn result + encoded;\n}\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see <https://mathiasbynens.be/notes/javascript-encoding>\n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\nfunction ucs2decode(string) {\n\tconst output = [];\n\tlet counter = 0;\n\tconst length = string.length;\n\twhile (counter < length) {\n\t\tconst value = string.charCodeAt(counter++);\n\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t// It's a high surrogate, and there is a next character.\n\t\t\tconst extra = string.charCodeAt(counter++);\n\t\t\tif ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t} else {\n\t\t\t\t// It's an unmatched surrogate; only append this code unit, in case the\n\t\t\t\t// next code unit is the high surrogate of a surrogate pair.\n\t\t\t\toutput.push(value);\n\t\t\t\tcounter--;\n\t\t\t}\n\t\t} else {\n\t\t\toutput.push(value);\n\t\t}\n\t}\n\treturn output;\n}\n\n/**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\nconst ucs2encode = array => String.fromCodePoint(...array);\n\n/**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\nconst basicToDigit = function(codePoint) {\n\tif (codePoint - 0x30 < 0x0A) {\n\t\treturn codePoint - 0x16;\n\t}\n\tif (codePoint - 0x41 < 0x1A) {\n\t\treturn codePoint - 0x41;\n\t}\n\tif (codePoint - 0x61 < 0x1A) {\n\t\treturn codePoint - 0x61;\n\t}\n\treturn base;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\nconst digitToBasic = function(digit, flag) {\n\t// 0..25 map to ASCII a..z or A..Z\n\t// 26..35 map to ASCII 0..9\n\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\nconst adapt = function(delta, numPoints, firstTime) {\n\tlet k = 0;\n\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\tdelta += floor(delta / numPoints);\n\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\tdelta = floor(delta / baseMinusTMin);\n\t}\n\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\nconst decode = function(input) {\n\t// Don't use UCS-2.\n\tconst output = [];\n\tconst inputLength = input.length;\n\tlet i = 0;\n\tlet n = initialN;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points: let `basic` be the number of input code\n\t// points before the last delimiter, or `0` if there is none, then copy\n\t// the first basic code points to the output.\n\n\tlet basic = input.lastIndexOf(delimiter);\n\tif (basic < 0) {\n\t\tbasic = 0;\n\t}\n\n\tfor (let j = 0; j < basic; ++j) {\n\t\t// if it's not a basic code point\n\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\terror('not-basic');\n\t\t}\n\t\toutput.push(input.charCodeAt(j));\n\t}\n\n\t// Main decoding loop: start just after the last delimiter if any basic code\n\t// points were copied; start at the beginning otherwise.\n\n\tfor (let index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t// `index` is the index of the next character to be consumed.\n\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t// which gets added to `i`. The overflow checking is easier\n\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t// value at the end to obtain `delta`.\n\t\tlet oldi = i;\n\t\tfor (let w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\tif (index >= inputLength) {\n\t\t\t\terror('invalid-input');\n\t\t\t}\n\n\t\t\tconst digit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\ti += digit * w;\n\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\tif (digit < t) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst baseMinusT = base - t;\n\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tw *= baseMinusT;\n\n\t\t}\n\n\t\tconst out = output.length + 1;\n\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t// incrementing `n` each time, so we'll fix that now:\n\t\tif (floor(i / out) > maxInt - n) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tn += floor(i / out);\n\t\ti %= out;\n\n\t\t// Insert `n` at position `i` of the output.\n\t\toutput.splice(i++, 0, n);\n\n\t}\n\n\treturn String.fromCodePoint(...output);\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\nconst encode = function(input) {\n\tconst output = [];\n\n\t// Convert the input in UCS-2 to an array of Unicode code points.\n\tinput = ucs2decode(input);\n\n\t// Cache the length.\n\tlet inputLength = input.length;\n\n\t// Initialize the state.\n\tlet n = initialN;\n\tlet delta = 0;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points.\n\tfor (const currentValue of input) {\n\t\tif (currentValue < 0x80) {\n\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t}\n\t}\n\n\tlet basicLength = output.length;\n\tlet handledCPCount = basicLength;\n\n\t// `handledCPCount` is the number of code points that have been handled;\n\t// `basicLength` is the number of basic code points.\n\n\t// Finish the basic string with a delimiter unless it's empty.\n\tif (basicLength) {\n\t\toutput.push(delimiter);\n\t}\n\n\t// Main encoding loop:\n\twhile (handledCPCount < inputLength) {\n\n\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t// larger one:\n\t\tlet m = maxInt;\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\tm = currentValue;\n\t\t\t}\n\t\t}\n\n\t\t// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n\t\t// but guard against overflow.\n\t\tconst handledCPCountPlusOne = handledCPCount + 1;\n\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\tn = m;\n\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\t\t\tif (currentValue == n) {\n\t\t\t\t// Represent delta as a generalized variable-length integer.\n\t\t\t\tlet q = delta;\n\t\t\t\tfor (let k = base; /* no condition */; k += base) {\n\t\t\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tconst qMinusT = q - t;\n\t\t\t\t\tconst baseMinusT = base - t;\n\t\t\t\t\toutput.push(\n\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t);\n\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t}\n\n\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\tdelta = 0;\n\t\t\t\t++handledCPCount;\n\t\t\t}\n\t\t}\n\n\t\t++delta;\n\t\t++n;\n\n\t}\n\treturn output.join('');\n};\n\n/**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\nconst toUnicode = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexPunycode.test(string)\n\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t: string;\n\t});\n};\n\n/**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\nconst toASCII = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexNonASCII.test(string)\n\t\t\t? 'xn--' + encode(string)\n\t\t\t: string;\n\t});\n};\n\n/*--------------------------------------------------------------------------*/\n\n/** Define the public API */\nconst punycode = {\n\t/**\n\t * A string representing the current Punycode.js version number.\n\t * @memberOf punycode\n\t * @type String\n\t */\n\t'version': '2.1.0',\n\t/**\n\t * An object of methods to convert from JavaScript's internal character\n\t * representation (UCS-2) to Unicode code points, and back.\n\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t * @memberOf punycode\n\t * @type Object\n\t */\n\t'ucs2': {\n\t\t'decode': ucs2decode,\n\t\t'encode': ucs2encode\n\t},\n\t'decode': decode,\n\t'encode': encode,\n\t'toASCII': toASCII,\n\t'toUnicode': toUnicode\n};\n\nmodule.exports = punycode;\n", "\"use strict\";\n\nfunction isASCIIDigit(c) {\n return c >= 0x30 && c <= 0x39;\n}\n\nfunction isASCIIAlpha(c) {\n return (c >= 0x41 && c <= 0x5A) || (c >= 0x61 && c <= 0x7A);\n}\n\nfunction isASCIIAlphanumeric(c) {\n return isASCIIAlpha(c) || isASCIIDigit(c);\n}\n\nfunction isASCIIHex(c) {\n return isASCIIDigit(c) || (c >= 0x41 && c <= 0x46) || (c >= 0x61 && c <= 0x66);\n}\n\nmodule.exports = {\n isASCIIDigit,\n isASCIIAlpha,\n isASCIIAlphanumeric,\n isASCIIHex\n};\n", "\"use strict\";\nconst { Buffer } = require(\"buffer/\");\n\nconst { isASCIIHex } = require(\"./infra\");\n\nfunction strictlySplitByteSequence(buf, cp) {\n const list = [];\n let last = 0;\n let i = buf.indexOf(cp);\n while (i >= 0) {\n list.push(buf.slice(last, i));\n last = i + 1;\n i = buf.indexOf(cp, last);\n }\n if (last !== buf.length) {\n list.push(buf.slice(last));\n }\n return list;\n}\n\nfunction replaceByteInByteSequence(buf, from, to) {\n let i = buf.indexOf(from);\n while (i >= 0) {\n buf[i] = to;\n i = buf.indexOf(from, i + 1);\n }\n return buf;\n}\n\nfunction percentEncode(c) {\n let hex = c.toString(16).toUpperCase();\n if (hex.length === 1) {\n hex = \"0\" + hex;\n }\n\n return \"%\" + hex;\n}\n\nfunction percentDecode(input) {\n const output = Buffer.alloc(input.byteLength);\n let ptr = 0;\n for (let i = 0; i < input.length; ++i) {\n if (input[i] !== 37 || !isASCIIHex(input[i + 1]) || !isASCIIHex(input[i + 2])) {\n output[ptr++] = input[i];\n } else {\n output[ptr++] = parseInt(input.slice(i + 1, i + 3).toString(), 16);\n i += 2;\n }\n }\n return output.slice(0, ptr);\n}\n\nfunction parseUrlencoded(input) {\n const sequences = strictlySplitByteSequence(input, 38);\n const output = [];\n for (const bytes of sequences) {\n if (bytes.length === 0) {\n continue;\n }\n\n let name;\n let value;\n const indexOfEqual = bytes.indexOf(61);\n\n if (indexOfEqual >= 0) {\n name = bytes.slice(0, indexOfEqual);\n value = bytes.slice(indexOfEqual + 1);\n } else {\n name = bytes;\n value = Buffer.alloc(0);\n }\n\n name = replaceByteInByteSequence(Buffer.from(name), 43, 32);\n value = replaceByteInByteSequence(Buffer.from(value), 43, 32);\n\n output.push([percentDecode(name).toString(), percentDecode(value).toString()]);\n }\n return output;\n}\n\nfunction serializeUrlencodedByte(input) {\n let output = \"\";\n for (const byte of input) {\n if (byte === 32) {\n output += \"+\";\n } else if (byte === 42 ||\n byte === 45 ||\n byte === 46 ||\n (byte >= 48 && byte <= 57) ||\n (byte >= 65 && byte <= 90) ||\n byte === 95 ||\n (byte >= 97 && byte <= 122)) {\n output += String.fromCodePoint(byte);\n } else {\n output += percentEncode(byte);\n }\n }\n return output;\n}\n\nfunction serializeUrlencoded(tuples, encodingOverride = undefined) {\n let encoding = \"utf-8\";\n if (encodingOverride !== undefined) {\n encoding = encodingOverride;\n }\n\n let output = \"\";\n for (const [i, tuple] of tuples.entries()) {\n // TODO: handle encoding override\n const name = serializeUrlencodedByte(Buffer.from(tuple[0]));\n let value = tuple[1];\n if (tuple.length > 2 && tuple[2] !== undefined) {\n if (tuple[2] === \"hidden\" && name === \"_charset_\") {\n value = encoding;\n } else if (tuple[2] === \"file\") {\n // value is a File object\n value = value.name;\n }\n }\n value = serializeUrlencodedByte(Buffer.from(value));\n if (i !== 0) {\n output += \"&\";\n }\n output += `${name}=${value}`;\n }\n return output;\n}\n\nmodule.exports = {\n percentEncode,\n percentDecode,\n\n // application/x-www-form-urlencoded string parser\n parseUrlencoded(input) {\n return parseUrlencoded(Buffer.from(input));\n },\n\n // application/x-www-form-urlencoded serializer\n serializeUrlencoded\n};\n", "\"use strict\";\nconst { Buffer } = require(\"buffer/\");\nconst punycode = require(\"punycode\");\n\nconst infra = require(\"./infra\");\nconst { percentEncode, percentDecode } = require(\"./urlencoded\");\n\nconst specialSchemes = {\n ftp: 21,\n file: null,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443\n};\n\nconst failure = Symbol(\"failure\");\n\nfunction countSymbols(str) {\n return punycode.ucs2.decode(str).length;\n}\n\nfunction at(input, idx) {\n const c = input[idx];\n return isNaN(c) ? undefined : String.fromCodePoint(c);\n}\n\nfunction isSingleDot(buffer) {\n return buffer === \".\" || buffer.toLowerCase() === \"%2e\";\n}\n\nfunction isDoubleDot(buffer) {\n buffer = buffer.toLowerCase();\n return buffer === \"..\" || buffer === \"%2e.\" || buffer === \".%2e\" || buffer === \"%2e%2e\";\n}\n\nfunction isWindowsDriveLetterCodePoints(cp1, cp2) {\n return infra.isASCIIAlpha(cp1) && (cp2 === 58 || cp2 === 124);\n}\n\nfunction isWindowsDriveLetterString(string) {\n return string.length === 2 && infra.isASCIIAlpha(string.codePointAt(0)) && (string[1] === \":\" || string[1] === \"|\");\n}\n\nfunction isNormalizedWindowsDriveLetterString(string) {\n return string.length === 2 && infra.isASCIIAlpha(string.codePointAt(0)) && string[1] === \":\";\n}\n\nfunction containsForbiddenHostCodePoint(string) {\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|%|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\n}\n\nfunction containsForbiddenHostCodePointExcludingPercent(string) {\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\n}\n\nfunction isSpecialScheme(scheme) {\n return specialSchemes[scheme] !== undefined;\n}\n\nfunction isSpecial(url) {\n return isSpecialScheme(url.scheme);\n}\n\nfunction isNotSpecial(url) {\n return !isSpecialScheme(url.scheme);\n}\n\nfunction defaultPort(scheme) {\n return specialSchemes[scheme];\n}\n\nfunction utf8PercentEncode(c) {\n const buf = Buffer.from(c);\n\n let str = \"\";\n\n for (let i = 0; i < buf.length; ++i) {\n str += percentEncode(buf[i]);\n }\n\n return str;\n}\n\nfunction isC0ControlPercentEncode(c) {\n return c <= 0x1F || c > 0x7E;\n}\n\nconst extraUserinfoPercentEncodeSet =\n new Set([47, 58, 59, 61, 64, 91, 92, 93, 94, 124]);\nfunction isUserinfoPercentEncode(c) {\n return isPathPercentEncode(c) || extraUserinfoPercentEncodeSet.has(c);\n}\n\nconst extraFragmentPercentEncodeSet = new Set([32, 34, 60, 62, 96]);\nfunction isFragmentPercentEncode(c) {\n return isC0ControlPercentEncode(c) || extraFragmentPercentEncodeSet.has(c);\n}\n\nconst extraPathPercentEncodeSet = new Set([35, 63, 123, 125]);\nfunction isPathPercentEncode(c) {\n return isFragmentPercentEncode(c) || extraPathPercentEncodeSet.has(c);\n}\n\nfunction percentEncodeChar(c, encodeSetPredicate) {\n const cStr = String.fromCodePoint(c);\n\n if (encodeSetPredicate(c)) {\n return utf8PercentEncode(cStr);\n }\n\n return cStr;\n}\n\nfunction parseIPv4Number(input) {\n let R = 10;\n\n if (input.length >= 2 && input.charAt(0) === \"0\" && input.charAt(1).toLowerCase() === \"x\") {\n input = input.substring(2);\n R = 16;\n } else if (input.length >= 2 && input.charAt(0) === \"0\") {\n input = input.substring(1);\n R = 8;\n }\n\n if (input === \"\") {\n return 0;\n }\n\n let regex = /[^0-7]/;\n if (R === 10) {\n regex = /[^0-9]/;\n }\n if (R === 16) {\n regex = /[^0-9A-Fa-f]/;\n }\n\n if (regex.test(input)) {\n return failure;\n }\n\n return parseInt(input, R);\n}\n\nfunction parseIPv4(input) {\n const parts = input.split(\".\");\n if (parts[parts.length - 1] === \"\") {\n if (parts.length > 1) {\n parts.pop();\n }\n }\n\n if (parts.length > 4) {\n return input;\n }\n\n const numbers = [];\n for (const part of parts) {\n if (part === \"\") {\n return input;\n }\n const n = parseIPv4Number(part);\n if (n === failure) {\n return input;\n }\n\n numbers.push(n);\n }\n\n for (let i = 0; i < numbers.length - 1; ++i) {\n if (numbers[i] > 255) {\n return failure;\n }\n }\n if (numbers[numbers.length - 1] >= Math.pow(256, 5 - numbers.length)) {\n return failure;\n }\n\n let ipv4 = numbers.pop();\n let counter = 0;\n\n for (const n of numbers) {\n ipv4 += n * Math.pow(256, 3 - counter);\n ++counter;\n }\n\n return ipv4;\n}\n\nfunction serializeIPv4(address) {\n let output = \"\";\n let n = address;\n\n for (let i = 1; i <= 4; ++i) {\n output = String(n % 256) + output;\n if (i !== 4) {\n output = \".\" + output;\n }\n n = Math.floor(n / 256);\n }\n\n return output;\n}\n\nfunction parseIPv6(input) {\n const address = [0, 0, 0, 0, 0, 0, 0, 0];\n let pieceIndex = 0;\n let compress = null;\n let pointer = 0;\n\n input = punycode.ucs2.decode(input);\n\n if (input[pointer] === 58) {\n if (input[pointer + 1] !== 58) {\n return failure;\n }\n\n pointer += 2;\n ++pieceIndex;\n compress = pieceIndex;\n }\n\n while (pointer < input.length) {\n if (pieceIndex === 8) {\n return failure;\n }\n\n if (input[pointer] === 58) {\n if (compress !== null) {\n return failure;\n }\n ++pointer;\n ++pieceIndex;\n compress = pieceIndex;\n continue;\n }\n\n let value = 0;\n let length = 0;\n\n while (length < 4 && infra.isASCIIHex(input[pointer])) {\n value = value * 0x10 + parseInt(at(input, pointer), 16);\n ++pointer;\n ++length;\n }\n\n if (input[pointer] === 46) {\n if (length === 0) {\n return failure;\n }\n\n pointer -= length;\n\n if (pieceIndex > 6) {\n return failure;\n }\n\n let numbersSeen = 0;\n\n while (input[pointer] !== undefined) {\n let ipv4Piece = null;\n\n if (numbersSeen > 0) {\n if (input[pointer] === 46 && numbersSeen < 4) {\n ++pointer;\n } else {\n return failure;\n }\n }\n\n if (!infra.isASCIIDigit(input[pointer])) {\n return failure;\n }\n\n while (infra.isASCIIDigit(input[pointer])) {\n const number = parseInt(at(input, pointer));\n if (ipv4Piece === null) {\n ipv4Piece = number;\n } else if (ipv4Piece === 0) {\n return failure;\n } else {\n ipv4Piece = ipv4Piece * 10 + number;\n }\n if (ipv4Piece > 255) {\n return failure;\n }\n ++pointer;\n }\n\n address[pieceIndex] = address[pieceIndex] * 0x100 + ipv4Piece;\n\n ++numbersSeen;\n\n if (numbersSeen === 2 || numbersSeen === 4) {\n ++pieceIndex;\n }\n }\n\n if (numbersSeen !== 4) {\n return failure;\n }\n\n break;\n } else if (input[pointer] === 58) {\n ++pointer;\n if (input[pointer] === undefined) {\n return failure;\n }\n } else if (input[pointer] !== undefined) {\n return failure;\n }\n\n address[pieceIndex] = value;\n ++pieceIndex;\n }\n\n if (compress !== null) {\n let swaps = pieceIndex - compress;\n pieceIndex = 7;\n while (pieceIndex !== 0 && swaps > 0) {\n const temp = address[compress + swaps - 1];\n address[compress + swaps - 1] = address[pieceIndex];\n address[pieceIndex] = temp;\n --pieceIndex;\n --swaps;\n }\n } else if (compress === null && pieceIndex !== 8) {\n return failure;\n }\n\n return address;\n}\n\nfunction serializeIPv6(address) {\n let output = \"\";\n const seqResult = findLongestZeroSequence(address);\n const compress = seqResult.idx;\n let ignore0 = false;\n\n for (let pieceIndex = 0; pieceIndex <= 7; ++pieceIndex) {\n if (ignore0 && address[pieceIndex] === 0) {\n continue;\n } else if (ignore0) {\n ignore0 = false;\n }\n\n if (compress === pieceIndex) {\n const separator = pieceIndex === 0 ? \"::\" : \":\";\n output += separator;\n ignore0 = true;\n continue;\n }\n\n output += address[pieceIndex].toString(16);\n\n if (pieceIndex !== 7) {\n output += \":\";\n }\n }\n\n return output;\n}\n\nfunction parseHost(input, isNotSpecialArg = false) {\n if (input[0] === \"[\") {\n if (input[input.length - 1] !== \"]\") {\n return failure;\n }\n\n return parseIPv6(input.substring(1, input.length - 1));\n }\n\n if (isNotSpecialArg) {\n return parseOpaqueHost(input);\n }\n\n const domain = percentDecode(Buffer.from(input)).toString();\n const asciiDomain = domainToASCII(domain);\n if (asciiDomain === failure) {\n return failure;\n }\n\n if (containsForbiddenHostCodePoint(asciiDomain)) {\n return failure;\n }\n\n const ipv4Host = parseIPv4(asciiDomain);\n if (typeof ipv4Host === \"number\" || ipv4Host === failure) {\n return ipv4Host;\n }\n\n return asciiDomain;\n}\n\nfunction parseOpaqueHost(input) {\n if (containsForbiddenHostCodePointExcludingPercent(input)) {\n return failure;\n }\n\n let output = \"\";\n const decoded = punycode.ucs2.decode(input);\n for (let i = 0; i < decoded.length; ++i) {\n output += percentEncodeChar(decoded[i], isC0ControlPercentEncode);\n }\n return output;\n}\n\nfunction findLongestZeroSequence(arr) {\n let maxIdx = null;\n let maxLen = 1; // only find elements > 1\n let currStart = null;\n let currLen = 0;\n\n for (let i = 0; i < arr.length; ++i) {\n if (arr[i] !== 0) {\n if (currLen > maxLen) {\n maxIdx = currStart;\n maxLen = currLen;\n }\n\n currStart = null;\n currLen = 0;\n } else {\n if (currStart === null) {\n currStart = i;\n }\n ++currLen;\n }\n }\n\n // if trailing zeros\n if (currLen > maxLen) {\n maxIdx = currStart;\n maxLen = currLen;\n }\n\n return {\n idx: maxIdx,\n len: maxLen\n };\n}\n\nfunction serializeHost(host) {\n if (typeof host === \"number\") {\n return serializeIPv4(host);\n }\n\n // IPv6 serializer\n if (host instanceof Array) {\n return \"[\" + serializeIPv6(host) + \"]\";\n }\n\n return host;\n}\n\nfunction domainToASCII(domain) {\n const result = domain;\n\n if (result === null) {\n return failure;\n }\n return result;\n}\n\nfunction trimControlChars(url) {\n return url.replace(/^[\\u0000-\\u001F\\u0020]+|[\\u0000-\\u001F\\u0020]+$/g, \"\");\n}\n\nfunction trimTabAndNewline(url) {\n return url.replace(/\\u0009|\\u000A|\\u000D/g, \"\");\n}\n\nfunction shortenPath(url) {\n const { path } = url;\n if (path.length === 0) {\n return;\n }\n if (url.scheme === \"file\" && path.length === 1 && isNormalizedWindowsDriveLetter(path[0])) {\n return;\n }\n\n path.pop();\n}\n\nfunction includesCredentials(url) {\n return url.username !== \"\" || url.password !== \"\";\n}\n\nfunction cannotHaveAUsernamePasswordPort(url) {\n return url.host === null || url.host === \"\" || url.cannotBeABaseURL || url.scheme === \"file\";\n}\n\nfunction isNormalizedWindowsDriveLetter(string) {\n return /^[A-Za-z]:$/.test(string);\n}\n\nfunction URLStateMachine(input, base, encodingOverride, url, stateOverride) {\n this.pointer = 0;\n this.input = input;\n this.base = base || null;\n this.encodingOverride = encodingOverride || \"utf-8\";\n this.stateOverride = stateOverride;\n this.url = url;\n this.failure = false;\n this.parseError = false;\n\n if (!this.url) {\n this.url = {\n scheme: \"\",\n username: \"\",\n password: \"\",\n host: null,\n port: null,\n path: [],\n query: null,\n fragment: null,\n\n cannotBeABaseURL: false\n };\n\n const res = trimControlChars(this.input);\n if (res !== this.input) {\n this.parseError = true;\n }\n this.input = res;\n }\n\n const res = trimTabAndNewline(this.input);\n if (res !== this.input) {\n this.parseError = true;\n }\n this.input = res;\n\n this.state = stateOverride || \"scheme start\";\n\n this.buffer = \"\";\n this.atFlag = false;\n this.arrFlag = false;\n this.passwordTokenSeenFlag = false;\n\n this.input = punycode.ucs2.decode(this.input);\n\n for (; this.pointer <= this.input.length; ++this.pointer) {\n const c = this.input[this.pointer];\n const cStr = isNaN(c) ? undefined : String.fromCodePoint(c);\n\n // exec state machine\n const ret = this[\"parse \" + this.state](c, cStr);\n if (!ret) {\n break; // terminate algorithm\n } else if (ret === failure) {\n this.failure = true;\n break;\n }\n }\n}\n\nURLStateMachine.prototype[\"parse scheme start\"] = function parseSchemeStart(c, cStr) {\n if (infra.isASCIIAlpha(c)) {\n this.buffer += cStr.toLowerCase();\n this.state = \"scheme\";\n } else if (!this.stateOverride) {\n this.state = \"no scheme\";\n --this.pointer;\n } else {\n this.parseError = true;\n return failure;\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse scheme\"] = function parseScheme(c, cStr) {\n if (infra.isASCIIAlphanumeric(c) || c === 43 || c === 45 || c === 46) {\n this.buffer += cStr.toLowerCase();\n } else if (c === 58) {\n if (this.stateOverride) {\n if (isSpecial(this.url) && !isSpecialScheme(this.buffer)) {\n return false;\n }\n\n if (!isSpecial(this.url) && isSpecialScheme(this.buffer)) {\n return false;\n }\n\n if ((includesCredentials(this.url) || this.url.port !== null) && this.buffer === \"file\") {\n return false;\n }\n\n if (this.url.scheme === \"file\" && (this.url.host === \"\" || this.url.host === null)) {\n return false;\n }\n }\n this.url.scheme = this.buffer;\n if (this.stateOverride) {\n if (this.url.port === defaultPort(this.url.scheme)) {\n this.url.port = null;\n }\n return false;\n }\n this.buffer = \"\";\n if (this.url.scheme === \"file\") {\n if (this.input[this.pointer + 1] !== 47 || this.input[this.pointer + 2] !== 47) {\n this.parseError = true;\n }\n this.state = \"file\";\n } else if (isSpecial(this.url) && this.base !== null && this.base.scheme === this.url.scheme) {\n this.state = \"special relative or authority\";\n } else if (isSpecial(this.url)) {\n this.state = \"special authority slashes\";\n } else if (this.input[this.pointer + 1] === 47) {\n this.state = \"path or authority\";\n ++this.pointer;\n } else {\n this.url.cannotBeABaseURL = true;\n this.url.path.push(\"\");\n this.state = \"cannot-be-a-base-URL path\";\n }\n } else if (!this.stateOverride) {\n this.buffer = \"\";\n this.state = \"no scheme\";\n this.pointer = -1;\n } else {\n this.parseError = true;\n return failure;\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse no scheme\"] = function parseNoScheme(c) {\n if (this.base === null || (this.base.cannotBeABaseURL && c !== 35)) {\n return failure;\n } else if (this.base.cannotBeABaseURL && c === 35) {\n this.url.scheme = this.base.scheme;\n this.url.path = this.base.path.slice();\n this.url.query = this.base.query;\n this.url.fragment = \"\";\n this.url.cannotBeABaseURL = true;\n this.state = \"fragment\";\n } else if (this.base.scheme === \"file\") {\n this.state = \"file\";\n --this.pointer;\n } else {\n this.state = \"relative\";\n --this.pointer;\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse special relative or authority\"] = function parseSpecialRelativeOrAuthority(c) {\n if (c === 47 && this.input[this.pointer + 1] === 47) {\n this.state = \"special authority ignore slashes\";\n ++this.pointer;\n } else {\n this.parseError = true;\n this.state = \"relative\";\n --this.pointer;\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse path or authority\"] = function parsePathOrAuthority(c) {\n if (c === 47) {\n this.state = \"authority\";\n } else {\n this.state = \"path\";\n --this.pointer;\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse relative\"] = function parseRelative(c) {\n this.url.scheme = this.base.scheme;\n if (isNaN(c)) {\n this.url.username = this.base.username;\n this.url.password = this.base.password;\n this.url.host = this.base.host;\n this.url.port = this.base.port;\n this.url.path = this.base.path.slice();\n this.url.query = this.base.query;\n } else if (c === 47) {\n this.state = \"relative slash\";\n } else if (c === 63) {\n this.url.username = this.base.username;\n this.url.password = this.base.password;\n this.url.host = this.base.host;\n this.url.port = this.base.port;\n this.url.path = this.base.path.slice();\n this.url.query = \"\";\n this.state = \"query\";\n } else if (c === 35) {\n this.url.username = this.base.username;\n this.url.password = this.base.password;\n this.url.host = this.base.host;\n this.url.port = this.base.port;\n this.url.path = this.base.path.slice();\n this.url.query = this.base.query;\n this.url.fragment = \"\";\n this.state = \"fragment\";\n } else if (isSpecial(this.url) && c === 92) {\n this.parseError = true;\n this.state = \"relative slash\";\n } else {\n this.url.username = this.base.username;\n this.url.password = this.base.password;\n this.url.host = this.base.host;\n this.url.port = this.base.port;\n this.url.path = this.base.path.slice(0, this.base.path.length - 1);\n\n this.state = \"path\";\n --this.pointer;\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse relative slash\"] = function parseRelativeSlash(c) {\n if (isSpecial(this.url) && (c === 47 || c === 92)) {\n if (c === 92) {\n this.parseError = true;\n }\n this.state = \"special authority ignore slashes\";\n } else if (c === 47) {\n this.state = \"authority\";\n } else {\n this.url.username = this.base.username;\n this.url.password = this.base.password;\n this.url.host = this.base.host;\n this.url.port = this.base.port;\n this.state = \"path\";\n --this.pointer;\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse special authority slashes\"] = function parseSpecialAuthoritySlashes(c) {\n if (c === 47 && this.input[this.pointer + 1] === 47) {\n this.state = \"special authority ignore slashes\";\n ++this.pointer;\n } else {\n this.parseError = true;\n this.state = \"special authority ignore slashes\";\n --this.pointer;\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse special authority ignore slashes\"] = function parseSpecialAuthorityIgnoreSlashes(c) {\n if (c !== 47 && c !== 92) {\n this.state = \"authority\";\n --this.pointer;\n } else {\n this.parseError = true;\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse authority\"] = function parseAuthority(c, cStr) {\n if (c === 64) {\n this.parseError = true;\n if (this.atFlag) {\n this.buffer = \"%40\" + this.buffer;\n }\n this.atFlag = true;\n\n // careful, this is based on buffer and has its own pointer (this.pointer != pointer) and inner chars\n const len = countSymbols(this.buffer);\n for (let pointer = 0; pointer < len; ++pointer) {\n const codePoint = this.buffer.codePointAt(pointer);\n\n if (codePoint === 58 && !this.passwordTokenSeenFlag) {\n this.passwordTokenSeenFlag = true;\n continue;\n }\n const encodedCodePoints = percentEncodeChar(codePoint, isUserinfoPercentEncode);\n if (this.passwordTokenSeenFlag) {\n this.url.password += encodedCodePoints;\n } else {\n this.url.username += encodedCodePoints;\n }\n }\n this.buffer = \"\";\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\n (isSpecial(this.url) && c === 92)) {\n if (this.atFlag && this.buffer === \"\") {\n this.parseError = true;\n return failure;\n }\n this.pointer -= countSymbols(this.buffer) + 1;\n this.buffer = \"\";\n this.state = \"host\";\n } else {\n this.buffer += cStr;\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse hostname\"] =\nURLStateMachine.prototype[\"parse host\"] = function parseHostName(c, cStr) {\n if (this.stateOverride && this.url.scheme === \"file\") {\n --this.pointer;\n this.state = \"file host\";\n } else if (c === 58 && !this.arrFlag) {\n if (this.buffer === \"\") {\n this.parseError = true;\n return failure;\n }\n\n const host = parseHost(this.buffer, isNotSpecial(this.url));\n if (host === failure) {\n return failure;\n }\n\n this.url.host = host;\n this.buffer = \"\";\n this.state = \"port\";\n if (this.stateOverride === \"hostname\") {\n return false;\n }\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\n (isSpecial(this.url) && c === 92)) {\n --this.pointer;\n if (isSpecial(this.url) && this.buffer === \"\") {\n this.parseError = true;\n return failure;\n } else if (this.stateOverride && this.buffer === \"\" &&\n (includesCredentials(this.url) || this.url.port !== null)) {\n this.parseError = true;\n return false;\n }\n\n const host = parseHost(this.buffer, isNotSpecial(this.url));\n if (host === failure) {\n return failure;\n }\n\n this.url.host = host;\n this.buffer = \"\";\n this.state = \"path start\";\n if (this.stateOverride) {\n return false;\n }\n } else {\n if (c === 91) {\n this.arrFlag = true;\n } else if (c === 93) {\n this.arrFlag = false;\n }\n this.buffer += cStr;\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse port\"] = function parsePort(c, cStr) {\n if (infra.isASCIIDigit(c)) {\n this.buffer += cStr;\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\n (isSpecial(this.url) && c === 92) ||\n this.stateOverride) {\n if (this.buffer !== \"\") {\n const port = parseInt(this.buffer);\n if (port > Math.pow(2, 16) - 1) {\n this.parseError = true;\n return failure;\n }\n this.url.port = port === defaultPort(this.url.scheme) ? null : port;\n this.buffer = \"\";\n }\n if (this.stateOverride) {\n return false;\n }\n this.state = \"path start\";\n --this.pointer;\n } else {\n this.parseError = true;\n return failure;\n }\n\n return true;\n};\n\nconst fileOtherwiseCodePoints = new Set([47, 92, 63, 35]);\n\nfunction startsWithWindowsDriveLetter(input, pointer) {\n const length = input.length - pointer;\n return length >= 2 &&\n isWindowsDriveLetterCodePoints(input[pointer], input[pointer + 1]) &&\n (length === 2 || fileOtherwiseCodePoints.has(input[pointer + 2]));\n}\n\nURLStateMachine.prototype[\"parse file\"] = function parseFile(c) {\n this.url.scheme = \"file\";\n\n if (c === 47 || c === 92) {\n if (c === 92) {\n this.parseError = true;\n }\n this.state = \"file slash\";\n } else if (this.base !== null && this.base.scheme === \"file\") {\n if (isNaN(c)) {\n this.url.host = this.base.host;\n this.url.path = this.base.path.slice();\n this.url.query = this.base.query;\n } else if (c === 63) {\n this.url.host = this.base.host;\n this.url.path = this.base.path.slice();\n this.url.query = \"\";\n this.state = \"query\";\n } else if (c === 35) {\n this.url.host = this.base.host;\n this.url.path = this.base.path.slice();\n this.url.query = this.base.query;\n this.url.fragment = \"\";\n this.state = \"fragment\";\n } else {\n if (!startsWithWindowsDriveLetter(this.input, this.pointer)) {\n this.url.host = this.base.host;\n this.url.path = this.base.path.slice();\n shortenPath(this.url);\n } else {\n this.parseError = true;\n }\n\n this.state = \"path\";\n --this.pointer;\n }\n } else {\n this.state = \"path\";\n --this.pointer;\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse file slash\"] = function parseFileSlash(c) {\n if (c === 47 || c === 92) {\n if (c === 92) {\n this.parseError = true;\n }\n this.state = \"file host\";\n } else {\n if (this.base !== null && this.base.scheme === \"file\" &&\n !startsWithWindowsDriveLetter(this.input, this.pointer)) {\n if (isNormalizedWindowsDriveLetterString(this.base.path[0])) {\n this.url.path.push(this.base.path[0]);\n } else {\n this.url.host = this.base.host;\n }\n }\n this.state = \"path\";\n --this.pointer;\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse file host\"] = function parseFileHost(c, cStr) {\n if (isNaN(c) || c === 47 || c === 92 || c === 63 || c === 35) {\n --this.pointer;\n if (!this.stateOverride && isWindowsDriveLetterString(this.buffer)) {\n this.parseError = true;\n this.state = \"path\";\n } else if (this.buffer === \"\") {\n this.url.host = \"\";\n if (this.stateOverride) {\n return false;\n }\n this.state = \"path start\";\n } else {\n let host = parseHost(this.buffer, isNotSpecial(this.url));\n if (host === failure) {\n return failure;\n }\n if (host === \"localhost\") {\n host = \"\";\n }\n this.url.host = host;\n\n if (this.stateOverride) {\n return false;\n }\n\n this.buffer = \"\";\n this.state = \"path start\";\n }\n } else {\n this.buffer += cStr;\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse path start\"] = function parsePathStart(c) {\n if (isSpecial(this.url)) {\n if (c === 92) {\n this.parseError = true;\n }\n this.state = \"path\";\n\n if (c !== 47 && c !== 92) {\n --this.pointer;\n }\n } else if (!this.stateOverride && c === 63) {\n this.url.query = \"\";\n this.state = \"query\";\n } else if (!this.stateOverride && c === 35) {\n this.url.fragment = \"\";\n this.state = \"fragment\";\n } else if (c !== undefined) {\n this.state = \"path\";\n if (c !== 47) {\n --this.pointer;\n }\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse path\"] = function parsePath(c) {\n if (isNaN(c) || c === 47 || (isSpecial(this.url) && c === 92) ||\n (!this.stateOverride && (c === 63 || c === 35))) {\n if (isSpecial(this.url) && c === 92) {\n this.parseError = true;\n }\n\n if (isDoubleDot(this.buffer)) {\n shortenPath(this.url);\n if (c !== 47 && !(isSpecial(this.url) && c === 92)) {\n this.url.path.push(\"\");\n }\n } else if (isSingleDot(this.buffer) && c !== 47 &&\n !(isSpecial(this.url) && c === 92)) {\n this.url.path.push(\"\");\n } else if (!isSingleDot(this.buffer)) {\n if (this.url.scheme === \"file\" && this.url.path.length === 0 && isWindowsDriveLetterString(this.buffer)) {\n if (this.url.host !== \"\" && this.url.host !== null) {\n this.parseError = true;\n this.url.host = \"\";\n }\n this.buffer = this.buffer[0] + \":\";\n }\n this.url.path.push(this.buffer);\n }\n this.buffer = \"\";\n if (this.url.scheme === \"file\" && (c === undefined || c === 63 || c === 35)) {\n while (this.url.path.length > 1 && this.url.path[0] === \"\") {\n this.parseError = true;\n this.url.path.shift();\n }\n }\n if (c === 63) {\n this.url.query = \"\";\n this.state = \"query\";\n }\n if (c === 35) {\n this.url.fragment = \"\";\n this.state = \"fragment\";\n }\n } else {\n // TODO: If c is not a URL code point and not \"%\", parse error.\n\n if (c === 37 &&\n (!infra.isASCIIHex(this.input[this.pointer + 1]) ||\n !infra.isASCIIHex(this.input[this.pointer + 2]))) {\n this.parseError = true;\n }\n\n this.buffer += percentEncodeChar(c, isPathPercentEncode);\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse cannot-be-a-base-URL path\"] = function parseCannotBeABaseURLPath(c) {\n if (c === 63) {\n this.url.query = \"\";\n this.state = \"query\";\n } else if (c === 35) {\n this.url.fragment = \"\";\n this.state = \"fragment\";\n } else {\n // TODO: Add: not a URL code point\n if (!isNaN(c) && c !== 37) {\n this.parseError = true;\n }\n\n if (c === 37 &&\n (!infra.isASCIIHex(this.input[this.pointer + 1]) ||\n !infra.isASCIIHex(this.input[this.pointer + 2]))) {\n this.parseError = true;\n }\n\n if (!isNaN(c)) {\n this.url.path[0] += percentEncodeChar(c, isC0ControlPercentEncode);\n }\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse query\"] = function parseQuery(c, cStr) {\n if (isNaN(c) || (!this.stateOverride && c === 35)) {\n if (!isSpecial(this.url) || this.url.scheme === \"ws\" || this.url.scheme === \"wss\") {\n this.encodingOverride = \"utf-8\";\n }\n\n const buffer = Buffer.from(this.buffer); // TODO: Use encoding override instead\n for (let i = 0; i < buffer.length; ++i) {\n if (buffer[i] < 0x21 ||\n buffer[i] > 0x7E ||\n buffer[i] === 0x22 || buffer[i] === 0x23 || buffer[i] === 0x3C || buffer[i] === 0x3E ||\n (buffer[i] === 0x27 && isSpecial(this.url))) {\n this.url.query += percentEncode(buffer[i]);\n } else {\n this.url.query += String.fromCodePoint(buffer[i]);\n }\n }\n\n this.buffer = \"\";\n if (c === 35) {\n this.url.fragment = \"\";\n this.state = \"fragment\";\n }\n } else {\n // TODO: If c is not a URL code point and not \"%\", parse error.\n if (c === 37 &&\n (!infra.isASCIIHex(this.input[this.pointer + 1]) ||\n !infra.isASCIIHex(this.input[this.pointer + 2]))) {\n this.parseError = true;\n }\n\n this.buffer += cStr;\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse fragment\"] = function parseFragment(c) {\n if (isNaN(c)) { // do nothing\n } else if (c === 0x0) {\n this.parseError = true;\n } else {\n // TODO: If c is not a URL code point and not \"%\", parse error.\n if (c === 37 &&\n (!infra.isASCIIHex(this.input[this.pointer + 1]) ||\n !infra.isASCIIHex(this.input[this.pointer + 2]))) {\n this.parseError = true;\n }\n\n this.url.fragment += percentEncodeChar(c, isFragmentPercentEncode);\n }\n\n return true;\n};\n\nfunction serializeURL(url, excludeFragment) {\n let output = url.scheme + \":\";\n if (url.host !== null) {\n output += \"//\";\n\n if (url.username !== \"\" || url.password !== \"\") {\n output += url.username;\n if (url.password !== \"\") {\n output += \":\" + url.password;\n }\n output += \"@\";\n }\n\n output += serializeHost(url.host);\n\n if (url.port !== null) {\n output += \":\" + url.port;\n }\n } else if (url.host === null && url.scheme === \"file\") {\n output += \"//\";\n }\n\n if (url.cannotBeABaseURL) {\n output += url.path[0];\n } else {\n for (const string of url.path) {\n output += \"/\" + string;\n }\n }\n\n if (url.query !== null) {\n output += \"?\" + url.query;\n }\n\n if (!excludeFragment && url.fragment !== null) {\n output += \"#\" + url.fragment;\n }\n\n return output;\n}\n\nfunction serializeOrigin(tuple) {\n let result = tuple.scheme + \"://\";\n result += serializeHost(tuple.host);\n\n if (tuple.port !== null) {\n result += \":\" + tuple.port;\n }\n\n return result;\n}\n\nmodule.exports.serializeURL = serializeURL;\n\nmodule.exports.serializeURLOrigin = function (url) {\n // https://url.spec.whatwg.org/#concept-url-origin\n switch (url.scheme) {\n case \"blob\":\n try {\n return module.exports.serializeURLOrigin(module.exports.parseURL(url.path[0]));\n } catch (e) {\n // serializing an opaque origin returns \"null\"\n return \"null\";\n }\n case \"ftp\":\n case \"http\":\n case \"https\":\n case \"ws\":\n case \"wss\":\n return serializeOrigin({\n scheme: url.scheme,\n host: url.host,\n port: url.port\n });\n case \"file\":\n // The spec says:\n // > Unfortunate as it is, this is left as an exercise to the reader. When in doubt, return a new opaque origin.\n // Browsers tested so far:\n // - Chrome says \"file://\", but treats file: URLs as cross-origin for most (all?) purposes; see e.g.\n // https://bugs.chromium.org/p/chromium/issues/detail?id=37586\n // - Firefox says \"null\", but treats file: URLs as same-origin sometimes based on directory stuff; see\n // https://developer.mozilla.org/en-US/docs/Archive/Misc_top_level/Same-origin_policy_for_file:_URIs\n return \"null\";\n default:\n // serializing an opaque origin returns \"null\"\n return \"null\";\n }\n};\n\nmodule.exports.basicURLParse = function (input, options) {\n if (options === undefined) {\n options = {};\n }\n\n const usm = new URLStateMachine(input, options.baseURL, options.encodingOverride, options.url, options.stateOverride);\n if (usm.failure) {\n return null;\n }\n\n return usm.url;\n};\n\nmodule.exports.setTheUsername = function (url, username) {\n url.username = \"\";\n const decoded = punycode.ucs2.decode(username);\n for (let i = 0; i < decoded.length; ++i) {\n url.username += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\n }\n};\n\nmodule.exports.setThePassword = function (url, password) {\n url.password = \"\";\n const decoded = punycode.ucs2.decode(password);\n for (let i = 0; i < decoded.length; ++i) {\n url.password += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\n }\n};\n\nmodule.exports.serializeHost = serializeHost;\n\nmodule.exports.cannotHaveAUsernamePasswordPort = cannotHaveAUsernamePasswordPort;\n\nmodule.exports.serializeInteger = function (integer) {\n return String(integer);\n};\n\nmodule.exports.parseURL = function (input, options) {\n if (options === undefined) {\n options = {};\n }\n\n // We don't handle blobs, so this just delegates:\n return module.exports.basicURLParse(input, { baseURL: options.baseURL, encodingOverride: options.encodingOverride });\n};\n", "\"use strict\";\nconst urlencoded = require(\"./urlencoded\");\n\nfunction stableSortBy(arr, compare) {\n return arr\n .map((item, index) => ({ item, index }))\n .sort((a, b) => compare(a.item, b.item) || a.index - b.index)\n .map(({ item }) => item);\n}\n\nexports.implementation = class URLSearchParamsImpl {\n constructor(globalObject, constructorArgs, { doNotStripQMark = false }) {\n let init = constructorArgs[0];\n this._list = [];\n this._url = null;\n\n if (!doNotStripQMark && typeof init === \"string\" && init[0] === \"?\") {\n init = init.slice(1);\n }\n\n if (Array.isArray(init)) {\n for (const pair of init) {\n if (pair.length !== 2) {\n throw new TypeError(\"Failed to construct 'URLSearchParams': parameter 1 sequence's element does not \" +\n \"contain exactly two elements.\");\n }\n this._list.push([pair[0], pair[1]]);\n }\n } else if (typeof init === \"object\" && Object.getPrototypeOf(init) === null) {\n for (const name of Object.keys(init)) {\n const value = init[name];\n this._list.push([name, value]);\n }\n } else {\n this._list = urlencoded.parseUrlencoded(init);\n }\n }\n\n _updateSteps() {\n if (this._url !== null) {\n let query = urlencoded.serializeUrlencoded(this._list);\n if (query === \"\") {\n query = null;\n }\n this._url._url.query = query;\n }\n }\n\n append(name, value) {\n this._list.push([name, value]);\n this._updateSteps();\n }\n\n delete(name) {\n let i = 0;\n while (i < this._list.length) {\n if (this._list[i][0] === name) {\n this._list.splice(i, 1);\n } else {\n i++;\n }\n }\n this._updateSteps();\n }\n\n get(name) {\n for (const tuple of this._list) {\n if (tuple[0] === name) {\n return tuple[1];\n }\n }\n return null;\n }\n\n getAll(name) {\n const output = [];\n for (const tuple of this._list) {\n if (tuple[0] === name) {\n output.push(tuple[1]);\n }\n }\n return output;\n }\n\n has(name) {\n for (const tuple of this._list) {\n if (tuple[0] === name) {\n return true;\n }\n }\n return false;\n }\n\n set(name, value) {\n let found = false;\n let i = 0;\n while (i < this._list.length) {\n if (this._list[i][0] === name) {\n if (found) {\n this._list.splice(i, 1);\n } else {\n found = true;\n this._list[i][1] = value;\n i++;\n }\n } else {\n i++;\n }\n }\n if (!found) {\n this._list.push([name, value]);\n }\n this._updateSteps();\n }\n\n sort() {\n this._list = stableSortBy(this._list, (a, b) => a[0] > b[0]);\n this._updateSteps();\n }\n\n [Symbol.iterator]() {\n return this._list[Symbol.iterator]();\n }\n\n toString() {\n return urlencoded.serializeUrlencoded(this._list);\n }\n};\n", "\"use strict\";\n\nconst conversions = require(\"webidl-conversions\");\nconst utils = require(\"./utils.js\");\n\nconst impl = utils.implSymbol;\nconst ctorRegistry = utils.ctorRegistrySymbol;\n\nconst IteratorPrototype = Object.create(utils.IteratorPrototype, {\n next: {\n value: function next() {\n const internal = this[utils.iterInternalSymbol];\n const { target, kind, index } = internal;\n const values = Array.from(target[impl]);\n const len = values.length;\n if (index >= len) {\n return { value: undefined, done: true };\n }\n\n const pair = values[index];\n internal.index = index + 1;\n const [key, value] = pair.map(utils.tryWrapperForImpl);\n\n let result;\n switch (kind) {\n case \"key\":\n result = key;\n break;\n case \"value\":\n result = value;\n break;\n case \"key+value\":\n result = [key, value];\n break;}\n\n return { value: result, done: false };\n },\n writable: true,\n enumerable: true,\n configurable: true },\n\n [Symbol.toStringTag]: {\n value: \"URLSearchParams Iterator\",\n configurable: true } });\n\n\n\nconst iface = {\n // When an interface-module that implements this interface as a mixin is loaded, it will append its own `.is()`\n // method into this array. It allows objects that directly implements *those* interfaces to be recognized as\n // implementing this mixin interface.\n _mixedIntoPredicates: [],\n is(obj) {\n if (obj) {\n if (utils.hasOwn(obj, impl) && obj[impl] instanceof Impl.implementation) {\n return true;\n }\n for (const isMixedInto of module.exports._mixedIntoPredicates) {\n if (isMixedInto(obj)) {\n return true;\n }\n }\n }\n return false;\n },\n isImpl(obj) {\n if (obj) {\n if (obj instanceof Impl.implementation) {\n return true;\n }\n\n const wrapper = utils.wrapperForImpl(obj);\n for (const isMixedInto of module.exports._mixedIntoPredicates) {\n if (isMixedInto(wrapper)) {\n return true;\n }\n }\n }\n return false;\n },\n convert(obj, { context = \"The provided value\" } = {}) {\n if (module.exports.is(obj)) {\n return utils.implForWrapper(obj);\n }\n throw new TypeError(`${context} is not of type 'URLSearchParams'.`);\n },\n\n createDefaultIterator(target, kind) {\n const iterator = Object.create(IteratorPrototype);\n Object.defineProperty(iterator, utils.iterInternalSymbol, {\n value: { target, kind, index: 0 },\n configurable: true });\n\n return iterator;\n },\n\n create(globalObject, constructorArgs, privateData) {\n if (globalObject[ctorRegistry] === undefined) {\n throw new Error(\"Internal error: invalid global object\");\n }\n\n const ctor = globalObject[ctorRegistry][\"URLSearchParams\"];\n if (ctor === undefined) {\n throw new Error(\"Internal error: constructor URLSearchParams is not installed on the passed global object\");\n }\n\n let obj = Object.create(ctor.prototype);\n obj = iface.setup(obj, globalObject, constructorArgs, privateData);\n return obj;\n },\n createImpl(globalObject, constructorArgs, privateData) {\n const obj = iface.create(globalObject, constructorArgs, privateData);\n return utils.implForWrapper(obj);\n },\n _internalSetup(obj) {},\n setup(obj, globalObject, constructorArgs = [], privateData = {}) {\n privateData.wrapper = obj;\n\n iface._internalSetup(obj);\n Object.defineProperty(obj, impl, {\n value: new Impl.implementation(globalObject, constructorArgs, privateData),\n configurable: true });\n\n\n obj[impl][utils.wrapperSymbol] = obj;\n if (Impl.init) {\n Impl.init(obj[impl], privateData);\n }\n return obj;\n },\n\n install(globalObject) {\n class URLSearchParams {\n constructor() {\n const args = [];\n {\n let curArg = arguments[0];\n if (curArg !== undefined) {\n if (utils.isObject(curArg)) {\n if (curArg[Symbol.iterator] !== undefined) {\n if (!utils.isObject(curArg)) {\n throw new TypeError(\n \"Failed to construct 'URLSearchParams': parameter 1\" + \" sequence\" + \" is not an iterable object.\");\n\n } else {\n const V = [];\n const tmp = curArg;\n for (let nextItem of tmp) {\n if (!utils.isObject(nextItem)) {\n throw new TypeError(\n \"Failed to construct 'URLSearchParams': parameter 1\" +\n \" sequence\" +\n \"'s element\" +\n \" is not an iterable object.\");\n\n } else {\n const V = [];\n const tmp = nextItem;\n for (let nextItem of tmp) {\n nextItem = conversions[\"USVString\"](nextItem, {\n context:\n \"Failed to construct 'URLSearchParams': parameter 1\" +\n \" sequence\" +\n \"'s element\" +\n \"'s element\" });\n\n\n V.push(nextItem);\n }\n nextItem = V;\n }\n\n V.push(nextItem);\n }\n curArg = V;\n }\n } else {\n if (!utils.isObject(curArg)) {\n throw new TypeError(\n \"Failed to construct 'URLSearchParams': parameter 1\" + \" record\" + \" is not an object.\");\n\n } else {\n const result = Object.create(null);\n for (const key of Reflect.ownKeys(curArg)) {\n const desc = Object.getOwnPropertyDescriptor(curArg, key);\n if (desc && desc.enumerable) {\n let typedKey = key;\n\n typedKey = conversions[\"USVString\"](typedKey, {\n context: \"Failed to construct 'URLSearchParams': parameter 1\" + \" record\" + \"'s key\" });\n\n\n let typedValue = curArg[key];\n\n typedValue = conversions[\"USVString\"](typedValue, {\n context: \"Failed to construct 'URLSearchParams': parameter 1\" + \" record\" + \"'s value\" });\n\n\n result[typedKey] = typedValue;\n }\n }\n curArg = result;\n }\n }\n } else {\n curArg = conversions[\"USVString\"](curArg, {\n context: \"Failed to construct 'URLSearchParams': parameter 1\" });\n\n }\n } else {\n curArg = \"\";\n }\n args.push(curArg);\n }\n return iface.setup(Object.create(this.constructor.prototype), globalObject, args);\n }\n\n append(name, value) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n if (arguments.length < 2) {\n throw new TypeError(\n \"Failed to execute 'append' on 'URLSearchParams': 2 arguments required, but only \" +\n arguments.length +\n \" present.\");\n\n }\n const args = [];\n {\n let curArg = arguments[0];\n curArg = conversions[\"USVString\"](curArg, {\n context: \"Failed to execute 'append' on 'URLSearchParams': parameter 1\" });\n\n args.push(curArg);\n }\n {\n let curArg = arguments[1];\n curArg = conversions[\"USVString\"](curArg, {\n context: \"Failed to execute 'append' on 'URLSearchParams': parameter 2\" });\n\n args.push(curArg);\n }\n return this[impl].append(...args);\n }\n\n delete(name) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n if (arguments.length < 1) {\n throw new TypeError(\n \"Failed to execute 'delete' on 'URLSearchParams': 1 argument required, but only \" +\n arguments.length +\n \" present.\");\n\n }\n const args = [];\n {\n let curArg = arguments[0];\n curArg = conversions[\"USVString\"](curArg, {\n context: \"Failed to execute 'delete' on 'URLSearchParams': parameter 1\" });\n\n args.push(curArg);\n }\n return this[impl].delete(...args);\n }\n\n get(name) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n if (arguments.length < 1) {\n throw new TypeError(\n \"Failed to execute 'get' on 'URLSearchParams': 1 argument required, but only \" +\n arguments.length +\n \" present.\");\n\n }\n const args = [];\n {\n let curArg = arguments[0];\n curArg = conversions[\"USVString\"](curArg, {\n context: \"Failed to execute 'get' on 'URLSearchParams': parameter 1\" });\n\n args.push(curArg);\n }\n return this[impl].get(...args);\n }\n\n getAll(name) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n if (arguments.length < 1) {\n throw new TypeError(\n \"Failed to execute 'getAll' on 'URLSearchParams': 1 argument required, but only \" +\n arguments.length +\n \" present.\");\n\n }\n const args = [];\n {\n let curArg = arguments[0];\n curArg = conversions[\"USVString\"](curArg, {\n context: \"Failed to execute 'getAll' on 'URLSearchParams': parameter 1\" });\n\n args.push(curArg);\n }\n return utils.tryWrapperForImpl(this[impl].getAll(...args));\n }\n\n has(name) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n if (arguments.length < 1) {\n throw new TypeError(\n \"Failed to execute 'has' on 'URLSearchParams': 1 argument required, but only \" +\n arguments.length +\n \" present.\");\n\n }\n const args = [];\n {\n let curArg = arguments[0];\n curArg = conversions[\"USVString\"](curArg, {\n context: \"Failed to execute 'has' on 'URLSearchParams': parameter 1\" });\n\n args.push(curArg);\n }\n return this[impl].has(...args);\n }\n\n set(name, value) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n if (arguments.length < 2) {\n throw new TypeError(\n \"Failed to execute 'set' on 'URLSearchParams': 2 arguments required, but only \" +\n arguments.length +\n \" present.\");\n\n }\n const args = [];\n {\n let curArg = arguments[0];\n curArg = conversions[\"USVString\"](curArg, {\n context: \"Failed to execute 'set' on 'URLSearchParams': parameter 1\" });\n\n args.push(curArg);\n }\n {\n let curArg = arguments[1];\n curArg = conversions[\"USVString\"](curArg, {\n context: \"Failed to execute 'set' on 'URLSearchParams': parameter 2\" });\n\n args.push(curArg);\n }\n return this[impl].set(...args);\n }\n\n sort() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n return this[impl].sort();\n }\n\n toString() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n return this[impl].toString();\n }\n\n keys() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n return module.exports.createDefaultIterator(this, \"key\");\n }\n\n values() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n return module.exports.createDefaultIterator(this, \"value\");\n }\n\n entries() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n return module.exports.createDefaultIterator(this, \"key+value\");\n }\n\n forEach(callback) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n if (arguments.length < 1) {\n throw new TypeError(\n \"Failed to execute 'forEach' on 'iterable': 1 argument required, \" + \"but only 0 present.\");\n\n }\n if (typeof callback !== \"function\") {\n throw new TypeError(\n \"Failed to execute 'forEach' on 'iterable': The callback provided \" + \"as parameter 1 is not a function.\");\n\n }\n const thisArg = arguments[1];\n let pairs = Array.from(this[impl]);\n let i = 0;\n while (i < pairs.length) {\n const [key, value] = pairs[i].map(utils.tryWrapperForImpl);\n callback.call(thisArg, value, key, this);\n pairs = Array.from(this[impl]);\n i++;\n }\n }}\n\n Object.defineProperties(URLSearchParams.prototype, {\n append: { enumerable: true },\n delete: { enumerable: true },\n get: { enumerable: true },\n getAll: { enumerable: true },\n has: { enumerable: true },\n set: { enumerable: true },\n sort: { enumerable: true },\n toString: { enumerable: true },\n keys: { enumerable: true },\n values: { enumerable: true },\n entries: { enumerable: true },\n forEach: { enumerable: true },\n [Symbol.toStringTag]: { value: \"URLSearchParams\", configurable: true },\n [Symbol.iterator]: { value: URLSearchParams.prototype.entries, configurable: true, writable: true } });\n\n if (globalObject[ctorRegistry] === undefined) {\n globalObject[ctorRegistry] = Object.create(null);\n }\n globalObject[ctorRegistry][\"URLSearchParams\"] = URLSearchParams;\n\n Object.defineProperty(globalObject, \"URLSearchParams\", {\n configurable: true,\n writable: true,\n value: URLSearchParams });\n\n } };\n// iface\nmodule.exports = iface;\n\nconst Impl = require(\"./URLSearchParams-impl.js\");", "\"use strict\";\nconst usm = require(\"./url-state-machine\");\nconst urlencoded = require(\"./urlencoded\");\nconst URLSearchParams = require(\"./URLSearchParams\");\n\nexports.implementation = class URLImpl {\n constructor(globalObject, constructorArgs) {\n const url = constructorArgs[0];\n const base = constructorArgs[1];\n\n let parsedBase = null;\n if (base !== undefined) {\n parsedBase = usm.basicURLParse(base);\n if (parsedBase === null) {\n throw new TypeError(`Invalid base URL: ${base}`);\n }\n }\n\n const parsedURL = usm.basicURLParse(url, { baseURL: parsedBase });\n if (parsedURL === null) {\n throw new TypeError(`Invalid URL: ${url}`);\n }\n\n const query = parsedURL.query !== null ? parsedURL.query : \"\";\n\n this._url = parsedURL;\n\n // We cannot invoke the \"new URLSearchParams object\" algorithm without going through the constructor, which strips\n // question mark by default. Therefore the doNotStripQMark hack is used.\n this._query = URLSearchParams.createImpl(globalObject, [query], { doNotStripQMark: true });\n this._query._url = this;\n }\n\n get href() {\n return usm.serializeURL(this._url);\n }\n\n set href(v) {\n const parsedURL = usm.basicURLParse(v);\n if (parsedURL === null) {\n throw new TypeError(`Invalid URL: ${v}`);\n }\n\n this._url = parsedURL;\n\n this._query._list.splice(0);\n const { query } = parsedURL;\n if (query !== null) {\n this._query._list = urlencoded.parseUrlencoded(query);\n }\n }\n\n get origin() {\n return usm.serializeURLOrigin(this._url);\n }\n\n get protocol() {\n return this._url.scheme + \":\";\n }\n\n set protocol(v) {\n usm.basicURLParse(v + \":\", { url: this._url, stateOverride: \"scheme start\" });\n }\n\n get username() {\n return this._url.username;\n }\n\n set username(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setTheUsername(this._url, v);\n }\n\n get password() {\n return this._url.password;\n }\n\n set password(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setThePassword(this._url, v);\n }\n\n get host() {\n const url = this._url;\n\n if (url.host === null) {\n return \"\";\n }\n\n if (url.port === null) {\n return usm.serializeHost(url.host);\n }\n\n return usm.serializeHost(url.host) + \":\" + usm.serializeInteger(url.port);\n }\n\n set host(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"host\" });\n }\n\n get hostname() {\n if (this._url.host === null) {\n return \"\";\n }\n\n return usm.serializeHost(this._url.host);\n }\n\n set hostname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"hostname\" });\n }\n\n get port() {\n if (this._url.port === null) {\n return \"\";\n }\n\n return usm.serializeInteger(this._url.port);\n }\n\n set port(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n if (v === \"\") {\n this._url.port = null;\n } else {\n usm.basicURLParse(v, { url: this._url, stateOverride: \"port\" });\n }\n }\n\n get pathname() {\n if (this._url.cannotBeABaseURL) {\n return this._url.path[0];\n }\n\n if (this._url.path.length === 0) {\n return \"\";\n }\n\n return \"/\" + this._url.path.join(\"/\");\n }\n\n set pathname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n this._url.path = [];\n usm.basicURLParse(v, { url: this._url, stateOverride: \"path start\" });\n }\n\n get search() {\n if (this._url.query === null || this._url.query === \"\") {\n return \"\";\n }\n\n return \"?\" + this._url.query;\n }\n\n set search(v) {\n const url = this._url;\n\n if (v === \"\") {\n url.query = null;\n this._query._list = [];\n return;\n }\n\n const input = v[0] === \"?\" ? v.substring(1) : v;\n url.query = \"\";\n usm.basicURLParse(input, { url, stateOverride: \"query\" });\n this._query._list = urlencoded.parseUrlencoded(input);\n }\n\n get searchParams() {\n return this._query;\n }\n\n get hash() {\n if (this._url.fragment === null || this._url.fragment === \"\") {\n return \"\";\n }\n\n return \"#\" + this._url.fragment;\n }\n\n set hash(v) {\n if (v === \"\") {\n this._url.fragment = null;\n return;\n }\n\n const input = v[0] === \"#\" ? v.substring(1) : v;\n this._url.fragment = \"\";\n usm.basicURLParse(input, { url: this._url, stateOverride: \"fragment\" });\n }\n\n toJSON() {\n return this.href;\n }\n};\n", "\"use strict\";\n\nconst conversions = require(\"webidl-conversions\");\nconst utils = require(\"./utils.js\");\n\nconst impl = utils.implSymbol;\nconst ctorRegistry = utils.ctorRegistrySymbol;\n\nconst iface = {\n // When an interface-module that implements this interface as a mixin is loaded, it will append its own `.is()`\n // method into this array. It allows objects that directly implements *those* interfaces to be recognized as\n // implementing this mixin interface.\n _mixedIntoPredicates: [],\n is(obj) {\n if (obj) {\n if (utils.hasOwn(obj, impl) && obj[impl] instanceof Impl.implementation) {\n return true;\n }\n for (const isMixedInto of module.exports._mixedIntoPredicates) {\n if (isMixedInto(obj)) {\n return true;\n }\n }\n }\n return false;\n },\n isImpl(obj) {\n if (obj) {\n if (obj instanceof Impl.implementation) {\n return true;\n }\n\n const wrapper = utils.wrapperForImpl(obj);\n for (const isMixedInto of module.exports._mixedIntoPredicates) {\n if (isMixedInto(wrapper)) {\n return true;\n }\n }\n }\n return false;\n },\n convert(obj, { context = \"The provided value\" } = {}) {\n if (module.exports.is(obj)) {\n return utils.implForWrapper(obj);\n }\n throw new TypeError(`${context} is not of type 'URL'.`);\n },\n\n create(globalObject, constructorArgs, privateData) {\n if (globalObject[ctorRegistry] === undefined) {\n throw new Error(\"Internal error: invalid global object\");\n }\n\n const ctor = globalObject[ctorRegistry][\"URL\"];\n if (ctor === undefined) {\n throw new Error(\"Internal error: constructor URL is not installed on the passed global object\");\n }\n\n let obj = Object.create(ctor.prototype);\n obj = iface.setup(obj, globalObject, constructorArgs, privateData);\n return obj;\n },\n createImpl(globalObject, constructorArgs, privateData) {\n const obj = iface.create(globalObject, constructorArgs, privateData);\n return utils.implForWrapper(obj);\n },\n _internalSetup(obj) {},\n setup(obj, globalObject, constructorArgs = [], privateData = {}) {\n privateData.wrapper = obj;\n\n iface._internalSetup(obj);\n Object.defineProperty(obj, impl, {\n value: new Impl.implementation(globalObject, constructorArgs, privateData),\n configurable: true });\n\n\n obj[impl][utils.wrapperSymbol] = obj;\n if (Impl.init) {\n Impl.init(obj[impl], privateData);\n }\n return obj;\n },\n\n install(globalObject) {\n class URL {\n constructor(url) {\n if (arguments.length < 1) {\n throw new TypeError(\n \"Failed to construct 'URL': 1 argument required, but only \" + arguments.length + \" present.\");\n\n }\n const args = [];\n {\n let curArg = arguments[0];\n curArg = conversions[\"USVString\"](curArg, { context: \"Failed to construct 'URL': parameter 1\" });\n args.push(curArg);\n }\n {\n let curArg = arguments[1];\n if (curArg !== undefined) {\n curArg = conversions[\"USVString\"](curArg, { context: \"Failed to construct 'URL': parameter 2\" });\n }\n args.push(curArg);\n }\n return iface.setup(Object.create(this.constructor.prototype), globalObject, args);\n }\n\n toJSON() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n return this[impl].toJSON();\n }\n\n get href() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n return this[impl][\"href\"];\n }\n\n set href(V) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n V = conversions[\"USVString\"](V, { context: \"Failed to set the 'href' property on 'URL': The provided value\" });\n\n this[impl][\"href\"] = V;\n }\n\n toString() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n return this[impl][\"href\"];\n }\n\n get origin() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n return this[impl][\"origin\"];\n }\n\n get protocol() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n return this[impl][\"protocol\"];\n }\n\n set protocol(V) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n V = conversions[\"USVString\"](V, {\n context: \"Failed to set the 'protocol' property on 'URL': The provided value\" });\n\n\n this[impl][\"protocol\"] = V;\n }\n\n get username() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n return this[impl][\"username\"];\n }\n\n set username(V) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n V = conversions[\"USVString\"](V, {\n context: \"Failed to set the 'username' property on 'URL': The provided value\" });\n\n\n this[impl][\"username\"] = V;\n }\n\n get password() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n return this[impl][\"password\"];\n }\n\n set password(V) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n V = conversions[\"USVString\"](V, {\n context: \"Failed to set the 'password' property on 'URL': The provided value\" });\n\n\n this[impl][\"password\"] = V;\n }\n\n get host() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n return this[impl][\"host\"];\n }\n\n set host(V) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n V = conversions[\"USVString\"](V, { context: \"Failed to set the 'host' property on 'URL': The provided value\" });\n\n this[impl][\"host\"] = V;\n }\n\n get hostname() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n return this[impl][\"hostname\"];\n }\n\n set hostname(V) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n V = conversions[\"USVString\"](V, {\n context: \"Failed to set the 'hostname' property on 'URL': The provided value\" });\n\n\n this[impl][\"hostname\"] = V;\n }\n\n get port() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n return this[impl][\"port\"];\n }\n\n set port(V) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n V = conversions[\"USVString\"](V, { context: \"Failed to set the 'port' property on 'URL': The provided value\" });\n\n this[impl][\"port\"] = V;\n }\n\n get pathname() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n return this[impl][\"pathname\"];\n }\n\n set pathname(V) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n V = conversions[\"USVString\"](V, {\n context: \"Failed to set the 'pathname' property on 'URL': The provided value\" });\n\n\n this[impl][\"pathname\"] = V;\n }\n\n get search() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n return this[impl][\"search\"];\n }\n\n set search(V) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n V = conversions[\"USVString\"](V, {\n context: \"Failed to set the 'search' property on 'URL': The provided value\" });\n\n\n this[impl][\"search\"] = V;\n }\n\n get searchParams() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n return utils.getSameObject(this, \"searchParams\", () => {\n return utils.tryWrapperForImpl(this[impl][\"searchParams\"]);\n });\n }\n\n get hash() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n return this[impl][\"hash\"];\n }\n\n set hash(V) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n V = conversions[\"USVString\"](V, { context: \"Failed to set the 'hash' property on 'URL': The provided value\" });\n\n this[impl][\"hash\"] = V;\n }}\n\n Object.defineProperties(URL.prototype, {\n toJSON: { enumerable: true },\n href: { enumerable: true },\n toString: { enumerable: true },\n origin: { enumerable: true },\n protocol: { enumerable: true },\n username: { enumerable: true },\n password: { enumerable: true },\n host: { enumerable: true },\n hostname: { enumerable: true },\n port: { enumerable: true },\n pathname: { enumerable: true },\n search: { enumerable: true },\n searchParams: { enumerable: true },\n hash: { enumerable: true },\n [Symbol.toStringTag]: { value: \"URL\", configurable: true } });\n\n if (globalObject[ctorRegistry] === undefined) {\n globalObject[ctorRegistry] = Object.create(null);\n }\n globalObject[ctorRegistry][\"URL\"] = URL;\n\n Object.defineProperty(globalObject, \"URL\", {\n configurable: true,\n writable: true,\n value: URL });\n\n } };\n// iface\nmodule.exports = iface;\n\nconst Impl = require(\"./URL-impl.js\");", "\"use strict\";\n\nconst URL = require(\"./lib/URL\");\nconst URLSearchParams = require(\"./lib/URLSearchParams\");\n\nexports.URL = URL;\nexports.URLSearchParams = URLSearchParams;\n", "\"use strict\";\n\nconst { URL, URLSearchParams } = require(\"./webidl2js-wrapper\");\nconst urlStateMachine = require(\"./lib/url-state-machine\");\nconst urlEncoded = require(\"./lib/urlencoded\");\n\nconst sharedGlobalObject = {};\nURL.install(sharedGlobalObject);\nURLSearchParams.install(sharedGlobalObject);\n\nexports.URL = sharedGlobalObject.URL;\nexports.URLSearchParams = sharedGlobalObject.URLSearchParams;\n\nexports.parseURL = urlStateMachine.parseURL;\nexports.basicURLParse = urlStateMachine.basicURLParse;\nexports.serializeURL = urlStateMachine.serializeURL;\nexports.serializeHost = urlStateMachine.serializeHost;\nexports.serializeInteger = urlStateMachine.serializeInteger;\nexports.serializeURLOrigin = urlStateMachine.serializeURLOrigin;\nexports.setTheUsername = urlStateMachine.setTheUsername;\nexports.setThePassword = urlStateMachine.setThePassword;\nexports.cannotHaveAUsernamePasswordPort = urlStateMachine.cannotHaveAUsernamePasswordPort;\n\nexports.percentDecode = urlEncoded.percentDecode;\n", "import {NativeModules} from 'react-native';\nimport {URL as whatwgUrl} from 'whatwg-url-without-unicode';\n\nlet BLOB_URL_PREFIX = null;\n\nconst {BlobModule} = NativeModules;\n\nif (BlobModule && typeof BlobModule.BLOB_URI_SCHEME === 'string') {\n BLOB_URL_PREFIX = BlobModule.BLOB_URI_SCHEME + ':';\n if (typeof BlobModule.BLOB_URI_HOST === 'string') {\n BLOB_URL_PREFIX += `//${BlobModule.BLOB_URI_HOST}/`;\n }\n}\n\n/**\n * To allow Blobs be accessed via `content://` URIs,\n * you need to register `BlobProvider` as a ContentProvider in your app's `AndroidManifest.xml`:\n *\n * ```xml\n * <manifest>\n * <application>\n * <provider\n * android:name=\"com.facebook.react.modules.blob.BlobProvider\"\n * android:authorities=\"@string/blob_provider_authority\"\n * android:exported=\"false\"\n * />\n * </application>\n * </manifest>\n * ```\n * And then define the `blob_provider_authority` string in `res/values/strings.xml`.\n * Use a dotted name that's entirely unique to your app:\n *\n * ```xml\n * <resources>\n * <string name=\"blob_provider_authority\">your.app.package.blobs</string>\n * </resources>\n * ```\n */\n\nwhatwgUrl.createObjectURL = function createObjectURL(blob) {\n if (BLOB_URL_PREFIX === null) {\n throw new Error('Cannot create URL for blob!');\n }\n return `${BLOB_URL_PREFIX}${blob.data.blobId}?offset=${blob.data.offset}&size=${blob.size}`;\n};\n\nwhatwgUrl.revokeObjectURL = function revokeObjectURL(url) {\n // Do nothing.\n};\n\nexport const URL = whatwgUrl;\n", "export {URLSearchParams} from 'whatwg-url-without-unicode';\n", "import './js/ios10Fix';\n\nimport {polyfillGlobal} from 'react-native/Libraries/Utilities/PolyfillFunctions';\n\nimport {name, version} from './package.json';\n\nexport * from './js/URL';\nexport * from './js/URLSearchParams';\n\nexport function setupURLPolyfill() {\n global.REACT_NATIVE_URL_POLYFILL = `${name}@${version}`;\n\n polyfillGlobal('URL', () => require('./js/URL').URL);\n polyfillGlobal(\n 'URLSearchParams',\n () => require('./js/URLSearchParams').URLSearchParams,\n );\n}\n", "export { setupURLPolyfill as setup } from 'react-native-url-polyfill';\n", "import { setup as setupSymbolAsyncIterator } from './symbol-asynciterator';\nimport { setup as setupURLPolyfill } from './url';\n\nexport function setup() {\n setupSymbolAsyncIterator();\n setupURLPolyfill();\n}\n", "'use strict';\n\nimport type { ComponentType } from 'react';\nimport { AppRegistry } from 'react-native';\nimport { setup } from '../rn-polyfills/index';\n\nsetup();\n\nlet registered = false;\n\nexport function register(Component: ComponentType<any>) {\n if (registered) {\n throw new Error('둘 이상의 Page를 register할 수 없습니다. entrypoint에서 1회에 한해 호출해주세요.');\n }\n registered = true;\n\n const component = (props: any) => <Component {...props} />;\n\n AppRegistry.registerComponent('Page', () => component);\n AppRegistry.registerComponent('shared', () => component);\n}\n", "import { Platform } from 'react-native';\n\nexport const isBlurNativeModuleSupported = Platform.OS === 'ios';\n", "module.exports = __bedrock_require__('@react-native-community/blur');", "export * from '@react-native-community/blur';\n", "import type { BlurView, VibrancyView } from '@react-native-bedrock/native/@react-native-community/blur';\nimport { isBlurNativeModuleSupported } from './constants';\n\nconst ReactNativeBlurModule = (() => {\n if (!isBlurNativeModuleSupported) {\n return undefined;\n }\n\n try {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n return require('@react-native-bedrock/native/@react-native-community/blur') as {\n BlurView: typeof BlurView;\n VibrancyView: typeof VibrancyView;\n };\n } catch {\n return undefined;\n }\n})();\n\nexport { ReactNativeBlurModule };\n", "import type { BlurViewProps as InternalBlurViewProps } from '@react-native-bedrock/native/@react-native-community/blur';\nimport { View, ViewProps } from 'react-native';\nimport { ReactNativeBlurModule } from './ReactNativeBlurModule';\nimport { isBlurNativeModuleSupported } from './constants';\n\nexport type BlurType = InternalBlurViewProps['blurType'];\n\nexport interface BlurViewProps extends ViewProps {\n blurType?: BlurType;\n blurAmount?: number;\n /**\n * Vibrancy Effect를 추가합니다\n * @see https://zeddios.tistory.com/1140\n * @ref https://developer.apple.com/documentation/uikit/uivibrancyeffect\n */\n vibrancyEffect?: boolean;\n reducedTransparencyFallbackColor?: string;\n}\n\n/**\n * @public\n * @tag UI\n * @category Components\n * @kind component\n * @name BlurView\n * @description\n * `BlurView` 컴포넌트는 iOS에서 배경을 블러 처리하는 UI 효과를 줘요. 이 컴포넌트는 배경을 흐리게 표시해요. iOS에서만 지원되고\n * Android에서는 기본 [`View`](https://reactnative.dev/docs/0.72/view) 를 렌더링해요.\n *\n * 블러의 강도를 조절할 수 있고, [Vibrancy 효과](https://developer.apple.com/documentation/uikit/uivibrancyeffect?language=objc)를 적용할 수 있어요. 블러가 적용되지 않을 경우에는 [`reducedTransparencyFallbackColor`](https://github.com/Kureev/react-native-blur/tree/v4.3.2?tab=readme-ov-file#blurview)를 사용해 배경색을 설정할 수 있어요.\n *\n * `isSupported` 속성을 통해 현재 기기에서 블러가 지원되는지 확인할 수 있어요. iOS 5.126.0 이상에서만 블러 효과가 지원되고, Android에서는 지원되지 않아요.\n *\n * @param {BlurViewProps} [props] props `BlurView`에 전달할 속성들이에요. `react-native`의 `ViewProps`를 상속하므로, 기본적인 레이아웃 속성도 함께 사용할 수 있어요. [@react-native-community/blur](https://github.com/Kureev/react-native-blur/tree/v4.3.2?tab=readme-ov-file#blurview)의 속성과 같아요.\n * @param {BlurType} [props.blurType] 블러의 유형을 설정해요. `light`, `dark`, `extraDark` 같은 값을 사용해 블러의 스타일을 정의할 수 있어요.\n * @param {number} [props.blurAmount=10] 블러 효과의 강도를 설정해요. 값이 클수록 블러 효과가 더 강해져요. 기본값은 `10`이며 `0`부터 `100`까지 설정할 수 있어요.\n * @param {boolean} [props.vibrancyEffect=false] Vibrancy Effect를 활성화해요. Vibrancy 효과는 블러된 배경 위의 콘텐츠를 더 생동감 있게 보이도록 해줘요. iOS에서만 지원되며, 기본값은 `false`예요.\n * @param {string} [props.reducedTransparencyFallbackColor] 투명도가 제한될 경우 사용할 대체 배경색이에요. 블러가 지원되지 않거나 제대로 렌더링되지 않을 때 유용해요.\n *\n * @returns {JSX.Element} iOS에서는 블러가 적용된 `BlurView` 또는 `VibrancyView` 컴포넌트를 반환하고, Android에서는 기본 `View`를 반환해요.\n *\n * ::: warning 유의할 점\n * `BlurView`는 iOS에서만 지원돼요. Android에서는 기본 `View`가 렌더링되며, 블러 효과가 적용되지 않아요.\n * :::\n *\n * @example\n *\n * ### `BlurView`를 사용해 텍스트를 블러 처리하기\n *\n * ```tsx\n * import { View, Text, StyleSheet } from 'react-native';\n * import { BlurView } from 'react-native-bedrock';\n *\n * export function BlurViewExample() {\n * return (\n * <View style={styles.container}>\n * <Text style={styles.absolute}>Blurred Text</Text>\n * <BlurView style={styles.absolute} blurType=\"light\" blurAmount={1} />\n * <Text>Non Blurred Text</Text>\n * </View>\n * );\n * }\n *\n * const styles = StyleSheet.create({\n * container: {\n * justifyContent: 'center',\n * alignItems: 'center',\n * width: '100%',\n * height: 300,\n * },\n * absolute: {\n * position: 'absolute',\n * top: 0,\n * left: 0,\n * bottom: 0,\n * right: 0,\n * },\n * });\n * ```\n *\n * @see [iOS Vibrancy Effect Documentation](https://developer.apple.com/documentation/uikit/uivibrancyeffect)\n * @see [Zeddios Blog 설명](https://zeddios.tistory.com/1140)\n */\n\nexport function BlurView({\n blurType,\n blurAmount = 10,\n reducedTransparencyFallbackColor,\n vibrancyEffect = false,\n ...viewProps\n}: BlurViewProps) {\n if (!isBlurNativeModuleSupported || ReactNativeBlurModule == null) {\n return <View {...viewProps} />;\n }\n\n const Component = vibrancyEffect ? ReactNativeBlurModule.VibrancyView : ReactNativeBlurModule.BlurView;\n\n return (\n <Component\n blurAmount={blurAmount}\n blurType={blurType}\n reducedTransparencyFallbackColor={reducedTransparencyFallbackColor}\n {...viewProps}\n />\n );\n}\n\nBlurView.isSupported = isBlurNativeModuleSupported;\n", "export * from './BlurView';\n", "import { useEffect, useRef } from 'react';\nimport { Animated, Keyboard, Platform } from 'react-native';\n\nfunction getInitialKeyboardHeight() {\n if (Platform.OS !== 'ios') {\n return 0;\n }\n\n /**\n * React Native 0.68.0 버전에는 `metrics()`가 존재하지 않아 분기 처리\n */\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n if (typeof Keyboard?.metrics === 'function') {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return Keyboard.metrics()?.height ?? 0;\n } else {\n return 0;\n }\n}\n\n/**\n * @category Hooks\n * @name useKeyboardAnimatedHeight\n * @description\n * 키보드가 나타나거나 사라질 때, 키보드의 높이의 변화를 애니메이션 가능한 값(`Animated.Value`)으로 반환하는 Hook이에요. 키보드가 올라오거나 내려갈 때 키보드 높이에 맞춰 UI 요소를 부드럽게 변화시킬 수 있어요.\n *\n * 이 Hook은 주로 iOS에서 사용해요. Android에서는 키보드 높이 변경을 감지하지 않고, 항상 초기값이 `0`인 `Animated.Value`를 반환해요. 즉, Android 환경에서는 애니메이션이 적용되지 않아요.\n *\n * @returns {Animated.Value} - 키보드의 높이를 나타내는 애니메이션 값이에요.\n * @example\n * ```typescript\n * const keyboardHeight = useKeyboardAnimatedHeight();\n *\n * <Animated.View style={{ marginBottom: keyboardHeight }}>\n * {children}\n * </Animated.View>\n * ```\n */\nexport function useKeyboardAnimatedHeight(): Animated.Value {\n const keyboardHeight = useRef(new Animated.Value(getInitialKeyboardHeight())).current;\n\n useEffect(() => {\n if (Platform.OS === 'ios') {\n const willShowSubscription = Keyboard.addListener('keyboardWillShow', (event) => {\n const height = event.endCoordinates.height;\n\n Animated.spring(keyboardHeight, {\n toValue: height,\n useNativeDriver: true,\n ...spring.quick,\n }).start();\n });\n\n const willHideSubscription = Keyboard.addListener('keyboardWillHide', () => {\n Animated.spring(keyboardHeight, {\n toValue: 0,\n useNativeDriver: true,\n ...spring.quick,\n }).start();\n });\n return () => {\n willShowSubscription.remove();\n willHideSubscription.remove();\n };\n } else {\n return;\n }\n }, [keyboardHeight]);\n\n return keyboardHeight;\n}\n\nconst spring = {\n quick: {\n stiffness: 800,\n damping: 55,\n mass: 1,\n },\n};\n", "import { ComponentProps, ReactElement } from 'react';\nimport { Animated, View } from 'react-native';\nimport { useKeyboardAnimatedHeight } from './useKeyboardAnimatedHeight';\n\n/**\n * @public\n * @tag UI\n * @name KeyboardAboveView\n * @category Components\n * @kind function\n * @description\n * 키보드가 화면에 나타날 때 자식 컴포넌트를 키보드 위로 자동으로 올려주는 컴포넌트예요.\n * 예를 들어, 텍스트 입력 중 \"전송\" 버튼을 키보드 위에 고정시키고 싶을 때 유용해요.\n *\n * @param {StyleProp<ViewStyle>} [props.style] - 추가적인 스타일을 적용할 수 있어요. 예를 들어, 배경색이나 크기 등을 설정할 수 있어요.\n * @param {ReactNode} [props.children] - 키보드가 나타날 때 키보드 위로 표시할 컴포넌트예요. 예를 들어, 버튼, 텍스트 입력창 등을 넣을 수 있어요.\n * @returns {ReactElement} - 키보드가 나타났을 때 키보드 위로 조정된 [`Animated.View`](https://reactnative.dev/docs/animated#createanimatedcomponent)를 반환해요.\n * @example\n *\n * ### 키보드 위로 요소를 올리기\n *\n * ```tsx\n * import { ScrollView, TextInput, View, Text } from 'react-native';\n * import { KeyboardAboveView } from 'react-native-bedrock';\n *\n * export function KeyboardAboveViewExample() {\n * return (\n * <>\n * <ScrollView>\n * <TextInput placeholder=\"placeholder\" />\n * </ScrollView>\n *\n * <KeyboardAboveView>\n * <View style={{ width: '100%', height: 50, backgroundColor: 'yellow' }}>\n * <Text>Keyboard 위에 있어요.</Text>\n * </View>\n * </KeyboardAboveView>\n * </>\n * );\n * }\n * ```\n */\nexport function KeyboardAboveView({ style, children, ...props }: ComponentProps<typeof View>): ReactElement {\n const keyboardHeight = useKeyboardAnimatedHeight();\n\n return (\n <Animated.View\n style={[\n style,\n {\n transform: [\n {\n translateY: Animated.subtract(0, keyboardHeight),\n },\n ],\n },\n ]}\n {...props}\n >\n {children}\n </Animated.View>\n );\n}\n", "export { KeyboardAboveView } from './KeyboardAboveView';\n", "import { createContext } from 'react';\nimport IOManager from './IOManager';\n\nexport interface IOContextValue {\n manager: null | IOManager;\n}\n\n/**\n * @name IOContext\n * @description IOManager 인스턴스를 공유하는 컨텍스트에요.\n */\nconst IOContext = createContext<IOContextValue>({\n manager: null,\n});\n\nexport default IOContext;\n", "function _assert_this_initialized(self) {\n if (self === void 0) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n\n return self;\n}\nexport { _assert_this_initialized as _ };\n", "function _set_prototype_of(o, p) {\n _set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {\n o.__proto__ = p;\n\n return o;\n };\n\n return _set_prototype_of(o, p);\n}\nexport { _set_prototype_of as _ };\n", "import { _ as _set_prototype_of } from \"./_set_prototype_of.js\";\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });\n\n if (superClass) _set_prototype_of(subClass, superClass);\n}\nexport { _inherits as _ };\n", "function _get_prototype_of(o) {\n _get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n\n return _get_prototype_of(o);\n}\nexport { _get_prototype_of as _ };\n", "function _is_native_reflect_construct() {\n // Since Reflect.construct can't be properly polyfilled, some\n // implementations (e.g. core-js@2) don't set the correct internal slots.\n // Those polyfills don't allow us to subclass built-ins, so we need to\n // use our fallback implementation.\n try {\n // If the internal slots aren't set, this throws an error similar to\n // TypeError: this is not a Boolean object.\n var result = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));\n } catch (_) {}\n return (_is_native_reflect_construct = function() {\n return !!result;\n })();\n}\n\nexport { _is_native_reflect_construct as _ };\n", "import { _ as _assert_this_initialized } from \"./_assert_this_initialized.js\";\nimport { _ as _type_of } from \"./_type_of.js\";\n\nfunction _possible_constructor_return(self, call) {\n if (call && (_type_of(call) === \"object\" || typeof call === \"function\")) return call;\n\n return _assert_this_initialized(self);\n}\nexport { _possible_constructor_return as _ };\n", "import { _ as _get_prototype_of } from \"./_get_prototype_of.js\";\nimport { _ as _is_native_reflect_construct } from \"./_is_native_reflect_construct.js\";\nimport { _ as _possible_constructor_return } from \"./_possible_constructor_return.js\";\n\nfunction _create_super(Derived) {\n var hasNativeReflectConstruct = _is_native_reflect_construct();\n\n return function _createSuperInternal() {\n var Super = _get_prototype_of(Derived), result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _get_prototype_of(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possible_constructor_return(this, result);\n };\n}\nexport { _create_super as _ };\n", "import { _ as _is_native_reflect_construct } from \"./_is_native_reflect_construct.js\";\nimport { _ as _set_prototype_of } from \"./_set_prototype_of.js\";\nfunction _construct(Parent, args, Class) {\n if (_is_native_reflect_construct()) _construct = Reflect.construct;\n else {\n _construct = function construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n\n if (Class) _set_prototype_of(instance, Class.prototype);\n\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\nexport { _construct as _ };\n", "function _is_native_function(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\nexport { _is_native_function as _ };\n", "import { _ as _construct } from \"./_construct.js\";\nimport { _ as _get_prototype_of } from \"./_get_prototype_of.js\";\nimport { _ as _is_native_function } from \"./_is_native_function.js\";\nimport { _ as _set_prototype_of } from \"./_set_prototype_of.js\";\n\nfunction _wrap_native_super(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n _wrap_native_super = function(Class) {\n if (Class === null || !_is_native_function(Class)) return Class;\n if (typeof Class !== \"function\") throw new TypeError(\"Super expression must either be null or a function\");\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, _get_prototype_of(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } });\n\n return _set_prototype_of(Wrapper, Class);\n };\n\n return _wrap_native_super(Class);\n}\nexport { _wrap_native_super as _ };\n", "function debounce(func, debounceMs, { signal, edges } = {}) {\n let pendingThis = undefined;\n let pendingArgs = null;\n const leading = edges != null && edges.includes('leading');\n const trailing = edges == null || edges.includes('trailing');\n const invoke = () => {\n if (pendingArgs !== null) {\n func.apply(pendingThis, pendingArgs);\n pendingThis = undefined;\n pendingArgs = null;\n }\n };\n const onTimerEnd = () => {\n if (trailing) {\n invoke();\n }\n cancel();\n };\n let timeoutId = null;\n const schedule = () => {\n if (timeoutId != null) {\n clearTimeout(timeoutId);\n }\n timeoutId = setTimeout(() => {\n timeoutId = null;\n onTimerEnd();\n }, debounceMs);\n };\n const cancelTimer = () => {\n if (timeoutId !== null) {\n clearTimeout(timeoutId);\n timeoutId = null;\n }\n };\n const cancel = () => {\n cancelTimer();\n pendingThis = undefined;\n pendingArgs = null;\n };\n const flush = () => {\n cancelTimer();\n invoke();\n };\n const debounced = function (...args) {\n if (signal?.aborted) {\n return;\n }\n pendingThis = this;\n pendingArgs = args;\n const isFirstCall = timeoutId == null;\n schedule();\n if (leading && isFirstCall) {\n invoke();\n }\n };\n debounced.schedule = schedule;\n debounced.cancel = cancel;\n debounced.flush = flush;\n signal?.addEventListener('abort', cancel, { once: true });\n return debounced;\n}\n\nexport { debounce };\n", "import { debounce } from './debounce.mjs';\n\nfunction throttle(func, throttleMs, { signal, edges = ['leading', 'trailing'] } = {}) {\n let pendingAt = null;\n const debounced = debounce(func, throttleMs, { signal, edges });\n const throttled = function (...args) {\n if (pendingAt == null) {\n pendingAt = Date.now();\n }\n else {\n if (Date.now() - pendingAt >= throttleMs) {\n pendingAt = Date.now();\n debounced.cancel();\n debounced(...args);\n }\n }\n debounced(...args);\n };\n throttled.cancel = debounced.cancel;\n throttled.flush = debounced.flush;\n return throttled;\n}\n\nexport { throttle };\n", "export { at } from './array/at.mjs';\nexport { chunk } from './array/chunk.mjs';\nexport { compact } from './array/compact.mjs';\nexport { countBy } from './array/countBy.mjs';\nexport { difference } from './array/difference.mjs';\nexport { differenceBy } from './array/differenceBy.mjs';\nexport { differenceWith } from './array/differenceWith.mjs';\nexport { drop } from './array/drop.mjs';\nexport { dropRight } from './array/dropRight.mjs';\nexport { dropRightWhile } from './array/dropRightWhile.mjs';\nexport { dropWhile } from './array/dropWhile.mjs';\nexport { fill } from './array/fill.mjs';\nexport { flatMap } from './array/flatMap.mjs';\nexport { flatMapDeep } from './array/flatMapDeep.mjs';\nexport { flatten } from './array/flatten.mjs';\nexport { flattenDeep } from './array/flattenDeep.mjs';\nexport { forEachRight } from './array/forEachRight.mjs';\nexport { groupBy } from './array/groupBy.mjs';\nexport { head } from './array/head.mjs';\nexport { initial } from './array/initial.mjs';\nexport { intersection } from './array/intersection.mjs';\nexport { intersectionBy } from './array/intersectionBy.mjs';\nexport { intersectionWith } from './array/intersectionWith.mjs';\nexport { isSubset } from './array/isSubset.mjs';\nexport { isSubsetWith } from './array/isSubsetWith.mjs';\nexport { keyBy } from './array/keyBy.mjs';\nexport { last } from './array/last.mjs';\nexport { maxBy } from './array/maxBy.mjs';\nexport { minBy } from './array/minBy.mjs';\nexport { orderBy } from './array/orderBy.mjs';\nexport { partition } from './array/partition.mjs';\nexport { pull } from './array/pull.mjs';\nexport { pullAt } from './array/pullAt.mjs';\nexport { remove } from './array/remove.mjs';\nexport { sample } from './array/sample.mjs';\nexport { sampleSize } from './array/sampleSize.mjs';\nexport { shuffle } from './array/shuffle.mjs';\nexport { sortBy } from './array/sortBy.mjs';\nexport { tail } from './array/tail.mjs';\nexport { take } from './array/take.mjs';\nexport { takeRight } from './array/takeRight.mjs';\nexport { takeRightWhile } from './array/takeRightWhile.mjs';\nexport { takeWhile } from './array/takeWhile.mjs';\nexport { toFilled } from './array/toFilled.mjs';\nexport { union } from './array/union.mjs';\nexport { unionBy } from './array/unionBy.mjs';\nexport { unionWith } from './array/unionWith.mjs';\nexport { uniq } from './array/uniq.mjs';\nexport { uniqBy } from './array/uniqBy.mjs';\nexport { uniqWith } from './array/uniqWith.mjs';\nexport { unzip } from './array/unzip.mjs';\nexport { unzipWith } from './array/unzipWith.mjs';\nexport { windowed } from './array/windowed.mjs';\nexport { without } from './array/without.mjs';\nexport { xor } from './array/xor.mjs';\nexport { xorBy } from './array/xorBy.mjs';\nexport { xorWith } from './array/xorWith.mjs';\nexport { zip } from './array/zip.mjs';\nexport { zipObject } from './array/zipObject.mjs';\nexport { zipWith } from './array/zipWith.mjs';\nexport { AbortError } from './error/AbortError.mjs';\nexport { TimeoutError } from './error/TimeoutError.mjs';\nexport { after } from './function/after.mjs';\nexport { ary } from './function/ary.mjs';\nexport { asyncNoop } from './function/asyncNoop.mjs';\nexport { before } from './function/before.mjs';\nexport { curry } from './function/curry.mjs';\nexport { curryRight } from './function/curryRight.mjs';\nexport { debounce } from './function/debounce.mjs';\nexport { flow } from './function/flow.mjs';\nexport { flowRight } from './function/flowRight.mjs';\nexport { identity } from './function/identity.mjs';\nexport { memoize } from './function/memoize.mjs';\nexport { negate } from './function/negate.mjs';\nexport { noop } from './function/noop.mjs';\nexport { once } from './function/once.mjs';\nexport { partial } from './function/partial.mjs';\nexport { partialRight } from './function/partialRight.mjs';\nexport { rest } from './function/rest.mjs';\nexport { retry } from './function/retry.mjs';\nexport { spread } from './function/spread.mjs';\nexport { throttle } from './function/throttle.mjs';\nexport { unary } from './function/unary.mjs';\nexport { clamp } from './math/clamp.mjs';\nexport { inRange } from './math/inRange.mjs';\nexport { mean } from './math/mean.mjs';\nexport { meanBy } from './math/meanBy.mjs';\nexport { median } from './math/median.mjs';\nexport { medianBy } from './math/medianBy.mjs';\nexport { random } from './math/random.mjs';\nexport { randomInt } from './math/randomInt.mjs';\nexport { range } from './math/range.mjs';\nexport { rangeRight } from './math/rangeRight.mjs';\nexport { round } from './math/round.mjs';\nexport { sum } from './math/sum.mjs';\nexport { sumBy } from './math/sumBy.mjs';\nexport { clone } from './object/clone.mjs';\nexport { cloneDeep } from './object/cloneDeep.mjs';\nexport { cloneDeepWith } from './object/cloneDeepWith.mjs';\nexport { findKey } from './object/findKey.mjs';\nexport { flattenObject } from './object/flattenObject.mjs';\nexport { invert } from './object/invert.mjs';\nexport { mapKeys } from './object/mapKeys.mjs';\nexport { mapValues } from './object/mapValues.mjs';\nexport { merge } from './object/merge.mjs';\nexport { mergeWith } from './object/mergeWith.mjs';\nexport { omit } from './object/omit.mjs';\nexport { omitBy } from './object/omitBy.mjs';\nexport { pick } from './object/pick.mjs';\nexport { pickBy } from './object/pickBy.mjs';\nexport { toMerged } from './object/toMerged.mjs';\nexport { isArrayBuffer } from './predicate/isArrayBuffer.mjs';\nexport { isBlob } from './predicate/isBlob.mjs';\nexport { isBoolean } from './predicate/isBoolean.mjs';\nexport { isBuffer } from './predicate/isBuffer.mjs';\nexport { isDate } from './predicate/isDate.mjs';\nexport { isEqual } from './predicate/isEqual.mjs';\nexport { isEqualWith } from './predicate/isEqualWith.mjs';\nexport { isError } from './predicate/isError.mjs';\nexport { isFile } from './predicate/isFile.mjs';\nexport { isFunction } from './predicate/isFunction.mjs';\nexport { isJSONArray, isJSONObject, isJSONValue } from './predicate/isJSONValue.mjs';\nexport { isLength } from './predicate/isLength.mjs';\nexport { isMap } from './predicate/isMap.mjs';\nexport { isNil } from './predicate/isNil.mjs';\nexport { isNotNil } from './predicate/isNotNil.mjs';\nexport { isNull } from './predicate/isNull.mjs';\nexport { isPlainObject } from './predicate/isPlainObject.mjs';\nexport { isPrimitive } from './predicate/isPrimitive.mjs';\nexport { isPromise } from './predicate/isPromise.mjs';\nexport { isRegExp } from './predicate/isRegExp.mjs';\nexport { isSet } from './predicate/isSet.mjs';\nexport { isString } from './predicate/isString.mjs';\nexport { isSymbol } from './predicate/isSymbol.mjs';\nexport { isTypedArray } from './predicate/isTypedArray.mjs';\nexport { isUndefined } from './predicate/isUndefined.mjs';\nexport { isWeakMap } from './predicate/isWeakMap.mjs';\nexport { isWeakSet } from './predicate/isWeakSet.mjs';\nexport { delay } from './promise/delay.mjs';\nexport { Mutex } from './promise/mutex.mjs';\nexport { Semaphore } from './promise/semaphore.mjs';\nexport { timeout } from './promise/timeout.mjs';\nexport { withTimeout } from './promise/withTimeout.mjs';\nexport { camelCase } from './string/camelCase.mjs';\nexport { capitalize } from './string/capitalize.mjs';\nexport { constantCase } from './string/constantCase.mjs';\nexport { deburr } from './string/deburr.mjs';\nexport { escape } from './string/escape.mjs';\nexport { escapeRegExp } from './string/escapeRegExp.mjs';\nexport { kebabCase } from './string/kebabCase.mjs';\nexport { lowerCase } from './string/lowerCase.mjs';\nexport { lowerFirst } from './string/lowerFirst.mjs';\nexport { pad } from './string/pad.mjs';\nexport { pascalCase } from './string/pascalCase.mjs';\nexport { snakeCase } from './string/snakeCase.mjs';\nexport { startCase } from './string/startCase.mjs';\nexport { trim } from './string/trim.mjs';\nexport { trimEnd } from './string/trimEnd.mjs';\nexport { trimStart } from './string/trimStart.mjs';\nexport { unescape } from './string/unescape.mjs';\nexport { upperCase } from './string/upperCase.mjs';\nexport { upperFirst } from './string/upperFirst.mjs';\nexport { words } from './string/words.mjs';\nexport { invariant } from './util/invariant.mjs';\n", "import { throttle } from 'es-toolkit';\nimport { LayoutRectangle, NativeScrollEvent } from 'react-native';\n\nexport interface Root {\n /**\n * 대상 컴포넌트의 NodeHandle\n */\n node: any;\n /**\n * 가로 스크롤 활성화 여부\n */\n horizontal: boolean;\n /**\n * 대상 컴포넌트의 스크롤 이벤트\n */\n current: NativeScrollEvent;\n onLayout?: () => void;\n onScroll?: (event: NativeScrollEvent) => void;\n}\n\nexport interface Element {\n inView: boolean;\n intersectionRatio: number;\n layout: LayoutRectangle;\n measureLayout: (node: any, callback: (x: number, y: number, width: number, height: number) => void) => void;\n onLayout?: () => void;\n}\n\nexport interface IntersectionObserverEntry {\n target: Element;\n isIntersecting: boolean;\n intersectionRatio: number;\n}\n\nexport interface RootMargin {\n left?: number;\n right?: number;\n top?: number;\n bottom?: number;\n}\n\nexport interface IntersectionObserverOptions {\n /**\n * 요소를 감싸고 있는 컴포넌트 정보\n */\n root: Root;\n rootMargin?: RootMargin;\n threshold?: number | number[];\n}\n\nexport type IntersectionObserverCallback = (entries: IntersectionObserverEntry[]) => void;\n\nexport const defaultRootMargin: RootMargin = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n};\n\nexport const defaultThreshold = 0;\n\n/**\n * @kind class\n * @name IntersectionObserver\n * @description\n * React Native 환경을 위해 구현된 IntersectionObserver 에요.\n *\n * @param {IntersectionObserverCallback} callback - 대상 요소의 노출 상태가 변경될 때 호출되는 콜백이에요.\n * @param {IntersectionObserverOptions} options - IntersectionObserver 동작을 제어하는 옵션 객체에요.\n */\nclass IntersectionObserver {\n protected callback: IntersectionObserverCallback;\n protected options: IntersectionObserverOptions;\n protected targets: Element[];\n\n constructor(callback: IntersectionObserverCallback, options: IntersectionObserverOptions) {\n this.callback = callback;\n this.options = options;\n this.targets = [];\n this.options.root.onLayout = this.handleLayout;\n this.options.root.onScroll = this.handleScroll;\n }\n\n protected measureTarget = (target: Element) => {\n const rootNode = this.options.root.node;\n if (rootNode) {\n target.measureLayout(rootNode, (x, y, width, height) => {\n target.layout = {\n x,\n y,\n width,\n height,\n };\n this.handleScroll();\n });\n }\n };\n\n protected handleLayout = throttle(\n () => {\n for (let index = 0; index < this.targets.length; index += 1) {\n const target = this.targets[index];\n\n if (target != null) {\n this.measureTarget(target);\n }\n }\n },\n 300,\n { edges: ['trailing'] }\n ) as () => void;\n\n protected handleScroll = throttle(\n () => {\n const rootMargin = this.options?.rootMargin || defaultRootMargin;\n\n const {\n horizontal,\n current: { contentOffset, contentSize, layoutMeasurement },\n } = this.options.root;\n if (\n contentSize.width <= 0 ||\n contentSize.height <= 0 ||\n layoutMeasurement.width <= 0 ||\n layoutMeasurement.height <= 0\n ) {\n return;\n }\n const contentOffsetWithLayout = horizontal\n ? contentOffset.x + layoutMeasurement.width\n : contentOffset.y + layoutMeasurement.height;\n const changedTargets: IntersectionObserverEntry[] = [];\n for (let index = 0; index < this.targets.length; index += 1) {\n const target = this.targets[index];\n\n if (target == null) {\n continue;\n }\n\n const targetLayout = target.layout;\n if (!targetLayout || targetLayout.width === 0 || targetLayout.height === 0) {\n continue;\n }\n\n const previousIntersectionRatio = target.intersectionRatio;\n\n let isIntersecting = false;\n let intersectionRatio = previousIntersectionRatio;\n\n if (horizontal) {\n const visibleTargetMinX = Math.max(contentOffset.x - (rootMargin.left || 0), targetLayout.x);\n const visibleTargetMaxX = Math.min(\n contentOffsetWithLayout + (rootMargin.left || 0),\n targetLayout.x + targetLayout.width\n );\n const visibleHeight = Math.max(visibleTargetMaxX - visibleTargetMinX, 0);\n\n intersectionRatio = visibleHeight / targetLayout.height;\n isIntersecting =\n contentOffsetWithLayout + (rootMargin.right || 0) >= targetLayout.x &&\n contentOffset.x - (rootMargin.left || 0) <= targetLayout.x + targetLayout.width;\n } else {\n const visibleTargetMinY = Math.max(contentOffset.y - (rootMargin.top || 0), targetLayout.y);\n const visibleTargetMaxY = Math.min(\n contentOffsetWithLayout + (rootMargin.bottom || 0),\n targetLayout.y + targetLayout.height\n );\n const visibleHeight = Math.max(visibleTargetMaxY - visibleTargetMinY, 0);\n\n intersectionRatio = visibleHeight / targetLayout.height;\n isIntersecting =\n contentOffsetWithLayout + (rootMargin.bottom || 0) >= targetLayout.y &&\n contentOffset.y - (rootMargin.top || 0) <= targetLayout.y + targetLayout.height;\n }\n\n intersectionRatio = Math.floor(intersectionRatio * 100) / 100;\n\n if (target.inView !== isIntersecting || target.intersectionRatio !== intersectionRatio) {\n target.inView = isIntersecting;\n target.intersectionRatio = intersectionRatio;\n\n changedTargets.push({\n target,\n isIntersecting,\n intersectionRatio,\n });\n }\n }\n this.callback(changedTargets);\n },\n 100,\n { edges: ['trailing'] }\n ) as () => void;\n\n public observe(target: Element) {\n const index = this.targets.indexOf(target);\n if (index < 0) {\n target.onLayout = this.handleLayout;\n this.targets.push(target);\n }\n }\n\n public unobserve(target: Element) {\n const index = this.targets.indexOf(target);\n if (index >= 0) {\n target.onLayout = undefined;\n this.targets.splice(index, 1);\n }\n }\n}\n\nexport default IntersectionObserver;\n", "import IntersectionObserver, {\n IntersectionObserverOptions,\n IntersectionObserverEntry,\n Element,\n} from './IntersectionObserver';\n\nexport type ObserverInstanceCallback = (inView: boolean, intersectionRatio: number) => void;\n\nexport interface ObserverInstance {\n readonly callback: ObserverInstanceCallback;\n readonly element: Element;\n readonly observerId: number;\n readonly observer: IntersectionObserver;\n}\n\n/**\n * @kind class\n * @name IOManager\n * @description `IntersectionObserver` 인스턴스를 사용해서 DOM 요소의 가시성을 추적하고, 요소가 뷰포트에 들어오거나 나갈 때 콜백을 실행하는 클래스예요.\n * 이 클래스를 통해 여러 요소를 손쉽게 관리할 수 있고, 각 요소의 가시성 상태에 따라 맞춤형 로직을 실행할 수 있어요.\n */\nclass IOManager {\n io: IntersectionObserver;\n observerId: number;\n instanceMap: Map<Element, ObserverInstance> = new Map();\n\n constructor(options: IntersectionObserverOptions) {\n this.io = new IntersectionObserver(this.handleChange, options);\n this.observerId = 0;\n }\n\n handleChange = (entries: IntersectionObserverEntry[]) => {\n for (let index = 0; index < entries.length; index += 1) {\n const entry = entries[index];\n\n if (entry == null) {\n continue;\n }\n\n const { target, isIntersecting, intersectionRatio } = entry;\n const instance = this.instanceMap.get(target);\n if (instance) {\n instance.callback(isIntersecting, intersectionRatio);\n }\n }\n };\n\n observe(element: Element, callback: ObserverInstanceCallback): ObserverInstance {\n const existInstance = this.instanceMap.get(element);\n if (existInstance) {\n return existInstance;\n }\n this.observerId += 1;\n const instance: ObserverInstance = {\n callback,\n element,\n observerId: this.observerId,\n observer: this.io,\n };\n this.instanceMap.set(element, instance);\n this.io.observe(element);\n return instance;\n }\n\n unobserve(element: any) {\n if (this.instanceMap.has(element)) {\n this.instanceMap.delete(element);\n this.io.unobserve(element);\n }\n }\n}\n\nexport default IOManager;\n", "import { type ComponentProps, PureComponent, RefObject, createRef } from 'react';\nimport { LayoutChangeEvent, NativeScrollEvent, NativeSyntheticEvent, ScrollView, findNodeHandle } from 'react-native';\nimport IOContext, { IOContextValue } from './IOContext';\nimport IOManager from './IOManager';\nimport { Root, RootMargin } from './IntersectionObserver';\n\nexport interface IOComponentProps {\n rootMargin?: RootMargin;\n}\n\n/**\n * @category Functions\n * @kind function\n * @name withIO\n * @description\n * 특정 컴포넌트에서 Intersection Observer 기능을 사용할 수 있도록 `IOContext` 를 래핑하는 `HoC` 에요.\n *\n * @argument\n * @param {React.ComponentType} [BaseComponent] - 컴포넌트가 마운트될 때 호출되는 콜백 함수예요.\n * @param {string[]} [methods] - 바인딩할 BaseComponent의 이벤트 핸들러 이름 목록이에요.\n * @returns {React.ComponentType} - Intersection Observer 기능을 사용할 수 있도록 래핑된 컴포넌트를 반환해요.\n */\nfunction withIO<\n CompProps extends Pick<\n ComponentProps<typeof ScrollView>,\n 'horizontal' | 'scrollEventThrottle' | 'onContentSizeChange' | 'onLayout' | 'onScroll'\n >,\n>(BaseComponent: React.ComponentType<CompProps>, methods: string[]) {\n type ScrollableComponentProps = CompProps & IOComponentProps;\n const IOScrollableComponent = class extends PureComponent<ScrollableComponentProps> {\n protected node: any;\n protected scroller: RefObject<any>;\n protected root: Root;\n protected manager: IOManager;\n protected contextValue: IOContextValue;\n\n constructor(props: ScrollableComponentProps) {\n super(props);\n\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const self = this;\n this.scroller = createRef();\n this.root = {\n get node() {\n return self.node;\n },\n get horizontal() {\n return Boolean(self.props.horizontal);\n },\n current: {\n contentInset: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n },\n contentOffset: {\n x: 0,\n y: 0,\n },\n contentSize: {\n width: 0,\n height: 0,\n },\n layoutMeasurement: {\n width: 0,\n height: 0,\n },\n zoomScale: 1,\n },\n };\n const manager = new IOManager({\n root: this.root,\n get rootMargin() {\n return self.props.rootMargin;\n },\n });\n this.manager = manager;\n this.contextValue = {\n manager,\n };\n }\n\n componentDidMount() {\n this.node = findNodeHandle(this.scroller.current);\n methods.forEach((method) => {\n (this as any)[method] = (...args: any) => {\n this.scroller.current?.[method]?.(...args);\n };\n });\n }\n\n protected handleContentSizeChange = (width: number, height: number) => {\n const { contentSize } = this.root.current;\n if (width !== contentSize.width || height !== contentSize.height) {\n this.root.current.contentSize = { width, height };\n if (width > 0 && height > 0 && this.root.onLayout) {\n this.root.onLayout();\n }\n }\n const { onContentSizeChange } = this.props;\n if (onContentSizeChange) {\n onContentSizeChange(width, height);\n }\n };\n\n protected handleLayout = (event: LayoutChangeEvent) => {\n const {\n nativeEvent: { layout },\n } = event;\n const { layoutMeasurement } = this.root.current;\n if (layoutMeasurement.width !== layout.width || layoutMeasurement.height !== layout.height) {\n this.root.current.layoutMeasurement = layout;\n }\n const { onLayout } = this.props;\n if (onLayout) {\n onLayout(event);\n }\n };\n\n protected handleScroll = (event: NativeSyntheticEvent<NativeScrollEvent>) => {\n this.root.current = event.nativeEvent;\n if (this.root.onScroll) {\n this.root.onScroll(this.root.current);\n }\n const { onScroll } = this.props;\n if (onScroll) {\n onScroll(event);\n }\n };\n\n render() {\n return (\n <IOContext.Provider value={this.contextValue}>\n <BaseComponent\n scrollEventThrottle={16}\n {...this.props}\n ref={this.scroller}\n onContentSizeChange={this.handleContentSizeChange}\n onLayout={this.handleLayout}\n onScroll={this.handleScroll}\n />\n </IOContext.Provider>\n );\n }\n };\n\n return IOScrollableComponent as typeof BaseComponent;\n}\n\nexport default withIO;\n", "import { RefAttributes } from 'react';\nimport { FlatList, FlatListProps } from 'react-native';\nimport withIO, { IOComponentProps } from './withIO';\n\nexport type IOFlatListController = FlatList;\n\nexport type IOFlatListProps<ItemT = any> = IOComponentProps & FlatListProps<ItemT>;\n\n/**\n * @public\n * @tag UI\n * @category Components\n * @name IOFlatList\n * @description\n * `IOFlatList`는 스크롤 중 특정 요소가 화면에 보이거나 사라지는지를 감지하기 위해 Intersection Observer 기능을 추가한 `FlatList` 컴포넌트예요. 이 컴포넌트를 사용하면 리스트의 각 항목이 화면에 나타나는지 여부를 쉽게 확인하고 처리할 수 있어요.\n *\n * `InView`와 함께 사용하면 각 요소의 노출 상태를 확인할 수 있어요. 자식 요소로 포함된 [InView](../Components/InView.html) 컴포넌트는 `IOFlatList`의 관찰 기능을 통해 요소가 화면에 보이는지 여부를 감지하고, 노출 상태에 따라 이벤트를 발생시켜요.\n *\n * @example\n *\n * `IOFlatList`를 사용해 리스트의 각 항목이 화면에 나타나는지 여부를 확인할 수 있어요.\n * 리스트의 각 항목이 화면에 나타나면 `InView` 컴포넌트가 `visible` 상태로 변경되어요.\n *\n * ```tsx\n * import { ReactNode, useState } from 'react';\n * import { StyleSheet, Text, View } from 'react-native';\n * import { InView, IOFlatList } from 'react-native-bedrock';\n *\n * const mockData = Array.from({ length: 30 }, (_, i) => ({ key: String(i) }));\n *\n * export default function FlatListPage() {\n * return <IOFlatList data={mockData} renderItem={({ item }) => <InViewItem>{item.key}</InViewItem>} />;\n * }\n *\n * function InViewItem({ children }: { children: ReactNode }) {\n * const [visible, setVisible] = useState(false);\n *\n * return (\n * <InView onChange={setVisible}>\n * <View style={styles.item}>\n * <Text>{children}</Text>\n * <Text>{visible ? 'visible' : ''}</Text>\n * </View>\n * </InView>\n * );\n * }\n *\n * const styles = StyleSheet.create({\n * item: {\n * padding: 16,\n * borderBottomWidth: 1,\n * borderBottomColor: '#ddd',\n * },\n * });\n * ```\n */\nconst IOFlatList = withIO(FlatList, [\n 'flashScrollIndicators',\n 'getNativeScrollRef',\n 'getScrollResponder',\n 'getScrollableNode',\n 'scrollToEnd',\n 'scrollToIndex',\n 'scrollToItem',\n 'scrollToOffset',\n]) as unknown as typeof IOFlatListFunction;\n\ndeclare function IOFlatListFunction<ItemT = any>(\n props: IOFlatListProps<ItemT> & RefAttributes<IOFlatListController>\n): JSX.Element;\n\nexport default IOFlatList;\n", "import { ForwardRefExoticComponent, RefAttributes } from 'react';\nimport { ScrollView, ScrollViewProps } from 'react-native';\nimport withIO, { IOComponentProps } from './withIO';\n\nexport type IOScrollViewController = ScrollView;\n\nexport type IOScrollViewProps = IOComponentProps & ScrollViewProps;\n\n/**\n * @public\n * @tag UI\n * @category Components\n * @name IOScrollView\n * @description\n * `IOScrollView`는 `Intersection Observer` 기능이 추가된 [ScrollView](https://reactnative.dev/docs/scrollview) 컴포넌트예요. 스크롤 중 특정 요소가 화면에 보이거나 사라지는 상태를 감지할 수 있어요.\n * 이 기능을 활용해 `InView` 컴포넌트를 자식 요소로 사용하면, 화면에 노출되는지 여부를 쉽게 확인할 수 있어요.\n *\n * @example\n *\n * `IOScrollView`를 사용해 리스트의 각 항목이 화면에 나타나는지 여부를 확인할 수 있어요.\n * 리스트의 각 항목이 화면에 나타나면 `InView` 컴포넌트가 `visible` 상태로 변경되어요.\n *\n * ```tsx\n * import { ReactNode, useState } from 'react';\n * import { StyleSheet, Text, View } from 'react-native';\n * import { InView, IOScrollView } from 'react-native-bedrock';\n *\n * const mockData = Array.from({ length: 30 }, (_, i) => ({ key: String(i) }));\n *\n * export default function IOScrollViewPage() {\n * return (\n * <IOScrollView>\n * {mockData.map((data) => (\n * <InViewItem key={data.key}>{data.key}</InViewItem>\n * ))}\n * </IOScrollView>\n * );\n * }\n *\n * function InViewItem({ children }: { children: ReactNode }) {\n * const [visible, setVisible] = useState(false);\n *\n * return (\n * <InView onChange={setVisible}>\n * <View style={styles.item}>\n * <Text>{children}</Text>\n * <Text>{visible ? 'visible' : ''}</Text>\n * </View>\n * </InView>\n * );\n * }\n *\n * const styles = StyleSheet.create({\n * item: {\n * padding: 16,\n * borderBottomWidth: 1,\n * borderBottomColor: '#ddd',\n * },\n * });\n * ```\n */\nconst IOScrollView = withIO(ScrollView, [\n 'scrollTo',\n 'scrollToEnd',\n 'getScrollResponder',\n 'getScrollableNode',\n 'getInnerViewNode',\n]) as unknown as ForwardRefExoticComponent<IOScrollViewProps & RefAttributes<IOScrollViewController>>;\n\nexport default IOScrollView;\n", "import { ComponentType, PureComponent, ReactElement, ReactNode, RefObject } from 'react';\nimport { LayoutChangeEvent, View, ViewProps } from 'react-native';\nimport IOContext, { IOContextValue } from './IOContext';\nimport { ObserverInstance } from './IOManager';\nimport { Element } from './IntersectionObserver';\n\nexport interface RenderProps {\n inView: boolean;\n onChange: (inView: boolean) => void;\n}\n\nexport interface Props {\n [key: string]: any;\n}\n\nexport type InViewProps<T = Props> = T & {\n children: ReactNode | ((fields: RenderProps) => ReactElement<View>);\n as?: ComponentType<any>;\n triggerOnce?: boolean;\n onLayout?: (event: LayoutChangeEvent) => void;\n onChange?: (inView: boolean, areaThreshold: number) => void;\n};\n\nexport type InViewWrapper = ComponentType<{\n ref?: RefObject<any> | ((ref: any) => void);\n onLayout?: (event: LayoutChangeEvent) => void;\n}>;\n\n/**\n * @public\n * @tag UI\n * @category Components\n * @kind class\n * @name InView\n * @description\n * `InView` 컴포넌트는 화면에 요소가 보이기 시작하거나 화면에서 사라지는 것을 감지하는 컴포넌트예요.\n * 요소가 화면에 조금이라도 보이기 시작하면 `onChanged` 핸들러가 호출되고 첫 번째 인자로 `true` 값이 전달돼요. 반대로 요소가 화면에서 사라지면 `false` 값이 전달돼요.\n * `onChanged` 핸들러의 두 번째 인자로 요소의 화면 노출 비율이 전달돼요. 노출 비율 값은 `0`에서 `1.0` 사이예요. 예를 들어 `0.2`가 전달되면 컴포넌트가 20%만큼 화면에 노출된 상태라는 의미예요.\n *\n::: warning 유의하세요\n\n`InView`는 반드시 `IOContext`가 포함된 [IOScrollView](../Components/IOScrollView.html) 또는 [IOFlatList](../Components/IOFlatList.html) 내부에서 사용해야 해요.\n만약 `IOContext` 외부에서 사용하면 `IOProviderMissingError`가 발생해요.\n\n:::\n\n * @param {Object} props - 컴포넌트에 전달되는 props 객체예요.\n * @param {React.ReactNode} props.children - 컴포넌트 하위에 렌더링될 자식 컴포넌트들이에요.\n * @param {React.ComponentType} [prop.as=View] - 실제 렌더링할 컴포넌트를 지정해요. 기본값은 [View](https://reactnative.dev/docs/view) 컴포넌트예요.\n * @param {boolean} [triggerOnce=false] - 요소가 화면에 처음 보일 때 한 번만 `onChange` 콜백을 호출하려면 이 옵션을 사용해요.\n * @param {(event: LayoutChangeEvent) => void} [onLayout] - 레이아웃에 변경이 생겼을 때 호출되는 콜백 함수예요.\n * @param {(inView: boolean, areaThreshold: number) => void} [onChange] - 요소가 화면에 나타나거나 사라질 때 호출되는 콜백 함수예요. 첫 번째 인자로 노출 여부가, 두 번째 인자로 노출 비율이 전달돼요.\n * \n * @example\n * \n * ### `InView`컴포넌트로 요소의 `10%` 지점을 감지하기\n * \n * ```tsx\n * import { LayoutChangeEvent, View, Text, Dimensions } from 'react-native';\n * import { InView, IOScrollView } from 'react-native-bedrock';\n * \n * export function InViewExample() {\n * const handleLayout = (event: LayoutChangeEvent) => {\n * console.log('레이아웃 변경됨', event.nativeEvent.layout);\n * };\n * \n * const handleChange = (inView: boolean, areaThreshold: number) => {\n * if (inView) {\n * console.log(`${areaThreshold * 100}% 비율만큼 화면에 보이는 상태`);\n * } else {\n * console.log('화면에 보이지 않는 상태');\n * }\n * };\n * \n * return (\n * <IOScrollView>\n * <View style={{ height: HEIGHT, width: '100%', backgroundColor: 'blue' }}>\n * <Text style={{ color: 'white' }}>스크롤을 내려주세요</Text>\n * </View>\n * <InView onLayout={handleLayout} onChange={handleChange}>\n * <View style={{ width: 100, height: 300, backgroundColor: 'yellow' }}>\n * <View style={{ position: 'absolute', top: 30, width: 100, height: 1, borderWidth: 1 }}>\n * <Text style={{ position: 'absolute', top: 0 }}>10% 지점</Text>\n * </View>\n * </View>\n * </InView>\n * </IOScrollView>\n * );\n * }\n * ```\n */\nclass InView<T = ViewProps> extends PureComponent<InViewProps<T>> {\n static contextType = IOContext;\n static defaultProps: Partial<InViewProps> = {\n triggerOnce: false,\n as: View,\n };\n\n context: undefined | IOContextValue = undefined;\n mounted = false;\n\n protected element: Element;\n protected instance: undefined | ObserverInstance;\n protected view: any;\n\n constructor(props: InViewProps<T>) {\n super(props);\n\n this.element = {\n inView: false,\n intersectionRatio: 0,\n layout: {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n },\n measureLayout: this.measureLayout,\n };\n }\n\n componentDidMount() {\n this.mounted = true;\n if (this.context?.manager) {\n this.instance = this.context.manager.observe(this.element, this.handleChange);\n }\n }\n\n componentWillUnmount() {\n this.mounted = false;\n if (this.context?.manager && this.instance) {\n this.context.manager.unobserve(this.element);\n }\n }\n\n protected handleChange = (inView: boolean, areaThreshold: number) => {\n if (this.mounted) {\n const { triggerOnce, onChange } = this.props;\n if (inView && triggerOnce) {\n if (this.context?.manager) {\n this.context?.manager.unobserve(this.element);\n }\n }\n if (onChange) {\n onChange(inView, areaThreshold);\n }\n }\n };\n\n protected handleRef = (ref: any) => {\n this.view = ref;\n };\n\n protected handleLayout = (event: LayoutChangeEvent) => {\n const {\n nativeEvent: { layout },\n } = event;\n if (layout.width !== this.element.layout.width || layout.height !== this.element.layout.height) {\n if (this.element.onLayout) {\n this.element.onLayout();\n }\n }\n const { onLayout } = this.props;\n if (onLayout) {\n onLayout(event);\n }\n };\n\n measure = (...args: any) => {\n this.view.measure(...args);\n };\n\n measureInWindow = (...args: any) => {\n this.view.measureInWindow(...args);\n };\n\n measureLayout = (...args: any) => {\n this.view.measureLayout(...args);\n };\n\n setNativeProps = (...args: any) => {\n this.view.setNativeProps(...args);\n };\n\n focus = (...args: any) => {\n this.view.focus(...args);\n };\n\n blur = (...args: any) => {\n this.view.blur(...args);\n };\n\n render() {\n const { as, children, ...props } = this.props;\n if (typeof children === 'function') {\n return null;\n }\n const ViewComponent: InViewWrapper = (as || View) as InViewWrapper;\n return (\n <ViewComponent {...props} ref={this.handleRef} onLayout={this.handleLayout}>\n {children}\n </ViewComponent>\n );\n }\n}\n\nexport default InView;\n", "import IOContext from './IOContext';\nimport IOFlatList, { type IOFlatListController, type IOFlatListProps } from './IOFlatList';\nimport IOScrollView, { type IOScrollViewController, type IOScrollViewProps } from './IOScrollView';\nimport InView, { type InViewProps } from './InView';\nimport {\n type IntersectionObserverEntry,\n type IntersectionObserverOptions,\n type RootMargin,\n} from './IntersectionObserver';\nimport type { IOComponentProps } from './withIO';\n\nexport type {\n IntersectionObserverEntry,\n IntersectionObserverOptions,\n RootMargin,\n InViewProps,\n IOComponentProps,\n IOFlatListController,\n IOFlatListProps,\n IOScrollViewController,\n IOScrollViewProps,\n};\n\nexport { InView, IOContext, IOFlatList, IOScrollView };\n", "export const noop = () => {};\n", "import { useCallback, useEffect, useRef } from 'react';\n\nexport function usePreservedCallback<Callback extends (...args: any[]) => any>(callback: Callback) {\n const callbackRef = useRef<Callback>(callback);\n\n useEffect(() => {\n callbackRef.current = callback;\n }, [callback]);\n\n return useCallback(\n (...args: any[]) => {\n return callbackRef.current(...args);\n },\n [callbackRef]\n ) as Callback;\n}\n", "import { debounce } from 'es-toolkit';\nimport { PropsWithChildren, ReactElement, ReactNode, useContext, useEffect, useMemo, useState } from 'react';\nimport { StyleProp, View, ViewStyle } from 'react-native';\nimport { InView, IOContext } from '../intersection-observer';\nimport { noop } from '../utils/noop';\nimport { usePreservedCallback } from '../utils/usePreservedCallback';\nimport { useVisibility } from '../visibility';\n\ninterface Props {\n onImpressionStart?: () => void;\n onImpressionEnd?: () => void;\n enabled?: boolean;\n UNSAFE__impressFallbackOnMount?: boolean;\n style?: StyleProp<ViewStyle>;\n areaThreshold?: number;\n timeThreshold?: number;\n children?: ReactNode;\n}\n\n/**\n * @public\n * @tag UI\n * @category Components\n * @kind function\n * @name ImpressionArea\n * @description\n * 특정 컴포넌트가 화면에 보이는지 여부를 감지해서 외부에 알려주는 컴포넌트예요. 이 컴포넌트를 사용해서 화면에 특정 컴포넌트가 보이면 로그를 수집하거나 애니메이션을 실행하는 구현을 쉽게 할 수 있어요.\n * 화면에 보이는지 여부는 `useVisibility`의 반환값과 뷰포트(Viewport) 내에 표시되었는 지 알려주는 `IOScrollView`와 `InView` 컴포넌트로 감지해요. React에서 `ScrollView`를 사용하면 뷰가 화면에 보이지 않더라도, `ImpressionArea`를 사용하면 해당 뷰가 실제로 화면에 보일때만 이벤트를 발생시킬 수 있어요.\n\n::: info 유의하세요\n\n`ImpressionArea`는 반드시 `IOScrollView` 안에서 사용해야 해요. 만약 `IOScrollView` 외부에서 사용해야 한다면, `UNSAFE__impressFallbackOnMount` 속성을 `true`로 설정해서 컴포넌트가 마운트될 때를 기준으로 감지할 수 있어요. 이 속성이 `false`로 설정된 상태에서 `IOScrollView` 외부에서 사용하면 `IOProviderMissingError`가 발생해요.\n\n:::\n *\n * @param {() => void} [onImpressionStart] 자식 컴포넌트가 화면에 보일 때 실행되는 콜백함수예요.\n * @param {() => void} [onImpressionEnd] 자식 컴포넌트가 화면에 가려졌을 때 실행되는 콜백함수예요.\n * @param {boolean} [enabled=true] 화면에 보여졌다는 조건을 직접 제어하는 값이에요. 기본값은 `true` 에요. `false` 로 전달하면 화면에 보여져도 `onImpressionStart` 콜백 함수가 실행되지 않아요.\n * @param {number} [areaThreshold=0] 보여지는 영역의 비율을 설정하는 값이에요. 이 값보다 큰 비율로 컴포넌트가 화면에 나타나면 `onImpressionStart`를 호출해요.\n * 값은 0부터 1 사이의 숫자로 설정하며, 0으로 설정하면 컴포넌트의 1px이라도 보일 때 이벤트가 발생해요. 반대로, 1로 설정하면 컴포넌트가 100% 화면에 노출될 때만 이벤트가 호출돼요.\n * @param {number} [timeThreshold=0] 이 컴포넌트가 화면에 보인 후 `onImpressionStart` 호출될 때까지의 시간을 밀리초 단위로 설정해요.기본값은 `0`밀리초(0초)에요.\n * @param {ViewStyle} [style] `InView` 컴포넌트에 적용할 `style` 값이에요. 기본값은 `undefined`이고, `style`을 지정하고 싶을 때 사용해요.\n * @param {boolean} [UNSAFE__impressFallbackOnMount=false] 컴포넌트가 마운트될 때 즉시 화면에 나타난 것으로 간주할지 여부예요. 기본값은 `false`예요.\n * `IOScrollView`를 사용하지 않는 상황에서, 컴포넌트가 뷰포트(Viewport) 안에 있는지 판단할 수 없을 떼 유용해요. 예를 들어, `IOScrollView` 밖에 위치한 컴포넌트는 `true`로 설정하면 마운트 시점에 보여졌다고 판단해요.\n *\n * @returns {ReactElement} - 화면에 보이는 여부를 감지할 수 있는 컴포넌트가 반환돼요.\n * @example\n * \n * ### 기본 사용 예시\n * \n * ```tsx\n * import { useState } from 'react';\n * import { Button, Dimensions, Text, View } from 'react-native';\n * import { ImpressionArea, IOScrollView } from 'react-native-bedrock';\n * \n * export default function ImpressionAreaExample() {\n * const [isImpressionStart, setIsImpressionStart] = useState(false);\n * \n * return (\n * <>\n * <Text>{isImpressionStart ? 'Impression Start' : 'Impression End'}</Text>\n * <IOScrollView\n * style={{\n * flex: 1,\n * margin: 16,\n * backgroundColor: 'white',\n * }}\n * >\n * <View\n * style={{\n * height: Dimensions.get('screen').height,\n * borderWidth: 1,\n * borderColor: 'black',\n * }}\n * >\n * <Text>Scroll to here</Text>\n * </View>\n * \n * <ImpressionArea\n * onImpressionStart={() => setIsImpressionStart(true)}\n * onImpressionEnd={() => setIsImpressionStart(false)}\n * >\n * <Button title=\"Button\" />\n * </ImpressionArea>\n * </IOScrollView>\n * </>\n * );\n * }\n * ```\n *\n * ### 마운트 시점에 감지하는 예시\n * \n * `ImpressionArea`가 `IOScrollView`와 같은 컴포넌트 내부에 위치하지 않을 때, `UNSAFE__impressFallbackOnMount`를 `true`로 설정하면 컴포넌트가 마운트될 때 화면에 보여진 것으로 간주해요.\n * \n * ```tsx\n * import { useState } from 'react';\n * import { Button, Dimensions, ScrollView, Text, View } from 'react-native';\n * import { ImpressionArea } from 'react-native-bedrock';\n * \n * export default function ImpressionArea2Example() {\n * const [isImpressionStart, setIsImpressionStart] = useState(false);\n * \n * return (\n * <>\n * <Text>{isImpressionStart ? 'Impression Start' : 'Impression End'}</Text>\n * <ScrollView\n * style={{\n * flex: 1,\n * margin: 16,\n * backgroundColor: 'white',\n * }}\n * >\n * <View\n * style={{\n * height: Dimensions.get('screen').height,\n * borderWidth: 1,\n * borderColor: 'black',\n * }}\n * >\n * <Text>Scroll to here</Text>\n * </View>\n * \n * <ImpressionArea\n * UNSAFE__impressFallbackOnMount={true}\n * onImpressionStart={() => setIsImpressionStart(true)}\n * onImpressionEnd={() => setIsImpressionStart(false)}\n * >\n * <Button title=\"Button\" />\n * </ImpressionArea>\n * </ScrollView>\n * </>\n * );\n * }\n * ```\n */\nexport function ImpressionArea(props: Props): ReactElement {\n const context = useContext(IOContext);\n\n if (context?.manager == null && props.UNSAFE__impressFallbackOnMount) {\n return <ImpressionAreaOnMount {...props} />;\n }\n\n return <ImpressionAreaWithIntersectionObserver {...props} />;\n}\n\n/**\n * @category Class\n * @kind class\n * @name IOProviderMissingError\n * @description\n * `ImpressionArea`가 `IOScrollView` 내부에서 사용되지 않았을 때 발생하는 에러예요.\n * 만약 `IOScrollView` 내부에서 사용하지 않았을 때 `ImpressionArea`에서 이 에러를 발생시키고 싶지 않다면, `UNSAFE__impressFallbackOnMount`를 `true`로 설정해야 해요.\n */\nexport class IOProviderMissingError extends Error {\n message =\n 'ImpressionArea가 IOContext.Provider 밖에서 사용되었습니다. ' +\n '최상위 ScrollView가 @react-native-bedrock/core의 IOScrollView인지 확인해주세요.';\n}\n\n/**\n * @category Components\n * @kind function\n * @name ImpressionAreaOnMount\n * @description\n * 컴포넌트가 화면에 마운트(mount)될 때 `onImpressionStart`와 `onImpressionEnd`를 호출하는 컴포넌트예요.\n * `ImpressionArea`에서 `UNSAFE__impressFallbackOnMount`가 `true`일 때 사용해요.\n * `IOScrollView` 밖에서 `ImpressionArea`가 필요할 때 이 컴포넌트를 사용할 수 있어요.\n *\n *\n * @param {() => void} [onImpressionStart] - 컴포넌트가 마운트될 때 호출되는 콜백 함수예요.\n * @param {() => void} [onImpressionEnd] - 컴포넌트가 언마운트될 때 호출되는 콜백 함수예요.\n * @param {StyleProp<ViewStyle>} [style] - `ImpressionAreaOnMount` 컴포넌트의 최상위 컨테이너 스타일을 설정해요.\n * @param {ReactNode} [children] - `ImpressionAreaOnMount`로 감싸는 자식 컴포넌트를 설정해요.\n * @returns {ReactElement} - 마운트 여부를 감지하는 컴포넌트를 반환해요\n * @example\n * ### 마운트 시점에 감지하는 예시\n * ```tsx\n * import { ImpressionAreaOnMount } from '@react-native-bedrock/core';\n *\n * export default function AlwaysImpressionAreaPage() {\n * // AlwaysImpressionAreaPage가 mount되는 순간 isImpressionStart가 true로 설정됩니다.\n * const [isImpressionStart, setIsImpressionStart] = useState(false);\n *\n * return (\n * <ScrollView\n * style={{\n * flex: 1,\n * padding: 16,\n * backgroundColor: 'white',\n * }}\n * >\n * <TestTitle title=\"ImpressionArea\" description=\"@react-native-bedrock/impression-area\" />\n * <Button label={'Scroll to origin'} onPress={() => {}} />\n * <Code style={{ width, height }} json={{ isImpressionStart }} />\n * <ImpressionAreaOnMount\n * onImpressionStart={() => setIsImpressionStart(true)}\n * onImpressionEnd={() => setIsImpressionStart(false)}\n * >\n * <Button label={'Scroll to here'} onPress={() => {}} />\n * </ImpressionArea>\n * </ScrollView>\n * );\n * }\n * ```\n */\nexport function ImpressionAreaOnMount({\n onImpressionStart: _onImpressionStart = noop,\n onImpressionEnd: _onImpressionEnd = noop,\n style,\n children,\n}: PropsWithChildren<Props>): ReactElement {\n const visible = useVisibility();\n\n const isImpressed = visible;\n\n const onImpressionStart = usePreservedCallback(_onImpressionStart);\n const onImpressionEnd = usePreservedCallback(_onImpressionEnd);\n\n useEffect(() => {\n if (isImpressed) {\n onImpressionStart();\n } else {\n onImpressionEnd();\n }\n }, [isImpressed, onImpressionStart, onImpressionEnd]);\n\n return <View style={style}>{children}</View>;\n}\n\n/**\n * @category Components\n * @kind function\n * @name ImpressionAreaWithIntersectionObserver\n * @description\n * 사용자의 화면에 보이는지를 기준으로 `onImpressionStart`와 `onImpressionEnd`를 호출하는 컴포넌트예요.\n * `IOScrollView`에서 사용할 수 있는 컴포넌트로, 화면에 보이는지 여부를 외부에 전달할 수 있어요.\n *\n * @param {() => void} [onImpressionStart] - 화면에 보일 때 호출되는 콜백 함수예요.\n * @param {() => void} [onImpressionEnd] - 화면에서 사라질 때 호출되는 콜백 함수예요.\n * @param {boolean} [enabled=true] - `ImpressionArea`를 활성화할지 여부를 설정해요.\n * @param {StyleProp<ViewStyle>} [style] - `ImpressionAreaWithIntersectionObserver` 컴포넌트의 최상위 컨테이너 스타일을 설정해요.\n * @param {number} [areaThreshold=0] - 이 컴포넌트의 보여지는 영역이 설정된 비율을 넘으면 화면에 보이는 것으로 간주해요.\n * @param {number} [timeThreshold=0] - 이 컴포넌트가 화면에 보인 후 `onImpressionStart`, `onImpressionEnd` 호출될 때까지의 시간을 밀리초 단위로 설정해요. 기본값은 `0`밀리초에요.\n * @param {ReactNode} [children] - `ImpressionAreaWithIntersectionObserver`로 감싸는 자식 컴포넌트를 설정할 수 있어요.\n * @returns {ReactElement} - 화면에 보이는지를 감지할 수 있는 컴포넌트를 반환해요.\n * @example\n * ### IntersectionObserver를 사용한 예시\n * ```tsx\n * import { ImpressionAreaWithIntersectionObserver, IOScrollView } from '@react-native-bedrock/core';\n *\n * export default function ImpressionAreaPage() {\n * const [isImpressionStart, setIsImpressionStart] = useState(false);\n *\n * return (\n * <IOScrollView\n * style={{\n * flex: 1,\n * margin: 16,\n * backgroundColor: 'white',\n * }}\n * >\n * <TestTitle title=\"ImpressionArea\" description=\"@react-native-bedrock/impression-area\" />\n * <Button label={'Scroll to origin'} onPress={() => {}} />\n * <Code style={{ width, height }} textStyle={{ flex: 1, verticalAlign: 'middle' }} json={{ isImpressionStart }} />\n * <ImpressionAreaWithIntersectionObserver\n * onImpressionStart={() => setIsImpressionStart(true)}\n * onImpressionEnd={() => setIsImpressionStart(false)}\n * >\n * <Button label={'Scroll to here'} onPress={() => {}} />\n * </ImpressionArea>\n * </IOScrollView>\n * );\n * }\n * ```\n */\nexport function ImpressionAreaWithIntersectionObserver({\n onImpressionStart: _onImpressionStart = noop,\n onImpressionEnd: _onImpressionEnd = noop,\n timeThreshold = 0,\n ...props\n}: PropsWithChildren<{\n onImpressionStart?: () => void;\n onImpressionEnd?: () => void;\n enabled?: boolean;\n style?: StyleProp<ViewStyle>;\n areaThreshold?: number;\n timeThreshold?: number;\n}>): ReactElement {\n const [isImpressed, setIsImpressed] = useState(false);\n\n const onImpressionChange = useMemo(() => {\n if (timeThreshold === 0) {\n return setIsImpressed;\n } else {\n return debounce(setIsImpressed, timeThreshold);\n }\n }, [setIsImpressed, timeThreshold]);\n\n const onImpressionStart = usePreservedCallback(_onImpressionStart);\n const onImpressionEnd = usePreservedCallback(_onImpressionEnd);\n\n useEffect(() => {\n if (isImpressed) {\n onImpressionStart?.();\n } else {\n onImpressionEnd?.();\n }\n }, [isImpressed, onImpressionStart, onImpressionEnd]);\n\n return <_ImpressionArea {...props} onImpressionChange={onImpressionChange} />;\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nfunction _ImpressionArea({\n children,\n onImpressionChange: _onImpressionChange = noop,\n enabled = true,\n areaThreshold = 0,\n style,\n}: PropsWithChildren<{\n onImpressionChange?: (isImpressed: boolean) => void;\n enabled?: boolean;\n style?: StyleProp<ViewStyle>;\n areaThreshold?: number;\n}>) {\n const visible = useVisibility();\n const [inviewImpressed, setInviewImpressed] = useState(false);\n\n const context = useContext(IOContext);\n\n if (context?.manager == null) {\n throw new IOProviderMissingError();\n }\n\n const impressed = visible && inviewImpressed && enabled;\n const onImpressionChange = usePreservedCallback(_onImpressionChange);\n\n useEffect(() => {\n onImpressionChange?.(impressed);\n }, [impressed, onImpressionChange]);\n\n return (\n <InView\n onChange={(inView, currentThreshold) => {\n const isVisible = inView && currentThreshold >= areaThreshold;\n setInviewImpressed(isVisible);\n }}\n style={style}\n >\n {children}\n </InView>\n );\n}\n", "export * from './ImpressionArea';\n", "import type { ComponentProps } from 'react';\nimport { useWindowDimensions, View } from 'react-native';\nimport { useAdaptiveColor } from '../contexts/ColorPreferenceContext';\n\ninterface ScrollViewInertialBackgroundProps {\n topColor?: string;\n bottomColor?: string;\n spacer?: number;\n}\n\n/**\n * @public\n * @tag UI\n * @category Components\n * @kind function\n * @name ScrollViewInertialBackground\n * @description\n * iOS `ScrollView` 콘텐츠의 위, 아래 공간에 배경색을 추가해서, 스크롤 했을 때 자연스러운 시각 효과를 제공해요.\n * iOS에서는 스크롤이 끝에 도달했을 때 살짝 튕기는 듯한 [Bounce 효과](https://medium.com/@wcandillon/ios-bounce-list-effect-with-react-native-5102e3a83999)가 발생해요. 이때 콘텐츠 위, 아래 공간에 배경색을 설정하면 더 일관된 유저 경험을 제공할 수 있어요.\n *\n * @param {object} [props] - 컴포넌트에 전달되는 `props` 객체예요.\n * @param {string} [props.topColor] - 스크롤 위쪽 영역에 적용할 배경색이에요. 기본값은 시스템 테마에 맞춰 자동으로 적용되는 `adaptive.background`에요.\n * @param {string} [props.bottomColor] - 스크롤 아래쪽 영역에 적용할 배경색이에요. 기본값은 시스템 테마에 맞춰 자동으로 적용되는 `adaptive.background`에요.\n * @param {number} [props.spacer] - 배경색이 적용될 콘텐츠 위, 아래 공간 사이의 공간 크기를 지정해요. 기본값은 [`useWindowDimensions`](https://reactnative.dev/docs/next/usewindowdimensions)로 가져온 화면 높이를 사용해요.\n *\n * @example\n *\n * ### 스크롤 뷰 위, 아래에 배경색을 추가하기\n *\n * 스크롤 뷰 위에 빨간색, 아래에 파란색 배경색을 추가해요. 스크롤을 벗어난 영역에 배경색이 적용돼요.\n *\n * ```tsx\n * import { ScrollView, View, Text } from 'react-native';\n * import { ScrollViewInertialBackground } from 'react-native-bedrock';\n *\n * const dummies = Array.from({ length: 20 }, (_, i) => i);\n *\n * export function InertialBackgroundExample() {\n * return (\n * <ScrollView>\n * <ScrollViewInertialBackground topColor=\"red\" bottomColor=\"blue\" />\n * {dummies.map((i) => (\n * <View\n * key={`dummy-${i}`}\n * style={{ width: '100%', height: 100, borderBottomColor: 'black', borderBottomWidth: 1 }}\n * >\n * <Text>스크롤을 해보세요.</Text>\n * </View>\n * ))}\n * </ScrollView>\n * );\n * }\n * ```\n */\nexport function ScrollViewInertialBackground({\n topColor,\n bottomColor,\n spacer: _spacer,\n}: ScrollViewInertialBackgroundProps) {\n const adaptive = useAdaptiveColor();\n const windowHeight = useWindowDimensions().height;\n\n const spacer = _spacer ?? windowHeight;\n const topBackgroundColor = topColor ?? adaptive.background;\n const bottomBackgroundColor = bottomColor ?? adaptive.background;\n\n return (\n <>\n <HiddenView\n style={{\n height: spacer,\n top: -spacer,\n backgroundColor: topBackgroundColor,\n }}\n />\n <HiddenView\n style={{\n height: spacer,\n /** CTA GradientHeight 영역만큼 줄여줍니다. */\n bottom: -spacer + GRADIENT_HEIGHT,\n backgroundColor: bottomBackgroundColor,\n }}\n />\n </>\n );\n}\n\nfunction HiddenView({ style, pointerEvents = 'none', ...props }: ComponentProps<typeof View>) {\n return (\n <View\n pointerEvents={pointerEvents}\n style={[{ position: 'absolute', width: '100%', zIndex: -1, left: 0, right: 0 }, style]}\n {...props}\n />\n );\n}\n\n/**\n * FIXME:\n * BottomCTA의 Gradient 값입니다. peerDeps 를 피하기위해 고정값으로 둡니다.\n */\nconst GRADIENT_HEIGHT = 37;\n", "export * from './ScrollViewInertialBackground';\n", "import { useNavigation } from '@react-native-bedrock/native/@react-navigation/native';\nimport { NativeStackNavigationProp } from '@react-native-bedrock/native/@react-navigation/native-stack';\nimport { useCallback, useRef } from 'react';\nimport { useVisibilityChange, type VisibilityState } from '../visibility';\n\n/**\n * @public\n * @tag Navigation\n * @kind function\n * @category Hooks\n * @name useWaitForReturnNavigator\n * @description\n * 화면 전환을 하고 돌아왔을 때 다음 코드를 동기적으로 실행할 수 있도록 도와주는 Hook 이에요.\n * 화면 이동은 [@react-navigation/native `useNavigation`의 `navigate`](https://reactnavigation.org/docs/6.x/navigation-prop#navigate)를 사용해요.\n *\n * 예를 들어, 사용자가 다른 화면으로 이동했다가 돌아왔다는 로그를 남기고 싶을 때 사용해요.\n *\n * @example\n * ### 화면 이동 후 돌아왔을 때 코드가 실행되는 예제\n *\n * **\"이동하기\"** 버튼을 누르면 다른 화면으로 이동하고, 돌아왔을 때 로그가 남겨져요.\n *\n * ```tsx\n * import { Button } from 'react-native';\n * import { useWaitForReturnNavigator } from 'react-native-bedrock';\n *\n * export function UseWaitForReturnNavigator() {\n * const navigate = useWaitForReturnNavigator();\n *\n * return (\n * <>\n * <Button\n * title=\"이동하기\"\n * onPress={async () => {\n * console.log(1);\n * await navigate('/examples/use-visibility');\n * // 화면에 돌아오면 이 코드가 실행됩니다.\n * console.log(2);\n * }}\n * />\n * </>\n * );\n * }\n * ```\n */\n\nexport function useWaitForReturnNavigator<T extends Record<string, object | undefined>>() {\n const callbacks = useRef<Array<() => void>>([]).current;\n const navigation = useNavigation<NativeStackNavigationProp<T>>();\n\n const startNavigating = useCallback(\n <RouteName extends keyof T>(route: RouteName, params?: T[RouteName]): Promise<void> => {\n return new Promise<void>((resolve) => {\n callbacks.push(resolve);\n navigation.navigate(route as any, params as any);\n });\n },\n [callbacks, navigation]\n );\n\n const handleVisibilityChange = useCallback(\n (state: VisibilityState) => {\n if (state === 'visible' && callbacks.length > 0) {\n for (const callback of callbacks) {\n callback();\n }\n\n callbacks.splice(0, callbacks.length);\n }\n },\n [callbacks]\n );\n\n useVisibilityChange(handleVisibilityChange);\n\n return startNavigating;\n}\n", "export { useWaitForReturnNavigator } from './useWaitForReturnNavigator';\n", "module.exports = __bedrock_require__('react-native-video');", "export { default } from 'react-native-video';\nexport * from 'react-native-video';\n", "import { Component, ComponentType, ForwardedRef, forwardRef } from 'react';\nimport { View } from 'react-native';\nimport { VideoProperties } from './types';\n\nclass FallbackComponent extends Component<VideoProperties & { innerRef: ForwardedRef<View> }> {\n render() {\n return <View ref={this.props.innerRef} />;\n }\n}\n\nconst ForwardedComponent = forwardRef<View, VideoProperties>((props: VideoProperties, ref) => (\n <FallbackComponent {...props} innerRef={ref} />\n));\n\nfunction getVideoInstance(): ComponentType<VideoProperties> {\n try {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n return require('@react-native-bedrock/native/react-native-video')?.default;\n } catch {\n return ForwardedComponent;\n }\n}\n\nexport const Video = getVideoInstance();\n\nexport const isAvailable = Video !== ForwardedComponent;\n", "/* eslint-disable import/no-duplicates */\nimport type { VideoProperties } from '@react-native-bedrock/native/react-native-video';\nimport type VideoRef from '@react-native-bedrock/native/react-native-video';\nimport { forwardRef, Ref, useMemo, useState } from 'react';\nimport { Animated, Platform } from 'react-native';\nimport { Video as RNVideo } from './instance';\nimport { isAvailable } from './instance';\nimport { useVisibility } from '../visibility';\n\nconst AnimatedRNVideo = Animated.createAnimatedComponent(RNVideo);\n\n// Add this interface declaration\ninterface VideoComponent extends React.ForwardRefExoticComponent<VideoProperties & React.RefAttributes<VideoRef>> {\n isAvailable: boolean;\n}\n\n/**\n * @public\n * @tag Asset\n * @kind typedef\n * @name OnAudioFocusChanged\n * @description 오디오 포커스가 변경될 때 호출되는 콜백 함수에요. `muted` 가 `false` 인 경우에 필수로 구현해야해요.\n *\n * @param {Object} event - 오디오 포커스 정보를 담고 있는 이벤트 객체예요.\n * @param {boolean} event.hasAudioFocus - 비디오 컴포넌트가 오디오 포커스를 가지고 있는지 여부를 나타내요.\n */\ntype OnAudioFocusChanged = NonNullable<VideoProperties['onAudioFocusChanged']>;\n\ntype Props =\n | (VideoProperties & { muted: true })\n | (VideoProperties & { muted: false; onAudioFocusChanged: OnAudioFocusChanged });\n\n/**\n * @public\n * @tag Asset\n * @category Types\n *\n * @kind type\n * @name RNVideoRef\n * @description\n * `react-native-video`의 ref 타입이에요.\n */\nexport type RNVideoRef = VideoRef;\n\n/**\n * @public\n * @tag Asset\n * @name Video\n * @category Components\n * @description\n * Video 컴포넌트는 다른 앱에서 음악을 재생 중일 때, 토스 앱에서 그 음악을 중지시키지 않도록 오디오 포커스를 제어하는 로직이 구현된 컴포넌트에요. 앱의 상태에 따라 자동으로 재생하거나 일시정지해요. 예를 들어, 앱이 백그라운드로 전환되면 비디오가 자동으로 일시정지돼요.\n *\n * ::: warning\n * Video 컴포넌트는 [`react-native-video` 버전(6.0.0-alpha.6)](https://github.com/TheWidlarzGroup/react-native-video/tree/v6.0.0-alpha.6) 을 사용하고 있어요. 따라서 일부 타입이나 기능이 최신 버전과 호환되지 않을 수 있어요.\n * :::\n *\n * @property {boolean} [isAvailable] `Video` 컴포넌트를 사용할 수 있는지 확인하는 값이에요. 이 값을 확인해서 사용자가 비디오를 렌더링할 수 있는지 혹은 환경적 제약(예: 네트워크 연결 문제, 지원되지 않는 디바이스 등)으로 인해 비디오 기능을 사용할 수 없는지를 먼저 확인할 수 있어요. 이 값이 `false`라면, 비디오를 렌더링하지 않거나 대체 콘텐츠를 제공하는 등의 처리를 해야 해요.\n *\n * @param {VideoProperties} [props] [`react-native-video`](https://github.com/TheWidlarzGroup/react-native-video/tree/v6.0.0-alpha.6)에서 제공하는 속성들이에요.\n * @param {string} [props.source.uri] 재생할 비디오의 소스에요. 파일 경로나 URL을 설정할 수 있어요.\n * @param {boolean} [props.muted=false] 비디오의 음소거 상태를 제어해요. `true`면 비디오의 오디오가 음소거되고, `false`면 오디오가 재생돼요. 기본값은 `false`에요.\n * @param {boolean} [props.paused=false] 비디오 재생을 제어하는 속성이에요. `true`이면 비디오가 일시 정지되고, `false`이면 비디오가 재생돼요. 기본값은 `false`이고, 자동 재생돼요.\n * @param {OnAudioFocusChanged} [props.onAudioFocusChanged] 오디오 포커스가 변경될 때 호출되는 콜백 함수에요. `muted` 가 `false` 인 경우에 필수로 구현해야해요. 자세한 내용은 [OnAudioFocusChanged](/reference/react-native-bedrock/Types/OnAudioFocusChanged.html)를 참고해주세요.\n * @param {Ref<VideoRef>} ref 비디오 인스턴스에 접근하기 위한 ref 객체에요. 이 ref를 통해 비디오 인스턴스의 여러 메서드에 접근할 수 있어요.\n *\n * @returns {JSX.Element} 비디오를 렌더링하는 JSX 엘리먼트를 반환해요. `Animated`를 사용해 부드러운 애니메이션 효과를 포함한 비디오 재생을 제공해요.\n *\n * @see [react-native-video] https://github.com/react-native-video/react-native-video\n * 비디오 컴포넌트의 자세한 속성은 공식 문서를 참고해주세요.\n * @see [react-native-video-6.0.0-alpha.6] https://github.com/TheWidlarzGroup/react-native-video/releases/tag/v6.0.0-alpha.6\n * 현재 토스앱에 설치되어있는 버전의 소스코드에요.\n *\n * @example\n *\n * ### 비디오 자동재생 예제\n *\n * ```tsx\n * import { useRef } from 'react';\n * import { View } from 'react-native';\n * import { Video } from 'react-native-bedrock';\n *\n * export function VideoExample() {\n * const videoRef = useRef(null);\n *\n * return (\n * <View>\n * <Video\n * ref={videoRef}\n * source={{ uri: 'https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4' }}\n * muted={true}\n * paused={false}\n * resizeMode=\"cover\"\n * style={{ width: 300, height: 200, borderWidth: 1 }}\n * />\n * </View>\n * );\n * }\n * ```\n */\nexport const Video = forwardRef((props: Props, ref: Ref<VideoRef>) => {\n const [isFocused, setIsFocused] = useState(props.muted || props.paused);\n const visible = useVisibility();\n\n // onAudioFocusChanged로 서비스에서 직접 포커스 상태를 관리하는 경우가 아니라면, 내부 상태를 바탕으로 paused 값을 제어합니다.\n const paused = useMemo(\n () => !visible || props.paused || (!props.onAudioFocusChanged && !isFocused),\n [props.onAudioFocusChanged, props.paused, visible, isFocused]\n );\n\n const disableFocus = props.muted || props.paused;\n const mixWithOthers = props.muted ? 'mix' : undefined;\n\n return (\n <AnimatedRNVideo\n ref={ref}\n /**\n * @name enableDecoderFallback\n * @description\n * 안드로이드 기기에서 16개까지는 하드웨어 가속 코덱을 사용해서 잘 렌더링 되는데,\n * 그 이상부터는 렌더링이 안되는 이슈가 있다.\n * 따라서 소프트웨어 코덱으로 fallback 하도록 저리를 해놓고 이렇게 prop을 추가해서 적용할 수 있게했다.\n * 이것을 false로 하는 경우는 없을것으로 가정하고 인터페이스에는 노출을 하지 않는다.\n */\n progressUpdateInterval={16}\n disableFocus={Platform.OS === 'ios' ? false : disableFocus}\n playWhenInactive\n onAudioFocusChanged={({ hasAudioFocus }) => setIsFocused(hasAudioFocus)}\n {...props}\n enableDecoderFallback={true}\n paused={paused}\n mixWithOthers={mixWithOthers}\n />\n );\n});\n\n(Video as VideoComponent).isAvailable = isAvailable;\n", "export * from './Video';\n", "import WebView, { type WebViewMessageEvent } from '@react-native-bedrock/native/react-native-webview';\nimport { useCallback, useMemo, useRef } from 'react';\n\nfunction serializeError(error: unknown) {\n return JSON.stringify(error, (_, value) => {\n if (value instanceof Error) {\n return {\n name: value.name,\n message: value.message,\n stack: value.stack,\n __isError: true,\n };\n }\n return value;\n });\n}\n\nfunction methodHandler({\n args,\n eventId,\n functionName,\n handlerMap,\n injectJavaScript,\n}: {\n injectJavaScript?: (js: string) => void;\n handlerMap: Record<string, (...args: any[]) => Promise<any>>;\n functionName: string;\n eventId: string;\n args: any[];\n}) {\n const func = async (...args: any) => {\n const result = await (handlerMap[functionName] as (...args: any[]) => Promise<any>)(...args);\n return result;\n };\n if (!func) {\n console.error(`${functionName} is not a function`);\n return;\n }\n\n func(...args)\n .then((result) => {\n injectJavaScript?.(`\n window.__BEDROCK_NATIVE_EMITTER.emit('${functionName}/resolve/${eventId}', ${JSON.stringify(result, null, 0)});\n `);\n })\n .catch((error) => {\n const serializedError = serializeError(error);\n\n injectJavaScript?.(`\n window.__BEDROCK_NATIVE_EMITTER.emit('${functionName}/reject/${eventId}', ${serializedError});\n `);\n });\n}\n\nconst globalEventListenerMap = new Map<string, () => void>();\n\nexport function useBridgeHandler({\n onMessage,\n constantHandlerMap,\n handlerMap,\n eventListenerMap,\n injectedJavaScript: originalInjectedJavaScript,\n}: {\n onMessage?: (e: WebViewMessageEvent) => void;\n eventListenerMap: Record<\n string,\n (eventParams: { onEvent: (response: any) => void; onError: (error: any) => void; options: any }) => () => void\n >;\n\n constantHandlerMap: Record<string, (...args: any) => any | any>;\n handlerMap: Record<string, (...args: any) => Promise<any>>;\n injectedJavaScript?: string;\n}) {\n const ref = useRef<WebView>(null);\n\n const injectedJavaScript = useMemo(\n () =>\n [\n `window.__CONSTANT_HANDLER_MAP = ${JSON.stringify(\n Object.entries(constantHandlerMap).reduce(\n (acc, [key, value]) => {\n acc[key] = typeof value === 'function' ? value() : value;\n return acc;\n },\n {} as Record<string, any>\n )\n )}`,\n originalInjectedJavaScript,\n 'true',\n ].join('\\n'),\n [constantHandlerMap, originalInjectedJavaScript]\n );\n\n const createHandleOnEvent = (functionName: string, eventId: string) => (response: any) => {\n ref.current?.injectJavaScript(`\n window.__BEDROCK_NATIVE_EMITTER.emit('${functionName}/onEvent/${eventId}', ${JSON.stringify(response, null, 0)});\n `);\n };\n\n const createHandleOnError = (functionName: string, eventId: string) => (error: any) => {\n ref.current?.injectJavaScript(`\n window.__BEDROCK_NATIVE_EMITTER.emit('${functionName}/onError/${eventId}', ${JSON.stringify(error, null, 0)});\n `);\n };\n\n const $onMessage = useCallback(\n async (e: WebViewMessageEvent) => {\n onMessage?.(e);\n const data = JSON.parse(e.nativeEvent.data) as\n | {\n type: 'addEventListener' | 'method';\n functionName: string;\n eventId: string;\n args: any[];\n }\n | {\n type: 'removeEventListener';\n functionName: string;\n eventId: string;\n };\n if (\n typeof data !== 'object' ||\n data === null ||\n typeof data.functionName !== 'string' ||\n typeof data.eventId !== 'string' ||\n typeof data.type !== 'string' ||\n !['addEventListener', 'removeEventListener', 'method'].includes(data.type)\n ) {\n return;\n }\n\n switch (data.type) {\n case 'addEventListener': {\n const handleOnEvent = createHandleOnEvent(data.functionName, data.eventId);\n const handleOnError = createHandleOnError(data.functionName, data.eventId);\n\n const remove = eventListenerMap[data.functionName]?.({\n onEvent: handleOnEvent,\n onError: handleOnError,\n options: data.args,\n });\n if (remove) {\n globalEventListenerMap.set(`${data.functionName}/${data.eventId}`, remove);\n }\n break;\n }\n case 'removeEventListener': {\n const key = `${data.functionName}/${data.eventId}`;\n const remove = globalEventListenerMap.get(key);\n remove?.();\n globalEventListenerMap.delete(key);\n break;\n }\n case 'method': {\n methodHandler({\n args: data.args,\n eventId: data.eventId,\n functionName: data.functionName,\n handlerMap,\n injectJavaScript: ref.current?.injectJavaScript,\n });\n break;\n }\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [onMessage]\n );\n\n return {\n ref,\n injectedJavaScript,\n onMessage: $onMessage,\n };\n}\n", "export * from './useBridgeHandler';\n", "export abstract class BedrockEventDefinition<O = void, R = void> {\n // Event name (literal type recommended)\n abstract name: string;\n\n /**\n * Method to implement event logic.\n * @param options - Event options (void if not used)\n * @param onEvent - Callback called when the event is triggered.\n * @param onError - Callback called on error (error type: unknown)\n */\n abstract listener(options: O, onEvent: (response: R) => void, onError: (error: unknown) => void): void;\n\n /**\n * Additional logic to execute when removing the event listener.\n * If needed in the plugin, override this method and it will be called\n * when the listener is removed.\n */\n abstract remove(): void;\n}\n\n/**\n * BedrockEvent class registers event definition instances passed to the constructor.\n * The addEventListener method only allows registered event names, and the types of passed\n * options/callbacks are automatically inferred.\n *\n * Each subscription is uniquely identified by (event name + options).\n */\nexport class BedrockEvent<Defs extends BedrockEventDefinition<any, any>> {\n // 1. Instance fields\n private definitions = new Map<Defs['name'], Defs>();\n private subscriptionGroups = new Map<\n string,\n {\n eventName: Defs['name'];\n options: any;\n callbacks: Array<{\n onEvent: (response: any) => void;\n onError?: (error: unknown) => void;\n }>;\n }\n >();\n\n // 2. Constructor\n constructor(defs: Defs[]) {\n for (const def of defs) {\n this.definitions.set(def.name, def);\n }\n }\n\n // 3. Private helper methods\n private _getKey(eventName: string, options: any): string {\n return `${eventName}:${options ? JSON.stringify(options) : ''}`;\n }\n\n // 4. Public instance methods\n // eslint-disable-next-line @typescript-eslint/member-ordering\n addEventListener<E extends Defs['name']>(\n eventName: E,\n listener: Extract<Defs, { name: E }> extends BedrockEventDefinition<infer O, infer R>\n ? [O] extends [void]\n ? { onEvent: (response: R) => void; onError?: (error: unknown) => void; options?: never }\n : { onEvent: (response: R) => void; onError?: (error: unknown) => void; options: O }\n : never\n ): () => void {\n const def = this.definitions.get(eventName);\n if (!def) {\n throw new Error(`Event \"${String(eventName)}\" is not registered.`);\n }\n const key = this._getKey(String(eventName), (listener as any).options);\n let group = this.subscriptionGroups.get(key);\n\n if (!group) {\n group = {\n eventName,\n options: (listener as any).options,\n callbacks: [],\n };\n this.subscriptionGroups.set(key, group);\n\n // Aggregated callback: calls all callbacks in the group\n const aggregatedOnEvent = (response: any) => {\n for (const cb of group!.callbacks) {\n cb.onEvent(response);\n }\n };\n const aggregatedOnError = (error: unknown) => {\n for (const cb of group!.callbacks) {\n if (cb.onError) {\n cb.onError(error);\n }\n }\n };\n // Call the underlying listener once for the group\n def.listener(group.options, aggregatedOnEvent, aggregatedOnError);\n }\n\n group.callbacks.push({ onEvent: listener.onEvent, onError: listener.onError });\n\n return () => {\n const grp = this.subscriptionGroups.get(key);\n if (!grp) {\n return;\n }\n grp.callbacks = grp.callbacks.filter((cb) => cb.onEvent !== listener.onEvent);\n if (grp.callbacks.length === 0) {\n def.remove();\n this.subscriptionGroups.delete(key);\n }\n };\n }\n}\n", "import './types/global';\n\nexport { Bedrock } from './bedrock-app';\nexport * from '@react-native-bedrock/style-utils';\nexport * from '@react-native-bedrock/lottie';\nexport * from '@react-native-bedrock/image';\nexport * from './dev-entrypoint';\nexport * from './native-modules/natives';\nexport * from './visibility';\nexport * from './use-back-event';\nexport * from './blur';\nexport * from './keyboard';\nexport * from './intersection-observer';\nexport * from './impression-area';\nexport type { InitialProps, ColorPreference } from './initial-props';\nexport * from './scroll-view-inertial-background';\nexport * from './react';\nexport * from './video';\nexport * from './router/BedrockRoute';\nexport * from './bridge-handler';\nexport * from './bedrock-event';\n", "module.exports = __bedrock_require__('react-native-webview');", "export { default } from 'react-native-webview';\nexport * from 'react-native-webview';\nexport type {\n AndroidLayerType,\n AndroidWebViewProps,\n BasicAuthCredential,\n CacheMode,\n CommonNativeWebViewProps,\n ContentInsetAdjustmentBehavior,\n ContentInsetProp,\n ContentMode,\n DataDetectorTypes,\n DecelerationRateConstant,\n FileDownload,\n FileDownloadEvent,\n IOSWebViewProps,\n MediaCapturePermissionGrantType,\n OnShouldStartLoadWithRequest,\n OverScrollModeType,\n RNCWebViewUIManagerAndroid,\n RNCWebViewUIManagerIOS,\n ShouldStartLoadRequest,\n ShouldStartLoadRequestEvent,\n State,\n SuppressMenuItem,\n ViewManager,\n WebViewCustomMenuItems,\n WebViewError,\n WebViewErrorEvent,\n WebViewEvent,\n WebViewHttpError,\n WebViewHttpErrorEvent,\n WebViewMessage,\n WebViewMessageEvent,\n WebViewNativeConfig,\n WebViewNativeEvent,\n WebViewNativeProgressEvent,\n WebViewNavigation,\n WebViewNavigationEvent,\n WebViewOpenWindow,\n WebViewOpenWindowEvent,\n WebViewProgressEvent,\n WebViewRenderProcessGoneDetail,\n WebViewRenderProcessGoneEvent,\n WebViewScrollEvent,\n WebViewSharedProps,\n WebViewSource,\n WebViewSourceHtml,\n WebViewSourceUri,\n WebViewTerminatedEvent,\n} from 'react-native-webview/lib/WebViewTypes';\n", "export * from './native-modules/natives/closeView';\nexport * from './native-modules/natives/generateHapticFeedback';\nexport * from './native-modules/natives/share';\nexport * from './native-modules/natives/setSecureScreen';\nexport * from './native-modules/natives/setScreenAwakeMode';\nexport * from './native-modules/natives/getNetworkStatus';\n", "export * from './native-modules/natives/getLocale';\nexport * from './native-modules/natives/getSchemeUri';\nexport * from './native-modules/natives/getDeviceId';\n", "var __defProp = Object.defineProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\n\n// src/native-event-emitter/index.ts\nvar native_event_emitter_exports = {};\n__export(native_event_emitter_exports, {\n startUpdateLocation: () => startUpdateLocation\n});\n\n// src/native-event-emitter/bedrock-event.ts\nimport { BedrockEvent } from \"react-native-bedrock\";\n\n// src/native-event-emitter/event-plugins/UpdateLocationEvent.ts\nimport { BedrockEventDefinition } from \"react-native-bedrock\";\n\n// src/native-modules/AppsInTossModule.ts\nimport { NativeModules } from \"react-native\";\nvar AppsInTossModuleInstance = NativeModules.AppsInTossModule;\nvar AppsInTossModule = AppsInTossModuleInstance;\n\n// src/native-modules/getPermission.ts\nfunction getPermission(permission) {\n return AppsInTossModule.getPermission(permission);\n}\n\n// src/native-modules/openPermissionDialog.ts\nfunction openPermissionDialog(permission) {\n return AppsInTossModule.openPermissionDialog(permission);\n}\n\n// src/native-modules/requestPermission.ts\nasync function requestPermission(permission) {\n const permissionStatus = await getPermission(permission);\n switch (permissionStatus) {\n case \"allowed\":\n case \"denied\":\n return permissionStatus;\n default:\n return openPermissionDialog(permission);\n }\n}\n\n// src/native-event-emitter/nativeEventEmitter.ts\nimport { NativeEventEmitter } from \"react-native\";\nvar nativeEventEmitter = new NativeEventEmitter(AppsInTossModuleInstance);\n\n// src/native-event-emitter/event-plugins/UpdateLocationEvent.ts\nvar UpdateLocationEvent = class extends BedrockEventDefinition {\n name = \"updateLocationEvent\";\n subscriptionCount = 0;\n ref = {\n remove: () => {\n }\n };\n remove() {\n --this.subscriptionCount === 0 && AppsInTossModuleInstance.stopUpdateLocation({});\n this.ref.remove();\n }\n listener(options, onEvent, onError) {\n requestPermission({ name: \"geolocation\", access: \"access\" }).then((permissionStatus) => {\n if (permissionStatus === \"denied\") {\n onError(new Error(\"\\uC704\\uCE58 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694.\"));\n return;\n }\n void AppsInTossModuleInstance.startUpdateLocation(options).catch(onError);\n const subscription = nativeEventEmitter.addListener(\"updateLocation\", onEvent);\n this.ref = {\n remove: () => subscription?.remove()\n };\n this.subscriptionCount++;\n }).catch(onError);\n }\n};\n\n// src/native-event-emitter/bedrock-event.ts\nvar appsInTossEvent = new BedrockEvent([new UpdateLocationEvent()]);\n\n// src/native-event-emitter/startUpdateLocation.ts\nfunction startUpdateLocation(eventParams) {\n return appsInTossEvent.addEventListener(\"updateLocationEvent\", eventParams);\n}\n\n// src/native-modules/index.ts\nvar native_modules_exports = {};\n__export(native_modules_exports, {\n appLogin: () => appLogin,\n fetchAlbumPhotos: () => fetchAlbumPhotos,\n fetchContacts: () => fetchContacts,\n getClipboardText: () => getClipboardText,\n getCurrentLocation: () => getCurrentLocation,\n openCamera: () => openCamera,\n setClipboardText: () => setClipboardText\n});\n\n// src/native-modules/setClipboardText.ts\nasync function setClipboardText(text) {\n const permissionStatus = await requestPermission({ name: \"clipboard\", access: \"write\" });\n if (permissionStatus === \"denied\") {\n throw new Error(\"\\uD074\\uB9BD\\uBCF4\\uB4DC \\uC4F0\\uAE30 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694.\");\n }\n return AppsInTossModule.setClipboardText({ text });\n}\n\n// src/native-modules/getClipboardText.ts\nasync function getClipboardText() {\n const permissionStatus = await requestPermission({ name: \"clipboard\", access: \"read\" });\n if (permissionStatus === \"denied\") {\n throw new Error(\"\\uD074\\uB9BD\\uBCF4\\uB4DC \\uC77D\\uAE30 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694.\");\n }\n return AppsInTossModule.getClipboardText({});\n}\n\n// src/native-modules/fetchContacts.ts\nasync function fetchContacts({\n size,\n offset,\n query\n}) {\n const permissionStatus = await requestPermission({ name: \"contacts\", access: \"read\" });\n if (permissionStatus === \"denied\") {\n throw new Error(\"\\uC5F0\\uB77D\\uCC98 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694.\");\n }\n const contacts = await AppsInTossModule.fetchContacts({\n size,\n offset,\n query\n });\n return {\n result: contacts.result,\n nextOffset: contacts.nextOffset ?? null,\n done: contacts.done\n };\n}\n\n// src/native-modules/fetchAlbumPhotos.ts\nvar DEFAULT_MAX_COUNT = 10;\nvar DEFAULT_MAX_WIDTH = 1024;\nasync function fetchAlbumPhotos(options) {\n const permissionStatus = await requestPermission({ name: \"photos\", access: \"read\" });\n if (permissionStatus === \"denied\") {\n throw new Error(\"\\uC0AC\\uC9C4\\uCCA9 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694.\");\n }\n const albumPhotos = await AppsInTossModule.fetchAlbumPhotos({\n ...options,\n maxCount: options.maxCount ?? DEFAULT_MAX_COUNT,\n maxWidth: options.maxWidth ?? DEFAULT_MAX_WIDTH\n });\n return albumPhotos;\n}\n\n// src/native-modules/getCurrentLocation.ts\nasync function getCurrentLocation(options) {\n const permissionStatus = await requestPermission({ name: \"geolocation\", access: \"access\" });\n if (permissionStatus === \"denied\") {\n throw new Error(\"\\uC704\\uCE58 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694.\");\n }\n const position = await AppsInTossModule.getCurrentLocation(options);\n return position;\n}\n\n// src/native-modules/openCamera.ts\nasync function openCamera(options) {\n const permissionStatus = await requestPermission({ name: \"camera\", access: \"access\" });\n if (permissionStatus === \"denied\") {\n throw new Error(\"\\uCE74\\uBA54\\uB77C \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694.\");\n }\n const photo = await AppsInTossModule.openCamera({ base64: false, maxWidth: 1024, ...options });\n return photo;\n}\n\n// src/native-modules/appLogin.ts\nasync function appLogin() {\n return AppsInTossModule.appLogin({});\n}\n\n// src/components/WebView.tsx\nimport {\n WebView as OriginalWebView\n} from \"@react-native-bedrock/native/react-native-webview\";\nimport { useMemo } from \"react\";\nimport { useBridgeHandler } from \"react-native-bedrock\";\nimport * as bridges from \"react-native-bedrock/bridges\";\nimport * as constantBridges from \"react-native-bedrock/constants\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction WebView({ localhostPort = 5173, onMessage, ...props }) {\n const uri = useMemo(() => {\n if (__DEV__) {\n return `http://localhost:${localhostPort}`;\n }\n return AppsInTossModule.getWebBundleURL({}).url;\n }, [localhostPort]);\n const handler = useBridgeHandler({\n onMessage,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n eventListenerMap: native_event_emitter_exports,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n constantHandlerMap: constantBridges,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n handlerMap: {\n ...bridges,\n ...native_modules_exports\n }\n });\n return /* @__PURE__ */ jsx(\n OriginalWebView,\n {\n ref: handler.ref,\n ...props,\n source: { uri },\n sharedCookiesEnabled: true,\n thirdPartyCookiesEnabled: true,\n onMessage: handler.onMessage,\n injectedJavaScript: handler.injectedJavaScript,\n injectedJavaScriptBeforeContentLoaded: handler.injectedJavaScript\n }\n );\n}\n\n// src/hooks/useGeolocation.ts\nimport { useState, useEffect } from \"react\";\nimport { useVisibility } from \"react-native-bedrock\";\nfunction useGeolocation({ accuracy, distanceInterval, timeInterval }) {\n const isVisible = useVisibility();\n const [location, setLocation] = useState(null);\n useEffect(() => {\n if (!isVisible) {\n return;\n }\n return startUpdateLocation({\n options: {\n accuracy,\n distanceInterval,\n timeInterval\n },\n onEvent: setLocation,\n onError: console.error\n });\n }, [accuracy, distanceInterval, timeInterval, isVisible]);\n return location;\n}\n\n// src/env.ts\nvar env = {\n getDeploymentId: () => __DEV__ ? \"local\" : global.__appsInToss?.deploymentId\n};\n\n// src/types.ts\nvar Accuracy2 = /* @__PURE__ */ ((Accuracy3) => {\n Accuracy3[Accuracy3[\"Lowest\"] = 1] = \"Lowest\";\n Accuracy3[Accuracy3[\"Low\"] = 2] = \"Low\";\n Accuracy3[Accuracy3[\"Balanced\"] = 3] = \"Balanced\";\n Accuracy3[Accuracy3[\"High\"] = 4] = \"High\";\n Accuracy3[Accuracy3[\"Highest\"] = 5] = \"Highest\";\n Accuracy3[Accuracy3[\"BestForNavigation\"] = 6] = \"BestForNavigation\";\n return Accuracy3;\n})(Accuracy2 || {});\nexport {\n Accuracy2 as Accuracy,\n WebView,\n appLogin,\n env,\n fetchAlbumPhotos,\n fetchContacts,\n getClipboardText,\n getCurrentLocation,\n openCamera,\n setClipboardText,\n startUpdateLocation,\n useGeolocation\n};\n", "import { WebView } from '@apps-in-toss/framework';\nimport { View } from 'react-native';\n\nexport default function Index() {\n return (\n <View style={{ flex: 1 }}>\n <WebView style={{ flex: 1 }} localhostPort={Ait.webPort} />\n </View>\n );\n}\n", "export { default } from './index';\n", "\"use strict\";\n\n// src/presets/common/polyfills/symbol-asynciterator.js\n(function() {\n if (typeof Symbol !== \"undefined\" && !Symbol.asyncIterator) {\n Symbol.asyncIterator = Symbol.for(\"@@asyncIterator\");\n }\n})();\n", "const files = new Map();\n\nfiles.set('./index.tsx', require('./pages/index.tsx'));\nfiles.set('./_404.tsx', require('./pages/_404.tsx'));\n\nexport function context(id: string) {\n return files.get(id);\n}\n\ncontext.keys = () => Array.from(files.keys());\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["require_react", "__commonJSMin", "exports", "module", "require_react_jsx_runtime_production_min", "__commonJSMin", "exports", "f", "require", "k", "Symbol", "for", "l", "m", "Object", "prototype", "hasOwnProperty", "n", "__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED", "ReactCurrentOwner", "p", "key", "ref", "__self", "__source", "q", "c", "a", "g", "b", "d", "e", "h", "call", "defaultProps", "$$typeof", "type", "props", "_owner", "current", "Fragment", "jsx", "jsxs", "require_jsx_runtime", "__commonJSMin", "exports", "module", "require", "init_global", "__esmMin", "_define_property", "obj", "key", "value", "Object", "defineProperty", "enumerable", "configurable", "writable", "init_define_property", "__esmMin", "_object_spread", "target", "i", "arguments", "length", "source", "ownKeys", "Object", "keys", "getOwnPropertySymbols", "concat", "filter", "sym", "getOwnPropertyDescriptor", "enumerable", "forEach", "key", "_define_property", "init_object_spread", "__esmMin", "init_define_property", "ownKeys", "object", "enumerableOnly", "keys", "Object", "getOwnPropertySymbols", "symbols", "filter", "sym", "getOwnPropertyDescriptor", "enumerable", "push", "apply", "_object_spread_props", "target", "source", "getOwnPropertyDescriptors", "defineProperties", "forEach", "key", "defineProperty", "init_object_spread_props", "__esmMin", "_object_without_properties_loose", "source", "excluded", "target", "sourceKeys", "Object", "keys", "key", "i", "length", "indexOf", "init_object_without_properties_loose", "__esmMin", "_object_without_properties", "source", "excluded", "target", "_object_without_properties_loose", "key", "i", "Object", "getOwnPropertySymbols", "sourceSymbolKeys", "length", "indexOf", "prototype", "propertyIsEnumerable", "call", "init_object_without_properties", "__esmMin", "init_object_without_properties_loose", "require_native", "__commonJSMin", "exports", "module", "native_exports", "init_native", "__esmMin", "__reExport", "require_react_native_safe_area_context", "__commonJSMin", "exports", "module", "react_native_safe_area_context_exports", "init_react_native_safe_area_context", "__esmMin", "__reExport", "_array_with_holes", "arr", "Array", "isArray", "init_array_with_holes", "__esmMin", "_iterable_to_array_limit", "arr", "i", "_i", "Symbol", "iterator", "_arr", "_n", "_d", "_s", "_e", "call", "next", "done", "push", "value", "length", "err", "init_iterable_to_array_limit", "__esmMin", "_non_iterable_rest", "TypeError", "init_non_iterable_rest", "__esmMin", "_array_like_to_array", "arr", "len", "length", "i", "arr2", "Array", "init_array_like_to_array", "__esmMin", "_unsupported_iterable_to_array", "o", "minLen", "_array_like_to_array", "n", "Object", "prototype", "toString", "call", "slice", "constructor", "name", "Array", "from", "test", "init_unsupported_iterable_to_array", "__esmMin", "init_array_like_to_array", "_sliced_to_array", "arr", "i", "_array_with_holes", "_iterable_to_array_limit", "_unsupported_iterable_to_array", "_non_iterable_rest", "init_sliced_to_array", "__esmMin", "init_array_with_holes", "init_iterable_to_array_limit", "init_non_iterable_rest", "init_unsupported_iterable_to_array", "require_react_native", "__commonJSMin", "exports", "module", "adaptiveLightColors", "adaptiveDarkColors", "init_colors", "__esmMin", "background", "grey900", "grey800", "ColorPreferenceProvider", "param", "colorPreference", "_param_colorPreference", "children", "colorPreferenceValue", "useMemo", "_jsx", "ColorPreferenceContext", "Provider", "value", "useColorPreference", "useContext", "Error", "useAdaptiveColor", "adaptiveDarkColors", "adaptiveLightColors", "import_react", "defaultColorPreferenceValue", "init_colors", "createContext", "useNavigationSafely", "root", "useContext", "NavigationContainerRefContext", "navigation", "NavigationContext", "undefined", "import_react", "init_useNavigationSafely", "__esmMin", "init_native", "useIsFocusedSafely", "navigation", "useNavigationSafely", "isNavigationFocused", "isFocused", "useState", "setIsFocused", "valueToReturn", "useEffect", "unsubscribeFocus", "addListener", "unsubscribeBlur", "useDebugValue", "import_react", "init_useNavigationSafely", "init_react_navigation", "__esmMin", "init_useIsFocusedSafely", "init_useNavigationSafely", "AppStateProvider", "param", "children", "useState", "AppState", "currentState", "appState", "setAppState", "handleAppStateChange", "status", "useEffect", "subscription", "addEventListener", "remove", "_jsx", "AppStateContext", "Provider", "value", "import_react", "import_react_native", "useIsAppForeground", "createContext", "undefined", "useContext", "Error", "asyncGeneratorStep", "gen", "resolve", "reject", "_next", "_throw", "key", "arg", "info", "value", "error", "done", "Promise", "then", "_async_to_generator", "fn", "self", "args", "arguments", "apply", "err", "undefined", "init_async_to_generator", "__esmMin", "_instanceof", "left", "right", "Symbol", "hasInstance", "_instanceof1", "_type_of", "obj", "Symbol", "constructor", "init_type_of", "__esmMin", "__generator", "thisArg", "body", "_", "label", "sent", "t", "trys", "ops", "f", "y", "g", "next", "verb", "Symbol", "iterator", "n", "v", "step", "op", "TypeError", "call", "done", "value", "pop", "length", "push", "e", "init_tslib_es6", "__esmMin", "init_instanceof", "init_ts_generator", "__esmMin", "init_tslib_es6", "import_react_native", "BedrockModule", "init_BedrockModule", "__esmMin", "NativeModules", "closeView", "_async_to_generator", "BedrockModule", "init_BedrockModule", "getLocale", "BedrockModule", "locale", "DeviceInfo", "Platform", "OS", "replaceUnderbarToHypen", "replaceAll", "import_react_native", "init_getLocale", "__esmMin", "init_BedrockModule", "getSchemeUri", "BedrockModule", "schemeUri", "init_getSchemeUri", "__esmMin", "init_BedrockModule", "generateHapticFeedback", "options", "BedrockModule", "init_generateHapticFeedback", "__esmMin", "init_BedrockModule", "share", "message", "_async_to_generator", "BedrockModule", "init_BedrockModule", "setSecureScreen", "options", "BedrockModule", "init_setSecureScreen", "__esmMin", "init_BedrockModule", "setScreenAwakeMode", "options", "_async_to_generator", "BedrockModule", "init_BedrockModule", "getDeviceId", "BedrockModule", "deviceId", "init_getDeviceId", "__esmMin", "init_BedrockModule", "getNetworkStatus", "BedrockModule", "init_getNetworkStatus", "__esmMin", "init_BedrockModule", "init_natives", "__esmMin", "init_closeView", "init_getLocale", "init_getSchemeUri", "init_generateHapticFeedback", "init_share", "init_setSecureScreen", "init_setScreenAwakeMode", "init_getDeviceId", "init_getNetworkStatus", "import_react_native", "BedrockCoreModule", "init_BedrockCoreModule", "__esmMin", "NativeModules", "init_native_modules", "__esmMin", "init_natives", "init_BedrockCoreModule", "import_react_native", "nativeEventEmitter", "init_nativeEventEmitter", "__esmMin", "init_native_modules", "NativeEventEmitter", "BedrockCoreModule", "init_native_event_emitter", "__esmMin", "init_nativeEventEmitter", "VisibilityChangedProvider", "param", "children", "isVisible", "useState", "visible", "setVisible", "useEffect", "subscription", "nativeEventEmitter", "addListener", "nextVisible", "remove", "_jsx", "VisibilityChangedContext", "Provider", "value", "useVisibilityChanged", "useContext", "Error", "import_react", "init_native_event_emitter", "createContext", "undefined", "useVisibility", "visible", "useVisibilityChanged", "isForeground", "useIsAppForeground", "isReactNavigationFocused", "useIsFocusedSafely", "androidCondition", "iOSCondition", "Platform", "OS", "import_react_native", "init_useVisibility", "__esmMin", "init_useIsFocusedSafely", "init_useIsAppForeground", "init_useVisibilityChanged", "import_react", "init_usePrevious", "__esmMin", "import_react", "init_useVisibilityChange", "__esmMin", "init_useVisibility", "init_usePrevious", "VisibilityProvider", "param", "isVisible", "children", "_jsx", "VisibilityChangedProvider", "AppStateProvider", "init_useIsAppForeground", "init_useVisibilityChanged", "init_visibility", "__esmMin", "init_react_navigation", "init_useIsAppForeground", "init_useVisibility", "init_useVisibilityChanged", "init_useVisibilityChange", "init_VisibilityProvider", "App", "_param", "children", "props", "useMemo", "isVisible", "initialColorPreference", "colorPreference", "useColorPreference", "_jsx", "ColorPreferenceProvider", "VisibilityProvider", "useState", "setColorPreference", "useEffect", "subscription", "Appearance", "addChangeListener", "param", "colorScheme", "remove", "import_react", "import_react_native", "init_ColorPreferenceContext", "init_visibility", "registerPage", "Page", "globalThis", "__SPLIT_CHUNK_ENABLED__", "init_registerPage", "__esmMin", "Function", "require_native_stack", "__commonJSMin", "exports", "module", "native_stack_exports", "init_native_stack", "__esmMin", "__reExport", "createBedrockStackNavigator", "Stack", "createNativeStackNavigator", "Navigator", "Screen", "BedrockStack", "init_BedrockStack", "__esmMin", "init_native_stack", "useIsInitialScreen", "index", "useNavigationState", "state", "init_useIsInitialScreen", "__esmMin", "init_native", "CanGoBackGuard", "param", "children", "canGoBack", "onBack", "isInitialScreen", "useIsInitialScreen", "shouldBlockGoingBack", "useEffect", "subscription", "BackHandler", "addEventListener", "remove", "_jsx", "_Fragment", "import_react", "import_react_native", "init_useIsInitialScreen", "require_react_native_svg", "__commonJSMin", "exports", "module", "react_native_svg_exports", "__export", "import_react_native_svg", "init_react_native_svg", "__esmMin", "__reExport", "BackButton", "param", "tintColor", "onPress", "adaptive", "useAdaptiveColor", "_jsx", "NavbarBackButton", "color", "grey900", "TouchableOpacity", "hitSlop", "top", "right", "bottom", "left", "style", "width", "height", "accessible", "accessibilityLabel", "accessibilityRole", "View", "SvgXml", "xml", "BACK_BUTTON_XML", "replace", "marginLeft", "BACK_BUTTON_MARGIN", "import_react_native", "ANDROID_BACK_BUTTON", "IOS_BACK_BUTTON", "init_react_native_svg", "init_ColorPreferenceContext", "Platform", "select", "android", "ios", "default", "RouterBackButton", "param", "tintColor", "canGoBack", "onBack", "navigationContainerRef", "_jsx", "BackButton", "onPress", "goBack", "closeView", "init_BackButton", "init_native_modules", "matchDynamicName", "name", "match", "init_matchers", "__esmMin", "toPosixBasedPath", "filePath", "replace", "excludeFileExtension", "name", "excludeRelativePath", "excludeDynamicNamePattern", "getRoutePath", "posixBasedPath", "normalPath", "routePath", "split", "map", "segment", "matchDynamicName", "filter", "length", "join", "getFileNameFromPath", "options", "withExtension", "fileName", "pop", "init_path", "__esmMin", "init_matchers", "getDirectoryPath", "filePath", "layoutDirs", "has", "lastSlashIndex", "lastIndexOf", "dirPath", "substring", "getParentDirectory", "idx", "parent", "createParentRouteScreenMap", "routeScreens", "keyword", "Set", "layoutScreens", "Map", "_iteratorNormalCompletion", "_didIteratorError", "_iteratorError", "_iterator", "_step", "screen", "fileName", "getFileNameFromPath", "path", "withExtension", "add", "err", "_iteratorNormalCompletion1", "_didIteratorError1", "_iteratorError1", "_iterator1", "_step1", "set", "memo", "findNearestLayout", "dir", "skipSameDir", "cacheKey", "get", "current", "foundLayout", "undefined", "parentRouteScreenMap", "_iteratorNormalCompletion2", "_didIteratorError2", "_iteratorError2", "_iterator2", "_step2", "parentLayout", "nearestLayout", "init_createParentRouteScreenMap", "__esmMin", "init_path", "init_defaultParserParams", "__esmMin", "init_sliced_to_array", "import_react", "routeMap", "init_defaultParserParams", "Map", "getRouteScreens", "context", "screens", "keys", "map", "key", "routeMap", "path", "getRoutePath", "component", "default", "get", "Route", "_path", "Error", "getScreenPathMapConfig", "routeScreens", "screensConfig", "forEach", "routeScreen", "routePath", "init_screen", "__esmMin", "init_path", "init_BedrockRoute", "init_utils", "__esmMin", "init_screen", "init_defaultParserParams", "mergeParentLayoutScreen", "screens", "path", "routeScreen", "get", "currentPath", "LayoutScreen", "component", "ChildLayout", "MergedLayout", "param", "children", "_jsx", "_Fragment", "useBedrockRouterControls", "param", "prefix", "context", "routeScreens", "useMemo", "getRouteScreens", "registerScreens", "filter", "screen", "RESERVED_KEYWORDS", "includes", "getFileNameFromPath", "path", "withExtension", "layoutScreenMap", "createParentRouteScreenMap", "BedrockScreens", "map", "routeScreen", "Layout", "mergeParentLayoutScreen", "Component", "_jsx", "component", "routePath", "screenOptions", "BedrockStack", "Screen", "name", "options", "linkingOptions", "prefixes", "config", "screens", "getScreenPathMapConfig", "getInitialURL", "_async_to_generator", "initialURL", "getSchemeUri", "decodeURI", "import_react", "init_native_modules", "init_BedrockStack", "init_createParentRouteScreenMap", "init_utils", "init_mergeParentLayoutScreen", "init_path", "useBedrockStackNavigatorStyle", "adaptive", "useAdaptiveColor", "useMemo", "contentStyle", "backgroundColor", "background", "headerTintColor", "grey800", "headerTitleStyle", "color", "headerStyle", "headerShadowVisible", "animation", "Platform", "OS", "import_react", "import_react_native", "init_useBedrockStackNavigatorStyle", "__esmMin", "init_ColorPreferenceContext", "useInitialRouteName", "prefix", "initialScheme", "getInitialScheme", "pathname", "slice", "length", "split", "shouldUseIndex", "scheme", "getSchemeUri", "Platform", "OS", "replaceAll", "import_react_native", "init_useInitialRouteName", "__esmMin", "init_native_modules", "Router", "_param", "prefix", "context", "navigationContainerRef", "defaultScreenOption", "canGoBack", "_param_canGoBack", "onBack", "BedrockContainer", "container", "Fragment", "initialProps", "navigationContainerProps", "initialRouteName", "useInitialRouteName", "useBedrockRouterControls", "BedrockScreens", "linkingOptions", "navigatorStyle", "useBedrockStackNavigatorStyle", "ref", "useMemo", "createNavigationContainerRef", "headerLeft", "useCallback", "backButtonProps", "_jsx", "RouterBackButton", "screenOptions", "screenProps", "_object_spread", "_object_spread_props", "gestureEnabled", "NavigationContainer", "linking", "CanGoBackGuard", "BedrockStack", "Navigator", "import_react", "init_native", "init_BedrockStack", "init_CanGoBackGuard", "init_RouterBackButton", "init_useBedrockRouterControls", "init_useBedrockStackNavigatorStyle", "init_useInitialRouteName", "init_RequireContext", "__esmMin", "init_RouteScreen", "__esmMin", "init_Screen", "__esmMin", "init_types", "__esmMin", "init_RequireContext", "init_RouteScreen", "init_Screen", "init_router", "__esmMin", "init_Router", "init_utils", "init_types", "BackEventProvider", "param", "children", "backEvent", "_jsx", "BackEventContext", "Provider", "value", "useBackEventState", "handlersRef", "useRef", "Set", "current", "useState", "hasBackEvent", "setHasBackEvent", "addEventListener", "useCallback", "handlers", "_iteratorNormalCompletion", "_didIteratorError", "_iteratorError", "_iterator", "_step", "handler", "add", "err", "size", "removeEventListener", "delete", "useMemo", "onBack", "forEach", "import_react", "init_visibility", "createContext", "init_use_back_event", "__esmMin", "init_useBackEvent", "AppRoot", "_param", "appName", "context", "container", "initialProps", "backEventState", "useBackEventState", "_jsx", "App", "SafeAreaProvider", "BackEventProvider", "backEvent", "Router", "canGoBack", "hasBackEvent", "onBack", "prefix", "navigationContainerRef", "createBedrock", "Bedrock", "init_native", "init_react_native_safe_area_context", "init_index_ios", "init_registerPage", "init_router", "init_use_back_event", "createNavigationContainerRef", "_appName", "registerApp", "AppContainer", "param", "Root", "registerPage", "Error", "init_bedrock_app", "__esmMin", "init_Bedrock", "spacing", "styleProperty", "option", "_define_property", "box", "x", "undefined", "left", "right", "y", "top", "bottom", "styleObject", "Object", "entries", "reduce", "_styleObject", "dir", "value", "_object_spread_props", "_object_spread", "capitalizeFirstLetter", "createSpacingWithProperty", "cssProperty", "_spacing", "_iteratorNormalCompletion", "_didIteratorError", "_iteratorError", "property", "_step", "_iterator", "units", "_step1", "unit", "key", "Number", "err", "properties", "_loop", "str", "charAt", "toUpperCase", "slice", "padding", "margin", "flex", "alignOrFlexOptions", "justify", "direction", "_type_of", "_alignOrFlexOptions_align", "align", "_alignOrFlexOptions_direction", "_alignOrFlexOptions_justify", "alignItems", "display", "flexDirection", "justifyContent", "import_react", "import_react_native", "BaseFlex", "Flex", "FlexCenter", "FlexCenterVertical", "FlexCenterHorizontal", "center", "forwardRef", "_param", "ref", "_param_align", "_param_justify", "_param_direction", "style", "restProps", "_jsx", "View", "props", "Center", "CenterVertical", "CenterHorizontal", "import_react", "import_react_native", "Spacing", "memo", "_param", "size", "direction", "_param_direction", "style", "restProps", "directionStyle", "height", "width", "_jsx", "View", "ChildrenGap", "param", "children", "gap", "React", "isValidElement", "Error", "_jsx", "_Fragment", "Children", "map", "child", "index", "isLastChild", "count", "_jsxs", "Fragment", "undefined", "import_react", "Gap", "import_react", "BaseStack", "Stack", "StackHorizontal", "StackVertical", "init_children", "init_flex", "init_spacing", "forwardRef", "props", "ref", "_props_direction", "direction", "_props_gutter", "gutter", "children", "rest", "_jsx", "Flex", "Children", "Gap", "gap", "Spacing", "size", "Horizontal", "Vertical", "init_src", "__esmMin", "init_box_spacing", "init_flex", "init_spacing", "init_stack", "import_react_native", "import_react", "import_react_native", "init_ensureSafeLottie", "init_useFetchResource", "init_src", "__esmMin", "init_Lottie", "_array_without_holes", "arr", "Array", "isArray", "_array_like_to_array", "init_array_without_holes", "__esmMin", "init_array_like_to_array", "_iterable_to_array", "iter", "Symbol", "iterator", "Array", "from", "init_iterable_to_array", "__esmMin", "_non_iterable_spread", "TypeError", "init_non_iterable_spread", "__esmMin", "_to_consumable_array", "arr", "_array_without_holes", "_iterable_to_array", "_unsupported_iterable_to_array", "_non_iterable_spread", "init_to_consumable_array", "__esmMin", "init_array_without_holes", "init_iterable_to_array", "init_non_iterable_spread", "init_unsupported_iterable_to_array", "import_react", "import_react", "import_react_native", "init_usePreservedCallback", "import_react_native", "init_SvgImage", "init_src", "__esmMin", "init_Image", "setup", "Symbol", "asyncIterator", "for", "init_symbol_asynciterator", "__esmMin", "import_react_native", "majorVersionIOS", "init_ios10Fix", "__esmMin", "parseInt", "Platform", "Version", "OS", "Object", "getOwnPropertyDescriptor", "ArrayBuffer", "prototype", "defineProperty", "configurable", "enumerable", "get", "require_defineLazyObjectProperty", "__commonJSMin", "exports", "module", "defineLazyObjectProperty", "object", "name", "descriptor", "get", "enumerable", "writable", "value", "valueSet", "getValue", "setValue", "newValue", "Object", "defineProperty", "configurable", "set", "require_PolyfillFunctions", "__commonJSMin", "exports", "module", "defineLazyObjectProperty", "require", "polyfillObjectProperty", "object", "name", "getValue", "descriptor", "Object", "getOwnPropertyDescriptor", "__DEV__", "backupName", "enumerable", "writable", "configurable", "_ref_configurable", "console", "error", "get", "polyfillGlobal", "global", "name", "version", "init_package", "__esmMin", "_class_call_check", "instance", "Constructor", "_instanceof1", "TypeError", "_defineProperties", "target", "props", "i", "length", "descriptor", "enumerable", "configurable", "writable", "Object", "defineProperty", "key", "_create_class", "Constructor", "protoProps", "staticProps", "prototype", "init_create_class", "__esmMin", "require_lib", "__commonJSMin", "exports", "_", "message", "opts", "context", "type", "V", "_type_of", "evenRound", "x", "censorNegativeZero", "Math", "floor", "round", "integerPart", "n", "trunc", "sign", "modulo", "y", "signMightNotMatch", "createIntegerConversion", "bitLength", "typeOpts", "isSigned", "unsigned", "lowerBound", "upperBound", "pow", "twoToTheBitLength", "twoToOneLessThanTheBitLength", "undefined", "enforceRange", "Number", "isFinite", "TypeError", "isNaN", "clamp", "min", "max", "any", "void", "boolean", "val", "byte", "octet", "short", "long", "double", "float", "Object", "is", "fround", "DOMString", "treatNullAsEmptyString", "String", "ByteString", "c", "i", "codePointAt", "USVString", "S", "length", "U", "charCodeAt", "push", "fromCodePoint", "d", "a", "b", "join", "object", "convertCallbackFunction", "abByteLengthGetter", "getOwnPropertyDescriptor", "ArrayBuffer", "prototype", "get", "isArrayBuffer", "call", "e", "dvByteLengthGetter", "DataView", "Int8Array", "Int16Array", "Int32Array", "Uint8Array", "Uint16Array", "Uint32Array", "Uint8ClampedArray", "Float32Array", "Float64Array", "forEach", "func", "name", "article", "test", "isView", "constructor", "ArrayBufferView", "BufferSource", "DOMTimeStamp", "Function", "VoidFunction", "require_utils", "__commonJSMin", "exports", "module", "isObject", "value", "_type_of", "hasOwn", "obj", "prop", "Object", "prototype", "hasOwnProperty", "call", "wrapperSymbol", "Symbol", "implSymbol", "sameObjectCaches", "ctorRegistrySymbol", "for", "getSameObject", "wrapper", "creator", "create", "wrapperForImpl", "impl", "implForWrapper", "tryWrapperForImpl", "tryImplForWrapper", "iterInternalSymbol", "IteratorPrototype", "getPrototypeOf", "iterator", "isArrayIndexPropName", "P", "i", "Math", "pow", "s", "byteLengthGetter", "getOwnPropertyDescriptor", "ArrayBuffer", "get", "isArrayBuffer", "e", "supportsPropertyIndex", "supportedPropertyIndices", "supportsPropertyName", "supportedPropertyNames", "indexedGet", "indexedSetNew", "indexedSetExisting", "namedGet", "namedSetNew", "namedSetExisting", "namedDelete", "require_base64_js", "__commonJSMin", "exports", "byteLength", "toByteArray", "fromByteArray", "lookup", "revLookup", "Arr", "Uint8Array", "Array", "code", "i", "len", "length", "charCodeAt", "getLens", "b64", "Error", "validLen", "indexOf", "placeHoldersLen", "lens", "_byteLength", "tmp", "arr", "curByte", "tripletToBase64", "num", "encodeChunk", "uint8", "start", "end", "output", "push", "join", "extraBytes", "parts", "maxChunkLength", "len2", "require_ieee754", "__commonJSMin", "exports", "read", "buffer", "offset", "isLE", "mLen", "nBytes", "e", "m", "eLen", "eMax", "eBias", "nBits", "i", "d", "s", "NaN", "Infinity", "Math", "pow", "write", "value", "c", "rt", "abs", "isNaN", "floor", "log", "LN2", "require_buffer", "__commonJSMin", "exports", "base64", "require", "ieee754", "customInspectSymbol", "Symbol", "Buffer", "SlowBuffer", "INSPECT_MAX_BYTES", "K_MAX_LENGTH", "kMaxLength", "TYPED_ARRAY_SUPPORT", "typedArraySupport", "console", "error", "arr", "Uint8Array", "proto", "foo", "Object", "setPrototypeOf", "prototype", "e", "defineProperty", "enumerable", "get", "isBuffer", "buffer", "byteOffset", "createBuffer", "length", "RangeError", "buf", "arg", "encodingOrOffset", "TypeError", "allocUnsafe", "from", "poolSize", "value", "fromString", "ArrayBuffer", "isView", "fromArrayView", "_type_of", "isInstance", "SharedArrayBuffer", "fromArrayBuffer", "valueOf", "b", "fromObject", "toPrimitive", "assertSize", "size", "alloc", "fill", "encoding", "undefined", "checked", "allocUnsafeSlow", "string", "isEncoding", "byteLength", "actual", "write", "slice", "fromArrayLike", "array", "i", "arrayView", "copy", "obj", "len", "numberIsNaN", "type", "Array", "isArray", "data", "toString", "_isBuffer", "compare", "a", "offset", "x", "y", "Math", "min", "String", "toLowerCase", "concat", "list", "pos", "set", "call", "mustMatch", "arguments", "loweredCase", "utf8ToBytes", "base64ToBytes", "slowToString", "start", "end", "hexSlice", "utf8Slice", "asciiSlice", "latin1Slice", "base64Slice", "utf16leSlice", "swap", "n", "m", "swap16", "swap32", "swap64", "apply", "toLocaleString", "equals", "inspect", "str", "max", "replace", "trim", "target", "thisStart", "thisEnd", "thisCopy", "targetCopy", "bidirectionalIndexOf", "val", "dir", "arrayIndexOf", "indexOf", "lastIndexOf", "indexSize", "arrLength", "valLength", "read", "readUInt16BE", "foundIndex", "found", "j", "includes", "hexWrite", "Number", "remaining", "strLen", "parsed", "parseInt", "substr", "utf8Write", "blitBuffer", "asciiWrite", "asciiToBytes", "base64Write", "ucs2Write", "utf16leToBytes", "isFinite", "Error", "toJSON", "_arr", "fromByteArray", "res", "firstByte", "codePoint", "bytesPerSequence", "secondByte", "thirdByte", "fourthByte", "tempCodePoint", "push", "decodeCodePointsArray", "MAX_ARGUMENTS_LENGTH", "codePoints", "fromCharCode", "ret", "out", "hexSliceLookupTable", "bytes", "newBuf", "subarray", "checkOffset", "ext", "readUintLE", "readUIntLE", "noAssert", "mul", "readUintBE", "readUIntBE", "readUint8", "readUInt8", "readUint16LE", "readUInt16LE", "readUint16BE", "readUint32LE", "readUInt32LE", "readUint32BE", "readUInt32BE", "readIntLE", "pow", "readIntBE", "readInt8", "readInt16LE", "readInt16BE", "readInt32LE", "readInt32BE", "readFloatLE", "readFloatBE", "readDoubleLE", "readDoubleBE", "checkInt", "writeUintLE", "writeUIntLE", "maxBytes", "writeUintBE", "writeUIntBE", "writeUint8", "writeUInt8", "writeUint16LE", "writeUInt16LE", "writeUint16BE", "writeUInt16BE", "writeUint32LE", "writeUInt32LE", "writeUint32BE", "writeUInt32BE", "writeIntLE", "limit", "sub", "writeIntBE", "writeInt8", "writeInt16LE", "writeInt16BE", "writeInt32LE", "writeInt32BE", "checkIEEE754", "writeFloat", "littleEndian", "writeFloatLE", "writeFloatBE", "writeDouble", "writeDoubleLE", "writeDoubleBE", "targetStart", "copyWithin", "code", "charCodeAt", "INVALID_BASE64_RE", "base64clean", "split", "units", "Infinity", "leadSurrogate", "byteArray", "c", "hi", "lo", "toByteArray", "src", "dst", "_instanceof1", "constructor", "name", "alphabet", "table", "i16", "require_punycode", "__commonJSMin", "exports", "module", "String", "maxInt", "base", "tMin", "tMax", "skew", "damp", "initialBias", "initialN", "delimiter", "regexPunycode", "regexNonASCII", "regexSeparators", "errors", "baseMinusTMin", "floor", "Math", "stringFromCharCode", "fromCharCode", "error", "type", "RangeError", "map", "array", "fn", "result", "length", "mapDomain", "string", "parts", "split", "replace", "labels", "encoded", "join", "ucs2decode", "output", "counter", "value", "charCodeAt", "extra", "push", "ucs2encode", "fromCodePoint", "_to_consumable_array", "basicToDigit", "codePoint", "digitToBasic", "digit", "flag", "adapt", "delta", "numPoints", "firstTime", "k", "decode", "input", "inputLength", "i", "n", "bias", "basic", "lastIndexOf", "j", "index", "oldi", "w", "t", "baseMinusT", "out", "splice", "encode", "_iteratorNormalCompletion", "_didIteratorError", "_iteratorError", "_iterator", "_step", "currentValue", "err", "basicLength", "handledCPCount", "m", "_iteratorNormalCompletion1", "_didIteratorError1", "_iteratorError1", "_iterator1", "_step1", "handledCPCountPlusOne", "_iteratorNormalCompletion2", "_didIteratorError2", "_iteratorError2", "_iterator2", "_step2", "q", "qMinusT", "toUnicode", "test", "slice", "toLowerCase", "toASCII", "punycode", "require_infra", "__commonJSMin", "exports", "module", "isASCIIDigit", "c", "isASCIIAlpha", "isASCIIAlphanumeric", "isASCIIHex", "require_urlencoded", "__commonJSMin", "exports", "module", "Buffer", "require", "isASCIIHex", "strictlySplitByteSequence", "buf", "cp", "list", "last", "i", "indexOf", "push", "slice", "length", "replaceByteInByteSequence", "from", "to", "percentEncode", "c", "hex", "toString", "toUpperCase", "percentDecode", "input", "output", "alloc", "byteLength", "ptr", "parseInt", "parseUrlencoded", "sequences", "_iteratorNormalCompletion", "_didIteratorError", "_iteratorError", "_iterator", "_step", "bytes", "name", "value", "indexOfEqual", "err", "serializeUrlencodedByte", "byte", "String", "fromCodePoint", "serializeUrlencoded", "tuples", "encodingOverride", "undefined", "encoding", "entries", "_step_value", "_sliced_to_array", "tuple", "require_url_state_machine", "__commonJSMin", "exports", "module", "Buffer", "require", "punycode", "infra", "percentEncode", "percentDecode", "specialSchemes", "ftp", "file", "http", "https", "ws", "wss", "failure", "Symbol", "countSymbols", "str", "ucs2", "decode", "length", "at", "input", "idx", "c", "isNaN", "undefined", "String", "fromCodePoint", "isSingleDot", "buffer", "toLowerCase", "isDoubleDot", "isWindowsDriveLetterCodePoints", "cp1", "cp2", "isASCIIAlpha", "isWindowsDriveLetterString", "string", "codePointAt", "isNormalizedWindowsDriveLetterString", "containsForbiddenHostCodePoint", "search", "containsForbiddenHostCodePointExcludingPercent", "isSpecialScheme", "scheme", "isSpecial", "url", "isNotSpecial", "defaultPort", "utf8PercentEncode", "buf", "from", "i", "isC0ControlPercentEncode", "extraUserinfoPercentEncodeSet", "Set", "isUserinfoPercentEncode", "isPathPercentEncode", "has", "extraFragmentPercentEncodeSet", "isFragmentPercentEncode", "extraPathPercentEncodeSet", "percentEncodeChar", "encodeSetPredicate", "cStr", "parseIPv4Number", "R", "charAt", "substring", "regex", "test", "parseInt", "parseIPv4", "parts", "split", "pop", "numbers", "_iteratorNormalCompletion", "_didIteratorError", "_iteratorError", "_iterator", "_step", "part", "n", "push", "err", "Math", "pow", "ipv4", "counter", "_iteratorNormalCompletion1", "_didIteratorError1", "_iteratorError1", "_iterator1", "_step1", "serializeIPv4", "address", "output", "floor", "parseIPv6", "pieceIndex", "compress", "pointer", "value", "isASCIIHex", "numbersSeen", "ipv4Piece", "isASCIIDigit", "number", "swaps", "temp", "serializeIPv6", "seqResult", "findLongestZeroSequence", "ignore0", "separator", "toString", "parseHost", "isNotSpecialArg", "parseOpaqueHost", "domain", "asciiDomain", "domainToASCII", "ipv4Host", "decoded", "arr", "maxIdx", "maxLen", "currStart", "currLen", "len", "serializeHost", "host", "_instanceof1", "Array", "result", "trimControlChars", "replace", "trimTabAndNewline", "shortenPath", "path", "isNormalizedWindowsDriveLetter", "includesCredentials", "username", "password", "cannotHaveAUsernamePasswordPort", "cannotBeABaseURL", "URLStateMachine", "base", "encodingOverride", "stateOverride", "parseError", "port", "query", "fragment", "res", "state", "atFlag", "arrFlag", "passwordTokenSeenFlag", "ret", "prototype", "isASCIIAlphanumeric", "slice", "codePoint", "encodedCodePoints", "fileOtherwiseCodePoints", "startsWithWindowsDriveLetter", "shift", "serializeURL", "excludeFragment", "serializeOrigin", "tuple", "serializeURLOrigin", "parseURL", "e", "basicURLParse", "options", "usm", "baseURL", "setTheUsername", "setThePassword", "serializeInteger", "integer", "require_URLSearchParams_impl", "__commonJSMin", "exports", "urlencoded", "require", "stableSortBy", "arr", "compare", "map", "item", "index", "sort", "a", "b", "param", "implementation", "URLSearchParamsImpl", "globalObject", "constructorArgs", "doNotStripQMark", "_param_doNotStripQMark", "init", "_list", "_url", "slice", "Array", "isArray", "_iteratorNormalCompletion", "_didIteratorError", "_iteratorError", "_iterator", "_step", "pair", "length", "TypeError", "push", "err", "_type_of", "Object", "getPrototypeOf", "_iteratorNormalCompletion1", "_didIteratorError1", "_iteratorError1", "_iterator1", "keys", "_step1", "name", "value", "parseUrlencoded", "_updateSteps", "query", "serializeUrlencoded", "append", "delete", "i", "splice", "get", "tuple", "getAll", "output", "has", "set", "found", "Symbol", "iterator", "toString", "require_URLSearchParams", "__commonJSMin", "exports", "module", "conversions", "require", "utils", "impl", "implSymbol", "ctorRegistry", "ctorRegistrySymbol", "IteratorPrototype", "Object", "create", "_define_property", "next", "value", "internal", "iterInternalSymbol", "target", "kind", "index", "values", "Array", "from", "len", "length", "undefined", "done", "pair", "map", "tryWrapperForImpl", "key", "result", "writable", "enumerable", "configurable", "Symbol", "toStringTag", "iface", "_mixedIntoPredicates", "is", "obj", "hasOwn", "_instanceof1", "Impl", "implementation", "_iteratorNormalCompletion", "_didIteratorError", "_iteratorError", "_iterator", "_step", "isMixedInto", "err", "isImpl", "wrapper", "wrapperForImpl", "convert", "_ref", "_ref_context", "context", "implForWrapper", "TypeError", "createDefaultIterator", "iterator", "defineProperty", "globalObject", "constructorArgs", "privateData", "Error", "ctor", "prototype", "setup", "createImpl", "_internalSetup", "wrapperSymbol", "init", "install", "URLSearchParams", "args", "curArg", "arguments", "isObject", "V", "tmp", "nextItem", "_iteratorNormalCompletion1", "_didIteratorError1", "_iteratorError1", "_iterator1", "_step1", "push", "_iteratorNormalCompletion2", "_didIteratorError2", "_iteratorError2", "_iterator2", "Reflect", "ownKeys", "_step2", "desc", "getOwnPropertyDescriptor", "typedKey", "typedValue", "constructor", "append", "name", "_this_impl", "_to_consumable_array", "delete", "get", "getAll", "has", "set", "sort", "toString", "keys", "entries", "forEach", "callback", "thisArg", "pairs", "i", "call", "_obj", "defineProperties", "require_URL_impl", "__commonJSMin", "exports", "usm", "require", "urlencoded", "URLSearchParams", "implementation", "URLImpl", "globalObject", "constructorArgs", "url", "base", "parsedBase", "undefined", "basicURLParse", "TypeError", "parsedURL", "baseURL", "query", "_url", "_query", "createImpl", "doNotStripQMark", "href", "serializeURL", "v", "_list", "splice", "parseUrlencoded", "origin", "serializeURLOrigin", "protocol", "scheme", "stateOverride", "username", "cannotHaveAUsernamePasswordPort", "setTheUsername", "password", "setThePassword", "host", "port", "serializeHost", "serializeInteger", "cannotBeABaseURL", "hostname", "pathname", "path", "length", "join", "search", "input", "substring", "searchParams", "hash", "fragment", "toJSON", "require_URL", "__commonJSMin", "exports", "module", "conversions", "require", "utils", "impl", "implSymbol", "ctorRegistry", "ctorRegistrySymbol", "iface", "_mixedIntoPredicates", "is", "obj", "hasOwn", "_instanceof1", "Impl", "implementation", "_iteratorNormalCompletion", "_didIteratorError", "_iteratorError", "_iterator", "_step", "isMixedInto", "err", "isImpl", "wrapper", "wrapperForImpl", "convert", "_ref", "_ref_context", "context", "implForWrapper", "TypeError", "create", "globalObject", "constructorArgs", "privateData", "undefined", "Error", "ctor", "Object", "prototype", "setup", "createImpl", "_internalSetup", "defineProperty", "value", "configurable", "wrapperSymbol", "init", "install", "URL", "url", "arguments", "length", "args", "curArg", "push", "constructor", "toJSON", "href", "V", "toString", "origin", "protocol", "username", "password", "host", "hostname", "port", "pathname", "search", "searchParams", "getSameObject", "tryWrapperForImpl", "_this", "hash", "defineProperties", "_define_property", "enumerable", "Symbol", "toStringTag", "writable", "require_webidl2js_wrapper", "__commonJSMin", "exports", "URL", "require", "URLSearchParams", "require_whatwg_url_without_unicode", "__commonJSMin", "exports", "require", "URL", "URLSearchParams", "urlStateMachine", "urlEncoded", "sharedGlobalObject", "install", "parseURL", "basicURLParse", "serializeURL", "serializeHost", "serializeInteger", "serializeURLOrigin", "setTheUsername", "setThePassword", "cannotHaveAUsernamePasswordPort", "percentDecode", "URL_exports", "__export", "URL", "import_react_native", "import_whatwg_url_without_unicode", "BLOB_URL_PREFIX", "BlobModule", "init_URL", "__esmMin", "NativeModules", "BLOB_URI_SCHEME", "BLOB_URI_HOST", "whatwgUrl", "createObjectURL", "blob", "Error", "data", "blobId", "offset", "size", "revokeObjectURL", "url", "URLSearchParams_exports", "__export", "import_whatwg_url_without_unicode", "init_URLSearchParams", "__esmMin", "setupURLPolyfill", "global", "REACT_NATIVE_URL_POLYFILL", "version", "name", "polyfillGlobal", "require", "URL", "URLSearchParams", "import_PolyfillFunctions", "init_react_native_url_polyfill", "__esmMin", "init_ios10Fix", "init_package", "init_URL", "init_URLSearchParams", "init_url", "__esmMin", "init_react_native_url_polyfill", "setup", "setupSymbolAsyncIterator", "setupURLPolyfill", "init_rn_polyfills", "__esmMin", "init_symbol_asynciterator", "init_url", "import_react_native", "init_dev_entrypoint", "__esmMin", "init_rn_polyfills", "setup", "import_react_native", "isBlurNativeModuleSupported", "init_constants", "__esmMin", "Platform", "OS", "require_blur", "__commonJSMin", "exports", "module", "blur_exports", "init_blur", "__esmMin", "__reExport", "ReactNativeBlurModule", "init_ReactNativeBlurModule", "__esmMin", "init_constants", "isBlurNativeModuleSupported", "require", "BlurView", "_param", "blurType", "blurAmount", "_param_blurAmount", "reducedTransparencyFallbackColor", "vibrancyEffect", "_param_vibrancyEffect", "viewProps", "isBlurNativeModuleSupported", "ReactNativeBlurModule", "_jsx", "View", "Component", "VibrancyView", "import_react_native", "init_ReactNativeBlurModule", "init_constants", "isSupported", "init_blur", "__esmMin", "init_BlurView", "import_react", "import_react_native", "import_react_native", "init_useKeyboardAnimatedHeight", "init_keyboard", "__esmMin", "init_KeyboardAboveView", "import_react", "IOContext", "IOContext_default", "init_IOContext", "__esmMin", "createContext", "manager", "_assert_this_initialized", "self", "ReferenceError", "init_assert_this_initialized", "__esmMin", "_set_prototype_of", "o", "p", "Object", "setPrototypeOf", "__proto__", "init_set_prototype_of", "__esmMin", "_inherits", "subClass", "superClass", "TypeError", "prototype", "Object", "create", "constructor", "value", "writable", "configurable", "_set_prototype_of", "init_inherits", "__esmMin", "init_set_prototype_of", "_get_prototype_of", "o", "Object", "setPrototypeOf", "getPrototypeOf", "__proto__", "init_get_prototype_of", "__esmMin", "_is_native_reflect_construct", "result", "Boolean", "prototype", "valueOf", "call", "Reflect", "construct", "_", "init_is_native_reflect_construct", "__esmMin", "_possible_constructor_return", "self", "call", "_type_of", "_assert_this_initialized", "init_possible_constructor_return", "__esmMin", "init_assert_this_initialized", "init_type_of", "_create_super", "Derived", "hasNativeReflectConstruct", "_is_native_reflect_construct", "_createSuperInternal", "Super", "_get_prototype_of", "result", "NewTarget", "constructor", "Reflect", "construct", "arguments", "apply", "_possible_constructor_return", "init_create_super", "__esmMin", "init_get_prototype_of", "init_is_native_reflect_construct", "init_possible_constructor_return", "_construct", "Parent", "args", "Class", "_is_native_reflect_construct", "Reflect", "construct", "a", "push", "apply", "Constructor", "Function", "bind", "instance", "_set_prototype_of", "prototype", "arguments", "init_construct", "__esmMin", "init_is_native_reflect_construct", "init_set_prototype_of", "_is_native_function", "fn", "Function", "toString", "call", "indexOf", "init_is_native_function", "__esmMin", "_wrap_native_super", "Class", "_cache", "Map", "undefined", "_is_native_function", "TypeError", "has", "get", "set", "Wrapper", "_construct", "arguments", "_get_prototype_of", "constructor", "prototype", "Object", "create", "value", "enumerable", "writable", "configurable", "_set_prototype_of", "init_wrap_native_super", "__esmMin", "init_construct", "init_get_prototype_of", "init_is_native_function", "init_set_prototype_of", "debounce", "func", "debounceMs", "_ref", "signal", "edges", "pendingThis", "undefined", "pendingArgs", "leading", "includes", "trailing", "invoke", "apply", "onTimerEnd", "cancel", "timeoutId", "schedule", "clearTimeout", "setTimeout", "cancelTimer", "flush", "debounced", "_len", "args", "_key", "aborted", "isFirstCall", "addEventListener", "once", "init_debounce", "__esmMin", "throttle", "func", "throttleMs", "_ref", "signal", "edges", "_ref_edges", "pendingAt", "debounced", "debounce", "throttled", "_len", "args", "_key", "Date", "now", "cancel", "_to_consumable_array", "flush", "init_debounce", "init_dist", "__esmMin", "init_throttle", "defaultRootMargin", "IntersectionObserver", "IntersectionObserver_default", "init_dist", "left", "right", "top", "bottom", "callback", "options", "measureTarget", "target", "rootNode", "_this", "root", "node", "measureLayout", "x", "y", "width", "height", "layout", "handleScroll", "handleLayout", "throttle", "index", "targets", "length", "edges", "_this_options", "rootMargin", "_this_options_root", "horizontal", "current", "contentOffset", "contentSize", "layoutMeasurement", "contentOffsetWithLayout", "changedTargets", "targetLayout", "previousIntersectionRatio", "intersectionRatio", "isIntersecting", "visibleTargetMinX", "Math", "max", "visibleTargetMaxX", "min", "visibleHeight", "visibleTargetMinY", "visibleTargetMaxY", "floor", "inView", "push", "onLayout", "onScroll", "observe", "indexOf", "unobserve", "undefined", "splice", "IOManager", "IOManager_default", "init_IntersectionObserver", "options", "instanceMap", "Map", "handleChange", "entries", "index", "length", "entry", "target", "isIntersecting", "intersectionRatio", "instance", "_this", "get", "callback", "io", "IntersectionObserver", "observerId", "observe", "element", "existInstance", "observer", "set", "unobserve", "has", "delete", "withIO", "BaseComponent", "methods", "IOScrollableComponent", "PureComponent", "props", "handleContentSizeChange", "width", "height", "contentSize", "_this", "root", "current", "onLayout", "onContentSizeChange", "handleLayout", "event", "layout", "nativeEvent", "layoutMeasurement", "handleScroll", "onScroll", "self", "scroller", "createRef", "node", "horizontal", "Boolean", "contentInset", "top", "right", "bottom", "left", "contentOffset", "x", "y", "zoomScale", "manager", "IOManager", "rootMargin", "contextValue", "componentDidMount", "findNodeHandle", "forEach", "method", "args", "_this_scroller_current_method", "_this_scroller_current_method1", "_this_scroller_current", "_this1", "_to_consumable_array", "render", "_jsx", "IOContext", "Provider", "value", "scrollEventThrottle", "ref", "import_react", "import_react_native", "withIO_default", "init_IOContext", "init_IOManager", "import_react_native", "IOFlatList", "init_IOFlatList", "__esmMin", "init_withIO", "withIO", "FlatList", "import_react_native", "IOScrollView", "init_IOScrollView", "__esmMin", "init_withIO", "withIO", "ScrollView", "import_react", "import_react_native", "InView", "init_IOContext", "PureComponent", "props", "context", "undefined", "mounted", "handleChange", "inView", "areaThreshold", "_this", "_this_props", "triggerOnce", "onChange", "_this_context", "manager", "_this_context1", "unobserve", "element", "handleRef", "ref", "view", "handleLayout", "event", "layout", "nativeEvent", "width", "height", "onLayout", "measure", "args", "_this_view", "_to_consumable_array", "measureInWindow", "measureLayout", "setNativeProps", "focus", "blur", "intersectionRatio", "x", "y", "componentDidMount", "instance", "observe", "componentWillUnmount", "render", "as", "children", "ViewComponent", "View", "_jsx", "contextType", "IOContext", "defaultProps", "init_intersection_observer", "__esmMin", "init_IOContext", "init_IOFlatList", "init_IOScrollView", "init_InView", "init_noop", "__esmMin", "import_react", "import_react", "import_react_native", "IOProviderMissingError", "init_intersection_observer", "init_noop", "init_usePreservedCallback", "init_visibility", "Error1", "message", "Error", "init_impression_area", "__esmMin", "init_ImpressionArea", "import_react_native", "init_ColorPreferenceContext", "init_scroll_view_inertial_background", "__esmMin", "init_ScrollViewInertialBackground", "import_react", "init_useWaitForReturnNavigator", "__esmMin", "init_visibility", "init_react", "__esmMin", "init_useWaitForReturnNavigator", "require_react_native_video", "__commonJSMin", "exports", "module", "react_native_video_exports", "__export", "import_react_native_video", "init_react_native_video", "__esmMin", "__reExport", "getVideoInstance", "require", "default", "e", "ForwardedComponent", "import_react", "import_react_native", "FallbackComponent", "Video", "isAvailable", "Component", "render", "_jsx", "View", "ref", "props", "innerRef", "forwardRef", "import_react", "import_react_native", "AnimatedRNVideo", "Video", "init_Video", "__esmMin", "init_object_spread", "init_instance", "init_visibility", "Animated", "createAnimatedComponent", "RNVideo", "forwardRef", "props", "ref", "useState", "muted", "paused", "isFocused", "setIsFocused", "visible", "useVisibility", "useMemo", "onAudioFocusChanged", "disableFocus", "mixWithOthers", "undefined", "_jsx", "progressUpdateInterval", "Platform", "OS", "playWhenInactive", "param", "hasAudioFocus", "enableDecoderFallback", "isAvailable", "init_video", "__esmMin", "init_Video", "serializeError", "error", "JSON", "stringify", "_", "value", "_instanceof1", "Error", "name", "message", "stack", "__isError", "methodHandler", "param", "args", "eventId", "functionName", "handlerMap", "injectJavaScript", "func", "_async_to_generator", "result", "_to_consumable_array", "_state", "console", "then", "catch", "serializedError", "useBridgeHandler", "onMessage", "constantHandlerMap", "eventListenerMap", "originalInjectedJavaScript", "injectedJavaScript", "ref", "useRef", "useMemo", "Object", "entries", "reduce", "acc", "key", "join", "createHandleOnEvent", "response", "current", "createHandleOnError", "$onMessage", "useCallback", "e", "data", "handleOnEvent", "handleOnError", "remove", "parse", "nativeEvent", "_type_of", "type", "includes", "onEvent", "onError", "options", "globalEventListenerMap", "set", "get", "delete", "import_react", "Map", "init_bridge_handler", "__esmMin", "init_useBridgeHandler", "BedrockEventDefinition", "BedrockEvent", "defs", "definitions", "Map", "subscriptionGroups", "_iteratorNormalCompletion", "_didIteratorError", "_iteratorError", "_iterator", "_step", "def", "set", "name", "err", "_getKey", "eventName", "options", "JSON", "stringify", "addEventListener", "listener", "get", "Error", "String", "key", "group", "callbacks", "aggregatedOnEvent", "response", "cb", "onEvent", "aggregatedOnError", "error", "onError", "push", "grp", "_this", "filter", "length", "remove", "delete", "init_src", "__esmMin", "init_global", "init_bedrock_app", "init_dev_entrypoint", "init_natives", "init_visibility", "init_use_back_event", "init_blur", "init_keyboard", "init_intersection_observer", "init_impression_area", "init_scroll_view_inertial_background", "init_react", "init_video", "init_BedrockRoute", "init_bridge_handler", "init_bedrock_event", "require_react_native_webview", "__commonJSMin", "exports", "module", "react_native_webview_exports", "__export", "import_react_native_webview", "init_react_native_webview", "__esmMin", "__reExport", "bridges_exports", "__export", "closeView", "generateHapticFeedback", "getNetworkStatus", "setScreenAwakeMode", "setSecureScreen", "share", "init_bridges", "__esmMin", "init_closeView", "init_generateHapticFeedback", "init_share", "init_setSecureScreen", "init_setScreenAwakeMode", "init_getNetworkStatus", "constants_exports", "__export", "getDeviceId", "getLocale", "getSchemeUri", "init_constants", "__esmMin", "init_getLocale", "init_getSchemeUri", "init_getDeviceId", "getPermission", "permission", "AppsInTossModule", "openPermissionDialog", "requestPermission", "_async_to_generator", "permissionStatus", "_state", "startUpdateLocation", "eventParams", "appsInTossEvent", "addEventListener", "setClipboardText", "text", "name", "access", "Error", "getClipboardText", "fetchContacts", "_", "param", "size", "offset", "query", "contacts", "result", "nextOffset", "done", "fetchAlbumPhotos", "options", "albumPhotos", "_object_spread_props", "_object_spread", "maxCount", "DEFAULT_MAX_COUNT", "maxWidth", "DEFAULT_MAX_WIDTH", "getCurrentLocation", "position", "openCamera", "photo", "base64", "appLogin", "WebView", "_param", "localhostPort", "_param_localhostPort", "onMessage", "props", "uri", "useMemo", "getWebBundleURL", "url", "handler", "useBridgeHandler", "eventListenerMap", "native_event_emitter_exports", "constantHandlerMap", "constantBridges", "handlerMap", "bridges", "native_modules_exports", "jsx", "OriginalWebView", "ref", "source", "sharedCookiesEnabled", "thirdPartyCookiesEnabled", "injectedJavaScript", "injectedJavaScriptBeforeContentLoaded", "import_react_native", "import_react", "import_jsx_runtime", "__defProp", "__export", "AppsInTossModuleInstance", "nativeEventEmitter", "UpdateLocationEvent", "init_src", "init_react_native_webview", "init_bridges", "init_constants", "Object", "defineProperty", "target", "all", "get", "enumerable", "NativeModules", "NativeEventEmitter", "BedrockEventDefinition", "subscriptionCount", "remove", "stopUpdateLocation", "listener", "onEvent", "onError", "then", "catch", "subscription", "addListener", "_this", "BedrockEvent", "Index", "_jsx", "View", "style", "flex", "WebView", "localhostPort", "Ait", "webPort", "import_react_native", "init_dist", "__exports", "__export", "Index", "init__", "__esmMin", "init_pages", "Symbol", "asyncIterator", "for", "init_src", "files", "Map", "set", "require", "context", "id", "get", "keys", "Array", "from", "AppContainer", "param", "children", "_jsx", "_Fragment", "app_default", "Bedrock", "registerApp", "appName", "Ait", "context"]
|
|
7
|
-
}
|