@symbiote-native/cli 0.2.0 → 0.3.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.
Files changed (29) hide show
  1. package/bundle.js +101 -1
  2. package/package.json +2 -2
  3. package/templates/README.md +6 -9
  4. package/templates/js/angular/README.md +2 -2
  5. package/templates/js/angular/tsconfig.angular.json +8 -14
  6. package/templates/js/svelte/image-uris.js +3 -5
  7. package/templates/layers/README.md +14 -24
  8. package/templates/layers/age-range/package.json.fragment.json +5 -0
  9. package/templates/layers/app-integrity/package.json.fragment.json +5 -0
  10. package/templates/layers/app-metrics/package.json.fragment.json +5 -0
  11. package/templates/layers/asset/package.json.fragment.json +5 -0
  12. package/templates/layers/auth-session/package.json.fragment.json +5 -0
  13. package/templates/layers/blob/package.json.fragment.json +5 -0
  14. package/templates/layers/calendar/package.json.fragment.json +5 -0
  15. package/templates/layers/constants/package.json.fragment.json +5 -0
  16. package/templates/layers/contacts/package.json.fragment.json +5 -0
  17. package/templates/layers/document-picker/package.json.fragment.json +5 -0
  18. package/templates/layers/font/package.json.fragment.json +5 -0
  19. package/templates/layers/image-manipulator/package.json.fragment.json +5 -0
  20. package/templates/layers/image-picker/package.json.fragment.json +5 -0
  21. package/templates/layers/intent-launcher/package.json.fragment.json +5 -0
  22. package/templates/layers/mail-composer/package.json.fragment.json +5 -0
  23. package/templates/layers/navigation/app/svelte/image-uris.js +3 -5
  24. package/templates/layers/navigation-bar/package.json.fragment.json +5 -0
  25. package/templates/layers/print/package.json.fragment.json +5 -0
  26. package/templates/layers/screen-capture/package.json.fragment.json +5 -0
  27. package/templates/layers/speech/package.json.fragment.json +5 -0
  28. package/templates/layers/video-thumbnails/package.json.fragment.json +5 -0
  29. package/templates/native/README.md +2 -2
package/bundle.js CHANGED
@@ -117,11 +117,31 @@ var NotSymbioteAppError = class extends Error {
117
117
  //#endregion
118
118
  //#region src/expo-package-layers.ts
119
119
  const EXPO_PACKAGE_LAYERS = [
120
+ {
121
+ id: "age-range",
122
+ label: "Age range",
123
+ symbiotePackage: "@symbiote-native/age-range"
124
+ },
125
+ {
126
+ id: "app-integrity",
127
+ label: "App integrity",
128
+ symbiotePackage: "@symbiote-native/app-integrity"
129
+ },
130
+ {
131
+ id: "app-metrics",
132
+ label: "App metrics",
133
+ symbiotePackage: "@symbiote-native/app-metrics"
134
+ },
120
135
  {
121
136
  id: "application",
122
137
  label: "Application info",
123
138
  symbiotePackage: "@symbiote-native/application"
124
139
  },
140
+ {
141
+ id: "asset",
142
+ label: "Asset",
143
+ symbiotePackage: "@symbiote-native/asset"
144
+ },
125
145
  {
126
146
  id: "audio",
127
147
  label: "Audio",
@@ -138,6 +158,11 @@ const EXPO_PACKAGE_LAYERS = [
138
158
  }]
139
159
  }]
140
160
  },
