From 1a312104de6f11b76d9768633fcd23bbdd1db413 Mon Sep 17 00:00:00 2001 From: Boris Yankov Date: Thu, 19 Dec 2024 04:26:53 +0200 Subject: [PATCH] [WIP] feat: add NativeWind plugin --- .npmrc | 2 +- apps/tester-app/.ruby-version | 2 +- apps/tester-app/index.js | 5 +- apps/tester-app/ios/Podfile.lock | 74 ++- apps/tester-app/nativewind-env.d.ts | 3 + apps/tester-app/package.json | 6 +- apps/tester-app/rspack.config.mjs | 9 + apps/tester-app/src/App.tsx | 13 +- .../src/nativewind/NativeWindView.tsx | 21 + apps/tester-app/src/nativewind/global.css | 3 + apps/tester-app/tailwind.config.js | 12 + apps/tester-app/tsconfig.json | 1 + apps/tester-federation-v2/ios/Podfile.lock | 2 +- packages/plugin-nativewind/CHANGELOG.md | 1 + packages/plugin-nativewind/README.md | 102 ++++ packages/plugin-nativewind/loader/index.d.ts | 1 + packages/plugin-nativewind/loader/index.js | 1 + packages/plugin-nativewind/package.json | 54 ++ packages/plugin-nativewind/src/index.ts | 2 + packages/plugin-nativewind/src/loader.ts | 48 ++ packages/plugin-nativewind/src/plugin.ts | 28 + packages/plugin-nativewind/src/rules.ts | 43 ++ .../plugin-nativewind/tsconfig.build.json | 8 + packages/plugin-nativewind/tsconfig.json | 26 + pnpm-lock.yaml | 565 +++++++++++++++++- 25 files changed, 1013 insertions(+), 19 deletions(-) create mode 100644 apps/tester-app/nativewind-env.d.ts create mode 100644 apps/tester-app/src/nativewind/NativeWindView.tsx create mode 100644 apps/tester-app/src/nativewind/global.css create mode 100644 apps/tester-app/tailwind.config.js create mode 100644 packages/plugin-nativewind/CHANGELOG.md create mode 100644 packages/plugin-nativewind/README.md create mode 100644 packages/plugin-nativewind/loader/index.d.ts create mode 100644 packages/plugin-nativewind/loader/index.js create mode 100644 packages/plugin-nativewind/package.json create mode 100644 packages/plugin-nativewind/src/index.ts create mode 100644 packages/plugin-nativewind/src/loader.ts create mode 100644 packages/plugin-nativewind/src/plugin.ts create mode 100644 packages/plugin-nativewind/src/rules.ts create mode 100644 packages/plugin-nativewind/tsconfig.build.json create mode 100644 packages/plugin-nativewind/tsconfig.json diff --git a/.npmrc b/.npmrc index e2943a62d..595cc51a9 100644 --- a/.npmrc +++ b/.npmrc @@ -1,4 +1,4 @@ auto-install-peers=false link-workspace-packages=true -package-manager-strict-version=true +package-manager-strict-version=false update-notifier=false diff --git a/apps/tester-app/.ruby-version b/apps/tester-app/.ruby-version index 49cdd668e..5b8201173 100644 --- a/apps/tester-app/.ruby-version +++ b/apps/tester-app/.ruby-version @@ -1 +1 @@ -2.7.6 +system \ No newline at end of file diff --git a/apps/tester-app/index.js b/apps/tester-app/index.js index 72e2ec5a6..d2b98854e 100644 --- a/apps/tester-app/index.js +++ b/apps/tester-app/index.js @@ -4,7 +4,10 @@ import { AppRegistry } from 'react-native'; import { name as appName } from './app.json'; import App from './src/App'; -ScriptManager.shared.setStorage(AsyncStorage); +if (!__DEV__) { + ScriptManager.shared.setStorage(AsyncStorage); +} + ScriptManager.shared.addResolver((scriptId, _caller) => { if (__DEV__) { return { diff --git a/apps/tester-app/ios/Podfile.lock b/apps/tester-app/ios/Podfile.lock index e8a3d45df..a39521694 100644 --- a/apps/tester-app/ios/Podfile.lock +++ b/apps/tester-app/ios/Podfile.lock @@ -1266,6 +1266,72 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga + - react-native-safe-area-context (4.14.0): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - react-native-safe-area-context/common (= 4.14.0) + - react-native-safe-area-context/fabric (= 4.14.0) + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - react-native-safe-area-context/common (4.14.0): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - react-native-safe-area-context/fabric (4.14.0): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - react-native-safe-area-context/common + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga - React-nativeconfig (0.76.3) - React-NativeModulesApple (0.76.3): - glog @@ -1756,6 +1822,7 @@ DEPENDENCIES: - React-logger (from `../node_modules/react-native/ReactCommon/logger`) - React-Mapbuffer (from `../node_modules/react-native/ReactCommon`) - React-microtasksnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/microtasks`) + - react-native-safe-area-context (from `../node_modules/react-native-safe-area-context`) - React-nativeconfig (from `../node_modules/react-native/ReactCommon`) - React-NativeModulesApple (from `../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios`) - React-perflogger (from `../node_modules/react-native/ReactCommon/reactperflogger`) @@ -1871,6 +1938,8 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native/ReactCommon" React-microtasksnativemodule: :path: "../node_modules/react-native/ReactCommon/react/nativemodule/microtasks" + react-native-safe-area-context: + :path: "../node_modules/react-native-safe-area-context" React-nativeconfig: :path: "../node_modules/react-native/ReactCommon" React-NativeModulesApple: @@ -1978,6 +2047,7 @@ SPEC CHECKSUMS: React-logger: 26155dc23db5c9038794db915f80bd2044512c2e React-Mapbuffer: ad1ba0205205a16dbff11b8ade6d1b3959451658 React-microtasksnativemodule: e771eb9eb6ace5884ee40a293a0e14a9d7a4343c + react-native-safe-area-context: 2500e4fe998caad50ad3bc51ec23ef951308569e React-nativeconfig: aeed6e2a8ac02b2df54476afcc7c663416c12bf7 React-NativeModulesApple: c5b7813da94136f50ef084fa1ac077332dcfc658 React-perflogger: 6afb7eebf7d9521cc70481688ccddf212970e9d3 @@ -2013,8 +2083,8 @@ SPEC CHECKSUMS: RNSVG: 536cd3c866c878faf72beaba166c8b02fe2b762b SocketRocket: d4aabe649be1e368d1318fdf28a022d714d65748 SwiftyRSA: 8c6dd1ea7db1b8dc4fb517a202f88bb1354bc2c6 - Yoga: f6dc1b6029519815d5516a1241821c6a9074af6d + Yoga: 3deb2471faa9916c8a82dda2a22d3fba2620ad37 PODFILE CHECKSUM: 591811811bdab95f1675c6871b0554706bf77020 -COCOAPODS: 1.15.2 +COCOAPODS: 1.16.2 diff --git a/apps/tester-app/nativewind-env.d.ts b/apps/tester-app/nativewind-env.d.ts new file mode 100644 index 000000000..958346287 --- /dev/null +++ b/apps/tester-app/nativewind-env.d.ts @@ -0,0 +1,3 @@ +/// + +// NOTE: This file should not be edited and should be committed with your source code. It is generated by NativeWind. diff --git a/apps/tester-app/package.json b/apps/tester-app/package.json index 0e0e7e855..c25d4b684 100644 --- a/apps/tester-app/package.json +++ b/apps/tester-app/package.json @@ -18,14 +18,18 @@ }, "dependencies": { "@react-native-async-storage/async-storage": "^1.23.1", + "nativewind": "^4.1.23", "react": "18.3.1", "react-native": "0.76.3", "react-native-reanimated": "^3.16.3", - "react-native-svg": "15.8.0" + "react-native-safe-area-context": "^4.14.0", + "react-native-svg": "15.8.0", + "tailwindcss": "^3.4.17" }, "devDependencies": { "@babel/core": "^7.25.2", "@callstack/repack": "workspace:*", + "@callstack/repack-plugin-nativewind": "workspace:*", "@callstack/repack-plugin-reanimated": "workspace:*", "@react-native-community/cli": "15.0.1", "@react-native-community/cli-platform-android": "15.0.1", diff --git a/apps/tester-app/rspack.config.mjs b/apps/tester-app/rspack.config.mjs index 427fff3fd..23919a578 100644 --- a/apps/tester-app/rspack.config.mjs +++ b/apps/tester-app/rspack.config.mjs @@ -2,6 +2,7 @@ import { createRequire } from 'node:module'; import path from 'node:path'; import * as Repack from '@callstack/repack'; +import { NativeWindPlugin } from '@callstack/repack-plugin-nativewind'; import { ReanimatedPlugin } from '@callstack/repack-plugin-reanimated'; import { RsdoctorRspackPlugin } from '@rsdoctor/rspack-plugin'; @@ -73,6 +74,7 @@ export default (env) => { transform: { react: { runtime: 'automatic', + importSource: 'react-native-css-interop', }, }, }, @@ -197,6 +199,13 @@ export default (env) => { // }), process.env.RSDOCTOR && new RsdoctorRspackPlugin(), new ReanimatedPlugin(), + new NativeWindPlugin({ + input: './src/nativewind/global.css', + }), ].filter(Boolean), + + experiments: { + css: true, + }, }; }; diff --git a/apps/tester-app/src/App.tsx b/apps/tester-app/src/App.tsx index 7f4134241..cca5cdd23 100644 --- a/apps/tester-app/src/App.tsx +++ b/apps/tester-app/src/App.tsx @@ -1,18 +1,20 @@ import { Appearance } from 'react-native'; -import { AppContainer } from './ui/AppContainer'; -import { Section } from './ui/Section'; -import { SectionContainer } from './ui/SectionContainer'; - +import { verifyInstallation } from 'nativewind'; import { AssetsTestContainer } from './assetsTest/AssetsTestContainer'; import { AsyncContainer } from './asyncChunks/AsyncContainer'; import { MiniAppsContainer } from './miniapp/MiniAppsContainer'; +import { NativeWindView } from './nativewind/NativeWindView'; import { ReanimatedBox } from './reanimated/ReanimatedBox'; import { RemoteContainer } from './remoteChunks/RemoteContainer'; +import { AppContainer } from './ui/AppContainer'; +import { Section } from './ui/Section'; +import { SectionContainer } from './ui/SectionContainer'; Appearance.setColorScheme('light'); const App = () => { + verifyInstallation(); return ( @@ -31,6 +33,9 @@ const App = () => {
+
+ +
); diff --git a/apps/tester-app/src/nativewind/NativeWindView.tsx b/apps/tester-app/src/nativewind/NativeWindView.tsx new file mode 100644 index 000000000..503aaef5f --- /dev/null +++ b/apps/tester-app/src/nativewind/NativeWindView.tsx @@ -0,0 +1,21 @@ +import { StyleSheet, Text, View } from 'react-native'; + +import './global.css'; + +export function NativeWindView() { + return ( + + + Hello, World! + + + ); +} + +const styles = StyleSheet.create({ + container: { + flex: 1, + alignItems: 'center', + marginVertical: 16, + }, +}); diff --git a/apps/tester-app/src/nativewind/global.css b/apps/tester-app/src/nativewind/global.css new file mode 100644 index 000000000..b5c61c956 --- /dev/null +++ b/apps/tester-app/src/nativewind/global.css @@ -0,0 +1,3 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; diff --git a/apps/tester-app/tailwind.config.js b/apps/tester-app/tailwind.config.js new file mode 100644 index 000000000..18df7fd36 --- /dev/null +++ b/apps/tester-app/tailwind.config.js @@ -0,0 +1,12 @@ +/** @type {import('tailwindcss').Config} */ +module.exports = { + content: ['./src/*.{js,jsx,ts,tsx}'], + presets: [require('nativewind/preset')], + theme: { + extend: {}, + fontFamily: { + mono: ['monospace'], + }, + }, + plugins: [], +}; diff --git a/apps/tester-app/tsconfig.json b/apps/tester-app/tsconfig.json index 1455a11e2..0a2cb6cd9 100644 --- a/apps/tester-app/tsconfig.json +++ b/apps/tester-app/tsconfig.json @@ -1,6 +1,7 @@ { "extends": "@react-native/typescript-config/tsconfig.json", "compilerOptions": { + "jsxImportSource": "nativewind", "module": "ES2022" // for dynamic imports & top-level await } } diff --git a/apps/tester-federation-v2/ios/Podfile.lock b/apps/tester-federation-v2/ios/Podfile.lock index 3c6b7662e..c3b0fae77 100644 --- a/apps/tester-federation-v2/ios/Podfile.lock +++ b/apps/tester-federation-v2/ios/Podfile.lock @@ -1964,7 +1964,7 @@ SPEC CHECKSUMS: RNScreens: e389d6a6a66a4f0d3662924ecae803073ccce8ec SocketRocket: d4aabe649be1e368d1318fdf28a022d714d65748 SwiftyRSA: 8c6dd1ea7db1b8dc4fb517a202f88bb1354bc2c6 - Yoga: f6dc1b6029519815d5516a1241821c6a9074af6d + Yoga: 3deb2471faa9916c8a82dda2a22d3fba2620ad37 PODFILE CHECKSUM: a2fe66c9f356ead5b62cb5a645336db60f03a64d diff --git a/packages/plugin-nativewind/CHANGELOG.md b/packages/plugin-nativewind/CHANGELOG.md new file mode 100644 index 000000000..2261629b8 --- /dev/null +++ b/packages/plugin-nativewind/CHANGELOG.md @@ -0,0 +1 @@ +# @callstack/repack-plugin-nativewind diff --git a/packages/plugin-nativewind/README.md b/packages/plugin-nativewind/README.md new file mode 100644 index 000000000..cdd392758 --- /dev/null +++ b/packages/plugin-nativewind/README.md @@ -0,0 +1,102 @@ +

+ +

+

+A toolkit to build your React Native application with Rspack or Webpack. +

+ +--- + +[![Build Status][build-badge]][build] +[![Version][version-badge]][version] +[![MIT License][license-badge]][license] +[![PRs Welcome][prs-welcome-badge]][prs-welcome] +[![Code of Conduct][coc-badge]][coc] + +`@callstack/repack-plugin-nativewind` is a plugin for `@callstack/repack` that integrates [NativeWind](https://github.com/nativewind/nativewind) into your React Native projects. + +## About + +Use NativeWind in Re.Pack projects. + +## Installation + +```sh +npm install -D @callstack/repack-plugin-nativewind +``` + +## Usage + +### Plugin + +To add the plugin to your Re.Pack configuration follow this guide: https://www.nativewind.dev/getting-started/react-native + +- Follow step 1, 2, and 5 (and optionally 7) +- At step 3 and 4, instead of editing `babel.config.js` (which is not used) or changing Metro config (again, not used) update your `rspack.config.js` or `webpack.config.js` as follows: + +```js +import { NativeWindPlugin } from "@callstack/repack-plugin-nativewind"; + +export default (env) => { + // ... + return { + // ... + plugins: [ + // ... + new NativeWindPlugin({ + input: "./global.css", + }), + ], + }; +}; +``` + +### Loader + +The plugin also comes with it's own loader, which you can use on it's own inside `rspack.config.js` or `webpack.config.js` like this: + +```js +export default (env) => { + // ... + return { + // ... + module: { + rules: [ + { + test: /\.ts$/, + use: { + loader: "@callstack/repack-plugin-nativewind/loader", + options: { + babelPlugins: [ + [ + "@babel/plugin-syntax-typescript", + { isTSX: false, allowNamespaces: true }, + ], + "nativewind/babel", + ], + }, + }, + }, + ], + }, + }; +}; +``` + +--- + +Check out our website at https://re-pack.dev for more info and documentation or our GitHub: https://github.com/callstack/repack. + + + +[callstack-readme-with-love]: https://callstack.com/?utm_source=github.com&utm_medium=referral&utm_campaign=react-native-paper&utm_term=readme-with-love +[build-badge]: https://img.shields.io/github/workflow/status/callstack/repack/CI/main?style=flat-square +[build]: https://github.com/callstack/repack/actions/workflows/main.yml +[version-badge]: https://img.shields.io/npm/v/@callstack/repack-plugin-nativewind?style=flat-square +[version]: https://www.npmjs.com/package/@callstack/repack-plugin-nativewind +[license-badge]: https://img.shields.io/npm/l/@callstack/repack-plugin-nativewind?style=flat-square +[license]: https://github.com/callstack/repack/blob/master/LICENSE +[prs-welcome-badge]: https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square +[prs-welcome]: ./CONTRIBUTING.md +[coc-badge]: https://img.shields.io/badge/code%20of-conduct-ff69b4.svg?style=flat-square +[coc]: https://github.com/callstack/repack/blob/master/CODE_OF_CONDUCT.md diff --git a/packages/plugin-nativewind/loader/index.d.ts b/packages/plugin-nativewind/loader/index.d.ts new file mode 100644 index 000000000..7da59b1b3 --- /dev/null +++ b/packages/plugin-nativewind/loader/index.d.ts @@ -0,0 +1 @@ +export * from '../dist/loader.js'; diff --git a/packages/plugin-nativewind/loader/index.js b/packages/plugin-nativewind/loader/index.js new file mode 100644 index 000000000..db08a49f7 --- /dev/null +++ b/packages/plugin-nativewind/loader/index.js @@ -0,0 +1 @@ +module.exports = require('../dist/loader.js'); diff --git a/packages/plugin-nativewind/package.json b/packages/plugin-nativewind/package.json new file mode 100644 index 000000000..44008a228 --- /dev/null +++ b/packages/plugin-nativewind/package.json @@ -0,0 +1,54 @@ +{ + "name": "@callstack/repack-plugin-nativewind", + "version": "5.0.0-rc.3", + "description": "A plugin for @callstack/repack that integrates NativeWind", + "author": "Boris Yankov ", + "license": "MIT", + "homepage": "https://github.com/callstack/repack", + "repository": "github:callstack/repack", + "type": "commonjs", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "files": ["dist", "loader"], + "exports": { + ".": { + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + }, + "./loader": { + "types": "./loader/index.d.ts", + "default": "./loader/index.js" + } + }, + "keywords": [ + "repack", + "re.pack", + "plugin", + "repack-plugin", + "nativewind", + "tailwind" + ], + "publishConfig": { + "registry": "https://registry.npmjs.org/", + "access": "public" + }, + "engineStrict": true, + "engines": { + "node": ">=18" + }, + "dependencies": {}, + "peerDependencies": { + "@babel/core": "^7.20", + "@callstack/repack": "^5.0.0-rc.3" + }, + "devDependencies": { + "@callstack/repack": "workspace:*", + "@rspack/core": "1.0.8", + "@types/babel__core": "7.20.5", + "@types/node": "^18" + }, + "scripts": { + "build": "tsc -p tsconfig.build.json", + "typecheck": "tsc --noEmit" + } +} diff --git a/packages/plugin-nativewind/src/index.ts b/packages/plugin-nativewind/src/index.ts new file mode 100644 index 000000000..4a583c7ae --- /dev/null +++ b/packages/plugin-nativewind/src/index.ts @@ -0,0 +1,2 @@ +export { NativeWindPlugin } from './plugin.js'; +export { nativeWindModuleRules } from './rules.js'; diff --git a/packages/plugin-nativewind/src/loader.ts b/packages/plugin-nativewind/src/loader.ts new file mode 100644 index 000000000..14e0ad6cc --- /dev/null +++ b/packages/plugin-nativewind/src/loader.ts @@ -0,0 +1,48 @@ +import { transform } from '@babel/core'; +import type { LoaderContext } from '@rspack/core'; + +interface NativeWindLoaderOptions { + babelPlugins?: string[]; + input: string; +} + +export const raw = false; + +export default function nativeWindLoader( + this: LoaderContext, + source: string +) { + this.cacheable(); + const callback = this.async(); + const options = this.getOptions(); + + const babelPlugins = options.babelPlugins ?? []; + + transform( + source, + { + filename: this.resourcePath, + babelrc: false, + configFile: false, + compact: false, + comments: true, + plugins: [...babelPlugins], + // , { + // runtime: "automatic", + // importSource: "react-native-css-interop", + // } + // presets: ['nativewind/preset'], + }, + (err, result) => { + if (err) { + console.log('@@@ NativeWindLoader ERROR', err); + callback(err); + return; + } + // console.log('@@@ NativeWindLoader', result?.code); + // @ts-ignore + callback(null, result.code, result.map); + return; + } + ); +} diff --git a/packages/plugin-nativewind/src/plugin.ts b/packages/plugin-nativewind/src/plugin.ts new file mode 100644 index 000000000..bb003e435 --- /dev/null +++ b/packages/plugin-nativewind/src/plugin.ts @@ -0,0 +1,28 @@ +import type { Compiler, RspackPluginInstance } from '@rspack/core'; +import { nativeWindModuleRules } from './rules.js'; + +export interface NativeWindPluginConfig { + input: string; +} + +export class NativeWindPlugin implements RspackPluginInstance { + private input: string; + + constructor(pluginConfig: NativeWindPluginConfig) { + if (!pluginConfig || typeof pluginConfig.input !== 'string') { + throw new Error('NativeWindPlugin requires an "input" string option.'); + } + this.input = pluginConfig.input; + } + + apply(compiler: Compiler) { + // add rules for transpiling wih NativeWind loader + compiler.options.module.rules.push(nativeWindModuleRules); + + compiler.hooks.compilation.tap('NativeWindPlugin', (_compilation) => { + console.log('The Rspack build process is starting!'); + }); + + // TODO: do something + } +} diff --git a/packages/plugin-nativewind/src/rules.ts b/packages/plugin-nativewind/src/rules.ts new file mode 100644 index 000000000..56c73efd6 --- /dev/null +++ b/packages/plugin-nativewind/src/rules.ts @@ -0,0 +1,43 @@ +import { getModulePaths } from '@callstack/repack'; + +export const nativeWindModuleRules = { + exclude: getModulePaths([ + 'react', + 'react-native', + '@react-native', + 'react-native-macos', + 'react-native-windows', + 'react-native-tvos', + '@callstack/react-native-visionos', + ]), + oneOf: [ + { + test: /\.tsx$/, + use: { + loader: '@callstack/repack-plugin-nativewind/loader', + options: { + babelPlugins: [ + [ + '@babel/plugin-syntax-typescript', + { + isTSX: true, + allowNamespaces: true, + jsxImportSource: 'react-native-css-interop', + }, + ], + ], + }, + }, + }, + { + test: /\.jsx?$/, + use: { + loader: '@callstack/repack-plugin-nativewind/loader', + // presets: ['nativewind/babel', { jsxImportSource: "nativewind" }], + options: { + babelPlugins: ['babel-plugin-syntax-hermes-parser'], + }, + }, + }, + ], +}; diff --git a/packages/plugin-nativewind/tsconfig.build.json b/packages/plugin-nativewind/tsconfig.build.json new file mode 100644 index 000000000..a74bb84bd --- /dev/null +++ b/packages/plugin-nativewind/tsconfig.build.json @@ -0,0 +1,8 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "dist", + "rootDir": "src", + "paths": {} + } +} diff --git a/packages/plugin-nativewind/tsconfig.json b/packages/plugin-nativewind/tsconfig.json new file mode 100644 index 000000000..ec5007917 --- /dev/null +++ b/packages/plugin-nativewind/tsconfig.json @@ -0,0 +1,26 @@ +{ + "compilerOptions": { + "target": "ES2021", + "lib": ["ES2021"], + "module": "commonjs", + "moduleResolution": "node", + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "resolveJsonModule": true, + "skipLibCheck": true, + "strict": true, + "declaration": true, + "sourceMap": false, + "rootDirs": ["src", "../repack/src", "../dev-server/src"], + "paths": { + "@callstack/repack": ["../repack/src/index.ts"], + "@callstack/repack/*": ["../repack/src/*"], + "@callstack/repack-dev-server": ["../dev-server/src/index.ts"], + "@callstack/repack-dev-server/*": ["../dev-server/src/*"], + "@react-native/dev-middleware": [ + "../dev-server/node_modules/@react-native/dev-middleware/dist" + ] + } + }, + "include": ["src/**/*"] +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ee03ae702..c24cd8f8b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -56,6 +56,9 @@ importers: '@react-native-async-storage/async-storage': specifier: ^1.23.1 version: 1.24.0(react-native@0.76.3(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@react-native-community/cli-server-api@15.0.1)(@types/react@18.3.3)(react@18.3.1)) + nativewind: + specifier: ^4.1.23 + version: 4.1.23(react-native-reanimated@3.16.3(@babel/core@7.25.2)(react-native@0.76.3(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@react-native-community/cli-server-api@15.0.1)(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react-native-safe-area-context@4.14.0(react-native@0.76.3(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@react-native-community/cli-server-api@15.0.1)(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react-native-svg@15.8.0(react-native@0.76.3(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@react-native-community/cli-server-api@15.0.1)(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react-native@0.76.3(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@react-native-community/cli-server-api@15.0.1)(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)(tailwindcss@3.4.17) react: specifier: 18.3.1 version: 18.3.1 @@ -65,9 +68,15 @@ importers: react-native-reanimated: specifier: ^3.16.3 version: 3.16.3(@babel/core@7.25.2)(react-native@0.76.3(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@react-native-community/cli-server-api@15.0.1)(@types/react@18.3.3)(react@18.3.1))(react@18.3.1) + react-native-safe-area-context: + specifier: ^4.14.0 + version: 4.14.0(react-native@0.76.3(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@react-native-community/cli-server-api@15.0.1)(@types/react@18.3.3)(react@18.3.1))(react@18.3.1) react-native-svg: specifier: 15.8.0 version: 15.8.0(react-native@0.76.3(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@react-native-community/cli-server-api@15.0.1)(@types/react@18.3.3)(react@18.3.1))(react@18.3.1) + tailwindcss: + specifier: ^3.4.17 + version: 3.4.17 devDependencies: '@babel/core': specifier: ^7.25.2 @@ -75,6 +84,9 @@ importers: '@callstack/repack': specifier: workspace:* version: link:../../packages/repack + '@callstack/repack-plugin-nativewind': + specifier: workspace:* + version: link:../../packages/plugin-nativewind '@callstack/repack-plugin-reanimated': specifier: workspace:* version: link:../../packages/plugin-reanimated @@ -137,7 +149,7 @@ importers: version: 5.7.2 vitest: specifier: ^2.0.5 - version: 2.0.5(@types/node@22.5.4)(sass-embedded@1.80.1)(terser@5.31.3) + version: 2.0.5(@types/node@22.5.4)(lightningcss@1.28.2)(sass-embedded@1.80.1)(terser@5.31.3) webpack: specifier: ^5.94.0 version: 5.94.0 @@ -422,6 +434,21 @@ importers: specifier: ^5.7.2 version: 5.7.2 + packages/plugin-nativewind: + devDependencies: + '@callstack/repack': + specifier: workspace:* + version: link:../repack + '@rspack/core': + specifier: 1.0.8 + version: 1.0.8(@swc/helpers@0.5.13) + '@types/babel__core': + specifier: 7.20.5 + version: 7.20.5 + '@types/node': + specifier: ^18 + version: 18.19.41 + packages/plugin-reanimated: devDependencies: '@callstack/repack': @@ -630,6 +657,10 @@ importers: packages: + '@alloc/quick-lru@5.2.0': + resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} + engines: {node: '>=10'} + '@ampproject/remapping@2.3.0': resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} @@ -1721,6 +1752,10 @@ packages: resolution: {integrity: sha512-xUQ14WQGR/HK5ei+2CvgcwoH9fQ4PgPGmVFSN0pc1+fVyDL3MREhyAY7nxEErSu6CkllBM3D7e3e+kOvtu+eIg==} engines: {node: '>=18'} + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + '@isaacs/ttlcache@1.4.1': resolution: {integrity: sha512-RQgQ4uQ+pLbqXfOmieB91ejmLwvSgv9nLx6sT6sD83s7umBypgg+OIBOBbEUiJXrfpnp9j0mRhYYdzp9uqq3lA==} engines: {node: '>=12'} @@ -2048,6 +2083,10 @@ packages: cpu: [x64] os: [win32] + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + '@polka/url@1.0.0-next.25': resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==} @@ -3060,6 +3099,13 @@ packages: resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} engines: {node: '>=10'} + ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + + any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} @@ -3067,12 +3113,18 @@ packages: appdirsjs@1.2.7: resolution: {integrity: sha512-Quji6+8kLBC3NnBeo14nPDq0+2jUs5s3/xEye+udFHumHhRk4M7aAMXp/PBJqkKYGuuyR9M/6Dq7d2AViiGmhw==} + arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + argparse@1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + array-timsort@1.0.3: + resolution: {integrity: sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==} + array-union@2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} @@ -3326,6 +3378,10 @@ packages: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} + camelcase-css@2.0.1: + resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} + engines: {node: '>= 6'} + camelcase@5.3.1: resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} engines: {node: '>=6'} @@ -3513,6 +3569,10 @@ packages: commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + commander@6.2.1: resolution: {integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==} engines: {node: '>= 6'} @@ -3525,6 +3585,10 @@ packages: resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} engines: {node: ^12.20.0 || >=14} + comment-json@4.2.5: + resolution: {integrity: sha512-bKw/r35jR3HGt5PEPm1ljsQQGyCrR8sFGNiN5L+ykDHdpO8Smxkrkla9Yi6NkQyUrb8V54PGhfMs6NrIwtxtdw==} + engines: {node: '>= 6'} + common-path-prefix@3.0.0: resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==} @@ -3646,6 +3710,11 @@ packages: resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} engines: {node: '>= 6'} + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + csso@5.0.5: resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} @@ -3695,6 +3764,15 @@ packages: supports-color: optional: true + debug@4.4.0: + resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + decamelize@1.2.0: resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} engines: {node: '>=0.10.0'} @@ -3773,6 +3851,11 @@ packages: resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} engines: {node: '>=8'} + detect-libc@1.0.3: + resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} + engines: {node: '>=0.10'} + hasBin: true + detect-newline@3.1.0: resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} engines: {node: '>=8'} @@ -3784,6 +3867,9 @@ packages: devlop@1.1.0: resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + didyoumean@1.2.2: + resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + diff-sequences@29.6.3: resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -3796,6 +3882,9 @@ packages: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} + dlv@1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + dom-helpers@5.2.1: resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==} @@ -4221,6 +4310,10 @@ packages: debug: optional: true + foreground-child@3.3.0: + resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} + engines: {node: '>=14'} + form-data@4.0.0: resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} engines: {node: '>= 6'} @@ -4319,9 +4412,17 @@ packages: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + glob-to-regexp@0.4.1: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + glob@10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + hasBin: true + glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported @@ -4372,6 +4473,10 @@ packages: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} + has-own-prop@2.0.0: + resolution: {integrity: sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==} + engines: {node: '>=8'} + has-property-descriptors@1.0.2: resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} @@ -4808,6 +4913,9 @@ packages: resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} engines: {node: '>=8'} + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + jest-changed-files@29.7.0: resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -4941,6 +5049,10 @@ packages: node-notifier: optional: true + jiti@1.21.7: + resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} + hasBin: true + jju@1.4.0: resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} @@ -5065,6 +5177,74 @@ packages: lighthouse-logger@1.4.2: resolution: {integrity: sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==} + lightningcss-darwin-arm64@1.28.2: + resolution: {integrity: sha512-/8cPSqZiusHSS+WQz0W4NuaqFjquys1x+NsdN/XOHb+idGHJSoJ7SoQTVl3DZuAgtPZwFZgRfb/vd1oi8uX6+g==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [darwin] + + lightningcss-darwin-x64@1.28.2: + resolution: {integrity: sha512-R7sFrXlgKjvoEG8umpVt/yutjxOL0z8KWf0bfPT3cYMOW4470xu5qSHpFdIOpRWwl3FKNMUdbKtMUjYt0h2j4g==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [darwin] + + lightningcss-freebsd-x64@1.28.2: + resolution: {integrity: sha512-l2qrCT+x7crAY+lMIxtgvV10R8VurzHAoUZJaVFSlHrN8kRLTvEg9ObojIDIexqWJQvJcVVV3vfzsEynpiuvgA==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [freebsd] + + lightningcss-linux-arm-gnueabihf@1.28.2: + resolution: {integrity: sha512-DKMzpICBEKnL53X14rF7hFDu8KKALUJtcKdFUCW5YOlGSiwRSgVoRjM97wUm/E0NMPkzrTi/rxfvt7ruNK8meg==} + engines: {node: '>= 12.0.0'} + cpu: [arm] + os: [linux] + + lightningcss-linux-arm64-gnu@1.28.2: + resolution: {integrity: sha512-nhfjYkfymWZSxdtTNMWyhFk2ImUm0X7NAgJWFwnsYPOfmtWQEapzG/DXZTfEfMjSzERNUNJoQjPAbdqgB+sjiw==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + + lightningcss-linux-arm64-musl@1.28.2: + resolution: {integrity: sha512-1SPG1ZTNnphWvAv8RVOymlZ8BDtAg69Hbo7n4QxARvkFVCJAt0cgjAw1Fox0WEhf4PwnyoOBaVH0Z5YNgzt4dA==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + + lightningcss-linux-x64-gnu@1.28.2: + resolution: {integrity: sha512-ZhQy0FcO//INWUdo/iEdbefntTdpPVQ0XJwwtdbBuMQe+uxqZoytm9M+iqR9O5noWFaxK+nbS2iR/I80Q2Ofpg==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + + lightningcss-linux-x64-musl@1.28.2: + resolution: {integrity: sha512-alb/j1NMrgQmSFyzTbN1/pvMPM+gdDw7YBuQ5VSgcFDypN3Ah0BzC2dTZbzwzaMdUVDszX6zH5MzjfVN1oGuww==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + + lightningcss-win32-arm64-msvc@1.28.2: + resolution: {integrity: sha512-WnwcjcBeAt0jGdjlgbT9ANf30pF0C/QMb1XnLnH272DQU8QXh+kmpi24R55wmWBwaTtNAETZ+m35ohyeMiNt+g==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [win32] + + lightningcss-win32-x64-msvc@1.28.2: + resolution: {integrity: sha512-3piBifyT3avz22o6mDKywQC/OisH2yDK+caHWkiMsF82i3m5wDBadyCjlCQ5VNgzYkxrWZgiaxHDdd5uxsi0/A==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [win32] + + lightningcss@1.28.2: + resolution: {integrity: sha512-ePLRrbt3fgjXI5VFZOLbvkLD5ZRuxGKm+wJ3ujCqBtL3NanDHPo/5zicR5uEKAPiIjBYF99BM4K4okvMznjkVA==} + engines: {node: '>= 12.0.0'} + + lilconfig@3.1.3: + resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} + engines: {node: '>=14'} + lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} @@ -5548,6 +5728,10 @@ packages: resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} engines: {node: '>=8.6'} + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + mime-db@1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} @@ -5639,11 +5823,20 @@ packages: resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + nanoid@3.3.7: resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + nativewind@4.1.23: + resolution: {integrity: sha512-oLX3suGI6ojQqWxdQezOSM5GmJ4KvMnMtmaSMN9Ggb5j7ysFt4nHxb1xs8RDjZR7BWc+bsetNJU8IQdQMHqRpg==} + engines: {node: '>=16'} + peerDependencies: + tailwindcss: '>3.3.0' + natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} @@ -5751,6 +5944,10 @@ packages: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} + object-hash@3.0.0: + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} + engines: {node: '>= 6'} + object-inspect@1.13.2: resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} engines: {node: '>= 0.4'} @@ -5860,6 +6057,9 @@ packages: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} @@ -5956,6 +6156,10 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} + pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} + pify@4.0.1: resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} engines: {node: '>=6'} @@ -6002,6 +6206,43 @@ packages: resolution: {integrity: sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==} engines: {node: '>= 0.12.0'} + postcss-import@15.1.0: + resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} + engines: {node: '>=14.0.0'} + peerDependencies: + postcss: ^8.0.0 + + postcss-js@4.0.1: + resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} + engines: {node: ^12 || ^14 || >= 16} + peerDependencies: + postcss: ^8.4.21 + + postcss-load-config@4.0.2: + resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} + engines: {node: '>= 14'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + + postcss-nested@6.2.0: + resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 + + postcss-selector-parser@6.1.2: + resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} + engines: {node: '>=4'} + + postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + postcss@8.4.47: resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==} engines: {node: ^10 || ^12 || >=14} @@ -6144,6 +6385,22 @@ packages: react-lazy-with-preload@2.2.1: resolution: {integrity: sha512-ONSb8gizLE5jFpdHAclZ6EAAKuFX2JydnFXPPPjoUImZlLjGtKzyBS8SJgJq7CpLgsGKh9QCZdugJyEEOVC16Q==} + react-native-css-interop@0.1.22: + resolution: {integrity: sha512-Mu01e+H9G+fxSWvwtgWlF5MJBJC4VszTCBXopIpeR171lbeBInHb8aHqoqRPxmJpi3xIHryzqKFOJYAdk7PBxg==} + engines: {node: '>=18'} + peerDependencies: + react: '>=18' + react-native: '*' + react-native-reanimated: '>=3.6.2' + react-native-safe-area-context: '*' + react-native-svg: '*' + tailwindcss: ~3 + peerDependenciesMeta: + react-native-safe-area-context: + optional: true + react-native-svg: + optional: true + react-native-reanimated@3.16.3: resolution: {integrity: sha512-OWlA6e1oHhytTpc7WiSZ7Tmb8OYwLKYZz29Sz6d6WAg60Hm5GuAiKIWUG7Ako7FLcYhFkA0pEQ2xPMEYUo9vlw==} peerDependencies: @@ -6233,6 +6490,9 @@ packages: resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} engines: {node: '>=0.10.0'} + read-cache@1.0.0: + resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + read-yaml-file@1.1.0: resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} engines: {node: '>=6'} @@ -6323,6 +6583,10 @@ packages: remark@14.0.3: resolution: {integrity: sha512-bfmJW1dmR2LvaMJuAnE88pZP9DktIFYXazkTfOIKZzi3Knk9lT0roItIA24ydOucI3bV/g/tXBA6hzqq3FV9Ew==} + repeat-string@1.6.1: + resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} + engines: {node: '>=0.10'} + require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -6900,6 +7164,11 @@ packages: style-to-object@0.4.4: resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==} + sucrase@3.35.0: + resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + sudo-prompt@9.2.1: resolution: {integrity: sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw==} @@ -6931,6 +7200,11 @@ packages: engines: {node: '>=14.0.0'} hasBin: true + tailwindcss@3.4.17: + resolution: {integrity: sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==} + engines: {node: '>=14.0.0'} + hasBin: true + tapable@2.2.1: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} engines: {node: '>=6'} @@ -6972,6 +7246,13 @@ packages: resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} engines: {node: '>=8'} + thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + + thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + thingies@1.21.0: resolution: {integrity: sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==} engines: {node: '>=10.18'} @@ -7058,6 +7339,9 @@ packages: trough@2.2.0: resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} + ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + ts-morph@22.0.0: resolution: {integrity: sha512-M9MqFGZREyeb5fTl6gNHKZLqBQA0TjA1lea+CR48R8EBTDuWrNqW6ccC5QvjNR4s6wDumD3LTCjOFSp9iwlzaw==} @@ -7413,6 +7697,10 @@ packages: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} @@ -7541,6 +7829,8 @@ packages: snapshots: + '@alloc/quick-lru@5.2.0': {} + '@ampproject/remapping@2.3.0': dependencies: '@jridgewell/gen-mapping': 0.3.5 @@ -8935,6 +9225,15 @@ snapshots: dependencies: mute-stream: 1.0.0 + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + '@isaacs/ttlcache@1.4.1': {} '@istanbuljs/load-nyc-config@1.1.0': @@ -9440,6 +9739,9 @@ snapshots: '@nx/nx-win32-x64-msvc@19.7.3': optional: true + '@pkgjs/parseargs@0.11.0': + optional: true + '@polka/url@1.0.0-next.25': {} '@react-native-async-storage/async-storage@1.24.0(react-native@0.76.3(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@react-native-community/cli-server-api@15.0.1)(@types/react@18.3.3)(react@18.3.1))': @@ -10893,6 +11195,10 @@ snapshots: ansi-styles@5.2.0: {} + ansi-styles@6.2.1: {} + + any-promise@1.3.0: {} + anymatch@3.1.3: dependencies: normalize-path: 3.0.0 @@ -10900,12 +11206,16 @@ snapshots: appdirsjs@1.2.7: {} + arg@5.0.2: {} + argparse@1.0.10: dependencies: sprintf-js: 1.0.3 argparse@2.0.1: {} + array-timsort@1.0.3: {} + array-union@2.1.0: {} asap@2.0.6: {} @@ -11209,6 +11519,8 @@ snapshots: callsites@3.1.0: {} + camelcase-css@2.0.1: {} + camelcase@5.3.1: {} camelcase@6.3.0: {} @@ -11383,12 +11695,22 @@ snapshots: commander@2.20.3: {} + commander@4.1.1: {} + commander@6.2.1: {} commander@7.2.0: {} commander@9.5.0: {} + comment-json@4.2.5: + dependencies: + array-timsort: 1.0.3 + core-util-is: 1.0.3 + esprima: 4.0.1 + has-own-prop: 2.0.0 + repeat-string: 1.6.1 + common-path-prefix@3.0.0: {} commondir@1.0.1: {} @@ -11537,6 +11859,8 @@ snapshots: css-what@6.1.0: {} + cssesc@3.0.0: {} + csso@5.0.5: dependencies: css-tree: 2.2.1 @@ -11565,6 +11889,10 @@ snapshots: dependencies: ms: 2.1.2 + debug@4.4.0: + dependencies: + ms: 2.1.3 + decamelize@1.2.0: {} decode-named-character-reference@1.0.2: @@ -11615,6 +11943,8 @@ snapshots: detect-indent@6.1.0: {} + detect-libc@1.0.3: {} + detect-newline@3.1.0: {} detect-package-manager@3.0.2: @@ -11625,6 +11955,8 @@ snapshots: dependencies: dequal: 2.0.3 + didyoumean@1.2.2: {} + diff-sequences@29.6.3: {} diff@5.2.0: {} @@ -11633,6 +11965,8 @@ snapshots: dependencies: path-type: 4.0.0 + dlv@1.1.3: {} + dom-helpers@5.2.1: dependencies: '@babel/runtime': 7.25.6 @@ -11960,7 +12294,7 @@ snapshots: '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 - micromatch: 4.0.7 + micromatch: 4.0.8 fast-json-stable-stringify@2.1.0: {} @@ -12126,6 +12460,11 @@ snapshots: follow-redirects@1.15.6: {} + foreground-child@3.3.0: + dependencies: + cross-spawn: 7.0.3 + signal-exit: 4.1.0 + form-data@4.0.0: dependencies: asynckit: 0.4.0 @@ -12212,8 +12551,21 @@ snapshots: dependencies: is-glob: 4.0.3 + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + glob-to-regexp@0.4.1: {} + glob@10.4.5: + dependencies: + foreground-child: 3.3.0 + jackspeak: 3.4.3 + minimatch: 9.0.5 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 1.11.1 + glob@7.2.3: dependencies: fs.realpath: 1.0.0 @@ -12284,6 +12636,8 @@ snapshots: has-flag@4.0.0: {} + has-own-prop@2.0.0: {} + has-property-descriptors@1.0.2: dependencies: es-define-property: 1.0.0 @@ -12779,6 +13133,12 @@ snapshots: html-escaper: 2.0.2 istanbul-lib-report: 3.0.1 + jackspeak@3.4.3: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + jest-changed-files@29.7.0: dependencies: execa: 5.1.1 @@ -13093,6 +13453,8 @@ snapshots: - supports-color - ts-node + jiti@1.21.7: {} + jju@1.4.0: {} joi@17.13.3: @@ -13263,6 +13625,53 @@ snapshots: transitivePeerDependencies: - supports-color + lightningcss-darwin-arm64@1.28.2: + optional: true + + lightningcss-darwin-x64@1.28.2: + optional: true + + lightningcss-freebsd-x64@1.28.2: + optional: true + + lightningcss-linux-arm-gnueabihf@1.28.2: + optional: true + + lightningcss-linux-arm64-gnu@1.28.2: + optional: true + + lightningcss-linux-arm64-musl@1.28.2: + optional: true + + lightningcss-linux-x64-gnu@1.28.2: + optional: true + + lightningcss-linux-x64-musl@1.28.2: + optional: true + + lightningcss-win32-arm64-msvc@1.28.2: + optional: true + + lightningcss-win32-x64-msvc@1.28.2: + optional: true + + lightningcss@1.28.2: + dependencies: + detect-libc: 1.0.3 + optionalDependencies: + lightningcss-darwin-arm64: 1.28.2 + lightningcss-darwin-x64: 1.28.2 + lightningcss-freebsd-x64: 1.28.2 + lightningcss-linux-arm-gnueabihf: 1.28.2 + lightningcss-linux-arm64-gnu: 1.28.2 + lightningcss-linux-arm64-musl: 1.28.2 + lightningcss-linux-x64-gnu: 1.28.2 + lightningcss-linux-x64-musl: 1.28.2 + lightningcss-win32-arm64-msvc: 1.28.2 + lightningcss-win32-x64-msvc: 1.28.2 + + lilconfig@3.1.3: {} + lines-and-columns@1.2.4: {} lines-and-columns@2.0.3: {} @@ -14236,6 +14645,11 @@ snapshots: braces: 3.0.3 picomatch: 2.3.1 + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + mime-db@1.52.0: {} mime-db@1.53.0: {} @@ -14294,8 +14708,28 @@ snapshots: mute-stream@1.0.0: {} + mz@2.7.0: + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + nanoid@3.3.7: {} + nativewind@4.1.23(react-native-reanimated@3.16.3(@babel/core@7.25.2)(react-native@0.76.3(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@react-native-community/cli-server-api@15.0.1)(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react-native-safe-area-context@4.14.0(react-native@0.76.3(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@react-native-community/cli-server-api@15.0.1)(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react-native-svg@15.8.0(react-native@0.76.3(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@react-native-community/cli-server-api@15.0.1)(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react-native@0.76.3(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@react-native-community/cli-server-api@15.0.1)(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)(tailwindcss@3.4.17): + dependencies: + comment-json: 4.2.5 + debug: 4.4.0 + react-native-css-interop: 0.1.22(react-native-reanimated@3.16.3(@babel/core@7.25.2)(react-native@0.76.3(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@react-native-community/cli-server-api@15.0.1)(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react-native-safe-area-context@4.14.0(react-native@0.76.3(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@react-native-community/cli-server-api@15.0.1)(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react-native-svg@15.8.0(react-native@0.76.3(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@react-native-community/cli-server-api@15.0.1)(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react-native@0.76.3(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@react-native-community/cli-server-api@15.0.1)(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)(tailwindcss@3.4.17) + tailwindcss: 3.4.17 + transitivePeerDependencies: + - react + - react-native + - react-native-reanimated + - react-native-safe-area-context + - react-native-svg + - supports-color + natural-compare@1.4.0: {} negotiator@0.6.3: {} @@ -14420,6 +14854,8 @@ snapshots: object-assign@4.1.1: {} + object-hash@3.0.0: {} + object-inspect@1.13.2: {} on-exit-leak-free@2.1.2: {} @@ -14540,6 +14976,8 @@ snapshots: p-try@2.2.0: {} + package-json-from-dist@1.0.1: {} + parent-module@1.0.1: dependencies: callsites: 3.1.0 @@ -14632,6 +15070,8 @@ snapshots: picomatch@2.3.1: {} + pify@2.3.0: {} + pify@4.0.1: {} pino-abstract-transport@1.2.0: @@ -14691,6 +15131,37 @@ snapshots: transitivePeerDependencies: - supports-color + postcss-import@15.1.0(postcss@8.4.47): + dependencies: + postcss: 8.4.47 + postcss-value-parser: 4.2.0 + read-cache: 1.0.0 + resolve: 1.22.8 + + postcss-js@4.0.1(postcss@8.4.47): + dependencies: + camelcase-css: 2.0.1 + postcss: 8.4.47 + + postcss-load-config@4.0.2(postcss@8.4.47): + dependencies: + lilconfig: 3.1.3 + yaml: 2.4.5 + optionalDependencies: + postcss: 8.4.47 + + postcss-nested@6.2.0(postcss@8.4.47): + dependencies: + postcss: 8.4.47 + postcss-selector-parser: 6.1.2 + + postcss-selector-parser@6.1.2: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + postcss-value-parser@4.2.0: {} + postcss@8.4.47: dependencies: nanoid: 3.3.7 @@ -14842,6 +15313,24 @@ snapshots: react-lazy-with-preload@2.2.1: {} + react-native-css-interop@0.1.22(react-native-reanimated@3.16.3(@babel/core@7.25.2)(react-native@0.76.3(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@react-native-community/cli-server-api@15.0.1)(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react-native-safe-area-context@4.14.0(react-native@0.76.3(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@react-native-community/cli-server-api@15.0.1)(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react-native-svg@15.8.0(react-native@0.76.3(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@react-native-community/cli-server-api@15.0.1)(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react-native@0.76.3(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@react-native-community/cli-server-api@15.0.1)(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)(tailwindcss@3.4.17): + dependencies: + '@babel/helper-module-imports': 7.24.7 + '@babel/traverse': 7.25.6 + '@babel/types': 7.25.6 + debug: 4.4.0 + lightningcss: 1.28.2 + react: 18.3.1 + react-native: 0.76.3(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@react-native-community/cli-server-api@15.0.1)(@types/react@18.3.3)(react@18.3.1) + react-native-reanimated: 3.16.3(@babel/core@7.25.2)(react-native@0.76.3(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@react-native-community/cli-server-api@15.0.1)(@types/react@18.3.3)(react@18.3.1))(react@18.3.1) + semver: 7.6.3 + tailwindcss: 3.4.17 + optionalDependencies: + react-native-safe-area-context: 4.14.0(react-native@0.76.3(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@react-native-community/cli-server-api@15.0.1)(@types/react@18.3.3)(react@18.3.1))(react@18.3.1) + react-native-svg: 15.8.0(react-native@0.76.3(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@react-native-community/cli-server-api@15.0.1)(@types/react@18.3.3)(react@18.3.1))(react@18.3.1) + transitivePeerDependencies: + - supports-color + react-native-reanimated@3.16.3(@babel/core@7.25.2)(react-native@0.76.3(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@react-native-community/cli-server-api@15.0.1)(@types/react@18.3.3)(react@18.3.1))(react@18.3.1): dependencies: '@babel/core': 7.25.2 @@ -14982,6 +15471,10 @@ snapshots: dependencies: loose-envify: 1.4.0 + read-cache@1.0.0: + dependencies: + pify: 2.3.0 + read-yaml-file@1.1.0: dependencies: graceful-fs: 4.2.11 @@ -15158,6 +15651,8 @@ snapshots: transitivePeerDependencies: - supports-color + repeat-string@1.6.1: {} + require-directory@2.1.1: {} require-from-string@2.0.2: {} @@ -15743,6 +16238,16 @@ snapshots: dependencies: inline-style-parser: 0.1.1 + sucrase@3.35.0: + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + commander: 4.1.1 + glob: 10.4.5 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.6 + ts-interface-checker: 0.1.13 + sudo-prompt@9.2.1: {} supports-color@5.5.0: @@ -15773,6 +16278,33 @@ snapshots: csso: 5.0.5 picocolors: 1.1.1 + tailwindcss@3.4.17: + dependencies: + '@alloc/quick-lru': 5.2.0 + arg: 5.0.2 + chokidar: 3.6.0 + didyoumean: 1.2.2 + dlv: 1.1.3 + fast-glob: 3.3.2 + glob-parent: 6.0.2 + is-glob: 4.0.3 + jiti: 1.21.7 + lilconfig: 3.1.3 + micromatch: 4.0.8 + normalize-path: 3.0.0 + object-hash: 3.0.0 + picocolors: 1.1.1 + postcss: 8.4.47 + postcss-import: 15.1.0(postcss@8.4.47) + postcss-js: 4.0.1(postcss@8.4.47) + postcss-load-config: 4.0.2(postcss@8.4.47) + postcss-nested: 6.2.0(postcss@8.4.47) + postcss-selector-parser: 6.1.2 + resolve: 1.22.8 + sucrase: 3.35.0 + transitivePeerDependencies: + - ts-node + tapable@2.2.1: {} tar-stream@2.2.0: @@ -15811,6 +16343,14 @@ snapshots: glob: 7.2.3 minimatch: 3.1.2 + thenify-all@1.6.0: + dependencies: + thenify: 3.3.1 + + thenify@3.3.1: + dependencies: + any-promise: 1.3.0 + thingies@1.21.0(tslib@2.6.3): dependencies: tslib: 2.6.3 @@ -15870,6 +16410,8 @@ snapshots: trough@2.2.0: {} + ts-interface-checker@0.1.13: {} + ts-morph@22.0.0: dependencies: '@ts-morph/common': 0.23.0 @@ -16106,13 +16648,13 @@ snapshots: unist-util-stringify-position: 4.0.0 vfile-message: 4.0.2 - vite-node@2.0.5(@types/node@22.5.4)(sass-embedded@1.80.1)(terser@5.31.3): + vite-node@2.0.5(@types/node@22.5.4)(lightningcss@1.28.2)(sass-embedded@1.80.1)(terser@5.31.3): dependencies: cac: 6.7.14 debug: 4.3.5 pathe: 1.1.2 tinyrainbow: 1.2.0 - vite: 5.4.3(@types/node@22.5.4)(sass-embedded@1.80.1)(terser@5.31.3) + vite: 5.4.3(@types/node@22.5.4)(lightningcss@1.28.2)(sass-embedded@1.80.1)(terser@5.31.3) transitivePeerDependencies: - '@types/node' - less @@ -16124,7 +16666,7 @@ snapshots: - supports-color - terser - vite@5.4.3(@types/node@22.5.4)(sass-embedded@1.80.1)(terser@5.31.3): + vite@5.4.3(@types/node@22.5.4)(lightningcss@1.28.2)(sass-embedded@1.80.1)(terser@5.31.3): dependencies: esbuild: 0.21.5 postcss: 8.4.47 @@ -16132,10 +16674,11 @@ snapshots: optionalDependencies: '@types/node': 22.5.4 fsevents: 2.3.3 + lightningcss: 1.28.2 sass-embedded: 1.80.1 terser: 5.31.3 - vitest@2.0.5(@types/node@22.5.4)(sass-embedded@1.80.1)(terser@5.31.3): + vitest@2.0.5(@types/node@22.5.4)(lightningcss@1.28.2)(sass-embedded@1.80.1)(terser@5.31.3): dependencies: '@ampproject/remapping': 2.3.0 '@vitest/expect': 2.0.5 @@ -16153,8 +16696,8 @@ snapshots: tinybench: 2.9.0 tinypool: 1.0.1 tinyrainbow: 1.2.0 - vite: 5.4.3(@types/node@22.5.4)(sass-embedded@1.80.1)(terser@5.31.3) - vite-node: 2.0.5(@types/node@22.5.4)(sass-embedded@1.80.1)(terser@5.31.3) + vite: 5.4.3(@types/node@22.5.4)(lightningcss@1.28.2)(sass-embedded@1.80.1)(terser@5.31.3) + vite-node: 2.0.5(@types/node@22.5.4)(lightningcss@1.28.2)(sass-embedded@1.80.1)(terser@5.31.3) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 22.5.4 @@ -16286,6 +16829,12 @@ snapshots: string-width: 4.2.3 strip-ansi: 6.0.1 + wrap-ansi@8.1.0: + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 + wrappy@1.0.2: {} write-file-atomic@2.4.3: