From 6c42d630a8ad42e8569afcc8cc845ebe287e3ee6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=C3=A1bio=20Henriques?= Date: Fri, 29 Mar 2024 13:57:52 +0000 Subject: [PATCH] feat: add `link-assets` command (#2276) * feat: add new link-assets bare command structure * feat: add some libraries necessary for link assets feature * feat: add `assets` option to CLI configuration types and schema * feat: migrate Link Assets feature to TypeScript * refactor: rename some clean/copy assets function options * refactor: several refactors to improve original code readability * refactor: rename linking flags * add function distinguishing if project is using kotlin * update code to handle MainApplication.kt * update comments regarding MainApplication file * remove slugify dependency * Revert "remove slugify dependency" This reverts commit 2fe7b955afc7955cb54ce3b39dbf02f95df87b71. * replace all dashes with underscores when normalizing string * refactor: refactor linkAssets, linkPlatform and add try/catches for fs operations * refactor: refactor and move findPbxprojFile to cli-platform-apple * test: update snapshots * test: implement first test for linkAssets * test: add empty tests * test: implement test for java project * test: implement new assets test * test: implement unlink assets test * test: implement unlink all assets test * test: implement relink fonts test * refactor: remove unused --project-root option from link-assets command * refactor: improve createGroupWithMessage() log message * docs: add documentation for link-assets * docs: update projects.md documentation * docs: update link-assets command description * refactor: remove CHANGELOG.md * test: simplifly tests * refactor: address review comments * refactor: reuse some logic between copy/clean android assets * refactor: improve android copy/clean assets logic to handle resources file names correctly * refactor: improve command messages * refactor: create type for platform * fix: add all link options for ios * fix: fix not configured assets log message * Remove link assets from main endpoint * test: minor fix to e2e test * chore: update package.json * Revert "test: minor fix to e2e test" This reverts commit 376e1eec37a85b8142a01c2c0a63bef57bdcf1d3. * update config test with path * update snapshot --------- Co-authored-by: Tomasz Misiukiewicz --- CONTRIBUTING.md | 2 +- README.md | 1 + __e2e__/__snapshots__/config.test.ts.snap | 7 +- __e2e__/config.test.ts | 2 + docs/commands.md | 1 + docs/projects.md | 15 + jest/helpers.ts | 2 +- .../__snapshots__/index-test.ts.snap | 1 + packages/cli-config/src/loadConfig.ts | 1 + packages/cli-config/src/schema.ts | 2 + packages/cli-link-assets/README.md | 109 +++ packages/cli-link-assets/package.json | 39 + .../src/__fixtures__/files/FiraCode-Bold.otf | Bin 0 -> 156076 bytes .../__fixtures__/files/FiraCode-Regular.otf | Bin 0 -> 162168 bytes .../src/__fixtures__/files/GIF Image.gif | 0 .../src/__fixtures__/files/Info.plist | 51 + .../src/__fixtures__/files/JPG Image.jpg | 1 + .../src/__fixtures__/files/Lato-Bold.ttf | Bin 0 -> 73332 bytes .../__fixtures__/files/Lato-BoldItalic.ttf | Bin 0 -> 77732 bytes .../src/__fixtures__/files/Lato-Light.ttf | Bin 0 -> 77208 bytes .../src/__fixtures__/files/Lato-Regular.ttf | Bin 0 -> 75152 bytes .../src/__fixtures__/files/MP3 Sound (1).mp3 | 1 + .../__fixtures__/files/MainApplication.java | 12 + .../src/__fixtures__/files/MainApplication.kt | 11 + .../__fixtures__/files/Montserrat-Regular.ttf | Bin 0 -> 197624 bytes .../src/__fixtures__/files/PNG Image.png | 1 + .../__fixtures__/files/Raleway-Regular.ttf | Bin 0 -> 163388 bytes .../files/TestSample Document.pdf | Bin 0 -> 12 bytes .../src/__fixtures__/files/project.pbxproj | 698 ++++++++++++++ .../src/__fixtures__/projects.ts | 104 ++ .../__snapshots__/linkAssets.test.ts.snap | 893 ++++++++++++++++++ .../src/__tests__/linkAssets.test.ts | 588 ++++++++++++ packages/cli-link-assets/src/fileTypes.ts | 7 + packages/cli-link-assets/src/index.ts | 3 + packages/cli-link-assets/src/linkAssets.ts | 239 +++++ packages/cli-link-assets/src/sha1File.ts | 11 + .../src/tools/cleanAssets/android.ts | 172 ++++ .../src/tools/cleanAssets/ios.ts | 57 ++ .../src/tools/cleanAssets/types.ts | 21 + .../src/tools/copyAssets/android.ts | 248 +++++ .../src/tools/copyAssets/ios.ts | 59 ++ .../src/tools/copyAssets/types.ts | 21 + .../helpers/font/androidFontAssetHelpers.ts | 366 +++++++ .../src/tools/helpers/xcode/createGroup.ts | 26 + .../helpers/xcode/createGroupWithMessage.ts | 27 + .../tools/helpers/xcode/getBuildProperty.ts | 26 + .../src/tools/helpers/xcode/getGroup.ts | 43 + .../src/tools/helpers/xcode/getPlist.ts | 25 + .../src/tools/helpers/xcode/getPlistPath.ts | 18 + .../src/tools/helpers/xcode/writePlist.ts | 31 + .../src/tools/linkPlatform/index.ts | 342 +++++++ .../src/tools/manifest/index.ts | 60 ++ .../src/tools/manifest/migrations/index.ts | 15 + .../tools/manifest/migrations/migration0.ts | 24 + .../tools/manifest/migrations/migration1.ts | 15 + .../tools/manifest/migrations/migration2.ts | 20 + packages/cli-link-assets/src/xcode.d.ts | 504 ++++++++++ packages/cli-link-assets/tsconfig.json | 13 + .../getProjectConfig.test.ts.snap | 3 + .../src/config/findPackageClassName.ts | 6 +- .../cli-platform-android/src/config/index.ts | 1 + .../src/config/isProjectUsingKotlin.ts | 7 + packages/cli-platform-android/src/index.ts | 1 + .../config/__tests__/findPbxprojFile.test.ts | 23 + .../config/__tests__/findXcodeProject.test.ts | 20 + .../config/__tests__/getProjectConfig.test.ts | 2 + .../src/config/findPbxprojFile.ts | 12 + .../src/config/findXcodeProject.ts | 3 + .../cli-platform-apple/src/config/index.ts | 1 + packages/cli-platform-apple/src/index.ts | 3 + packages/cli-types/src/android.ts | 2 + packages/cli-types/src/index.ts | 1 + packages/cli-types/src/ios.ts | 3 + packages/cli/tsconfig.json | 1 + yarn.lock | 107 ++- 75 files changed, 5124 insertions(+), 7 deletions(-) create mode 100644 packages/cli-link-assets/README.md create mode 100644 packages/cli-link-assets/package.json create mode 100644 packages/cli-link-assets/src/__fixtures__/files/FiraCode-Bold.otf create mode 100644 packages/cli-link-assets/src/__fixtures__/files/FiraCode-Regular.otf create mode 100644 packages/cli-link-assets/src/__fixtures__/files/GIF Image.gif create mode 100644 packages/cli-link-assets/src/__fixtures__/files/Info.plist create mode 100644 packages/cli-link-assets/src/__fixtures__/files/JPG Image.jpg create mode 100644 packages/cli-link-assets/src/__fixtures__/files/Lato-Bold.ttf create mode 100644 packages/cli-link-assets/src/__fixtures__/files/Lato-BoldItalic.ttf create mode 100644 packages/cli-link-assets/src/__fixtures__/files/Lato-Light.ttf create mode 100644 packages/cli-link-assets/src/__fixtures__/files/Lato-Regular.ttf create mode 100644 packages/cli-link-assets/src/__fixtures__/files/MP3 Sound (1).mp3 create mode 100644 packages/cli-link-assets/src/__fixtures__/files/MainApplication.java create mode 100644 packages/cli-link-assets/src/__fixtures__/files/MainApplication.kt create mode 100644 packages/cli-link-assets/src/__fixtures__/files/Montserrat-Regular.ttf create mode 100644 packages/cli-link-assets/src/__fixtures__/files/PNG Image.png create mode 100644 packages/cli-link-assets/src/__fixtures__/files/Raleway-Regular.ttf create mode 100644 packages/cli-link-assets/src/__fixtures__/files/TestSample Document.pdf create mode 100644 packages/cli-link-assets/src/__fixtures__/files/project.pbxproj create mode 100644 packages/cli-link-assets/src/__fixtures__/projects.ts create mode 100644 packages/cli-link-assets/src/__tests__/__snapshots__/linkAssets.test.ts.snap create mode 100644 packages/cli-link-assets/src/__tests__/linkAssets.test.ts create mode 100644 packages/cli-link-assets/src/fileTypes.ts create mode 100644 packages/cli-link-assets/src/index.ts create mode 100644 packages/cli-link-assets/src/linkAssets.ts create mode 100644 packages/cli-link-assets/src/sha1File.ts create mode 100644 packages/cli-link-assets/src/tools/cleanAssets/android.ts create mode 100644 packages/cli-link-assets/src/tools/cleanAssets/ios.ts create mode 100644 packages/cli-link-assets/src/tools/cleanAssets/types.ts create mode 100644 packages/cli-link-assets/src/tools/copyAssets/android.ts create mode 100644 packages/cli-link-assets/src/tools/copyAssets/ios.ts create mode 100644 packages/cli-link-assets/src/tools/copyAssets/types.ts create mode 100644 packages/cli-link-assets/src/tools/helpers/font/androidFontAssetHelpers.ts create mode 100644 packages/cli-link-assets/src/tools/helpers/xcode/createGroup.ts create mode 100644 packages/cli-link-assets/src/tools/helpers/xcode/createGroupWithMessage.ts create mode 100644 packages/cli-link-assets/src/tools/helpers/xcode/getBuildProperty.ts create mode 100644 packages/cli-link-assets/src/tools/helpers/xcode/getGroup.ts create mode 100644 packages/cli-link-assets/src/tools/helpers/xcode/getPlist.ts create mode 100644 packages/cli-link-assets/src/tools/helpers/xcode/getPlistPath.ts create mode 100644 packages/cli-link-assets/src/tools/helpers/xcode/writePlist.ts create mode 100644 packages/cli-link-assets/src/tools/linkPlatform/index.ts create mode 100644 packages/cli-link-assets/src/tools/manifest/index.ts create mode 100644 packages/cli-link-assets/src/tools/manifest/migrations/index.ts create mode 100644 packages/cli-link-assets/src/tools/manifest/migrations/migration0.ts create mode 100644 packages/cli-link-assets/src/tools/manifest/migrations/migration1.ts create mode 100644 packages/cli-link-assets/src/tools/manifest/migrations/migration2.ts create mode 100644 packages/cli-link-assets/src/xcode.d.ts create mode 100644 packages/cli-link-assets/tsconfig.json create mode 100644 packages/cli-platform-android/src/config/isProjectUsingKotlin.ts create mode 100644 packages/cli-platform-apple/src/config/__tests__/findPbxprojFile.test.ts create mode 100644 packages/cli-platform-apple/src/config/findPbxprojFile.ts diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6afa2392d..3a5b03ece 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -32,7 +32,7 @@ And then: ```sh cd /my/new/react-native/project/ -yarn link "@react-native-community/cli-platform-ios" "@react-native-community/cli-platform-android" "@react-native-community/cli" "@react-native-community/cli-server-api" "@react-native-community/cli-types" "@react-native-community/cli-tools" "@react-native-community/cli-debugger-ui" "@react-native-community/cli-clean" "@react-native-community/cli-doctor" "@react-native-community/cli-config" "@react-native-community/cli-platform-apple" +yarn link "@react-native-community/cli-platform-ios" "@react-native-community/cli-platform-android" "@react-native-community/cli" "@react-native-community/cli-server-api" "@react-native-community/cli-types" "@react-native-community/cli-tools" "@react-native-community/cli-debugger-ui" "@react-native-community/cli-clean" "@react-native-community/cli-doctor" "@react-native-community/cli-config" "@react-native-community/cli-platform-apple" "@react-native-community/cli-link-assets" ``` Once you're done with testing and you'd like to get back to regular setup, run `yarn unlink` instead of `yarn link` from above command. Then `yarn install --force`. diff --git a/README.md b/README.md index d1518b8c6..18a9da6ed 100644 --- a/README.md +++ b/README.md @@ -97,6 +97,7 @@ React Native CLI is a dependency of `react-native`, which makes it a transitive "@react-native-community/cli-config": "VERSION", "@react-native-community/cli-debugger-ui": "VERSION", "@react-native-community/cli-doctor": "VERSION", + "@react-native-community/cli-link-assets": "VERSION", "@react-native-community/cli-platform-android": "VERSION", "@react-native-community/cli-platform-ios": "VERSION", "@react-native-community/cli-server-api": "VERSION", diff --git a/__e2e__/__snapshots__/config.test.ts.snap b/__e2e__/__snapshots__/config.test.ts.snap index 4d0436496..de4d477f0 100644 --- a/__e2e__/__snapshots__/config.test.ts.snap +++ b/__e2e__/__snapshots__/config.test.ts.snap @@ -79,16 +79,19 @@ exports[`shows up current config without unnecessary output 1`] = ` "ios": {}, "android": {} }, + "assets": [], "project": { "ios": { - "sourceDir": "<>/TestProject/ios" + "sourceDir": "<>/TestProject/ios", + "assets": [] }, "android": { "sourceDir": "<>/TestProject/android", "appName": "app", "packageName": "com.testproject", "applicationId": "com.testproject", - "mainActivity": ".MainActivity" + "mainActivity": ".MainActivity", + "assets": [] } } } diff --git a/__e2e__/config.test.ts b/__e2e__/config.test.ts index 1a5cd8681..da7a7543b 100644 --- a/__e2e__/config.test.ts +++ b/__e2e__/config.test.ts @@ -79,10 +79,12 @@ test('shows up current config without unnecessary output', () => { ? { name: 'TestProject.xcworkspace', isWorkspace: true, + path: '.', } : { name: 'TestProject.xcodeproj', isWorkspace: false, + path: '.', }; expect(parsedStdout.project.ios.xcodeProject).toStrictEqual( diff --git a/docs/commands.md b/docs/commands.md index eccbff0b1..4316e2cde 100644 --- a/docs/commands.md +++ b/docs/commands.md @@ -6,6 +6,7 @@ React Native CLI comes with following commands: - [`clean`](/packages/cli-clean/README.md#clean) - [`config`](/packages/cli-config/README.md#config) - [`doctor`](/packages/cli-doctor/README.md#doctor) +- [`link-assets`](/packages/cli-link-assets/README.md#link-assets) - [`init`](#init) - [`info`](/packages/cli-doctor/README.md#info) - [`log-android`](/packages/cli-platform-android/README.md#log-android) diff --git a/docs/projects.md b/docs/projects.md index 0074b987e..580707be3 100644 --- a/docs/projects.md +++ b/docs/projects.md @@ -47,6 +47,7 @@ type ProjectConfigT = { [key: string]: DependencyConfig; }; commands: Command[]; + assets?: string[]; }; ``` @@ -69,6 +70,7 @@ type IOSProjectParams = { sourceDir?: string; watchModeCommandParams?: string[]; automaticPodsInstallation?: boolean; + assets?: string[]; }; type AndroidProjectParams = { @@ -78,6 +80,7 @@ type AndroidProjectParams = { packageName?: string; dependencyConfiguration?: string; watchModeCommandParams?: string[]; + assets?: string[]; }; ``` @@ -116,6 +119,10 @@ If set to `true`, you can skip running `pod install` manually whenever it's need > Note: Starting from React Native 0.73, CLI's `init` command scaffolds the project with `react-native.config.js` file with this value set to `true` by default. Older projects can opt-in after migrating to 0.73. Please note that if your setup does not follow the standard React Native template, e.g. you are not using Gems to install CocoaPods, this might not work properly for you. +### project.ios.assets + +Array of folder paths that will be passed to the `npx react-native link-assets` command to specify the assets to be linked to iOS project. + #### project.android.appName A name of the app in the Android `sourceDir`, equivalent to Gradle project name. By default it's `app`. @@ -155,6 +162,10 @@ The list should contain the name of the components, as they're registered in the Since React Native 0.74, this property is ignored as the Interop Layer is **Automatic**, you don't need to register the Legacy Components anymore and they will be discovered automatically. +### project.android.assets + +Array of folder paths that will be passed to the `npx react-native link-assets` command to specify the assets to be linked to Android project. + ### platforms A object with platforms defined inside a project. You can check the format and options available [`here`](platforms.md#platform-interface) @@ -220,3 +231,7 @@ module.exports = { The object provided here is deep merged with the dependency config. Check [`projectConfig`](platforms.md#projectconfig) and [`dependencyConfig`](platforms.md#dependencyConfig) return values for a full list of properties that you can override. > Note: This is an advanced feature and you should not need to use it most of the time. + +### assets + +Array of folder paths that will be passed to the `npx react-native link-assets` command to specify the assets to be linked to Android / iOS projects. diff --git a/jest/helpers.ts b/jest/helpers.ts index ba7ee701d..4eda26e2f 100644 --- a/jest/helpers.ts +++ b/jest/helpers.ts @@ -60,7 +60,7 @@ export const cleanup = (directory: string) => { */ export const writeFiles = ( directory: string, - files: {[filename: string]: string}, + files: {[filename: string]: string | NodeJS.ArrayBufferView}, ) => { createDirectory(directory); Object.keys(files).forEach((fileOrPath) => { diff --git a/packages/cli-config/src/__tests__/__snapshots__/index-test.ts.snap b/packages/cli-config/src/__tests__/__snapshots__/index-test.ts.snap index 7e0d70fd5..d5720cfa2 100644 --- a/packages/cli-config/src/__tests__/__snapshots__/index-test.ts.snap +++ b/packages/cli-config/src/__tests__/__snapshots__/index-test.ts.snap @@ -33,6 +33,7 @@ Object { exports[`should have a valid structure by default 1`] = ` Object { + "assets": Array [], "commands": Array [], "dependencies": Object {}, "healthChecks": Array [], diff --git a/packages/cli-config/src/loadConfig.ts b/packages/cli-config/src/loadConfig.ts index 9886c9acd..cd75733a3 100644 --- a/packages/cli-config/src/loadConfig.ts +++ b/packages/cli-config/src/loadConfig.ts @@ -104,6 +104,7 @@ function loadConfig(projectRoot: string = findProjectRoot()): Config { commands: userConfig.commands, healthChecks: userConfig.healthChecks || [], platforms: userConfig.platforms, + assets: userConfig.assets, get project() { if (lazyProject) { return lazyProject; diff --git a/packages/cli-config/src/schema.ts b/packages/cli-config/src/schema.ts index 681a6692f..6f4e1ba03 100644 --- a/packages/cli-config/src/schema.ts +++ b/packages/cli-config/src/schema.ts @@ -161,6 +161,7 @@ export const projectConfig = t .items(t.string()) .optional(), automaticPodsInstallation: t.bool().default(false), + assets: t.array().items(t.string()).default([]), }) .default({}), android: t @@ -177,6 +178,7 @@ export const projectConfig = t .array() .items(t.string()) .optional(), + assets: t.array().items(t.string()).default([]), }) .default({}), }) diff --git a/packages/cli-link-assets/README.md b/packages/cli-link-assets/README.md new file mode 100644 index 000000000..d57048310 --- /dev/null +++ b/packages/cli-link-assets/README.md @@ -0,0 +1,109 @@ +# @react-native-community/cli-link-assets + +This package is part of the [React Native CLI](../../README.md). It contains commands to link assets to your Android / iOS projects. + +## Installation + +```sh +yarn add @react-native-community/cli-link-assets +``` + +## Commands + +### `link-assets` + +Usage: + +```sh +npx react-native link-assets +``` + +Links your assets to the Android / iOS projects. You must configure your `react.native.config.js` file to specify where your assets are located, e.g: + +```js +module.exports = { + // If you want to link assets to both platforms. + assets: ['./assets/shared'], + project: { + android: { + // If you want to link assets only to Android. + assets: ['./assets/android'], + }, + ios: { + // If you want to link assets only to iOS. + assets: ['./assets/ios'], + automaticPodsInstallation: true, + }, + }, +}; +``` + +### Android + +For **Android**, it supports the linking of the following assets: + +#### Fonts (OTF, TTF) + +Font assets are linked in Android by using [XML resources](https://developer.android.com/develop/ui/views/text-and-emoji/fonts-in-xml). For instance, if you add the **Lato** font to your project, it will generate a `lato.xml` file in `android/app/src/main/res/font/` folder with all the font variants that you added. It will also add a method call in `MainApplication.kt` or `MainApplication.java` file in order to register the custom font during the app initialization. It will look something like this: + +```kotlin +// other imports + +import com.facebook.react.common.assets.ReactFontManager // <- imports ReactFontManager. + +class MainApplication : Application(), ReactApplication { + + // other methods + + override fun onCreate() { + super.onCreate() + ReactFontManager.getInstance().addCustomFont(this, "Lato", R.font.lato) // <- registers the custom font. + // ... + } +} +``` + +In this case, `Lato` is what you have to set in the `fontFamily` style of your `Text` component. To select the font variant e.g. weight and style, use `fontWeight` and `fontStyle` styles respectively. + +```jsx +Lato Bold Italic +``` + +> [!IMPORTANT] +> If you have already linked font assets in your Android project with [react-native-asset](https://github.com/unimonkiez/react-native-asset), when running this tool it will relink your fonts to use XML resources as described above. **This migration will allow you to use your fonts in the code the same way you would use it for iOS**. Please update your code to use `fontFamily`, `fontWeight` and `fontStyle` styles correctly. + +#### Images (JPG, PNG, GIF) + +Image assets are linked by copying them to `android/app/src/main/res/drawable/` folder. This can be useful in brownfield applications where you need to use assets in the native side. + +#### Sounds (MP3) + +Sound assets are linked by copying them to `android/app/src/main/res/raw/` folder. This can be useful if used together with [react-native-sound](https://github.com/zmxv/react-native-sound) or in brownfield applications where you need to use assets in the native side. + +#### Others + +Any other custom assets are linked by copying them to `android/app/src/main/assets/custom/` folder. + +### iOS + +For **iOS**, it supports the linking of the following assets: + +#### Fonts (OTF, TTF) + +Font assets are linked in iOS by editing `project.pbxproj` and `Info.plist` files. To use the font in your app, you can a combination of `fontFamily`, `fontWeight` and `fontStyle` styles in the same way you would use for Android. In case you didn't link your font assets in Android and you are not sure which value you have to set in `fontFamily` style, you can use `Font Book` app in your Mac to find out the correct value by looking the `Family Name` property. + +#### Images (JPG, PNG, GIF) + +Image assets are linked by editing `project.pbxproj` and adding them as Resources. This can be useful in brownfield applications where you need to use assets in the native side. + +#### Sounds (MP3) + +Image assets are linked by editing `project.pbxproj` and adding them as Resources. This can be useful if used together with [react-native-sound](https://github.com/zmxv/react-native-sound) or in brownfield applications where you need to use assets in the native side. + +#### Others + +Image assets are linked by editing `project.pbxproj` and adding them as Resources. + +### Manifest files + +In both platforms, linked assets are tracked using the `link-assets-manifest.json` files which are stored in both `android/` and `ios/` folders. **They are necessary to track which assets are currently linked, and if the tool needs to add new ones or remove old assets during linking process, so make sure to commit them!** diff --git a/packages/cli-link-assets/package.json b/packages/cli-link-assets/package.json new file mode 100644 index 000000000..6482581f5 --- /dev/null +++ b/packages/cli-link-assets/package.json @@ -0,0 +1,39 @@ +{ + "name": "@react-native-community/cli-link-assets", + "version": "14.0.0-alpha.2", + "license": "MIT", + "main": "build/index.js", + "publishConfig": { + "access": "public" + }, + "types": "build/index.d.ts", + "dependencies": { + "@react-native-community/cli-config": "14.0.0-alpha.2", + "@react-native-community/cli-platform-android": "14.0.0-alpha.2", + "@react-native-community/cli-platform-apple": "14.0.0-alpha.2", + "@react-native-community/cli-platform-ios": "14.0.0-alpha.2", + "@react-native-community/cli-tools": "14.0.0-alpha.2", + "chalk": "^4.1.2", + "fast-xml-parser": "^4.3.2", + "opentype.js": "^1.3.4", + "plist": "^3.1.0", + "xcode": "^3.0.1" + }, + "files": [ + "build", + "!*.d.ts", + "!*.map" + ], + "devDependencies": { + "@react-native-community/cli-types": "14.0.0-alpha.2", + "@types/opentype.js": "^1.3.8", + "@types/plist": "^3.0.5", + "type-fest": "^4.10.2" + }, + "homepage": "https://github.com/react-native-community/cli/tree/main/packages/cli-link-assets", + "repository": { + "type": "git", + "url": "https://github.com/react-native-community/cli.git", + "directory": "packages/cli-link-assets" + } +} diff --git a/packages/cli-link-assets/src/__fixtures__/files/FiraCode-Bold.otf b/packages/cli-link-assets/src/__fixtures__/files/FiraCode-Bold.otf new file mode 100644 index 0000000000000000000000000000000000000000..f2c65f6d111aba3851202fb931c23bc54332c5b4 GIT binary patch literal 156076 zcmc${2Y3}l+y6hayR#>~Hz06MPI@7vorC}?kb)>pih>P75|ThjLJG}>6%@tZ8+K6? z?25fN>mRO9zO%Da?R2qw|E<%3Oi0G|@MhqX-bze)o zkl&3JqQ{6qqs9z8a{8;d-u<``Qx6Xx)vMs~aMuzcy6-{$3Dr}pS_*?Nzeb4k2q6aC zRbN|G6Oq1j9`0=d#r23VPPNt{{g=2-sh`?Db7*K)H0nweBJugDRWn;$1tV}v{0Qu( zs;RZZV}?-OqtU!qTAJJ1J6{%sX#Zl|_XsgUxC#)Gz!G9;+PfRZhxgknOxJyg5v#X6 zcamRsZaW+wct&6q(wf4cSY%m>0$3>wI)D8y*@ARHw1Dz|Lp|c7fnS#){NM0B()IiY zs2mHB-UcEZrSSj6Fx)4mJ5U==2Pd{A3fIYi%Kj(*sXhNLj{1BNm;nZW_P>#U>wkjM z{!^Kw5&vJ(*@H*?faP_}o z1mcGS6J&#P|4Z&fx|9C_sw)zZF8&V;`rG~axb{Q&{m^*)6TahVI)6MKK9=vl94i`A z8k4`|`};f|kNf|`OvJbS1OB%EH`)jJF)#jw9K`kh2W~*ziO|?mJ=9-nBi(xdECysx zvYmhKkW$}pe}8}IW8hwEsq6(CV9yb)pandCoX%|spSVU9uEW4Ttxv>t{)~J6HB9rD z($PAkIgRViy^ILJHT63mP#T&K1cjTB2J46BWakEGDWG*w1`>gPe6TL`*qwqn>`6Kt zhj0v_ywoQH*dQ3p0(76+Mf(HL{TqVt81VPLQ5p%(00TiTp!QLIe}A0ytouUtrT+N) zgtW){OKqm|DegB`ai)_ti`%OA{Vj+id#5}2+cXl_RJXr=Y6Ag#`0F6mb<_Bv|6(@o z9fi68##r0M1I3)}+y^}gP#I*~(-DWU(`zZm$%nb4$AQ{RYb+1+0~pWFaIhZX6zC2p z?MY+7ePGWCbVK;u<8;!!B5>^qT!!#X4(N}_bncCIl+w~Xr!n%ciS7uaonivOd^u)! zO1l(Ly{M=24=9Zttqm%JSnMz#8VP9rWH@0em*ydjO%kB?1fv|X;{|}`BDE`x(R=KT z2tNb@0rkz_mo5m?oTvd*-b|1R#sPnS$fgAKh0+cI)TbK&*(Jz<#$pe`)V~NvuYgio z%pdG3n>`i^5yo7U4E49OKQ&K9A>L~(aK?2ADBLKCJ))M-s=L602Iw$@T zC~Vbv2bsVuohuzJB<~sj3e`=KO64PshET zQ2!p&fH2KrS{Im?Vk%$jy&wQ#sz1(&`vQ4Gtffa$?$KWmMj1yjE}a>;kFs^1w-Kgs zr}C&=+}HDk#w-w^?E>R^lv$GLA z=A=X4b$ZhODG%(`iFO=W1d#X0(_k^mJAioV+xOrl#GM7OUXEZc961|c{EonuM;`@b zSM={crR~I6cZMP#)j?%m1LlE?!G*~G3*+C9J26M89Y@XsVq!krNHyQK*w0F=P zeI3B|dhVlqJ+5VNt;bYA<&^^TLHn>&4ng<*P#JWe+CcSE zozDQw1wrd}Cb-&BN{c;Nya=X)NPzJZ4d5bxIy=`v&jHjX$~WK9YoR9S3#hLDYp5^( z6V%WDEBto;-zwSpe}ZgF_{Z>nt2FNaN61?EYd}AT`$4+`+ItcK*0i37Sch6^@2m#x z0PBgK)%w{(@ihQzS+5J4Ym{z~!yM?jfXW{a{OK=8nAQ=cM_P$GCGtrx2zNlgWh^KH zVIT(l|B_CKBX6Re3TtNt_yk}r({rnH6Tn*Q#2V^c3KoKW4%nmUS*3lUU(xni4p%~H z-c$b`V)V0WwsW7>UkUgWkR54%AYgk+PrjJGPkYyY;zFcBUP*OgKajLSQ4FX&(*A(v2=Vv(xb~MLZ%25^ap+pd(Od+wkAney zo8$fx@3i|c_QU-z;F*vC&^Oxu4`c2f#vXX&Wozl5PgqM2tb^WyYs~q>bKIwkC zrgn`$+%{Y9DF-GEDKnlN7GapLa z;XwB=PxP6F!oyG=)~5Ei(xC+AnFejt_lj_RE5caM`q@6|gm!-5^r0W_5iXF3xG{{j z1KLe(k|CVduevO(OYK+0KnY6grvl+zfbk@IYdesAslB+TmBvZ@dpg(P9_DoC5l8=i zjkToHV7}<*Oi|zj(HJ;EZssyOX+5HRtr+7@jFrDWitBumK%TyT<9_G*{S)H-aebZg z{)cw^>-bM1FY&Yo`RnzM*}qYp@88_hWBqULQNDl4i#>>*UH*I& zHUgLv&)ohn-TSAoKaNz^A5Y_tr+gIe#~=SsX-~XI`G^zK`P=%Rl=?#ar*!{c?)%$D zN^Lr^UH*F~wwKP7e^2-KJmkkv9Oe6W>Hkw1{<=?8{p@Z*nFQKFMXl)4qfL>$A>1P&$v`8A^VWSOAbtz7O6*7=6&b&1`5EkRTPH>`wSCWFvj%`3Z`> zNO&En{r<3{omD7PA^xO)#qVE=mDuO#*|8O1+-P6ugr7iXMp8PPbv8h$FLM~}%i$TL z%ci<0FDbQ$_ydp~{E)5v+~S1Ej`WNn8+-(){eB!9cjDQvpCQh3@X%2_+cN>|anyo8 z0-NlGZ}R5`#Nl~#_y+hBu+RQQ&>O*egkk5yu;r15alH=LsGoe0o!g*zw(sACdle`P zjUga ze#;@~(QwuiuPID(;Y6h{Az%;6M`2Rxhj{b&^?!_yamqpYe<|mLc(N0{BRJd#X;wS- z2|_&x>-TC`qkXd+9z)!V2xB}Xe*Sp48~7dE0_KBakmE26dNarZ(}g&+0!sJ0fQ>j? z1VQfs_?h9MV3fNYWn!&JjE$uEuo?W|(22N#9G37^W8;?hopwwmpxyyTIK@vjqC81IAJ805rG#`VPWWCMiK}ruNPQXtOTk z2l$xyIj7twg!&n_T_r|}9nQ}xKf=9E{L??{bOjv2&tC&4?A*3*N#Gg!r=R4WI$y2~ zypey!cugp*lHJx#h`x!{ctR8y7YShm2L$3K4lwvcqP%IRoot<2V zE5H~#L5TaQXe&)khIpu4ku0A$R_~d(rk}vl_ds!`6GrJ`yc0G>f~a=FmIxCUIAJ9U z#MMsN#!snVb;2%DBtCM&0iswOcEW)tgo8z-EO6pOP6&sJ8)TUiA11oWZ}9V8X$7Kn zi{GVNIVWt1L}Q~9R-(q}bi%giYF0a8m#8-{a>4D?kUL2FX~y4SCHo!U0>^|Y-p|Wlr`7XdPcN1Pp++Q z_YCN0uWxQ`^JLVwx3{$Q>D8;Qp}oFiVs3Tw)L!k)O>I+V^`cCaC-YeDfz6FIMY(x- zd3|Z(^z|p`N%6-LdFblQ+Say)<|YrPu5WIyZf=_H$>Bw#L)ZR8!mPX@^Zm4Ibhd-csAdiHC549FM=} z`MLSIXzTI3x+~MG8XBu6Hr9G(z})Cr<$yChRqcH|)C>$lTXkzgOM6>xTSH@Rb8B6% z;gv)F{T)#znnjD4C0a#;s1x;~9gDR<e|0E@Qgn!kA{V)u#Z<($Lz|Fh3fj}_ zSWW(VGLOX^uX`YJG@=znC?!w->x*`c7Ug1~=zA=^zl5HM<@Ep53;(?{(GO~OgKmxI zFJ)7o+I4%I#B}s5U)P%p%@d`laVjh`1^Fq}Bk&?8J^(t>ogx^Jzz?k0?sM+^{ybh=@hw4=meF$6jsZJ@L? zbNwX``AZ4Z&%cj3jVr-+{ik~Ut*Ju)s!$$Tdm_G5-7|1a?eJ)8RKiMU=x{q`zvq}W zcqO!Oa zcnD(JbXuB6l&=>?wiU57XDBsWg6^EyKVIVvm~m{|DwOYm9cXTi22~grvIWmNzB>RT zPGdrAjLNG)?f$)oTILUXu!?E5l4Ys>QTk5P|4=T?8nRy#^JIa)-NP-QC^k?q2Q^ z_bKiQ_fYp)?s4vO+~>K+yX)M|?u*=W-PgNsci-=R%)P|@y!$=(7w&J|Ke)HM_qdOG z0zAQdy+RP zB`G&)bkg}rHP0ukeO?!@W`7SZ`Nv4{x^D=RMUs(Oc`C?_H8ClI`S( zp;Slb=fdA|)+#PU^hWTT<^&eKK`P>a(dYrY=i;E%mL`_fkJh{WSH9 z)NfM1OI?||IrX>H-KqQ2qS8ERC29TA`lk&{n~+wWHYsgNdUW~&>A$A$PVdZC*{;0M zb>_MU*FAT%v$MLBJl#+XU>=s)LfHMVkpR2Ht2I7=-M=@583emWn`x#`+r7n{ZC(Mp zFEDR3A2OdXpD{l%cUax56f4gvvWj8%zE-()jkfz7*nO8qm%3kcf8hSoy~4f5z01AN0&m7M++U~C$vwLh(mt%Gxl{5x+zb5Gh*!`!ZO|ZKGyGO$AU10ZgZxQT1!CT|K z%=;khZfLuEl2c&!xv=})$)Bf)RFQgV>eZ>YrY=lf{1>}_kos}z=c!-9?kiGPrEW>x zp1LP30(Q?!D?MiS+O)~q?!Tn(NZ$jy+j$}D#JYv+mcs56J3Bk~VsX^L`T`y=zK-H_ zX7zv-@mreoW&U7(Z+>VlGnbp6aLm!Kk?NVFIFom#Qp}MAa4EPF(C>bV?en%@A;kLk zh1e9ev1wDcjcuEvH%{5q72&QMCvS?`IB{du#tFC^v+*1uHa@uF(8gyr+8Z})OrzY0 zK}r0z>EcZ|ztGpl_cuMW@#w~zHa@lS+>PhrIu~r(xDMY}Y*?`2ip@A3ZkWAc=H`G6 zt(&pRH_Y2GQ|Hrt+wdo1J^)vPB^z*>+JF}G*G8N}*RR;vpRT9{8|ZgU_1D@bgjoCd z+THlRZ|&~2yVm}(_P4dauGPP5y7uC=m#n=IcU}fnYY(pdeeF+c*Q{N=cGcR~)-GH7 z%DO3QL)TpWm}NKWIMRQfbGn$&F}I3N3Ijr-eB%> z8lc78Y96p~V6#H#lD=DURyn@k2GByy<0^{o+GD{43jMn;yOQqM15dnfkFdwuXpen` zy}*9feo?1*$Nt)0abhamUk<+2chO@0vN0R{U$&kh_D7`lY8ySWe+CB`d_O?ghwY=T z2yC?(l+Tsp!brM`2-jHG*{(Ndc*w1@|au9z2>jxR_lH19qT>w4?6|ViU<)Y;zc(sz%-GK z2RpfmC&B$H7pKAP7%Rq!^PGod2Ogsr;4N6Fxz7r-mRo7|ZZTinF76Qbi3i1E@sxO0 zydd5d?}-n^XX115omek6;^;`^cAB}vK5Tv_-Bz()tv{OEaV}SQmW7G{ z5rXq~jPQy?;T9gauz7H43voUl4EN-8F%%EmVb)uCtTy2g(1=Ish2kvnhqyspD;9`b z#P#B4ajUpnED{fiN5x~}HSv;oMJ&S`f^WrYu|j+=*5cjM+hUFQQ|uM{#R2IO8)Tpe z5;qE4TqlCXO(II%DPqMvB2L^ZqQzaJi&!YSiU&lpctUg+4~r!6IG)WWCfuHq==i#J2Cwhyw;CjCS$L?iOBHn~!|015!uj6U)uIMM;7axd|@dly4 z_(Yr{K8DlwDUJ)v;R1gFSLkcFVPAe1OGvc5$nX+VzW3`Y!T;( zpT+s&S2zya#02ph-ehcro3RUS*G@PTJK%sEg==vLuE;*P6-VG)92C>=o?-@GrCcNf z#Kq!L86qy1Vd63wD#FEWaCv@$Gxa;1lil_j`v=VXUG|^$5&NLM*Is9@w>R2b>|g9( z?alUD`zQNndxO2ns5TB7HO3+PdwZ2pYaBMOHI5iZjZW(dV}L8d6=j@lU2dFXoNJtC zj5j72JB=!1qOspNVEk!pH})7ijNQgwW0$edm}1(d%V;#F8cpz60!?L1!Y{$snbN2? z4Wq#{jmf5kCu%UfnNXwI46|1nEoQhe&1f|v%t)inXg4}!rp%HfWvV<)4wggYP&rHv zlBdeyvOxBd{bZR;l3tlCQ)If#kl8Xv_LR9YU!EjSmi^@^a)2BtD`cfCm#51S@(lTs zd|AFNKa-!!FXb2VEBUqjPOgyO${*x9xn8~^m&pzC1-V+Tl0V8d@+Y}celOR`cjTLL zx%@_sk{jh{xk-+Zo8_7EXL**~BFD;Ky+=g8mWxpJF4PyQ~?mw(9da=Xlv zZ^_@mqTD5`*WF2Apew;FY&R^~VJJDnaLJiQfSe^~8$t2{BUoN&gvg7G zPJq{v&1RC$|`CT};=ZGeApzeA+l!E-_A#OO5_wmbAolDaA}_ic4gW@rK#e>}KYh z1!iBfpE=STWlk`w%tmvnd7*ic+1>16dQ7*OWG0$f#vJ2P<6`3y<1$x_Io}oSN_O=y zPcct6`ZJymKUCQin-fL zhc{jXpFH0xu=4CYJKx-CZM2@V9UKZL_vozgbUPPg#qtd#zusU#uMQk&`b7PzK2@95hw5kbk(#1jRWGP_)l~J0dQQEg8dazIQ+=tL)Dg8`eXd$< zr4FbUZ9~1Lj;e1}n{BCm>UmqLW$Li{MzyFF>UZ_BdRFaFtJK?Snp&y;P>0lBwNtHD zpQ&c`z1nV@YL9x!7V1Z}TYaatsn^v(wM+e=zET)$p%~Thv z1?oC=nYu(>tS(Y>)TQbwHC@e6v(rS0Agl)F$k?+x#~PMK~<@Vs#=||#;YZ2sd`2|t%jX0b7C=)OYaKL=u_-Q{vHC#CBg=$GNpH`y z810K@BMhuJpgD~B3$!O=d7$v(2y+Xx7h~dV0e?flZxZJ1P^zOZ!oNcMG1mJ~>L;+? zfu77*4 z*2h-x8+a6KbD(+gy93QHY9Eb1%_*8^#QlKQ20`}Q>p=b9=Ro$` z&){q-!~qAg*`FtH5MhGKI0Oy@%6EjpSr)Il9LQ#!49>Uu1+v5?PPzhqu?A;ef%BjS zr(XeIS%Y&hek9G{M6CBIy;t3YFr@=HB@3!g*Lf!t^P9lQS?KyuC(h79QhflYX}!nk zeePa_Ll~T}1x}zEoV5i`q#B&Mg$!rJLTCholemzP4DET6+5yOqkW?0+{Yl0!II#;! zZ349aNoofme?-PJw9m-|hI|l7bpzVlB-ICS+844LLwl!8WXK1RR0p8FjrK&nFQ!A? z4DEl?!;qgMsct}fp7b*0$4Ke}pnXwNI{^7CGL@mdP^K~D*GQ@Z&|WF29RP10gru^7 zcneDP0lbY6GMk~jO;Ub|pOTaZ&^{>pGNM0}@&MWkU07XK1gLBN+16B;^6Lr^=BG`DJnxBi2Dj zGvtd&x(8@qlxH&Ji^;PX+8505bkg=pwk)h<0Rc90>Dg${5krqGeTSno$U|;y?_yyLoaj)gHl;QTn455L@2n4 zv2KJ?n*iSL2}%6{c+)2&*$9xoFFP4}CL0M1`PxPohMs{&SB89QqZ>odH=~3h-^X}` zvDZMCG4>D8*BE;>^aJoA-l@ap2G%M;Z{3aW8G7GttYYk4P|5@BKcQ3>u+ayD@&NlF zlA`JA)#QY)* ztO*nIi!csBF~3aAEgLp7F|P;%>%zpGB8iXNfkg<9 zf<6JBM7RpN7(9*ee&`a$AiFJPj6Kk20L_~f&`%g+2lP|M*bQCI7&IR~V+_nCI!h47 zKIj*WF$MZ1_zKXx_!@kRG>y>j0M$eDVx@zElHF;(PJ&{tYG~fAW{f&0=BY+PF;5Aj z9*TLY!MrqSo&lo)O7oAPc}jB^7?Yvv9V{sIllm6~$QHn8hEhL?FhG3+Hno@R2#gje z)|Dn4inU~7ei_rCG@od`L;#u}oruRgLv_MJ+sTK}KgmOT>6v4peFXU<77`Kktg~Pj zf}VjE>}bJe^sJ-zG8WoP&r3Sf67+o2KNAc=xBy}7Sp@kS^j?6VXS{{B67+nw&_4S4 zF8NGW42VS-Ys`uRT@cQOc4f#fvATg|#1}$S0NP9b0=-`#WPd2-2jnYQ8327H|G>%u zD36}~Rt`gcfz^|t=ed;&&|Z2zTX_KWNX$*E2>1|w30e$F5q=fghmmhX`vUYyz6+&t zQIEttwJI6;C6w$1X+X^$-Y2-3mwYHAE3j)aKvK{S=7EW5Pk(p z;|Jsh=qN_M03FRp%wKB^BUeGs1Y?mNbJrRN&PEvX$~uRUn6K8kjC==r9wXm`VlN=% za_D$QegmDrkk4XOF>)hxB18U*Rn5pv&>DvP7^{|%o1v2!@@uR*M*a-N8Y9TZu^Je; z1v;4_f5)1_$X}q14Ea9RR7U;^ZDPm=vYHvW723j(KV(f~b!N@5ppN=HirB->vl%&g5JT9PiNi9$lcJp z81nC|yBWC$dJjXso^>xH_d@Su$mg@}XXv-it%VHvf7Szx+z)+_A%D<%h>-`N4>RN& zT8}XDPw1lz`H9wJj64K=oFPBaTEvk5WIe%<&uEdY0r^rE*%y%iXg$S{Uu8YbkS}R1 zVaU(2mNMj1TF)?sfIiERk7+%}7!vwCL%yc<0%IV9MPmlY@5FCsXbcnjGDCi-^$KHH z&}9tyq}Hp9p`foZ9E0b_(fKV-;%wLW5uQ0T`D`LgtWlQ6=dpEB|i=yJvghknM$Ind7;BLeybV+2CK zWaOpLuNWf|`ZXgjgMPypQP6K0c{%hu#)yWlVB{6hm5dPs{hpCmLRT?HEOa#^uY&%- z7;(@a895iahB4xyKQVG1bS*>vxV4UvS3}n``<*{z=$ zc`bAcVyKBX5T8WsGF#K1SXG-Om^)&;yLT75XP*q(Toe@;2xp#z=!6X5{VA zBaD#_J<7;Cpq-47!LN3ez?{DmVaXVoP=k?oK~2WUf?ABc8;XpCkqxyOc@NaZ7&*`Y zM&1j>d?k#Y&>%+M2MuP7TxbX*?}vsmMlWa>BNsx$86yuG!N>=onD>N{55-(3fCVH83!cM1706!VoZilCUIgnR^wc}W;PDCQy|ABAH65k@f-bB>UY zK{3w=I!7wZEkZsH#e5=+-cZaTLN0=0-VjD96mx~Z=X`|1{2+`z&=iKw{VJ7_2cZ~y zg3jU!<4qVeCN#!CJ_V(51;$BG8cQIbhSK-}<76m}8IVh$G)}-c1xjNBf}x0i7CHi)h4>oiIL3GtdJaSH2HfW{#_Q1WjPV9^ z0;ogYc4$3lMw#zITfj8LcZIfsHiR*s-IT5a;l5Dn+YE$9LSZjAY;00_v%v)jH$pE2 z7a>eK2h2qn^T|CAT#ve7d-o0CcEk^W-U04MJZ$Y=2p&T`#>)LTSc3S^p-aIti0=-i z{sYqkeU33P5boz06Z6>pB4Z{(Ut-KG=*!?0lu7Mc23|$@V(4p(LG_ZofGY+{_5vo2 z-J6Un8u}LFN`}78xOza}Va!vYWK&?C41JF=`$Ioq%#)xWGUj0DN8n?$=SJu!U^&8f zLqB6&aZs`aa3w&$U|cj_UxIH?*BIyu#vBb@$(S@pz6YyNCfRZ|_yOUkp=%gdJoG2V z)djkiadm^P0~=93=8Ah0*o^Q*=+BJV1l_{W`xN&t;8&DSw%H1PLzwKhjiL8g?%%;5 z=nIX}cE;s~?qWo33Lx*UJBjE(0dp6eumzgxDS9oQP<1RgWxd2pF)o?t|aJD z#)b9iae)9lld$eR!HhKz8pY80)`Ri(Ag$$vVhjj+U*Lhg2s-O}5&&#Q=T#5JgP?P) z2YvH&M;PnK(}SUNt;Yk<7MsFUE--gO(-;%>^3Xj%zKN$4^g*};TF#glXU}O2y^rv; zF!Y|r(+*~#%rBv{8S-U37ck@tdoE2`+vo1{A!@@tarWXO+6TEwUb=ueD&7IZCRp9$RrHlxfiDAp-Ken!$3@GHX6 z(5;L;TnLy(L%yCD_9w{i_L>Zx=e+0-LH?r`?IY-X;6>jE^6|ZBD?#TxFZxMX4?@vy zg3eD~*odGrr5AlB$e;DX76hHQyclQFT<_Biy;txqVd!j~jCn=aIZ%VKhe1uo?gOPl4iNSTXa-}ChGJe2_8Cx&31NGo z7#G4G0-ev;B~Z*Wg3h4Hn6JtABD@-kxk%8tGZ}VChRx_~nhZM<^sXWqW0*{12b(2h z>XIb7wN$19TouraXYo zsmY%+_Bbfk0AY_30%p_L=RqaFnAtT@j8}?}n|43)uajm|KKh3?+L3+Xqcy>~o>1jC~R`jj`*5K(t1+LnWi$gJRqW z)d4jb^%c}&6y`&!V$>&4j3c2iXHqeag!&YUaU|4cD8`XcA3`yXg!&nZaU|47P>ds? z(BD*yBcWb}VjKze0uds?_Cqm_g!&wc@g!6$6k|%*WG9R%p$r3Hj`1ypjnJM z49#ZLH_#kLwLp6^Y6UcxQNKfbG3sS#9;2Rx<}+#sw182opoNTj8(PGuX;2@dRziyz z^#`tK8#uo?aQdop#2!t48>e0)c4Sn8MPgH3S-l}?$4+_&;g8k z2|AF$loqLFjQSB;&Zync3Pybgtz^_T=paVD4n37o2cd%*wF`P0qke#%&Zw`ULm0IV zI+RgwK!-7EJ#;vu-h_@|)LiHpjJg0i5{yFMuZNCi)aB4IjG6^KlTkCFXEEwR=vYQA zfR1C-b25KI3D!^Q}Z79t-pw>cL8TAvijZtf$ z?Tp$8?O@baD76)+EzlW^+5jcn0rftVYzowJDD?-ZkD)XkK)nSe`vSEIN;U%OHz?T- zs1KlIQ=qJ6pw1B%ubjVn;aP?{e= z`Jgv2svnf>cr)T@{@%ipmVjH0o6mQjyG zUu4uG=rTr88Lu(w3FuplLLI5^F$#60l8rt@T{K_FzCh7D{e)38cRpp*5a{QOIvYwh z1?qI@m*5+Ohe5w%6s?sNU?t*d4Xpw{Abbw=M}WDbCP3GL^$61(r+I+!RMgkaj3OJ* zT=@<0uvhAKMh%7T0J{nfO2kp<; zU7-URyBiekBkV*d))!%Sht>kv#_j>dc%)5182wI$p;)HKfSoli~ zQilEIZv#6J0Bf12NXMAu@62w#38niGgP%23Dya3&j~3NuBfO9}9%I z5^HyaCr+u0{IolM2_iGfJ_8@=LknDjJ|Ejdq=+ox6MaR67$QcAaiT^{5z|D6m?JI| z^TbW!PO(rtDwc|u#OvZ+@rn3c&?jKmh)rTAKJ{wKKp8IMWTH&Lrz4B;DacdtdC8IZ zjN*8FzOWIW51b>flJoJG4ephX%4hIt$k*kE_ypued>*mWP)4v3Z6q0)MlYk-ILRnC zPBX^flb*H46nrLghH;T`g)!f_)mUgeYCK`QV7zL)hrf&PnenZ$+E{P=hEIGR!KXaK z%~*Wi&V#>^kZ+dY^K}EvLHIP?Ip!pMF0a*`g-^-NHE%NSH1Bo(V!})2d*-M3^!ZA2 zjk(eM!`yEk!6)FttQdU$KL?+VKGizYs;D?XUzzR6tf2FQYJ(bs+Ja^WT^ckm z==z}Bg6<7^IOxfsXM zlHikrD}sjvj|x6JxGK0lxH))w@I}E_1kVq?DfrIdg~5*nKOOu+@N2>E27eO#Rq*%0 zYlD9d{ylh4@SzYRBrqf*BtE1^NNPwh}mqXqR`5@$zkk3NC4p|ZML&*A&jUih@c7_}XIT&&z)Cg6f zA)(=+QK7M+iJ@ts1)+UH%R+~To)cOdIxTcg=-ki+p|^(K6MA3hBcY2!p9@_U`da9_ zp`V0)75aVX+R&dve-GUgdML~Y3k-`0ix2A&mKv55Rv6YNY(UtlVZ+1D3_CBZCTvPr zYuK!?Ibn0d7KGgzc2C$tVNZlT6ZUf0n_(Y>eHQj@*biYF!hQ|g5w<_KNbFb_^aXX zgnu0VW%$bQpTakXZwucYelS8t1Vn^K#6@(ENQuafD2OPH=pQjCVpznOh;t*VBPK^o zi7j;Y2-BAxlEs9zi^-|OuQSV1BkNPHRb=3N(U!t~0?Tb1RZAAx1M@4su z_C%*g=SKUY`$d;UpB8;a^w{X}(UYR5Mz=>_5Pfm#stMg#w5hJW71-J#uUZ$jTsm-IA%o5Suy9w)W$T% zw8hMhxin^8%=Iz1#oQb7aLki2&&IqG^H$7Tg89Tj_aY*lQ1Y;)}N*o$JXh@BsMQ|z6w3u7OPeJb|(*jHoU ziTybC%h;8%KgDi|-4S~<&W;OlarUH$3jVxSF^rajkK);^xH7jav|R zYur6?55+Bxdp_>9xDVpKi2FWnUEJ2VJ#k0k?f9_xxOh)|W_&?>pZN0lVex0hpC4Zv z-x%K(KRf=?_<8Zy$KMuzZ~VjYPsTqR|4RH@@gK&29{*kZkMSGhx5n>G5DAe9i3ynr zzJ!W|kqK1^EeV$~?;)j&4_XyQ|w1-QMc9qTA2i4kWq~-HG{$rzM_~*qV4% z;ysB=65mhUl=x@&knXA7PwqahdsFu-y5H0NneLx<-`>OM5!EB3N538;dNlNy(c`Kf zxA%Cg#|u4P>+yMybv^dF1Ko-40{0;N^_?d7W$rui_jVq`-`jb~{f7H}_j3HLqc!d= z?mygn-G6%Uvl>sBr<*6u)6-Mr>FYVeGuAWSGs!d6)9$&zbD8IA&kdftJ&$^x^1R@A z)AOI(= z5>nhLX(>HZic(HWDNi{)Wn{{@lnE(yDNQLIDHo<(o^nmfjVX7e+@JDj%2O%Nro58! zR?3GdpQn76@?*-zl&vW{Qx2qbrrN2YsWGYDQoX5}sd=d-sVApaqz*|vBXw-*_|)3e z#?-dd+4!qM^HQ%*y)E_L)Q9mmot{m71%J)yL;O9Vm8n1B?>KG4-*GyaCes4a!qei? zx~HY2<)-=Y7oEz|PD?u@ZEV_j{7t8+Y3*qjq+OPFb=nPSx2N5g_DI^|wCB>6rM;c@ zQQ8-2E7I1aZA$wsZCBc#=_1{g9+n=Po|vATo|T@T-aGx2^vd+1>7&!nORq_vlHQs= zD}7G--1G(Mx2E5d{!sc8>CdFUoc?C|2kD=sf1Cb8`Ud>vs2%D1(~oATjF61zjIJ3; z85tS9GKw=!$|%n`J!53XxQq!Ibs0?=9T^v9T%K`F#*Gc?9779(#-yugEEI@j>$YXvpREf=CsV2 znU`cEb7|&FnQvsipSe8qo6Oaj>ob4J+@85F^GKGJ6`U27)g{Z5 zm7bNG<;&`qRhD&H))`r2v&Lsl%9@(ho^?UiWm#8e-H>&A)_qxzWG&8mE^ArV+gTrF zeUY^yYfaXstlzSBWgW_PWd~(PX2)iC&F+z%oSl`OpWQqAlmAx)|OZFexd$SMcm^nc?kvR!D z-E&fMvU3V@N^|<>49XdnGbZQUoa&s(In#1x=3J6rnEOob7rEXOVzIT0}_`dS3^KJ3{;oIvwTx=GH6ekp?78e$uR6MA7Y;j$2 zQ*lS}#l`cAZ!W&ScyaL?#qSp{FJ4i+u6T3t_TqiTM@p=c;F744E+w9l^pc{Iz9j=o z2A7N}Ik%*~q`72z$wehsl*})=spQU*g(Z)bJYDia$!jI=mV8n2b;+udbtONSY%AGa zaN3ttEyX@n+8m5t({(5R@2;GRb5@%)Lvd)h1hc3s%kH*ZfLFU zm^!Jkc4mc6R&gv@1?R44u4`_poia$@9dtZ-M^i¥CNnF6`8aRjsEUzc=`_!8-Zi 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%0A}YsmPA)k(nsOt60A}QyjvPk`WrgxZ>%Y! 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
  • U*cy@^3^EAaz@06}5h1~Td(9cDvuDgY; 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 rtk{I`o=-I(;CNK?Xh~{h64}JbQ1zA$sq5Lk17q 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
  • #INj1{$i%)BxN8>65O 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 X=#_-D;v{p0Z=}749OgR!;qQL|c2Nc} literal 0 HcmV?d00001 diff --git a/packages/cli-link-assets/src/__fixtures__/files/GIF Image.gif b/packages/cli-link-assets/src/__fixtures__/files/GIF Image.gif new file mode 100644 index 000000000..e69de29bb diff --git a/packages/cli-link-assets/src/__fixtures__/files/Info.plist b/packages/cli-link-assets/src/__fixtures__/files/Info.plist new file mode 100644 index 000000000..0382b8275 --- /dev/null +++ b/packages/cli-link-assets/src/__fixtures__/files/Info.plist @@ -0,0 +1,51 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleDisplayName + RN0730 + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + $(MARKETING_VERSION) + CFBundleSignature + ???? + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + LSRequiresIPhoneOS + + NSAppTransportSecurity + + NSAllowsArbitraryLoads + + NSAllowsLocalNetworking + + + NSLocationWhenInUseUsageDescription + + UILaunchStoryboardName + LaunchScreen + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIViewControllerBasedStatusBarAppearance + + + diff --git a/packages/cli-link-assets/src/__fixtures__/files/JPG Image.jpg b/packages/cli-link-assets/src/__fixtures__/files/JPG Image.jpg new file mode 100644 index 000000000..a1fcc0321 --- /dev/null +++ b/packages/cli-link-assets/src/__fixtures__/files/JPG Image.jpg @@ -0,0 +1 @@ +image_jpg.jpg \ No newline at end of file diff --git a/packages/cli-link-assets/src/__fixtures__/files/Lato-Bold.ttf b/packages/cli-link-assets/src/__fixtures__/files/Lato-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..016068b486e1bd1d73743185c2752b7b1b843701 GIT binary patch literal 73332 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 z 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 tm^u1=SHySLb*|#TlTbn@U`PzX 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 literal 0 HcmV?d00001 diff --git a/packages/cli-link-assets/src/__fixtures__/files/Lato-Regular.ttf b/packages/cli-link-assets/src/__fixtures__/files/Lato-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..bb2e8875a993f9c7d9e45d0eeffa839550cc6287 GIT binary patch literal 75152 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%0A+&hMl60&72-OVAV9J+!ire=9wu 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 Z8;iL+xPN%wVgtz|$k+h#HpbLQ;GgdIYrFse literal 0 HcmV?d00001 diff --git a/packages/cli-link-assets/src/__fixtures__/files/TestSample Document.pdf b/packages/cli-link-assets/src/__fixtures__/files/TestSample Document.pdf new file mode 100644 index 0000000000000000000000000000000000000000..f975f34a8390d71c3d8d08ecfadff1feb0563a9f GIT binary patch literal 12 TcmYevPcF?(%`4F>NJ#?#AGHL? literal 0 HcmV?d00001 diff --git a/packages/cli-link-assets/src/__fixtures__/files/project.pbxproj b/packages/cli-link-assets/src/__fixtures__/files/project.pbxproj new file mode 100644 index 000000000..67b6ad785 --- /dev/null +++ b/packages/cli-link-assets/src/__fixtures__/files/project.pbxproj @@ -0,0 +1,698 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 54; + objects = { + +/* Begin PBXBuildFile section */ + 00E356F31AD99517003FC87E /* Example.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* Example.m */; }; + 0C80B921A6F3F58F76C31292 /* libPods-Example.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5DCACB8F33CDC322A6C60F78 /* libPods-Example.a */; }; + 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.mm */; }; + 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; + 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; + 7699B88040F8A987B510C191 /* libPods-Example-Example.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 19F6CBCC0A4E27FBF8BF4A61 /* libPods-Example-Example.a */; }; + 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 00E356F41AD99517003FC87E /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 13B07F861A680F5B00A75B9A; + remoteInfo = Example; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 00E356EE1AD99517003FC87E /* Example.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Example.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 00E356F21AD99517003FC87E /* Example.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Example.m; sourceTree = ""; }; + 13B07F961A680F5B00A75B9A /* Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Example.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = Example/AppDelegate.h; sourceTree = ""; }; + 13B07FB01A68108700A75B9A /* AppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AppDelegate.mm; path = Example/AppDelegate.mm; sourceTree = ""; }; + 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = Example/Images.xcassets; sourceTree = ""; }; + 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = Example/Info.plist; sourceTree = ""; }; + 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = Example/main.m; sourceTree = ""; }; + 19F6CBCC0A4E27FBF8BF4A61 /* libPods-Example-Example.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Example-Example.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 3B4392A12AC88292D35C810B /* Pods-Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Example.debug.xcconfig"; path = "Target Support Files/Pods-Example/Pods-Example.debug.xcconfig"; sourceTree = ""; }; + 5709B34CF0A7D63546082F79 /* Pods-Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Example.release.xcconfig"; path = "Target Support Files/Pods-Example/Pods-Example.release.xcconfig"; sourceTree = ""; }; + 5B7EB9410499542E8C5724F5 /* Pods-Example-Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Example-Example.debug.xcconfig"; path = "Target Support Files/Pods-Example-Example/Pods-Example-Example.debug.xcconfig"; sourceTree = ""; }; + 5DCACB8F33CDC322A6C60F78 /* libPods-Example.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Example.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = Example/LaunchScreen.storyboard; sourceTree = ""; }; + 89C6BE57DB24E9ADA2F236DE /* Pods-Example-Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Example-Example.release.xcconfig"; path = "Target Support Files/Pods-Example-Example/Pods-Example-Example.release.xcconfig"; sourceTree = ""; }; + ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 00E356EB1AD99517003FC87E /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 7699B88040F8A987B510C191 /* libPods-Example-Example.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 13B07F8C1A680F5B00A75B9A /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 0C80B921A6F3F58F76C31292 /* libPods-Example.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 00E356EF1AD99517003FC87E /* Example */ = { + isa = PBXGroup; + children = ( + 00E356F21AD99517003FC87E /* Example.m */, + 00E356F01AD99517003FC87E /* Supporting Files */, + ); + path = Example; + sourceTree = ""; + }; + 00E356F01AD99517003FC87E /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 00E356F11AD99517003FC87E /* Info.plist */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; + 13B07FAE1A68108700A75B9A /* Example */ = { + isa = PBXGroup; + children = ( + 13B07FAF1A68108700A75B9A /* AppDelegate.h */, + 13B07FB01A68108700A75B9A /* AppDelegate.mm */, + 13B07FB51A68108700A75B9A /* Images.xcassets */, + 13B07FB61A68108700A75B9A /* Info.plist */, + 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */, + 13B07FB71A68108700A75B9A /* main.m */, + ); + name = Example; + sourceTree = ""; + }; + 2D16E6871FA4F8E400B85C8A /* Frameworks */ = { + isa = PBXGroup; + children = ( + ED297162215061F000B7C4FE /* JavaScriptCore.framework */, + 5DCACB8F33CDC322A6C60F78 /* libPods-Example.a */, + 19F6CBCC0A4E27FBF8BF4A61 /* libPods-Example-Example.a */, + ); + name = Frameworks; + sourceTree = ""; + }; + 832341AE1AAA6A7D00B99B32 /* Libraries */ = { + isa = PBXGroup; + children = ( + ); + name = Libraries; + sourceTree = ""; + }; + 83CBB9F61A601CBA00E9B192 = { + isa = PBXGroup; + children = ( + 13B07FAE1A68108700A75B9A /* Example */, + 832341AE1AAA6A7D00B99B32 /* Libraries */, + 00E356EF1AD99517003FC87E /* Example */, + 83CBBA001A601CBA00E9B192 /* Products */, + 2D16E6871FA4F8E400B85C8A /* Frameworks */, + BBD78D7AC51CEA395F1C20DB /* Pods */, + ); + indentWidth = 2; + sourceTree = ""; + tabWidth = 2; + usesTabs = 0; + }; + 83CBBA001A601CBA00E9B192 /* Products */ = { + isa = PBXGroup; + children = ( + 13B07F961A680F5B00A75B9A /* Example.app */, + 00E356EE1AD99517003FC87E /* Example.xctest */, + ); + name = Products; + sourceTree = ""; + }; + BBD78D7AC51CEA395F1C20DB /* Pods */ = { + isa = PBXGroup; + children = ( + 3B4392A12AC88292D35C810B /* Pods-Example.debug.xcconfig */, + 5709B34CF0A7D63546082F79 /* Pods-Example.release.xcconfig */, + 5B7EB9410499542E8C5724F5 /* Pods-Example-Example.debug.xcconfig */, + 89C6BE57DB24E9ADA2F236DE /* Pods-Example-Example.release.xcconfig */, + ); + path = Pods; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 00E356ED1AD99517003FC87E /* Example */ = { + isa = PBXNativeTarget; + buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "Example" */; + buildPhases = ( + A55EABD7B0C7F3A422A6CC61 /* [CP] Check Pods Manifest.lock */, + 00E356EA1AD99517003FC87E /* Sources */, + 00E356EB1AD99517003FC87E /* Frameworks */, + 00E356EC1AD99517003FC87E /* Resources */, + C59DA0FBD6956966B86A3779 /* [CP] Embed Pods Frameworks */, + F6A41C54EA430FDDC6A6ED99 /* [CP] Copy Pods Resources */, + ); + buildRules = ( + ); + dependencies = ( + 00E356F51AD99517003FC87E /* PBXTargetDependency */, + ); + name = Example; + productName = Example; + productReference = 00E356EE1AD99517003FC87E /* Example.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 13B07F861A680F5B00A75B9A /* Example */ = { + isa = PBXNativeTarget; + buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "Example" */; + buildPhases = ( + C38B50BA6285516D6DCD4F65 /* [CP] Check Pods Manifest.lock */, + 13B07F871A680F5B00A75B9A /* Sources */, + 13B07F8C1A680F5B00A75B9A /* Frameworks */, + 13B07F8E1A680F5B00A75B9A /* Resources */, + 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */, + 00EEFC60759A1932668264C0 /* [CP] Embed Pods Frameworks */, + E235C05ADACE081382539298 /* [CP] Copy Pods Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Example; + productName = Example; + productReference = 13B07F961A680F5B00A75B9A /* Example.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 83CBB9F71A601CBA00E9B192 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 1210; + TargetAttributes = { + 00E356ED1AD99517003FC87E = { + CreatedOnToolsVersion = 6.2; + TestTargetID = 13B07F861A680F5B00A75B9A; + }; + 13B07F861A680F5B00A75B9A = { + LastSwiftMigration = 1120; + }; + }; + }; + buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "Example" */; + compatibilityVersion = "Xcode 12.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 83CBB9F61A601CBA00E9B192; + productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 13B07F861A680F5B00A75B9A /* Example */, + 00E356ED1AD99517003FC87E /* Example */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 00E356EC1AD99517003FC87E /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 13B07F8E1A680F5B00A75B9A /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */, + 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "$(SRCROOT)/.xcode.env.local", + "$(SRCROOT)/.xcode.env", + ); + name = "Bundle React Native code and images"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "set -e\n\nWITH_ENVIRONMENT=\"../node_modules/react-native/scripts/xcode/with-environment.sh\"\nREACT_NATIVE_XCODE=\"../node_modules/react-native/scripts/react-native-xcode.sh\"\n\n/bin/sh -c \"$WITH_ENVIRONMENT $REACT_NATIVE_XCODE\"\n"; + }; + 00EEFC60759A1932668264C0 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Example/Pods-Example-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Example/Pods-Example-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Example/Pods-Example-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + A55EABD7B0C7F3A422A6CC61 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Example-Example-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + C38B50BA6285516D6DCD4F65 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Example-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + C59DA0FBD6956966B86A3779 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Example-Example/Pods-Example-Example-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Example-Example/Pods-Example-Example-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Example-Example/Pods-Example-Example-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + E235C05ADACE081382539298 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Example/Pods-Example-resources-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Copy Pods Resources"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Example/Pods-Example-resources-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Example/Pods-Example-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + F6A41C54EA430FDDC6A6ED99 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Example-Example/Pods-Example-Example-resources-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Copy Pods Resources"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Example-Example/Pods-Example-Example-resources-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Example-Example/Pods-Example-Example-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 00E356EA1AD99517003FC87E /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 00E356F31AD99517003FC87E /* Example.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 13B07F871A680F5B00A75B9A /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */, + 13B07FC11A68108700A75B9A /* main.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 00E356F51AD99517003FC87E /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 13B07F861A680F5B00A75B9A /* Example */; + targetProxy = 00E356F41AD99517003FC87E /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 00E356F61AD99517003FC87E /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 5B7EB9410499542E8C5724F5 /* Pods-Example-Example.debug.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + INFOPLIST_FILE = Example/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 13.4; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + OTHER_LDFLAGS = ( + "-ObjC", + "-lc++", + "$(inherited)", + ); + PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; + PRODUCT_NAME = "$(TARGET_NAME)"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Example.app/Example"; + }; + name = Debug; + }; + 00E356F71AD99517003FC87E /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 89C6BE57DB24E9ADA2F236DE /* Pods-Example-Example.release.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + COPY_PHASE_STRIP = NO; + INFOPLIST_FILE = Example/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 13.4; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + OTHER_LDFLAGS = ( + "-ObjC", + "-lc++", + "$(inherited)", + ); + PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; + PRODUCT_NAME = "$(TARGET_NAME)"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Example.app/Example"; + }; + name = Release; + }; + 13B07F941A680F5B00A75B9A /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 3B4392A12AC88292D35C810B /* Pods-Example.debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = 1; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Example/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + "-lc++", + ); + PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; + PRODUCT_NAME = Example; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Debug; + }; + 13B07F951A680F5B00A75B9A /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 5709B34CF0A7D63546082F79 /* Pods-Example.release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = 1; + INFOPLIST_FILE = Example/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + "-lc++", + ); + PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; + PRODUCT_NAME = Example; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Release; + }; + 83CBBA201A601CBA00E9B192 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_CXX_LANGUAGE_STANDARD = "c++20"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 13.4; + LD_RUNPATH_SEARCH_PATHS = ( + /usr/lib/swift, + "$(inherited)", + ); + LIBRARY_SEARCH_PATHS = ( + "\"$(SDKROOT)/usr/lib/swift\"", + "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", + "\"$(inherited)\"", + ); + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + OTHER_CFLAGS = "$(inherited)"; + OTHER_CPLUSPLUSFLAGS = ( + "$(OTHER_CFLAGS)", + "-DFOLLY_NO_CONFIG", + "-DFOLLY_MOBILE=1", + "-DFOLLY_USE_LIBCPP=1", + "-DFOLLY_CFG_NO_COROUTINES=1", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + " ", + ); + REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; + SDKROOT = iphoneos; + USE_HERMES = true; + }; + name = Debug; + }; + 83CBBA211A601CBA00E9B192 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_CXX_LANGUAGE_STANDARD = "c++20"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = YES; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 13.4; + LD_RUNPATH_SEARCH_PATHS = ( + /usr/lib/swift, + "$(inherited)", + ); + LIBRARY_SEARCH_PATHS = ( + "\"$(SDKROOT)/usr/lib/swift\"", + "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", + "\"$(inherited)\"", + ); + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_CFLAGS = "$(inherited)"; + OTHER_CPLUSPLUSFLAGS = ( + "$(OTHER_CFLAGS)", + "-DFOLLY_NO_CONFIG", + "-DFOLLY_MOBILE=1", + "-DFOLLY_USE_LIBCPP=1", + "-DFOLLY_CFG_NO_COROUTINES=1", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + " ", + ); + REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; + SDKROOT = iphoneos; + USE_HERMES = true; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "Example" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 00E356F61AD99517003FC87E /* Debug */, + 00E356F71AD99517003FC87E /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "Example" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 13B07F941A680F5B00A75B9A /* Debug */, + 13B07F951A680F5B00A75B9A /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "Example" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 83CBBA201A601CBA00E9B192 /* Debug */, + 83CBBA211A601CBA00E9B192 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */; +} diff --git a/packages/cli-link-assets/src/__fixtures__/projects.ts b/packages/cli-link-assets/src/__fixtures__/projects.ts new file mode 100644 index 000000000..013329e86 --- /dev/null +++ b/packages/cli-link-assets/src/__fixtures__/projects.ts @@ -0,0 +1,104 @@ +import type FS from 'fs'; +import type Path from 'path'; + +const fs = jest.requireActual('fs'); +const path = jest.requireActual('path'); + +const fixtureFilePaths = { + mainApplicationKotlin: + 'android/app/src/main/java/com/example/MainApplication.kt', + mainApplicationJava: + 'android/app/src/main/java/com/example/MainApplication.java', + infoPlist: 'ios/Example/Info.plist', + projectPbxproj: 'ios/Example.xcodeproj/project.pbxproj', + latoBoldFont: 'assets/android/fonts/Lato-Bold.ttf', + latoBoldItalicFont: 'assets/android/fonts/Lato-BoldItalic.ttf', + montserratRegularFont: 'assets/android/fonts/Montserrat-Regular.ttf', + ralewayRegularFont: 'assets/ios/fonts/Raleway-Regular.ttf', + firaCodeBoldFont: 'assets/shared/fonts/FiraCode-Bold.otf', + firaCodeRegularFont: 'assets/shared/fonts/FiraCode-Regular.otf', + latoRegularFont: 'assets/shared/fonts/Lato-Regular.ttf', + latoLightFont: 'assets/shared/fonts/Lato-Light.ttf', + documentPdf: 'assets/shared/TestSample Document.pdf', + imageGif: 'assets/shared/GIF Image.gif', + imageJpg: 'assets/shared/JPG Image.jpg', + imagePng: 'assets/shared/PNG Image.png', + soundMp3: 'assets/shared/MP3 Sound (1).mp3', +} as const; + +const fixtureFiles = { + mainApplicationKotlin: fs.readFileSync( + path.join(__dirname, './files/MainApplication.kt'), + ), + mainApplicationJava: fs.readFileSync( + path.join(__dirname, './files/MainApplication.java'), + ), + infoPlist: fs.readFileSync(path.join(__dirname, './files/Info.plist')), + projectPbxproj: fs.readFileSync( + path.join(__dirname, './files/project.pbxproj'), + ), + latoBoldFont: fs.readFileSync(path.join(__dirname, './files/Lato-Bold.ttf')), + latoBoldItalicFont: fs.readFileSync( + path.join(__dirname, './files/Lato-BoldItalic.ttf'), + ), + montserratRegularFont: fs.readFileSync( + path.join(__dirname, './files/Montserrat-Regular.ttf'), + ), + ralewayRegularFont: fs.readFileSync( + path.join(__dirname, './files/Raleway-Regular.ttf'), + ), + firaCodeBoldFont: fs.readFileSync( + path.join(__dirname, './files/FiraCode-Bold.otf'), + ), + firaCodeRegularFont: fs.readFileSync( + path.join(__dirname, './files/FiraCode-Regular.otf'), + ), + latoRegularFont: fs.readFileSync( + path.join(__dirname, './files/Lato-Regular.ttf'), + ), + latoLightFont: fs.readFileSync( + path.join(__dirname, './files/Lato-Light.ttf'), + ), + documentPdf: fs.readFileSync( + path.join(__dirname, './files/TestSample Document.pdf'), + ), + imageGif: fs.readFileSync(path.join(__dirname, './files/GIF Image.gif')), + imageJpg: fs.readFileSync(path.join(__dirname, './files/JPG Image.jpg')), + imagePng: fs.readFileSync(path.join(__dirname, './files/PNG Image.png')), + soundMp3: fs.readFileSync(path.join(__dirname, './files/MP3 Sound (1).mp3')), +} as const; + +const baseProject = { + // iOS project + [fixtureFilePaths.infoPlist]: fixtureFiles.infoPlist, + [fixtureFilePaths.projectPbxproj]: fixtureFiles.projectPbxproj, + + // Assets folder + [fixtureFilePaths.latoBoldFont]: fixtureFiles.latoBoldFont, + [fixtureFilePaths.latoBoldItalicFont]: fixtureFiles.latoBoldItalicFont, + [fixtureFilePaths.ralewayRegularFont]: fixtureFiles.ralewayRegularFont, + [fixtureFilePaths.firaCodeBoldFont]: fixtureFiles.firaCodeBoldFont, + [fixtureFilePaths.firaCodeRegularFont]: fixtureFiles.firaCodeRegularFont, + [fixtureFilePaths.latoRegularFont]: fixtureFiles.latoRegularFont, + [fixtureFilePaths.documentPdf]: fixtureFiles.documentPdf, + [fixtureFilePaths.imageGif]: fixtureFiles.imageGif, + [fixtureFilePaths.imageJpg]: fixtureFiles.imageJpg, + [fixtureFilePaths.imagePng]: fixtureFiles.imagePng, + [fixtureFilePaths.soundMp3]: fixtureFiles.soundMp3, +} as const; + +const baseProjectKotlin = { + ...baseProject, + + // Android project + [fixtureFilePaths.mainApplicationKotlin]: fixtureFiles.mainApplicationKotlin, +} as const; + +const baseProjectJava = { + ...baseProject, + + // Android project + [fixtureFilePaths.mainApplicationJava]: fixtureFiles.mainApplicationJava, +} as const; + +export {fixtureFilePaths, fixtureFiles, baseProjectKotlin, baseProjectJava}; diff --git a/packages/cli-link-assets/src/__tests__/__snapshots__/linkAssets.test.ts.snap b/packages/cli-link-assets/src/__tests__/__snapshots__/linkAssets.test.ts.snap new file mode 100644 index 000000000..d47ec30b5 --- /dev/null +++ b/packages/cli-link-assets/src/__tests__/__snapshots__/linkAssets.test.ts.snap @@ -0,0 +1,893 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`linkAssets should link all types of assets in a Java project for the first time 1`] = ` +"Snapshot Diff: +- First value ++ Second value + + package com.example; + ++ import com.facebook.react.common.assets.ReactFontManager; ++ + import android.app.Application; + import com.facebook.react.ReactApplication; + + public class MainApplication extends Application implements ReactApplication { + @Override + public void onCreate() { + super.onCreate(); ++ ReactFontManager.getInstance().addCustomFont(this, \\"Lato\\", R.font.lato); ++ ReactFontManager.getInstance().addCustomFont(this, \\"Fira Code\\", R.font.fira_code); + SoLoader.init(this, /* native exopackage */ false); + } + } +" +`; + +exports[`linkAssets should link all types of assets in a Java project for the first time 2`] = ` +"Snapshot Diff: +- First value ++ Second value + ++ { ++ \\"migIndex\\": 2, ++ \\"data\\": [ ++ { ++ \\"path\\": \\"assets/shared/GIF Image.gif\\", ++ \\"sha1\\": \\"da39a3ee5e6b4b0d3255bfef95601890afd80709\\" ++ }, ++ { ++ \\"path\\": \\"assets/shared/JPG Image.jpg\\", ++ \\"sha1\\": \\"255148944427577e1a21a5a62a1d98aa3269e9e8\\" ++ }, ++ { ++ \\"path\\": \\"assets/shared/MP3 Sound (1).mp3\\", ++ \\"sha1\\": \\"1bd4b065508235aaa400ba4e019fbfb2cb7d291c\\" ++ }, ++ { ++ \\"path\\": \\"assets/shared/PNG Image.png\\", ++ \\"sha1\\": \\"f1498c79d91acbb2291368fa1ea629ad2332a935\\" ++ }, ++ { ++ \\"path\\": \\"assets/shared/TestSample Document.pdf\\", ++ \\"sha1\\": \\"0ba2141b8996a615d7484536d7a97c27a1768407\\" ++ }, ++ { ++ \\"path\\": \\"assets/shared/fonts/FiraCode-Bold.otf\\", ++ \\"sha1\\": \\"cdb344c9982562a59831836170615e503af0db22\\" ++ }, ++ { ++ \\"path\\": \\"assets/shared/fonts/FiraCode-Regular.otf\\", ++ \\"sha1\\": \\"5115ac0f821964b0bc2938273b37be4088f3cd8e\\" ++ }, ++ { ++ \\"path\\": \\"assets/shared/fonts/Lato-Regular.ttf\\", ++ \\"sha1\\": \\"e923c72eda5e50a87e18ff5c71e9ef4b3b6455a3\\" ++ }, ++ { ++ \\"path\\": \\"assets/android/fonts/Lato-Bold.ttf\\", ++ \\"sha1\\": \\"542498221d97bee5bdbccf86ee8890bf8e8005c9\\" ++ }, ++ { ++ \\"path\\": \\"assets/android/fonts/Lato-BoldItalic.ttf\\", ++ \\"sha1\\": \\"6bf491e78e16d3b9c8a55752e1bd658e15ed7f19\\" ++ } ++ ] ++ } ++" +`; + +exports[`linkAssets should link all types of assets in a Java project for the first time 3`] = ` +"Snapshot Diff: +- First value ++ Second value + ++ ++ ++ ++ ++ ++ ++" +`; + +exports[`linkAssets should link all types of assets in a Java project for the first time 4`] = ` +"Snapshot Diff: +- First value ++ Second value + ++ ++ ++ ++ ++ ++" +`; + +exports[`linkAssets should link all types of assets in a Java project for the first time 5`] = ` +"Snapshot Diff: +- First value ++ Second value + +@@ -30,11 +30,11 @@ + + NSAllowsLocalNetworking + + + NSLocationWhenInUseUsageDescription +- ++ + UILaunchStoryboardName + LaunchScreen + UIRequiredDeviceCapabilities + + armv7 +@@ -45,8 +45,15 @@ + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIViewControllerBasedStatusBarAppearance + ++ UIAppFonts ++ ++ FiraCode-Bold.otf ++ FiraCode-Regular.otf ++ Lato-Regular.ttf ++ Raleway-Regular.ttf ++ + + +" +`; + +exports[`linkAssets should link all types of assets in a Java project for the first time 6`] = ` +"Snapshot Diff: +- First value ++ Second value + ++ { ++ \\"migIndex\\": 2, ++ \\"data\\": [ ++ { ++ \\"path\\": \\"assets/shared/GIF Image.gif\\", ++ \\"sha1\\": \\"da39a3ee5e6b4b0d3255bfef95601890afd80709\\" ++ }, ++ { ++ \\"path\\": \\"assets/shared/JPG Image.jpg\\", ++ \\"sha1\\": \\"255148944427577e1a21a5a62a1d98aa3269e9e8\\" ++ }, ++ { ++ \\"path\\": \\"assets/shared/MP3 Sound (1).mp3\\", ++ \\"sha1\\": \\"1bd4b065508235aaa400ba4e019fbfb2cb7d291c\\" ++ }, ++ { ++ \\"path\\": \\"assets/shared/PNG Image.png\\", ++ \\"sha1\\": \\"f1498c79d91acbb2291368fa1ea629ad2332a935\\" ++ }, ++ { ++ \\"path\\": \\"assets/shared/TestSample Document.pdf\\", ++ \\"sha1\\": \\"0ba2141b8996a615d7484536d7a97c27a1768407\\" ++ }, ++ { ++ \\"path\\": \\"assets/shared/fonts/FiraCode-Bold.otf\\", ++ \\"sha1\\": \\"cdb344c9982562a59831836170615e503af0db22\\" ++ }, ++ { ++ \\"path\\": \\"assets/shared/fonts/FiraCode-Regular.otf\\", ++ \\"sha1\\": \\"5115ac0f821964b0bc2938273b37be4088f3cd8e\\" ++ }, ++ { ++ \\"path\\": \\"assets/shared/fonts/Lato-Regular.ttf\\", ++ \\"sha1\\": \\"e923c72eda5e50a87e18ff5c71e9ef4b3b6455a3\\" ++ }, ++ { ++ \\"path\\": \\"assets/ios/fonts/Raleway-Regular.ttf\\", ++ \\"sha1\\": \\"c01aaff04ead4a08b89bcb81d3d3d954345eb67f\\" ++ } ++ ] ++ } ++" +`; + +exports[`linkAssets should link all types of assets in a Kotlin project for the first time 1`] = ` +"Snapshot Diff: +- First value ++ Second value + + package com.example + ++ import com.facebook.react.common.assets.ReactFontManager ++ + import android.app.Application + import com.facebook.react.ReactApplication + + class MainApplication : Application(), ReactApplication { + override fun onCreate() { + super.onCreate() ++ ReactFontManager.getInstance().addCustomFont(this, \\"Lato\\", R.font.lato) ++ ReactFontManager.getInstance().addCustomFont(this, \\"Fira Code\\", R.font.fira_code) + SoLoader.init(this, false) + } + } +" +`; + +exports[`linkAssets should link all types of assets in a Kotlin project for the first time 2`] = ` +"Snapshot Diff: +- First value ++ Second value + ++ { ++ \\"migIndex\\": 2, ++ \\"data\\": [ ++ { ++ \\"path\\": \\"assets/shared/GIF Image.gif\\", ++ \\"sha1\\": \\"da39a3ee5e6b4b0d3255bfef95601890afd80709\\" ++ }, ++ { ++ \\"path\\": \\"assets/shared/JPG Image.jpg\\", ++ \\"sha1\\": \\"255148944427577e1a21a5a62a1d98aa3269e9e8\\" ++ }, ++ { ++ \\"path\\": \\"assets/shared/MP3 Sound (1).mp3\\", ++ \\"sha1\\": \\"1bd4b065508235aaa400ba4e019fbfb2cb7d291c\\" ++ }, ++ { ++ \\"path\\": \\"assets/shared/PNG Image.png\\", ++ \\"sha1\\": \\"f1498c79d91acbb2291368fa1ea629ad2332a935\\" ++ }, ++ { ++ \\"path\\": \\"assets/shared/TestSample Document.pdf\\", ++ \\"sha1\\": \\"0ba2141b8996a615d7484536d7a97c27a1768407\\" ++ }, ++ { ++ \\"path\\": \\"assets/shared/fonts/FiraCode-Bold.otf\\", ++ \\"sha1\\": \\"cdb344c9982562a59831836170615e503af0db22\\" ++ }, ++ { ++ \\"path\\": \\"assets/shared/fonts/FiraCode-Regular.otf\\", ++ \\"sha1\\": \\"5115ac0f821964b0bc2938273b37be4088f3cd8e\\" ++ }, ++ { ++ \\"path\\": \\"assets/shared/fonts/Lato-Regular.ttf\\", ++ \\"sha1\\": \\"e923c72eda5e50a87e18ff5c71e9ef4b3b6455a3\\" ++ }, ++ { ++ \\"path\\": \\"assets/android/fonts/Lato-Bold.ttf\\", ++ \\"sha1\\": \\"542498221d97bee5bdbccf86ee8890bf8e8005c9\\" ++ }, ++ { ++ \\"path\\": \\"assets/android/fonts/Lato-BoldItalic.ttf\\", ++ \\"sha1\\": \\"6bf491e78e16d3b9c8a55752e1bd658e15ed7f19\\" ++ } ++ ] ++ } ++" +`; + +exports[`linkAssets should link all types of assets in a Kotlin project for the first time 3`] = ` +"Snapshot Diff: +- First value ++ Second value + ++ ++ ++ ++ ++ ++ ++" +`; + +exports[`linkAssets should link all types of assets in a Kotlin project for the first time 4`] = ` +"Snapshot Diff: +- First value ++ Second value + ++ ++ ++ ++ ++ ++" +`; + +exports[`linkAssets should link all types of assets in a Kotlin project for the first time 5`] = ` +"Snapshot Diff: +- First value ++ Second value + +@@ -30,11 +30,11 @@ + + NSAllowsLocalNetworking + + + NSLocationWhenInUseUsageDescription +- ++ + UILaunchStoryboardName + LaunchScreen + UIRequiredDeviceCapabilities + + armv7 +@@ -45,8 +45,15 @@ + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIViewControllerBasedStatusBarAppearance + ++ UIAppFonts ++ ++ FiraCode-Bold.otf ++ FiraCode-Regular.otf ++ Lato-Regular.ttf ++ Raleway-Regular.ttf ++ + + +" +`; + +exports[`linkAssets should link all types of assets in a Kotlin project for the first time 6`] = ` +"Snapshot Diff: +- First value ++ Second value + ++ { ++ \\"migIndex\\": 2, ++ \\"data\\": [ ++ { ++ \\"path\\": \\"assets/shared/GIF Image.gif\\", ++ \\"sha1\\": \\"da39a3ee5e6b4b0d3255bfef95601890afd80709\\" ++ }, ++ { ++ \\"path\\": \\"assets/shared/JPG Image.jpg\\", ++ \\"sha1\\": \\"255148944427577e1a21a5a62a1d98aa3269e9e8\\" ++ }, ++ { ++ \\"path\\": \\"assets/shared/MP3 Sound (1).mp3\\", ++ \\"sha1\\": \\"1bd4b065508235aaa400ba4e019fbfb2cb7d291c\\" ++ }, ++ { ++ \\"path\\": \\"assets/shared/PNG Image.png\\", ++ \\"sha1\\": \\"f1498c79d91acbb2291368fa1ea629ad2332a935\\" ++ }, ++ { ++ \\"path\\": \\"assets/shared/TestSample Document.pdf\\", ++ \\"sha1\\": \\"0ba2141b8996a615d7484536d7a97c27a1768407\\" ++ }, ++ { ++ \\"path\\": \\"assets/shared/fonts/FiraCode-Bold.otf\\", ++ \\"sha1\\": \\"cdb344c9982562a59831836170615e503af0db22\\" ++ }, ++ { ++ \\"path\\": \\"assets/shared/fonts/FiraCode-Regular.otf\\", ++ \\"sha1\\": \\"5115ac0f821964b0bc2938273b37be4088f3cd8e\\" ++ }, ++ { ++ \\"path\\": \\"assets/shared/fonts/Lato-Regular.ttf\\", ++ \\"sha1\\": \\"e923c72eda5e50a87e18ff5c71e9ef4b3b6455a3\\" ++ }, ++ { ++ \\"path\\": \\"assets/ios/fonts/Raleway-Regular.ttf\\", ++ \\"sha1\\": \\"c01aaff04ead4a08b89bcb81d3d3d954345eb67f\\" ++ } ++ ] ++ } ++" +`; + +exports[`linkAssets should link new assets in a project 1`] = ` +"Snapshot Diff: +- First value ++ Second value + +@@ -28,19 +28,27 @@ + { + \\"path\\": \\"assets/shared/fonts/FiraCode-Regular.otf\\", + \\"sha1\\": \\"5115ac0f821964b0bc2938273b37be4088f3cd8e\\" + }, + { ++ \\"path\\": \\"assets/shared/fonts/Lato-Light.ttf\\", ++ \\"sha1\\": \\"ad0d178564445a535b15d417f5b18019923d3bab\\" ++ }, ++ { + \\"path\\": \\"assets/shared/fonts/Lato-Regular.ttf\\", + \\"sha1\\": \\"e923c72eda5e50a87e18ff5c71e9ef4b3b6455a3\\" + }, + { + \\"path\\": \\"assets/android/fonts/Lato-Bold.ttf\\", + \\"sha1\\": \\"542498221d97bee5bdbccf86ee8890bf8e8005c9\\" + }, + { + \\"path\\": \\"assets/android/fonts/Lato-BoldItalic.ttf\\", + \\"sha1\\": \\"6bf491e78e16d3b9c8a55752e1bd658e15ed7f19\\" ++ }, ++ { ++ \\"path\\": \\"assets/android/fonts/Montserrat-Regular.ttf\\", ++ \\"sha1\\": \\"bb895d19b8a1fbe1c57fc89cac5da82fdc8fdef4\\" + } + ] + } +" +`; + +exports[`linkAssets should link new assets in a project 2`] = ` +"Snapshot Diff: +- First value ++ Second value + +@@ -6,10 +6,11 @@ + import com.facebook.react.ReactApplication + + class MainApplication : Application(), ReactApplication { + override fun onCreate() { + super.onCreate() ++ ReactFontManager.getInstance().addCustomFont(this, \\"Montserrat\\", R.font.montserrat) + ReactFontManager.getInstance().addCustomFont(this, \\"Lato\\", R.font.lato) + ReactFontManager.getInstance().addCustomFont(this, \\"Fira Code\\", R.font.fira_code) + SoLoader.init(this, false) + } + }" +`; + +exports[`linkAssets should link new assets in a project 3`] = ` +"Snapshot Diff: +- First value ++ Second value + + + ++ + + + + +" +`; + +exports[`linkAssets should link new assets in a project 4`] = ` +"Snapshot Diff: +- First value ++ Second value + ++ ++ ++ ++ ++" +`; + +exports[`linkAssets should link new assets in a project 5`] = ` +"Snapshot Diff: +- First value ++ Second value + +@@ -28,10 +28,14 @@ + { + \\"path\\": \\"assets/shared/fonts/FiraCode-Regular.otf\\", + \\"sha1\\": \\"5115ac0f821964b0bc2938273b37be4088f3cd8e\\" + }, + { ++ \\"path\\": \\"assets/shared/fonts/Lato-Light.ttf\\", ++ \\"sha1\\": \\"ad0d178564445a535b15d417f5b18019923d3bab\\" ++ }, ++ { + \\"path\\": \\"assets/shared/fonts/Lato-Regular.ttf\\", + \\"sha1\\": \\"e923c72eda5e50a87e18ff5c71e9ef4b3b6455a3\\" + }, + { + \\"path\\": \\"assets/ios/fonts/Raleway-Regular.ttf\\"," +`; + +exports[`linkAssets should link new assets in a project 6`] = ` +"Snapshot Diff: +- First value ++ Second value + +@@ -51,9 +51,10 @@ + + FiraCode-Bold.otf + FiraCode-Regular.otf + Lato-Regular.ttf + Raleway-Regular.ttf ++ Lato-Light.ttf + + + +" +`; + +exports[`linkAssets should relink font assets from an Android project to use XML resources 1`] = ` +"Snapshot Diff: +- First value ++ Second value + +@@ -1,7 +1,7 @@ + { +- \\"migIndex\\": 1, ++ \\"migIndex\\": 2, + \\"data\\": [ + { + \\"path\\": \\"assets/shared/GIF Image.gif\\", + \\"sha1\\": \\"da39a3ee5e6b4b0d3255bfef95601890afd80709\\" + }, +@@ -41,5 +41,6 @@ + \\"path\\": \\"assets/android/fonts/Lato-BoldItalic.ttf\\", + \\"sha1\\": \\"6bf491e78e16d3b9c8a55752e1bd658e15ed7f19\\" + } + ] + } ++" +`; + +exports[`linkAssets should relink font assets from an Android project to use XML resources 2`] = ` +"Snapshot Diff: +- First value ++ Second value + + package com.example + ++ import com.facebook.react.common.assets.ReactFontManager ++ + import android.app.Application + import com.facebook.react.ReactApplication + + class MainApplication : Application(), ReactApplication { + override fun onCreate() { + super.onCreate() ++ ReactFontManager.getInstance().addCustomFont(this, \\"Lato\\", R.font.lato) ++ ReactFontManager.getInstance().addCustomFont(this, \\"Fira Code\\", R.font.fira_code) + SoLoader.init(this, false) + } + } +" +`; + +exports[`linkAssets should relink font assets from an Android project to use XML resources 3`] = ` +"Snapshot Diff: +- First value ++ Second value + ++ ++ ++ ++ ++ ++ ++" +`; + +exports[`linkAssets should relink font assets from an Android project to use XML resources 4`] = ` +"Snapshot Diff: +- First value ++ Second value + ++ ++ ++ ++ ++ ++" +`; + +exports[`linkAssets should relink font assets from an Android project to use XML resources 5`] = ` +"Snapshot Diff: +- First value ++ Second value + +@@ -1,7 +1,7 @@ + { +- \\"migIndex\\": 1, ++ \\"migIndex\\": 2, + \\"data\\": [ + { + \\"path\\": \\"assets/shared/GIF Image.gif\\", + \\"sha1\\": \\"da39a3ee5e6b4b0d3255bfef95601890afd80709\\" + }, +@@ -37,5 +37,6 @@ + \\"path\\": \\"assets/ios/fonts/Raleway-Regular.ttf\\", + \\"sha1\\": \\"c01aaff04ead4a08b89bcb81d3d3d954345eb67f\\" + } + ] + } ++" +`; + +exports[`linkAssets should unlink all assets in a project 1`] = ` +"Snapshot Diff: +- First value ++ Second value + + { + \\"migIndex\\": 2, +- \\"data\\": [ +- { +- \\"path\\": \\"assets/shared/GIF Image.gif\\", +- \\"sha1\\": \\"da39a3ee5e6b4b0d3255bfef95601890afd80709\\" +- }, +- { +- \\"path\\": \\"assets/shared/JPG Image.jpg\\", +- \\"sha1\\": \\"255148944427577e1a21a5a62a1d98aa3269e9e8\\" +- }, +- { +- \\"path\\": \\"assets/shared/MP3 Sound (1).mp3\\", +- \\"sha1\\": \\"1bd4b065508235aaa400ba4e019fbfb2cb7d291c\\" +- }, +- { +- \\"path\\": \\"assets/shared/PNG Image.png\\", +- \\"sha1\\": \\"f1498c79d91acbb2291368fa1ea629ad2332a935\\" +- }, +- { +- \\"path\\": \\"assets/shared/TestSample Document.pdf\\", +- \\"sha1\\": \\"0ba2141b8996a615d7484536d7a97c27a1768407\\" +- }, +- { +- \\"path\\": \\"assets/shared/fonts/FiraCode-Bold.otf\\", +- \\"sha1\\": \\"cdb344c9982562a59831836170615e503af0db22\\" +- }, +- { +- \\"path\\": \\"assets/shared/fonts/FiraCode-Regular.otf\\", +- \\"sha1\\": \\"5115ac0f821964b0bc2938273b37be4088f3cd8e\\" +- }, +- { +- \\"path\\": \\"assets/shared/fonts/Lato-Regular.ttf\\", +- \\"sha1\\": \\"e923c72eda5e50a87e18ff5c71e9ef4b3b6455a3\\" +- }, +- { +- \\"path\\": \\"assets/android/fonts/Lato-Bold.ttf\\", +- \\"sha1\\": \\"542498221d97bee5bdbccf86ee8890bf8e8005c9\\" +- }, +- { +- \\"path\\": \\"assets/android/fonts/Lato-BoldItalic.ttf\\", +- \\"sha1\\": \\"6bf491e78e16d3b9c8a55752e1bd658e15ed7f19\\" +- } +- ] ++ \\"data\\": [] + } +" +`; + +exports[`linkAssets should unlink all assets in a project 2`] = ` +"Snapshot Diff: +- First value ++ Second value + + package com.example + +- import com.facebook.react.common.assets.ReactFontManager + + import android.app.Application + import com.facebook.react.ReactApplication + + class MainApplication : Application(), ReactApplication { + override fun onCreate() { + super.onCreate() +- ReactFontManager.getInstance().addCustomFont(this, \\"Lato\\", R.font.lato) +- ReactFontManager.getInstance().addCustomFont(this, \\"Fira Code\\", R.font.fira_code) + SoLoader.init(this, false) + } + } +" +`; + +exports[`linkAssets should unlink all assets in a project 3`] = ` +"Snapshot Diff: +- First value ++ Second value + + { + \\"migIndex\\": 2, +- \\"data\\": [ +- { +- \\"path\\": \\"assets/shared/GIF Image.gif\\", +- \\"sha1\\": \\"da39a3ee5e6b4b0d3255bfef95601890afd80709\\" +- }, +- { +- \\"path\\": \\"assets/shared/JPG Image.jpg\\", +- \\"sha1\\": \\"255148944427577e1a21a5a62a1d98aa3269e9e8\\" +- }, +- { +- \\"path\\": \\"assets/shared/MP3 Sound (1).mp3\\", +- \\"sha1\\": \\"1bd4b065508235aaa400ba4e019fbfb2cb7d291c\\" +- }, +- { +- \\"path\\": \\"assets/shared/PNG Image.png\\", +- \\"sha1\\": \\"f1498c79d91acbb2291368fa1ea629ad2332a935\\" +- }, +- { +- \\"path\\": \\"assets/shared/TestSample Document.pdf\\", +- \\"sha1\\": \\"0ba2141b8996a615d7484536d7a97c27a1768407\\" +- }, +- { +- \\"path\\": \\"assets/shared/fonts/FiraCode-Bold.otf\\", +- \\"sha1\\": \\"cdb344c9982562a59831836170615e503af0db22\\" +- }, +- { +- \\"path\\": \\"assets/shared/fonts/FiraCode-Regular.otf\\", +- \\"sha1\\": \\"5115ac0f821964b0bc2938273b37be4088f3cd8e\\" +- }, +- { +- \\"path\\": \\"assets/shared/fonts/Lato-Regular.ttf\\", +- \\"sha1\\": \\"e923c72eda5e50a87e18ff5c71e9ef4b3b6455a3\\" +- }, +- { +- \\"path\\": \\"assets/ios/fonts/Raleway-Regular.ttf\\", +- \\"sha1\\": \\"c01aaff04ead4a08b89bcb81d3d3d954345eb67f\\" +- } +- ] ++ \\"data\\": [] + } +" +`; + +exports[`linkAssets should unlink all assets in a project 4`] = ` +"Snapshot Diff: +- First value ++ Second value + +@@ -46,14 +46,9 @@ + UIInterfaceOrientationLandscapeRight + + UIViewControllerBasedStatusBarAppearance + + UIAppFonts +- +- FiraCode-Bold.otf +- FiraCode-Regular.otf +- Lato-Regular.ttf +- Raleway-Regular.ttf +- ++ + + +" +`; + +exports[`linkAssets should unlink deleted assets in a project 1`] = ` +"Snapshot Diff: +- First value ++ Second value + + { + \\"migIndex\\": 2, + \\"data\\": [ + { +- \\"path\\": \\"assets/shared/GIF Image.gif\\", +- \\"sha1\\": \\"da39a3ee5e6b4b0d3255bfef95601890afd80709\\" +- }, +- { + \\"path\\": \\"assets/shared/JPG Image.jpg\\", + \\"sha1\\": \\"255148944427577e1a21a5a62a1d98aa3269e9e8\\" +- }, +- { +- \\"path\\": \\"assets/shared/MP3 Sound (1).mp3\\", +- \\"sha1\\": \\"1bd4b065508235aaa400ba4e019fbfb2cb7d291c\\" + }, + { + \\"path\\": \\"assets/shared/PNG Image.png\\", + \\"sha1\\": \\"f1498c79d91acbb2291368fa1ea629ad2332a935\\" +- }, +- { +- \\"path\\": \\"assets/shared/TestSample Document.pdf\\", +- \\"sha1\\": \\"0ba2141b8996a615d7484536d7a97c27a1768407\\" +- }, +- { +- \\"path\\": \\"assets/shared/fonts/FiraCode-Bold.otf\\", +- \\"sha1\\": \\"cdb344c9982562a59831836170615e503af0db22\\" + }, + { +- \\"path\\": \\"assets/shared/fonts/FiraCode-Regular.otf\\", +- \\"sha1\\": \\"5115ac0f821964b0bc2938273b37be4088f3cd8e\\" +- }, +- { + \\"path\\": \\"assets/shared/fonts/Lato-Regular.ttf\\", + \\"sha1\\": \\"e923c72eda5e50a87e18ff5c71e9ef4b3b6455a3\\" + }, + { + \\"path\\": \\"assets/android/fonts/Lato-Bold.ttf\\", + \\"sha1\\": \\"542498221d97bee5bdbccf86ee8890bf8e8005c9\\" +- }, +- { +- \\"path\\": \\"assets/android/fonts/Lato-BoldItalic.ttf\\", +- \\"sha1\\": \\"6bf491e78e16d3b9c8a55752e1bd658e15ed7f19\\" + } + ] + } +" +`; + +exports[`linkAssets should unlink deleted assets in a project 2`] = ` +"Snapshot Diff: +- First value ++ Second value + +@@ -7,10 +7,9 @@ + + class MainApplication : Application(), ReactApplication { + override fun onCreate() { + super.onCreate() + ReactFontManager.getInstance().addCustomFont(this, \\"Lato\\", R.font.lato) +- ReactFontManager.getInstance().addCustomFont(this, \\"Fira Code\\", R.font.fira_code) + SoLoader.init(this, false) + } + } +" +`; + +exports[`linkAssets should unlink deleted assets in a project 3`] = ` +"Snapshot Diff: +- First value ++ Second value + + + + +- + + +" +`; + +exports[`linkAssets should unlink deleted assets in a project 4`] = ` +"Snapshot Diff: +- First value ++ Second value + +@@ -1,35 +1,15 @@ + { + \\"migIndex\\": 2, + \\"data\\": [ + { +- \\"path\\": \\"assets/shared/GIF Image.gif\\", +- \\"sha1\\": \\"da39a3ee5e6b4b0d3255bfef95601890afd80709\\" +- }, +- { + \\"path\\": \\"assets/shared/JPG Image.jpg\\", + \\"sha1\\": \\"255148944427577e1a21a5a62a1d98aa3269e9e8\\" +- }, +- { +- \\"path\\": \\"assets/shared/MP3 Sound (1).mp3\\", +- \\"sha1\\": \\"1bd4b065508235aaa400ba4e019fbfb2cb7d291c\\" + }, + { + \\"path\\": \\"assets/shared/PNG Image.png\\", + \\"sha1\\": \\"f1498c79d91acbb2291368fa1ea629ad2332a935\\" +- }, +- { +- \\"path\\": \\"assets/shared/TestSample Document.pdf\\", +- \\"sha1\\": \\"0ba2141b8996a615d7484536d7a97c27a1768407\\" +- }, +- { +- \\"path\\": \\"assets/shared/fonts/FiraCode-Bold.otf\\", +- \\"sha1\\": \\"cdb344c9982562a59831836170615e503af0db22\\" +- }, +- { +- \\"path\\": \\"assets/shared/fonts/FiraCode-Regular.otf\\", +- \\"sha1\\": \\"5115ac0f821964b0bc2938273b37be4088f3cd8e\\" + }, + { + \\"path\\": \\"assets/shared/fonts/Lato-Regular.ttf\\", + \\"sha1\\": \\"e923c72eda5e50a87e18ff5c71e9ef4b3b6455a3\\" + }," +`; + +exports[`linkAssets should unlink deleted assets in a project 5`] = ` +"Snapshot Diff: +- First value ++ Second value + +@@ -47,12 +47,10 @@ + + UIViewControllerBasedStatusBarAppearance + + UIAppFonts + +- FiraCode-Bold.otf +- FiraCode-Regular.otf + Lato-Regular.ttf + Raleway-Regular.ttf + + + " +`; diff --git a/packages/cli-link-assets/src/__tests__/linkAssets.test.ts b/packages/cli-link-assets/src/__tests__/linkAssets.test.ts new file mode 100644 index 000000000..a6b6642fa --- /dev/null +++ b/packages/cli-link-assets/src/__tests__/linkAssets.test.ts @@ -0,0 +1,588 @@ +import type {Config as CLIConfig} from '@react-native-community/cli-types'; +import type FS from 'fs'; +import type Path from 'path'; +import snapshotDiff from 'snapshot-diff'; +import {PartialDeep} from 'type-fest'; +import xcode from 'xcode'; +import {cleanup, getTempDirectory, writeFiles} from '../../../../jest/helpers'; +import { + baseProjectJava, + baseProjectKotlin, + fixtureFilePaths, + fixtureFiles, +} from '../__fixtures__/projects'; +import {linkAssets} from '../linkAssets'; +import getGroup from '../tools/helpers/xcode/getGroup'; +import {ManifestFile} from '../tools/manifest'; +import '../xcode.d.ts'; + +const fs = jest.requireActual('fs'); +const path = jest.requireActual('path'); + +const DIR = getTempDirectory('temp-project'); + +const readMainApplicationKotlinFile = () => + fs.readFileSync( + path.resolve(DIR, fixtureFilePaths.mainApplicationKotlin), + 'utf8', + ); + +const readMainApplicationJavaFile = () => + fs.readFileSync( + path.resolve(DIR, fixtureFilePaths.mainApplicationJava), + 'utf8', + ); + +const readAndroidLinkAssetsManifestFile = () => + fs.readFileSync( + path.resolve(DIR, 'android/link-assets-manifest.json'), + 'utf8', + ); + +const readInfoPlistFile = () => + fs.readFileSync(path.resolve(DIR, fixtureFilePaths.infoPlist), 'utf8'); + +const readIOSLinkAssetsManifestFile = () => + fs.readFileSync(path.resolve(DIR, 'ios/link-assets-manifest.json'), 'utf8'); + +const readLatoXMLFontFile = () => + fs.readFileSync( + path.resolve(DIR, 'android/app/src/main/res/font/lato.xml'), + 'utf8', + ); + +const readLatoBoldFontFile = () => + fs.readFileSync( + path.resolve(DIR, 'android/app/src/main/res/font/lato_bold.ttf'), + 'utf8', + ); + +const readLatoBoldItalicFontFile = () => + fs.readFileSync( + path.resolve(DIR, 'android/app/src/main/res/font/lato_bolditalic.ttf'), + 'utf8', + ); + +const readLatoRegularFontFile = () => + fs.readFileSync( + path.resolve(DIR, 'android/app/src/main/res/font/lato_regular.ttf'), + 'utf8', + ); + +const readLatoLightFontFile = () => + fs.readFileSync( + path.resolve(DIR, 'android/app/src/main/res/font/lato_light.ttf'), + 'utf8', + ); + +const readFiraCodeXMLFontFile = () => + fs.readFileSync( + path.resolve(DIR, 'android/app/src/main/res/font/fira_code.xml'), + 'utf8', + ); + +const readFiraCodeBoldFontFile = () => + fs.readFileSync( + path.resolve(DIR, 'android/app/src/main/res/font/firacode_bold.otf'), + 'utf8', + ); + +const readFiraCodeRegularFontFile = () => + fs.readFileSync( + path.resolve(DIR, 'android/app/src/main/res/font/firacode_regular.otf'), + 'utf8', + ); + +const readMontserratXMLFontFile = () => + fs.readFileSync( + path.resolve(DIR, 'android/app/src/main/res/font/montserrat.xml'), + 'utf8', + ); + +const readMontserratRegularFontFile = () => + fs.readFileSync( + path.resolve(DIR, 'android/app/src/main/res/font/montserrat_regular.ttf'), + 'utf8', + ); + +const readDocumentPdfFile = () => + fs.readFileSync( + path.resolve( + DIR, + 'android/app/src/main/assets/custom/TestSample Document.pdf', + ), + 'utf8', + ); + +const readImageGifFile = () => + fs.readFileSync( + path.resolve(DIR, 'android/app/src/main/res/drawable/gif_image.gif'), + 'utf8', + ); + +const readImageJpgFile = () => + fs.readFileSync( + path.resolve(DIR, 'android/app/src/main/res/drawable/jpg_image.jpg'), + 'utf8', + ); + +const readImagePngFile = () => + fs.readFileSync( + path.resolve(DIR, 'android/app/src/main/res/drawable/png_image.png'), + 'utf8', + ); + +const readSoundMp3File = () => + fs.readFileSync( + path.resolve(DIR, 'android/app/src/main/res/raw/mp3_sound__1_.mp3'), + 'utf8', + ); + +const getIOSProjectResourcesGroup = () => { + const project = xcode + .project(path.resolve(DIR, fixtureFilePaths.projectPbxproj)) + .parseSync(); + return getGroup(project, 'Resources'); +}; + +const testBaseProjectStructure = (isKotlinProject = true) => { + const baseProject = isKotlinProject ? baseProjectKotlin : baseProjectJava; + const mainApplicationFilePath = isKotlinProject + ? fixtureFilePaths.mainApplicationKotlin + : fixtureFilePaths.mainApplicationJava; + + // Android + expect( + snapshotDiff( + baseProject[mainApplicationFilePath].toString(), + isKotlinProject + ? readMainApplicationKotlinFile() + : readMainApplicationJavaFile(), + ), + ).toMatchSnapshot(); + expect( + snapshotDiff('', readAndroidLinkAssetsManifestFile()), + ).toMatchSnapshot(); + + expect(snapshotDiff('', readLatoXMLFontFile())).toMatchSnapshot(); + expect(snapshotDiff('', readFiraCodeXMLFontFile())).toMatchSnapshot(); + + const linkedAssetsMap = { + [fixtureFilePaths.latoBoldFont]: readLatoBoldFontFile(), + [fixtureFilePaths.latoBoldItalicFont]: readLatoBoldItalicFontFile(), + [fixtureFilePaths.latoRegularFont]: readLatoRegularFontFile(), + [fixtureFilePaths.firaCodeBoldFont]: readFiraCodeBoldFontFile(), + [fixtureFilePaths.firaCodeRegularFont]: readFiraCodeRegularFontFile(), + [fixtureFilePaths.documentPdf]: readDocumentPdfFile(), + [fixtureFilePaths.soundMp3]: readSoundMp3File(), + [fixtureFilePaths.imageGif]: readImageGifFile(), + [fixtureFilePaths.imageJpg]: readImageJpgFile(), + [fixtureFilePaths.imagePng]: readImagePngFile(), + }; + for (const assetEntry of Object.entries(linkedAssetsMap)) { + expect(baseProjectKotlin[assetEntry[0]].toString()).toEqual(assetEntry[1]); + } + + // iOS + expect( + snapshotDiff( + baseProjectKotlin[fixtureFilePaths.infoPlist].toString(), + readInfoPlistFile(), + ), + ).toMatchSnapshot(); + expect(snapshotDiff('', readIOSLinkAssetsManifestFile())).toMatchSnapshot(); + + const resourcesGroup = getIOSProjectResourcesGroup(); + expect(resourcesGroup?.children.length).toBe(9); + [ + fixtureFilePaths.firaCodeBoldFont, + fixtureFilePaths.firaCodeRegularFont, + fixtureFilePaths.latoRegularFont, + fixtureFilePaths.ralewayRegularFont, + fixtureFilePaths.soundMp3, + fixtureFilePaths.imageGif, + fixtureFilePaths.imageJpg, + fixtureFilePaths.imagePng, + fixtureFilePaths.documentPdf, + ] + .map((filePath) => path.basename(filePath)) + .forEach((fileName) => { + expect( + resourcesGroup?.children.some((r) => r.comment === fileName), + ).toBeTruthy(); + }); +}; + +beforeEach(() => { + cleanup(DIR); + jest.resetModules(); + jest.clearAllMocks(); +}); + +afterEach(() => cleanup(DIR)); + +describe('linkAssets', () => { + const configMock: PartialDeep = { + root: DIR, + assets: ['./assets/shared'], + project: { + android: { + sourceDir: `${DIR}/android`, + appName: 'app', + assets: ['./assets/android'], + }, + ios: { + sourceDir: `${DIR}/ios`, + assets: ['./assets/ios'], + }, + }, + }; + + it('should link all types of assets in a Kotlin project for the first time', async () => { + writeFiles(DIR, baseProjectKotlin); + + await linkAssets([], configMock as CLIConfig); + + testBaseProjectStructure(true); + }); + + it('should link all types of assets in a Java project for the first time', async () => { + writeFiles(DIR, baseProjectJava); + + await linkAssets([], configMock as CLIConfig); + + testBaseProjectStructure(false); + }); + + it('should link new assets in a project', async () => { + writeFiles(DIR, baseProjectKotlin); + + await linkAssets([], configMock as CLIConfig); + + const oldAndroidLinkAssetsManifestFile = + readAndroidLinkAssetsManifestFile(); + const oldMainApplicationFile = readMainApplicationKotlinFile(); + const oldLatoXMLFontFile = readLatoXMLFontFile(); + const oldIOSLinkAssetsManifestFile = readIOSLinkAssetsManifestFile(); + const oldInfoPlistFile = readInfoPlistFile(); + + writeFiles(DIR, { + [fixtureFilePaths.latoLightFont]: fixtureFiles.latoLightFont, + [fixtureFilePaths.montserratRegularFont]: + fixtureFiles.montserratRegularFont, + }); + + await linkAssets([], configMock as CLIConfig); + + // Android + expect( + snapshotDiff( + oldAndroidLinkAssetsManifestFile, + readAndroidLinkAssetsManifestFile(), + ), + ).toMatchSnapshot(); + expect( + snapshotDiff(oldMainApplicationFile, readMainApplicationKotlinFile()), + ).toMatchSnapshot(); + expect( + snapshotDiff(oldLatoXMLFontFile, readLatoXMLFontFile()), + ).toMatchSnapshot(); + expect(fixtureFiles.latoLightFont.toString()).toEqual( + readLatoLightFontFile(), + ); + expect(snapshotDiff('', readMontserratXMLFontFile())).toMatchSnapshot(); + expect(fixtureFiles.montserratRegularFont.toString()).toEqual( + readMontserratRegularFontFile(), + ); + + // iOS + expect( + snapshotDiff( + oldIOSLinkAssetsManifestFile, + readIOSLinkAssetsManifestFile(), + ), + ).toMatchSnapshot(); + expect( + snapshotDiff(oldInfoPlistFile, readInfoPlistFile()), + ).toMatchSnapshot(); + + const resourcesGroup = getIOSProjectResourcesGroup(); + expect(resourcesGroup?.children.length).toBe(10); + [ + fixtureFilePaths.firaCodeBoldFont, + fixtureFilePaths.firaCodeRegularFont, + fixtureFilePaths.latoRegularFont, + fixtureFilePaths.ralewayRegularFont, + fixtureFilePaths.soundMp3, + fixtureFilePaths.imageGif, + fixtureFilePaths.imageJpg, + fixtureFilePaths.imagePng, + fixtureFilePaths.documentPdf, + fixtureFilePaths.latoLightFont, + ] + .map((filePath) => path.basename(filePath)) + .forEach((fileName) => { + expect( + resourcesGroup?.children.some((r) => r.comment === fileName), + ).toBeTruthy(); + }); + }); + + it('should unlink deleted assets in a project', async () => { + writeFiles(DIR, baseProjectKotlin); + + await linkAssets([], configMock as CLIConfig); + + const oldAndroidLinkAssetsManifestFile = + readAndroidLinkAssetsManifestFile(); + const oldMainApplicationFile = readMainApplicationKotlinFile(); + const oldLatoXMLFontFile = readLatoXMLFontFile(); + const oldIOSLinkAssetsManifestFile = readIOSLinkAssetsManifestFile(); + const oldInfoPlistFile = readInfoPlistFile(); + + fs.rmSync(path.resolve(DIR, fixtureFilePaths.firaCodeBoldFont)); + fs.rmSync(path.resolve(DIR, fixtureFilePaths.firaCodeRegularFont)); + fs.rmSync(path.resolve(DIR, fixtureFilePaths.latoBoldItalicFont)); + fs.rmSync(path.resolve(DIR, fixtureFilePaths.documentPdf)); + fs.rmSync(path.resolve(DIR, fixtureFilePaths.imageGif)); + fs.rmSync(path.resolve(DIR, fixtureFilePaths.soundMp3)); + + await linkAssets([], configMock as CLIConfig); + + // Android + expect( + snapshotDiff( + oldAndroidLinkAssetsManifestFile, + readAndroidLinkAssetsManifestFile(), + ), + ).toMatchSnapshot(); + expect( + snapshotDiff(oldMainApplicationFile, readMainApplicationKotlinFile()), + ).toMatchSnapshot(); + expect( + snapshotDiff(oldLatoXMLFontFile, readLatoXMLFontFile()), + ).toMatchSnapshot(); + expect(readFiraCodeXMLFontFile).toThrow(); + expect(readFiraCodeBoldFontFile).toThrow(); + expect(readFiraCodeRegularFontFile).toThrow(); + expect(readLatoBoldItalicFontFile).toThrow(); + expect(readDocumentPdfFile).toThrow(); + expect(readImageGifFile).toThrow(); + expect(readSoundMp3File).toThrow(); + + // iOS + expect( + snapshotDiff( + oldIOSLinkAssetsManifestFile, + readIOSLinkAssetsManifestFile(), + ), + ).toMatchSnapshot(); + expect( + snapshotDiff(oldInfoPlistFile, readInfoPlistFile()), + ).toMatchSnapshot(); + + const resourcesGroup = getIOSProjectResourcesGroup(); + expect(resourcesGroup?.children.length).toBe(4); + [ + fixtureFilePaths.latoRegularFont, + fixtureFilePaths.ralewayRegularFont, + fixtureFilePaths.imageJpg, + fixtureFilePaths.imagePng, + ] + .map((filePath) => path.basename(filePath)) + .forEach((fileName) => { + expect( + resourcesGroup?.children.some((r) => r.comment === fileName), + ).toBeTruthy(); + }); + }); + + it('should unlink all assets in a project', async () => { + writeFiles(DIR, baseProjectKotlin); + + await linkAssets([], configMock as CLIConfig); + + const oldAndroidLinkAssetsManifestFile = + readAndroidLinkAssetsManifestFile(); + const oldMainApplicationFile = readMainApplicationKotlinFile(); + const oldIOSLinkAssetsManifestFile = readIOSLinkAssetsManifestFile(); + const oldInfoPlistFile = readInfoPlistFile(); + + const sharedAssetsPath = path.resolve(DIR, 'assets/shared'); + const androidAssetsPath = path.resolve(DIR, 'assets/android'); + const iosAssetsPath = path.resolve(DIR, 'assets/ios'); + fs.readdirSync(sharedAssetsPath).forEach((file) => + fs.rmSync(path.resolve(sharedAssetsPath, file), {recursive: true}), + ); + fs.readdirSync(androidAssetsPath).forEach((file) => + fs.rmSync(path.resolve(androidAssetsPath, file), {recursive: true}), + ); + fs.readdirSync(iosAssetsPath).forEach((file) => + fs.rmSync(path.resolve(iosAssetsPath, file), {recursive: true}), + ); + + await linkAssets([], configMock as CLIConfig); + + // Android + expect( + snapshotDiff( + oldAndroidLinkAssetsManifestFile, + readAndroidLinkAssetsManifestFile(), + ), + ).toMatchSnapshot(); + expect( + snapshotDiff(oldMainApplicationFile, readMainApplicationKotlinFile()), + ).toMatchSnapshot(); + expect( + fs.readdirSync(path.resolve(DIR, 'android/app/src/main/assets/custom')) + .length, + ).toBe(0); + expect( + fs.readdirSync(path.resolve(DIR, 'android/app/src/main/res/drawable')) + .length, + ).toBe(0); + expect( + fs.readdirSync(path.resolve(DIR, 'android/app/src/main/res/font')).length, + ).toBe(0); + expect( + fs.readdirSync(path.resolve(DIR, 'android/app/src/main/res/raw')).length, + ).toBe(0); + + // iOS + expect( + snapshotDiff( + oldIOSLinkAssetsManifestFile, + readIOSLinkAssetsManifestFile(), + ), + ).toMatchSnapshot(); + expect( + snapshotDiff(oldInfoPlistFile, readInfoPlistFile()), + ).toMatchSnapshot(); + + const resourcesGroup = getIOSProjectResourcesGroup(); + expect(resourcesGroup?.children.length).toBe(0); + }); + + it('should relink font assets from an Android project to use XML resources', async () => { + writeFiles(DIR, baseProjectKotlin); + + await linkAssets([], configMock as CLIConfig); + + // Change link-assets-manifest.json to simulate old version + const oldAndroidLinkAssetsManifestJson = JSON.parse( + readAndroidLinkAssetsManifestFile(), + ) as ManifestFile; + oldAndroidLinkAssetsManifestJson.migIndex = 1; + const oldAndroidLinkAssetsManifestFile = JSON.stringify( + oldAndroidLinkAssetsManifestJson, + undefined, + 2, + ); + fs.writeFileSync( + path.resolve(DIR, 'android/link-assets-manifest.json'), + oldAndroidLinkAssetsManifestFile, + ); + + // Restore MainApplication.kt to original state to simulate old version + const oldMainApplicationFile = + fixtureFiles.mainApplicationKotlin.toString(); + fs.writeFileSync( + path.resolve(DIR, fixtureFilePaths.mainApplicationKotlin), + oldMainApplicationFile, + ); + + // Change link-assets-manifest.json to simulate old version + const oldIOSLinkAssetsManifestJson = JSON.parse( + readIOSLinkAssetsManifestFile(), + ) as ManifestFile; + oldIOSLinkAssetsManifestJson.migIndex = 1; + const oldIOSLinkAssetsManifestFile = JSON.stringify( + oldIOSLinkAssetsManifestJson, + undefined, + 2, + ); + fs.writeFileSync( + path.resolve(DIR, 'ios/link-assets-manifest.json'), + oldIOSLinkAssetsManifestFile, + ); + + // Remove fonts from `res/font` to simulate old version + fs.readdirSync(path.resolve(DIR, 'android/app/src/main/res/font')).forEach( + (file) => + fs.rmSync( + path.resolve( + path.resolve(DIR, 'android/app/src/main/res/font'), + file, + ), + {recursive: true}, + ), + ); + + // Add fonts to `assets/font` to simulate old version + writeFiles(DIR, { + 'android/app/src/main/assets/fonts/FireCode-Bold.otf': + fixtureFiles.firaCodeBoldFont, + 'android/app/src/main/assets/fonts/FireCode-Regular.otf': + fixtureFiles.firaCodeRegularFont, + 'android/app/src/main/assets/fonts/Lato-Bold.ttf': + fixtureFiles.latoBoldFont, + 'android/app/src/main/assets/fonts/Lato-BoldItalic.ttf': + fixtureFiles.latoBoldItalicFont, + 'android/app/src/main/assets/fonts/Lato-Regular.ttf': + fixtureFiles.latoRegularFont, + }); + + await linkAssets([], configMock as CLIConfig); + + // Android + expect( + snapshotDiff( + oldAndroidLinkAssetsManifestFile, + readAndroidLinkAssetsManifestFile(), + ), + ).toMatchSnapshot(); + expect( + snapshotDiff(oldMainApplicationFile, readMainApplicationKotlinFile()), + ).toMatchSnapshot(); + + expect(snapshotDiff('', readLatoXMLFontFile())).toMatchSnapshot(); + expect(snapshotDiff('', readFiraCodeXMLFontFile())).toMatchSnapshot(); + + const linkedAssetsMap = { + [fixtureFilePaths.latoBoldFont]: readLatoBoldFontFile(), + [fixtureFilePaths.latoBoldItalicFont]: readLatoBoldItalicFontFile(), + [fixtureFilePaths.latoRegularFont]: readLatoRegularFontFile(), + [fixtureFilePaths.firaCodeBoldFont]: readFiraCodeBoldFontFile(), + [fixtureFilePaths.firaCodeRegularFont]: readFiraCodeRegularFontFile(), + [fixtureFilePaths.documentPdf]: readDocumentPdfFile(), + [fixtureFilePaths.soundMp3]: readSoundMp3File(), + [fixtureFilePaths.imageGif]: readImageGifFile(), + [fixtureFilePaths.imageJpg]: readImageJpgFile(), + [fixtureFilePaths.imagePng]: readImagePngFile(), + }; + for (const assetEntry of Object.entries(linkedAssetsMap)) { + expect(baseProjectKotlin[assetEntry[0]].toString()).toEqual( + assetEntry[1], + ); + } + + const deletedFontAssets = [ + 'android/app/src/main/res/font/FiraCode-Bold.otf', + 'android/app/src/main/res/font/FiraCode-Regular.otf', + 'android/app/src/main/res/font/Lato-Bold.ttf', + 'android/app/src/main/res/font/Lato-BoldItalic.ttf', + 'android/app/src/main/res/font/Lato-Regular.ttf', + ]; + for (const asset of deletedFontAssets) { + expect(() => fs.readFileSync(path.resolve(DIR, asset), 'utf8')).toThrow(); + } + + // iOS + expect( + snapshotDiff( + oldIOSLinkAssetsManifestFile, + readIOSLinkAssetsManifestFile(), + ), + ).toMatchSnapshot(); + }); +}); diff --git a/packages/cli-link-assets/src/fileTypes.ts b/packages/cli-link-assets/src/fileTypes.ts new file mode 100644 index 000000000..ce2ccee8c --- /dev/null +++ b/packages/cli-link-assets/src/fileTypes.ts @@ -0,0 +1,7 @@ +const fontTypes = ['otf', 'ttf'] as const; + +const imageTypes = ['png', 'jpg', 'gif'] as const; + +const audioTypes = ['mp3'] as const; + +export {fontTypes, imageTypes, audioTypes}; diff --git a/packages/cli-link-assets/src/index.ts b/packages/cli-link-assets/src/index.ts new file mode 100644 index 000000000..a040db27d --- /dev/null +++ b/packages/cli-link-assets/src/index.ts @@ -0,0 +1,3 @@ +import {default as linkAssets} from './linkAssets'; + +export const commands = {linkAssets}; diff --git a/packages/cli-link-assets/src/linkAssets.ts b/packages/cli-link-assets/src/linkAssets.ts new file mode 100644 index 000000000..4b8c64926 --- /dev/null +++ b/packages/cli-link-assets/src/linkAssets.ts @@ -0,0 +1,239 @@ +import { + findPbxprojFile, + findXcodeProject, +} from '@react-native-community/cli-platform-apple'; +import { + CLIError, + inlineString, + logger, +} from '@react-native-community/cli-tools'; +import type {Config as CLIConfig} from '@react-native-community/cli-types'; +import chalk from 'chalk'; +import fs from 'fs'; +import path from 'path'; +import {audioTypes, fontTypes, imageTypes} from './fileTypes'; +import cleanAndroidAssets from './tools/cleanAssets/android'; +import cleanIOSAssets from './tools/cleanAssets/ios'; +import copyAndroidAssets from './tools/copyAssets/android'; +import copyIOSAssets from './tools/copyAssets/ios'; +import linkPlatform, { + LinkOptions, + LinkOptionsPerExt, + LinkPlatformOptions, +} from './tools/linkPlatform'; +import getManifest, {AssetPathAndSHA1} from './tools/manifest'; + +function getLinkOptions( + assetType: 'font' | 'image' | 'audio' | 'custom', + androidPath: string, + androidAppName: string, +): LinkOptions { + const baseAndroidPath = [androidPath, androidAppName, 'src', 'main']; + + let shouldUseFontXMLFiles = false; + let isFontAsset = false; + let isResourceFile = false; + switch (assetType) { + case 'font': { + baseAndroidPath.push('assets', 'fonts'); + shouldUseFontXMLFiles = true; + isFontAsset = true; + break; + } + + case 'image': { + baseAndroidPath.push('res', 'drawable'); + isResourceFile = true; + break; + } + + case 'audio': { + baseAndroidPath.push('res', 'raw'); + isResourceFile = true; + break; + } + + case 'custom': { + baseAndroidPath.push('assets', 'custom'); + break; + } + } + + return { + android: { + path: path.resolve(...baseAndroidPath), + shouldUseFontXMLFiles, + isResourceFile, + }, + ios: { + isFontAsset, + }, + }; +} + +async function linkAssets(_argv: string[], ctx: CLIConfig): Promise { + let androidPath: string = ''; + let androidAssetsPath: string[] = ctx.assets; + let androidAppName: string = ''; + if (ctx.project.android) { + androidPath = ctx.project.android.sourceDir; + androidAssetsPath = androidAssetsPath.concat(ctx.project.android.assets); + androidAppName = ctx.project.android.appName; + } + + let iosPath: string = ''; + let iosAssetsPath: string[] = ctx.assets; + let iosPbxprojFilePath: string | null = null; + if (ctx.project.ios) { + iosPath = ctx.project.ios.sourceDir; + iosAssetsPath = iosAssetsPath.concat(ctx.project.ios.assets); + + const iosProjectInfo = findXcodeProject( + fs.readdirSync(iosPath, { + encoding: 'utf8', + recursive: true, + }), + ); + + if (!iosProjectInfo) { + throw new CLIError( + `Could not find Xcode project files in "${iosPath}" folder`, + ); + } + + const pbxprojPath = findPbxprojFile(iosProjectInfo); + iosPbxprojFilePath = path.join(iosPath, pbxprojPath); + } + + const rootPath = ctx.root; + + const fontLinkOptions = fontTypes.reduce( + (result: LinkOptionsPerExt, fontType) => { + result[fontType] = getLinkOptions('font', androidPath, androidAppName); + return result; + }, + {}, + ); + + const imageLinkOptions = imageTypes.reduce( + (result: LinkOptionsPerExt, imageType) => { + result[imageType] = getLinkOptions('image', androidPath, androidAppName); + return result; + }, + {}, + ); + + const audioLinkOptions = audioTypes.reduce( + (result: LinkOptionsPerExt, audioType) => { + result[audioType] = getLinkOptions('audio', androidPath, androidAppName); + return result; + }, + {}, + ); + + const linkOptionsPerExt: LinkOptionsPerExt = { + ...fontLinkOptions, + ...imageLinkOptions, + ...audioLinkOptions, + }; + + const customLinkOptions = getLinkOptions( + 'custom', + androidPath, + androidAppName, + ); + + const androidLinkPlatformOptions: LinkPlatformOptions = { + name: 'Android', + enabled: true, + platform: 'android', + rootPath, + assetsPaths: androidAssetsPath, + manifest: getManifest(androidPath, 'android'), + platformConfig: { + exists: !!ctx.project.android, + path: androidPath, + }, + cleanAssets: cleanAndroidAssets, + copyAssets: copyAndroidAssets, + linkOptionsPerExt: { + otf: linkOptionsPerExt?.otf?.android, + ttf: linkOptionsPerExt?.ttf?.android, + png: linkOptionsPerExt?.png?.android, + jpg: linkOptionsPerExt?.jpg?.android, + gif: linkOptionsPerExt?.gif?.android, + mp3: linkOptionsPerExt?.mp3?.android, + }, + otherLinkOptions: customLinkOptions.android, + }; + + const iosLinkPlatformOptions: LinkPlatformOptions = { + name: 'iOS', + enabled: true, + platform: 'ios', + rootPath, + assetsPaths: iosAssetsPath, + manifest: getManifest(iosPath, 'ios'), + platformConfig: { + exists: !!ctx.project.ios, + path: iosPath, + pbxprojFilePath: iosPbxprojFilePath!, + }, + cleanAssets: cleanIOSAssets, + copyAssets: copyIOSAssets, + linkOptionsPerExt: { + otf: linkOptionsPerExt?.otf?.ios, + ttf: linkOptionsPerExt?.ttf?.ios, + png: linkOptionsPerExt?.png?.ios, + jpg: linkOptionsPerExt?.jpg?.ios, + gif: linkOptionsPerExt?.gif?.ios, + mp3: linkOptionsPerExt?.mp3?.ios, + }, + otherLinkOptions: customLinkOptions.ios, + }; + + let previouslyAndroidLinkedAssets: AssetPathAndSHA1[] = []; + let previouslyIOSLinkedAssets: AssetPathAndSHA1[] = []; + try { + previouslyAndroidLinkedAssets = androidLinkPlatformOptions.manifest.read(); + previouslyIOSLinkedAssets = iosLinkPlatformOptions.manifest.read(); + } catch (e) {} + + if ( + androidAssetsPath.length === 0 && + iosAssetsPath.length === 0 && + previouslyAndroidLinkedAssets.length === 0 && + previouslyIOSLinkedAssets.length === 0 + ) { + logger.info( + inlineString( + `It looks like you haven't configured your assets paths in ${chalk.bold( + 'react-native.config.js', + )} file. + To can learn more about ${chalk.bold( + 'link-assets', + )} command visit: ${chalk.underline( + 'https://github.com/react-native-community/cli/blob/main/packages/cli-link-assets/README.md', + )}`, + ), + ); + return; + } + + logger.info('Linking your assets...'); + + [androidLinkPlatformOptions, iosLinkPlatformOptions] + .filter(({enabled, platformConfig}) => enabled && platformConfig.exists) + .forEach(linkPlatform); + + logger.success('Done 🎉'); +} + +export default { + func: linkAssets, + name: 'link-assets', + description: 'Links your assets to Android / iOS projects.', + options: [], +}; + +export {linkAssets}; diff --git a/packages/cli-link-assets/src/sha1File.ts b/packages/cli-link-assets/src/sha1File.ts new file mode 100644 index 000000000..6120ca235 --- /dev/null +++ b/packages/cli-link-assets/src/sha1File.ts @@ -0,0 +1,11 @@ +import crypto from 'crypto'; +import fs from 'fs'; + +function sha1File(filePath: string): string { + const hash = crypto.createHash('sha1'); + hash.update(fs.readFileSync(filePath)); + + return hash.digest('hex'); +} + +export default sha1File; diff --git a/packages/cli-link-assets/src/tools/cleanAssets/android.ts b/packages/cli-link-assets/src/tools/cleanAssets/android.ts new file mode 100644 index 000000000..f4b95abfe --- /dev/null +++ b/packages/cli-link-assets/src/tools/cleanAssets/android.ts @@ -0,0 +1,172 @@ +import {isProjectUsingKotlin} from '@react-native-community/cli-platform-android'; +import {CLIError} from '@react-native-community/cli-tools'; +import fs from 'fs-extra'; +import path from 'path'; +import { + FontFamilyMap, + FontXMLObject, + REACT_FONT_MANAGER_IMPORT, + convertToAndroidResourceName, + getAddCustomFontMethodCall, + getFontFamily, + getFontResFolderPath, + getProjectFilePath, + getXMLFontFilePath, + getXMLFontId, + readAndParseFontFile, + readAndParseFontXMLFile, + removeLineFromFile, + writeFontXMLFile, + xmlBuilder, +} from '../helpers/font/androidFontAssetHelpers'; +import {AndroidCleanAssetsOptions, CleanAssets} from './types'; + +const cleanAssetsAndroid: CleanAssets = (assetFiles, options) => { + const { + platformPath, + platformAssetsPath, + shouldUseFontXMLFiles, + isResourceFile, + } = options as AndroidCleanAssetsOptions; + const isUsingKotlin = isProjectUsingKotlin(platformPath); + + // If the assets are not fonts and are not linked with XML files, just remove them. + if (!shouldUseFontXMLFiles) { + assetFiles.forEach((file) => { + const fileName = isResourceFile + ? convertToAndroidResourceName(path.basename(file)) + : path.basename(file); + const filePath = path.join(platformAssetsPath, fileName); + try { + fs.removeSync(filePath); + } catch (e) { + throw new CLIError( + `Failed to delete "${filePath}" asset file.`, + e as Error, + ); + } + }); + + return; + } + + const fontFamilyMap: FontFamilyMap = {}; + + assetFiles.forEach((file) => { + const fontFilePath = path.join( + getFontResFolderPath(platformPath), + convertToAndroidResourceName(path.basename(file)), + ); + + const font = readAndParseFontFile(fontFilePath); + + // Build the font family's map, where each key is the font family name, + // and each value is a object containing all the font files related to that + // font family. + const fontFamily = getFontFamily( + font.tables.name.fontFamily, + font.tables.name.preferredFamily, + ); + if (!fontFamilyMap[fontFamily]) { + fontFamilyMap[fontFamily] = { + id: convertToAndroidResourceName(fontFamily), + files: [], + }; + } + + fontFamilyMap[fontFamily].files.push({ + name: convertToAndroidResourceName(path.basename(file)), + path: fontFilePath, + weight: 0, + isItalic: false, + }); + }); + + // Read MainApplication file. + const mainApplicationFilePath = getProjectFilePath( + platformPath, + 'MainApplication', + ); + let mainApplicationFileData = fs + .readFileSync(mainApplicationFilePath) + .toString(); + + Object.entries(fontFamilyMap).forEach(([fontFamilyName, fontFamilyData]) => { + const xmlFilePath = getXMLFontFilePath(platformPath, fontFamilyData.id); + + let xmlObject: FontXMLObject; + + if (fs.existsSync(xmlFilePath)) { + // XML font file already exists, so we remove the entries. + xmlObject = readAndParseFontXMLFile(xmlFilePath); + + fontFamilyData.files.forEach((file) => { + const foundEntryIndex = xmlObject['font-family'].font.findIndex( + (entry) => entry['@_app:font'] === getXMLFontId(file.name), + ); + if (foundEntryIndex !== -1) { + xmlObject['font-family'].font.splice(foundEntryIndex, 1); + } + }); + + if (xmlObject['font-family'].font.length > 0) { + // We still have some fonts declared in the XML font file. + // Write the XML font file. + const xmlData = xmlBuilder.build(xmlObject); + writeFontXMLFile(xmlFilePath, xmlData); + } else { + try { + // We remove the XML font file and method call + // because there aren't fonts declared inside it. + fs.removeSync(xmlFilePath); + } catch (e) { + throw new CLIError( + `Failed to delete "${xmlFilePath}" XML font file.`, + e as Error, + ); + } + + mainApplicationFileData = removeLineFromFile( + mainApplicationFileData, + getAddCustomFontMethodCall( + fontFamilyName, + fontFamilyData.id, + isUsingKotlin, + ), + ); + } + } + + // If there are not usages of ReactFontManager, we try to remove the import as well. + if (!mainApplicationFileData.includes('ReactFontManager.')) { + mainApplicationFileData = removeLineFromFile( + mainApplicationFileData, + `${REACT_FONT_MANAGER_IMPORT}${isUsingKotlin ? '' : ';'}`, + ); + } + + try { + // Write the modified contents to MainApplication file. + fs.writeFileSync(mainApplicationFilePath, mainApplicationFileData); + } catch (e) { + throw new CLIError( + `Failed to update "${mainApplicationFilePath}" file.`, + e as Error, + ); + } + + // Remove the font files from assets folder. + fontFamilyData.files.forEach((file) => { + try { + fs.removeSync(file.path); + } catch (e) { + throw new CLIError( + `Failed to delete "${file.path}" font file.`, + e as Error, + ); + } + }); + }); +}; + +export default cleanAssetsAndroid; diff --git a/packages/cli-link-assets/src/tools/cleanAssets/ios.ts b/packages/cli-link-assets/src/tools/cleanAssets/ios.ts new file mode 100644 index 000000000..0b2df4b92 --- /dev/null +++ b/packages/cli-link-assets/src/tools/cleanAssets/ios.ts @@ -0,0 +1,57 @@ +import {CLIError} from '@react-native-community/cli-tools'; +import fs from 'fs-extra'; +import path from 'path'; +import xcode, {PBXFile} from 'xcode'; +import createGroupWithMessage from '../helpers/xcode/createGroupWithMessage'; +import getPlist from '../helpers/xcode/getPlist'; +import writePlist from '../helpers/xcode/writePlist'; +import {CleanAssets, IOSCleanAssetsOptions} from './types'; + +const cleanAssetsIOS: CleanAssets = (assetFiles, options) => { + const {platformPath, pbxprojFilePath, isFontAsset} = + options as IOSCleanAssetsOptions; + + const project = xcode.project(pbxprojFilePath).parseSync(); + const plist = getPlist(project, platformPath); + + if (!plist) { + throw new CLIError('Failed to find PList file.'); + } + + createGroupWithMessage(project, 'Resources'); + + function removeResourceFile(files: string[]) { + return (files ?? []) + .map( + (asset) => + project.removeResourceFile(path.relative(platformPath, asset), { + target: project.getFirstTarget().uuid, + }) as PBXFile, + ) + .filter((file) => file) // xcode returns false if file is already there + .map((file) => file.basename); + } + + const removedFiles = removeResourceFile(assetFiles); + + if (isFontAsset) { + const existingFonts = (plist.UIAppFonts as string[]) ?? []; + const allFonts = existingFonts.filter( + (file) => removedFiles.indexOf(file) === -1, + ); + plist.UIAppFonts = Array.from(new Set(allFonts)); // use Set to dedupe w/existing + } + + try { + fs.writeFileSync(pbxprojFilePath, project.writeSync()); + } catch (e) { + throw new CLIError( + `Failed to update "${pbxprojFilePath}" file.`, + e as Error, + ); + } + + writePlist(project, platformPath, plist); +}; + +export default cleanAssetsIOS; diff --git a/packages/cli-link-assets/src/tools/cleanAssets/types.ts b/packages/cli-link-assets/src/tools/cleanAssets/types.ts new file mode 100644 index 000000000..b89dc3dd2 --- /dev/null +++ b/packages/cli-link-assets/src/tools/cleanAssets/types.ts @@ -0,0 +1,21 @@ +type CleanAssetsOptions = { + platformPath: string; +}; + +type AndroidCleanAssetsOptions = CleanAssetsOptions & { + platformAssetsPath: string; + shouldUseFontXMLFiles: boolean; + isResourceFile: boolean; +}; + +type IOSCleanAssetsOptions = CleanAssetsOptions & { + pbxprojFilePath: string; + isFontAsset: boolean; +}; + +type CleanAssets = ( + assetFiles: string[], + options: AndroidCleanAssetsOptions | IOSCleanAssetsOptions, +) => void; + +export {CleanAssets, AndroidCleanAssetsOptions, IOSCleanAssetsOptions}; diff --git a/packages/cli-link-assets/src/tools/copyAssets/android.ts b/packages/cli-link-assets/src/tools/copyAssets/android.ts new file mode 100644 index 000000000..17cc7496e --- /dev/null +++ b/packages/cli-link-assets/src/tools/copyAssets/android.ts @@ -0,0 +1,248 @@ +import {isProjectUsingKotlin} from '@react-native-community/cli-platform-android'; +import {CLIError} from '@react-native-community/cli-tools'; +import fs from 'fs-extra'; +import path from 'path'; +import { + FontFamilyMap, + FontXMLObject, + REACT_FONT_MANAGER_IMPORT, + addImportToFile, + buildXMLFontObject, + buildXMLFontObjectEntry, + convertToAndroidResourceName, + getAddCustomFontMethodCall, + getFontFallbackWeight, + getFontFamily, + getFontResFolderPath, + getProjectFilePath, + getXMLFontFilePath, + getXMLFontId, + insertLineInClassMethod, + readAndParseFontFile, + readAndParseFontXMLFile, + writeFontXMLFile, + xmlBuilder, +} from '../helpers/font/androidFontAssetHelpers'; +import {AndroidCopyAssetsOptions, CopyAssets} from './types'; + +const copyAssetsAndroid: CopyAssets = (assetFiles, options) => { + const { + platformPath, + platformAssetsPath, + shouldUseFontXMLFiles, + isResourceFile, + } = options as AndroidCopyAssetsOptions; + const isUsingKotlin = isProjectUsingKotlin(platformPath); + + // If the assets are not fonts and don't need to link with XML files, just copy them. + if (!shouldUseFontXMLFiles) { + assetFiles.forEach((file) => { + const fileName = isResourceFile + ? convertToAndroidResourceName(path.basename(file)) + : path.basename(file); + const filePath = path.join(platformAssetsPath, fileName); + try { + fs.copySync(file, filePath); + } catch (e) { + throw new CLIError( + `Failed to copy "${filePath}" asset file.`, + e as Error, + ); + } + }); + return; + } + + const mainApplicationFilePath = getProjectFilePath( + platformPath, + 'MainApplication', + ); + + const fontFamilyMap: FontFamilyMap = {}; + + assetFiles.forEach((file) => { + const font = readAndParseFontFile(file); + + const { + /** + * An number whose bits represent the font style. + * Must be used in conjunction with "fsSelection". + * + * Bit 1: Italic (if set to 1). + */ + macStyle, + } = font.tables.head; + + const { + /** + * An number representing the weight of the font style. + */ + usWeightClass, + + /** + * An number whose bits represent the font style. + * Must be used in conjunction with "macStyle". + * + * Bit 0: Italic (if set to 1). + */ + fsSelection, + } = font.tables.os2; + + const { + /** + * An number representing the italic angle of the font. + */ + italicAngle, + } = font.tables.post; + + /** + * Bitmask to check if font style is italic. + * + * Reference: https://learn.microsoft.com/en-us/typography/opentype/spec/os2#fsselection + */ + const fsSelectionItalicMask = 1; + + /** + * Bitmask to check if font style is italic. + * + * Reference: https://learn.microsoft.com/en-us/typography/opentype/spec/head + */ + const macStyleItalicMask = 2; + + const weight = getFontFallbackWeight(usWeightClass); + + /** + * The font is italic if both "macStyle" and "fsSelection" italic bits are set. + * If none of the bits are set, we look at the "italicAngle" as a last resource, + * which must be different from zero to be considered italic. + */ + const isItalic = Boolean( + // eslint-disable-next-line no-bitwise + (fsSelection & fsSelectionItalicMask && macStyle & macStyleItalicMask) || + italicAngle !== 0, + ); + + // Build the font family's map, where each key is the font family name, + // and each value is a object containing all the font files related to that + // font family. + const fontFamily = getFontFamily( + font.tables.name.fontFamily, + font.tables.name.preferredFamily, + ); + if (!fontFamilyMap[fontFamily]) { + fontFamilyMap[fontFamily] = { + id: convertToAndroidResourceName(fontFamily), + files: [], + }; + } + + fontFamilyMap[fontFamily].files.push({ + name: convertToAndroidResourceName(path.basename(file)), + path: file, + weight, + isItalic, + }); + }); + + Object.entries(fontFamilyMap).forEach(([fontFamilyName, fontFamilyData]) => { + const xmlFilePath = getXMLFontFilePath(platformPath, fontFamilyData.id); + + let xmlObject: FontXMLObject; + + if (fs.existsSync(xmlFilePath)) { + // XML font file already exists, so we add new entries or replace existing ones. + xmlObject = readAndParseFontXMLFile(xmlFilePath); + + fontFamilyData.files.forEach((file) => { + const xmlEntry = buildXMLFontObjectEntry(file); + + // We can't have style / weight duplicates. + const foundEntryIndex = xmlObject['font-family'].font.findIndex( + (entry) => + entry['@_app:font'] === getXMLFontId(file.name) || + (entry['@_app:fontStyle'] === xmlEntry['@_app:fontStyle'] && + entry['@_app:fontWeight'] === xmlEntry['@_app:fontWeight']), + ); + + if (foundEntryIndex !== -1) { + xmlObject['font-family'].font[foundEntryIndex] = xmlEntry; + } else { + xmlObject['font-family'].font.push(xmlEntry); + } + }); + } else { + // XML font file doesn't exist, so we create a new one. + xmlObject = buildXMLFontObject(fontFamilyData.files); + } + + // Sort the fonts by weight and style. + xmlObject['font-family'].font.sort((a, b) => { + const compareWeight = a['@_app:fontWeight'] - b['@_app:fontWeight']; + const compareStyle = a['@_app:fontStyle'].localeCompare( + b['@_app:fontStyle'], + ); + return compareWeight || compareStyle; + }); + + const xmlData = xmlBuilder.build(xmlObject); + + // Copy the font files to font folder. + fontFamilyData.files.forEach((file) => { + try { + fs.copySync( + file.path, + path.join( + getFontResFolderPath(platformPath), + path.basename(file.name), + ), + ); + } catch (e) { + throw new CLIError( + `Failed to copy "${file.path}" font file.`, + e as Error, + ); + } + }); + + // Write the XML font file. + writeFontXMLFile(xmlFilePath, xmlData); + + // Read MainApplication file. + let mainApplicationFileData = fs + .readFileSync(mainApplicationFilePath) + .toString(); + + // Add ReactFontManager's import. + mainApplicationFileData = addImportToFile( + mainApplicationFileData, + REACT_FONT_MANAGER_IMPORT, + isUsingKotlin, + ); + + // Insert add custom font's method call. + mainApplicationFileData = insertLineInClassMethod( + mainApplicationFileData, + 'MainApplication', + 'onCreate', + getAddCustomFontMethodCall( + fontFamilyName, + fontFamilyData.id, + isUsingKotlin, + ), + `super.onCreate()${isUsingKotlin ? '' : ';'}`, + isUsingKotlin, + ); + + try { + // Write the modified contents to MainApplication file. + fs.writeFileSync(mainApplicationFilePath, mainApplicationFileData); + } catch (e) { + throw new CLIError( + `Failed to update "${mainApplicationFilePath}" file.`, + e as Error, + ); + } + }); +}; + +export default copyAssetsAndroid; diff --git a/packages/cli-link-assets/src/tools/copyAssets/ios.ts b/packages/cli-link-assets/src/tools/copyAssets/ios.ts new file mode 100644 index 000000000..e0155eae8 --- /dev/null +++ b/packages/cli-link-assets/src/tools/copyAssets/ios.ts @@ -0,0 +1,59 @@ +import {CLIError} from '@react-native-community/cli-tools'; +import fs from 'fs-extra'; +import path from 'path'; +import xcode, {PBXFile} from 'xcode'; +import createGroupWithMessage from '../helpers/xcode/createGroupWithMessage'; +import getPlist from '../helpers/xcode/getPlist'; +import writePlist from '../helpers/xcode/writePlist'; +import {CopyAssets, IOSCopyAssetsOptions} from './types'; + +/** + * This function works in a similar manner to its Android version, + * except it does not copy assets but creates Xcode Group references + */ +const copyAssets: CopyAssets = (assetFiles, options) => { + const {platformPath, pbxprojFilePath, isFontAsset} = + options as IOSCopyAssetsOptions; + + const project = xcode.project(pbxprojFilePath).parseSync(); + const plist = getPlist(project, platformPath); + + if (!plist) { + throw new CLIError('Failed to find PList file.'); + } + + createGroupWithMessage(project, 'Resources'); + + function addResourceFile(assets: string[]) { + return assets + .map( + (asset) => + project.addResourceFile(path.relative(platformPath, asset), { + target: project.getFirstTarget().uuid, + }) as PBXFile, + ) + .filter((file) => file) // xcode returns false if file is already there + .map((file) => file.basename); + } + + const addedFiles = addResourceFile(assetFiles); + + if (isFontAsset) { + const existingFonts = (plist.UIAppFonts as string[]) ?? []; + const allFonts = [...existingFonts, ...addedFiles]; + plist.UIAppFonts = Array.from(new Set(allFonts)); // use Set to dedupe w/existing + } + + try { + fs.writeFileSync(pbxprojFilePath, project.writeSync()); + } catch (e) { + throw new CLIError( + `Failed to update "${pbxprojFilePath}" file.`, + e as Error, + ); + } + + writePlist(project, platformPath, plist); +}; + +export default copyAssets; diff --git a/packages/cli-link-assets/src/tools/copyAssets/types.ts b/packages/cli-link-assets/src/tools/copyAssets/types.ts new file mode 100644 index 000000000..1cce33282 --- /dev/null +++ b/packages/cli-link-assets/src/tools/copyAssets/types.ts @@ -0,0 +1,21 @@ +type CopyAssetsOptions = { + platformPath: string; +}; + +type AndroidCopyAssetsOptions = CopyAssetsOptions & { + platformAssetsPath: string; + shouldUseFontXMLFiles: boolean; + isResourceFile: boolean; +}; + +type IOSCopyAssetsOptions = CopyAssetsOptions & { + pbxprojFilePath: string; + isFontAsset: boolean; +}; + +type CopyAssets = ( + assetFiles: string[], + options: AndroidCopyAssetsOptions | IOSCopyAssetsOptions, +) => void; + +export {CopyAssets, AndroidCopyAssetsOptions, IOSCopyAssetsOptions}; diff --git a/packages/cli-link-assets/src/tools/helpers/font/androidFontAssetHelpers.ts b/packages/cli-link-assets/src/tools/helpers/font/androidFontAssetHelpers.ts new file mode 100644 index 000000000..66546c903 --- /dev/null +++ b/packages/cli-link-assets/src/tools/helpers/font/androidFontAssetHelpers.ts @@ -0,0 +1,366 @@ +import {isProjectUsingKotlin} from '@react-native-community/cli-platform-android'; +import {CLIError, logger} from '@react-native-community/cli-tools'; +import {XMLBuilder, XMLParser} from 'fast-xml-parser'; +import fs from 'fs-extra'; +import {sync as globSync} from 'glob'; +import OpenType from 'opentype.js'; +import path from 'path'; + +type FontXMLEntry = { + '@_app:font': string; + '@_app:fontStyle': string; + '@_app:fontWeight': number; +}; + +type FontXMLObject = { + '?xml': { + '@_version': string; + '@_encoding': string; + }; + 'font-family': { + '@_xmlns:app': string; + font: FontXMLEntry[]; + }; +}; + +type FontFamilyFile = { + name: string; + path: string; + weight: number; + isItalic: boolean; +}; + +type FontFamilyEntry = { + id: string; + files: FontFamilyFile[]; +}; + +type FontFamilyMap = Record; + +const REACT_FONT_MANAGER_IMPORT = + 'com.facebook.react.common.assets.ReactFontManager'; + +function toArrayBuffer(buffer: Buffer) { + const arrayBuffer = new ArrayBuffer(buffer.length); + const view = new Uint8Array(arrayBuffer); + + for (let i = 0; i < buffer.length; i += 1) { + view[i] = buffer[i]; + } + + return arrayBuffer; +} + +function convertToAndroidResourceName(str: string) { + // Extract the file name (without extension) and the extension + const extension = path.extname(str); + const baseName = path.basename(str, extension); + + // Remove any leading numbers from the base name and replace invalid characters with underscores + let cleanedBaseName = baseName.replace(/[^a-zA-Z0-9_]/g, '_').toLowerCase(); + + // Ensure the cleaned base name does not start with a number (prepend with an underscore if it does) + if (cleanedBaseName.match(/^[0-9]/)) { + cleanedBaseName = '_' + cleanedBaseName; + } + + // Clean the extension by removing any invalid characters and convert to lowercase + // Note: path.extname includes the dot (.) in the extension, we preserve that + const cleanedExtension = extension + .replace(/[^a-zA-Z0-9_.]/g, '') + .toLowerCase(); + + // Reconstruct the file path with the cleaned base name and cleaned extension + return cleanedBaseName + cleanedExtension; +} + +function getProjectFilePath(rootPath: string, name: string) { + const isUsingKotlin = isProjectUsingKotlin(rootPath); + const ext = isUsingKotlin ? 'kt' : 'java'; + const filePath = globSync( + path.join(rootPath, `app/src/main/java/**/${name}.${ext}`), + )[0]; + return filePath; +} + +function getFontFamily( + fontFamily: OpenType.LocalizedName, + preferredFontFamily?: OpenType.LocalizedName, +) { + const availableFontFamily = preferredFontFamily || fontFamily; + return availableFontFamily.en || Object.values(availableFontFamily)[0]; +} + +/** + * Calculate a fallback weight to ensure it is multiple of 100 and between 100 and 900. + * + * Reference: https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight#fallback_weights + * + * @param weight the font's weight. + * @returns a fallback weight multiple of 100, between 100 and 900, inclusive. + */ +function getFontFallbackWeight(weight: number) { + if (weight <= 500) { + return Math.max(Math.floor(weight / 100) * 100, 100); + } else { + return Math.min(Math.ceil(weight / 100) * 100, 900); + } +} + +function getFontResFolderPath(rootPath: string) { + return path.join(rootPath, 'app/src/main/res/font'); +} + +function getXMLFontId(fontFileName: string) { + return `@font/${path.basename(fontFileName, path.extname(fontFileName))}`; +} + +function buildXMLFontObjectEntry(fontFile: FontFamilyFile): FontXMLEntry { + return { + '@_app:fontStyle': fontFile.isItalic ? 'italic' : 'normal', + '@_app:fontWeight': fontFile.weight, + '@_app:font': getXMLFontId(fontFile.name), + }; +} + +function buildXMLFontObject(fontFiles: FontFamilyFile[]): FontXMLObject { + const fonts: FontXMLEntry[] = []; + fontFiles.forEach((fontFile) => { + const xmlEntry = buildXMLFontObjectEntry(fontFile); + + // We can't have style / weight duplicates. + const foundEntryIndex = fonts.findIndex( + (font) => + font['@_app:fontStyle'] === xmlEntry['@_app:fontStyle'] && + font['@_app:fontWeight'] === xmlEntry['@_app:fontWeight'], + ); + + if (foundEntryIndex === -1) { + fonts.push(xmlEntry); + } else { + fonts[foundEntryIndex] = xmlEntry; + } + }); + + return { + '?xml': { + '@_version': '1.0', + '@_encoding': 'utf-8', + }, + 'font-family': { + '@_xmlns:app': 'http://schemas.android.com/apk/res-auto', + font: fonts, + }, + }; +} + +function getAddCustomFontMethodCall( + fontName: string, + fontId: string, + isKotlin: boolean, +) { + return `ReactFontManager.getInstance().addCustomFont(this, "${fontName}", R.font.${fontId})${ + isKotlin ? '' : ';' + }`; +} + +function addImportToFile( + fileData: string, + importToAdd: string, + isKotlin: boolean, +) { + const importRegex = new RegExp( + `import\\s+${importToAdd}${isKotlin ? '' : ';'}`, + 'gm', + ); + const existingImport = importRegex.exec(fileData); + + if (existingImport) { + return fileData; + } + + const packageRegex = isKotlin ? /package\s+[\w.]+/ : /package\s+[\w.]+;/; + const packageMatch = packageRegex.exec(fileData); + + if (packageMatch) { + return fileData.replace( + packageMatch[0], + `${packageMatch[0]}\n\nimport ${importToAdd}${isKotlin ? '' : ';'}`, + ); + } + + return fileData; +} + +function insertLineInClassMethod( + fileData: string, + targetClass: string, + targetMethod: string, + codeToInsert: string, + lineToInsertAfter: string | undefined, + isKotlin: boolean, +) { + const classRegex = new RegExp( + isKotlin + ? `class\\s+${targetClass}\\s*:\\s*\\S+\\(\\)\\s*,?\\s*(\\S+\\s*)?\\{` + : `class\\s+${targetClass}(\\s+extends\\s+\\S+)?(\\s+implements\\s+\\S+)?\\s*\\{`, + 'gm', + ); + const classMatch = classRegex.exec(fileData); + + if (!classMatch) { + logger.error(`Class ${targetClass} not found.`); + return fileData; + } + + const methodRegex = new RegExp( + isKotlin + ? `override\\s+fun\\s+${targetMethod}\\s*\\(\\)` + : `(public|protected|private)\\s+(static\\s+)?\\S+\\s+${targetMethod}\\s*\\(`, + 'gm', + ); + let methodMatch = methodRegex.exec(fileData); + + while (methodMatch) { + if (methodMatch.index > classMatch.index) { + break; + } + methodMatch = methodRegex.exec(fileData); + } + + if (!methodMatch) { + logger.error(`Method ${targetMethod} not found in class ${targetClass}.`); + return fileData; + } + + const openingBraceIndex = fileData.indexOf('{', methodMatch.index); + let closingBraceIndex = -1; + let braceCount = 1; + + for (let i = openingBraceIndex + 1; i < fileData.length; i += 1) { + if (fileData[i] === '{') { + braceCount += 1; + } else if (fileData[i] === '}') { + braceCount -= 1; + } + + if (braceCount === 0) { + closingBraceIndex = i; + break; + } + } + + if (closingBraceIndex === -1) { + logger.error( + `Could not find closing brace for method ${targetMethod} in class ${targetClass}.`, + ); + return fileData; + } + + const methodBody = fileData.slice(openingBraceIndex + 1, closingBraceIndex); + + if (methodBody.includes(codeToInsert.trim())) { + return fileData; + } + + let insertPosition = closingBraceIndex; + + if (lineToInsertAfter) { + const lineIndex = methodBody.indexOf(lineToInsertAfter.trim()); + if (lineIndex !== -1) { + insertPosition = + openingBraceIndex + 1 + lineIndex + lineToInsertAfter.trim().length; + } else { + logger.error( + `Line "${lineToInsertAfter}" not found in method ${targetMethod} of class ${targetClass}.`, + ); + return fileData; + } + } + + return `${fileData.slice( + 0, + insertPosition, + )}\n ${codeToInsert}${fileData.slice(insertPosition)}`; +} + +function removeLineFromFile(fileData: string, stringToRemove: string) { + const lines = fileData.split('\n'); + const updatedLines = lines.filter((line) => !line.includes(stringToRemove)); + return updatedLines.join('\n'); +} + +function readAndParseFontFile(filePath: string): OpenType.Font { + let buffer: Buffer; + try { + buffer = fs.readFileSync(filePath); + } catch (e) { + throw new CLIError(`Failed to read "${filePath}" font file.`, e as Error); + } + + return OpenType.parse(toArrayBuffer(buffer)); +} + +function readAndParseFontXMLFile(xmlFilePath: string): FontXMLObject { + try { + return xmlParser.parse(fs.readFileSync(xmlFilePath)); + } catch (e) { + throw new CLIError( + `Failed to read "${xmlFilePath}" XML font file.`, + e as Error, + ); + } +} + +function writeFontXMLFile(xmlFilePath: string, xmlData: string): void { + try { + fs.outputFileSync(xmlFilePath, xmlData); + } catch (e) { + throw new CLIError( + `Failed to write / update "${xmlFilePath}" XML font file.`, + e as Error, + ); + } +} + +function getXMLFontFilePath( + platformPath: string, + fontFamilyId: string, +): string { + return path.join(getFontResFolderPath(platformPath), `${fontFamilyId}.xml`); +} + +const xmlParser = new XMLParser({ + ignoreAttributes: false, + isArray: (tagName) => tagName === 'font', +}); + +const xmlBuilder = new XMLBuilder({ + format: true, + ignoreAttributes: false, + suppressEmptyNode: true, +}); + +export { + FontFamilyEntry, + FontFamilyMap, + FontXMLObject, + REACT_FONT_MANAGER_IMPORT, + addImportToFile, + buildXMLFontObject, + buildXMLFontObjectEntry, + convertToAndroidResourceName, + getAddCustomFontMethodCall, + getFontFallbackWeight, + getFontFamily, + getFontResFolderPath, + getProjectFilePath, + getXMLFontFilePath, + getXMLFontId, + insertLineInClassMethod, + readAndParseFontFile, + readAndParseFontXMLFile, + removeLineFromFile, + writeFontXMLFile, + xmlBuilder, +}; diff --git a/packages/cli-link-assets/src/tools/helpers/xcode/createGroup.ts b/packages/cli-link-assets/src/tools/helpers/xcode/createGroup.ts new file mode 100644 index 000000000..5f7a38ed3 --- /dev/null +++ b/packages/cli-link-assets/src/tools/helpers/xcode/createGroup.ts @@ -0,0 +1,26 @@ +import {XcodeProject} from 'xcode'; +import getGroup, {findGroup} from './getGroup'; + +/** + * Given project and path of the group, it deeply creates a given group + * making all outer groups if necessary + * + * Returns newly created group + */ +function createGroup(project: XcodeProject, path: string) { + return path.split('/').reduce((group, name) => { + if (!findGroup(group, name)) { + const uuid = project.pbxCreateGroup(name, '""'); + + group && + group.children.push({ + value: uuid, + comment: name, + }); + } + + return project.pbxGroupByName(name); + }, getGroup(project)); +} + +export default createGroup; diff --git a/packages/cli-link-assets/src/tools/helpers/xcode/createGroupWithMessage.ts b/packages/cli-link-assets/src/tools/helpers/xcode/createGroupWithMessage.ts new file mode 100644 index 000000000..1ae81765a --- /dev/null +++ b/packages/cli-link-assets/src/tools/helpers/xcode/createGroupWithMessage.ts @@ -0,0 +1,27 @@ +import {logger} from '@react-native-community/cli-tools'; + +import {XcodeProject} from 'xcode'; +import createGroup from './createGroup'; +import getGroup from './getGroup'; + +/** + * Given project and path of the group, it checks if a group exists at that path, + * and deeply creates a group for that path if its does not already exist. + * + * Returns the existing or newly created group + */ +function createGroupWithMessage(project: XcodeProject, path: string) { + let group = getGroup(project, path); + + if (!group) { + group = createGroup(project, path); + + logger.info( + `Group '${path}' does not exist in your Xcode project. We have created it automatically for you.`, + ); + } + + return group; +} + +export default createGroupWithMessage; diff --git a/packages/cli-link-assets/src/tools/helpers/xcode/getBuildProperty.ts b/packages/cli-link-assets/src/tools/helpers/xcode/getBuildProperty.ts new file mode 100644 index 000000000..090c94c73 --- /dev/null +++ b/packages/cli-link-assets/src/tools/helpers/xcode/getBuildProperty.ts @@ -0,0 +1,26 @@ +import {XcodeProject} from 'xcode'; + +/** + * Gets build property from the main target build section + * + * It differs from the project.getBuildProperty exposed by xcode in the way that: + * - it only checks for build property in the main target `Debug` section + * - `xcode` library iterates over all build sections and because it misses + * an early return when property is found, it will return undefined/wrong value + * when there's another build section typically after the one you want to access + * without the property defined (e.g. CocoaPods sections appended to project + * miss INFOPLIST_FILE), see: https://github.com/alunny/node-xcode/blob/master/lib/pbxProject.js#L1765 + */ +function getBuildProperty(project: XcodeProject, prop: string) { + const target = project.getFirstTarget().firstTarget; + const config = + project.pbxXCConfigurationList()[target.buildConfigurationList]; + const buildSection = + project.pbxXCBuildConfigurationSection()[ + config.buildConfigurations[0].value + ]; + + return buildSection.buildSettings[prop]; +} + +export default getBuildProperty; diff --git a/packages/cli-link-assets/src/tools/helpers/xcode/getGroup.ts b/packages/cli-link-assets/src/tools/helpers/xcode/getGroup.ts new file mode 100644 index 000000000..a56d5830a --- /dev/null +++ b/packages/cli-link-assets/src/tools/helpers/xcode/getGroup.ts @@ -0,0 +1,43 @@ +import {PBXGroup, XcodeProject} from 'xcode'; + +function getFirstProject(project: XcodeProject) { + return project.getFirstProject().firstProject; +} + +function findGroup(group: PBXGroup | undefined, name: string) { + return group?.children.find((g) => g.comment === name); +} + +/** + * Returns group from .xcodeproj if one exists, null otherwise + * + * Unlike node-xcode `pbxGroupByName` - it does not return `first-matching` + * group if multiple groups with the same name exist + * + * If path is not provided, it returns top-level group + */ +function getGroup(project: XcodeProject, path?: string) { + const firstProject = getFirstProject(project); + + let group = project.getPBXGroupByKey(firstProject.mainGroup); + + if (!path) { + return group; + } + + for (var name of path.split('/')) { + var foundGroup = findGroup(group, name); + + if (foundGroup) { + group = project.getPBXGroupByKey(foundGroup.value); + } else { + group = undefined; + break; + } + } + + return group; +} + +export default getGroup; +export {findGroup}; diff --git a/packages/cli-link-assets/src/tools/helpers/xcode/getPlist.ts b/packages/cli-link-assets/src/tools/helpers/xcode/getPlist.ts new file mode 100644 index 000000000..761f91db5 --- /dev/null +++ b/packages/cli-link-assets/src/tools/helpers/xcode/getPlist.ts @@ -0,0 +1,25 @@ +import fs from 'fs'; +import plistParser, {PlistObject} from 'plist'; +import {XcodeProject} from 'xcode'; +import getPlistPath from './getPlistPath'; + +type Writeable = {-readonly [P in keyof T]: T[P]}; + +/** + * Returns Info.plist located in the iOS project + * + * Returns `null` if INFOPLIST_FILE is not specified. + */ +function getPlist(project: XcodeProject, sourceDir: string) { + const plistPath = getPlistPath(project, sourceDir); + + if (!plistPath || !fs.existsSync(plistPath)) { + return null; + } + + return plistParser.parse( + fs.readFileSync(plistPath, 'utf-8'), + ) as Writeable; +} + +export default getPlist; diff --git a/packages/cli-link-assets/src/tools/helpers/xcode/getPlistPath.ts b/packages/cli-link-assets/src/tools/helpers/xcode/getPlistPath.ts new file mode 100644 index 000000000..ac0991ff9 --- /dev/null +++ b/packages/cli-link-assets/src/tools/helpers/xcode/getPlistPath.ts @@ -0,0 +1,18 @@ +import path from 'path'; +import {XcodeProject} from 'xcode'; +import getBuildProperty from './getBuildProperty'; + +function getPlistPath(project: XcodeProject, sourceDir: string) { + const plistFile = getBuildProperty(project, 'INFOPLIST_FILE'); + + if (typeof plistFile !== 'string') { + return null; + } + + return path.join( + sourceDir, + plistFile.replace(/"/g, '').replace('$(SRCROOT)', ''), + ); +} + +export default getPlistPath; diff --git a/packages/cli-link-assets/src/tools/helpers/xcode/writePlist.ts b/packages/cli-link-assets/src/tools/helpers/xcode/writePlist.ts new file mode 100644 index 000000000..76d5bc8f7 --- /dev/null +++ b/packages/cli-link-assets/src/tools/helpers/xcode/writePlist.ts @@ -0,0 +1,31 @@ +import fs from 'fs'; +import plistParser, {PlistValue} from 'plist'; +import {XcodeProject} from 'xcode'; +import getPlistPath from './getPlistPath'; + +/** + * Writes to Info.plist located in the iOS project + * + * Returns `null` if INFOPLIST_FILE is not specified or file is non-existent. + */ +function writePlist( + project: XcodeProject, + sourceDir: string, + plist: PlistValue, +) { + const plistPath = getPlistPath(project, sourceDir); + + if (!plistPath) { + return null; + } + + // We start with an offset of -1, because Xcode maintains a custom + // indentation of the plist. + // Ref: https://github.com/facebook/react-native/issues/11668 + return fs.writeFileSync( + plistPath, + `${plistParser.build(plist, {indent: '\t', offset: -1})}\n`, + ); +} + +export default writePlist; diff --git a/packages/cli-link-assets/src/tools/linkPlatform/index.ts b/packages/cli-link-assets/src/tools/linkPlatform/index.ts new file mode 100644 index 000000000..3479bb06b --- /dev/null +++ b/packages/cli-link-assets/src/tools/linkPlatform/index.ts @@ -0,0 +1,342 @@ +import {CLIError, logger} from '@react-native-community/cli-tools'; +import fs from 'fs'; +import path from 'path'; +import sha1File from '../../sha1File'; +import {CleanAssets} from '../cleanAssets/types'; +import {CopyAssets} from '../copyAssets/types'; +import {AssetPathAndSHA1, Manifest} from '../manifest'; + +type Platform = 'android' | 'ios'; + +type AndroidPlatformConfig = {}; + +type iOSPlatformConfig = { + pbxprojFilePath: string; +}; + +type PlatformConfig = (AndroidPlatformConfig | iOSPlatformConfig) & { + exists: boolean; + path: string; +}; + +type LinkOptionAndroidConfig = { + path: string; + shouldUseFontXMLFiles: boolean; + isResourceFile: boolean; +}; + +type LinkOptionIOSConfig = { + isFontAsset: boolean; +}; + +type LinkOptions = { + android: LinkOptionAndroidConfig; + ios: LinkOptionIOSConfig; +}; + +type Extension = 'otf' | 'ttf' | 'png' | 'jpg' | 'gif' | 'mp3'; + +type LinkOptionsPerExt = { + [ext in Extension]?: LinkOptions; +}; + +type LinkPlatformOptionsPerExt = { + [ext in Extension]?: LinkOptionAndroidConfig | LinkOptionIOSConfig; +}; + +type LinkPlatformOptions = { + name: string; + enabled: boolean; + platform: Platform; + rootPath: string; + assetsPaths: string[]; + manifest: Manifest; + platformConfig: PlatformConfig; + cleanAssets: CleanAssets; + copyAssets: CopyAssets; + linkOptionsPerExt: LinkPlatformOptionsPerExt; + otherLinkOptions: LinkOptionAndroidConfig | LinkOptionIOSConfig; +}; + +type FileFilter = { + name: string; + filter: (asset: AssetPathAndSHA1) => boolean; + options?: LinkOptionAndroidConfig | LinkOptionIOSConfig; +}; + +function uniqWith(arr: T[], fn: (a: T, b: T) => boolean) { + return arr.filter( + (element, index) => arr.findIndex((step) => fn(element, step)) === index, + ); +} + +function clearDuplicated(assets: AssetPathAndSHA1[]) { + return uniqWith( + assets, + (a, b) => path.parse(a.path).base === path.parse(b.path).base, + ); +} + +const filesToIgnore = ['.DS_Store', 'Thumbs.db']; +function filterFilesToIgnore(asset: AssetPathAndSHA1) { + return filesToIgnore.indexOf(path.basename(asset.path)) === -1; +} + +function getAbsolute(filePath: string, dirPath: string) { + return path.isAbsolute(filePath) ? filePath : path.resolve(dirPath, filePath); +} +function getRelative(filePath: string, dirPath: string) { + return path.isAbsolute(filePath) + ? path.relative(dirPath, filePath) + : filePath; +} + +const filterAssetByAssetsWhichNotExists = + (assets: AssetPathAndSHA1[], rootPath: string) => + (asset: AssetPathAndSHA1) => { + const relativeFilePath = getRelative(asset.path, rootPath); + + return ( + assets + .map((otherAsset) => { + return { + ...otherAsset, + path: getRelative(otherAsset.path, rootPath), + }; + }) + .findIndex((otherAsset) => { + return ( + relativeFilePath === otherAsset.path && + asset.sha1 === otherAsset.sha1 + ); + }) === -1 + ); + }; + +function linkPlatform({ + name, + platform, + rootPath, + assetsPaths, + manifest, + platformConfig, + cleanAssets, + copyAssets, + linkOptionsPerExt, + otherLinkOptions, +}: LinkPlatformOptions) { + let showAndroidRelinkingWarning = false; + + let previouslyLinkedAssets: AssetPathAndSHA1[] = []; + try { + previouslyLinkedAssets = manifest.read().map((asset) => { + return { + ...asset, + path: asset.path.split('/').join(path.sep), // Convert path to whatever system this is + }; + }); + } catch (e) { + // ok, manifest not found meaning no need to clean + } + + let assets: AssetPathAndSHA1[] = []; + + const loadAsset = (assetMightNotAbsolute: string) => { + const asset = getAbsolute(assetMightNotAbsolute, rootPath); + + try { + const stats = fs.lstatSync(asset); + + if (stats.isDirectory()) { + fs.readdirSync(asset) + .map((file) => path.resolve(asset, file)) + .forEach(loadAsset); + } else { + const sha1 = sha1File(asset); + assets = assets.concat({ + path: asset, + sha1, + }); + } + } catch (e) { + throw new CLIError( + `Could not find "${asset}" asset or folder. Please make sure the asset or folder exists.`, + ); + } + }; + + assetsPaths.forEach(loadAsset); + + assets = clearDuplicated(assets).filter(filterFilesToIgnore); + + const fileFilters = Object.keys(linkOptionsPerExt) + .map((fileExt): FileFilter => { + return { + name: fileExt, + filter: (asset) => path.extname(asset.path) === `.${fileExt}`, + options: linkOptionsPerExt[fileExt as Extension], + }; + }) + .concat({ + name: 'custom', + filter: (asset) => + Object.keys(linkOptionsPerExt).indexOf( + path.extname(asset.path).substring(1), + ) === -1, + options: otherLinkOptions, + }); + + for (const fileFilter of fileFilters) { + const assetsToUnlink = previouslyLinkedAssets + .filter(fileFilter.filter) + .filter(filterAssetByAssetsWhichNotExists(assets, rootPath)); + + const androidAssetsToRelink = previouslyLinkedAssets + .filter(fileFilter.filter) + .filter((asset) => asset.shouldRelinkAndroidFonts); + + const assetsToLink = assets + .filter(fileFilter.filter) + .filter( + filterAssetByAssetsWhichNotExists(previouslyLinkedAssets, rootPath), + ); + + const platformPath = platformConfig.path; + const androidAssetsPath = + platform === 'android' + ? (fileFilter.options as LinkOptionAndroidConfig).path + : undefined; + const shouldUseAndroidFontXMLFiles = + platform === 'android' + ? (fileFilter.options as LinkOptionAndroidConfig).shouldUseFontXMLFiles + : undefined; + const isAndroidResourceFile = + platform === 'android' + ? (fileFilter.options as LinkOptionAndroidConfig).isResourceFile + : undefined; + const iosPbxprojFilePath = + platform === 'ios' + ? (platformConfig as iOSPlatformConfig).pbxprojFilePath + : undefined; + const isIOSFontAsset = + platform === 'ios' + ? (fileFilter.options as LinkOptionIOSConfig).isFontAsset + : undefined; + + if (androidAssetsToRelink.length > 0) { + showAndroidRelinkingWarning = true; + + logger.info( + `Relinking old ${fileFilter.name} assets from ${name} project to use XML resources`, + ); + cleanAssets( + androidAssetsToRelink.map((asset) => getAbsolute(asset.path, rootPath)), + platform === 'android' + ? { + platformPath: platformPath, + platformAssetsPath: androidAssetsPath!, + shouldUseFontXMLFiles: false, + isResourceFile: isAndroidResourceFile!, + } + : { + platformPath: platformPath, + pbxprojFilePath: iosPbxprojFilePath!, + isFontAsset: isIOSFontAsset!, + }, + ); + + copyAssets( + androidAssetsToRelink + .filter( + (androidAsset) => + !assetsToUnlink.some( + (assetToUnlink) => assetToUnlink.path === androidAsset.path, + ), + ) + .map((asset) => getAbsolute(asset.path, rootPath)), + platform === 'android' + ? { + platformPath: platformPath, + platformAssetsPath: androidAssetsPath!, + shouldUseFontXMLFiles: shouldUseAndroidFontXMLFiles!, + isResourceFile: isAndroidResourceFile!, + } + : { + platformPath: platformPath, + pbxprojFilePath: iosPbxprojFilePath!, + isFontAsset: isIOSFontAsset!, + }, + ); + } + + if (assetsToUnlink.length > 0) { + logger.info( + `Cleaning previously linked ${fileFilter.name} assets from ${name} project`, + ); + cleanAssets( + assetsToUnlink + .filter( + (assetToUnlink) => + !androidAssetsToRelink.some( + (androidAsset) => androidAsset.path === assetToUnlink.path, + ), + ) + .map((asset) => getAbsolute(asset.path, rootPath)), + platform === 'android' + ? { + platformPath: platformPath, + platformAssetsPath: androidAssetsPath!, + shouldUseFontXMLFiles: shouldUseAndroidFontXMLFiles!, + isResourceFile: isAndroidResourceFile!, + } + : { + platformPath: platformPath, + pbxprojFilePath: iosPbxprojFilePath!, + isFontAsset: isIOSFontAsset!, + }, + ); + } + + if (assetsToLink.length > 0) { + logger.info(`Linking ${fileFilter.name} assets to ${name} project`); + copyAssets( + assetsToLink.map((asset) => asset.path), + platform === 'android' + ? { + platformPath: platformPath, + platformAssetsPath: androidAssetsPath!, + shouldUseFontXMLFiles: shouldUseAndroidFontXMLFiles!, + isResourceFile: isAndroidResourceFile!, + } + : { + platformPath: platformPath, + pbxprojFilePath: iosPbxprojFilePath!, + isFontAsset: isIOSFontAsset!, + }, + ); + } + } + + manifest.write( + assets.map((asset) => ({ + ...asset, + path: path.relative(rootPath, asset.path).split(path.sep).join('/'), // Convert path to POSIX just for manifest + })), + ); // Make relative + + if (showAndroidRelinkingWarning) { + logger.warn( + "The old Android font assets were relinked in order to use XML resources. Please refer to this guide to update your application's code as well: https://github.com/callstack/react-native-asset#font-assets-linking-and-usage", + ); + } +} + +export default linkPlatform; +export { + Platform, + LinkOptionAndroidConfig, + LinkOptionIOSConfig, + LinkOptions, + LinkOptionsPerExt, + LinkPlatformOptions, +}; diff --git a/packages/cli-link-assets/src/tools/manifest/index.ts b/packages/cli-link-assets/src/tools/manifest/index.ts new file mode 100644 index 000000000..9d14559b9 --- /dev/null +++ b/packages/cli-link-assets/src/tools/manifest/index.ts @@ -0,0 +1,60 @@ +import fs from 'fs-extra'; +import path from 'path'; +import {Platform} from '../linkPlatform'; +import migrations from './migrations'; + +type Manifest = { + read: () => AssetPathAndSHA1[]; + write: (data: AssetPathAndSHA1[]) => void; +}; + +type ManifestFile = { + migIndex: number; + data: AssetPathAndSHA1[]; +}; + +type AssetPathAndSHA1 = { + path: string; + sha1: string; + shouldRelinkAndroidFonts?: boolean; +}; + +const migrationsLength = migrations.length; + +function readManifest(folderPath: string): ManifestFile { + return fs.readJsonSync(path.resolve(folderPath, 'link-assets-manifest.json')); +} + +function writeManifest(folderPath: string, data: ManifestFile) { + return fs.writeJsonSync( + path.resolve(folderPath, 'link-assets-manifest.json'), + data, + { + spaces: 2, + }, + ); +} + +const getManifest = (folderPath: string, platform: Platform): Manifest => ({ + read: (): AssetPathAndSHA1[] => { + const initialData = readManifest(folderPath); + + const newManifest = migrations + .filter((_, i) => i > (initialData.migIndex || -1)) + .reduce( + (currData, mig, i) => ({ + migIndex: i, + data: mig(currData.data || currData, platform), + }), + initialData, + ); + + return newManifest.data; + }, + write: (data: AssetPathAndSHA1[]) => { + writeManifest(folderPath, {migIndex: migrationsLength - 1, data}); + }, +}); + +export default getManifest; +export {AssetPathAndSHA1, Manifest, ManifestFile}; diff --git a/packages/cli-link-assets/src/tools/manifest/migrations/index.ts b/packages/cli-link-assets/src/tools/manifest/migrations/index.ts new file mode 100644 index 000000000..524446ae8 --- /dev/null +++ b/packages/cli-link-assets/src/tools/manifest/migrations/index.ts @@ -0,0 +1,15 @@ +import {AssetPathAndSHA1} from '..'; +import {Platform} from '../../linkPlatform'; +import migration0 from './migration0'; +import migration1 from './migration1'; +import migration2 from './migration2'; + +type MigrationFn = ( + assets: string[] | AssetPathAndSHA1[], + _platform: Platform, +) => AssetPathAndSHA1[]; + +const migrations: MigrationFn[] = [migration0, migration1, migration2]; + +export default migrations; +export type {MigrationFn}; diff --git a/packages/cli-link-assets/src/tools/manifest/migrations/migration0.ts b/packages/cli-link-assets/src/tools/manifest/migrations/migration0.ts new file mode 100644 index 000000000..2bfe31742 --- /dev/null +++ b/packages/cli-link-assets/src/tools/manifest/migrations/migration0.ts @@ -0,0 +1,24 @@ +import {MigrationFn} from '.'; +import {AssetPathAndSHA1} from '..'; +import sha1File from '../../../sha1File'; +import {Platform} from '../../linkPlatform'; + +const migration0: MigrationFn = ( + assets: string[] | AssetPathAndSHA1[], + _platform: Platform, +) => { + const assetsPathsAndSha1: AssetPathAndSHA1[] = []; + + for (const path of assets as string[]) { + const sha1 = sha1File(path); + + assetsPathsAndSha1.push({ + path, + sha1, + }); + } + + return assetsPathsAndSha1; +}; + +export default migration0; diff --git a/packages/cli-link-assets/src/tools/manifest/migrations/migration1.ts b/packages/cli-link-assets/src/tools/manifest/migrations/migration1.ts new file mode 100644 index 000000000..abba51a37 --- /dev/null +++ b/packages/cli-link-assets/src/tools/manifest/migrations/migration1.ts @@ -0,0 +1,15 @@ +import {MigrationFn} from '.'; +import {AssetPathAndSHA1} from '..'; +import {Platform} from '../../linkPlatform'; + +const migration1: MigrationFn = ( + assets: string[] | AssetPathAndSHA1[], + _platform: Platform, +) => { + return (assets as AssetPathAndSHA1[]).map(({path, sha1}) => ({ + sha1, + path: `./${path}`, // Doesn't really matter which relative path, will be cleaned anyway + })); +}; + +export default migration1; diff --git a/packages/cli-link-assets/src/tools/manifest/migrations/migration2.ts b/packages/cli-link-assets/src/tools/manifest/migrations/migration2.ts new file mode 100644 index 000000000..8a7f65f3f --- /dev/null +++ b/packages/cli-link-assets/src/tools/manifest/migrations/migration2.ts @@ -0,0 +1,20 @@ +import path from 'path'; +import {AssetPathAndSHA1} from '..'; +import {fontTypes} from '../../../fileTypes'; +import {Platform} from '../../linkPlatform'; + +function migration2( + assets: string[] | AssetPathAndSHA1[], + platform: Platform, +): AssetPathAndSHA1[] { + return (assets as AssetPathAndSHA1[]).map((asset) => ({ + ...asset, + shouldRelinkAndroidFonts: + platform === 'android' && + fontTypes.includes( + path.extname(asset.path).substring(1) as (typeof fontTypes)[number], + ), + })); +} + +export default migration2; diff --git a/packages/cli-link-assets/src/xcode.d.ts b/packages/cli-link-assets/src/xcode.d.ts new file mode 100644 index 000000000..8a7d653d1 --- /dev/null +++ b/packages/cli-link-assets/src/xcode.d.ts @@ -0,0 +1,504 @@ +// Extracted from expo, packages/@expo/cli/ts-declarations/xcode/index.d.ts + +interface pbxFile { + basename: string; + lastKnownFileType?: string; + group?: string; + path?: string; + fileEncoding?: number; + defaultEncoding?: number; + sourceTree: string; + includeInIndex?: number; + explicitFileType?: unknown; + settings?: object; + uuid?: string; + fileRef: string; + target?: string; +} + +declare module 'xcode' { + /** + * UUID that is a key to each fragment of PBXProject. + */ + type UUID = string; + + /** + * if has following format `${UUID}_comment` + */ + type UUIDComment = string; + + type XCObjectType = + | 'PBXBuildFile' + | 'PBXFileReference' + | 'PBXFrameworksBuildPhase' + | 'PBXGroup' + | 'PBXNativeTarget' + | 'PBXProject' + | 'PBXResourcesBuildPhase' + | 'PBXShellScriptBuildPhase' + | 'PBXSourcesBuildPhase' + | 'PBXVariantGroup' + | 'PBXTargetDependency' + | 'XCBuildConfiguration' + | 'XCConfigurationList'; + + type PBXFile = pbxFile; + + interface PBXProject { + isa: 'PBXProject'; + attributes: { + LastUpgradeCheck: number; + TargetAttributes: Record< + UUID, + { + CreatedOnToolsVersion?: string; + TestTargetID?: UUID; + LastSwiftMigration?: number; + ProvisioningStyle?: string; + } & Record + >; + }; + buildConfigurationList: UUID; + buildConfigurationList_comment: string; + compatibilityVersion: string; + developmentRegion: string; + hasScannedForEncodings: number; + knownRegions: string[]; + mainGroup: UUID; + productRefGroup: UUID; + productRefGroup_comment: string; + projectDirPath: string; + projectRoot: string; + targets: { + value: UUID; + comment: string; + }[]; + } + + interface PBXNativeTarget { + isa: 'PBXNativeTarget'; + buildConfigurationList: UUID; + buildConfigurationList_comment: string; + buildPhases: { + value: UUID; + comment: string; + }[]; + buildRules: []; + dependencies: { + value: UUID; + comment: string; + }[]; + name: string; + productName: string; + productReference: UUID; + productReference_comment: string; + productType: string; + } + + interface PBXBuildFile { + isa: 'PBXBuildFile'; + fileRef: UUID; + // "AppDelegate.m" + fileRef_comment: string; + } + + interface PBXTargetDependency { + isa: 'PBXTargetDependency'; + target: UUID; + targetProxy: UUID; + } + + interface XCConfigurationList { + isa: 'XCConfigurationList'; + buildConfigurations: { + value: UUID; + comment: string | 'Release' | 'Debug'; + }[]; + defaultConfigurationIsVisible: number; + defaultConfigurationName: string; + } + + interface XCBuildConfiguration { + isa: 'XCBuildConfiguration'; + baseConfigurationReference: UUID; + baseConfigurationReference_comment: string; + buildSettings: Record & { + // '"$(TARGET_NAME)"', + PRODUCT_NAME?: string; + // '"io.expo.demo.$(PRODUCT_NAME:rfc1034identifier)"', + PRODUCT_BUNDLE_IDENTIFIER?: string; + PROVISIONING_PROFILE_SPECIFIER?: string; + // '"$(BUILT_PRODUCTS_DIR)/rni.app/rni"' + TEST_HOST?: any; + DEVELOPMENT_TEAM?: string; + CODE_SIGN_IDENTITY?: string; + CODE_SIGN_STYLE?: string; + // '"$(TEST_HOST)"' + BUNDLE_LOADER?: string; + GCC_PREPROCESSOR_DEFINITIONS?: unknown[]; + INFOPLIST_FILE?: string; + IPHONEOS_DEPLOYMENT_TARGET?: string; + LD_RUNPATH_SEARCH_PATHS?: string; + OTHER_LDFLAGS?: unknown[]; + ASSETCATALOG_COMPILER_APPICON_NAME?: string; + ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME?: string; + CLANG_ANALYZER_NONNULL?: string; + CLANG_WARN_DOCUMENTATION_COMMENTS?: string; + CLANG_WARN_INFINITE_RECURSION?: string; + CLANG_WARN_SUSPICIOUS_MOVE?: string; + DEBUG_INFORMATION_FORMAT?: string; + ENABLE_TESTABILITY?: string; + GCC_NO_COMMON_BLOCKS?: string; + // 'appletvos' + SDKROOT?: string; + TARGETED_DEVICE_FAMILY?: number | string; + // '10.0' + TVOS_DEPLOYMENT_TARGET?: string; + }; + name: string; + } + + type ProductType = + | 'com.apple.product-type.application' + | 'com.apple.product-type.app-extension' + | 'com.apple.product-type.bundle' + | 'com.apple.product-type.tool' + | 'com.apple.product-type.library.dynamic' + | 'com.apple.product-type.framework' + | 'com.apple.product-type.library.static' + | 'com.apple.product-type.bundle.unit-test' + | 'com.apple.product-type.application.watchapp' + | 'com.apple.product-type.application.watchapp2' + | 'com.apple.product-type.watchkit-extension' + | 'com.apple.product-type.watchkit2-extension'; + + export interface PBXGroup { + isa: 'PBXGroup'; + children: { + value: UUID; + comment?: string; + }[]; + name: string; + path?: string; + sourceTree: '""' | unknown; + } + + export class XcodeProject { + constructor(pbxprojPath: string); + + /** + * `.pbxproj` file path. + */ + filepath: string; + + // Ex: '$(TARGET_NAME)' + productName: string; + + hash: { + headComment: string; + project: { + archiveVersion: number; + objectVersion: number; + objects: { + [T in XCObjectType]: Record< + string, + { + isa: T; + name: string; + [key: string]: any; + } + >; + }; + rootObject: string; + rootObject_comment: string; + }; + }; + + // ------------------------------------------------------------------------ + // + // `.pbxproj` related operation - starting & ending point. + // + // ------------------------------------------------------------------------ + + /** + * First step to be executed while working with `.pbxproj` file. + */ + parse(callback?: (err: Error | null, results?: string) => void): this; + + parseSync(): this; + + /** + * @returns Content of .pbxproj file. + */ + writeSync(options?: {omitEmptyValues?: boolean}): string; + + allUuids(): UUID[]; + generateUuid(): UUID; + + addPluginFile(path: unknown, opt: unknown): unknown; + removePluginFile(path: unknown, opt: unknown): unknown; + addProductFile(targetPath: unknown, opt: unknown): unknown; + removeProductFile(path: unknown, opt: unknown): unknown; + addSourceFile(path: string, opt: unknown, group: string): unknown; + removeSourceFile(path: string, opt: unknown, group: string): unknown; + addHeaderFile(path: string, opt: unknown, group: string): unknown; + removeHeaderFile(path: string, opt: unknown, group: string): unknown; + addResourceFile(path: string, opt: unknown, group?: string): unknown; + removeResourceFile(path: string, opt: unknown, group?: string): unknown; + addFramework(fpath: string, opt: unknown): unknown; + removeFramework(fpath: unknown, opt: unknown): unknown; + addCopyfile(fpath: unknown, opt: unknown): unknown; + pbxCopyfilesBuildPhaseObj(target: unknown): unknown; + addToPbxCopyfilesBuildPhase(file: unknown): void; + removeCopyfile(fpath: unknown, opt: unknown): unknown; + removeFromPbxCopyfilesBuildPhase(file: unknown): void; + addStaticLibrary(path: unknown, opt: unknown): unknown; + /** + * Adds to `PBXBuildFile` section + */ + addToPbxBuildFileSection(file: PBXFile): void; + removeFromPbxBuildFileSection(file: unknown): void; + addPbxGroup( + filePathsArray: string[], + name: string, + path: string, + sourceTree?: string, + ): {uuid: UUID; pbxGroup: PBXGroup}; + removePbxGroup(groupName: unknown): void; + addToPbxProjectSection(target: unknown): void; + addToPbxNativeTargetSection(target: unknown): void; + addToPbxFileReferenceSection(file: any): void; + removeFromPbxFileReferenceSection(file: unknown): unknown; + addToXcVersionGroupSection(file: unknown): void; + addToPluginsPbxGroup(file: unknown): void; + removeFromPluginsPbxGroup(file: unknown): unknown; + addToResourcesPbxGroup(file: unknown): void; + removeFromResourcesPbxGroup(file: unknown): unknown; + addToFrameworksPbxGroup(file: unknown): void; + removeFromFrameworksPbxGroup(file: unknown): unknown; + addToPbxEmbedFrameworksBuildPhase(file: unknown): void; + removeFromPbxEmbedFrameworksBuildPhase(file: unknown): void; + addToProductsPbxGroup(file: unknown): void; + removeFromProductsPbxGroup(file: unknown): unknown; + addToPbxSourcesBuildPhase(file: unknown): void; + removeFromPbxSourcesBuildPhase(file: unknown): void; + /** + * Adds to PBXResourcesBuildPhase` section + * @param resourcesBuildPhaseSectionKey Because there's might more than one `Resources` build phase we need to ensure file is placed under correct one. + */ + addToPbxResourcesBuildPhase(file: PBXFile): void; + removeFromPbxResourcesBuildPhase(file: unknown): void; + addToPbxFrameworksBuildPhase(file: unknown): void; + removeFromPbxFrameworksBuildPhase(file: unknown): void; + addXCConfigurationList( + configurationObjectsArray: unknown, + defaultConfigurationName: unknown, + comment: unknown, + ): { + uuid: unknown; + xcConfigurationList: { + isa: string; + buildConfigurations: unknown[]; + defaultConfigurationIsVisible: number; + defaultConfigurationName: unknown; + }; + }; + addTargetDependency( + target: unknown, + dependencyTargets: unknown, + ): { + uuid: unknown; + target: unknown; + }; + addBuildPhase( + filePathsArray: unknown, + buildPhaseType: unknown, + comment: unknown, + target: unknown, + optionsOrFolderType: unknown, + subfolderPath: unknown, + ): { + uuid: unknown; + buildPhase: { + isa: unknown; + buildActionMask: number; + files: unknown[]; + runOnlyForDeploymentPostprocessing: number; + }; + }; + /** + * Retrieves main part describing PBXProjects that are available in `.pbxproj` file. + */ + pbxProjectSection(): Record & Record; + pbxBuildFileSection(): Record & + Record; + pbxXCBuildConfigurationSection(): Record & + Record; + pbxFileReferenceSection(): Record & + Record; + pbxNativeTargetSection(): Record & + Record; + xcVersionGroupSection(): unknown; + pbxXCConfigurationList(): Record & + Record; + pbxGroupByName(name: string): PBXGroup | undefined; + /** + * @param targetName in most cases it's the name of the application + */ + pbxTargetByName(targetName: string): PBXNativeTarget | undefined; + findTargetKey(name: string): string; + pbxItemByComment(name: string, pbxSectionName: XCObjectType): unknown; + pbxSourcesBuildPhaseObj(target: unknown): unknown; + pbxResourcesBuildPhaseObj(target: unknown): unknown; + pbxFrameworksBuildPhaseObj(target: unknown): unknown; + pbxEmbedFrameworksBuildPhaseObj(target: unknown): unknown; + buildPhase(group: unknown, target: unknown): string; + buildPhaseObject(name: string, group: unknown, target: unknown): unknown; + addBuildProperty(prop: unknown, value: unknown, buildName?: string): void; + removeBuildProperty(prop: unknown, build_name: unknown): void; + updateBuildProperty(prop: string, value: unknown, build: string): void; + updateProductName(name: string): void; + removeFromFrameworkSearchPaths(file: unknown): void; + addToFrameworkSearchPaths(file: unknown): void; + removeFromLibrarySearchPaths(file: unknown): void; + addToLibrarySearchPaths(file: unknown): void; + removeFromHeaderSearchPaths(file: unknown): void; + addToHeaderSearchPaths(file: unknown): void; + addToOtherLinkerFlags(flag: unknown): void; + removeFromOtherLinkerFlags(flag: unknown): void; + addToBuildSettings(buildSetting: unknown, value: unknown): void; + removeFromBuildSettings(buildSetting: unknown): void; + /** + * Checks whether there is a file with given `filePath` in the project. + */ + hasFile(filePath: string): PBXFile | false; + addTarget( + name: unknown, + type: unknown, + subfolder: unknown, + ): { + uuid: unknown; + pbxNativeTarget: { + isa: string; + name: string; + productName: string; + productReference: unknown; + productType: string; + buildConfigurationList: unknown; + buildPhases: unknown[]; + buildRules: unknown[]; + dependencies: unknown[]; + }; + }; + /** + * Get First PBXProject that can be found in `.pbxproj` file. + */ + getFirstProject(): {uuid: UUID; firstProject: PBXProject}; + getFirstTarget(): { + uuid: UUID; + firstTarget: PBXNativeTarget; + }; + /** + * Retrieves PBXNativeTarget by the type + */ + getTarget( + productType: ProductType, + ): {uuid: UUID; target: PBXNativeTarget} | null; + addToPbxGroupType( + file: unknown, + groupKey: unknown, + groupType: unknown, + ): void; + addToPbxVariantGroup(file: unknown, groupKey: unknown): void; + addToPbxGroup(file: PBXFile, groupKey: UUID): void; + pbxCreateGroupWithType( + name: unknown, + pathName: unknown, + groupType: unknown, + ): unknown; + pbxCreateVariantGroup(name: unknown): unknown; + pbxCreateGroup(name: string, pathName: string): UUID; + removeFromPbxGroupAndType( + file: unknown, + groupKey: unknown, + groupType: unknown, + ): void; + removeFromPbxGroup(file: unknown, groupKey: unknown): void; + removeFromPbxVariantGroup(file: unknown, groupKey: unknown): void; + getPBXGroupByKeyAndType(key: unknown, groupType: unknown): unknown; + /** + * @param groupKey UUID. + */ + getPBXGroupByKey(groupKey: string): PBXGroup | undefined; + getPBXVariantGroupByKey(key: unknown): unknown; + findPBXGroupKeyAndType(criteria: unknown, groupType: unknown): string; + /** + * @param criteria Params that should be used to locate desired PBXGroup. + */ + findPBXGroupKey(criteria: {name?: string; path?: string}): UUID | undefined; + findPBXVariantGroupKey(criteria: unknown): string; + addLocalizationVariantGroup(name: unknown): { + uuid: unknown; + fileRef: unknown; + basename: unknown; + }; + addKnownRegion(name: string): void; + removeKnownRegion(name: string): void; + hasKnownRegion(name: string): boolean; + getPBXObject(name: string): unknown; + /** + * - creates `PBXFile` + * - adds to `PBXFileReference` section + * - adds to `PBXGroup` or `PBXVariantGroup` if applicable + * @returns `null` if file is already in `pbxproj`. + */ + addFile( + path: string, + group?: string, + opt?: { + plugin?: string; + target?: string; + variantGroup?: string; + lastKnownFileType?: string; + defaultEncoding?: 4; + customFramework?: true; + explicitFileType?: number; + weak?: true; + compilerFLags?: string; + embed?: boolean; + sign?: boolean; + }, + ): PBXFile | null; + removeFile(path: unknown, group: unknown, opt: unknown): unknown; + getBuildProperty(prop: unknown, build: unknown): unknown; + getBuildConfigByName(name: unknown): object; + addDataModelDocument( + filePath: unknown, + group: unknown, + opt: unknown, + ): unknown; + addTargetAttribute(prop: unknown, value: unknown, target: unknown): void; + removeTargetAttribute(prop: unknown, target: unknown): void; + } + + export function project(projectPath: string): XcodeProject; +} + +declare module 'xcode/lib/pbxFile' { + export default class PBXFile implements pbxFile { + constructor(file: string); + basename: string; + lastKnownFileType?: string; + group?: string; + path?: string; + fileEncoding?: number; + defaultEncoding?: number; + sourceTree: string; + includeInIndex?: number; + explicitFileType?: unknown; + settings?: object; + uuid?: string; + fileRef: string; + target?: string; + } +} diff --git a/packages/cli-link-assets/tsconfig.json b/packages/cli-link-assets/tsconfig.json new file mode 100644 index 000000000..2a11c3a03 --- /dev/null +++ b/packages/cli-link-assets/tsconfig.json @@ -0,0 +1,13 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "rootDir": "src", + "outDir": "build" + }, + "references": [ + {"path": "../cli-tools"}, + {"path": "../cli-types"}, + {"path": "../cli-config"}, + {"path": "../cli-platform-apple"}, + ] +} diff --git a/packages/cli-platform-android/src/config/__tests__/__snapshots__/getProjectConfig.test.ts.snap b/packages/cli-platform-android/src/config/__tests__/__snapshots__/getProjectConfig.test.ts.snap index e122e33b5..b58cfdfd3 100644 --- a/packages/cli-platform-android/src/config/__tests__/__snapshots__/getProjectConfig.test.ts.snap +++ b/packages/cli-platform-android/src/config/__tests__/__snapshots__/getProjectConfig.test.ts.snap @@ -4,6 +4,7 @@ exports[`android::getProjectConfig returns an object with android project config Object { "appName": "", "applicationId": "com.some.example", + "assets": Array [], "dependencyConfiguration": undefined, "mainActivity": ".MainActivity", "packageName": "com.some.example", @@ -17,6 +18,7 @@ exports[`android::getProjectConfig returns an object with android project config Object { "appName": "", "applicationId": "com.some.example", + "assets": Array [], "dependencyConfiguration": undefined, "mainActivity": ".MainActivity", "packageName": "com.some.example", @@ -30,6 +32,7 @@ exports[`android::getProjectConfig returns an object with android project config Object { "appName": "app", "applicationId": "com.example", + "assets": Array [], "dependencyConfiguration": undefined, "mainActivity": ".MainActivity", "packageName": "com.some.example", diff --git a/packages/cli-platform-android/src/config/findPackageClassName.ts b/packages/cli-platform-android/src/config/findPackageClassName.ts index a500f5e97..d2c91d718 100644 --- a/packages/cli-platform-android/src/config/findPackageClassName.ts +++ b/packages/cli-platform-android/src/config/findPackageClassName.ts @@ -11,8 +11,12 @@ import glob from 'fast-glob'; import path from 'path'; import {unixifyPaths} from '@react-native-community/cli-tools'; +export function getMainActivityFiles(folder: string) { + return glob.sync('**/+(*.java|*.kt)', {cwd: unixifyPaths(folder)}); +} + export default function getPackageClassName(folder: string) { - const files = glob.sync('**/+(*.java|*.kt)', {cwd: unixifyPaths(folder)}); + const files = getMainActivityFiles(folder); const packages = files .map((filePath) => fs.readFileSync(path.join(folder, filePath), 'utf8')) diff --git a/packages/cli-platform-android/src/config/index.ts b/packages/cli-platform-android/src/config/index.ts index 239def997..f914b33a7 100644 --- a/packages/cli-platform-android/src/config/index.ts +++ b/packages/cli-platform-android/src/config/index.ts @@ -85,6 +85,7 @@ export function projectConfig( watchModeCommandParams: userConfig.watchModeCommandParams, // @todo remove for RN 0.75 unstable_reactLegacyComponentNames: undefined, + assets: userConfig.assets ?? [], }; } diff --git a/packages/cli-platform-android/src/config/isProjectUsingKotlin.ts b/packages/cli-platform-android/src/config/isProjectUsingKotlin.ts new file mode 100644 index 000000000..a0b7363a0 --- /dev/null +++ b/packages/cli-platform-android/src/config/isProjectUsingKotlin.ts @@ -0,0 +1,7 @@ +import {getMainActivityFiles} from './findPackageClassName'; + +export default function isProjectUsingKotlin(sourceDir: string): boolean { + const mainActivityFiles = getMainActivityFiles(sourceDir); + + return mainActivityFiles.some((file) => file.endsWith('.kt')); +} diff --git a/packages/cli-platform-android/src/index.ts b/packages/cli-platform-android/src/index.ts index 1b2d24215..c6efa2c0f 100644 --- a/packages/cli-platform-android/src/index.ts +++ b/packages/cli-platform-android/src/index.ts @@ -11,3 +11,4 @@ export { } from './commands/runAndroid'; export {projectConfig, dependencyConfig} from './config'; export {getAndroidProject, getPackageName} from './config/getAndroidProject'; +export {default as isProjectUsingKotlin} from './config/isProjectUsingKotlin'; diff --git a/packages/cli-platform-apple/src/config/__tests__/findPbxprojFile.test.ts b/packages/cli-platform-apple/src/config/__tests__/findPbxprojFile.test.ts new file mode 100644 index 000000000..b59a20b7a --- /dev/null +++ b/packages/cli-platform-apple/src/config/__tests__/findPbxprojFile.test.ts @@ -0,0 +1,23 @@ +import findPbxprojFile from '../findPbxprojFile'; + +describe('findPbxprojFile', () => { + it('should find project.pbxproj file', () => { + expect( + findPbxprojFile({ + path: '.', + name: 'AwesomeApp.xcodeproj', + isWorkspace: false, + }), + ).toEqual('AwesomeApp.xcodeproj/project.pbxproj'); + }); + + it('should convert .xcworkspace to .xcodeproj and find project.pbxproj file', () => { + expect( + findPbxprojFile({ + path: '.', + name: 'AwesomeApp.xcworkspace', + isWorkspace: true, + }), + ).toEqual('AwesomeApp.xcodeproj/project.pbxproj'); + }); +}); diff --git a/packages/cli-platform-apple/src/config/__tests__/findXcodeProject.test.ts b/packages/cli-platform-apple/src/config/__tests__/findXcodeProject.test.ts index b496155b0..05b955250 100644 --- a/packages/cli-platform-apple/src/config/__tests__/findXcodeProject.test.ts +++ b/packages/cli-platform-apple/src/config/__tests__/findXcodeProject.test.ts @@ -24,6 +24,7 @@ describe('findXcodeProject', () => { ]), ).toEqual({ name: 'AwesomeApp.xcodeproj', + path: '.', isWorkspace: false, }); }); @@ -42,10 +43,29 @@ describe('findXcodeProject', () => { ]), ).toEqual({ name: 'AwesomeApp.xcworkspace', + path: '.', isWorkspace: true, }); }); + it('should find *.xcodeproj file inside a folder', () => { + expect( + findXcodeProject([ + '.DS_Store', + 'AwesomeApp', + 'AwesomeApp/AwesomeApp.xcodeproj', + 'AwesomeAppTests', + 'PodFile', + 'Podfile.lock', + 'Pods', + ]), + ).toEqual({ + name: 'AwesomeApp/AwesomeApp.xcodeproj', + path: 'AwesomeApp', + isWorkspace: false, + }); + }); + it('should return null if nothing found', () => { expect( findXcodeProject([ diff --git a/packages/cli-platform-apple/src/config/__tests__/getProjectConfig.test.ts b/packages/cli-platform-apple/src/config/__tests__/getProjectConfig.test.ts index 2f24a0250..73ab1db4f 100644 --- a/packages/cli-platform-apple/src/config/__tests__/getProjectConfig.test.ts +++ b/packages/cli-platform-apple/src/config/__tests__/getProjectConfig.test.ts @@ -43,6 +43,7 @@ describe('ios::getProjectConfig', () => { it('returns an object with ios project configuration', () => { expect(projectConfig('/flat', {})).toMatchInlineSnapshot(` Object { + "assets": Array [], "automaticPodsInstallation": undefined, "sourceDir": "/flat/ios", "watchModeCommandParams": undefined, @@ -53,6 +54,7 @@ describe('ios::getProjectConfig', () => { it('returns correct configuration when multiple Podfile are present', () => { expect(projectConfig('/multiple', {})).toMatchInlineSnapshot(` Object { + "assets": Array [], "automaticPodsInstallation": undefined, "sourceDir": "/multiple/ios", "watchModeCommandParams": undefined, diff --git a/packages/cli-platform-apple/src/config/findPbxprojFile.ts b/packages/cli-platform-apple/src/config/findPbxprojFile.ts new file mode 100644 index 000000000..664430656 --- /dev/null +++ b/packages/cli-platform-apple/src/config/findPbxprojFile.ts @@ -0,0 +1,12 @@ +import {IOSProjectInfo} from '@react-native-community/cli-types'; +import path from 'path'; + +function findPbxprojFile(projectInfo: IOSProjectInfo): string { + return path.join( + projectInfo.path, + projectInfo.name.replace('.xcworkspace', '.xcodeproj'), + 'project.pbxproj', + ); +} + +export default findPbxprojFile; diff --git a/packages/cli-platform-apple/src/config/findXcodeProject.ts b/packages/cli-platform-apple/src/config/findXcodeProject.ts index 9b2f9737c..48398b97a 100644 --- a/packages/cli-platform-apple/src/config/findXcodeProject.ts +++ b/packages/cli-platform-apple/src/config/findXcodeProject.ts @@ -15,16 +15,19 @@ function findXcodeProject(files: Array): IOSProjectInfo | null { for (let i = sortedFiles.length - 1; i >= 0; i--) { const fileName = files[i]; const ext = path.extname(fileName); + const projectPath = path.dirname(fileName); if (ext === '.xcworkspace') { return { name: fileName, + path: projectPath, isWorkspace: true, }; } if (ext === '.xcodeproj') { return { name: fileName, + path: projectPath, isWorkspace: false, }; } diff --git a/packages/cli-platform-apple/src/config/index.ts b/packages/cli-platform-apple/src/config/index.ts index 30df5d4ef..9b002912d 100644 --- a/packages/cli-platform-apple/src/config/index.ts +++ b/packages/cli-platform-apple/src/config/index.ts @@ -59,6 +59,7 @@ export const getProjectConfig = watchModeCommandParams: userConfig.watchModeCommandParams, xcodeProject, automaticPodsInstallation: userConfig.automaticPodsInstallation, + assets: userConfig.assets ?? [], }; }; diff --git a/packages/cli-platform-apple/src/index.ts b/packages/cli-platform-apple/src/index.ts index eafc5e68b..ec0011f04 100644 --- a/packages/cli-platform-apple/src/index.ts +++ b/packages/cli-platform-apple/src/index.ts @@ -14,3 +14,6 @@ export {default as createRun} from './commands/runCommand/createRun'; export {default as getArchitecture} from './tools/getArchitecture'; export {default as installPods} from './tools/installPods'; + +export {default as findXcodeProject} from './config/findXcodeProject'; +export {default as findPbxprojFile} from './config/findPbxprojFile'; diff --git a/packages/cli-types/src/android.ts b/packages/cli-types/src/android.ts index 4ed47154f..109a8142c 100644 --- a/packages/cli-types/src/android.ts +++ b/packages/cli-types/src/android.ts @@ -8,6 +8,7 @@ export interface AndroidProjectConfig { watchModeCommandParams?: string[]; // @todo remove for RN 0.75 unstable_reactLegacyComponentNames?: string[] | null; + assets: string[]; } export type AndroidProjectParams = { @@ -19,6 +20,7 @@ export type AndroidProjectParams = { watchModeCommandParams?: string[]; // @todo remove for RN 0.75 unstable_reactLegacyComponentNames?: string[] | null; + assets?: string[]; }; export type AndroidDependencyConfig = { diff --git a/packages/cli-types/src/index.ts b/packages/cli-types/src/index.ts index eac915f4c..f518e8ebf 100644 --- a/packages/cli-types/src/index.ts +++ b/packages/cli-types/src/index.ts @@ -122,6 +122,7 @@ export interface Config { ios: IOSPlatformConfig; [name: string]: PlatformConfig; }; + assets: string[]; commands: Command[]; // @todo this should be removed: https://github.com/react-native-community/cli/issues/1261 healthChecks: []; diff --git a/packages/cli-types/src/ios.ts b/packages/cli-types/src/ios.ts index a893d9b4d..e7c3f8964 100644 --- a/packages/cli-types/src/ios.ts +++ b/packages/cli-types/src/ios.ts @@ -7,10 +7,12 @@ export interface IOSProjectParams { sourceDir?: string; watchModeCommandParams?: string[]; automaticPodsInstallation?: boolean; + assets?: string[]; } export type IOSProjectInfo = { name: string; + path: string; isWorkspace: boolean; }; @@ -19,6 +21,7 @@ export interface IOSProjectConfig { xcodeProject: IOSProjectInfo | null; watchModeCommandParams?: string[]; automaticPodsInstallation?: boolean; + assets: string[]; } export interface IOSDependencyConfig { diff --git a/packages/cli/tsconfig.json b/packages/cli/tsconfig.json index 94e24f866..0a064f0b7 100644 --- a/packages/cli/tsconfig.json +++ b/packages/cli/tsconfig.json @@ -8,6 +8,7 @@ {"path": "../cli-clean"}, {"path": "../cli-config"}, {"path": "../cli-doctor"}, + {"path": "../cli-link-assets"}, {"path": "../cli-server-api"}, {"path": "../cli-types"}, {"path": "../cli-debugger-ui"}, diff --git a/yarn.lock b/yarn.lock index 7bec5a6b6..7d47dd2b3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2358,6 +2358,19 @@ resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== +"@types/opentype.js@^1.3.8": + version "1.3.8" + resolved "https://registry.yarnpkg.com/@types/opentype.js/-/opentype.js-1.3.8.tgz#741be92429d1c2d64b5fa79cf692f74b49d6007f" + integrity sha512-H6qeTp03jrknklSn4bpT1/9+1xCAEIU2CnjcWPkicJy8A1SKuthanbvoHYMiv79/2W3Xn1XE4gfSJFzt2U3JSw== + +"@types/plist@^3.0.5": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@types/plist/-/plist-3.0.5.tgz#9a0c49c0f9886c8c8696a7904dd703f6284036e0" + integrity sha512-E6OCaRmAe4WDmWNsL/9RMqdkkzDCY1etutkflWk4c+AcjDU07Pcz1fQwTX0TQz+Pxqn9i4L1TU3UFpjnrcDgxA== + dependencies: + "@types/node" "*" + xmlbuilder ">=11.0.1" + "@types/prettier@^1.19.0": version "1.19.1" resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-1.19.1.tgz#33509849f8e679e4add158959fdb086440e9553f" @@ -2537,6 +2550,11 @@ resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== +"@xmldom/xmldom@^0.8.8": + version "0.8.10" + resolved "https://registry.yarnpkg.com/@xmldom/xmldom/-/xmldom-0.8.10.tgz#a1337ca426aa61cef9fe15b5b28e340a72f6fa99" + integrity sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw== + "@yarnpkg/lockfile@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" @@ -3178,7 +3196,7 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= -base64-js@^1.0.2, base64-js@^1.3.1: +base64-js@^1.0.2, base64-js@^1.3.1, base64-js@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== @@ -3208,6 +3226,11 @@ before-after-hook@^2.2.0: resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.2.tgz#a6e8ca41028d90ee2c24222f201c90956091613e" integrity sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ== +big-integer@1.6.x: + version "1.6.52" + resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.52.tgz#60a887f3047614a8e1bffe5d7173490a97dc8c85" + integrity sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg== + binary-extensions@^1.0.0: version "1.13.1" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" @@ -3249,6 +3272,20 @@ boolbase@^1.0.0, boolbase@~1.0.0: resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= +bplist-creator@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/bplist-creator/-/bplist-creator-0.1.0.tgz#018a2d1b587f769e379ef5519103730f8963ba1e" + integrity sha512-sXaHZicyEEmY86WyueLTQesbeoH/mquvarJaQNbjuOQO+7gbFcDEWqKmcWA4cOTLzFlfgvkiVxolk1k5bBIpmg== + dependencies: + stream-buffers "2.2.x" + +bplist-parser@0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/bplist-parser/-/bplist-parser-0.3.1.tgz#e1c90b2ca2a9f9474cc72f6862bbf3fee8341fd1" + integrity sha512-PyJxiNtA5T2PlLIeBot4lbp7rj4OadzjnMZD/G5zuBNt8ei/yCU7+wW0h2bag9vr8c+/WuRWmSxbqAl9hL1rBA== + dependencies: + big-integer "1.6.x" + brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -5647,6 +5684,13 @@ fast-xml-parser@^4.2.4: dependencies: strnum "^1.0.5" +fast-xml-parser@^4.3.2: + version "4.3.2" + resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.3.2.tgz#761e641260706d6e13251c4ef8e3f5694d4b0d79" + integrity sha512-rmrXUXwbJedoXkStenj1kkljNF7ugn5ZjR9FJcwmCfcCbtOMDghPajbc+Tck6vE6F5XsDmx+Pr2le9fw8+pXBg== + dependencies: + strnum "^1.0.5" + fastparse@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9" @@ -9535,6 +9579,14 @@ open@^8.4.0: is-docker "^2.1.1" is-wsl "^2.2.0" +opentype.js@^1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/opentype.js/-/opentype.js-1.3.4.tgz#1c0e72e46288473cc4a4c6a2dc60fd7fe6020d77" + integrity sha512-d2JE9RP/6uagpQAVtJoF0pJJA/fgai89Cc50Yp0EJHk+eLp6QQ7gBoblsnubRULNY132I0J1QKMJ+JTbMqz4sw== + dependencies: + string.prototype.codepointat "^0.2.1" + tiny-inflate "^1.0.3" + opn@^5.1.0: version "5.5.0" resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" @@ -10044,6 +10096,15 @@ pkg-up@^2.0.0: dependencies: find-up "^2.1.0" +plist@^3.0.5, plist@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/plist/-/plist-3.1.0.tgz#797a516a93e62f5bde55e0b9cc9c967f860893c9" + integrity sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ== + dependencies: + "@xmldom/xmldom" "^0.8.8" + base64-js "^1.5.1" + xmlbuilder "^15.1.1" + pn@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" @@ -11468,6 +11529,15 @@ sigstore@^1.3.0, sigstore@^1.4.0: "@sigstore/tuf" "^1.0.3" make-fetch-happen "^11.0.1" +simple-plist@^1.1.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/simple-plist/-/simple-plist-1.3.1.tgz#16e1d8f62c6c9b691b8383127663d834112fb017" + integrity sha512-iMSw5i0XseMnrhtIzRb7XpQEXepa9xhWxGUojHBL43SIpQuDQkh3Wpy67ZbDzZVr6EKxvwVChnVpdl8hEVLDiw== + dependencies: + bplist-creator "0.1.0" + bplist-parser "0.3.1" + plist "^3.0.5" + simple-swizzle@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" @@ -11779,6 +11849,11 @@ stream-browserify@^2.0.1: inherits "~2.0.1" readable-stream "^2.0.2" +stream-buffers@2.2.x: + version "2.2.0" + resolved "https://registry.yarnpkg.com/stream-buffers/-/stream-buffers-2.2.0.tgz#91d5f5130d1cef96dcfa7f726945188741d09ee4" + integrity sha512-uyQK/mx5QjHun80FLJTfaWE7JtwfRMKBLkMne6udYOmvH0CawotVa7TfgYHzAnpphn4+TweIx1QKMnRIbipmUg== + stream-http@^2.7.2: version "2.8.3" resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" @@ -11844,6 +11919,11 @@ string-width@^5.0.0, string-width@^5.0.1, string-width@^5.1.2: emoji-regex "^9.2.2" strip-ansi "^7.0.1" +string.prototype.codepointat@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/string.prototype.codepointat/-/string.prototype.codepointat-0.2.1.tgz#004ad44c8afc727527b108cd462b4d971cd469bc" + integrity sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg== + string.prototype.matchall@^4.0.8: version "4.0.10" resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz#a1553eb532221d4180c51581d6072cd65d1ee100" @@ -12214,7 +12294,7 @@ timsort@^0.3.0: resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= -tiny-inflate@^1.0.0: +tiny-inflate@^1.0.0, tiny-inflate@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/tiny-inflate/-/tiny-inflate-1.0.3.tgz#122715494913a1805166aaf7c93467933eea26c4" integrity sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw== @@ -12452,6 +12532,11 @@ type-fest@^0.8.1: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== +type-fest@^4.10.2: + version "4.10.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-4.10.2.tgz#3abdb144d93c5750432aac0d73d3e85fcab45738" + integrity sha512-anpAG63wSpdEbLwOqH8L84urkL6PiVIov3EMmgIhhThevh9aiMQov+6Btx0wldNcvm4wV+e2/Rt1QdDwKHFbHw== + typed-array-buffer@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60" @@ -12749,6 +12834,11 @@ uuid@^3.3.2: resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== +uuid@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-7.0.3.tgz#c5c9f2c8cf25dc0a372c4df1441c41f5bd0c680b" + integrity sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg== + uuid@^8.3.0: version "8.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" @@ -13138,11 +13228,24 @@ ws@^7.5.1: resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== +xcode@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/xcode/-/xcode-3.0.1.tgz#3efb62aac641ab2c702458f9a0302696146aa53c" + integrity sha512-kCz5k7J7XbJtjABOvkc5lJmkiDh8VhjVCGNiqdKCscmVpdVUpEAyXv1xmCLkQJ5dsHqx3IPO4XW+NTDhU/fatA== + dependencies: + simple-plist "^1.1.0" + uuid "^7.0.3" + xml-name-validator@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== +xmlbuilder@>=11.0.1, xmlbuilder@^15.1.1: + version "15.1.1" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-15.1.1.tgz#9dcdce49eea66d8d10b42cae94a79c3c8d0c2ec5" + integrity sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg== + xmlchars@^2.1.1, xmlchars@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb"