@allstak/wizard 0.1.7 → 0.1.8

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 (350) hide show
  1. package/dist/cli.js +8 -0
  2. package/dist/commands/_context.js +4 -2
  3. package/dist/registry/index.js +4 -0
  4. package/dist/util/wizard-version.d.ts +1 -1
  5. package/dist/util/wizard-version.js +1 -1
  6. package/package.json +3 -4
  7. package/dist/api/auth-client.d.ts.map +0 -1
  8. package/dist/api/auth-client.js.map +0 -1
  9. package/dist/api/auth.d.ts.map +0 -1
  10. package/dist/api/auth.js.map +0 -1
  11. package/dist/api/client.d.ts.map +0 -1
  12. package/dist/api/client.js.map +0 -1
  13. package/dist/api/http.d.ts.map +0 -1
  14. package/dist/api/http.js.map +0 -1
  15. package/dist/api/index.d.ts.map +0 -1
  16. package/dist/api/index.js.map +0 -1
  17. package/dist/api/orgs-client.d.ts.map +0 -1
  18. package/dist/api/orgs-client.js.map +0 -1
  19. package/dist/api/projects-client.d.ts.map +0 -1
  20. package/dist/api/projects-client.js.map +0 -1
  21. package/dist/api/setup-doctor-client.d.ts.map +0 -1
  22. package/dist/api/setup-doctor-client.js.map +0 -1
  23. package/dist/api/types.d.ts.map +0 -1
  24. package/dist/api/types.js.map +0 -1
  25. package/dist/certification/fixtures.d.ts.map +0 -1
  26. package/dist/certification/fixtures.js.map +0 -1
  27. package/dist/certification/gates.d.ts.map +0 -1
  28. package/dist/certification/gates.js.map +0 -1
  29. package/dist/certification/index.d.ts.map +0 -1
  30. package/dist/certification/index.js.map +0 -1
  31. package/dist/certification/live-backend.d.ts.map +0 -1
  32. package/dist/certification/live-backend.js.map +0 -1
  33. package/dist/certification/packages.d.ts.map +0 -1
  34. package/dist/certification/packages.js.map +0 -1
  35. package/dist/certification/process.d.ts.map +0 -1
  36. package/dist/certification/process.js.map +0 -1
  37. package/dist/certification/report.d.ts.map +0 -1
  38. package/dist/certification/report.js.map +0 -1
  39. package/dist/certification/runner.d.ts.map +0 -1
  40. package/dist/certification/runner.js.map +0 -1
  41. package/dist/certification/runtime.d.ts.map +0 -1
  42. package/dist/certification/runtime.js.map +0 -1
  43. package/dist/certification/types.d.ts.map +0 -1
  44. package/dist/certification/types.js.map +0 -1
  45. package/dist/cli.d.ts.map +0 -1
  46. package/dist/cli.js.map +0 -1
  47. package/dist/commands/_context.d.ts.map +0 -1
  48. package/dist/commands/_context.js.map +0 -1
  49. package/dist/commands/certify.d.ts.map +0 -1
  50. package/dist/commands/certify.js.map +0 -1
  51. package/dist/commands/config-cmd.d.ts.map +0 -1
  52. package/dist/commands/config-cmd.js.map +0 -1
  53. package/dist/commands/doctor.d.ts.map +0 -1
  54. package/dist/commands/doctor.js.map +0 -1
  55. package/dist/commands/init.d.ts.map +0 -1
  56. package/dist/commands/init.js.map +0 -1
  57. package/dist/commands/list.d.ts.map +0 -1
  58. package/dist/commands/list.js.map +0 -1
  59. package/dist/commands/login.d.ts.map +0 -1
  60. package/dist/commands/login.js.map +0 -1
  61. package/dist/commands/logout.d.ts.map +0 -1
  62. package/dist/commands/logout.js.map +0 -1
  63. package/dist/commands/orgs.d.ts.map +0 -1
  64. package/dist/commands/orgs.js.map +0 -1
  65. package/dist/commands/projects.d.ts.map +0 -1
  66. package/dist/commands/projects.js.map +0 -1
  67. package/dist/commands/repair.d.ts.map +0 -1
  68. package/dist/commands/repair.js.map +0 -1
  69. package/dist/commands/restore.d.ts.map +0 -1
  70. package/dist/commands/restore.js.map +0 -1
  71. package/dist/commands/security-snapshot.d.ts.map +0 -1
  72. package/dist/commands/security-snapshot.js.map +0 -1
  73. package/dist/commands/uninstall.d.ts.map +0 -1
  74. package/dist/commands/uninstall.js.map +0 -1
  75. package/dist/commands/whoami.d.ts.map +0 -1
  76. package/dist/commands/whoami.js.map +0 -1
  77. package/dist/compat/engine.d.ts.map +0 -1
  78. package/dist/compat/engine.js.map +0 -1
  79. package/dist/config/define.d.ts.map +0 -1
  80. package/dist/config/define.js.map +0 -1
  81. package/dist/config/index.d.ts.map +0 -1
  82. package/dist/config/index.js.map +0 -1
  83. package/dist/config/loader.d.ts.map +0 -1
  84. package/dist/config/loader.js.map +0 -1
  85. package/dist/config/migrations.d.ts.map +0 -1
  86. package/dist/config/migrations.js.map +0 -1
  87. package/dist/config/precedence.d.ts.map +0 -1
  88. package/dist/config/precedence.js.map +0 -1
  89. package/dist/config/schema.d.ts.map +0 -1
  90. package/dist/config/schema.js.map +0 -1
  91. package/dist/config/types.d.ts.map +0 -1
  92. package/dist/config/types.js.map +0 -1
  93. package/dist/credentials/encrypted-file.d.ts.map +0 -1
  94. package/dist/credentials/encrypted-file.js.map +0 -1
  95. package/dist/credentials/error.d.ts.map +0 -1
  96. package/dist/credentials/error.js.map +0 -1
  97. package/dist/credentials/index.d.ts.map +0 -1
  98. package/dist/credentials/index.js.map +0 -1
  99. package/dist/credentials/keychain-darwin.d.ts.map +0 -1
  100. package/dist/credentials/keychain-darwin.js.map +0 -1
  101. package/dist/credentials/keychain-linux.d.ts.map +0 -1
  102. package/dist/credentials/keychain-linux.js.map +0 -1
  103. package/dist/credentials/keychain-win.d.ts.map +0 -1
  104. package/dist/credentials/keychain-win.js.map +0 -1
  105. package/dist/credentials/types.d.ts.map +0 -1
  106. package/dist/credentials/types.js.map +0 -1
  107. package/dist/detect/framework.d.ts.map +0 -1
  108. package/dist/detect/framework.js.map +0 -1
  109. package/dist/detect/index.d.ts.map +0 -1
  110. package/dist/detect/index.js.map +0 -1
  111. package/dist/detect/monorepo.d.ts.map +0 -1
  112. package/dist/detect/monorepo.js.map +0 -1
  113. package/dist/detect/package-manager.d.ts.map +0 -1
  114. package/dist/detect/package-manager.js.map +0 -1
  115. package/dist/index.d.ts.map +0 -1
  116. package/dist/index.js.map +0 -1
  117. package/dist/integrations/_scaffold.d.ts.map +0 -1
  118. package/dist/integrations/_scaffold.js.map +0 -1
  119. package/dist/integrations/_shared.d.ts.map +0 -1
  120. package/dist/integrations/_shared.js.map +0 -1
  121. package/dist/integrations/_simple-scaffold.d.ts.map +0 -1
  122. package/dist/integrations/_simple-scaffold.js.map +0 -1
  123. package/dist/integrations/dotnet.d.ts.map +0 -1
  124. package/dist/integrations/dotnet.js.map +0 -1
  125. package/dist/integrations/expo/detect.d.ts.map +0 -1
  126. package/dist/integrations/expo/detect.js.map +0 -1
  127. package/dist/integrations/expo/doctor.d.ts.map +0 -1
  128. package/dist/integrations/expo/doctor.js.map +0 -1
  129. package/dist/integrations/expo/files.d.ts.map +0 -1
  130. package/dist/integrations/expo/files.js.map +0 -1
  131. package/dist/integrations/expo/index.d.ts.map +0 -1
  132. package/dist/integrations/expo/index.js.map +0 -1
  133. package/dist/integrations/expo/manifest.d.ts.map +0 -1
  134. package/dist/integrations/expo/manifest.js.map +0 -1
  135. package/dist/integrations/expo/patch.d.ts.map +0 -1
  136. package/dist/integrations/expo/patch.js.map +0 -1
  137. package/dist/integrations/expo/uninstall.d.ts.map +0 -1
  138. package/dist/integrations/expo/uninstall.js.map +0 -1
  139. package/dist/integrations/expo.d.ts.map +0 -1
  140. package/dist/integrations/expo.js.map +0 -1
  141. package/dist/integrations/fastify/detect.d.ts.map +0 -1
  142. package/dist/integrations/fastify/detect.js.map +0 -1
  143. package/dist/integrations/fastify/doctor.d.ts.map +0 -1
  144. package/dist/integrations/fastify/doctor.js.map +0 -1
  145. package/dist/integrations/fastify/files.d.ts.map +0 -1
  146. package/dist/integrations/fastify/files.js.map +0 -1
  147. package/dist/integrations/fastify/index.d.ts.map +0 -1
  148. package/dist/integrations/fastify/index.js.map +0 -1
  149. package/dist/integrations/fastify/manifest.d.ts.map +0 -1
  150. package/dist/integrations/fastify/manifest.js.map +0 -1
  151. package/dist/integrations/fastify/patch.d.ts.map +0 -1
  152. package/dist/integrations/fastify/patch.js.map +0 -1
  153. package/dist/integrations/fastify/uninstall.d.ts.map +0 -1
  154. package/dist/integrations/fastify/uninstall.js.map +0 -1
  155. package/dist/integrations/fastify.d.ts.map +0 -1
  156. package/dist/integrations/fastify.js.map +0 -1
  157. package/dist/integrations/flutter.d.ts.map +0 -1
  158. package/dist/integrations/flutter.js.map +0 -1
  159. package/dist/integrations/go/index.d.ts.map +0 -1
  160. package/dist/integrations/go/index.js.map +0 -1
  161. package/dist/integrations/go.d.ts.map +0 -1
  162. package/dist/integrations/go.js.map +0 -1
  163. package/dist/integrations/java/index.d.ts.map +0 -1
  164. package/dist/integrations/java/index.js.map +0 -1
  165. package/dist/integrations/java.d.ts.map +0 -1
  166. package/dist/integrations/java.js.map +0 -1
  167. package/dist/integrations/js/detect.d.ts.map +0 -1
  168. package/dist/integrations/js/detect.js.map +0 -1
  169. package/dist/integrations/js/doctor.d.ts.map +0 -1
  170. package/dist/integrations/js/doctor.js.map +0 -1
  171. package/dist/integrations/js/files.d.ts.map +0 -1
  172. package/dist/integrations/js/files.js.map +0 -1
  173. package/dist/integrations/js/index.d.ts.map +0 -1
  174. package/dist/integrations/js/index.js.map +0 -1
  175. package/dist/integrations/js/manifest.d.ts.map +0 -1
  176. package/dist/integrations/js/manifest.js.map +0 -1
  177. package/dist/integrations/js/patch.d.ts.map +0 -1
  178. package/dist/integrations/js/patch.js.map +0 -1
  179. package/dist/integrations/js/uninstall.d.ts.map +0 -1
  180. package/dist/integrations/js/uninstall.js.map +0 -1
  181. package/dist/integrations/nestjs/detect.d.ts.map +0 -1
  182. package/dist/integrations/nestjs/detect.js.map +0 -1
  183. package/dist/integrations/nestjs/doctor.d.ts.map +0 -1
  184. package/dist/integrations/nestjs/doctor.js.map +0 -1
  185. package/dist/integrations/nestjs/files.d.ts.map +0 -1
  186. package/dist/integrations/nestjs/files.js.map +0 -1
  187. package/dist/integrations/nestjs/index.d.ts.map +0 -1
  188. package/dist/integrations/nestjs/index.js.map +0 -1
  189. package/dist/integrations/nestjs/manifest.d.ts.map +0 -1
  190. package/dist/integrations/nestjs/manifest.js.map +0 -1
  191. package/dist/integrations/nestjs/patch.d.ts.map +0 -1
  192. package/dist/integrations/nestjs/patch.js.map +0 -1
  193. package/dist/integrations/nestjs/uninstall.d.ts.map +0 -1
  194. package/dist/integrations/nestjs/uninstall.js.map +0 -1
  195. package/dist/integrations/nestjs.d.ts.map +0 -1
  196. package/dist/integrations/nestjs.js.map +0 -1
  197. package/dist/integrations/next/detect.d.ts.map +0 -1
  198. package/dist/integrations/next/detect.js.map +0 -1
  199. package/dist/integrations/next/doctor.d.ts.map +0 -1
  200. package/dist/integrations/next/doctor.js.map +0 -1
  201. package/dist/integrations/next/files.d.ts.map +0 -1
  202. package/dist/integrations/next/files.js.map +0 -1
  203. package/dist/integrations/next/index.d.ts.map +0 -1
  204. package/dist/integrations/next/index.js.map +0 -1
  205. package/dist/integrations/next/manifest.d.ts.map +0 -1
  206. package/dist/integrations/next/manifest.js.map +0 -1
  207. package/dist/integrations/next/patch.d.ts.map +0 -1
  208. package/dist/integrations/next/patch.js.map +0 -1
  209. package/dist/integrations/next/uninstall.d.ts.map +0 -1
  210. package/dist/integrations/next/uninstall.js.map +0 -1
  211. package/dist/integrations/otel.d.ts.map +0 -1
  212. package/dist/integrations/otel.js.map +0 -1
  213. package/dist/integrations/php.d.ts.map +0 -1
  214. package/dist/integrations/php.js.map +0 -1
  215. package/dist/integrations/python/index.d.ts.map +0 -1
  216. package/dist/integrations/python/index.js.map +0 -1
  217. package/dist/integrations/python.d.ts.map +0 -1
  218. package/dist/integrations/python.js.map +0 -1
  219. package/dist/integrations/react/detect.d.ts.map +0 -1
  220. package/dist/integrations/react/detect.js.map +0 -1
  221. package/dist/integrations/react/doctor.d.ts.map +0 -1
  222. package/dist/integrations/react/doctor.js.map +0 -1
  223. package/dist/integrations/react/files.d.ts.map +0 -1
  224. package/dist/integrations/react/files.js.map +0 -1
  225. package/dist/integrations/react/index.d.ts.map +0 -1
  226. package/dist/integrations/react/index.js.map +0 -1
  227. package/dist/integrations/react/manifest.d.ts.map +0 -1
  228. package/dist/integrations/react/manifest.js.map +0 -1
  229. package/dist/integrations/react/patch.d.ts.map +0 -1
  230. package/dist/integrations/react/patch.js.map +0 -1
  231. package/dist/integrations/react/uninstall.d.ts.map +0 -1
  232. package/dist/integrations/react/uninstall.js.map +0 -1
  233. package/dist/integrations/react-native.d.ts.map +0 -1
  234. package/dist/integrations/react-native.js.map +0 -1
  235. package/dist/integrations/ruby.d.ts.map +0 -1
  236. package/dist/integrations/ruby.js.map +0 -1
  237. package/dist/lifecycle/hooks.d.ts.map +0 -1
  238. package/dist/lifecycle/hooks.js.map +0 -1
  239. package/dist/migrations/builtin/dsn-to-api-key.d.ts.map +0 -1
  240. package/dist/migrations/builtin/dsn-to-api-key.js.map +0 -1
  241. package/dist/migrations/engine.d.ts.map +0 -1
  242. package/dist/migrations/engine.js.map +0 -1
  243. package/dist/migrations/index.d.ts.map +0 -1
  244. package/dist/migrations/index.js.map +0 -1
  245. package/dist/output/human.d.ts.map +0 -1
  246. package/dist/output/human.js.map +0 -1
  247. package/dist/output/index.d.ts.map +0 -1
  248. package/dist/output/index.js.map +0 -1
  249. package/dist/output/json.d.ts.map +0 -1
  250. package/dist/output/json.js.map +0 -1
  251. package/dist/output/types.d.ts.map +0 -1
  252. package/dist/output/types.js.map +0 -1
  253. package/dist/patchers/env-file.d.ts.map +0 -1
  254. package/dist/patchers/env-file.js.map +0 -1
  255. package/dist/patchers/js-ast.d.ts.map +0 -1
  256. package/dist/patchers/js-ast.js.map +0 -1
  257. package/dist/patchers/json-file.d.ts.map +0 -1
  258. package/dist/patchers/json-file.js.map +0 -1
  259. package/dist/patchers/markers.d.ts.map +0 -1
  260. package/dist/patchers/markers.js.map +0 -1
  261. package/dist/patchers/source-block.d.ts.map +0 -1
  262. package/dist/patchers/source-block.js.map +0 -1
  263. package/dist/registry/index.d.ts.map +0 -1
  264. package/dist/registry/index.js.map +0 -1
  265. package/dist/registry/manifest.d.ts.map +0 -1
  266. package/dist/registry/manifest.js.map +0 -1
  267. package/dist/registry/registry.d.ts.map +0 -1
  268. package/dist/registry/registry.js.map +0 -1
  269. package/dist/registry/types.d.ts.map +0 -1
  270. package/dist/registry/types.js.map +0 -1
  271. package/dist/security-snapshot/builder.d.ts.map +0 -1
  272. package/dist/security-snapshot/builder.js.map +0 -1
  273. package/dist/security-snapshot/client.d.ts.map +0 -1
  274. package/dist/security-snapshot/client.js.map +0 -1
  275. package/dist/security-snapshot/index.d.ts.map +0 -1
  276. package/dist/security-snapshot/index.js.map +0 -1
  277. package/dist/security-snapshot/types.d.ts.map +0 -1
  278. package/dist/security-snapshot/types.js.map +0 -1
  279. package/dist/snapshot/restore.d.ts.map +0 -1
  280. package/dist/snapshot/restore.js.map +0 -1
  281. package/dist/snapshot/store.d.ts.map +0 -1
  282. package/dist/snapshot/store.js.map +0 -1
  283. package/dist/sourcemaps/index.d.ts.map +0 -1
  284. package/dist/sourcemaps/index.js.map +0 -1
  285. package/dist/sourcemaps/metro.d.ts.map +0 -1
  286. package/dist/sourcemaps/metro.js.map +0 -1
  287. package/dist/sourcemaps/next.d.ts.map +0 -1
  288. package/dist/sourcemaps/next.js.map +0 -1
  289. package/dist/sourcemaps/provider.d.ts.map +0 -1
  290. package/dist/sourcemaps/provider.js.map +0 -1
  291. package/dist/sourcemaps/vite.d.ts.map +0 -1
  292. package/dist/sourcemaps/vite.js.map +0 -1
  293. package/dist/sourcemaps/webpack.d.ts.map +0 -1
  294. package/dist/sourcemaps/webpack.js.map +0 -1
  295. package/dist/telemetry/cli-wrap.d.ts.map +0 -1
  296. package/dist/telemetry/cli-wrap.js.map +0 -1
  297. package/dist/telemetry/http-provider.d.ts.map +0 -1
  298. package/dist/telemetry/http-provider.js.map +0 -1
  299. package/dist/telemetry/index.d.ts.map +0 -1
  300. package/dist/telemetry/index.js.map +0 -1
  301. package/dist/telemetry/install-id.d.ts.map +0 -1
  302. package/dist/telemetry/install-id.js.map +0 -1
  303. package/dist/telemetry/payload.d.ts.map +0 -1
  304. package/dist/telemetry/payload.js.map +0 -1
  305. package/dist/telemetry/provider.d.ts.map +0 -1
  306. package/dist/telemetry/provider.js.map +0 -1
  307. package/dist/telemetry/runtime.d.ts.map +0 -1
  308. package/dist/telemetry/runtime.js.map +0 -1
  309. package/dist/transaction/tx.d.ts.map +0 -1
  310. package/dist/transaction/tx.js.map +0 -1
  311. package/dist/util/error-codes.d.ts.map +0 -1
  312. package/dist/util/error-codes.js.map +0 -1
  313. package/dist/util/errors.d.ts.map +0 -1
  314. package/dist/util/errors.js.map +0 -1
  315. package/dist/util/log.d.ts.map +0 -1
  316. package/dist/util/log.js.map +0 -1
  317. package/dist/util/paths.d.ts.map +0 -1
  318. package/dist/util/paths.js.map +0 -1
  319. package/dist/util/version.d.ts.map +0 -1
  320. package/dist/util/version.js.map +0 -1
  321. package/dist/util/wizard-version.d.ts.map +0 -1
  322. package/dist/util/wizard-version.js.map +0 -1
  323. package/docs/architecture/README.md +0 -58
  324. package/docs/architecture/dry-run.md +0 -34
  325. package/docs/architecture/integration-lifecycle.md +0 -77
  326. package/docs/architecture/patch-pipeline.md +0 -58
  327. package/docs/architecture/registry.md +0 -52
  328. package/docs/architecture/rollback.md +0 -47
  329. package/docs/architecture/sourcemaps.md +0 -53
  330. package/docs/architecture/stability-levels.md +0 -35
  331. package/docs/architecture/transaction.md +0 -51
  332. package/docs/architecture/v02-bare-react-native-spec.md +0 -92
  333. package/docs/architecture/v02-java-host-fix-spec.md +0 -121
  334. package/docs/architecture/v02-sourcemaps-e2e-spec.md +0 -157
  335. package/docs/beta/README.md +0 -17
  336. package/docs/beta/ci.md +0 -122
  337. package/docs/beta/config.md +0 -124
  338. package/docs/beta/doctor.md +0 -79
  339. package/docs/beta/expo.md +0 -69
  340. package/docs/beta/fastify.md +0 -62
  341. package/docs/beta/known-limitations.md +0 -93
  342. package/docs/beta/nestjs.md +0 -69
  343. package/docs/beta/next.md +0 -76
  344. package/docs/beta/node.md +0 -60
  345. package/docs/beta/privacy.md +0 -99
  346. package/docs/beta/quickstart.md +0 -89
  347. package/docs/beta/react.md +0 -91
  348. package/docs/beta/reliability.md +0 -33
  349. package/docs/beta/restore.md +0 -84
  350. package/docs/beta/troubleshooting.md +0 -133
@@ -1,121 +0,0 @@
1
- # v0.2 spec — Java SDK host configurability
2
-
3
- **Status:** PROPOSED. No code in `allstak-java-sdk` has been modified by this wizard release.
4
-
5
- ---
6
-
7
- ## Problem
8
-
9
- The wizard's `--host` / `--ingest-host` / `--dashboard-host` flags allow users
10
- to point the wizard at a self-hosted AllStak deployment. For most SDKs this
11
- flows through to a runtime `host` field on `init()` config.
12
-
13
- For `sa.allstak:allstak-spring-boot-starter` and `sa.allstak:allstak-java-core`,
14
- the host is **hardcoded** to `https://api.allstak.sa` in the SDK source.
15
- Wizard's `--host` is silently a no-op for Java users — events go to the wrong
16
- backend without any error.
17
-
18
- Per the v0.1 implementation report (2026-05-07): "filed below as a v0.2
19
- SDK-side blocker."
20
-
21
- ---
22
-
23
- ## Required SDK-side change
24
-
25
- Target package: `allstak-java-sdk` (the Java SDK in the AllStak SDK
26
- monorepo, sibling of `@allstak/wizard`). The change is small but must land
27
- in the SDK before the wizard's `java` integration can graduate from
28
- `experimental`:
29
-
30
- ### 1. Add a `host` field to `AllStakConfig`
31
-
32
- ```java
33
- public class AllStakConfig {
34
- private String apiKey;
35
- private String environment;
36
- private String release;
37
- private String serviceName;
38
- private String host; // NEW — defaults to "https://api.allstak.sa"
39
- // …existing fields…
40
-
41
- // Builder method:
42
- public Builder host(String host) { this.host = host; return this; }
43
- }
44
- ```
45
-
46
- ### 2. Read `ALLSTAK_HOST` env var in the auto-config
47
-
48
- ```java
49
- @ConfigurationProperties(prefix = "allstak")
50
- public class AllStakProperties {
51
- // existing fields…
52
- private String host = System.getenv().getOrDefault("ALLSTAK_HOST", "https://api.allstak.sa");
53
- }
54
- ```
55
-
56
- ### 3. Spring Boot `application.yml` exposure
57
-
58
- ```yaml
59
- allstak:
60
- api-key: ${ALLSTAK_API_KEY}
61
- host: ${ALLSTAK_HOST:https://api.allstak.sa} # NEW
62
- ```
63
-
64
- ### 4. Pass `host` through to the HTTP transport
65
-
66
- The transport class (likely `AllStakHttpClient` or similar) currently has a
67
- hardcoded base URL. Replace with `config.getHost()`.
68
-
69
- ---
70
-
71
- ## Compatibility implications
72
-
73
- - **Backwards compatible:** existing users who pass nothing get the old
74
- default. No breaking change to the public API.
75
- - **Bumps the minor version** — first SDK release with the field should be
76
- `0.2.0` (not `0.1.x`) per semver.
77
- - **Wizard manifest update:** once shipped, edit
78
- `src/integrations/java.ts` and the manifest's `compatibility` to require
79
- the new minimum version: `{ name: 'sa.allstak:allstak-java-core',
80
- minVersion: '0.2', maxMajorExclusive: null, required: true }`.
81
- - **Wizard's `java` integration warning** can be removed from
82
- `manifest.stabilityNote` once v0.2.0 of the SDK is the minimum.
83
-
84
- ---
85
-
86
- ## Wizard-side validation v0.2 must add
87
-
88
- After the SDK ships:
89
-
90
- 1. Update `src/integrations/java.ts` to actually patch `pom.xml` /
91
- `build.gradle` (currently the integration is `experimental` and only
92
- writes env vars).
93
- 2. Add `fixtures/spring-boot/` with a minimal Spring Boot 3.x project
94
- (`./mvnw test` runs in CI).
95
- 3. Doctor stage `event-ingest` should be runnable against a Java-emitted
96
- event (the existing doctor probe is a generic event so this Just Works
97
- once the SDK respects `--host`).
98
-
99
- ---
100
-
101
- ## Why the wizard does NOT change this from this side
102
-
103
- - CLAUDE.md's monorepo policy: "Do not modify unrelated SDKs unless required."
104
- - Even with permission, modifying a Java SDK from a TypeScript wizard
105
- session has no path to validate the change (no `mvn` in the wizard's CI
106
- matrix).
107
- - The change is small enough (~20 LoC) that it belongs in a focused PR
108
- against `allstak-java-sdk` rather than being smuggled in through wizard
109
- work.
110
-
111
- ---
112
-
113
- ## Action items for whoever picks this up
114
-
115
- 1. Open a ticket against `allstak-java-sdk` referencing this spec.
116
- 2. Implement the `host` field + env-var lookup in the SDK.
117
- 3. Bump SDK to `0.2.0` and publish to Maven Central.
118
- 4. Update `src/integrations/java.ts` manifest to require `0.2+`.
119
- 5. Remove the warning blurb from the manifest's `stabilityNote`.
120
- 6. Move the integration's `stability` from `experimental` toward `beta`
121
- once Spring Boot fixture validation lands.
@@ -1,157 +0,0 @@
1
- # v0.2 spec — Source-maps end-to-end roundtrip
2
-
3
- **Status:** Wizard wires bundler plugins via `SourceMapProvider` (v0.1.1) but
4
- does NOT yet validate the upload → release-binding → symbolication chain
5
- against the live backend. This spec documents what v0.2 must add.
6
-
7
- ---
8
-
9
- ## What works today (v0.1.x)
10
-
11
- - `vite` provider: imports `allstakSourcemaps` from `@allstak/react/vite`, adds it to the real Vite `plugins` array, and enables `build.sourcemap`.
12
- - `next` provider: managed-block hint pointing the user at `withAllStak`.
13
- - `webpack` provider: managed-block hint only.
14
- - `metro` provider: intentionally inert; `detect()` returns false.
15
- - `doctor` reports per-provider `wired` / `drifted` / `missing` state.
16
-
17
- What this gives us: the bundler is correctly configured to produce + upload
18
- source maps. What it does NOT verify: that uploaded maps actually resolve
19
- stack frames in the dashboard.
20
-
21
- ---
22
-
23
- ## Backend contract (verified 2026-05-07)
24
-
25
- Endpoint:
26
-
27
- ```
28
- POST /api/v1/sourcemaps/upload?projectId=:id&release=:version&fileName=:path&bundleUrl=:url
29
- Content-Type: application/json
30
- Authorization: Bearer <user JWT>
31
-
32
- Body: raw .map JSON content (size limit 16 MB)
33
-
34
- Response: 200 OK
35
- {
36
- "id": "uuid",
37
- "release": "1.2.3",
38
- "fileName": "assets/main-abc123.js.map",
39
- "sizeBytes": 12345,
40
- "uploadedAt": "2026-05-07T..."
41
- }
42
- ```
43
-
44
- Server-side resolution: the dashboard's error detail view symbolicates frames
45
- on read by looking up `(projectId, release, fileName)`. Maps are stored
46
- indefinitely (no TTL).
47
-
48
- Symbolication endpoint (used by error-detail UI; we can use it to verify):
49
-
50
- ```
51
- POST /api/v1/sourcemaps/symbolicate
52
- Body: { projectId, release, frames: [stackString] }
53
- Response: { release, totalFrames, resolvedFrames, frames: [{ raw, resolved }] }
54
- ```
55
-
56
- ---
57
-
58
- ## Validation matrix v0.2 must pass
59
-
60
- | # | Check | Pass condition |
61
- |---|-------|----------------|
62
- | 1 | Upload happens during `npm run build` | Per-bundler post-build hook actually POSTs `.map` files. |
63
- | 2 | Release binding | Uploaded maps are queryable by `(projectId, release)`. |
64
- | 3 | Round-trip resolution | Send a synthetic event with a stack frame referencing the uploaded bundle → symbolicate endpoint resolves it to the original source line. |
65
- | 4 | Idempotent upload | Re-running build with same `(release, fileName)` is a no-op or a clean overwrite — never a duplicate. |
66
- | 5 | Auth scope | Upload requires JWT (not API key). Wizard's `requireUserCredentials` already handles this. |
67
-
68
- ---
69
-
70
- ## What v0.2 needs to build
71
-
72
- ### A. A real upload runner
73
-
74
- `src/sourcemaps/upload.ts`:
75
-
76
- ```ts
77
- export async function uploadSourceMap(
78
- apiHost: string,
79
- accessToken: string,
80
- params: {
81
- projectId: string;
82
- release: string;
83
- fileName: string; // e.g. "assets/main-abc123.js"
84
- bundleUrl?: string; // public URL of the bundle (helps dashboard match)
85
- mapContent: string; // raw JSON from .map
86
- },
87
- ): Promise<{ id: string }> {
88
- // Use apiRequest from src/api/http.ts with body=mapContent and contentType='application/json'.
89
- }
90
- ```
91
-
92
- This already has a slot in `src/api/http.ts` (the `contentType` override
93
- parameter exists for exactly this case).
94
-
95
- ### B. A `wizard sourcemaps upload` CLI subcommand
96
-
97
- ```bash
98
- allstak sourcemaps upload \
99
- --project-id <uuid> \
100
- --release "$GIT_SHA" \
101
- --build-dir dist \
102
- --pattern "**/*.js.map"
103
- ```
104
-
105
- Walks `build-dir`, POSTs each `.map` file, prints the upload manifest. Reuses
106
- `getCredentialStore()` + `requireUserCredentials()`.
107
-
108
- ### C. End-to-end doctor stage
109
-
110
- Extend `runDoctor` with a new stage `source-maps-e2e` that runs only with
111
- `--live-probe`:
112
-
113
- 1. Build a tiny known fixture into a temp dir.
114
- 2. Upload its `.map`.
115
- 3. Send a probe event whose stack frame points at the uploaded bundle.
116
- 4. Hit `/api/v1/sourcemaps/symbolicate` and assert `resolvedFrames > 0`.
117
-
118
- ### D. CI matrix entry
119
-
120
- Add a `source-maps-e2e` job to the wizard's CI workflow gated on a
121
- repository secret (`ALLSTAK_E2E_API_KEY` + `ALLSTAK_E2E_PROJECT_ID`).
122
- Without those secrets the job skips.
123
-
124
- ---
125
-
126
- ## Risks
127
-
128
- 1. **`.map` files can be huge** (50MB+ for production bundles). Backend
129
- currently caps at 16MB. v0.2 should either:
130
- - Detect maps larger than the cap and skip with a warning, OR
131
- - Negotiate a larger cap with the backend team.
132
- 2. **`bundleUrl` parameter is optional but improves resolution accuracy.**
133
- The wizard should compute it from the project's deploy target where
134
- possible (Vercel? Netlify? Cloudflare Pages? — heuristics).
135
- 3. **Hermes maps require a different upload format.** Bytecode → JS source
136
- resolution is a separate symbolication pipeline; the v0.1 wizard does NOT
137
- support this. Document explicitly when implementing.
138
- 4. **Token rotation during long uploads.** The user JWT has a 15-minute TTL.
139
- If uploading 100 `.map` files takes >15 minutes, the wizard must
140
- `refreshTokens()` mid-upload. The credential store + auth client already
141
- support this; just needs a wrapper.
142
- 5. **Idempotency**: backend probably accepts the same `(release, fileName)`
143
- twice and overwrites. Verify before relying on this.
144
-
145
- ---
146
-
147
- ## Why this is deferred
148
-
149
- End-to-end validation requires:
150
- - A live AllStak instance (production or staging).
151
- - A real org + project the engineer can write to.
152
- - Credentials with both ingest scope AND user scope.
153
- - The ability to assert dashboard-side symbolication output.
154
-
155
- None of these are available in the v0.1.x wizard test environment. The
156
- provider abstraction landed in v0.1.1 specifically so this work can plug in
157
- without rewriting integrations.
@@ -1,17 +0,0 @@
1
- # `@allstak/wizard@beta` — public beta docs
2
-
3
- | Doc | What it covers |
4
- |-----|----------------|
5
- | [quickstart](./quickstart.md) | Install + run in five minutes |
6
- | [react](./react.md) | React (Vite or CRA) integration |
7
- | [next](./next.md) | Next.js 13+ integration |
8
- | [node](./node.md) | Vanilla Node.js / TypeScript |
9
- | [doctor](./doctor.md) | Deterministic diagnostics + `--live-probe` |
10
- | [restore](./restore.md) | Persistent snapshots + rollback |
11
- | [config](./config.md) | `allstak.config.*` schema + precedence + migrations |
12
- | [ci](./ci.md) | Running unattended in CI |
13
- | [privacy](./privacy.md) | Telemetry contract — what we send and how to disable |
14
- | [known-limitations](./known-limitations.md) | Honest list of what's NOT supported |
15
- | [troubleshooting](./troubleshooting.md) | Common errors mapped to fixes |
16
- | [errors](../errors.md) | Canonical error catalog |
17
- | [architecture](../architecture/) | Internal design docs (registry, transaction, rollback, etc.) |
package/docs/beta/ci.md DELETED
@@ -1,122 +0,0 @@
1
- # Running in CI
2
-
3
- The wizard is designed to run unattended once you've committed an
4
- `allstak.config.*` and stashed an API key.
5
-
6
- ## One-shot setup in a CI step
7
-
8
- ```yaml
9
- # .github/workflows/setup-allstak.yml (excerpt)
10
- - name: Configure AllStak
11
- env:
12
- ALLSTAK_API_KEY: ${{ secrets.ALLSTAK_API_KEY }}
13
- run: |
14
- npx @allstak/wizard@beta -i react -y \
15
- --skip-deps \
16
- --release "$GITHUB_SHA"
17
- ```
18
-
19
- Why these flags:
20
-
21
- - `-y`: skip the confirmation prompt. The wizard refuses with `E_USER_CANCELLED`
22
- in non-interactive mode otherwise.
23
- - `--skip-deps`: don't run a package install — your CI step before this
24
- already installed dependencies.
25
- - `--release "$GITHUB_SHA"`: stamp the deploy commit on every event.
26
-
27
- The CLI exits 0 on success, 2 on `WizardError`, and 130 on user cancel
28
- (impossible in `-y` mode but documented for completeness).
29
-
30
- ## Doctor in CI (smoke check)
31
-
32
- ```yaml
33
- - name: Doctor
34
- env:
35
- ALLSTAK_API_KEY: ${{ secrets.ALLSTAK_API_KEY }}
36
- run: |
37
- npx @allstak/wizard@beta --json doctor \
38
- --live-probe \
39
- --project-id ${{ vars.ALLSTAK_PROJECT_ID }} \
40
- > doctor.json
41
- jq -e '.outcome == "success"' doctor.json
42
- ```
43
-
44
- `--live-probe` sends a real test event and polls for ingestion. Use it as
45
- a deploy gate — if the ingestion path is broken, fail the deploy before
46
- users hit it.
47
-
48
- ## JSON output everywhere
49
-
50
- `--json` writes a single JSON object to stdout (status text goes to stderr).
51
- Pipe it to `jq` or your own parser. Shape:
52
-
53
- ```json
54
- {
55
- "schemaVersion": 1,
56
- "command": "init",
57
- "outcome": "success",
58
- "errorCode": null,
59
- "durationMs": 4200,
60
- "events": [...],
61
- "diff": [...],
62
- "doctor": [...],
63
- "data": { ... }
64
- }
65
- ```
66
-
67
- ## Telemetry in CI
68
-
69
- Telemetry is on by default. To disable:
70
-
71
- ```bash
72
- ALLSTAK_WIZARD_TELEMETRY=0 npx @allstak/wizard@beta ...
73
- # or
74
- npx @allstak/wizard@beta --no-telemetry ...
75
- ```
76
-
77
- See [privacy.md](./privacy.md) for the exact payload shape. Telemetry
78
- failures NEVER abort the wizard.
79
-
80
- ## Snapshot retention in CI
81
-
82
- Each wizard run writes a snapshot to `.allstak-wizard/backups/`. In CI the
83
- default retention of 10 is usually fine. To disable pruning entirely
84
- (useful when you keep a separate audit log):
85
-
86
- ```bash
87
- npx @allstak/wizard@beta -i react -y --snapshot-keep 0
88
- ```
89
-
90
- To skip persistent snapshots entirely (in-process rollback only) — not
91
- currently supported. Plans for v0.2.
92
-
93
- ## Self-hosted in CI
94
-
95
- Either pass flags or commit a config:
96
-
97
- ```bash
98
- npx @allstak/wizard@beta \
99
- --host https://api.allstak.acme.com \
100
- --dashboard-host https://app.allstak.acme.com \
101
- -i react -y
102
- ```
103
-
104
- ## Validating the wizard itself
105
-
106
- The wizard ships a CI matrix workflow under `.github/workflows/ci.yml` that
107
- runs install/repair/uninstall/restore cycles against React+Vite, Next, and
108
- Node fixtures across Node 18/20/22. Fork the workflow if you want to
109
- gate your own CI on it.
110
-
111
- ## Recommended pre-deploy chain
112
-
113
- ```bash
114
- npm ci
115
- npm run test
116
- npx @allstak/wizard@beta config validate
117
- npx @allstak/wizard@beta -i react -y --release "$GIT_SHA"
118
- npx @allstak/wizard@beta --json doctor --live-probe \
119
- --project-id "$ALLSTAK_PROJECT_ID" \
120
- --api-key "$ALLSTAK_API_KEY"
121
- npm run build
122
- ```
@@ -1,124 +0,0 @@
1
- # `allstak.config.*`
2
-
3
- Optional project-level config so you don't repeat `--org`, `--project`,
4
- `--host`, etc. on every wizard invocation. Discovered from the project root
5
- upward; the first matching file wins.
6
-
7
- Loader order (first match wins):
8
-
9
- 1. `allstak.config.ts`
10
- 2. `allstak.config.mts`
11
- 3. `allstak.config.mjs`
12
- 4. `allstak.config.js`
13
- 5. `allstak.config.cjs`
14
- 6. `allstak.config.json`
15
-
16
- `.ts` / `.mts` configs require running the wizard via a TypeScript-aware
17
- launcher (`npx tsx`, `bun`, or `deno run`). Plain `.mjs` / `.json` work
18
- without any toolchain.
19
-
20
- ## Schema
21
-
22
- ```ts
23
- import { defineConfig } from '@allstak/wizard/config';
24
-
25
- export default defineConfig({
26
- schemaVersion: 1,
27
- organization: 'my-org',
28
- project: 'my-project',
29
- environment: 'production',
30
- release: process.env.GIT_SHA,
31
- sourceMaps: {
32
- enabled: true,
33
- ignore: ['node_modules'],
34
- },
35
- selfHosted: {
36
- apiHost: 'https://api.allstak.example',
37
- ingestHost: 'https://api.allstak.example',
38
- dashboardHost: 'https://app.allstak.example',
39
- },
40
- snapshotKeep: 10,
41
- });
42
- ```
43
-
44
- All fields are optional. `defineConfig` is a typed-identity helper; at
45
- runtime it just returns its input.
46
-
47
- ## Precedence
48
-
49
- ```
50
- CLI flag > env var > config file > built-in default
51
- ```
52
-
53
- Examples:
54
-
55
- | Setting | CLI | Env | Config | Default |
56
- |---------|-----|-----|--------|---------|
57
- | organization | `--org` | `ALLSTAK_ORG` | `organization` | — |
58
- | project | `--project` | `ALLSTAK_PROJECT` | `project` | — |
59
- | environment | `--environment` | `ALLSTAK_ENVIRONMENT` | `environment` | `production` |
60
- | release | `--release` | `ALLSTAK_RELEASE` | `release` (string or function) | — |
61
- | api host | `--host` | `ALLSTAK_HOST` | `selfHosted.apiHost` | `https://api.allstak.sa` |
62
- | ingest host | `--ingest-host` | `ALLSTAK_INGEST_HOST` | `selfHosted.ingestHost` | matches api host |
63
- | dashboard host | `--dashboard-host` | `ALLSTAK_DASHBOARD_HOST` | `selfHosted.dashboardHost` | derived from api |
64
- | source-maps | `--skip-source-maps` | — | `sourceMaps.enabled` | `true` |
65
- | snapshot-keep | `--snapshot-keep` | `ALLSTAK_SNAPSHOT_KEEP` | `snapshotKeep` | `10` |
66
-
67
- ## Validation
68
-
69
- ```bash
70
- npx @allstak/wizard@beta config validate
71
- ```
72
-
73
- Reports the discovered file path, the declared `schemaVersion`, and any
74
- deprecation warnings.
75
-
76
- ## Migration
77
-
78
- When the wizard ships a new schema, `allstak config migrate` upgrades your
79
- config in place.
80
-
81
- ```bash
82
- npx @allstak/wizard@beta config migrate # rewrites .json files
83
- npx @allstak/wizard@beta config migrate --dry-run # prints planned changes
84
- ```
85
-
86
- For `.ts` / `.mjs` configs the wizard prints the migrated shape and asks
87
- you to apply it manually — we don't roundtrip TypeScript through an AST
88
- serializer that would mangle your imports and comments.
89
-
90
- The wizard treats a missing `schemaVersion` as `1`. Always declaring it
91
- explicitly future-proofs your config.
92
-
93
- ## Self-hosted
94
-
95
- Wizard never assumes `api.allstak.sa`. For a self-hosted deployment:
96
-
97
- ```ts
98
- export default defineConfig({
99
- schemaVersion: 1,
100
- selfHosted: {
101
- apiHost: 'https://api.allstak.acme.com',
102
- ingestHost: 'https://api.allstak.acme.com',
103
- dashboardHost: 'https://app.allstak.acme.com',
104
- },
105
- });
106
- ```
107
-
108
- CLI users can also pass `--host`, `--ingest-host`, `--dashboard-host`
109
- directly. **Caveat:** the Java SDK currently hardcodes its host; the wizard
110
- will warn when `-i java` runs against a non-default host until the SDK
111
- ships a configurable host field.
112
-
113
- ## Release as a function
114
-
115
- Useful for CI:
116
-
117
- ```ts
118
- release: process.env.GIT_SHA, // string at config-load time
119
- release: () => process.env.GIT_SHA, // function evaluated each run
120
- release: () => execSync('git rev-parse HEAD').toString().trim(),
121
- ```
122
-
123
- If the function returns `undefined`, the wizard falls through the precedence
124
- chain (env, default).
@@ -1,79 +0,0 @@
1
- # `allstak doctor`
2
-
3
- Deterministic diagnostic with named stages. Read-only by default;
4
- `--live-probe` adds a real test event roundtrip.
5
-
6
- ## Stages
7
-
8
- The doctor runs all stages in this fixed order, even when an early stage
9
- fails (so you see the whole picture):
10
-
11
- | Stage | What it checks |
12
- |-------|----------------|
13
- | `auth` | Credentials present + accepted (`--api-key` or stored JWT). Auto-refreshes JWT if it expires soon. |
14
- | `reachability` | Configured host responds (HTTP-level only — no `/health` exists, so it probes `/api/v1/auth/me` and treats `401` as "alive"). |
15
- | `config` | `allstak.config.*` discovered (or absent — both fine). Reports the source path. |
16
- | `integration` | Delegates to the integration's own doctor — env present? entry patched? imports wired? |
17
- | `event-ingest` | (only with `--live-probe`) Sends a real event to `/ingest/v1/errors`, polls `/api/v1/errors` for ingestion. |
18
- | `release-linkage` | Confirms the configured release is attached to the test event. |
19
- | `source-maps` | Asks each registered source-map provider for its wired/drifted/missing state. |
20
-
21
- ## Output
22
-
23
- Each stage emits exactly one line: `pass`, `warn`, `fail`, or `skip`, plus
24
- a fix hint when applicable. `--json` produces a structured array under
25
- `data.stages` for programmatic consumption.
26
-
27
- ```bash
28
- npx @allstak/wizard@beta doctor
29
- ```
30
-
31
- ```
32
- » Doctor
33
- ✓ [auth] Authenticated as me@example.com.
34
- ✓ [reachability] Reached https://api.allstak.sa.
35
- ✓ [config] Loaded config from /repo/allstak.config.ts.
36
- ✓ [integration] react: ok (4 checks)
37
- - [event-ingest] Skipped (pass --live-probe to enable).
38
- - [release-linkage] Skipped: live probe required to verify release linkage end-to-end.
39
- ✓ [source-maps] Wired: vite
40
- ✓ Doctor: setup looks good.
41
- ```
42
-
43
- ## Live probe
44
-
45
- Requires both:
46
-
47
- - `--api-key` (project-scoped — sends the test event),
48
- - `--project-id <uuid>` (the project UUID, visible in the dashboard URL).
49
-
50
- ```bash
51
- npx @allstak/wizard@beta doctor --live-probe \
52
- --api-key ask_live_... \
53
- --project-id 7e8e... \
54
- --live-probe-timeout 60000
55
- ```
56
-
57
- Flow:
58
-
59
- 1. Wizard generates a random fingerprint (`wizard-probe-<6-hex>`).
60
- 2. POSTs an event to `/ingest/v1/errors` with that fingerprint in metadata.
61
- 3. Polls `/api/v1/errors?projectId=&from=&query=<fingerprint>` every 2.5s.
62
- 4. Reports the dashboard URL of the captured event when found.
63
-
64
- If polling times out, the doctor returns `E_INGEST_VERIFY_FAILED` with the
65
- event id you can hand to support.
66
-
67
- ## JSON mode
68
-
69
- ```bash
70
- npx @allstak/wizard@beta --json doctor | jq '.data.stages'
71
- ```
72
-
73
- Each entry is `{ stage, status, detail, fix?, data? }`.
74
-
75
- ## When stages fail
76
-
77
- The CLI exits non-zero (code 2) on any `fail`. `warn` and `skip` do not
78
- change exit code. See [errors.md](../errors.md) for the canonical error
79
- codes each stage can emit.
package/docs/beta/expo.md DELETED
@@ -1,69 +0,0 @@
1
- # Expo (React Native)
2
-
3
- **Stability:** internal experimental. Managed workflow only. The wizard refuses to run on
4
- projects that have already prebuilt to native (i.e. an `ios/` or `android/`
5
- directory at the project root) — bare-via-prebuild has too many failure
6
- modes for an unattended patcher and remains `unsupported` in v0.1.
7
-
8
- ## What you get
9
-
10
- - `@allstak/react-native` installed.
11
- - `.env` populated with `ALLSTAK_API_KEY` (and the standard companions).
12
- - `app.json` gets the AllStak Expo plugin appended to `expo.plugins[]`
13
- (idempotent — re-running does not duplicate the entry).
14
- - `App.tsx` gets:
15
- - An AST-injected `import { AllStakProvider } from '@allstak/react-native'`.
16
- - A managed-block hint reminding you to wrap your root component in
17
- `<AllStakProvider>…</AllStakProvider>`.
18
- - `app.config.{js,ts}` gets the same managed-block hint if it exists.
19
-
20
- ## Run
21
-
22
- ```bash
23
- npx @allstak/wizard@beta -i expo
24
- ```
25
-
26
- ## Compatibility
27
-
28
- - `expo >= 50`. Older versions refused with `E_UNSUPPORTED_VERSION`.
29
- - `react-native >= 0.73`.
30
- - **Managed workflow only.** Bare/prebuilt projects (`ios/` or `android/`
31
- present) are refused with a clear error. To use AllStak in a bare RN
32
- app, follow the SDK README directly — the wizard will not patch native
33
- Xcode/Gradle config in v0.1.
34
-
35
- ## Wiring `<AllStakProvider>`
36
-
37
- The wizard cannot safely AST-edit your component tree (App.tsx shapes
38
- vary too much — function/class/forwardRef/HOC). It places a managed-block
39
- hint and you wire the provider yourself:
40
-
41
- ```tsx
42
- import { AllStakProvider } from '@allstak/react-native';
43
-
44
- export default function App() {
45
- return (
46
- <AllStakProvider apiKey={process.env.EXPO_PUBLIC_ALLSTAK_API_KEY}>
47
- {/* your app */}
48
- </AllStakProvider>
49
- );
50
- }
51
- ```
52
-
53
- `doctor` reports `warn` on `provider-wired` until the live call is detected
54
- (comments inside the managed-block hint are stripped before matching, so
55
- the example above does not produce a false positive).
56
-
57
- ## Capabilities the wizard does NOT claim
58
-
59
- - **No source-map upload wiring.** Metro source-maps are deferred to v0.2
60
- (no-op `skip` in `doctor`).
61
- - **No native edits.** No Podfile / Gradle / Info.plist / AndroidManifest
62
- changes. EAS Build users get the plugin reference in `app.json` and Expo
63
- takes care of the rest.
64
-
65
- ## Verify
66
-
67
- ```bash
68
- npx @allstak/wizard@beta doctor -i expo
69
- ```