@andsam/shopify-grab 0.1.0 → 0.1.1

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.
@@ -1 +1 @@
1
- 'use strict';var chunkEWJGBTPU_cjs=require('../chunk-EWJGBTPU.cjs');Object.defineProperty(exports,"DEFAULT_THEME",{enumerable:true,get:function(){return chunkEWJGBTPU_cjs.i}});Object.defineProperty(exports,"copyContent",{enumerable:true,get:function(){return chunkEWJGBTPU_cjs.d}});Object.defineProperty(exports,"formatElementInfo",{enumerable:true,get:function(){return chunkEWJGBTPU_cjs.c}});Object.defineProperty(exports,"generateSnippet",{enumerable:true,get:function(){return chunkEWJGBTPU_cjs.e}});Object.defineProperty(exports,"getStack",{enumerable:true,get:function(){return chunkEWJGBTPU_cjs.b}});Object.defineProperty(exports,"init",{enumerable:true,get:function(){return chunkEWJGBTPU_cjs.j}});Object.defineProperty(exports,"isInstrumentationActive",{enumerable:true,get:function(){return chunkEWJGBTPU_cjs.k}});
1
+ 'use strict';var chunkHF4K7MRY_cjs=require('../chunk-HF4K7MRY.cjs');Object.defineProperty(exports,"DEFAULT_THEME",{enumerable:true,get:function(){return chunkHF4K7MRY_cjs.u}});Object.defineProperty(exports,"copyContent",{enumerable:true,get:function(){return chunkHF4K7MRY_cjs.p}});Object.defineProperty(exports,"formatElementInfo",{enumerable:true,get:function(){return chunkHF4K7MRY_cjs.o}});Object.defineProperty(exports,"generateSnippet",{enumerable:true,get:function(){return chunkHF4K7MRY_cjs.q}});Object.defineProperty(exports,"getBestSourceForElement",{enumerable:true,get:function(){return chunkHF4K7MRY_cjs.k}});Object.defineProperty(exports,"getRenderTimeForElement",{enumerable:true,get:function(){return chunkHF4K7MRY_cjs.l}});Object.defineProperty(exports,"getSourceForElement",{enumerable:true,get:function(){return chunkHF4K7MRY_cjs.j}});Object.defineProperty(exports,"getStack",{enumerable:true,get:function(){return chunkHF4K7MRY_cjs.n}});Object.defineProperty(exports,"init",{enumerable:true,get:function(){return chunkHF4K7MRY_cjs.v}});Object.defineProperty(exports,"isInstrumentationActive",{enumerable:true,get:function(){return chunkHF4K7MRY_cjs.w}});Object.defineProperty(exports,"isShopifyStore",{enumerable:true,get:function(){return chunkHF4K7MRY_cjs.m}});Object.defineProperty(exports,"profilerHasProfile",{enumerable:true,get:function(){return chunkHF4K7MRY_cjs.c}});Object.defineProperty(exports,"profilerIsAuthenticated",{enumerable:true,get:function(){return chunkHF4K7MRY_cjs.b}});Object.defineProperty(exports,"profilerProfile",{enumerable:true,get:function(){return chunkHF4K7MRY_cjs.h}});Object.defineProperty(exports,"profilerSignIn",{enumerable:true,get:function(){return chunkHF4K7MRY_cjs.f}});Object.defineProperty(exports,"profilerSignOut",{enumerable:true,get:function(){return chunkHF4K7MRY_cjs.g}});
@@ -1 +1 @@
1
- export { A as ActionContext, b as AgentCompleteResult, c as AgentContext, d as AgentOptions, e as AgentProvider, f as AgentSession, g as AgentSessionStorage, C as ContextMenuAction, D as DEFAULT_THEME, O as Options, l as OverlayBounds, P as Plugin, m as PluginConfig, n as PluginHooks, p as SettableOptions, S as ShopifyGrabAPI, y as ShopifyGrabRendererProps, r as SourceInfo, z as copyContent, t as formatElementInfo, u as generateSnippet, v as getStack, w as init, x as isInstrumentationActive } from '../index-uQ7Gd3eQ.cjs';
1
+ export { A as ActionContext, b as AgentCompleteResult, c as AgentContext, d as AgentOptions, e as AgentProvider, f as AgentSession, g as AgentSessionStorage, C as ContextMenuAction, D as DEFAULT_THEME, O as Options, l as OverlayBounds, m as Plugin, n as PluginConfig, o as PluginHooks, t as SettableOptions, S as ShopifyGrabAPI, _ as ShopifyGrabRendererProps, v as SourceInfo, $ as copyContent, y as formatElementInfo, z as generateSnippet, B as getBestSourceForElement, F as getRenderTimeForElement, H as getSourceForElement, I as getStack, J as init, K as isInstrumentationActive, M as isShopifyStore, U as profilerHasProfile, V as profilerIsAuthenticated, X as profilerProfile, Y as profilerSignIn, Z as profilerSignOut } from '../index-B8oMvRpa.cjs';
@@ -1 +1 @@
1
- export { A as ActionContext, b as AgentCompleteResult, c as AgentContext, d as AgentOptions, e as AgentProvider, f as AgentSession, g as AgentSessionStorage, C as ContextMenuAction, D as DEFAULT_THEME, O as Options, l as OverlayBounds, P as Plugin, m as PluginConfig, n as PluginHooks, p as SettableOptions, S as ShopifyGrabAPI, y as ShopifyGrabRendererProps, r as SourceInfo, z as copyContent, t as formatElementInfo, u as generateSnippet, v as getStack, w as init, x as isInstrumentationActive } from '../index-uQ7Gd3eQ.js';
1
+ export { A as ActionContext, b as AgentCompleteResult, c as AgentContext, d as AgentOptions, e as AgentProvider, f as AgentSession, g as AgentSessionStorage, C as ContextMenuAction, D as DEFAULT_THEME, O as Options, l as OverlayBounds, m as Plugin, n as PluginConfig, o as PluginHooks, t as SettableOptions, S as ShopifyGrabAPI, _ as ShopifyGrabRendererProps, v as SourceInfo, $ as copyContent, y as formatElementInfo, z as generateSnippet, B as getBestSourceForElement, F as getRenderTimeForElement, H as getSourceForElement, I as getStack, J as init, K as isInstrumentationActive, M as isShopifyStore, U as profilerHasProfile, V as profilerIsAuthenticated, X as profilerProfile, Y as profilerSignIn, Z as profilerSignOut } from '../index-B8oMvRpa.js';
@@ -1 +1 @@
1
- export{i as DEFAULT_THEME,d as copyContent,c as formatElementInfo,e as generateSnippet,b as getStack,j as init,k as isInstrumentationActive}from'../chunk-RV3NLUST.js';
1
+ export{u as DEFAULT_THEME,p as copyContent,o as formatElementInfo,q as generateSnippet,k as getBestSourceForElement,l as getRenderTimeForElement,j as getSourceForElement,n as getStack,v as init,w as isInstrumentationActive,m as isShopifyStore,c as profilerHasProfile,b as profilerIsAuthenticated,h as profilerProfile,f as profilerSignIn,g as profilerSignOut}from'../chunk-MB3RPJTR.js';
@@ -441,8 +441,128 @@ interface CopyContentOptions {
441
441
  }
