diff --git a/packages/babel-plugin-styled-resolver/package.json b/packages/babel-plugin-styled-resolver/package.json index 19a28b6e..ceb5265e 100644 --- a/packages/babel-plugin-styled-resolver/package.json +++ b/packages/babel-plugin-styled-resolver/package.json @@ -1,6 +1,6 @@ { "name": "@gluestack-style/babel-plugin-styled-resolver", - "version": "1.0.2", + "version": "1.0.3-alpha.0", "description": "A gluestack-style babel plugin that transpiles your styled function calls and resolves the component styling in build time.", "keywords": [ "css-in-js", @@ -29,6 +29,7 @@ "@types/react": "^18.0.22", "@types/react-native": "^0.69.15", "babel-plugin-transform-remove-console": "^6.9.4", + "esbuild": "^0.19.8", "react": "^18.1.0", "react-dom": "^18.1.0", "react-native": "^0.70.3", @@ -44,10 +45,7 @@ "@babel/plugin-transform-typescript": "^7.20.2", "@babel/preset-typescript": "^7.18.6", "@babel/traverse": "^7.20.5", - "@rollup/plugin-node-resolve": "^15.2.3", - "@rollup/plugin-typescript": "^11.1.5", - "lodash.merge": "^4.6.2", - "rollup": "^4.6.0" + "lodash.merge": "^4.6.2" }, "react-native-builder-bob": { "source": "src", diff --git a/packages/babel-plugin-styled-resolver/src/buildConfig.js b/packages/babel-plugin-styled-resolver/src/buildConfig.js index 214fa440..a04aecbe 100644 --- a/packages/babel-plugin-styled-resolver/src/buildConfig.js +++ b/packages/babel-plugin-styled-resolver/src/buildConfig.js @@ -1,40 +1,9 @@ -/* eslint-disable no-console */ -const rollupTypescriptPlugin = require('@rollup/plugin-typescript'); -const rollup = require('rollup'); -const resolve = require('@rollup/plugin-node-resolve'); const fs = require('fs'); const path = require('path'); +const esbuild = require('esbuild'); -async function buildAndRun(rollupConfig) { - try { - await cleanup(); - const bundle = await rollup.rollup(rollupConfig); - - await bundle.write(rollupConfig.output); - } catch (err) { - console.log(err); - } -} - -function cleanup() { - return new Promise((resolve, reject) => { - if (fs.existsSync(`${process.cwd()}/.gluestack`)) { - fs.rm( - `${process.cwd()}/.gluestack`, - { recursive: true, force: true }, - (err) => { - if (err) { - reject(err); - } else { - resolve(`Removed ${process.cwd()}/.gluestack`); - } - } - ); - } else { - resolve('Preparing for build...'); - } - }); -} +const OUTPUT_FILE = `./.gluestack/config-${process.ppid}.js`; +const MOCK_LIBRARY = `./mock-${process.ppid}.js`; function getConfigPath() { const isConfigJSExist = fs.existsSync( @@ -56,7 +25,7 @@ function getConfigPath() { if (isGlueStackUIConfigTSExist) return './gluestack-ui.config.ts'; } -const globals = `const react = { +const mockLibrary = `const react = { forwardRef: () => {}, createElement: () => {}, }; @@ -91,39 +60,46 @@ const gluestackStyleLegendMotionAnimationDriver = { }; const gluestackStyleMotiAnimationDriver = { }; + +module.exports = { + ...react, + ...reactNative, + ...gluestackStyleReact, + ...gluestackStyleAnimationResolver, + ...gluestackStyleLegendMotionAnimationDriver, + ...gluestackStyleMotiAnimationDriver, +} `; -const generateRollupConfig = (config = {}) => { - const rollupConfig = { - input: getConfigPath(), - output: { - file: `./.gluestack/config-${process.ppid}.js`, // The bundled JavaScript file - format: 'iife', // iife format for Node.js - globals: { - 'react': 'react', - 'react-native': 'reactNative', - '@gluestack-style/react': 'gluestackStyleReact', - '@gluestack-style/animation-resolver': - 'gluestackStyleAnimationResolver', - '@gluestack-style/legend-motion-animation-driver': - 'gluestackStyleLegendMotionAnimationDriver', - '@gluestack-style/moti-animation-driver': - 'gluestackStyleMotiAnimationDriver', - }, - name: 'config', - banner: globals, - footer: 'module.exports = config;', +const getEsBuildConfigOptions = ( + inputDir, + outputDir = OUTPUT_FILE, + mockedLibraryPath = MOCK_LIBRARY +) => { + const entryPoint = inputDir ?? getConfigPath(); + + const esbuildConfigOptions = { + entryPoints: [entryPoint], + bundle: true, + outfile: outputDir, + format: 'iife', + globalName: 'config', + // banner: { + // js: globals, + // }, + alias: { + 'react-native': mockedLibraryPath, + '@gluestack-style/react': mockedLibraryPath, + '@gluestack-style/animation-resolver': mockedLibraryPath, + '@gluestack-style/legend-motion-animation-driver': mockedLibraryPath, + '@gluestack-style/moti-animation-driver': mockedLibraryPath, }, - plugins: [ - resolve({ - extensions: ['.js', '.ts', '.tsx', '.jsx', '.json'], // Add your custom file extensions here - }), - rollupTypescriptPlugin({ - compilerOptions: { lib: ['es5', 'es6', 'dom'], target: 'es5' }, - tsconfig: false, - // typescript: require('some-fork-of-typescript'), - }), - ], + target: 'node18', + footer: { + js: 'module.exports = config;', + }, + resolveExtensions: ['.js', '.ts', '.tsx', '.jsx', '.json'], + platform: 'node', external: [ 'react', 'react-native', @@ -131,23 +107,82 @@ const generateRollupConfig = (config = {}) => { '@gluestack-style/animation-resolver', '@gluestack-style/legend-motion-animation-driver', '@gluestack-style/moti-animation-driver', + mockedLibraryPath, ], - ...config, }; - return rollupConfig; + return esbuildConfigOptions; }; -const getConfig = async (configPath) => { - const rollupConfig = generateRollupConfig(); +function cleanup() { + if (fs.existsSync(`${process.cwd()}/.gluestack`)) { + fs.rmSync( + `${process.cwd()}/.gluestack`, + { recursive: true, force: true }, + (err) => { + if (err) { + console.error(err); + } else { + // eslint-disable-next-line no-console + console.log(`Removed ${process.cwd()}/.gluestack`); + // eslint-disable-next-line no-console + console.log('Preparing for build...'); + } + } + ); + } +} + +function buildConfig(inputDir, outputDir, mockLibraryPath) { try { - await buildAndRun(rollupConfig); - console.log('Config built successfully!'); - const { config } = require(`${process.cwd()}/.gluestack/config-${ - process.ppid - }.js`); - return config; + const esbuildConfigOptions = getEsBuildConfigOptions( + inputDir, + outputDir, + mockLibraryPath + ); + esbuild.buildSync(esbuildConfigOptions); + } catch (err) { + console.error(err); + } +} + +function buildMockLibrary(mockedLibraryPath) { + const gluestackFolderPath = path.join(process.cwd(), './.gluestack'); + const mockLibraryFullPath = path.resolve( + gluestackFolderPath, + mockedLibraryPath + ); + if (!fs.existsSync(gluestackFolderPath)) { + fs.mkdirSync(gluestackFolderPath); + } + + fs.writeFileSync(mockLibraryFullPath, mockLibrary); +} + +function cleanupAndBuildConfig(inputDir, outputDir, mockedLibraryPath) { + try { + cleanup(); + buildMockLibrary(mockedLibraryPath); + buildConfig(inputDir, outputDir, mockedLibraryPath); + } catch (err) { + console.error(err); + } +} + +const getConfig = ( + inputDir, + outputDir = OUTPUT_FILE, + mockLibraryPath = MOCK_LIBRARY +) => { + try { + if (inputDir) { + cleanupAndBuildConfig(inputDir, outputDir, mockLibraryPath); + const configFile = require(`${process.cwd()}/${outputDir}`); + return configFile; + } else { + return {}; + } } catch (err) { - console.log('Error: ', rollupConfig, err); + console.error(err); } }; diff --git a/packages/babel-plugin-styled-resolver/src/index.js b/packages/babel-plugin-styled-resolver/src/index.js index 4706cc68..49f330e9 100644 --- a/packages/babel-plugin-styled-resolver/src/index.js +++ b/packages/babel-plugin-styled-resolver/src/index.js @@ -7,6 +7,26 @@ const traverse = require('@babel/traverse').default; const types = require('@babel/types'); const { getConfig: buildAndGetConfig } = require('./buildConfig'); +let ConfigDefault = {}; + +let configFile; +const isConfigExist = fs.existsSync( + `${process.cwd()}/.gluestack/config-${process.ppid}.js` +); + +if (!isConfigExist) { + const outputDir = `.gluestack/config-${process.ppid}.js`; + const inputDir = getConfigPath(); + + if (inputDir) { + configFile = buildAndGetConfig(inputDir, outputDir); + ConfigDefault = configFile?.config; + } +} else { + configFile = require(`${process.cwd()}/.gluestack/config-${process.ppid}.js`); + ConfigDefault = configFile?.config; +} + const { convertStyledToStyledVerbosed, convertSxToSxVerbosed, @@ -35,10 +55,29 @@ const { checkAndReturnUtilityProp, } = require('@gluestack-style/react/lib/commonjs/core/convert-utility-to-sx'); -const IMPORT_NAME = '@gluestack-style/react'; let configThemePath = []; const BUILD_TIME_GLUESTACK_STYLESHEET = new StyleInjector(); +function getConfigPath() { + const isConfigJSExist = fs.existsSync( + path.join(process.cwd(), './gluestack-style.config.js') + ); + const isGlueStackUIConfigJSExist = fs.existsSync( + path.join(process.cwd(), './gluestack-ui.config.js') + ); + const isConfigTSExist = fs.existsSync( + path.join(process.cwd(), './gluestack-style.config.ts') + ); + const isGlueStackUIConfigTSExist = fs.existsSync( + path.join(process.cwd(), './gluestack-ui.config.ts') + ); + + if (isConfigJSExist) return './gluestack-style.config.js'; + if (isConfigTSExist) return './gluestack-style.config.ts'; + if (isGlueStackUIConfigJSExist) return './gluestack-ui.config.js'; + if (isGlueStackUIConfigTSExist) return './gluestack-ui.config.ts'; +} + const convertExpressionContainerToStaticObject = ( properties, result = {}, @@ -232,14 +271,12 @@ function getConfig(configPath) { ); } if (isGlueStackUIConfigJSExist) { - configThemePath = ['theme']; return fs.readFileSync( path.join(process.cwd(), './gluestack-ui.config.js'), 'utf8' ); } if (isGlueStackUIConfigTSExist) { - configThemePath = ['theme']; return fs.readFileSync( path.join(process.cwd(), './gluestack-ui.config.ts'), 'utf8' @@ -337,58 +374,6 @@ function getBuildTimeParams( return null; } -function getExportedConfigFromFileString(fileData) { - if (!fileData) { - return {}; - } - - fileData = fileData?.replace(/as const/g, ''); - - const ast = babel.parse(fileData, { - presets: [babelPresetTypeScript], - plugins: ['typescript'], - sourceType: 'module', - comments: false, - }); - - let config = {}; - - traverse(ast, { - CallExpression: (path) => { - const { callee, arguments: args } = path.node; - if ( - types.isIdentifier(callee, { name: 'createConfig' }) && - args.length === 1 && - types.isObjectExpression(args[0]) - ) { - path.replaceWith(args[0]); - } - }, - }); - - traverse(ast, { - ExportNamedDeclaration: (path) => { - path.traverse({ - VariableDeclarator: (variableDeclaratorPath) => { - config = variableDeclaratorPath.node.init; - }, - }); - }, - - Identifier: (path) => { - if (path.node.name === 'undefined') { - //path.remove(); - path.node.name = 'null'; - } - }, - }); - - let objectCode = generate(config).code; - objectCode = objectCode?.replace(/\/\/.*|\/\*[\s\S]*?\*\//g, ''); - objectCode = addQuotesToObjectKeys(objectCode)?.replace(/'/g, '"'); - - return JSON.parse(objectCode); -} function replaceSingleQuotes(str) { let inDoubleQuotes = false; let newStr = ''; @@ -551,25 +536,6 @@ function isImportFromAbsolutePath( return false; } -let CONFIG; -const isConfigExist = fs.existsSync( - `${process.cwd()}/.gluestack/config-${process.ppid}.js` -); - -let ConfigDefault = CONFIG; - -if (!isConfigExist) { - buildAndGetConfig() - .then((res) => { - CONFIG = res; - ConfigDefault = res; - }) - .catch((err) => { - // eslint-disable-next-line no-console - console.log(err); - }); -} - module.exports = function (b) { const { types: t } = b; @@ -588,13 +554,11 @@ module.exports = function (b) { let styledAlias = ''; let styledAliasImportedName = ''; let tempPropertyResolverNode; - let isValidConfig = true; let platform = 'all'; let currentFileName = 'file not found!'; let configPath; let outputLibrary; let componentSXProp; - let componentUtilityProps; const guessingStyledComponents = []; const styled = ['@gluestack-style/react', '@gluestack-ui/themed']; const components = ['@gluestack-ui/themed']; @@ -608,60 +572,69 @@ module.exports = function (b) { return { name: 'gluestack-babel-styled-resolver', // not required - // async pre(state) { - // let plugin; - - // state.opts.plugins?.forEach((currentPlugin) => { - // if (currentPlugin.key === 'gluestack-babel-styled-resolver') { - // plugin = currentPlugin; - // } - // }); - - // const configPath = plugin?.options?.configPath; - - // if (!isConfigExist) { - // const res = await buildAndGetConfig(configPath); - // ConfigDefault = res; - // } - // }, + pre(state) { + let plugin; + + state?.opts?.plugins?.forEach((currentPlugin) => { + if (currentPlugin.key === 'gluestack-babel-styled-resolver') { + plugin = currentPlugin; + } + }); + + if (plugin?.options?.configPath) { + configPath = plugin?.options?.configPath; + } + + if (plugin?.options?.configThemePath) { + configThemePath = plugin?.options?.configThemePath; + } + + const outputDir = `.gluestack/config-${process.ppid + 1}.js`; + const mockLibraryPath = `./mock-${process.ppid + 1}.js`; + + if (configPath) { + if (!fs.existsSync(path.join(process.cwd(), outputDir))) { + configFile = buildAndGetConfig( + configPath, + outputDir, + mockLibraryPath + ); + + if (configThemePath.length > 0) { + configThemePath.forEach((path) => { + configFile = configFile?.[path]; + }); + configThemePath = []; + ConfigDefault = configFile; + } else { + ConfigDefault = configFile?.config; + } + } else { + configFile = require(path.join(process.cwd(), outputDir)); + if (configThemePath.length > 0) { + configThemePath.forEach((path) => { + configFile = configFile?.[path]; + }); + configThemePath = []; + ConfigDefault = configFile; + } else { + ConfigDefault = configFile?.config; + } + } + } + }, visitor: { ImportDeclaration(importPath, state) { currentFileName = state.file.opts.filename; styledAlias = state?.opts?.styledAlias; outputLibrary = state?.opts?.outputLibrary || outputLibrary; - if (state?.opts?.configPath) { - configPath = state?.opts?.configPath; - } - - if (state?.opts?.configThemePath) { - configThemePath = state?.opts?.configThemePath; - } if (state?.opts?.platform) { platform = state?.opts?.platform; } else { platform = 'all'; } - // `${process.cwd()}/.gluestack/config-${process.ppid}.js` - - // if ( - // configPath && - // !fs.existsSync(path.join(process.cwd(), `.gluestack/config-${process.ppid}.js`)) - // ) { - // // ConfigDefault = getExportedConfigFromFileString( - // // getConfig(configPath) - // // ); - // ConfigDefault = buildAndGetConfig(configPath); - // } - - // configThemePath.forEach((path) => { - // ConfigDefault = ConfigDefault?.[path]; - // }); - // configThemePath = []; - - // console.log(ConfigDefault, '>>>>>>>>>>>>>>>'); - if (!currentFileName.includes('node_modules')) { if (currentFileName.includes('.web.')) { platform = 'web'; @@ -736,7 +709,6 @@ module.exports = function (b) { styledAliasImportedName || expressionPath?.node?.right?.callee?.name === styledImportName ) { - // console.log(expressionPath.node, '>>>>>'); let componentName = expressionPath?.parent?.id?.name; if (componentName) { @@ -744,8 +716,8 @@ module.exports = function (b) { } } }, - CallExpression(callExpressionPath) { - if (isValidConfig) { + CallExpression(callExpressionPath, state) { + if (!state.file.opts.filename?.includes('node_modules')) { const calleeName = callExpressionPath.node.callee.name; if ( calleeName === styledAliasImportedName || @@ -899,41 +871,44 @@ module.exports = function (b) { */ const extendedThemeComponents = callExpressionPath.node.arguments[0].properties; - extendedThemeComponents.forEach((property) => { - if ( - !t.isIdentifier(property.value) && - !t.isTemplateLiteral(property.value) && - !t.isConditionalExpression(property.value) - ) { - const { themeNode, componentConfigNode } = - findThemeAndComponentConfig(property.value.properties); - - let theme = themeNode - ? getObjectFromAstNode(themeNode?.value) - : {}; - let componentConfig = componentConfigNode - ? getObjectFromAstNode(componentConfigNode?.value) - : {}; - - const resultParamsNode = getBuildTimeParams( - theme, - componentConfig, - {}, - outputLibrary, - platform, - 'extended' - ); - if (resultParamsNode) { - property.value.properties.push( - t.objectProperty( - t.stringLiteral('BUILD_TIME_PARAMS'), - resultParamsNode - ) + if (Array.isArray(extendedThemeComponents)) { + extendedThemeComponents.forEach((property) => { + if ( + !t.isIdentifier(property.value) && + !t.isTemplateLiteral(property.value) && + !t.isConditionalExpression(property.value) + ) { + const { themeNode, componentConfigNode } = + findThemeAndComponentConfig(property.value.properties); + + let theme = themeNode + ? getObjectFromAstNode(themeNode?.value) + : {}; + let componentConfig = componentConfigNode + ? getObjectFromAstNode(componentConfigNode?.value) + : {}; + + const resultParamsNode = getBuildTimeParams( + theme, + componentConfig, + {}, + outputLibrary, + platform, + 'extended' ); + + if (resultParamsNode) { + property.value.properties.push( + t.objectProperty( + t.stringLiteral('BUILD_TIME_PARAMS'), + resultParamsNode + ) + ); + } } - } - }); + }); + } } } }, @@ -945,10 +920,10 @@ module.exports = function (b) { jsxOpeningElementPath.node.name.name ) ) { - let propsToBePersist = []; + const propsToBePersist = []; let sxPropsWithIdentifier = {}; - let mergedPropertyConfig = { + const mergedPropertyConfig = { ...ConfigDefault?.propertyTokenMap, ...propertyTokenMap, }; @@ -970,16 +945,18 @@ module.exports = function (b) { const prefixedMediaQueries = {}; - Object.keys(componentExtendedConfig?.tokens?.mediaQueries).forEach( - (key) => { - prefixedMediaQueries[key] = { - key: `@${key}`, - isMediaQuery: true, - }; - } - ); + if (componentExtendedConfig?.tokens?.mediaQueries) { + Object.keys(componentExtendedConfig?.tokens?.mediaQueries).forEach( + (key) => { + prefixedMediaQueries[key] = { + key: `@${key}`, + isMediaQuery: true, + }; + } + ); - Object.assign(reservedKeys, { ...prefixedMediaQueries }); + Object.assign(reservedKeys, { ...prefixedMediaQueries }); + } const attr = jsxOpeningElementPath.node.attributes; attr.forEach((attribute, index) => { @@ -1144,7 +1121,7 @@ module.exports = function (b) { platform ); - const toBeInjected = BUILD_TIME_GLUESTACK_STYLESHEET.resolve( + BUILD_TIME_GLUESTACK_STYLESHEET.resolve( styledIds, componentExtendedConfig, {}, @@ -1163,13 +1140,12 @@ module.exports = function (b) { } }); - let styleIdsAst = generateObjectAst(verbosedStyleIds); + const styleIdsAst = generateObjectAst(verbosedStyleIds); - let toBeInjectedAst = generateObjectAst(toBeInjected); - - let orderResolvedArrayExpression = []; + const orderResolvedArrayExpression = []; orderedResolvedTheme.forEach((styledResolved) => { + delete styledResolved.toBeInjected; if (targetPlatform === 'native') { delete styledResolved.original; delete styledResolved.value; @@ -1181,14 +1157,10 @@ module.exports = function (b) { delete styledResolved.extendedConfig; delete styledResolved.value; } - let orderedResolvedAst = generateObjectAst(styledResolved); + const orderedResolvedAst = generateObjectAst(styledResolved); orderResolvedArrayExpression.push(orderedResolvedAst); }); - let orderedStyleIdsArrayAst = t.arrayExpression( - styledIds?.map((cssId) => t.stringLiteral(cssId)) - ); - jsxOpeningElementPath.node.attributes.push( t.jsxAttribute( t.jsxIdentifier('verbosedStyleIds'), @@ -1219,7 +1191,6 @@ module.exports = function (b) { } componentSXProp = undefined; - componentUtilityProps = undefined; } }, }, diff --git a/packages/babel-plugin-styled-resolver/tsconfig.json_old b/packages/babel-plugin-styled-resolver/tsconfig.json_old deleted file mode 100644 index 699c0bc7..00000000 --- a/packages/babel-plugin-styled-resolver/tsconfig.json_old +++ /dev/null @@ -1,29 +0,0 @@ -{ - "include": ["./src"], - "exclude": ["node_modules", "example"], - "compilerOptions": { - "emitDeclarationOnly": true, - "noEmit": false, - "baseUrl": ".", - "declaration": true, - "allowUnreachableCode": false, - "allowUnusedLabels": true, - "esModuleInterop": true, - "importsNotUsedAsValues": "error", - "forceConsistentCasingInFileNames": true, - "jsx": "react", - "lib": ["esnext", "dom"], - "module": "esnext", - "moduleResolution": "node", - "noFallthroughCasesInSwitch": true, - "noImplicitReturns": true, - "noImplicitUseStrict": false, - "noStrictGenericChecks": false, - "noUnusedLocals": false, - "noUnusedParameters": true, - "resolveJsonModule": true, - "skipLibCheck": true, - "strict": true, - "target": "esnext" - } -} diff --git a/packages/react/package.json b/packages/react/package.json index c704d583..842dbb15 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -1,7 +1,7 @@ { "name": "@gluestack-style/react", "description": "A universal & performant styling library for React Native, Next.js & React", - "version": "1.0.22", + "version": "1.0.22-alpha.1", "keywords": [ "React Native", "Next.js", diff --git a/packages/react/src/createConfig.ts b/packages/react/src/createConfig.ts index bf411ad7..4c978836 100644 --- a/packages/react/src/createConfig.ts +++ b/packages/react/src/createConfig.ts @@ -132,7 +132,10 @@ export const resolveComponentTheme = (config: any, componentTheme: any) => { component?.componentConfig ); } else { - GluestackStyleSheet.update(component.BUILD_TIME_PARAMS?.orderedResolved); + const toBeInjected = GluestackStyleSheet.update( + component.BUILD_TIME_PARAMS?.orderedResolved + ); + component.BUILD_TIME_PARAMS.toBeInjected = toBeInjected; resolvedTheme = component; } diff --git a/packages/react/src/styled.tsx b/packages/react/src/styled.tsx index 428ef0aa..9bb0cb90 100644 --- a/packages/react/src/styled.tsx +++ b/packages/react/src/styled.tsx @@ -985,7 +985,6 @@ export function verboseStyled( // END BASE COLOR MODE RESOLUTION let CONFIG: any = {}; - let isInjected = false; let plugins: any = []; let reservedKeys = { ..._reservedKeys }; @@ -1269,18 +1268,12 @@ export function verboseStyled( const sxStyleIds: any = React.useRef(BUILD_TIME_VERBOSED_STYLE_IDS); if (BUILD_TIME_ORDERED_RESOLVED.length > 0 && !isClient.current) { - if (!isInjected) { - const toBeInjected = GluestackStyleSheet.update( - BUILD_TIME_ORDERED_RESOLVED - ); + const toBeInjected = GluestackStyleSheet.update( + BUILD_TIME_ORDERED_RESOLVED + ); - if (Platform.OS === 'web') { - GluestackStyleSheet.inject( - toBeInjected, - styledContext.inlineStyleMap - ); - } - isInjected = true; + if (Platform.OS === 'web') { + GluestackStyleSheet.inject(toBeInjected, styledContext.inlineStyleMap); } sxStyleIds.current = BUILD_TIME_VERBOSED_STYLE_IDS; diff --git a/yarn.lock b/yarn.lock index bfd075b9..79a7843c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2187,6 +2187,116 @@ resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz#d0fce5d07b0620caa282b5131c297bb60f9d87e6" integrity sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww== +"@esbuild/android-arm64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.8.tgz#fb7130103835b6d43ea499c3f30cfb2b2ed58456" + integrity sha512-B8JbS61bEunhfx8kasogFENgQfr/dIp+ggYXwTqdbMAgGDhRa3AaPpQMuQU0rNxDLECj6FhDzk1cF9WHMVwrtA== + +"@esbuild/android-arm@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.8.tgz#b46e4d9e984e6d6db6c4224d72c86b7757e35bcb" + integrity sha512-31E2lxlGM1KEfivQl8Yf5aYU/mflz9g06H6S15ITUFQueMFtFjESRMoDSkvMo8thYvLBax+VKTPlpnx+sPicOA== + +"@esbuild/android-x64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.8.tgz#a13db9441b5a4f4e4fec4a6f8ffacfea07888db7" + integrity sha512-rdqqYfRIn4jWOp+lzQttYMa2Xar3OK9Yt2fhOhzFXqg0rVWEfSclJvZq5fZslnz6ypHvVf3CT7qyf0A5pM682A== + +"@esbuild/darwin-arm64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.8.tgz#49f5718d36541f40dd62bfdf84da9c65168a0fc2" + integrity sha512-RQw9DemMbIq35Bprbboyf8SmOr4UXsRVxJ97LgB55VKKeJOOdvsIPy0nFyF2l8U+h4PtBx/1kRf0BelOYCiQcw== + +"@esbuild/darwin-x64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.8.tgz#75c5c88371eea4bfc1f9ecfd0e75104c74a481ac" + integrity sha512-3sur80OT9YdeZwIVgERAysAbwncom7b4bCI2XKLjMfPymTud7e/oY4y+ci1XVp5TfQp/bppn7xLw1n/oSQY3/Q== + +"@esbuild/freebsd-arm64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.8.tgz#9d7259fea4fd2b5f7437b52b542816e89d7c8575" + integrity sha512-WAnPJSDattvS/XtPCTj1tPoTxERjcTpH6HsMr6ujTT+X6rylVe8ggxk8pVxzf5U1wh5sPODpawNicF5ta/9Tmw== + +"@esbuild/freebsd-x64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.8.tgz#abac03e1c4c7c75ee8add6d76ec592f46dbb39e3" + integrity sha512-ICvZyOplIjmmhjd6mxi+zxSdpPTKFfyPPQMQTK/w+8eNK6WV01AjIztJALDtwNNfFhfZLux0tZLC+U9nSyA5Zg== + +"@esbuild/linux-arm64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.8.tgz#c577932cf4feeaa43cb9cec27b89cbe0df7d9098" + integrity sha512-z1zMZivxDLHWnyGOctT9JP70h0beY54xDDDJt4VpTX+iwA77IFsE1vCXWmprajJGa+ZYSqkSbRQ4eyLCpCmiCQ== + +"@esbuild/linux-arm@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.8.tgz#d6014d8b98b5cbc96b95dad3d14d75bb364fdc0f" + integrity sha512-H4vmI5PYqSvosPaTJuEppU9oz1dq2A7Mr2vyg5TF9Ga+3+MGgBdGzcyBP7qK9MrwFQZlvNyJrvz6GuCaj3OukQ== + +"@esbuild/linux-ia32@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.8.tgz#2379a0554307d19ac4a6cdc15b08f0ea28e7a40d" + integrity sha512-1a8suQiFJmZz1khm/rDglOc8lavtzEMRo0v6WhPgxkrjcU0LkHj+TwBrALwoz/OtMExvsqbbMI0ChyelKabSvQ== + +"@esbuild/linux-loong64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.8.tgz#e2a5bbffe15748b49356a6cd7b2d5bf60c5a7123" + integrity sha512-fHZWS2JJxnXt1uYJsDv9+b60WCc2RlvVAy1F76qOLtXRO+H4mjt3Tr6MJ5l7Q78X8KgCFudnTuiQRBhULUyBKQ== + +"@esbuild/linux-mips64el@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.8.tgz#1359331e6f6214f26f4b08db9b9df661c57cfa24" + integrity sha512-Wy/z0EL5qZYLX66dVnEg9riiwls5IYnziwuju2oUiuxVc+/edvqXa04qNtbrs0Ukatg5HEzqT94Zs7J207dN5Q== + +"@esbuild/linux-ppc64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.8.tgz#9ba436addc1646dc89dae48c62d3e951ffe70951" + integrity sha512-ETaW6245wK23YIEufhMQ3HSeHO7NgsLx8gygBVldRHKhOlD1oNeNy/P67mIh1zPn2Hr2HLieQrt6tWrVwuqrxg== + +"@esbuild/linux-riscv64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.8.tgz#fbcf0c3a0b20f40b5fc31c3b7695f0769f9de66b" + integrity sha512-T2DRQk55SgoleTP+DtPlMrxi/5r9AeFgkhkZ/B0ap99zmxtxdOixOMI570VjdRCs9pE4Wdkz7JYrsPvsl7eESg== + +"@esbuild/linux-s390x@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.8.tgz#989e8a05f7792d139d5564ffa7ff898ac6f20a4a" + integrity sha512-NPxbdmmo3Bk7mbNeHmcCd7R7fptJaczPYBaELk6NcXxy7HLNyWwCyDJ/Xx+/YcNH7Im5dHdx9gZ5xIwyliQCbg== + +"@esbuild/linux-x64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.19.8.tgz#b187295393a59323397fe5ff51e769ec4e72212b" + integrity sha512-lytMAVOM3b1gPypL2TRmZ5rnXl7+6IIk8uB3eLsV1JwcizuolblXRrc5ShPrO9ls/b+RTp+E6gbsuLWHWi2zGg== + +"@esbuild/netbsd-x64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.8.tgz#c1ec0e24ea82313cb1c7bae176bd5acd5bde7137" + integrity sha512-hvWVo2VsXz/8NVt1UhLzxwAfo5sioj92uo0bCfLibB0xlOmimU/DeAEsQILlBQvkhrGjamP0/el5HU76HAitGw== + +"@esbuild/openbsd-x64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.8.tgz#0c5b696ac66c6d70cf9ee17073a581a28af9e18d" + integrity sha512-/7Y7u77rdvmGTxR83PgaSvSBJCC2L3Kb1M/+dmSIvRvQPXXCuC97QAwMugBNG0yGcbEGfFBH7ojPzAOxfGNkwQ== + +"@esbuild/sunos-x64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.8.tgz#2a697e1f77926ff09fcc457d8f29916d6cd48fb1" + integrity sha512-9Lc4s7Oi98GqFA4HzA/W2JHIYfnXbUYgekUP/Sm4BG9sfLjyv6GKKHKKVs83SMicBF2JwAX6A1PuOLMqpD001w== + +"@esbuild/win32-arm64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.8.tgz#ec029e62a2fca8c071842ecb1bc5c2dd20b066f1" + integrity sha512-rq6WzBGjSzihI9deW3fC2Gqiak68+b7qo5/3kmB6Gvbh/NYPA0sJhrnp7wgV4bNwjqM+R2AApXGxMO7ZoGhIJg== + +"@esbuild/win32-ia32@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.8.tgz#cbb9a3146bde64dc15543e48afe418c7a3214851" + integrity sha512-AIAbverbg5jMvJznYiGhrd3sumfwWs8572mIJL5NQjJa06P8KfCPWZQ0NwZbPQnbQi9OWSZhFVSUWjjIrn4hSw== + +"@esbuild/win32-x64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.8.tgz#c8285183dbdb17008578dbacb6e22748709b4822" + integrity sha512-bfZ0cQ1uZs2PqpulNL5j/3w+GDhP36k1K5c38QdQg+Swy51jFZWWeIkteNsufkQxp986wnqRRsb/bHbY1WQ7TA== + "@eslint-community/eslint-utils@^4.2.0": version "4.4.0" resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" @@ -2766,6 +2876,14 @@ inline-style-prefixer "^6.0.1" normalize-css-color "^1.0.2" +"@gluestack-style/react@^1.0.1", "@gluestack-style/react@^1.0.7": + version "1.0.22" + resolved "https://registry.yarnpkg.com/@gluestack-style/react/-/react-1.0.22.tgz#466cabaac6ee0d37de476cf4be0e05c33a73eb2b" + integrity sha512-TfLXpkZ997zyQKTFwD7HEUhazn7slaD+X4IBbXJBrxGoYuYDAi/rXXmTrLeaVIKR7hCndSOfgAYyqbR7SR88+g== + dependencies: + inline-style-prefixer "^6.0.1" + normalize-css-color "^1.0.2" + "@gluestack-ui/actionsheet@^0.2.16", "@gluestack-ui/actionsheet@^0.2.7", "@gluestack-ui/actionsheet@latest": version "0.2.16" resolved "https://registry.yarnpkg.com/@gluestack-ui/actionsheet/-/actionsheet-0.2.16.tgz#052a733966c517450a3cd6f832932ccf77924867" @@ -10989,6 +11107,34 @@ es6-shim@^0.35.5: resolved "https://registry.yarnpkg.com/es6-shim/-/es6-shim-0.35.8.tgz#89216f6fbf8bacba3f897c8c0e814d2a41c05fb7" integrity sha512-Twf7I2v4/1tLoIXMT8HlqaBSS5H2wQTs2wx3MNYCI8K1R1/clXyCazrcVCPm/FuO9cyV8+leEaZOWD5C253NDg== +esbuild@^0.19.8: + version "0.19.8" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.8.tgz#ad05b72281d84483fa6b5345bd246c27a207b8f1" + integrity sha512-l7iffQpT2OrZfH2rXIp7/FkmaeZM0vxbxN9KfiCwGYuZqzMg/JdvX26R31Zxn/Pxvsrg3Y9N6XTcnknqDyyv4w== + optionalDependencies: + "@esbuild/android-arm" "0.19.8" + "@esbuild/android-arm64" "0.19.8" + "@esbuild/android-x64" "0.19.8" + "@esbuild/darwin-arm64" "0.19.8" + "@esbuild/darwin-x64" "0.19.8" + "@esbuild/freebsd-arm64" "0.19.8" + "@esbuild/freebsd-x64" "0.19.8" + "@esbuild/linux-arm" "0.19.8" + "@esbuild/linux-arm64" "0.19.8" + "@esbuild/linux-ia32" "0.19.8" + "@esbuild/linux-loong64" "0.19.8" + "@esbuild/linux-mips64el" "0.19.8" + "@esbuild/linux-ppc64" "0.19.8" + "@esbuild/linux-riscv64" "0.19.8" + "@esbuild/linux-s390x" "0.19.8" + "@esbuild/linux-x64" "0.19.8" + "@esbuild/netbsd-x64" "0.19.8" + "@esbuild/openbsd-x64" "0.19.8" + "@esbuild/sunos-x64" "0.19.8" + "@esbuild/win32-arm64" "0.19.8" + "@esbuild/win32-ia32" "0.19.8" + "@esbuild/win32-x64" "0.19.8" + escalade@^3.0.2, escalade@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"