@adminide-stack/yantra-mobile 12.0.131 → 12.0.132

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 (149) hide show
  1. package/lib/components/CustomDrawer.js +2 -2
  2. package/lib/components/CustomDrawer.js.map +1 -1
  3. package/lib/features/apps/AppsCatalog.js +7 -1
  4. package/lib/features/apps/AppsCatalog.js.map +1 -1
  5. package/lib/features/apps/nativeSurfaceTwin.js +35 -0
  6. package/lib/features/apps/nativeSurfaceTwin.js.map +1 -0
  7. package/lib/features/canvas/CanvasBoardsGrid.js +49 -49
  8. package/lib/features/canvas/CanvasBoardsGrid.js.map +1 -1
  9. package/lib/features/canvas/CanvasExperience.js +69 -28
  10. package/lib/features/canvas/CanvasExperience.js.map +1 -1
  11. package/lib/features/canvas/audioEditor/AudioWaveform.js +1 -1
  12. package/lib/features/canvas/designCatalog.js +63 -39
  13. package/lib/features/canvas/designCatalog.js.map +1 -1
  14. package/lib/features/canvas/designCategories.js +56 -0
  15. package/lib/features/canvas/designCategories.js.map +1 -1
  16. package/lib/features/canvas/generator/DirectorSheet.js +3 -2
  17. package/lib/features/canvas/generator/DirectorSheet.js.map +1 -1
  18. package/lib/features/canvas/home/HeroComposer.js +165 -76
  19. package/lib/features/canvas/home/HeroComposer.js.map +1 -1
  20. package/lib/features/canvas/home/HeroMonitor.js +75 -46
  21. package/lib/features/canvas/home/HeroMonitor.js.map +1 -1
  22. package/lib/features/canvas/home/TemplatesGallery.js +273 -138
  23. package/lib/features/canvas/home/TemplatesGallery.js.map +1 -1
  24. package/lib/features/canvas/home/templatesGallerySources.js +221 -0
  25. package/lib/features/canvas/home/templatesGallerySources.js.map +1 -0
  26. package/lib/features/canvas/homeWork.js +12 -11
  27. package/lib/features/canvas/homeWork.js.map +1 -1
  28. package/lib/features/canvas/lazyEditors.js +51 -0
  29. package/lib/features/canvas/lazyEditors.js.map +1 -0
  30. package/lib/features/canvas/rankedCatalogSearch.js +33 -23
  31. package/lib/features/canvas/rankedCatalogSearch.js.map +1 -1
  32. package/lib/features/canvas/set/SetViewportWebView.js +1 -1
  33. package/lib/features/canvas/set/agent/tools.js +1 -1
  34. package/lib/features/canvas/studioCatalog.js +2 -2
  35. package/lib/features/canvas/studioCatalog.js.map +1 -1
  36. package/lib/features/canvas/templateSearch.js +8 -1
  37. package/lib/features/canvas/templateSearch.js.map +1 -1
  38. package/lib/features/canvas/videoEditor/BlurBoxOverlay.js +1 -1
  39. package/lib/features/design/DesignEditorExperience.js +103 -29
  40. package/lib/features/design/DesignEditorExperience.js.map +1 -1
  41. package/lib/features/design/DesignExperience.js +4 -3
  42. package/lib/features/design/DesignExperience.js.map +1 -1
  43. package/lib/features/design/doc/aiDesign.js +1 -1
  44. package/lib/features/design/doc/aiDesign.js.map +1 -1
  45. package/lib/features/design/doc/artifacts.js +40 -13
  46. package/lib/features/design/doc/artifacts.js.map +1 -1
  47. package/lib/features/design/doc/chart.js +387 -13
  48. package/lib/features/design/doc/chart.js.map +1 -1
  49. package/lib/features/design/doc/copyStyle.js +47 -0
  50. package/lib/features/design/doc/copyStyle.js.map +1 -0
  51. package/lib/features/design/doc/docOps.js +22 -4
  52. package/lib/features/design/doc/docOps.js.map +1 -1
  53. package/lib/features/design/doc/geometry.js +32 -18
  54. package/lib/features/design/doc/geometry.js.map +1 -1
  55. package/lib/features/design/doc/newDoc.js +5 -1
  56. package/lib/features/design/doc/newDoc.js.map +1 -1
  57. package/lib/features/design/doc/resize.js +101 -0
  58. package/lib/features/design/doc/resize.js.map +1 -0
  59. package/lib/features/design/doc/sizes.js +15 -2
  60. package/lib/features/design/doc/sizes.js.map +1 -1
  61. package/lib/features/design/editor/ChartDataPanel.js +49 -9
  62. package/lib/features/design/editor/ChartDataPanel.js.map +1 -1
  63. package/lib/features/design/editor/CropOverlay.js +1 -1
  64. package/lib/features/design/editor/DesignCanvas.js +14 -13
  65. package/lib/features/design/editor/DesignCanvas.js.map +1 -1
  66. package/lib/features/design/editor/ExportSheet.js +8 -4
  67. package/lib/features/design/editor/ExportSheet.js.map +1 -1
  68. package/lib/features/design/editor/LayerTools.js +37 -5
  69. package/lib/features/design/editor/LayerTools.js.map +1 -1
  70. package/lib/features/design/editor/Slideshow.js +30 -5
  71. package/lib/features/design/editor/Slideshow.js.map +1 -1
  72. package/lib/features/design/editor/useDesignSave.js +21 -36
  73. package/lib/features/design/editor/useDesignSave.js.map +1 -1
  74. package/lib/features/design/export/exportDesign.js +3 -1
  75. package/lib/features/design/export/exportDesign.js.map +1 -1
  76. package/lib/features/design/home/DesignHome.js +7 -2
  77. package/lib/features/design/home/DesignHome.js.map +1 -1
  78. package/lib/features/design/render/DesignPageView.js +1 -1
  79. package/lib/features/design/render/DesignPageView.js.map +1 -1
  80. package/lib/features/design/render/PageCapture.js +11 -10
  81. package/lib/features/design/render/PageCapture.js.map +1 -1
  82. package/lib/features/design/render/fontRegistry.js +27 -3
  83. package/lib/features/design/render/fontRegistry.js.map +1 -1
  84. package/lib/features/design/render/svgParts.js +27 -74
  85. package/lib/features/design/render/svgParts.js.map +1 -1
  86. package/lib/features/devices/brands/qnScale.js +7 -2
  87. package/lib/features/devices/brands/qnScale.js.map +1 -1
  88. package/lib/features/devices/brands/uuids.js +2 -1
  89. package/lib/features/devices/brands/uuids.js.map +1 -1
  90. package/lib/features/devices/devices.js +2 -1
  91. package/lib/features/devices/devices.js.map +1 -1
  92. package/lib/features/docs/DocBlockRow.js +1 -1
  93. package/lib/features/docs/docArtifacts.js +2 -2
  94. package/lib/features/docs/docArtifacts.js.map +1 -1
  95. package/lib/features/health/healthSync.js +3 -1
  96. package/lib/features/health/healthSync.js.map +1 -1
  97. package/lib/features/health/nativeHealth.js +8 -0
  98. package/lib/features/health/nativeHealth.js.map +1 -0
  99. package/lib/features/links/openInApp.js +11 -1
  100. package/lib/features/links/openInApp.js.map +1 -1
  101. package/lib/features/webbuilder/WebBuilderExperience.js +135 -28
  102. package/lib/features/webbuilder/WebBuilderExperience.js.map +1 -1
  103. package/lib/features/webbuilder/buildFragments.js +14 -6
  104. package/lib/features/webbuilder/buildFragments.js.map +1 -1
  105. package/lib/features/webbuilder/components/PreviewFrame.js +28 -3
  106. package/lib/features/webbuilder/components/PreviewFrame.js.map +1 -1
  107. package/lib/features/webbuilder/components/PreviewScreen.js +1 -1
  108. package/lib/features/webbuilder/components/PreviewScreen.js.map +1 -1
  109. package/lib/features/webbuilder/components/ProjectChat.js +24 -5
  110. package/lib/features/webbuilder/components/ProjectChat.js.map +1 -1
  111. package/lib/features/webbuilder/components/ProjectsScreen.js +18 -2
  112. package/lib/features/webbuilder/components/ProjectsScreen.js.map +1 -1
  113. package/lib/features/webbuilder/components/ui.js +20 -6
  114. package/lib/features/webbuilder/components/ui.js.map +1 -1
  115. package/lib/features/webbuilder/exportCode.js +52 -0
  116. package/lib/features/webbuilder/exportCode.js.map +1 -0
  117. package/lib/features/webbuilder/siteAddress.js +71 -0
  118. package/lib/features/webbuilder/siteAddress.js.map +1 -0
  119. package/lib/features/webbuilder/widgetBlocks.js +30 -0
  120. package/lib/features/webbuilder/widgetBlocks.js.map +1 -0
  121. package/lib/screens/Chat/index.js +5 -6
  122. package/lib/screens/Chat/index.js.map +1 -1
  123. package/lib/screens/ChatHistory/index.js +3 -2
  124. package/lib/screens/ChatHistory/index.js.map +1 -1
  125. package/lib/screens/Home/HomeScreen.js +20 -4
  126. package/lib/screens/Home/HomeScreen.js.map +1 -1
  127. package/lib/screens/Home/components/WebBuilderCodePrewarm.js +18 -0
  128. package/lib/screens/Home/components/WebBuilderCodePrewarm.js.map +1 -0
  129. package/lib/screens/WebBuilderNative/index.js +1 -1
  130. package/lib/screens/WebBuilderNative/index.js.map +1 -1
  131. package/lib/screens/WebBuilderNative/keepAlive.js +112 -0
  132. package/lib/screens/WebBuilderNative/keepAlive.js.map +1 -0
  133. package/lib/screens/WebBuilderNative/runningBuilds.js +40 -0
  134. package/lib/screens/WebBuilderNative/runningBuilds.js.map +1 -0
  135. package/lib/screens/WebBuilderNative/useSandboxKeepAlive.js +57 -0
  136. package/lib/screens/WebBuilderNative/useSandboxKeepAlive.js.map +1 -0
  137. package/lib/screens/WebBuilderNative/useWebBuilderGallery.js +73 -14
  138. package/lib/screens/WebBuilderNative/useWebBuilderGallery.js.map +1 -1
  139. package/lib/screens/WebBuilderNative/useWebBuilderHost.js +143 -34
  140. package/lib/screens/WebBuilderNative/useWebBuilderHost.js.map +1 -1
  141. package/lib/screens/WebBuilderNative/useWebBuilderJobs.js +17 -5
  142. package/lib/screens/WebBuilderNative/useWebBuilderJobs.js.map +1 -1
  143. package/lib/screens/WebBuilderNative/versionUndo.js +144 -0
  144. package/lib/screens/WebBuilderNative/versionUndo.js.map +1 -0
  145. package/lib/screens/WebBuilderNative/webbuilderSnapshotKey.js +1 -0
  146. package/lib/screens/WebBuilderNative/webbuilderSnapshotKey.js.map +1 -0
  147. package/lib/screens/WebBuilderNative/webbuilderTransport.js +90 -6
  148. package/lib/screens/WebBuilderNative/webbuilderTransport.js.map +1 -1
  149. package/package.json +4 -4