442
442
  declare const copyContent: (content: string, options?: CopyContentOptions) => boolean;
443
443
 
444
+ interface SpeedscopeFrame {
445
+ name: string;
446
+ file?: string;
447
+ line?: number;
448
+ col?: number;
449
+ }
450
+ interface LiquidSourceLocation {
451
+ file: string;
452
+ line: number | null;
453
+ col: number | null;
454
+ renderTimeMs: number;
455
+ children: LiquidSourceLocation[];
456
+ }
457
+ interface SectionSourceMap {
458
+ sectionType: string;
459
+ file: string;
460
+ locations: LiquidSourceLocation[];
461
+ totalRenderTimeMs: number;
462
+ }
463
+ interface PageProfile {
464
+ url: string;
465
+ fetchedAt: number;
466
+ totalRenderTimeMs: number;
467
+ sections: Map<string, SectionSourceMap>;
468
+ allLocations: LiquidSourceLocation[];
469
+ frames: SpeedscopeFrame[];
470
+ }
471
+ interface ProfilerToken {
472
+ accessToken: string;
473
+ expiresAt: number;
474
+ }
475
+ type ProfilerStatus = {
476
+ state: "idle";
477
+ } | {
478
+ state: "authenticating";
479
+ } | {
480
+ state: "authenticated";
481
+ token: ProfilerToken;
482
+ } | {
483
+ state: "fetching";
484
+ } | {
485
+ state: "ready";
486
+ profile: PageProfile;
487
+ } | {
488
+ state: "error";
489
+ message: string;
490
+ };
491
+
492
+ /**
493
+ * Shopify Liquid Profiler
494
+ *
495
+ * Provides bippy-like source introspection for Shopify themes by fetching
496
+ * Liquid profiling data from Shopify's servers (same API as Theme Inspector).
497
+ *
498
+ * Usage:
499
+ * 1. Call profiler.signIn() to authenticate with Shopify
500
+ * 2. Call profiler.profile() to fetch profiling data for current page
501
+ * 3. Call profiler.getSourceForElement(element) to get source context
502
+ *
503
+ * The profiler caches profile data per URL and auto-refreshes on navigation.
504
+ */
505
+
506
+ type StatusListener = (status: ProfilerStatus) => void;
507
+ /**
508
+ * Check if the profiler is authenticated.
509
+ */
510
+ declare const isAuthenticated: () => boolean;
511
+ /**
512
+ * Check if the profiler has profile data for the current page.
513
+ */
514
+ declare const hasProfile: () => boolean;
515
+ /**
516
+ * Get the current profiler status.
517
+ */
518
+ declare const getStatus: () => ProfilerStatus;
519
+ /**
520
+ * Subscribe to profiler status changes.
521
+ * Returns an unsubscribe function.
522
+ */
523
+ declare const onStatusChange: (listener: StatusListener) => (() => void);
524
+ /**
525
+ * Sign in to Shopify for profiling access.
526
+ * Opens a popup for OAuth authentication.
527
+ */
528
+ declare const signIn: () => Promise<void>;
529
+ /**
530
+ * Sign out and clear cached tokens.
531
+ */
532
+ declare const signOut: () => void;
533
+ /**
534
+ * Fetch profiling data for the current page.
535
+ * Caches the result for subsequent lookups.
536
+ */
537
+ declare const profile: (url?: string) => Promise<PageProfile>;
538
+ /**
539
+ * Clear the profile cache for all URLs or a specific URL.
540
+ */
541
+ declare const clearCache: (url?: string) => void;
542
+ /**
543
+ * Get source context for a DOM element using profiling data.
544
+ *
545
+ * This is the primary integration point with shopify-grab's context system.
546
+ * Returns a stack of LiquidSourceLocations from the profiling data,
547
+ * matched by correlating the element's section/block context with the profile.
548
+ */
549
+ declare const getSourceForElement: (element: Element) => LiquidSourceLocation[] | null;
550
+ /**
551
+ * Get the best single source location for an element.
552
+ * Returns the most specific file + line info available.
553
+ */
554
+ declare const getBestSourceForElement: (element: Element) => LiquidSourceLocation | null;
555
+ /**
556
+ * Get the render time for the section containing this element.
557
+ */
558
+ declare const getRenderTimeForElement: (element: Element) => number | null;
559
+ /**
560
+ * Detect if the current page is a Shopify store.
561
+ */
562
+ declare const isShopifyStore: () => boolean;
563
+
444
564
  declare const init: (rawOptions?: Options) => ShopifyGrabAPI;
