expo-native-cache-provider 0.1.8 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,10 +2,18 @@ import type { SigningConfig } from "../hybrid/HybridCache.js";
2
2
  export declare class Repack {
3
3
  static repackAndroid(sourceAppPath: string, outputPath: string, projectRoot: string, signing?: SigningConfig): Promise<string>;
4
4
  /**
5
- * Repacks an AAB with a fresh JS bundle.
6
- * Extracts the AAB (zip), runs expo export:embed, replaces the bundle, re-zips.
5
+ * Repacks an AAB with a fresh JS bundle + assets + app.config,
6
+ * mirroring what repackAppAndroidAsync does for APK.
7
7
  */
8
8
  static repackAAB(sourceAABPath: string, outputPath: string, projectRoot: string, signing?: SigningConfig): Promise<string>;
9
+ /** Resolves the app entry file using expo's own resolver, falling back to index.js */
10
+ private static resolveEntryFile;
11
+ /** Detects if the project uses the Hermes JS engine */
12
+ private static isHermesEnabled;
13
+ /** Reads the resolved public Expo app config */
14
+ private static readAppConfig;
15
+ /** Copies expo-updates app.manifest into the AAB assets if expo-updates is installed */
16
+ private static copyExpoUpdatesManifestIfNeeded;
9
17
  private static findBundleInAAB;
10
18
  private static findRecursive;
11
19
  static repackIOS(sourceAppPath: string, outputPath: string, projectRoot: string, signing?: SigningConfig): Promise<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"Repack.d.ts","sourceRoot":"","sources":["../../src/repack/Repack.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAM9D,qBAAa,MAAM;WACL,aAAa,CACzB,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,aAAa,GACrB,OAAO,CAAC,MAAM,CAAC;IAwBlB;;;OAGG;WACU,SAAS,CACrB,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,aAAa,GACrB,OAAO,CAAC,MAAM,CAAC;IAyClB,OAAO,CAAC,MAAM,CAAC,eAAe;IAY9B,OAAO,CAAC,MAAM,CAAC,aAAa;WAaf,SAAS,CACrB,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,aAAa,GACrB,OAAO,CAAC,MAAM,CAAC;CAmBlB"}
1
+ {"version":3,"file":"Repack.d.ts","sourceRoot":"","sources":["../../src/repack/Repack.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAM9D,qBAAa,MAAM;WACL,aAAa,CACzB,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,aAAa,GACrB,OAAO,CAAC,MAAM,CAAC;IAwBlB;;;OAGG;WACU,SAAS,CACrB,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,aAAa,GACrB,OAAO,CAAC,MAAM,CAAC;IA0ElB,sFAAsF;IACtF,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAa/B,uDAAuD;IACvD,OAAO,CAAC,MAAM,CAAC,eAAe;IAU9B,gDAAgD;IAChD,OAAO,CAAC,MAAM,CAAC,aAAa;IAkB5B,wFAAwF;IACxF,OAAO,CAAC,MAAM,CAAC,+BAA+B;IAmC9C,OAAO,CAAC,MAAM,CAAC,eAAe;IAY9B,OAAO,CAAC,MAAM,CAAC,aAAa;WAaf,SAAS,CACrB,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,aAAa,GACrB,OAAO,CAAC,MAAM,CAAC;CAmBlB"}
@@ -1,6 +1,6 @@
1
1
  import { repackAppAndroidAsync, repackAppIosAsync } from "@expo/repack-app";
2
- import { execSync } from "node:child_process";
3
- import { mkdirSync, copyFileSync, rmSync, existsSync, readdirSync } from "node:fs";
2
+ import { execSync, execFileSync } from "node:child_process";
3
+ import { mkdirSync, copyFileSync, rmSync, existsSync, readdirSync, writeFileSync, cpSync } from "node:fs";
4
4
  import os from "node:os";
5
5
  import path from "node:path";
6
6
  export class Repack {
@@ -28,26 +28,55 @@ export class Repack {
28
28
  return outputPath;
29
29
  }
30
30
  /**
31
- * Repacks an AAB with a fresh JS bundle.
32
- * Extracts the AAB (zip), runs expo export:embed, replaces the bundle, re-zips.
31
+ * Repacks an AAB with a fresh JS bundle + assets + app.config,
32
+ * mirroring what repackAppAndroidAsync does for APK.
33
33
  */
34
34
  static async repackAAB(sourceAABPath, outputPath, projectRoot, signing) {
35
35
  const tmpDir = path.join(os.tmpdir(), `repack-aab-${Date.now()}`);
36
36
  const extractDir = path.join(tmpDir, "extracted");
37
- const bundleOutput = path.join(tmpDir, "index.android.bundle");
37
+ const bundlesDir = path.join(tmpDir, "bundles");
38
+ const assetsDestDir = path.join(bundlesDir, "assets");
39
+ const bundleOutput = path.join(bundlesDir, "index.android.bundle");
38
40
  try {
39
41
  mkdirSync(extractDir, { recursive: true });
42
+ mkdirSync(assetsDestDir, { recursive: true });
40
43
  // Extract AAB
41
44
  execSync(`unzip -q "${sourceAABPath}" -d "${extractDir}"`, { stdio: "inherit" });
42
- // Find the JS bundle inside the AAB
45
+ // Resolve entry file the same way expo does
46
+ const entryFile = Repack.resolveEntryFile(projectRoot);
47
+ // Detect hermes engine (expo checks android.jsEngine ?? jsEngine)
48
+ const isHermes = Repack.isHermesEnabled(projectRoot);
49
+ // Build expo export:embed args — mirrors hi() in repack-app
50
+ const exportArgs = [
51
+ "expo", "export:embed",
52
+ "--platform", "android",
53
+ "--entry-file", entryFile,
54
+ "--bundle-output", bundleOutput,
55
+ "--assets-dest", assetsDestDir,
56
+ "--dev", "false",
57
+ "--reset-cache",
58
+ ];
59
+ if (isHermes) {
60
+ exportArgs.push("--minify", "false", "--bytecode", "true", "--unstable-transform-profile", "hermes");
61
+ }
62
+ execFileSync("npx", exportArgs, { cwd: projectRoot, stdio: "inherit", env: process.env });
63
+ // Find the JS bundle inside the AAB and replace it
43
64
  const bundleInAAB = Repack.findBundleInAAB(extractDir);
44
- // Generate fresh JS bundle
45
- execSync(`npx expo export:embed --entry-file index.js --bundle-output "${bundleOutput}" --platform android --dev false`, { cwd: projectRoot, stdio: "inherit", env: process.env });
46
- // Replace bundle
47
65
  copyFileSync(bundleOutput, bundleInAAB);
48
- // Re-zip into AAB
66
+ // Copy updated assets into base/assets/ (mirrors bc() in repack-app)
67
+ const aabAssetsDir = path.join(extractDir, "base", "assets");
68
+ if (existsSync(assetsDestDir)) {
69
+ cpSync(assetsDestDir, aabAssetsDir, { recursive: true, force: true });
70
+ }
71
+ // Generate and copy app.config (mirrors gi() + copyFile in repack-app)
72
+ const appConfig = Repack.readAppConfig(projectRoot);
73
+ writeFileSync(path.join(aabAssetsDir, "app.config"), JSON.stringify(appConfig));
74
+ // Handle expo-updates app.manifest if expo-updates is present
75
+ Repack.copyExpoUpdatesManifestIfNeeded(projectRoot, tmpDir, aabAssetsDir);
76
+ // Re-zip into AAB — use find to add only files (no directory entries),
77
+ // because bundletool rejects AABs that contain directory zip entries.
49
78
  mkdirSync(path.dirname(outputPath), { recursive: true });
50
- execSync(`cd "${extractDir}" && zip -r "${path.resolve(outputPath)}" .`, { stdio: "inherit" });
79
+ execSync(`cd "${extractDir}" && find . -type f | zip "${path.resolve(outputPath)}" -@`, { stdio: "inherit" });
51
80
  // Sign if keystore provided
52
81
  if (!signing?.disabled && signing?.keystorePath) {
53
82
  execSync(`jarsigner -keystore "${signing.keystorePath}" -storepass "${signing.keystorePassword ?? "android"}" "${outputPath}" "${signing.keyAlias ?? "androiddebugkey"}"`, { stdio: "inherit" });
@@ -58,6 +87,65 @@ export class Repack {
58
87
  rmSync(tmpDir, { recursive: true, force: true });
59
88
  }
60
89
  }
90
+ /** Resolves the app entry file using expo's own resolver, falling back to index.js */
91
+ static resolveEntryFile(projectRoot) {
92
+ try {
93
+ const result = execFileSync("node", ["-e", "require('expo/scripts/resolveAppEntry')", projectRoot, "android", "absolute"], { cwd: projectRoot, stdio: "pipe", env: process.env });
94
+ return result.toString().trim();
95
+ }
96
+ catch {
97
+ return "index.js";
98
+ }
99
+ }
100
+ /** Detects if the project uses the Hermes JS engine */
101
+ static isHermesEnabled(projectRoot) {
102
+ try {
103
+ const config = Repack.readAppConfig(projectRoot);
104
+ const engine = config.android?.jsEngine ?? config.jsEngine;
105
+ return engine !== "jsc";
106
+ }
107
+ catch {
108
+ return true; // default to hermes (expo default since SDK 47)
109
+ }
110
+ }
111
+ /** Reads the resolved public Expo app config */
112
+ static readAppConfig(projectRoot) {
113
+ try {
114
+ const result = execFileSync("node", ["-e", `
115
+ const configPkg = require.resolve('@expo/config', { paths: [process.argv[1]] });
116
+ const { getConfig } = require(configPkg);
117
+ const { exp } = getConfig(process.argv[1], { isPublicConfig: true, skipSDKVersionRequirement: true });
118
+ process.stdout.write(JSON.stringify(exp));
119
+ `, projectRoot], { cwd: projectRoot, stdio: "pipe", env: process.env });
120
+ return JSON.parse(result.toString());
121
+ }
122
+ catch {
123
+ return {};
124
+ }
125
+ }
126
+ /** Copies expo-updates app.manifest into the AAB assets if expo-updates is installed */
127
+ static copyExpoUpdatesManifestIfNeeded(projectRoot, workingDir, aabAssetsDir) {
128
+ try {
129
+ // Check if expo-updates is in dependencies
130
+ const pkgJson = JSON.parse(execFileSync("node", ["-e", `
131
+ const { getPackageJson } = require(require.resolve('@expo/config', { paths: [process.argv[1]] }));
132
+ process.stdout.write(JSON.stringify(getPackageJson(process.argv[1])));
133
+ `, projectRoot], { cwd: projectRoot, stdio: "pipe", env: process.env }).toString());
134
+ if (!pkgJson?.dependencies?.["expo-updates"])
135
+ return;
136
+ // Resolve createUpdatesResources script
137
+ const entryFile = Repack.resolveEntryFile(projectRoot);
138
+ const createUpdatesScript = require.resolve("expo-updates/utils/build/createUpdatesResources.js", { paths: [projectRoot] });
139
+ execFileSync("node", [createUpdatesScript, "android", projectRoot, workingDir, "all", entryFile], { cwd: projectRoot, stdio: "inherit", env: process.env });
140
+ const manifestSrc = path.join(workingDir, "app.manifest");
141
+ if (existsSync(manifestSrc)) {
142
+ copyFileSync(manifestSrc, path.join(aabAssetsDir, "app.manifest"));
143
+ }
144
+ }
145
+ catch {
146
+ // expo-updates not present or createUpdatesResources unavailable — skip
147
+ }
148
+ }
61
149
  static findBundleInAAB(extractDir) {
62
150
  // Standard location in AAB produced by Gradle
63
151
  const standard = path.join(extractDir, "base", "assets", "index.android.bundle");
@@ -1 +1 @@
1
- {"version":3,"file":"Repack.js","sourceRoot":"","sources":["../../src/repack/Repack.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Repack.js","sourceRoot":"","sources":["../../src/repack/Repack.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expo-native-cache-provider",
3
- "version": "0.1.8",
3
+ "version": "0.2.0",
4
4
  "description": "Native-only cache provider using Expo's official fingerprinting",
5
5
  "license": "MIT",
6
6
  "type": "module",