@@ -1,4 +1,4 @@
1
- import {createRemoteUploadMedia,createRemoteConnectorExec}from'../../features/canvas/videoEditor/remoteMediaClient.js';import {WEBBUILDER_CONNECTOR_ID,WEBBUILDER_TRIGGER_WORKFLOW_ACTION}from'../../features/webbuilder/workflow.js';var __defProp = Object.defineProperty;
1
+ import {createRemoteUploadMedia,createRemoteConnectorExec}from'../../features/canvas/videoEditor/remoteMediaClient.js';import {WEBBUILDER_CONNECTOR_ID,WEBBUILDER_TRIGGER_WORKFLOW_ACTION}from'../../features/webbuilder/workflow.js';import {WEBBUILDER_EXTEND_ACTION,KEEPALIVE_EXTEND_MS,extendOutcome}from'./keepAlive.js';var __defProp = Object.defineProperty;
2
2
  var __getOwnPropSymbols = Object.getOwnPropertySymbols;
3
3
  var __hasOwnProp = Object.prototype.hasOwnProperty;
4
4
  var __propIsEnum = Object.prototype.propertyIsEnumerable;
@@ -53,7 +53,35 @@ async function triggerBuild(token, indexUrl, params) {
53
53
  };
54
54
  }
55
55
  }