445
565
 
446
566
  declare const isInstrumentationActive: () => boolean;
447
567
 
448
- export { type ActionContext as A, type ContextMenuAction as C, DEFAULT_THEME as D, type ElementLabelContext as E, type GrabbedBox as G, type Options as O, type Plugin as P, type Rect as R, type ShopifyGrabAPI as S, type Theme as T, type ActivationMode as a, type AgentCompleteResult as b, type AgentContext as c, type AgentOptions as d, type AgentProvider as e, type AgentSession as f, type AgentSessionStorage as g, type CrosshairContext as h, type DeepPartial as i, type DragRect as j, type ElementLabelVariant as k, type OverlayBounds as l, type PluginConfig as m, type PluginHooks as n, type PromptModeContext as o, type SettableOptions as p, type ShopifyGrabState as q, type SourceInfo as r, type ToolbarState as s, getElementContext as t, generateSnippet as u, getStack as v, init as w, isInstrumentationActive as x, type ShopifyGrabRendererProps as y, copyContent as z };
568
+ export { copyContent as $, type ActionContext as A, getBestSourceForElement as B, type ContextMenuAction as C, DEFAULT_THEME as D, type ElementLabelContext as E, getRenderTimeForElement as F, type GrabbedBox as G, getSourceForElement as H, getStack as I, init as J, isInstrumentationActive as K, type LiquidSourceLocation as L, isShopifyStore as M, clearCache as N, type Options as O, type PageProfile as P, getStatus as Q, type Rect as R, type ShopifyGrabAPI as S, type Theme as T, hasProfile as U, isAuthenticated as V, onStatusChange as W, profile as X, signIn as Y, signOut as Z, type ShopifyGrabRendererProps as _, type ActivationMode as a, type AgentCompleteResult as b, type AgentContext as c, type AgentOptions as d, type AgentProvider as e, type AgentSession as f, type AgentSessionStorage as g, type CrosshairContext as h, type DeepPartial as i, type DragRect as j, type ElementLabelVariant as k, type OverlayBounds as l, type Plugin as m, type PluginConfig as n, type PluginHooks as o, type ProfilerStatus as p, type ProfilerToken as q, type PromptModeContext as r, type SectionSourceMap as s, type SettableOptions as t, type ShopifyGrabState as u, type SourceInfo as v, type SpeedscopeFrame as w, type ToolbarState as x, getElementContext as y, generateSnippet as z };
@@ -441,8 +441,128 @@ interface CopyContentOptions {
441
441
  }