161
+ {
162
+ id: "auth-session",
163
+ label: "Auth session (OAuth2/OIDC)",
164
+ symbiotePackage: "@symbiote-native/auth-session"
165
+ },
141
166
  {
142
167
  id: "background-fetch",
143
168
  label: "Background fetch",
@@ -153,11 +178,21 @@ const EXPO_PACKAGE_LAYERS = [
153
178
  label: "Battery",
154
179
  symbiotePackage: "@symbiote-native/battery"
155
180
  },
181
+ {
182
+ id: "blob",
183
+ label: "Blob",
184
+ symbiotePackage: "@symbiote-native/blob"
185
+ },
156
186
  {
157
187
  id: "brightness",
158
188
  label: "Brightness",
159
189
  symbiotePackage: "@symbiote-native/brightness"
160
190
  },
191
+ {
192
+ id: "calendar",
193
+ label: "Calendar",
194
+ symbiotePackage: "@symbiote-native/calendar"
195
+ },
161
196
  {
162
197
  id: "cellular",
163
198
  label: "Cellular info",
@@ -168,6 +203,16 @@ const EXPO_PACKAGE_LAYERS = [
168
203
  label: "Clipboard",
169
204
  symbiotePackage: "@symbiote-native/clipboard"
170
205
  },
206
+ {
207
+ id: "constants",
208
+ label: "Constants",
209
+ symbiotePackage: "@symbiote-native/constants"
210
+ },
211
+ {
212
+ id: "contacts",
213
+ label: "Contacts",
214
+ symbiotePackage: "@symbiote-native/contacts"
215
+ },
171
216
  {
172
217
  id: "crypto",
173
218
  label: "Crypto",
@@ -178,16 +223,41 @@ const EXPO_PACKAGE_LAYERS = [
178
223
  label: "Device info",
179
224
  symbiotePackage: "@symbiote-native/device"
180
225
  },
226
+ {
227
+ id: "document-picker",
228
+ label: "Document picker",
229
+ symbiotePackage: "@symbiote-native/document-picker"
230
+ },
181
231
  {
182
232
  id: "file-system",
183
233
  label: "File system",
184
234
  symbiotePackage: "@symbiote-native/file-system"
185
235
  },
236
+ {
237
+ id: "font",
238
+ label: "Font",
239
+ symbiotePackage: "@symbiote-native/font"
240
+ },
186
241
  {
187
242
  id: "haptics",
188
243
  label: "Haptics",
189
244
  symbiotePackage: "@symbiote-native/haptics"
190
245
  },
246
+ {
247
+ id: "image-manipulator",
248
+ label: "Image manipulator",
249
+ symbiotePackage: "@symbiote-native/image-manipulator"
250
+ },
251
+ {
252
+ id: "image-picker",
253
+ label: "Image picker",
254
+ symbiotePackage: "@symbiote-native/image-picker"
255
+ },
256
+ {
257
+ id: "intent-launcher",
258
+ label: "Intent launcher",
259
+ symbiotePackage: "@symbiote-native/intent-launcher"
260
+ },
191
261
  {
192
262
  id: "keep-awake",
193
263
  label: "Keep awake",
@@ -219,11 +289,21 @@ const EXPO_PACKAGE_LAYERS = [
219
289
  ]
220
290
  }]
221
291
  },
292
+ {
293
+ id: "mail-composer",
294
+ label: "Mail composer",
295
+ symbiotePackage: "@symbiote-native/mail-composer"
296
+ },
222
297
  {
223
298
  id: "media-library",
224
299
  label: "Media library",
225
300
  symbiotePackage: "@symbiote-native/media-library"
226
301
  },
302
+ {
303
+ id: "navigation-bar",
304
+ label: "Navigation bar",
305
+ symbiotePackage: "@symbiote-native/navigation-bar"
306
+ },
227
307
  {
228
308
  id: "network",
229
309
  label: "Network info",
@@ -234,6 +314,16 @@ const EXPO_PACKAGE_LAYERS = [
234
314
  label: "Notifications",
235
315
  symbiotePackage: "@symbiote-native/notifications"
236
316
  },
317
+ {
318
+ id: "print",
319
+ label: "Print",
320
+ symbiotePackage: "@symbiote-native/print"
321
+ },
322
+ {
323
+ id: "screen-capture",
324
+ label: "Screen capture",
325
+ symbiotePackage: "@symbiote-native/screen-capture"
326
+ },
237
327
  {
238
328
  id: "screen-orientation",
239
329
  label: "Screen orientation",
@@ -259,6 +349,11 @@ const EXPO_PACKAGE_LAYERS = [
259
349
  label: "SMS",
260
350
  symbiotePackage: "@symbiote-native/sms"
261
351
  },
352
+ {
353
+ id: "speech",
354
+ label: "Speech",
355
+ symbiotePackage: "@symbiote-native/speech"
356
+ },
262
357
  {
263
358
  id: "sqlite",
264
359
  label: "SQLite",
@@ -289,6 +384,11 @@ const EXPO_PACKAGE_LAYERS = [
289
384
  label: "Tracking transparency",
290
385
  symbiotePackage: "@symbiote-native/tracking-transparency"
291
386
  },
387
+ {
388
+ id: "video-thumbnails",
389
+ label: "Video thumbnails",
390
+ symbiotePackage: "@symbiote-native/video-thumbnails"
391
+ },
292
392
  {
293
393
  id: "web-browser",
294
394
  label: "Web browser",
@@ -3545,7 +3645,7 @@ async function runNew(parsed) {
3545
3645
  }
3546
3646
  //#endregion
3547
3647
  //#region package.json
3548
- var version = "0.2.0";
3648
+ var version = "0.3.0";
3549
3649
  //#endregion
3550
3650
  //#region src/index.ts
3551
3651
  function printHelp() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@symbiote-native/cli",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "Create a native iOS/Android app in Vue, Svelte, Solid, Angular or React, on React Native's own Fabric renderer. Scaffolds a new app, or wires SymbioteNative into an existing bare React Native one.",
5
5
  "keywords": [
6
6
  "react-native",
@@ -55,7 +55,7 @@
55
55
  "picocolors": "^1.1.1",
56
56
  "rolldown": "1.2.0",
57
57
  "typescript": "~6.0.0",
58
- "@symbiote-native/expo-modules-link": "0.5.0"
58
+ "@symbiote-native/expo-modules-link": "0.6.0"
59
59
  },
60
60
  "scripts": {
61
61
  "typecheck": "tsc --build",
@@ -30,14 +30,12 @@ templates/
30
30
  # layers/navigation/app/<fw> — render-template.ts copies a
31
31
  # source directory recursively with no exclusion, so nesting an
32
32
  # override folder inside a tree that's already copied wholesale
33
- # ships it into every generated app regardless of --styling
34
- # (a real bug, fixed 2026-09-17 — see ../README.md).
33
+ # ships it into every generated app regardless of --styling.
35
34
  ```
36
35
 
37
36
  Every `js/<framework>` also ships a base `App.<ext>` (a "Welcome to SymbioteNative!" + tap
38
37
  counter, no navigation) — the one thing that actually makes a scaffolded app RUN instead of
39
- crashing on `import App from './App'` resolving to nothing (fixed 2026-09-15, see git history —
40
- the copy/merge mechanism landed before this file did).
38
+ crashing on `import App from './App'` resolving to nothing.
41
39
 
42
40
  **Every App file is TWO independently-maintained variants, never one derived from the other.**
43
41
  react/vue-tsx/solid: `App.tsx` + `App.jsx`, picked by filename (`render-template.ts`'s
@@ -45,8 +43,8 @@ react/vue-tsx/solid: `App.tsx` + `App.jsx`, picked by filename (`render-template
45
43
  language is an internal `<script lang="ts">` attribute, so both variants would collide on the same
46
44
  extension (`App.vue`/`App.svelte`) — instead the TypeScript half is a `App.typescript.vue` /
47
45
  `App.typescript.svelte` sibling that renders to the plain name only when TypeScript is on (same
48
- `.typescript.` infix mechanism as `package.json.fragment.typescript.json`, generalized
49
- 2026-09-15). Angular has no JS half at all (AOT requires TypeScript). The two variants read
46
+ `.typescript.` infix mechanism as `package.json.fragment.typescript.json`). Angular has no JS
47
+ half at all (AOT requires TypeScript). The two variants read
50
48
  identically today because neither has a REAL type annotation yet worth diverging on — a
51
49
  copy-with-renamed-extension looked equivalent for the same reason and was rejected: the moment
52
50
  one side gains an actual type, that copy would silently ship broken syntax into the other mode.
@@ -72,9 +70,8 @@ workspace names, Android package directory + `namespace`/`applicationId`, `app.j
72
70
  Podfile target — see `src/utils/apply-app-identity.ts`; case-sensitive, so it never touches an
73
71
  unrelated lowercase "canary" in prose/comments). Every framework ships a working base App and,
74
72
  with `--navigation`, a 2-screen Stack demo — verified end-to-end against real installs, including
75
- a real `ngc` AOT build for Angular both with and without `--navigation` (2026-09-15; that pass
76
- also caught and fixed two stale `@symbiote-native/*` version pins that broke `npm install` under
77
- ERESOLVE — every such pin is now `"latest"`, see `templates/layers/README.md`). Verified against 5
73
+ a real `ngc` AOT build for Angular both with and without `--navigation`. Every
74
+ `@symbiote-native/*` version pin is `"latest"` (see `templates/layers/README.md`). Verified against 5
78
75
  combinations (react+expo+navigation, vue-sfc+navigation, solid, svelte+expo, angular) — see
79
76
  `../README.md`'s "Design decisions" section.
80
77
 
@@ -38,8 +38,8 @@ Not copied, and why:
38
38
  (the generated app gets a fresh install).
39
39
 
40
40
  **The `src/` judgment call**: `examples/angular`'s root has no `App.ts`-equivalent — unlike
41
- React/Vue's flat `App.tsx` at the app root, Angular's whole source tree (moved 2026-07-14,
42
- documented in `angular-adapter-build` skill §3a) lives under `src/` specifically to keep
41
+ React/Vue's flat `App.tsx` at the app root, Angular's whole source tree (documented in
42
+ `angular-adapter-build` skill §3a) lives under `src/` specifically to keep
43
43
  `ngc --watch`'s recursive chokidar watch (rooted at `angularCompilerOptions.basePath`) away from
44
44
  `ios/`/`android/`'s tens of thousands of files as watch-root siblings. That makes the split
45
45
  mechanical rather than a judgment call for most of `src/`: everything in it is either (a) the
@@ -13,20 +13,14 @@
13
13
  },
14
14
  "files": ["src/App.ts", "src/css.d.ts"],
15
15
  "exclude": ["build", "e2e", "**/node_modules", "**/Pods"],
16
- // `ngc --watch` (perform_watch.js) chokidar-watches `angularCompilerOptions.basePath`
17
- // recursively, filtered only by a hardcoded regex (node_modules/.dotfiles/.js/.map/
18
- // .metadata.json — NOT ios/android/build). basePath defaults to dirname(this file) =
19
- // examples/angular/, a sibling of ios/ (17k+ files) and android/ (1k+ files), so the watcher
20
- // recursed into both and hit EMFILE. All real source now lives under src/ (moved 2026-07-14
21
- // specifically for this), so basePath narrows the watch root to just that — confirmed empirically
22
- // that overriding basePath does NOT affect file/rootDir resolution (parseJsonConfigFileContent
23
- // uses it only as the include/exclude glob base, independent of `files`), only the watch root.
24
- // Kept relative here (portable, machine-independent) even though @angular/compiler-cli's
25
- // INCREMENTAL recompile path needs it absolute (throws TS500 "path is not absolute" via
26
- // absoluteFrom() otherwise, on the second file change onward) — symbiote-angular-dev.cjs
27
- // resolves it to absolute at spawn time via a throwaway override config, so this file never
28
- // carries a hardcoded machine path. `ngc -p tsconfig.angular.json` one-shot builds (ng:build)
29
- // don't need that resolution — a relative basePath is fine for a cold compile.
16
+ // `ngc --watch` chokidar-watches `angularCompilerOptions.basePath` recursively, filtered only
17
+ // by a hardcoded regex (not ios/android/build) — defaulting to this file's dir would recurse
18
+ // into ios/ (17k+ files) and android/ (1k+ files) and hit EMFILE. Narrowed to src/ instead;
19
+ // overriding basePath affects only the watch root, not file/rootDir resolution.
20
+
21
+ // Kept relative here (portable) even though @angular/compiler-cli's INCREMENTAL recompile path
22
+ // needs it absolute — symbiote-angular-dev.cjs resolves it to absolute at spawn time via a
23
+ // throwaway override config; `ngc -p` one-shot builds don't need that resolution.
30
24
  "angularCompilerOptions": {
31
25
  "basePath": "src"
32
26
  },
@@ -1,8 +1,6 @@
1
- // require('./assets/x.png') never landed a resolved asset for a Svelte-compiled screen on
2
- // device (real bug, 2026-09-18) — the numeric-asset-id path through Metro + this adapter's
3
- // dom shim has no working precedent anywhere in this project (every other Svelte image use,
4
- // examples/svelte included, is a plain {uri} object). Inlining as a data URI sidesteps the
5
- // untested path entirely and reuses the ONE proven-working shape.
1
+ // require('./assets/x.png') has no working precedent through Metro's numeric-asset-id path plus
2
+ // this adapter's dom shim (every other Svelte image use, examples/svelte included, is a plain
3
+ // {uri} object). Inlining as a data URI sidesteps the untested path.
6
4
  export const REACT_NATIVE_LOGO_URI = 'data:image/png;base64,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';
7
5
  export const PLUS_ICON_URI = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAQAAAAAYLlVAAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElNRQfqCRIHLh3hRRxRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDI2LTA5LTE4VDA3OjM0OjM4KzAwOjAwBIF8BAAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyNi0wOS0xOFQwNzoyNToyMCswMDowMKTVPr8AAAAodEVYdGRhdGU6dGltZXN0YW1wADIwMjYtMDktMThUMDc6NDY6MjkrMDA6MDBl2ivzAAACEElEQVRo3u2ZvUscQRTAf6PrV0RJFREDlin0CAn4B6RIHTR90CKBbCeCYJp0V9gFQUifdLFLI/4FSSWpbIQgSBovekZz597tTppDcruzMzfDRYu81yy8Nzv7m7e772MGRET+d1G+N8QO+/YNAESMlBivaPsiRL4AwCteAApdsHymSuY3WQjAHBV2aHR5TzPMIr/YJPn3AHBAzEVON04lZKqBIABt+HbCZgr0AND9sbn+jX57oI8iAAIgAAIgAF25oMeIri2WrJdZ/s4i+WQ0wgrzlkeA5gmNEtsc76wFieKQ9/wu9QBwjw2m+elYwi6tgu6Kfe7z3HrfJDV2OLIBKCI+8cZSKyqgRrOgT1ijiu0FpbxkOa801QN1vhMideqOESdFlQlAgW9t28vo2FiD3/pvKAACUFqW+wXU8CBuAhhi3OGZBm2DVl33ixGjAGQ0OpoxBml1tA4AzRIPHSvZ422hB4xY5xEZoJlgClAkHJMCimnukDFT7KnyADU+8tjhxgpPqRYAxljiAV/RgOa0o73buTZpAmccXFtKAC7ZcLRrGVsslNi+8IzEuueQkloAtokhczbYaaklIzHkSavkVuuO6THWTKl8s8itxwEBEAABEAABCN2obBeqoJa1o+wrgGaWVS5zm9WjzHB2MwA/SHhtBPtmLNX6DrDFB6O7Fae+pwVhAOeclxt9j2xERET+AAlre1gB8o8WAAAAAElFTkSuQmCC';
8
6
  export const SVELTE_LOGO_URI = 'data:image/png;base64,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';
@@ -4,31 +4,23 @@ Framework-agnostic optional overlays, applied on top of `native/` + `js/<framewo
4
4
  `--expo-modules` / `--navigation` / `--testing` / `--splash-screen` / `--slider` / one `--<id>`
5
5
  flag per `EXPO_PACKAGE_LAYERS` entry (`src/expo-package-layers.ts`).
6
6
 
7
- `expo-modules` is dependency-only, same regardless of `--framework` (diffing
8
- `examples/expo-react` against `examples/react`, and checking `packages/navigation`'s
9
- `peerDependencies`, showed a dependency-only addition with no framework-specific file content and
10
- no native (`ios/`/`android/`) changes — see `packages/cli/README.md`'s "Design
11
- decisions" section). It carries ONLY the core autolinking bits — `expo` and
12
- `@symbiote-native/expo-modules-link` — never a specific Expo-backed package (2026-09-18): it used
13
- to bundle all 21 `@symbiote-native/<expo-wrapper>` packages unconditionally, so picking any ONE of
14
- them (or none at all) always installed every other one too. Each wrapper now has its OWN
15
- `templates/layers/<id>/package.json.fragment.json` (`application`, `battery`, `brightness`,
7
+ `expo-modules` is dependency-only, same regardless of `--framework` (see `packages/cli/README.md`'s
8
+ "Design decisions" section). It carries ONLY the core autolinking bits — `expo` and
9
+ `@symbiote-native/expo-modules-link` — never a specific Expo-backed package. Each wrapper has its
10
+ OWN `templates/layers/<id>/package.json.fragment.json` (`application`, `battery`, `brightness`,
16
11
  `cellular`, `clipboard`, `crypto`, `device`, `haptics`, `keep-awake`, `local-auth`,
17
12
  `localization`, `network`, `screen-orientation`, `secure-store`, `sensors`, `sharing`, `sms`,
18
13
  `standard-web-crypto`, `store-review`, `system-ui`, `tracking-transparency`, `web-browser`) —
19
14
  same dependency-only shape as `slider`, registered once in `EXPO_PACKAGE_LAYERS` so cli.ts's
20
15
  `--<id>` flag, prompts.ts's multiselect option, and `detect-added-layers.ts`'s marker all derive
21
16
  from that ONE table instead of 21 hand-written near-duplicates. `@symbiote-native/expo-modules-
22
- link` (the "Expo-modules autolinking" feature) is never a SEPARATE explicit tick once one of these
23
- 21 is picked — it doesn't make sense to ask for autolinking twice, so `resolveFeatures` /
17
+ link` is never a SEPARATE explicit tick once one of these 21 is picked — `resolveFeatures` /
24
18
  `resolveAddLayers` in `src/prompts.ts` fold `hasExpoModules` to true (or append the `expo-modules`
25
- layer) automatically. (An earlier pass here also unconditionally added the raw npm `expo-linking`
26
- package — reverted, 2026-09-18: checking the real installed `expo-battery`/`expo-web-browser`/
27
- `expo-sharing`/`expo-store-review`/`expo-local-authentication`/`expo`/`expo-modules-autolinking`
28
- `package.json`s found NONE of them depend on it. Nothing in this codebase's dependency graph
29
- actually needs it, so it isn't shipped.)
19
+ layer) automatically. The raw npm `expo-linking` package is deliberately NOT added: none of the
20
+ real installed `expo-*` `package.json`s depend on it, so nothing in this codebase's dependency
21
+ graph needs it.
30
22
 
31
- `navigation` is NOT dependency-only (2026-09-15): besides `package.json.fragment.json`
23
+ `navigation` is NOT dependency-only: besides `package.json.fragment.json`
32
24
  (`@symbiote-native/navigation`, declaring every adapter as an optional peer itself), it carries an
33
25
  `app/<framework>` subtree — a 2-screen `Stack` demo (Menu → Details) that OVERWRITES the base
34
26
  `js/<framework>` App file, so `--navigation` demonstrates itself instead of silently doing
@@ -37,7 +29,7 @@ package.json merge (see its own comment) — recursively copying the whole `navi
37
29
  would land every framework's `app/` folder on the generated root instead of just the selected
38
30
  one.
39
31
 
40
- `splash-screen` (2026-09-17) is the first layer that DOES carry native changes: a `native/`
32
+ `splash-screen` is the first layer that DOES carry native changes: a `native/`
41
33
  subtree mirroring `templates/native`'s own layout (`native/android/...`, `native/ios/...`),
42
34
  overlaid the same way `renderTemplate` already overlays `navigation`'s `app/<framework>` — no
43
35
  `@expo/config-plugins` needed after all, because only 4 files actually require two variants.
@@ -55,7 +47,7 @@ template unconditionally — none of them reference anything from the plugin (th
55
47
  draws from our own asset catalog), so leaving them in place when the option is off just means an
56
48
  unused-but-harmless launch-screen asset, not a build break.
57
49
 
58
- `testing` (2026-09-17) is also NOT dependency-only: besides the per-framework
50
+ `testing` is also NOT dependency-only: besides the per-framework
59
51
  `package.json.fragment.json` (`detox` + `jest` + `ts-jest` + the TypeScript floor, since e2e is a
60
52
  separate TS project regardless of `--javascript`), it ships `detox.config.js` at the app root and
61
53
  an `e2e/` directory (`jest.config.js`, `tsconfig.json`, `setup.ts`, `smoke.test.ts`). The fragment
@@ -81,10 +73,8 @@ the same line).
81
73
 
82
74
  Every `@symbiote-native/*` version in every fragment (base and layer) is pinned to `"latest"`,
83
75
  not a literal semver range — the monorepo's packages publish independently and a hand-copied
84
- literal drifts out of sync with peer requirements almost immediately (measured 2026-09-15:
85
- `templates/js/angular`'s `@symbiote-native/engine` pin was `^0.1.7` against `@symbiote-native/
86
- navigation@4.0.1`'s `^0.5.0` peer, and `expo-modules`'s `@symbiote-native/application@2.0.0`
87
- wants `@symbiote-native/angular@^2.0.0` while the angular fragment pinned `^0.6.1` — two separate
88
- `npm install ERESOLVE` failures from the same root cause). Third-party dependencies (`react`,
76
+ literal drifts out of sync with peer requirements almost immediately, producing `npm install
77
+ ERESOLVE` failures across unrelated fragments that pinned different literals for the same
78
+ package. Third-party dependencies (`react`,
89
79
  `react-native`, `vue`, `svelte`, `solid-js`, `@angular/*`, `expo`, …) stay pinned as before —
90
80
  only the `@symbiote-native/*` scope moved to `latest`.
@@ -0,0 +1,5 @@
1
+ {
2
+ "dependencies": {
3
+ "@symbiote-native/age-range": "latest"
4
+ }
5
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "dependencies": {
3
+ "@symbiote-native/app-integrity": "latest"
4
+ }
5
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "dependencies": {
3
+ "@symbiote-native/app-metrics": "latest"
4
+ }
5
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "dependencies": {
3
+ "@symbiote-native/asset": "latest"
4
+ }
5
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "dependencies": {
3
+ "@symbiote-native/auth-session": "latest"
4
+ }
5
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "dependencies": {
3
+ "@symbiote-native/blob": "latest"
4
+ }
5
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "dependencies": {
3
+ "@symbiote-native/calendar": "latest"
4
+ }
5
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "dependencies": {
3
+ "@symbiote-native/constants": "latest"
4
+ }
5
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "dependencies": {
3
+ "@symbiote-native/contacts": "latest"
4
+ }
5
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "dependencies": {
3
+ "@symbiote-native/document-picker": "latest"
4
+ }
5
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "dependencies": {
3
+ "@symbiote-native/font": "latest"
4
+ }
5
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "dependencies": {
3
+ "@symbiote-native/image-manipulator": "latest"
4
+ }
5
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "dependencies": {
3
+ "@symbiote-native/image-picker": "latest"
4
+ }
5
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "dependencies": {
3
+ "@symbiote-native/intent-launcher": "latest"
4
+ }
5
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "dependencies": {
3
+ "@symbiote-native/mail-composer": "latest"
4
+ }
5
+ }
@@ -1,8 +1,6 @@
1
- // require('./assets/x.png') never landed a resolved asset for a Svelte-compiled screen on
2
- // device (real bug, 2026-09-18) — the numeric-asset-id path through Metro + this adapter's
3
- // dom shim has no working precedent anywhere in this project (every other Svelte image use,
4
- // examples/svelte included, is a plain {uri} object). Inlining as a data URI sidesteps the
5
- // untested path entirely and reuses the ONE proven-working shape.
1
+ // require('./assets/x.png') has no working precedent through Metro's numeric-asset-id path plus
2
+ // this adapter's dom shim (every other Svelte image use, examples/svelte included, is a plain
3
+ // {uri} object). Inlining as a data URI sidesteps the untested path.
6
4
  export const REACT_NATIVE_LOGO_URI = 'data:image/png;base64,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';
7
5
  export const PLUS_ICON_URI = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAQAAAAAYLlVAAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElNRQfqCRIHLh3hRRxRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDI2LTA5LTE4VDA3OjM0OjM4KzAwOjAwBIF8BAAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyNi0wOS0xOFQwNzoyNToyMCswMDowMKTVPr8AAAAodEVYdGRhdGU6dGltZXN0YW1wADIwMjYtMDktMThUMDc6NDY6MjkrMDA6MDBl2ivzAAACEElEQVRo3u2ZvUscQRTAf6PrV0RJFREDlin0CAn4B6RIHTR90CKBbCeCYJp0V9gFQUifdLFLI/4FSSWpbIQgSBovekZz597tTppDcruzMzfDRYu81yy8Nzv7m7e772MGRET+d1G+N8QO+/YNAESMlBivaPsiRL4AwCteAApdsHymSuY3WQjAHBV2aHR5TzPMIr/YJPn3AHBAzEVON04lZKqBIABt+HbCZgr0AND9sbn+jX57oI8iAAIgAAIgAF25oMeIri2WrJdZ/s4i+WQ0wgrzlkeA5gmNEtsc76wFieKQ9/wu9QBwjw2m+elYwi6tgu6Kfe7z3HrfJDV2OLIBKCI+8cZSKyqgRrOgT1ijiu0FpbxkOa801QN1vhMideqOESdFlQlAgW9t28vo2FiD3/pvKAACUFqW+wXU8CBuAhhi3OGZBm2DVl33ixGjAGQ0OpoxBml1tA4AzRIPHSvZ422hB4xY5xEZoJlgClAkHJMCimnukDFT7KnyADU+8tjhxgpPqRYAxljiAV/RgOa0o73buTZpAmccXFtKAC7ZcLRrGVsslNi+8IzEuueQkloAtokhczbYaaklIzHkSavkVuuO6THWTKl8s8itxwEBEAABEAABCN2obBeqoJa1o+wrgGaWVS5zm9WjzHB2MwA/SHhtBPtmLNX6DrDFB6O7Fae+pwVhAOeclxt9j2xERET+AAlre1gB8o8WAAAAAElFTkSuQmCC';
8
6
  export const SVELTE_LOGO_URI = 'data:image/png;base64,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';
@@ -0,0 +1,5 @@
1
+ {
2
+ "dependencies": {
3
+ "@symbiote-native/navigation-bar": "latest"
4
+ }
5
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "dependencies": {
3
+ "@symbiote-native/print": "latest"
4
+ }
5
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "dependencies": {
3
+ "@symbiote-native/screen-capture": "latest"
4
+ }
5
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "dependencies": {
3
+ "@symbiote-native/speech": "latest"
4
+ }
5
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "dependencies": {
3
+ "@symbiote-native/video-thumbnails": "latest"
4
+ }
5
+ }
@@ -1,5 +1,5 @@
1
1
  **Status: real content, verbatim.** `ios/`, `android/`, and `Gemfile` are a direct copy of
2
- `examples/react`'s equivalents (2026-08-12) — the shared, framework-agnostic native shell every
2
+ `examples/react`'s equivalents — the shared, framework-agnostic native shell every
3
3
  `--framework` value uses, per `<native_core_is_untouched>` (root `CLAUDE.md`). Source of truth
4
4
  going forward: re-sync from `examples/react` when they change, not from any other example
5
5
  (they're expected to differ only cosmetically — bootsplash asset IDs, `Podfile.lock`
@@ -12,7 +12,7 @@ populated `templates/js/*` independently flagged its absence as a gap. `Gemfile.
12
12
  deliberately NOT copied, same reasoning as excluding `package-lock.json` from the JS
13
13
  overlays — a lockfile is generated fresh, never templated.
14
14
 
15
- ## Renaming (2026-09-15)
15
+ ## Renaming
16
16
 
17
17
  Every file still says **"Canary"** in the template — `src/utils/apply-app-identity.ts` runs as a
18
18
  post-pass over the already-scaffolded tree (never over `templates/` itself) and substitutes the