11833af43SKudo Chienimport escapeRegExp from 'lodash/escapeRegExp';
21833af43SKudo Chien
3*6239b2d0SKudo Chienimport { FileTransforms } from '../../../Transforms.types';
41833af43SKudo Chienimport { packagesToKeep, packagesToRename } from '../packagesConfig';
51833af43SKudo Chienimport { deleteLinesBetweenTags } from '../utils';
61833af43SKudo Chien
71833af43SKudo Chienexport function expoviewTransforms(abiVersion: string): FileTransforms {
81833af43SKudo Chien  const sdkVersion = abiVersion.replace(/abi(\d+)_0_0/, 'sdk$1');
91833af43SKudo Chien  return {
101833af43SKudo Chien    path: [
111833af43SKudo Chien      {
121833af43SKudo Chien        find: 'src/main/java/versioned',
131833af43SKudo Chien        replaceWith: `src/main/java/${abiVersion}`,
141833af43SKudo Chien      },
151833af43SKudo Chien      {
161833af43SKudo Chien        find: 'src/main/java/com',
171833af43SKudo Chien        replaceWith: `src/main/java/${abiVersion}/com`,
181833af43SKudo Chien      },
191833af43SKudo Chien    ],
201833af43SKudo Chien    content: [
211833af43SKudo Chien      {
221833af43SKudo Chien        paths: './build.gradle',
231833af43SKudo Chien        find: /\/\/ WHEN_VERSIONING_REPLACE_WITH_DEPENDENCIES/g,
241833af43SKudo Chien        replaceWith: 'implementation project(":expoview")',
251833af43SKudo Chien      },
261833af43SKudo Chien      {
271833af43SKudo Chien        paths: ['./build.gradle', './src/main/AndroidManifest.xml'],
281833af43SKudo Chien        transform: (text: string) =>
291833af43SKudo Chien          deleteLinesBetweenTags(
301833af43SKudo Chien            /WHEN_VERSIONING_REMOVE_FROM_HERE/,
311833af43SKudo Chien            /WHEN_VERSIONING_REMOVE_TO_HERE/,
321833af43SKudo Chien            text
331833af43SKudo Chien          ),
341833af43SKudo Chien      },
351833af43SKudo Chien      {
361833af43SKudo Chien        paths: './build.gradle',
371833af43SKudo Chien        find: /.*WHEN_VERSIONING_UNCOMMENT_(TO_HERE|FROM_HERE).*\n/g,
381833af43SKudo Chien        replaceWith: '',
391833af43SKudo Chien      },
401833af43SKudo Chien      {
411833af43SKudo Chien        paths: './build.gradle',
421833af43SKudo Chien        find: `useVendoredModulesForExpoView('unversioned')`,
431833af43SKudo Chien        replaceWith: `useVendoredModulesForExpoView('${sdkVersion}')`,
441833af43SKudo Chien      },
451833af43SKudo Chien      {
461833af43SKudo Chien        paths: './src/main/AndroidManifest.xml',
471833af43SKudo Chien        find: /host\.exp\.expoview/g,
481833af43SKudo Chien        replaceWith: `${abiVersion}.host.exp.expoview`,
491833af43SKudo Chien      },
501833af43SKudo Chien      {
511833af43SKudo Chien        paths: './src/main/AndroidManifest.xml',
521833af43SKudo Chien        find: /versioned\.host\.exp\.exponent/g,
531833af43SKudo Chien        replaceWith: `${abiVersion}.host.exp.exponent`,
541833af43SKudo Chien      },
551833af43SKudo Chien      ...packagesToKeep.map((pkg: string) => ({
561833af43SKudo Chien        paths: './src/main/java/**/*.{java,kt}',
571833af43SKudo Chien        find: new RegExp(`([, ^(<])${escapeRegExp(pkg)}`, 'g'),
581833af43SKudo Chien        replaceWith: `$1temporarydonotversion.${pkg}`,
591833af43SKudo Chien      })),
601833af43SKudo Chien      {
611833af43SKudo Chien        paths: './src/main/java/**/*.{java,kt}',
621833af43SKudo Chien        find: /import (static |)expo\./g,
631833af43SKudo Chien        replaceWith: `import $1${abiVersion}.expo.`,
641833af43SKudo Chien      },
651833af43SKudo Chien      {
661833af43SKudo Chien        paths: './src/main/java/**/*.{java,kt}',
671833af43SKudo Chien        find: /versioned\.host\.exp\.exponent/g,
681833af43SKudo Chien        replaceWith: `${abiVersion}.host.exp.exponent`,
691833af43SKudo Chien      },
701833af43SKudo Chien      ...packagesToRename.map((pkg: string) => ({
711833af43SKudo Chien        paths: './src/main/java/**/*.{java,kt}',
721833af43SKudo Chien        find: new RegExp(`([, ^(<])${escapeRegExp(pkg)}`, 'g'),
731833af43SKudo Chien        replaceWith: `$1${abiVersion}.${pkg}`,
741833af43SKudo Chien      })),
751833af43SKudo Chien      {
761833af43SKudo Chien        paths: `./src/main/java/**/*.{java,kt}`,
771833af43SKudo Chien        find: /temporarydonotversion\./g,
781833af43SKudo Chien        replaceWith: '',
791833af43SKudo Chien      },
801833af43SKudo Chien      {
81*6239b2d0SKudo Chien        paths: './**/reanimated/NativeProxy.java',
82*6239b2d0SKudo Chien        find: /\b(com\.swmansion\.)/g,
83*6239b2d0SKudo Chien        replaceWith: `${abiVersion}.$1`,
841833af43SKudo Chien      },
85*6239b2d0SKudo Chien      {
86*6239b2d0SKudo Chien        paths: './**/ExpoTurboPackage.kt',
87*6239b2d0SKudo Chien        find: /\bimport (com\.swmansion\.)/g,
88*6239b2d0SKudo Chien        replaceWith: `import ${abiVersion}.$1`,
89*6239b2d0SKudo Chien      },
901833af43SKudo Chien    ],
911833af43SKudo Chien  };
921833af43SKudo Chien}
93