442
442
  declare const copyContent: (content: string, options?: CopyContentOptions) => boolean;
443
443
 
444
+ interface SpeedscopeFrame {
445
+ name: string;
446
+ file?: string;
447
+ line?: number;
448
+ col?: number;
449
+ }
450
+ interface LiquidSourceLocation {
451
+ file: string;
452
+ line: number | null;
453
+ col: number | null;
454
+ renderTimeMs: number;
455
+ children: LiquidSourceLocation[];
456
+ }
457
+ interface SectionSourceMap {
458
+ sectionType: string;
459
+ file: string;
460
+ locations: LiquidSourceLocation[];
461
+ totalRenderTimeMs: number;
462
+ }
463
+ interface PageProfile {
464
+ url: string;
465
+ fetchedAt: number;
466
+ totalRenderTimeMs: number;
467
+ sections: Map<string, SectionSourceMap>;
468
+ allLocations: LiquidSourceLocation[];
469
+ frames: SpeedscopeFrame[];
470
+ }
471
+ interface ProfilerToken {
472
+ accessToken: string;
473
+ expiresAt: number;
474
+ }
475
+ type ProfilerStatus = {
476
+ state: "idle";
477
+ } | {
478
+ state: "authenticating";
479
+ } | {
480
+ state: "authenticated";
481
+ token: ProfilerToken;
482
+ } | {
483
+ state: "fetching";
484
+ } | {
485
+ state: "ready";
486
+ profile: PageProfile;
487
+ } | {
488
+ state: "error";
489
+ message: string;
490
+ };
491
+
492
+ /**
493
+ * Shopify Liquid Profiler
494
+ *
495
+ * Provides bippy-like source introspection for Shopify themes by fetching
496
+ * Liquid profiling data from Shopify's servers (same API as Theme Inspector).
497
+ *
498
+ * Usage:
499
+ * 1. Call profiler.signIn() to authenticate with Shopify
500
+ * 2. Call profiler.profile() to fetch profiling data for current page
501
+ * 3. Call profiler.getSourceForElement(element) to get source context
502
+ *
503
+ * The profiler caches profile data per URL and auto-refreshes on navigation.
504
+ */
505
+
506
+ type StatusListener = (status: ProfilerStatus) => void;
507
+ /**
508
+ * Check if the profiler is authenticated.
509
+ */
510
+ declare const isAuthenticated: () => boolean;
511
+ /**
512
+ * Check if the profiler has profile data for the current page.
513
+ */
514
+ declare const hasProfile: () => boolean;
515
+ /**
516
+ * Get the current profiler status.
517
+ */
518
+ declare const getStatus: () => ProfilerStatus;
519
+ /**
520
+ * Subscribe to profiler status changes.
521
+ * Returns an unsubscribe function.
522
+ */
523
+ declare const onStatusChange: (listener: StatusListener) => (() => void);
524
+ /**
525
+ * Sign in to Shopify for profiling access.
526
+ * Opens a popup for OAuth authentication.
527
+ */
528
+ declare const signIn: () => Promise<void>;
529
+ /**
530
+ * Sign out and clear cached tokens.
531
+ */
532
+ declare const signOut: () => void;
533
+ /**
534
+ * Fetch profiling data for the current page.
535
+ * Caches the result for subsequent lookups.
536
+ */
537
+ declare const profile: (url?: string) => Promise<PageProfile>;
538
+ /**
539
+ * Clear the profile cache for all URLs or a specific URL.
540
+ */
541
+ declare const clearCache: (url?: string) => void;
542
+ /**
543
+ * Get source context for a DOM element using profiling data.
544
+ *
545
+ * This is the primary integration point with shopify-grab's context system.
546
+ * Returns a stack of LiquidSourceLocations from the profiling data,
547
+ * matched by correlating the element's section/block context with the profile.
548
+ */
549
+ declare const getSourceForElement: (element: Element) => LiquidSourceLocation[] | null;
550
+ /**
551
+ * Get the best single source location for an element.
552
+ * Returns the most specific file + line info available.
553
+ */
554
+ declare const getBestSourceForElement: (element: Element) => LiquidSourceLocation | null;
555
+ /**
556
+ * Get the render time for the section containing this element.
557
+ */
558
+ declare const getRenderTimeForElement: (element: Element) => number | null;
559
+ /**
560
+ * Detect if the current page is a Shopify store.
561
+ */
562
+ declare const isShopifyStore: () => boolean;
563
+
444
564
  declare const init: (rawOptions?: Options) => ShopifyGrabAPI;
445
565
 
446
566
  declare const isInstrumentationActive: () => boolean;
447
567
 
448
- export { type ActionContext as A, type ContextMenuAction as C, DEFAULT_THEME as D, type ElementLabelContext as E, type GrabbedBox as G, type Options as O, type Plugin as P, type Rect as R, type ShopifyGrabAPI as S, type Theme as T, type ActivationMode as a, type AgentCompleteResult as b, type AgentContext as c, type AgentOptions as d, type AgentProvider as e, type AgentSession as f, type AgentSessionStorage as g, type CrosshairContext as h, type DeepPartial as i, type DragRect as j, type ElementLabelVariant as k, type OverlayBounds as l, type PluginConfig as m, type PluginHooks as n, type PromptModeContext as o, type SettableOptions as p, type ShopifyGrabState as q, type SourceInfo as r, type ToolbarState as s, getElementContext as t, generateSnippet as u, getStack as v, init as w, isInstrumentationActive as x, type ShopifyGrabRendererProps as y, copyContent as z };
568
+ export { copyContent as $, type ActionContext as A, getBestSourceForElement as B, type ContextMenuAction as C, DEFAULT_THEME as D, type ElementLabelContext as E, getRenderTimeForElement as F, type GrabbedBox as G, getSourceForElement as H, getStack as I, init as J, isInstrumentationActive as K, type LiquidSourceLocation as L, isShopifyStore as M, clearCache as N, type Options as O, type PageProfile as P, getStatus as Q, type Rect as R, type ShopifyGrabAPI as S, type Theme as T, hasProfile as U, isAuthenticated as V, onStatusChange as W, profile as X, signIn as Y, signOut as Z, type ShopifyGrabRendererProps as _, type ActivationMode as a, type AgentCompleteResult as b, type AgentContext as c, type AgentOptions as d, type AgentProvider as e, type AgentSession as f, type AgentSessionStorage as g, type CrosshairContext as h, type DeepPartial as i, type DragRect as j, type ElementLabelVariant as k, type OverlayBounds as l, type Plugin as m, type PluginConfig as n, type PluginHooks as o, type ProfilerStatus as p, type ProfilerToken as q, type PromptModeContext as r, type SectionSourceMap as s, type SettableOptions as t, type ShopifyGrabState as u, type SourceInfo as v, type SpeedscopeFrame as w, type ToolbarState as x, getElementContext as y, generateSnippet as z };
package/dist/index.cjs CHANGED
@@ -1,7 +1,7 @@
1
- 'use strict';var chunkEWJGBTPU_cjs=require('./chunk-EWJGBTPU.cjs');/**
1
+ 'use strict';var chunkHF4K7MRY_cjs=require('./chunk-HF4K7MRY.cjs');/**
2
2
  * @license MIT
3
3
  *
4
4
  * Shopify Grab - Select context for coding agents from Shopify themes
5
5
  * Based on React Grab by Aiden Bai (MIT licensed)
6
6
  */
7
- var e=null,A=()=>typeof window>"u"?e:window.__SHOPIFY_GRAB__??e??null,S=t=>{e=t,typeof window<"u"&&(t?window.__SHOPIFY_GRAB__=t:delete window.__SHOPIFY_GRAB__);};typeof window<"u"&&(window.__SHOPIFY_GRAB__?e=window.__SHOPIFY_GRAB__:(e=chunkEWJGBTPU_cjs.j(),window.__SHOPIFY_GRAB__=e),window.dispatchEvent(new CustomEvent("shopify-grab:init",{detail:e})));Object.defineProperty(exports,"DEFAULT_THEME",{enumerable:true,get:function(){return chunkEWJGBTPU_cjs.i}});Object.defineProperty(exports,"captureElementScreenshot",{enumerable:true,get:function(){return chunkEWJGBTPU_cjs.g}});Object.defineProperty(exports,"combineBounds",{enumerable:true,get:function(){return chunkEWJGBTPU_cjs.f}});Object.defineProperty(exports,"copyImageToClipboard",{enumerable:true,get:function(){return chunkEWJGBTPU_cjs.h}});Object.defineProperty(exports,"formatElementInfo",{enumerable:true,get:function(){return chunkEWJGBTPU_cjs.c}});Object.defineProperty(exports,"generateSnippet",{enumerable:true,get:function(){return chunkEWJGBTPU_cjs.e}});Object.defineProperty(exports,"getStack",{enumerable:true,get:function(){return chunkEWJGBTPU_cjs.b}});Object.defineProperty(exports,"init",{enumerable:true,get:function(){return chunkEWJGBTPU_cjs.j}});Object.defineProperty(exports,"isInstrumentationActive",{enumerable:true,get:function(){return chunkEWJGBTPU_cjs.k}});Object.defineProperty(exports,"isScreenshotSupported",{enumerable:true,get:function(){return chunkEWJGBTPU_cjs.a}});exports.getGlobalApi=A;exports.setGlobalApi=S;
7
+ var e=null,x=()=>typeof window>"u"?e:window.__SHOPIFY_GRAB__??e??null,G=o=>{e=o,typeof window<"u"&&(o?window.__SHOPIFY_GRAB__=o:delete window.__SHOPIFY_GRAB__);};typeof window<"u"&&(window.__SHOPIFY_GRAB__?e=window.__SHOPIFY_GRAB__:(e=chunkHF4K7MRY_cjs.v(),window.__SHOPIFY_GRAB__=e),window.dispatchEvent(new CustomEvent("shopify-grab:init",{detail:e})));Object.defineProperty(exports,"DEFAULT_THEME",{enumerable:true,get:function(){return chunkHF4K7MRY_cjs.u}});Object.defineProperty(exports,"captureElementScreenshot",{enumerable:true,get:function(){return chunkHF4K7MRY_cjs.s}});Object.defineProperty(exports,"combineBounds",{enumerable:true,get:function(){return chunkHF4K7MRY_cjs.r}});Object.defineProperty(exports,"copyImageToClipboard",{enumerable:true,get:function(){return chunkHF4K7MRY_cjs.t}});Object.defineProperty(exports,"formatElementInfo",{enumerable:true,get:function(){return chunkHF4K7MRY_cjs.o}});Object.defineProperty(exports,"generateSnippet",{enumerable:true,get:function(){return chunkHF4K7MRY_cjs.q}});Object.defineProperty(exports,"getBestSourceForElement",{enumerable:true,get:function(){return chunkHF4K7MRY_cjs.k}});Object.defineProperty(exports,"getRenderTimeForElement",{enumerable:true,get:function(){return chunkHF4K7MRY_cjs.l}});Object.defineProperty(exports,"getSourceForElement",{enumerable:true,get:function(){return chunkHF4K7MRY_cjs.j}});Object.defineProperty(exports,"getStack",{enumerable:true,get:function(){return chunkHF4K7MRY_cjs.n}});Object.defineProperty(exports,"init",{enumerable:true,get:function(){return chunkHF4K7MRY_cjs.v}});Object.defineProperty(exports,"isInstrumentationActive",{enumerable:true,get:function(){return chunkHF4K7MRY_cjs.w}});Object.defineProperty(exports,"isScreenshotSupported",{enumerable:true,get:function(){return chunkHF4K7MRY_cjs.a}});Object.defineProperty(exports,"isShopifyStore",{enumerable:true,get:function(){return chunkHF4K7MRY_cjs.m}});Object.defineProperty(exports,"profilerClearCache",{enumerable:true,get:function(){return chunkHF4K7MRY_cjs.i}});Object.defineProperty(exports,"profilerGetStatus",{enumerable:true,get:function(){return chunkHF4K7MRY_cjs.d}});Object.defineProperty(exports,"profilerHasProfile",{enumerable:true,get:function(){return chunkHF4K7MRY_cjs.c}});Object.defineProperty(exports,"profilerIsAuthenticated",{enumerable:true,get:function(){return chunkHF4K7MRY_cjs.b}});Object.defineProperty(exports,"profilerOnStatusChange",{enumerable:true,get:function(){return chunkHF4K7MRY_cjs.e}});Object.defineProperty(exports,"profilerProfile",{enumerable:true,get:function(){return chunkHF4K7MRY_cjs.h}});Object.defineProperty(exports,"profilerSignIn",{enumerable:true,get:function(){return chunkHF4K7MRY_cjs.f}});Object.defineProperty(exports,"profilerSignOut",{enumerable:true,get:function(){return chunkHF4K7MRY_cjs.g}});exports.getGlobalApi=x;exports.setGlobalApi=G;
package/dist/index.d.cts CHANGED
@@ -1,5 +1,5 @@
1
- import { S as ShopifyGrabAPI } from './index-uQ7Gd3eQ.cjs';
2
- export { A as ActionContext, a as ActivationMode, b as AgentCompleteResult, c as AgentContext, d as AgentOptions, e as AgentProvider, f as AgentSession, g as AgentSessionStorage, C as ContextMenuAction, h as CrosshairContext, D as DEFAULT_THEME, i as DeepPartial, j as DragRect, E as ElementLabelContext, k as ElementLabelVariant, G as GrabbedBox, O as Options, l as OverlayBounds, P as Plugin, m as PluginConfig, n as PluginHooks, o as PromptModeContext, R as Rect, p as SettableOptions, q as ShopifyGrabState, r as SourceInfo, T as Theme, s as ToolbarState, t as formatElementInfo, u as generateSnippet, v as getStack, w as init, x as isInstrumentationActive } from './index-uQ7Gd3eQ.cjs';
1
+ import { S as ShopifyGrabAPI } from './index-B8oMvRpa.cjs';
2
+ export { A as ActionContext, a as ActivationMode, b as AgentCompleteResult, c as AgentContext, d as AgentOptions, e as AgentProvider, f as AgentSession, g as AgentSessionStorage, C as ContextMenuAction, h as CrosshairContext, D as DEFAULT_THEME, i as DeepPartial, j as DragRect, E as ElementLabelContext, k as ElementLabelVariant, G as GrabbedBox, L as LiquidSourceLocation, O as Options, l as OverlayBounds, P as PageProfile, m as Plugin, n as PluginConfig, o as PluginHooks, p as ProfilerStatus, q as ProfilerToken, r as PromptModeContext, R as Rect, s as SectionSourceMap, t as SettableOptions, u as ShopifyGrabState, v as SourceInfo, w as SpeedscopeFrame, T as Theme, x as ToolbarState, y as formatElementInfo, z as generateSnippet, B as getBestSourceForElement, F as getRenderTimeForElement, H as getSourceForElement, I as getStack, J as init, K as isInstrumentationActive, M as isShopifyStore, N as profilerClearCache, Q as profilerGetStatus, U as profilerHasProfile, V as profilerIsAuthenticated, W as profilerOnStatusChange, X as profilerProfile, Y as profilerSignIn, Z as profilerSignOut } from './index-B8oMvRpa.cjs';
3
3
 
4
4
  interface ElementBounds {
5
5
  x: number;
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { S as ShopifyGrabAPI } from './index-uQ7Gd3eQ.js';
2
- export { A as ActionContext, a as ActivationMode, b as AgentCompleteResult, c as AgentContext, d as AgentOptions, e as AgentProvider, f as AgentSession, g as AgentSessionStorage, C as ContextMenuAction, h as CrosshairContext, D as DEFAULT_THEME, i as DeepPartial, j as DragRect, E as ElementLabelContext, k as ElementLabelVariant, G as GrabbedBox, O as Options, l as OverlayBounds, P as Plugin, m as PluginConfig, n as PluginHooks, o as PromptModeContext, R as Rect, p as SettableOptions, q as ShopifyGrabState, r as SourceInfo, T as Theme, s as ToolbarState, t as formatElementInfo, u as generateSnippet, v as getStack, w as init, x as isInstrumentationActive } from './index-uQ7Gd3eQ.js';
1
+ import { S as ShopifyGrabAPI } from './index-B8oMvRpa.js';
2
+ export { A as ActionContext, a as ActivationMode, b as AgentCompleteResult, c as AgentContext, d as AgentOptions, e as AgentProvider, f as AgentSession, g as AgentSessionStorage, C as ContextMenuAction, h as CrosshairContext, D as DEFAULT_THEME, i as DeepPartial, j as DragRect, E as ElementLabelContext, k as ElementLabelVariant, G as GrabbedBox, L as LiquidSourceLocation, O as Options, l as OverlayBounds, P as PageProfile, m as Plugin, n as PluginConfig, o as PluginHooks, p as ProfilerStatus, q as ProfilerToken, r as PromptModeContext, R as Rect, s as SectionSourceMap, t as SettableOptions, u as ShopifyGrabState, v as SourceInfo, w as SpeedscopeFrame, T as Theme, x as ToolbarState, y as formatElementInfo, z as generateSnippet, B as getBestSourceForElement, F as getRenderTimeForElement, H as getSourceForElement, I as getStack, J as init, K as isInstrumentationActive, M as isShopifyStore, N as profilerClearCache, Q as profilerGetStatus, U as profilerHasProfile, V as profilerIsAuthenticated, W as profilerOnStatusChange, X as profilerProfile, Y as profilerSignIn, Z as profilerSignOut } from './index-B8oMvRpa.js';
3
3
 
4
4
  interface ElementBounds {
5
5
  x: number;