56
+ const STORAGE_CONNECTOR_ID = "yantra-storage";
57
+ const PUBLIC_URL_ACTION = "YANTRA_STORAGE_GET_PUBLIC_URL";
58
+ const DOWNLOAD_LINK_ACTION = "YANTRA_STORAGE_CREATE_DOWNLOAD_LINK";
59
+ const DOWNLOAD_LINK_EXPIRES_SEC = 7 * 24 * 60 * 60;
60
+ const RESOLVE_TIMEOUT_MS = 3e4;
61
+ function httpsLinkFrom(data, key) {
62
+ const rec = data && typeof data === "object" ? data : {};
63
+ const inner = rec.data && typeof rec.data === "object" ? rec.data : rec;
64
+ const url = inner[key];
65
+ return typeof url === "string" && /^https:\/\//i.test(url.trim()) ? url.trim() : null;
66
+ }
67
+ async function resolveFetchableUrl(exec, objectUrl) {
68
+ const attempt = async (action, params, key) => {
69
+ const r = await exec(STORAGE_CONNECTOR_ID, action, params, {
70
+ timeoutMs: RESOLVE_TIMEOUT_MS
71
+ }).catch(() => null);
72
+ return r && r.successful !== false ? httpsLinkFrom(r.data, key) : null;
73
+ };
74
+ const cdn = await attempt(PUBLIC_URL_ACTION, {
75
+ s3KeyOrUrl: objectUrl
76
+ }, "publicUrl");
77
+ if (cdn) return cdn;
78
+ return attempt(DOWNLOAD_LINK_ACTION, {
79
+ s3KeyOrUrl: objectUrl,
80
+ expiresIn: DOWNLOAD_LINK_EXPIRES_SEC
81
+ }, "downloadUrl");
82
+ }
56
83
  async function uploadAttachment(token, indexUrl, file) {
84
+ var _a;
57
85
  if (file.url && /^https?:\/\//i.test(file.url)) return {
58
86
  name: file.name,
59
87
  url: file.url,
@@ -62,7 +90,8 @@ async function uploadAttachment(token, indexUrl, file) {
62
90
  const local = file.url || file.dataUrl;
63
91
  if (!local) return null;
64
92
  try {
65
- const url = await createRemoteUploadMedia(token, indexUrl)(local);
93
+ const objectUrl = await createRemoteUploadMedia(token, indexUrl)(local);
94
+ const url = (_a = await resolveFetchableUrl(createRemoteConnectorExec(token, indexUrl), objectUrl)) != null ? _a : objectUrl;
66
95
  return {
67
96
  name: file.name,
68
97
  url,
@@ -78,7 +107,32 @@ const SANDBOX_GONE_RE = /Sandbox Not Found|Paused sandbox .+ not found|sandbox \
78
107
  const LIVE_PREVIEW_RE = /^https?:\/\/\d+-[a-z0-9]+[^\s"']*/i;
79
108
  const RESUME_TIMEOUT_MS = 3 * 60 * 1e3;
80
109
  const CREATE_TIMEOUT_MS = 10 * 60 * 1e3;
81
- const SANDBOX_BOUND = /* @__PURE__ */ new Set(["WEBBUILDER_CONNECT", "WEBBUILDER_START", "WEBBUILDER_LIST_VERSIONS", "WEBBUILDER_CREATE_SANDBOX", "WEBBUILDER_READ_FILE", "WEBBUILDER_WRITE_FILES", "WEBBUILDER_RUN_COMMAND", "WEBBUILDER_SNAPSHOT", "WEBBUILDER_RESTORE_VERSION", "WEBBUILDER_BOOKMARK_VERSION", "WEBBUILDER_UPLOAD_ASSET", "WEBBUILDER_RELOAD_GITHUB", "WEBBUILDER_CLONE"]);
110
+ const SANDBOX_BOUND = /* @__PURE__ */ new Set([
111
+ "WEBBUILDER_EXTEND",
112
+ "WEBBUILDER_CONNECT",
113
+ "WEBBUILDER_START",
114
+ "WEBBUILDER_LIST_VERSIONS",
115
+ "WEBBUILDER_CREATE_SANDBOX",
116
+ "WEBBUILDER_READ_FILE",
117
+ "WEBBUILDER_WRITE_FILES",
118
+ "WEBBUILDER_RUN_COMMAND",
119
+ "WEBBUILDER_SNAPSHOT",
120
+ "WEBBUILDER_RESTORE_VERSION",
121
+ "WEBBUILDER_BOOKMARK_VERSION",
122
+ "WEBBUILDER_UPLOAD_ASSET",
123
+ "WEBBUILDER_RELOAD_GITHUB",
124
+ "WEBBUILDER_CLONE",
125
+ // Editor+ on the server; an older server refuses them and callers fall back.
126
+ "WEBBUILDER_EXPORT_ZIP",
127
+ "WEBBUILDER_LIST_FILES",
128
+ "WEBBUILDER_FINISH",
129
+ "WEBBUILDER_DEPLOY_FLY",
130
+ "WEBBUILDER_DEPLOY_VERCEL",
131
+ "WEBBUILDER_DEPLOY_NETLIFY",
132
+ // The server picks the repo and attaches the caller's own GitHub credential.
133
+ "WEBBUILDER_PUSH_GITHUB",
134
+ "WEBBUILDER_PULL_GITHUB"
135
+ ]);
82
136
  const OUTDATED_SERVER_RE = /Cannot query field|Unknown argument|Unknown type|is not defined by type|Cannot return null for non-nullable field Query\.aiCode/i;
83
137
  function withoutKey(rec) {
84
138
  const _a = rec, {
@@ -169,7 +223,23 @@ function livePreviewUrl(data) {
169
223
  }
170
224
  return null;
171
225
  }
172
- async function restoreSandbox(call, target) {
226
+ async function waitForPreview(url, withinMs = 2e4) {
227
+ const until = Date.now() + withinMs;
228
+ while (Date.now() < until) {
229
+ try {
230
+ const res = await fetch(url, {
231
+ method: "GET"
232
+ });
233
+ if (res.status < 500) return true;
234
+ } catch (e) {
235
+ }
236
+ await new Promise((resolve) => {
237
+ setTimeout(resolve, 2e3);
238
+ });
239
+ }
240
+ return false;
241
+ }
242
+ async function restoreSandbox(call, target, probe = waitForPreview) {
173
243
  var _a, _b, _c;
174
244
  const run = async (action, params, timeoutMs = RESUME_TIMEOUT_MS) => {
175
245
  try {
@@ -224,7 +294,21 @@ async function restoreSandbox(call, target) {
224
294
  url: seen
225
295
  };
226
296
  };
227
- const first = await wake(target.sandboxId);
297
+ const extended = await call(WEBBUILDER_EXTEND_ACTION, {
298
+ sandbox_id: target.sandboxId,
299
+ timeoutMs: KEEPALIVE_EXTEND_MS
300
+ }, 9e4).catch((err) => ({
301
+ successful: false,
302
+ error: err instanceof Error ? err.message : String(err)
303
+ }));
304
+ const extendState = extendOutcome(extended);
305
+ const previewUrl = target.previewUrl || `https://3000-${target.sandboxId}.e2b.dev`;
306
+ if ((extendState === "resumed" || extendState === "alive") && await probe(previewUrl)) return {
307
+ outcome: "ok"
308
+ };
309
+ const first = extendState === "gone" ? {
310
+ outcome: "gone"
311
+ } : await wake(target.sandboxId);
228
312
  if (first.outcome !== "gone") return {
229
313
  outcome: first.outcome
230
314
  };
@@ -251,4 +335,4 @@ async function restoreSandbox(call, target) {
251
335
  sandboxId: nextId,
252
336
  previewUrl: second.url || createdUrl || `https://3000-${nextId}.e2b.dev`
253
337
  };
254
- }export{OUTDATED_SERVER_RE,createSandboxRouter,directSandboxRun,proxyResult,restoreSandbox,triggerBuild,uploadAttachment};//# sourceMappingURL=webbuilderTransport.js.map
338
+ }export{DOWNLOAD_LINK_ACTION,OUTDATED_SERVER_RE,PUBLIC_URL_ACTION,STORAGE_CONNECTOR_ID,createSandboxRouter,directSandboxRun,proxyResult,resolveFetchableUrl,restoreSandbox,triggerBuild,uploadAttachment,waitForPreview};//# sourceMappingURL=webbuilderTransport.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"webbuilderTransport.js","sources":["../../../src/screens/WebBuilderNative/webbuilderTransport.ts"],"sourcesContent":["/**\n * The calls the native Web Builder makes the way the web surface makes them: the\n * build workflow trigger on cdecli-agent and turn attachments, both on the app's\n * surface session - the same JWT the web surface holds as its cdecli token.\n */\nimport {\n createRemoteConnectorExec,\n createRemoteUploadMedia,\n} from '../../features/canvas/videoEditor/remoteMediaClient';\nimport { WEBBUILDER_CONNECTOR_ID, WEBBUILDER_TRIGGER_WORKFLOW_ACTION } from '../../features/webbuilder/workflow';\n\n/** The trigger answers in seconds; the build itself runs on and reports on the chat. */\nconst TRIGGER_TIMEOUT_MS = 90_000;\n\n/** `error` and `auth` (the agent refused the session) are set when `ok` is false. */\nexport interface TriggerOutcome {\n ok: boolean;\n error?: string;\n auth?: boolean;\n}\n\n/** Runs `yantra-webbuilder/WEBBUILDER_TRIGGER_WORKFLOW` with the web's params. */\nexport async function triggerBuild(\n token: string,\n indexUrl: string,\n params: Record<string, unknown>,\n): Promise<TriggerOutcome> {\n try {\n const result = await createRemoteConnectorExec(token, indexUrl)(\n WEBBUILDER_CONNECTOR_ID,\n WEBBUILDER_TRIGGER_WORKFLOW_ACTION,\n params,\n { timeoutMs: TRIGGER_TIMEOUT_MS },\n );\n if (result.successful === false) {\n const error = String(result.error ?? 'The build did not start.');\n return { ok: false, error, auth: /\\b401\\b|unauthori[sz]ed/i.test(error) };\n }\n return { ok: true };\n } catch (err) {\n const error = err instanceof Error ? err.message : String(err);\n return { ok: false, error, auth: /\\b401\\b|unauthori[sz]ed/i.test(error) };\n }\n}\n\n/** A photo or file for the turn as a URL the workflow can fetch (the web posts URLs, never base64). */\nexport async function uploadAttachment(\n token: string,\n indexUrl: string,\n file: { url?: string; dataUrl?: string; name: string; mimeType?: string },\n): Promise<{ name: string; url: string; mimeType?: string } | null> {\n if (file.url && /^https?:\\/\\//i.test(file.url)) return { name: file.name, url: file.url, mimeType: file.mimeType };\n const local = file.url || file.dataUrl;\n if (!local) return null;\n try {\n const url = await createRemoteUploadMedia(token, indexUrl)(local);\n return { name: file.name, url, mimeType: file.mimeType };\n } catch (err) {\n console.warn('[WebBuilderNative] attachment upload failed:', err);\n return null;\n }\n}\n\n/** The folders a build's project may live in (web `PREVIEW_START_WORKDIRS`). */\nconst PREVIEW_START_WORKDIRS = ['/home/yantra/repo', '/home/user/repo', '/home/yantra', '/home/user'];\n/** The sandbox was reclaimed, not paused (web `SANDBOX_GONE_RE`). */\nconst SANDBOX_GONE_RE =\n /Sandbox Not Found|Paused sandbox .+ not found|sandbox \\S+ not found|sandbox .*wasn'?t found|not found \\(404\\)|no sandbox found|does not exist|sandbox.*expired|sandbox.*killed|probably not running anymore|not running anymore|cannot be resumed|was (?:killed|deleted|destroyed)/i;\nconst LIVE_PREVIEW_RE = /^https?:\\/\\/\\d+-[a-z0-9]+[^\\s\"']*/i;\nconst RESUME_TIMEOUT_MS = 3 * 60 * 1000;\n/** Booting a restore point into a new VM takes longer (web: 10 min for CREATE). */\nconst CREATE_TIMEOUT_MS = 10 * 60 * 1000;\n\nexport type ResumeOutcome = 'ok' | 'gone' | 'failed';\n\n/** What bringing a preview back did; `sandboxId`/`previewUrl` are set when a new sandbox replaced it. */\nexport interface RestoreResult {\n outcome: ResumeOutcome;\n sandboxId?: string;\n previewUrl?: string;\n}\n\n/** One connector call's answer, the same on both paths: `{ successful, data, error }`. */\nexport interface SandboxCallResult {\n successful: boolean;\n data?: unknown;\n error?: string;\n}\n\n/** `outdated`: this server has no proxy field; otherwise `result` is the connector's answer. */\nexport interface SandboxProxyAnswer {\n outdated: boolean;\n result?: SandboxCallResult;\n}\n\n/**\n * The guarded proxy `aiCodeSandboxAction(channelId, sandboxId, action, params)`:\n * the server checks the caller's role and that the sandbox belongs to the\n * channel, then adds the sandbox key from the channel's settings (an agent\n * build's key included). `outdated` = this server has no such field.\n */\nexport type SandboxProxyCall = (\n variables: { channelId: string; sandboxId: string; action: string; params: Record<string, unknown> },\n timeoutMs: number,\n) => Promise<SandboxProxyAnswer>;\n\nexport type SandboxRun = (\n action: string,\n params: Record<string, unknown>,\n timeoutMs: number,\n) => Promise<SandboxCallResult>;\n\n/** Connector actions the proxy allows (web `sandboxProxy.SANDBOX_BOUND`); the rest go direct. */\nconst SANDBOX_BOUND = new Set([\n 'WEBBUILDER_CONNECT',\n 'WEBBUILDER_START',\n 'WEBBUILDER_LIST_VERSIONS',\n 'WEBBUILDER_CREATE_SANDBOX',\n 'WEBBUILDER_READ_FILE',\n 'WEBBUILDER_WRITE_FILES',\n 'WEBBUILDER_RUN_COMMAND',\n 'WEBBUILDER_SNAPSHOT',\n 'WEBBUILDER_RESTORE_VERSION',\n 'WEBBUILDER_BOOKMARK_VERSION',\n 'WEBBUILDER_UPLOAD_ASSET',\n 'WEBBUILDER_RELOAD_GITHUB',\n 'WEBBUILDER_CLONE',\n]);\n\n/** A server without the proxy (web `isOutdatedServerError`). */\nexport const OUTDATED_SERVER_RE =\n /Cannot query field|Unknown argument|Unknown type|is not defined by type|Cannot return null for non-nullable field Query\\.aiCode/i;\n\nfunction withoutKey(rec: Record<string, unknown>): Record<string, unknown> {\n const { sandboxKey: _key, sandbox_key: _key2, ...rest } = rec;\n return rest;\n}\n\n/** The proxy's JSON answer as a connector result, with any key dropped (web `proxyResult`). */\nexport function proxyResult(raw: unknown): SandboxCallResult {\n let value = raw;\n if (typeof value === 'string') {\n try {\n value = JSON.parse(value);\n } catch {\n value = null;\n }\n }\n if (!value || typeof value !== 'object' || Array.isArray(value)) {\n return { successful: false, error: 'The server sent an empty answer.' };\n }\n const rec = value as Record<string, unknown>;\n const data =\n rec.data && typeof rec.data === 'object' && !Array.isArray(rec.data)\n ? withoutKey(rec.data as Record<string, unknown>)\n : rec.data;\n const error = typeof rec.error === 'string' && rec.error ? rec.error : undefined;\n return { successful: rec.successful === true, data, ...(error ? { error } : {}) };\n}\n\n/**\n * Every sandbox call for one site, the web's `createSandboxRouter`: through the\n * proxy when the server has it (the app never holds a sandbox key), else straight\n * to cdecli-agent. A server found without the proxy stays direct for the session.\n */\nexport function createSandboxRouter(deps: {\n channelId: string | null | undefined;\n proxy: SandboxProxyCall | null;\n direct: SandboxRun;\n proxyMissing: { current: boolean };\n}): SandboxRun {\n const channelId = String(deps.channelId ?? '').trim();\n const { proxyMissing } = deps;\n return async (action, rawParams, timeoutMs) => {\n const params = withoutKey(rawParams);\n const sandboxId = String(params.sandbox_id ?? '').trim();\n const isCreate = action === 'WEBBUILDER_CREATE_SANDBOX';\n const proxied =\n deps.proxy && !proxyMissing.current && channelId && SANDBOX_BOUND.has(action) && (sandboxId || isCreate);\n if (!proxied || !deps.proxy) return deps.direct(action, params, timeoutMs);\n const answer = await deps.proxy({ channelId, sandboxId, action, params }, timeoutMs);\n if (!answer.outdated) return answer.result ?? { successful: false, error: 'The server sent an empty answer.' };\n proxyMissing.current = true;\n return deps.direct(action, params, timeoutMs);\n };\n}\n\n/** The direct path: `yantra-webbuilder` on cdecli-agent with the surface session. */\nexport function directSandboxRun(token: string, indexUrl: string): SandboxRun {\n const exec = createRemoteConnectorExec(token, indexUrl);\n return async (action, params, timeoutMs) => {\n const result = await exec(WEBBUILDER_CONNECTOR_ID, action, params, { timeoutMs });\n return {\n successful: result.successful !== false,\n data: result.data,\n ...(typeof result.error === 'string' ? { error: result.error } : {}),\n };\n };\n}\n\n/** The connector's own output (web `connectorData`: the result's `data`, or `data.data`). */\nfunction connectorData(result: unknown): Record<string, unknown> {\n const raw = (result as { data?: unknown } | null)?.data;\n if (!raw || typeof raw !== 'object') return {};\n const rec = raw as Record<string, unknown>;\n return rec.data && typeof rec.data === 'object' && !Array.isArray(rec.data)\n ? (rec.data as Record<string, unknown>)\n : rec;\n}\n\nfunction livePreviewUrl(data: Record<string, unknown>): string | null {\n for (const value of [data.previewUrl, data.preview_url, data.sandboxUrl, data.sandbox_url, data.url]) {\n const match = typeof value === 'string' ? LIVE_PREVIEW_RE.exec(value.trim()) : null;\n if (match) return match[0];\n }\n return null;\n}\n\n/**\n * Brings a sleeping or expired preview back without the agent, in the web's\n * `ensurePreview` order: resume the sandbox (`WEBBUILDER_CONNECT` with\n * `autoResume`) and start its dev server (`WEBBUILDER_START`) in the folder the\n * project lives in; when E2B reclaimed it, boot the build's restore point into a\n * new sandbox (`WEBBUILDER_CREATE_SANDBOX` from `snapshotId`) and start that.\n * `gone` means it is reclaimed and there is no restore point to boot.\n */\nexport async function restoreSandbox(\n call: SandboxRun,\n target: { sandboxId: string; snapshotId?: string | null; templateId?: string | null },\n): Promise<RestoreResult> {\n const run = async (action: string, params: Record<string, unknown>, timeoutMs = RESUME_TIMEOUT_MS) => {\n try {\n const result = await call(action, params, timeoutMs);\n const blob = JSON.stringify(result);\n return {\n ok: result.successful !== false,\n gone: SANDBOX_GONE_RE.test(blob),\n blob,\n data: connectorData(result),\n };\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n return { ok: false, gone: SANDBOX_GONE_RE.test(message), blob: message, data: {} };\n }\n };\n const builder = /next/i.test(target.templateId ?? '') ? 'next' : 'vite';\n /** CONNECT then START across the workdirs; the URL is the one START (or CONNECT) reports. */\n const wake = async (sandboxId: string): Promise<{ outcome: ResumeOutcome; url: string | null }> => {\n const connected = await run('WEBBUILDER_CONNECT', { sandbox_id: sandboxId, autoResume: true, builder });\n if (connected.gone) return { outcome: 'gone', url: null };\n const seen = livePreviewUrl(connected.data);\n for (const workDir of PREVIEW_START_WORKDIRS) {\n // eslint-disable-next-line no-await-in-loop -- one folder at a time, like the web\n const started = await run('WEBBUILDER_START', { sandbox_id: sandboxId, workDir, builder });\n if (started.gone) return { outcome: 'gone', url: null };\n if (started.ok) return { outcome: 'ok', url: livePreviewUrl(started.data) || seen };\n // Only \"no package.json here\" means try the next folder.\n if (!/no package\\.json/i.test(started.blob)) break;\n }\n return { outcome: connected.ok ? 'ok' : 'failed', url: seen };\n };\n\n const first = await wake(target.sandboxId);\n if (first.outcome !== 'gone') return { outcome: first.outcome };\n const snapshotId = (target.snapshotId ?? '').trim();\n if (!snapshotId) return { outcome: 'gone' };\n\n // waitBridge:false - the new id comes back as soon as E2B creates the VM; CONNECT waits for the daemon.\n const created = await run(\n 'WEBBUILDER_CREATE_SANDBOX',\n { snapshotId, builder, waitBridge: false },\n CREATE_TIMEOUT_MS,\n );\n const createdUrl = livePreviewUrl(created.data);\n const nextId =\n String(created.data.sandboxId || created.data.sandbox_id || created.data.id || '').trim() ||\n /^https?:\\/\\/\\d+-([a-z0-9]+)/i.exec(createdUrl ?? '')?.[1] ||\n '';\n if (!created.ok || !nextId) return { outcome: 'gone' };\n const second = await wake(nextId);\n if (second.outcome !== 'ok') return { outcome: 'failed' };\n return {\n outcome: 'ok',\n sandboxId: nextId,\n previewUrl: second.url || createdUrl || `https://3000-${nextId}.e2b.dev`,\n };\n}\n"],"names":["_a"],"mappings":"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"}
1
+ {"version":3,"file":"webbuilderTransport.js","sources":["../../../src/screens/WebBuilderNative/webbuilderTransport.ts"],"sourcesContent":["/**\n * The calls the native Web Builder makes the way the web surface makes them: the\n * build workflow trigger on cdecli-agent and turn attachments, both on the app's\n * surface session - the same JWT the web surface holds as its cdecli token.\n */\nimport {\n createRemoteConnectorExec,\n createRemoteUploadMedia,\n} from '../../features/canvas/videoEditor/remoteMediaClient';\nimport { WEBBUILDER_CONNECTOR_ID, WEBBUILDER_TRIGGER_WORKFLOW_ACTION } from '../../features/webbuilder/workflow';\nimport { KEEPALIVE_EXTEND_MS, WEBBUILDER_EXTEND_ACTION, extendOutcome } from './keepAlive';\n\n/** The trigger answers in seconds; the build itself runs on and reports on the chat. */\nconst TRIGGER_TIMEOUT_MS = 90_000;\n\n/** `error` and `auth` (the agent refused the session) are set when `ok` is false. */\nexport interface TriggerOutcome {\n ok: boolean;\n error?: string;\n auth?: boolean;\n}\n\n/** Runs `yantra-webbuilder/WEBBUILDER_TRIGGER_WORKFLOW` with the web's params. */\nexport async function triggerBuild(\n token: string,\n indexUrl: string,\n params: Record<string, unknown>,\n): Promise<TriggerOutcome> {\n try {\n const result = await createRemoteConnectorExec(token, indexUrl)(\n WEBBUILDER_CONNECTOR_ID,\n WEBBUILDER_TRIGGER_WORKFLOW_ACTION,\n params,\n { timeoutMs: TRIGGER_TIMEOUT_MS },\n );\n if (result.successful === false) {\n const error = String(result.error ?? 'The build did not start.');\n return { ok: false, error, auth: /\\b401\\b|unauthori[sz]ed/i.test(error) };\n }\n return { ok: true };\n } catch (err) {\n const error = err instanceof Error ? err.message : String(err);\n return { ok: false, error, auth: /\\b401\\b|unauthori[sz]ed/i.test(error) };\n }\n}\n\nexport const STORAGE_CONNECTOR_ID = 'yantra-storage';\nexport const PUBLIC_URL_ACTION = 'YANTRA_STORAGE_GET_PUBLIC_URL';\nexport const DOWNLOAD_LINK_ACTION = 'YANTRA_STORAGE_CREATE_DOWNLOAD_LINK';\n/** SigV4 presigned URLs cap at 7 days. */\nconst DOWNLOAD_LINK_EXPIRES_SEC = 7 * 24 * 60 * 60;\nconst RESOLVE_TIMEOUT_MS = 30_000;\n\nfunction httpsLinkFrom(data: unknown, key: 'publicUrl' | 'downloadUrl'): string | null {\n const rec = (data && typeof data === 'object' ? data : {}) as Record<string, unknown>;\n const inner = (rec.data && typeof rec.data === 'object' ? rec.data : rec) as Record<string, unknown>;\n const url = inner[key];\n return typeof url === 'string' && /^https:\\/\\//i.test(url.trim()) ? url.trim() : null;\n}\n\n/**\n * An uploaded object is private: its CDN link, else a 7-day signed link; null when\n * neither resolves (web `chat/uploadAttachments.resolveFetchableUrl`, #459).\n */\nexport async function resolveFetchableUrl(\n exec: (\n connector: string,\n action: string,\n params: Record<string, unknown>,\n options?: { timeoutMs?: number },\n ) => Promise<Record<string, unknown>>,\n objectUrl: string,\n): Promise<string | null> {\n const attempt = async (action: string, params: Record<string, unknown>, key: 'publicUrl' | 'downloadUrl') => {\n const r = await exec(STORAGE_CONNECTOR_ID, action, params, { timeoutMs: RESOLVE_TIMEOUT_MS }).catch(() => null);\n return r && r.successful !== false ? httpsLinkFrom(r.data, key) : null;\n };\n const cdn = await attempt(PUBLIC_URL_ACTION, { s3KeyOrUrl: objectUrl }, 'publicUrl');\n if (cdn) return cdn;\n return attempt(\n DOWNLOAD_LINK_ACTION,\n { s3KeyOrUrl: objectUrl, expiresIn: DOWNLOAD_LINK_EXPIRES_SEC },\n 'downloadUrl',\n );\n}\n\n/** A photo or file for the turn as a URL the workflow can fetch (the web posts URLs, never base64). */\nexport async function uploadAttachment(\n token: string,\n indexUrl: string,\n file: { url?: string; dataUrl?: string; name: string; mimeType?: string },\n): Promise<{ name: string; url: string; mimeType?: string } | null> {\n if (file.url && /^https?:\\/\\//i.test(file.url)) return { name: file.name, url: file.url, mimeType: file.mimeType };\n const local = file.url || file.dataUrl;\n if (!local) return null;\n try {\n const objectUrl = await createRemoteUploadMedia(token, indexUrl)(local);\n // The object URL answers 403 publicly, so the agent could not fetch it (web #459).\n const url = (await resolveFetchableUrl(createRemoteConnectorExec(token, indexUrl), objectUrl)) ?? objectUrl;\n return { name: file.name, url, mimeType: file.mimeType };\n } catch (err) {\n console.warn('[WebBuilderNative] attachment upload failed:', err);\n return null;\n }\n}\n\n/** The folders a build's project may live in (web `PREVIEW_START_WORKDIRS`). */\nconst PREVIEW_START_WORKDIRS = ['/home/yantra/repo', '/home/user/repo', '/home/yantra', '/home/user'];\n/** The sandbox was reclaimed, not paused (web `SANDBOX_GONE_RE`). */\nconst SANDBOX_GONE_RE =\n /Sandbox Not Found|Paused sandbox .+ not found|sandbox \\S+ not found|sandbox .*wasn'?t found|not found \\(404\\)|no sandbox found|does not exist|sandbox.*expired|sandbox.*killed|probably not running anymore|not running anymore|cannot be resumed|was (?:killed|deleted|destroyed)/i;\nconst LIVE_PREVIEW_RE = /^https?:\\/\\/\\d+-[a-z0-9]+[^\\s\"']*/i;\nconst RESUME_TIMEOUT_MS = 3 * 60 * 1000;\n/** Booting a restore point into a new VM takes longer (web: 10 min for CREATE). */\nconst CREATE_TIMEOUT_MS = 10 * 60 * 1000;\n\nexport type ResumeOutcome = 'ok' | 'gone' | 'failed';\n\n/** What bringing a preview back did; `sandboxId`/`previewUrl` are set when a new sandbox replaced it. */\nexport interface RestoreResult {\n outcome: ResumeOutcome;\n sandboxId?: string;\n previewUrl?: string;\n}\n\n/** One connector call's answer, the same on both paths: `{ successful, data, error }`. */\nexport interface SandboxCallResult {\n successful: boolean;\n data?: unknown;\n error?: string;\n}\n\n/** `outdated`: this server has no proxy field; otherwise `result` is the connector's answer. */\nexport interface SandboxProxyAnswer {\n outdated: boolean;\n result?: SandboxCallResult;\n}\n\n/**\n * The guarded proxy `aiCodeSandboxAction(channelId, sandboxId, action, params)`:\n * the server checks the caller's role and that the sandbox belongs to the\n * channel, then adds the sandbox key from the channel's settings (an agent\n * build's key included). `outdated` = this server has no such field.\n */\nexport type SandboxProxyCall = (\n variables: { channelId: string; sandboxId: string; action: string; params: Record<string, unknown> },\n timeoutMs: number,\n) => Promise<SandboxProxyAnswer>;\n\nexport type SandboxRun = (\n action: string,\n params: Record<string, unknown>,\n timeoutMs: number,\n) => Promise<SandboxCallResult>;\n\n/** Connector actions the proxy allows (web `sandboxProxy.SANDBOX_BOUND`); the rest go direct. */\nconst SANDBOX_BOUND = new Set([\n 'WEBBUILDER_EXTEND',\n 'WEBBUILDER_CONNECT',\n 'WEBBUILDER_START',\n 'WEBBUILDER_LIST_VERSIONS',\n 'WEBBUILDER_CREATE_SANDBOX',\n 'WEBBUILDER_READ_FILE',\n 'WEBBUILDER_WRITE_FILES',\n 'WEBBUILDER_RUN_COMMAND',\n 'WEBBUILDER_SNAPSHOT',\n 'WEBBUILDER_RESTORE_VERSION',\n 'WEBBUILDER_BOOKMARK_VERSION',\n 'WEBBUILDER_UPLOAD_ASSET',\n 'WEBBUILDER_RELOAD_GITHUB',\n 'WEBBUILDER_CLONE',\n // Editor+ on the server; an older server refuses them and callers fall back.\n 'WEBBUILDER_EXPORT_ZIP',\n 'WEBBUILDER_LIST_FILES',\n 'WEBBUILDER_FINISH',\n 'WEBBUILDER_DEPLOY_FLY',\n 'WEBBUILDER_DEPLOY_VERCEL',\n 'WEBBUILDER_DEPLOY_NETLIFY',\n // The server picks the repo and attaches the caller's own GitHub credential.\n 'WEBBUILDER_PUSH_GITHUB',\n 'WEBBUILDER_PULL_GITHUB',\n]);\n\n/** A server without the proxy (web `isOutdatedServerError`). */\nexport const OUTDATED_SERVER_RE =\n /Cannot query field|Unknown argument|Unknown type|is not defined by type|Cannot return null for non-nullable field Query\\.aiCode/i;\n\nfunction withoutKey(rec: Record<string, unknown>): Record<string, unknown> {\n const { sandboxKey: _key, sandbox_key: _key2, ...rest } = rec;\n return rest;\n}\n\n/** The proxy's JSON answer as a connector result, with any key dropped (web `proxyResult`). */\nexport function proxyResult(raw: unknown): SandboxCallResult {\n let value = raw;\n if (typeof value === 'string') {\n try {\n value = JSON.parse(value);\n } catch {\n value = null;\n }\n }\n if (!value || typeof value !== 'object' || Array.isArray(value)) {\n return { successful: false, error: 'The server sent an empty answer.' };\n }\n const rec = value as Record<string, unknown>;\n const data =\n rec.data && typeof rec.data === 'object' && !Array.isArray(rec.data)\n ? withoutKey(rec.data as Record<string, unknown>)\n : rec.data;\n const error = typeof rec.error === 'string' && rec.error ? rec.error : undefined;\n return { successful: rec.successful === true, data, ...(error ? { error } : {}) };\n}\n\n/**\n * Every sandbox call for one site, the web's `createSandboxRouter`: through the\n * proxy when the server has it (the app never holds a sandbox key), else straight\n * to cdecli-agent. A server found without the proxy stays direct for the session.\n */\nexport function createSandboxRouter(deps: {\n channelId: string | null | undefined;\n proxy: SandboxProxyCall | null;\n direct: SandboxRun;\n proxyMissing: { current: boolean };\n}): SandboxRun {\n const channelId = String(deps.channelId ?? '').trim();\n const { proxyMissing } = deps;\n return async (action, rawParams, timeoutMs) => {\n const params = withoutKey(rawParams);\n const sandboxId = String(params.sandbox_id ?? '').trim();\n const isCreate = action === 'WEBBUILDER_CREATE_SANDBOX';\n const proxied =\n deps.proxy && !proxyMissing.current && channelId && SANDBOX_BOUND.has(action) && (sandboxId || isCreate);\n if (!proxied || !deps.proxy) return deps.direct(action, params, timeoutMs);\n const answer = await deps.proxy({ channelId, sandboxId, action, params }, timeoutMs);\n if (!answer.outdated) return answer.result ?? { successful: false, error: 'The server sent an empty answer.' };\n proxyMissing.current = true;\n return deps.direct(action, params, timeoutMs);\n };\n}\n\n/** The direct path: `yantra-webbuilder` on cdecli-agent with the surface session. */\nexport function directSandboxRun(token: string, indexUrl: string): SandboxRun {\n const exec = createRemoteConnectorExec(token, indexUrl);\n return async (action, params, timeoutMs) => {\n const result = await exec(WEBBUILDER_CONNECTOR_ID, action, params, { timeoutMs });\n return {\n successful: result.successful !== false,\n data: result.data,\n ...(typeof result.error === 'string' ? { error: result.error } : {}),\n };\n };\n}\n\n/** The connector's own output (web `connectorData`: the result's `data`, or `data.data`). */\nfunction connectorData(result: unknown): Record<string, unknown> {\n const raw = (result as { data?: unknown } | null)?.data;\n if (!raw || typeof raw !== 'object') return {};\n const rec = raw as Record<string, unknown>;\n return rec.data && typeof rec.data === 'object' && !Array.isArray(rec.data)\n ? (rec.data as Record<string, unknown>)\n : rec;\n}\n\nfunction livePreviewUrl(data: Record<string, unknown>): string | null {\n for (const value of [data.previewUrl, data.preview_url, data.sandboxUrl, data.sandbox_url, data.url]) {\n const match = typeof value === 'string' ? LIVE_PREVIEW_RE.exec(value.trim()) : null;\n if (match) return match[0];\n }\n return null;\n}\n\n/** The preview's dev server answers (not a 5xx \"Sandbox not found\" / \"Closed Port\" page), within `withinMs`. */\nexport async function waitForPreview(url: string, withinMs = 20_000): Promise<boolean> {\n const until = Date.now() + withinMs;\n while (Date.now() < until) {\n try {\n // eslint-disable-next-line no-await-in-loop -- one probe at a time\n const res = await fetch(url, { method: 'GET' });\n if (res.status < 500) return true;\n } catch {\n // not answering yet\n }\n // eslint-disable-next-line no-await-in-loop\n await new Promise((resolve) => {\n setTimeout(resolve, 2_000);\n });\n }\n return false;\n}\n\n/**\n * Brings a sleeping or expired preview back without the agent, in the web's\n * `ensurePreview` order: resume the sandbox (`WEBBUILDER_CONNECT` with\n * `autoResume`) and start its dev server (`WEBBUILDER_START`) in the folder the\n * project lives in; when E2B reclaimed it, boot the build's restore point into a\n * new sandbox (`WEBBUILDER_CREATE_SANDBOX` from `snapshotId`) and start that.\n * `gone` means it is reclaimed and there is no restore point to boot.\n */\nexport async function restoreSandbox(\n call: SandboxRun,\n target: {\n sandboxId: string;\n snapshotId?: string | null;\n templateId?: string | null;\n /** The build's preview, checked after EXTEND resumes the sandbox. */\n previewUrl?: string | null;\n },\n probe: (url: string) => Promise<boolean> = waitForPreview,\n): Promise<RestoreResult> {\n const run = async (action: string, params: Record<string, unknown>, timeoutMs = RESUME_TIMEOUT_MS) => {\n try {\n const result = await call(action, params, timeoutMs);\n const blob = JSON.stringify(result);\n return {\n ok: result.successful !== false,\n gone: SANDBOX_GONE_RE.test(blob),\n blob,\n data: connectorData(result),\n };\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n return { ok: false, gone: SANDBOX_GONE_RE.test(message), blob: message, data: {} };\n }\n };\n const builder = /next/i.test(target.templateId ?? '') ? 'next' : 'vite';\n /** CONNECT then START across the workdirs; the URL is the one START (or CONNECT) reports. */\n const wake = async (sandboxId: string): Promise<{ outcome: ResumeOutcome; url: string | null }> => {\n const connected = await run('WEBBUILDER_CONNECT', { sandbox_id: sandboxId, autoResume: true, builder });\n if (connected.gone) return { outcome: 'gone', url: null };\n const seen = livePreviewUrl(connected.data);\n for (const workDir of PREVIEW_START_WORKDIRS) {\n // eslint-disable-next-line no-await-in-loop -- one folder at a time, like the web\n const started = await run('WEBBUILDER_START', { sandbox_id: sandboxId, workDir, builder });\n if (started.gone) return { outcome: 'gone', url: null };\n if (started.ok) return { outcome: 'ok', url: livePreviewUrl(started.data) || seen };\n // Only \"no package.json here\" means try the next folder.\n if (!/no package\\.json/i.test(started.blob)) break;\n }\n return { outcome: connected.ok ? 'ok' : 'failed', url: seen };\n };\n\n // EXTEND first (web #438 C2): it resumes a paused sandbox and keeps it up; when the\n // preview then answers, nothing else is needed. \"Gone\" skips straight to the restore point.\n const extended = await call(\n WEBBUILDER_EXTEND_ACTION,\n { sandbox_id: target.sandboxId, timeoutMs: KEEPALIVE_EXTEND_MS },\n 90_000,\n ).catch((err: unknown) => ({ successful: false, error: err instanceof Error ? err.message : String(err) }));\n const extendState = extendOutcome(extended);\n const previewUrl = target.previewUrl || `https://3000-${target.sandboxId}.e2b.dev`;\n if ((extendState === 'resumed' || extendState === 'alive') && (await probe(previewUrl))) return { outcome: 'ok' };\n const first = extendState === 'gone' ? { outcome: 'gone' as const } : await wake(target.sandboxId);\n if (first.outcome !== 'gone') return { outcome: first.outcome };\n const snapshotId = (target.snapshotId ?? '').trim();\n if (!snapshotId) return { outcome: 'gone' };\n\n // waitBridge:false - the new id comes back as soon as E2B creates the VM; CONNECT waits for the daemon.\n const created = await run(\n 'WEBBUILDER_CREATE_SANDBOX',\n { snapshotId, builder, waitBridge: false },\n CREATE_TIMEOUT_MS,\n );\n const createdUrl = livePreviewUrl(created.data);\n const nextId =\n String(created.data.sandboxId || created.data.sandbox_id || created.data.id || '').trim() ||\n /^https?:\\/\\/\\d+-([a-z0-9]+)/i.exec(createdUrl ?? '')?.[1] ||\n '';\n if (!created.ok || !nextId) return { outcome: 'gone' };\n const second = await wake(nextId);\n if (second.outcome !== 'ok') return { outcome: 'failed' };\n return {\n outcome: 'ok',\n sandboxId: nextId,\n previewUrl: second.url || createdUrl || `https://3000-${nextId}.e2b.dev`,\n };\n}\n"],"names":["_a"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adminide-stack/yantra-mobile",
3
- "version": "12.0.131",
3
+ "version": "12.0.132",
4
4
  "description": "Sample core for higher packages to depend on",
5
5
  "license": "ISC",
6
6
  "author": "CDMBase LLC",
@@ -27,7 +27,7 @@
27
27
  "uuid": "^9.0.0"
28
28
  },
29
29
  "devDependencies": {
30
- "common": "^12.0.131",
30
+ "common": "^12.0.132",
31
31
  "libphonenumber-js": "^1.13.3"
32
32
  },
33
33
  "peerDependencies": {
@@ -45,7 +45,7 @@
45
45
  "@messenger-box/platform-mobile": "*",
46
46
  "@react-native-async-storage/async-storage": "*",
47
47
  "@react-navigation/native": "*",
48
- "common": "12.0.129",
48
+ "common": "12.0.131",
49
49
  "expo-background-task": "*",
50
50
  "expo-constants": "*",
51
51
  "expo-secure-store": "*",
@@ -67,5 +67,5 @@
67
67
  "typescript": {
68
68
  "definition": "lib/index.d.ts"
69
69
  },
70
- "gitHead": "a8c7216df29043485e45e7472af3c5a1cebfba4e"
70
+ "gitHead": "bce0ad546cd0a3f4e9d0a030536f8fbec062db17"
71
71
  }