Socket
Socket
Sign inDemoInstall

@tamagui/web

Package Overview
Dependencies
Maintainers
2
Versions
799
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@tamagui/web - npm Package Compare versions

Comparing version 1.20.5 to 1.20.6

84

dist/cjs/createComponent.js

@@ -97,2 +97,3 @@ "use strict";

let hasSetupBaseViews = false;
const numRenderedOfType = {};
function createComponent(configIn, ParentComponent) {

@@ -144,3 +145,5 @@ const staticConfig = (() => {

const useAnimations = animationsConfig == null ? void 0 : animationsConfig.useAnimations;
const isAnimated = (() => {
const willBeAnimated = (() => {
if (import_constants.isServer)
return false;
const next = !!(!staticConfig.isHOC && useAnimations && (props.animation || props.style && hasAnimatedStyleValue(props.style)));

@@ -152,2 +155,26 @@ if (next && !stateRef.current.hasAnimated) {

})();
const usePresence = animationsConfig == null ? void 0 : animationsConfig.usePresence;
const presence = !import_constants.isRSC && willBeAnimated && usePresence ? usePresence() : null;
const hasEnterStyle = !!props.enterStyle;
const needsMount = Boolean((import_constants.isWeb ? import_constants.isClient : true) && willBeAnimated);
const states = (0, import_useServerHooks.useServerState)(
needsMount ? defaultComponentState : defaultComponentStateMounted
);
const state = propsIn.forceStyle ? { ...states[0], [propsIn.forceStyle]: true } : states[0];
const setState = states[1];
const setStateShallow = (0, import_useShallowSetState.useShallowSetState)(setState, debugProp, componentName);
let hasHydrated = false;
numRenderedOfType[componentName] ?? (numRenderedOfType[componentName] = 0);
if (willBeAnimated) {
if (++numRenderedOfType[componentName] > (process.env.TAMAGUI_ANIMATED_PRESENCE_HYDRATION_CUTOFF ? +process.env.TAMAGUI_ANIMATED_PRESENCE_HYDRATION_CUTOFF : 5)) {
hasHydrated = true;
}
}
let isAnimated = willBeAnimated;
if (presence && hasHydrated) {
} else {
if (isAnimated && (import_constants.isServer || state.unmounted === true)) {
isAnimated = false;
}
}
const componentClassName = props.asChild ? "" : props.componentName ? `is_${props.componentName}` : defaultComponentClassName;

@@ -165,14 +192,2 @@ const hasTextAncestor = !!(import_constants.isWeb && isText ? (0, import_react.useContext)(import_TextAncestorContext.TextAncestorContext) : false);

const avoidClassesWhileAnimating = animationsConfig == null ? void 0 : animationsConfig.isReactNative;
const hasEnterStyle = !!props.enterStyle;
const needsMount = Boolean(
(import_constants.isWeb ? import_constants.isClient : true) && (hasEnterStyle || props.animation)
);
const states = (0, import_useServerHooks.useServerState)(
needsMount ? defaultComponentState : defaultComponentStateMounted
);
const state = propsIn.forceStyle ? { ...states[0], [propsIn.forceStyle]: true } : states[0];
const setState = states[1];
const setStateShallow = (0, import_useShallowSetState.useShallowSetState)(setState, debugProp, componentName);
const usePresence = animationsConfig == null ? void 0 : animationsConfig.usePresence;
const presence = !import_constants.isRSC && isAnimated && usePresence ? usePresence() : null;
if (isAnimated && presence) {

@@ -191,6 +206,6 @@ const presenceState = presence[2];

const isReactNative = Boolean(staticConfig.isReactNative || isAnimatedReactNative);
const shouldAvoidClasses = !import_constants.isWeb || !!(props.animation && avoidClassesWhileAnimating) || !staticConfig.acceptsClassName;
const shouldAvoidClasses = !import_constants.isWeb || !!(isAnimated && avoidClassesWhileAnimating) || !staticConfig.acceptsClassName;
const shouldForcePseudo = !!propsIn.forceStyle;
const noClassNames = shouldAvoidClasses || shouldForcePseudo;
const disableTheme = props["data-disable-theme"] && !isAnimated || staticConfig.isHOC;
const disableTheme = props["data-disable-theme"] && !willBeAnimated || staticConfig.isHOC;
const themeStateProps = {

@@ -228,3 +243,6 @@ name: props.theme,

};
console.group(`%c ${banner}${parentsLog(staticConfig)}`, "background: yellow;");
console.group(
`%c ${banner}${parentsLog(staticConfig)} (unmounted: ${state.unmounted})`,
"background: yellow;"
);
if (!import_constants.isServer) {

@@ -239,2 +257,3 @@ console.log({

});
console.warn(themeState.name);
}

@@ -251,5 +270,4 @@ }

noClassNames,
dynamicStylesInline: noClassNames,
hasTextAncestor,
resolveVariablesAs: "auto",
resolveVariablesAs: isAnimated ? "value" : "auto",
isExiting

@@ -299,3 +317,3 @@ },

let animationStyles;
if (!import_constants.isRSC && isAnimated && useAnimations && !staticConfig.isHOC) {
if (!import_constants.isRSC && willBeAnimated && useAnimations && !staticConfig.isHOC) {
const animations = useAnimations({

@@ -306,2 +324,3 @@ props: propsWithAnimation,

state,
theme: themeState.theme,
pseudos: pseudos || null,

@@ -312,4 +331,6 @@ onDidAnimate: props.onDidAnimate,

});
if (animations) {
animationStyles = animations.style;
if (isAnimated) {
if (animations) {
animationStyles = animations.style;
}
}

@@ -347,3 +368,3 @@ }

}
if (process.env.TAMAGUI_TARGET === "web" && !isReactNative && !asChild) {
if (process.env.TAMAGUI_TARGET === "web" && !isReactNative && !willBeAnimated && !asChild) {
viewProps = (_g = (_f = import_setupHooks.hooks).usePropsTransform) == null ? void 0 : _g.call(_f, elementType, nonTamaguiProps, hostRef);

@@ -371,21 +392,12 @@ } else {

}, [setStateShallow]);
if (import_constants.isWeb) {
(0, import_react.useEffect)(() => {
const shouldSetMounted = needsMount && state.unmounted;
(0, import_constants.useIsomorphicLayoutEffect)(() => {
if (!shouldSetMounted) {
return () => {
mouseUps.delete(unPress);
};
}, []);
}
const shouldSetMounted = needsMount && state.unmounted;
(0, import_react.useEffect)(() => {
if (!shouldSetMounted)
return;
if (state.unmounted === true && needsMount) {
setStateShallow({
unmounted: false
});
return;
}
const unmounted = state.unmounted === true && hasEnterStyle ? "should-enter" : false;
setStateShallow({
unmounted: false
unmounted
});

@@ -392,0 +404,0 @@ }, [shouldSetMounted, state.unmounted]);

@@ -23,4 +23,3 @@ "use strict";

getFontFamilyFromNameOrVariable: () => getFontFamilyFromNameOrVariable,
getPropMappedFontFamily: () => getPropMappedFontFamily,
getReturnVariablesAs: () => getReturnVariablesAs
getPropMappedFontFamily: () => getPropMappedFontFamily
});

@@ -37,5 +36,2 @@ module.exports = __toCommonJS(createPropMapper_exports);

var import_mergeProps = require("./mergeProps.js");
const getReturnVariablesAs = (props, state) => {
return !!props.animation || state.resolveVariablesAs === "value" ? "value" : "auto";
};
const createPropMapper = (staticConfig) => {

@@ -53,3 +49,3 @@ const variants = staticConfig.variants || {};

const props = state.fallbackProps || propsIn;
const returnVariablesAs = getReturnVariablesAs(props, state);
const returnVariablesAs = state.resolveVariablesAs === "value" ? "value" : "auto";
const fontFamily = props[conf.inverseShorthands.fontFamily] || props.fontFamily || defaultProps.fontFamily || propsIn.fontFamily || "$body";

@@ -118,8 +114,6 @@ if (process.env.NODE_ENV === "development" && fontFamily && fontFamily[0] === "$" && !(fontFamily in conf.fontsParsed)) {

if (process.env.NODE_ENV === "development") {
if ((_a = staticConfig.validStyles) == null ? void 0 : _a[key]) {
return null;
}
if (typeof value === "boolean") {
return null;
}
if ((_a = staticConfig.validStyles) == null ? void 0 : _a[key])
return;
if (typeof value === "boolean")
return;
const name = staticConfig.componentName || "[UnnamedComponent]";

@@ -439,5 +433,4 @@ console.warn(

getFontFamilyFromNameOrVariable,
getPropMappedFontFamily,
getReturnVariablesAs
getPropMappedFontFamily
});
//# sourceMappingURL=createPropMapper.js.map

@@ -407,2 +407,13 @@ "use strict";

);
if (process.env.NODE_ENV === "development" && debug === "verbose") {
console.groupCollapsed(" \u{1F539} styles", keyInit, valInit);
console.log({
expanded,
state,
isVariant,
shouldPassProp,
isHOCShouldPassThrough,
parentHasVariant
});
}
if (!fontFamily) {

@@ -409,0 +420,0 @@ fontFamily = (0, import_createPropMapper.getPropMappedFontFamily)(expanded);

@@ -28,18 +28,12 @@ "use strict";

(next) => {
const shouldTransition = Object.keys(next).every(
(k) => transitionKeys.has(k)
);
const run = shouldTransition ? import_react.startTransition : (_) => _();
run(() => {
setter((prev) => {
for (const key in next) {
if (prev[key] !== next[key]) {
if (process.env.NODE_ENV === "development" && debug === "verbose") {
console.log(` \u25B2 setState ${debugName}`, next);
}
return { ...prev, ...next };
setter((prev) => {
for (const key in next) {
if (prev[key] !== next[key]) {
if (process.env.NODE_ENV === "development" && debug === "verbose") {
console.warn(` \u25B2 setState ${debugName}`, next);
}
return { ...prev, ...next };
}
return prev;
});
}
return prev;
});

@@ -50,8 +44,2 @@ },

}
const transitionKeys = /* @__PURE__ */ new Set([
"press",
"pressIn",
"focus",
"unmounted"
]);
// Annotate the CommonJS export names for ESM import in node:

@@ -58,0 +46,0 @@ 0 && (module.exports = {

import { jsx } from "react/jsx-runtime";
import { useComposedRefs } from "@tamagui/compose-refs";
import { isClient, isRSC, isServer, isWeb } from "@tamagui/constants";
import {
isClient,
isRSC,
isServer,
isWeb,
useIsomorphicLayoutEffect
} from "@tamagui/constants";
import { stylePropsView, validPseudoKeys, validStyles } from "@tamagui/helpers";

@@ -13,3 +19,2 @@ import React, {

useContext,
useEffect,
useId,

@@ -71,2 +76,3 @@ useRef

let hasSetupBaseViews = false;
const numRenderedOfType = {};
function createComponent(configIn, ParentComponent) {

@@ -118,3 +124,5 @@ const staticConfig = (() => {

const useAnimations = animationsConfig == null ? void 0 : animationsConfig.useAnimations;
const isAnimated = (() => {
const willBeAnimated = (() => {
if (isServer)
return false;
const next = !!(!staticConfig.isHOC && useAnimations && (props.animation || props.style && hasAnimatedStyleValue(props.style)));

@@ -126,2 +134,26 @@ if (next && !stateRef.current.hasAnimated) {

})();
const usePresence = animationsConfig == null ? void 0 : animationsConfig.usePresence;
const presence = !isRSC && willBeAnimated && usePresence ? usePresence() : null;
const hasEnterStyle = !!props.enterStyle;
const needsMount = Boolean((isWeb ? isClient : true) && willBeAnimated);
const states = useServerState(
needsMount ? defaultComponentState : defaultComponentStateMounted
);
const state = propsIn.forceStyle ? { ...states[0], [propsIn.forceStyle]: true } : states[0];
const setState = states[1];
const setStateShallow = useShallowSetState(setState, debugProp, componentName);
let hasHydrated = false;
numRenderedOfType[componentName] ??= 0;
if (willBeAnimated) {
if (++numRenderedOfType[componentName] > (process.env.TAMAGUI_ANIMATED_PRESENCE_HYDRATION_CUTOFF ? +process.env.TAMAGUI_ANIMATED_PRESENCE_HYDRATION_CUTOFF : 5)) {
hasHydrated = true;
}
}
let isAnimated = willBeAnimated;
if (presence && hasHydrated) {
} else {
if (isAnimated && (isServer || state.unmounted === true)) {
isAnimated = false;
}
}
const componentClassName = props.asChild ? "" : props.componentName ? `is_${props.componentName}` : defaultComponentClassName;

@@ -139,14 +171,2 @@ const hasTextAncestor = !!(isWeb && isText ? useContext(TextAncestorContext) : false);

const avoidClassesWhileAnimating = animationsConfig == null ? void 0 : animationsConfig.isReactNative;
const hasEnterStyle = !!props.enterStyle;
const needsMount = Boolean(
(isWeb ? isClient : true) && (hasEnterStyle || props.animation)
);
const states = useServerState(
needsMount ? defaultComponentState : defaultComponentStateMounted
);
const state = propsIn.forceStyle ? { ...states[0], [propsIn.forceStyle]: true } : states[0];
const setState = states[1];
const setStateShallow = useShallowSetState(setState, debugProp, componentName);
const usePresence = animationsConfig == null ? void 0 : animationsConfig.usePresence;
const presence = !isRSC && isAnimated && usePresence ? usePresence() : null;
if (isAnimated && presence) {

@@ -165,6 +185,6 @@ const presenceState = presence[2];

const isReactNative = Boolean(staticConfig.isReactNative || isAnimatedReactNative);
const shouldAvoidClasses = !isWeb || !!(props.animation && avoidClassesWhileAnimating) || !staticConfig.acceptsClassName;
const shouldAvoidClasses = !isWeb || !!(isAnimated && avoidClassesWhileAnimating) || !staticConfig.acceptsClassName;
const shouldForcePseudo = !!propsIn.forceStyle;
const noClassNames = shouldAvoidClasses || shouldForcePseudo;
const disableTheme = props["data-disable-theme"] && !isAnimated || staticConfig.isHOC;
const disableTheme = props["data-disable-theme"] && !willBeAnimated || staticConfig.isHOC;
const themeStateProps = {

@@ -202,3 +222,6 @@ name: props.theme,

};
console.group(`%c ${banner}${parentsLog(staticConfig)}`, "background: yellow;");
console.group(
`%c ${banner}${parentsLog(staticConfig)} (unmounted: ${state.unmounted})`,
"background: yellow;"
);
if (!isServer) {

@@ -213,2 +236,3 @@ console.log({

});
console.warn(themeState.name);
}

@@ -225,5 +249,4 @@ }

noClassNames,
dynamicStylesInline: noClassNames,
hasTextAncestor,
resolveVariablesAs: "auto",
resolveVariablesAs: isAnimated ? "value" : "auto",
isExiting

@@ -273,3 +296,3 @@ },

let animationStyles;
if (!isRSC && isAnimated && useAnimations && !staticConfig.isHOC) {
if (!isRSC && willBeAnimated && useAnimations && !staticConfig.isHOC) {
const animations = useAnimations({

@@ -280,2 +303,3 @@ props: propsWithAnimation,

state,
theme: themeState.theme,
pseudos: pseudos || null,

@@ -286,4 +310,6 @@ onDidAnimate: props.onDidAnimate,

});
if (animations) {
animationStyles = animations.style;
if (isAnimated) {
if (animations) {
animationStyles = animations.style;
}
}

@@ -321,3 +347,3 @@ }

}
if (process.env.TAMAGUI_TARGET === "web" && !isReactNative && !asChild) {
if (process.env.TAMAGUI_TARGET === "web" && !isReactNative && !willBeAnimated && !asChild) {
viewProps = (_f = (_e = hooks).usePropsTransform) == null ? void 0 : _f.call(_e, elementType, nonTamaguiProps, hostRef);

@@ -345,21 +371,12 @@ } else {

}, [setStateShallow]);
if (isWeb) {
useEffect(() => {
const shouldSetMounted = needsMount && state.unmounted;
useIsomorphicLayoutEffect(() => {
if (!shouldSetMounted) {
return () => {
mouseUps.delete(unPress);
};
}, []);
}
const shouldSetMounted = needsMount && state.unmounted;
useEffect(() => {
if (!shouldSetMounted)
return;
if (state.unmounted === true && needsMount) {
setStateShallow({
unmounted: false
});
return;
}
const unmounted = state.unmounted === true && hasEnterStyle ? "should-enter" : false;
setStateShallow({
unmounted: false
unmounted
});

@@ -366,0 +383,0 @@ }, [shouldSetMounted, state.unmounted]);

@@ -10,5 +10,2 @@ import { isAndroid, isWeb } from "@tamagui/constants";

import { mergeProps } from "./mergeProps.js";
const getReturnVariablesAs = (props, state) => {
return !!props.animation || state.resolveVariablesAs === "value" ? "value" : "auto";
};
const createPropMapper = (staticConfig) => {

@@ -26,3 +23,3 @@ const variants = staticConfig.variants || {};

const props = state.fallbackProps || propsIn;
const returnVariablesAs = getReturnVariablesAs(props, state);
const returnVariablesAs = state.resolveVariablesAs === "value" ? "value" : "auto";
const fontFamily = props[conf.inverseShorthands.fontFamily] || props.fontFamily || defaultProps.fontFamily || propsIn.fontFamily || "$body";

@@ -91,8 +88,6 @@ if (process.env.NODE_ENV === "development" && fontFamily && fontFamily[0] === "$" && !(fontFamily in conf.fontsParsed)) {

if (process.env.NODE_ENV === "development") {
if ((_a = staticConfig.validStyles) == null ? void 0 : _a[key]) {
return null;
}
if (typeof value === "boolean") {
return null;
}
if ((_a = staticConfig.validStyles) == null ? void 0 : _a[key])
return;
if (typeof value === "boolean")
return;
const name = staticConfig.componentName || "[UnnamedComponent]";

@@ -411,5 +406,4 @@ console.warn(

getFontFamilyFromNameOrVariable,
getPropMappedFontFamily,
getReturnVariablesAs
getPropMappedFontFamily
};
//# sourceMappingURL=createPropMapper.js.map

@@ -410,2 +410,13 @@ import {

);
if (process.env.NODE_ENV === "development" && debug === "verbose") {
console.groupCollapsed(" \u{1F539} styles", keyInit, valInit);
console.log({
expanded,
state,
isVariant,
shouldPassProp,
isHOCShouldPassThrough,
parentHasVariant
});
}
if (!fontFamily) {

@@ -412,0 +423,0 @@ fontFamily = getPropMappedFontFamily(expanded);

@@ -1,21 +0,15 @@

import { startTransition, useCallback } from "react";
import { useCallback } from "react";
function useShallowSetState(setter, debug, debugName) {
return useCallback(
(next) => {
const shouldTransition = Object.keys(next).every(
(k) => transitionKeys.has(k)
);
const run = shouldTransition ? startTransition : (_) => _();
run(() => {
setter((prev) => {
for (const key in next) {
if (prev[key] !== next[key]) {
if (process.env.NODE_ENV === "development" && debug === "verbose") {
console.log(` \u25B2 setState ${debugName}`, next);
}
return { ...prev, ...next };
setter((prev) => {
for (const key in next) {
if (prev[key] !== next[key]) {
if (process.env.NODE_ENV === "development" && debug === "verbose") {
console.warn(` \u25B2 setState ${debugName}`, next);
}
return { ...prev, ...next };
}
return prev;
});
}
return prev;
});

@@ -26,8 +20,2 @@ },

}
const transitionKeys = /* @__PURE__ */ new Set([
"press",
"pressIn",
"focus",
"unmounted"
]);
export {

@@ -34,0 +22,0 @@ useShallowSetState

{
"name": "@tamagui/web",
"version": "1.20.5",
"version": "1.20.6",
"source": "src/index.ts",

@@ -30,9 +30,9 @@ "main": "dist/cjs",

"dependencies": {
"@tamagui/compose-refs": "1.20.5",
"@tamagui/constants": "1.20.5",
"@tamagui/helpers": "1.20.5",
"@tamagui/normalize-css-color": "1.20.5",
"@tamagui/use-did-finish-ssr": "1.20.5",
"@tamagui/use-event": "1.20.5",
"@tamagui/use-force-update": "1.20.5"
"@tamagui/compose-refs": "1.20.6",
"@tamagui/constants": "1.20.6",
"@tamagui/helpers": "1.20.6",
"@tamagui/normalize-css-color": "1.20.6",
"@tamagui/use-did-finish-ssr": "1.20.6",
"@tamagui/use-event": "1.20.6",
"@tamagui/use-force-update": "1.20.6"
},

@@ -43,3 +43,3 @@ "peerDependencies": {

"devDependencies": {
"@tamagui/build": "1.20.5",
"@tamagui/build": "1.20.6",
"@testing-library/react": "^13.4.0",

@@ -46,0 +46,0 @@ "csstype": "^3.0.10",

@@ -29,6 +29,2 @@ import { isAndroid, isWeb } from '@tamagui/constants'

export const getReturnVariablesAs = (props: any, state: Partial<SplitStyleState>) => {
return !!props.animation || state.resolveVariablesAs === 'value' ? 'value' : 'auto'
}
export const createPropMapper = (staticConfig: StaticConfigParsed) => {

@@ -61,3 +57,3 @@ const variants = staticConfig.variants || {}

const props = state.fallbackProps || propsIn
const returnVariablesAs = getReturnVariablesAs(props, state)
const returnVariablesAs = state.resolveVariablesAs === 'value' ? 'value' : 'auto'

@@ -182,9 +178,5 @@ // handled here because we need to resolve this off tokens, its the only one-off like this

if (process.env.NODE_ENV === 'development') {
if (staticConfig.validStyles?.[key]) {
return null
}
if (typeof value === 'boolean') {
// don't warn on missing boolean values, common to only one of true/false
return null
}
if (staticConfig.validStyles?.[key]) return
// don't warn on missing boolean values, common to only one of true/false
if (typeof value === 'boolean') return
const name = staticConfig.componentName || '[UnnamedComponent]'

@@ -191,0 +183,0 @@ console.warn(

export function createProxy<A extends object>(target: A, handler: ProxyHandler<A>) {
if (process.env.NODE_ENV === 'development') {
if (typeof target !== 'object' || !target) {
// rome-ignore lint/nursery/noConsoleLog: ok
console.warn(

@@ -6,0 +5,0 @@ 'Invalid object given for proxy:',

@@ -1,4 +0,3 @@

import type { PropMapper, SplitStyleState, StaticConfigParsed, TamaguiInternalConfig } from '../types.js';
import type { PropMapper, StaticConfigParsed, TamaguiInternalConfig } from '../types.js';
export type ResolveVariableTypes = 'auto' | 'value' | 'variable' | 'both' | 'non-color-value';
export declare const getReturnVariablesAs: (props: any, state: Partial<SplitStyleState>) => "auto" | "value";
export declare const createPropMapper: (staticConfig: StaticConfigParsed) => PropMapper;

@@ -5,0 +4,0 @@ export declare function getFontFamilyFromNameOrVariable(input: any, conf: TamaguiInternalConfig): string | undefined;

@@ -680,3 +680,3 @@ import type { StyleObject } from '@tamagui/helpers';

focus: boolean;
unmounted: boolean;
unmounted: boolean | 'should-enter';
animation?: null | {

@@ -690,3 +690,2 @@ style?: any;

noClassNames?: boolean;
dynamicStylesInline?: boolean;
resolveVariablesAs?: ResolveVariableTypes;

@@ -759,2 +758,3 @@ fallbackProps?: Record<string, any>;

state: SplitStyleState;
theme: ThemeParsed;
pseudos: PseudoProps<ViewStyle> | null;

@@ -761,0 +761,0 @@ onDidAnimate?: any;

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc