@ankhorage/infra 4.1.2 → 4.1.4

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @ankhorage/infra
2
2
 
3
+ ## 4.1.4
4
+
5
+ ### Patch Changes
6
+
7
+ - ed2b643: Update Ankhorage dependencies: `@ankhorage/contracts`, `@ankhorage/paradox`, `@ankhorage/supabase-vault`.
8
+
9
+ ## 4.1.3
10
+
11
+ ### Patch Changes
12
+
13
+ - 9cb5d75: Require generated app-image builds to execute the app-installed Expo CLI and fail before export when dependencies are missing.
14
+
3
15
  ## 4.1.2
4
16
 
5
17
  ### Patch Changes
package/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
 
4
4
  # INFRA
5
5
 
6
- ![license: MIT](././paradox/badges/license.svg) ![npm: v4.0.0](././paradox/badges/npm.svg) ![runtime: bun](././paradox/badges/runtime.svg) ![typescript: strict](././paradox/badges/typescript.svg) ![eslint: checked](././paradox/badges/eslint.svg) ![prettier: checked](././paradox/badges/prettier.svg) ![build: checked](././paradox/badges/build.svg) ![tests: checked](././paradox/badges/tests.svg) ![docs: paradox](././paradox/badges/docs.svg)
6
+ ![license: MIT](././paradox/badges/license.svg) ![npm: v4.1.3](././paradox/badges/npm.svg) ![runtime: bun](././paradox/badges/runtime.svg) ![typescript: strict](././paradox/badges/typescript.svg) ![eslint: checked](././paradox/badges/eslint.svg) ![prettier: checked](././paradox/badges/prettier.svg) ![build: checked](././paradox/badges/build.svg) ![tests: checked](././paradox/badges/tests.svg) ![docs: paradox](././paradox/badges/docs.svg)
7
7
 
8
8
  Executable infra provider and standalone CLI for Ankhorage project workflows.
9
9
 
@@ -351,10 +351,12 @@ ${appRuntimeEnabled ? `- App: \`http://127.0.0.1:${supabaseHostPorts.app}\`\n` :
351
351
 
352
352
  ## App Image Export
353
353
 
354
- \`build-app-image.sh\` clears the Expo/Metro bundler cache before every web export. Expo
355
- inlines \`EXPO_PUBLIC_*\` values into the browser bundle, so cache invalidation ensures a
356
- rotated browser-safe Supabase URL or anon key replaces the previous value before the Docker
357
- image is built. Privileged Supabase credentials are not written to the app's public env file.
354
+ \`build-app-image.sh\` requires the app-installed \`node_modules/.bin/expo\` and never resolves
355
+ Expo globally or through the network. It clears the Expo/Metro bundler cache before every web
356
+ export. Expo inlines \`EXPO_PUBLIC_*\` values into the browser bundle, so cache invalidation
357
+ ensures a rotated browser-safe Supabase URL or anon key replaces the previous value before the
358
+ Docker image is built. Privileged Supabase credentials are not written to the app's public env
359
+ file.
358
360
 
359
361
  ## Runtime Conventions
360
362
 
@@ -2675,29 +2677,31 @@ if [[ "\${APP_BUILD_ENABLED}" != "true" ]]; then
2675
2677
  exit 0
2676
2678
  fi
2677
2679
 
2678
- if ! command -v docker >/dev/null 2>&1; then
2679
- echo "docker is required to build app image."
2680
+ if [[ ! -f "\${APP_SOURCE_DIR}/package.json" ]]; then
2681
+ echo "APP_SOURCE_DIR does not look like an app root: \${APP_SOURCE_DIR}"
2680
2682
  exit 1
2681
2683
  fi
2682
2684
 
2683
- if ! command -v bunx >/dev/null 2>&1; then
2684
- echo "bunx is required to export the app for container image build."
2685
+ if [[ ! -f "\${DOCKERFILE_PATH}" ]]; then
2686
+ echo "Dockerfile for app image build is missing: \${DOCKERFILE_PATH}"
2685
2687
  exit 1
2686
2688
  fi
2687
2689
 
2688
- if [[ ! -f "\${APP_SOURCE_DIR}/package.json" ]]; then
2689
- echo "APP_SOURCE_DIR does not look like an app root: \${APP_SOURCE_DIR}"
2690
+ EXPO_CLI="\${APP_SOURCE_DIR}/node_modules/.bin/expo"
2691
+ if [[ ! -x "\${EXPO_CLI}" ]]; then
2692
+ echo "App-owned Expo CLI is missing: \${EXPO_CLI}" >&2
2693
+ echo "Run 'bun install --frozen-lockfile' in \${APP_SOURCE_DIR} before building the app image." >&2
2690
2694
  exit 1
2691
2695
  fi
2692
2696
 
2693
- if [[ ! -f "\${DOCKERFILE_PATH}" ]]; then
2694
- echo "Dockerfile for app image build is missing: \${DOCKERFILE_PATH}"
2697
+ if ! command -v docker >/dev/null 2>&1; then
2698
+ echo "docker is required to build app image."
2695
2699
  exit 1
2696
2700
  fi
2697
2701
 
2698
2702
  (
2699
2703
  cd "\${APP_SOURCE_DIR}"
2700
- bunx expo export --platform web --clear --output-dir "\${APP_WEB_EXPORT_DIR}"
2704
+ "\${EXPO_CLI}" export --platform web --clear --output-dir "\${APP_WEB_EXPORT_DIR}"
2701
2705
  )
2702
2706
 
2703
2707
  if [[ "\${APP_WEB_EXPORT_DIR}" = /* ]]; then