@scalebun/web 1.0.0 → 1.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bootstrap/SDKBootstrapper.d.ts +6 -6
- package/dist/bootstrap/SDKBootstrapper.js +8 -8
- package/dist/browser.d.ts +1 -1
- package/dist/browser.d.ts.map +1 -1
- package/dist/browser.js +8 -6
- package/dist/browser.js.map +1 -1
- package/dist/config/endpoints.d.ts +12 -0
- package/dist/config/endpoints.d.ts.map +1 -0
- package/dist/config/endpoints.js +12 -0
- package/dist/config/endpoints.js.map +1 -0
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +5 -3
- package/dist/config/schema.js.map +1 -1
- package/dist/core/breadcrumbs.js +1 -1
- package/dist/core/index.d.ts +13 -13
- package/dist/core/index.js +13 -13
- package/dist/core/observe.js +1 -1
- package/dist/core/pageContext.d.ts +1 -1
- package/dist/features/analytics/AnalyticsFeature.d.ts +2 -2
- package/dist/features/analytics/AnalyticsFeature.js +10 -10
- package/dist/features/analytics/autocapture.js +4 -4
- package/dist/features/analytics/sampler.js +1 -1
- package/dist/features/bugreport/BugReportFeature.d.ts +1 -1
- package/dist/features/bugreport/BugReportFeature.js +1 -1
- package/dist/features/bugreport/collect.js +1 -1
- package/dist/features/bugreport/widget.js +9 -9
- package/dist/features/coach/CoachmarkFeature.d.ts +1 -1
- package/dist/features/coach/CoachmarkFeature.js +5 -5
- package/dist/features/coach/anchor.d.ts +1 -1
- package/dist/features/coach/overlay.d.ts +1 -1
- package/dist/features/coach/overlay.js +21 -21
- package/dist/features/coach/position.d.ts +1 -1
- package/dist/features/coach/predicate.d.ts +1 -1
- package/dist/features/coach/tour.d.ts +4 -4
- package/dist/features/coach/tour.js +1 -1
- package/dist/features/coach/types.d.ts +1 -1
- package/dist/features/coach/wait.d.ts +2 -2
- package/dist/features/config/ConfigFeature.d.ts +1 -1
- package/dist/features/config/ConfigFeature.js +5 -5
- package/dist/features/config/configStore.d.ts +1 -1
- package/dist/features/config/targeting.d.ts +1 -1
- package/dist/features/console/ConsoleFeature.js +3 -3
- package/dist/features/console/normalize.js +2 -2
- package/dist/features/console/throttle.d.ts +1 -1
- package/dist/features/crash/CrashFeature.js +2 -2
- package/dist/features/engage/EngageFeature.d.ts +3 -3
- package/dist/features/engage/EngageFeature.js +5 -5
- package/dist/features/engage/attachments.d.ts +1 -1
- package/dist/features/engage/attachments.js +3 -3
- package/dist/features/engage/gameLogic.d.ts +1 -1
- package/dist/features/engage/gameResolver.d.ts +2 -2
- package/dist/features/engage/gameResolver.js +1 -1
- package/dist/features/engage/inappSlots.d.ts +1 -1
- package/dist/features/engage/inappSlots.js +1 -1
- package/dist/features/engage/normalize.d.ts +1 -1
- package/dist/features/engage/richInApp.d.ts +3 -3
- package/dist/features/engage/richInApp.js +6 -6
- package/dist/features/engage/runtime.d.ts +3 -3
- package/dist/features/engage/runtime.js +7 -7
- package/dist/features/engage/shakeDetector.js +1 -1
- package/dist/features/engage/throttle.d.ts +1 -1
- package/dist/features/engage/transport.d.ts +1 -1
- package/dist/features/engage/transport.js +1 -1
- package/dist/features/engage/triggerEngine.d.ts +1 -1
- package/dist/features/engage/widget/InAppWidget.d.ts +1 -1
- package/dist/features/engage/widget/InAppWidget.js +18 -18
- package/dist/features/engage/widget/SurveyWidget.d.ts +1 -1
- package/dist/features/engage/widget/SurveyWidget.js +66 -66
- package/dist/features/errors/ErrorsFeature.d.ts +1 -1
- package/dist/features/errors/ErrorsFeature.js +6 -6
- package/dist/features/errors/group/fingerprint.js +1 -1
- package/dist/features/errors/lazy.d.ts +3 -3
- package/dist/features/errors/lazy.js +3 -3
- package/dist/features/errors/normalize.d.ts +2 -2
- package/dist/features/errors/normalize.js +2 -2
- package/dist/features/errors/redact.js +1 -1
- package/dist/features/errors/sampling.js +1 -1
- package/dist/features/exit-intent/ExitIntentFeature.js +1 -1
- package/dist/features/exit-intent/engine.js +1 -1
- package/dist/features/forms/index.js +1 -1
- package/dist/features/inapp/InApp2Feature.js +1 -1
- package/dist/features/inapp/anchor/controller.d.ts +2 -2
- package/dist/features/inapp/anchor/controller.js +3 -3
- package/dist/features/inapp/api.d.ts +5 -5
- package/dist/features/inapp/api.js +3 -3
- package/dist/features/inapp/blocks/blocks.d.ts +1 -1
- package/dist/features/inapp/blocks/blocks.js +1 -1
- package/dist/features/inapp/blocks/feedback.d.ts +1 -1
- package/dist/features/inapp/blocks/heavy/carousel.d.ts +1 -1
- package/dist/features/inapp/blocks/heavy/chart.d.ts +1 -1
- package/dist/features/inapp/blocks/heavy/code.d.ts +1 -1
- package/dist/features/inapp/blocks/heavy/confetti.d.ts +1 -1
- package/dist/features/inapp/blocks/heavy/countdown.d.ts +1 -1
- package/dist/features/inapp/blocks/heavy/index.d.ts +1 -1
- package/dist/features/inapp/blocks/heavy/index.js +18 -18
- package/dist/features/inapp/blocks/heavy/markdown.d.ts +1 -1
- package/dist/features/inapp/blocks/heavy/productgrid.d.ts +1 -1
- package/dist/features/inapp/blocks/heavy/qr.d.ts +1 -1
- package/dist/features/inapp/blocks/heavy/scratch.d.ts +1 -1
- package/dist/features/inapp/blocks/heavy/scratch.js +1 -1
- package/dist/features/inapp/blocks/heavy/slot.d.ts +1 -1
- package/dist/features/inapp/blocks/heavy/slot.js +1 -1
- package/dist/features/inapp/blocks/heavy/spinwheel.d.ts +1 -1
- package/dist/features/inapp/blocks/heavy/spinwheel.js +1 -1
- package/dist/features/inapp/blocks/heavy/steps.d.ts +1 -1
- package/dist/features/inapp/blocks/heavy/streak.d.ts +1 -1
- package/dist/features/inapp/blocks/heavy/table.d.ts +1 -1
- package/dist/features/inapp/blocks/heavy/unavailable.d.ts +1 -1
- package/dist/features/inapp/blocks/heavy/video.d.ts +1 -1
- package/dist/features/inapp/blocks/styles.js +191 -191
- package/dist/features/inapp/center/bridge.d.ts +3 -3
- package/dist/features/inapp/center/bridge.js +1 -1
- package/dist/features/inapp/center/panel.d.ts +2 -2
- package/dist/features/inapp/center/panel.js +33 -33
- package/dist/features/inapp/center/store.d.ts +1 -1
- package/dist/features/inapp/center/sync.d.ts +1 -1
- package/dist/features/inapp/center/types.d.ts +1 -1
- package/dist/features/inapp/core/analytics.d.ts +3 -3
- package/dist/features/inapp/core/analytics.js +1 -1
- package/dist/features/inapp/core/compat.d.ts +2 -2
- package/dist/features/inapp/core/debugOverlay.d.ts +2 -2
- package/dist/features/inapp/core/debugOverlay.js +12 -12
- package/dist/features/inapp/core/engine.d.ts +3 -3
- package/dist/features/inapp/core/engine.js +10 -10
- package/dist/features/inapp/core/host.js +22 -22
- package/dist/features/inapp/core/metrics.d.ts +1 -1
- package/dist/features/inapp/core/migration.d.ts +2 -2
- package/dist/features/inapp/core/migration.js +2 -2
- package/dist/features/inapp/core/orchestrator.d.ts +1 -1
- package/dist/features/inapp/core/respect.d.ts +1 -1
- package/dist/features/inapp/core/targeting.d.ts +1 -1
- package/dist/features/inapp/core/targeting.js +1 -1
- package/dist/features/inapp/core/triggers.d.ts +1 -1
- package/dist/features/inapp/core/triggers.js +2 -2
- package/dist/features/inapp/inappContract.web.d.ts +1 -1
- package/dist/features/inapp/index.d.ts +15 -15
- package/dist/features/inapp/index.js +10 -10
- package/dist/features/inapp/registry.web.canonical.d.ts +1 -1
- package/dist/features/inapp/registry.web.catalog.d.ts +1 -1
- package/dist/features/inapp/surfaces/banner.d.ts +1 -1
- package/dist/features/inapp/surfaces/banner.js +1 -1
- package/dist/features/inapp/surfaces/checklist.d.ts +1 -1
- package/dist/features/inapp/surfaces/coachmark.d.ts +1 -1
- package/dist/features/inapp/surfaces/coachmark.js +2 -2
- package/dist/features/inapp/surfaces/hotspot.d.ts +1 -1
- package/dist/features/inapp/surfaces/hotspot.js +2 -2
- package/dist/features/inapp/surfaces/inline.d.ts +4 -4
- package/dist/features/inapp/surfaces/inline.js +11 -11
- package/dist/features/inapp/surfaces/launcher.d.ts +1 -1
- package/dist/features/inapp/surfaces/modal.d.ts +1 -1
- package/dist/features/inapp/surfaces/modal.js +2 -2
- package/dist/features/inapp/surfaces/mount.d.ts +4 -4
- package/dist/features/inapp/surfaces/mount.js +4 -4
- package/dist/features/inapp/surfaces/palette.d.ts +1 -1
- package/dist/features/inapp/surfaces/palette.js +1 -1
- package/dist/features/inapp/surfaces/panel.d.ts +1 -1
- package/dist/features/inapp/surfaces/popover.d.ts +1 -1
- package/dist/features/inapp/surfaces/popover.js +2 -2
- package/dist/features/inapp/surfaces/render.d.ts +4 -4
- package/dist/features/inapp/surfaces/render.d.ts.map +1 -1
- package/dist/features/inapp/surfaces/render.js +23 -19
- package/dist/features/inapp/surfaces/render.js.map +1 -1
- package/dist/features/inapp/surfaces/slideover.d.ts +1 -1
- package/dist/features/inapp/surfaces/slideover.js +1 -1
- package/dist/features/inapp/surfaces/styles.js +179 -179
- package/dist/features/inapp/surfaces/surface.d.ts +4 -4
- package/dist/features/inapp/surfaces/surface.js +2 -2
- package/dist/features/inapp/surfaces/takeover.d.ts +1 -1
- package/dist/features/inapp/surfaces/takeover.js +2 -2
- package/dist/features/inapp/surfaces/toast.d.ts +1 -1
- package/dist/features/inapp/surfaces/toast.js +1 -1
- package/dist/features/inapp/surfaces/toolbar.d.ts +1 -1
- package/dist/features/inapp/surfaces/toolbar.js +2 -2
- package/dist/features/inapp/surfaces/tour.d.ts +1 -1
- package/dist/features/inapp/surfaces/tour.js +5 -5
- package/dist/features/inbox/InboxFeature.d.ts +1 -1
- package/dist/features/inbox/InboxFeature.js +5 -5
- package/dist/features/inbox/runtime.d.ts +2 -2
- package/dist/features/inbox/runtime.js +3 -3
- package/dist/features/inbox/store.d.ts +1 -1
- package/dist/features/inbox/sync.d.ts +2 -2
- package/dist/features/inbox/sync.js +1 -1
- package/dist/features/inbox/widget/InboxWidget.d.ts +1 -1
- package/dist/features/inbox/widget/InboxWidget.js +85 -85
- package/dist/features/journey/InteractionTracker.js +1 -1
- package/dist/features/journey/JourneyFeature.js +3 -3
- package/dist/features/manifest.d.ts +1 -1
- package/dist/features/manifest.js +18 -18
- package/dist/features/network/NetworkFeature.d.ts +1 -1
- package/dist/features/network/NetworkFeature.js +10 -10
- package/dist/features/network/capture/body.d.ts +1 -1
- package/dist/features/network/capture/body.js +1 -1
- package/dist/features/network/classify.d.ts +1 -1
- package/dist/features/network/fetchInterceptor.d.ts +1 -1
- package/dist/features/network/fetchInterceptor.js +1 -1
- package/dist/features/network/intercept/beacon.d.ts +1 -1
- package/dist/features/network/intercept/sse.d.ts +1 -1
- package/dist/features/network/intercept/streams.d.ts +4 -4
- package/dist/features/network/intercept/streams.js +3 -3
- package/dist/features/network/intercept/websocket.d.ts +1 -1
- package/dist/features/network/lazy.d.ts +3 -3
- package/dist/features/network/lazy.js +2 -2
- package/dist/features/network/normalize.d.ts +1 -1
- package/dist/features/network/normalize.js +3 -3
- package/dist/features/network/parse/graphql.d.ts +1 -1
- package/dist/features/network/sampler.js +1 -1
- package/dist/features/network/timing.d.ts +1 -1
- package/dist/features/network/xhrInterceptor.d.ts +1 -1
- package/dist/features/network/xhrInterceptor.js +1 -1
- package/dist/features/performance/PerformanceFeature.d.ts +2 -2
- package/dist/features/performance/PerformanceFeature.js +11 -11
- package/dist/features/performance/longTasks.js +1 -1
- package/dist/features/performance/normalize.js +1 -1
- package/dist/features/performance/sampler.js +1 -1
- package/dist/features/performance/trace/index.d.ts +4 -4
- package/dist/features/performance/trace/index.js +3 -3
- package/dist/features/performance/trace/pageload.d.ts +1 -1
- package/dist/features/performance/trace/pageload.js +1 -1
- package/dist/features/performance/trace/transaction.d.ts +2 -2
- package/dist/features/performance/trace/transaction.js +2 -2
- package/dist/features/profiler/ProfilerFeature.js +1 -1
- package/dist/features/push/PushFeature.d.ts +4 -4
- package/dist/features/push/PushFeature.js +3 -3
- package/dist/features/push/softAsk.d.ts +1 -1
- package/dist/features/push/softAsk.js +26 -26
- package/dist/features/replay/ReplayFeature.d.ts +1 -1
- package/dist/features/replay/ReplayFeature.js +12 -12
- package/dist/features/replay/engine/canvas.d.ts +2 -2
- package/dist/features/replay/engine/crossOrigin.d.ts +1 -1
- package/dist/features/replay/engine/crossOrigin.js +3 -3
- package/dist/features/replay/engine/cssom.d.ts +2 -2
- package/dist/features/replay/engine/iframe.d.ts +2 -2
- package/dist/features/replay/engine/iframe.js +3 -3
- package/dist/features/replay/engine/interactions.d.ts +1 -1
- package/dist/features/replay/engine/interactions.js +1 -1
- package/dist/features/replay/engine/mutations.d.ts +3 -3
- package/dist/features/replay/engine/mutations.js +2 -2
- package/dist/features/replay/engine/player.d.ts +2 -2
- package/dist/features/replay/engine/player.js +1 -1
- package/dist/features/replay/engine/rebuild.d.ts +1 -1
- package/dist/features/replay/engine/replayWorker.js +16 -16
- package/dist/features/replay/engine/resources.d.ts +1 -1
- package/dist/features/replay/engine/resources.js +1 -1
- package/dist/features/replay/engine/snapshot.d.ts +2 -2
- package/dist/features/replay/engine/snapshot.js +1 -1
- package/dist/features/replay/engine/traverse.d.ts +1 -1
- package/dist/features/replay/lifecycle/recorder.d.ts +1 -1
- package/dist/features/replay/lifecycle/recorder.js +20 -20
- package/dist/features/replay/lifecycle/sampling.js +1 -1
- package/dist/features/replay/lifecycle/viewContext.js +1 -1
- package/dist/features/scroll/index.js +1 -1
- package/dist/features/session/sessionManager.d.ts +1 -1
- package/dist/features/session/sessionManager.js +2 -2
- package/dist/features/session/sessionStore.js +1 -1
- package/dist/features/watchdog/WatchdogFeature.d.ts +1 -1
- package/dist/features/watchdog/WatchdogFeature.js +1 -1
- package/dist/features/watchdog/collectors.d.ts +1 -1
- package/dist/features/watchdog/collectors.js +1 -1
- package/dist/features/watchdog/engine.js +8 -8
- package/dist/features/watchdog/incidents.d.ts +1 -1
- package/dist/features/watchdog/incidents.js +1 -1
- package/dist/features/watchdog/rollup.d.ts +1 -1
- package/dist/features/watchdog/rollup.js +1 -1
- package/dist/features/webVitals/WebVitalsFeature.js +4 -4
- package/dist/features/webVitals/observe.d.ts +1 -1
- package/dist/features/webVitals/observe.js +1 -1
- package/dist/features/webperf/WebPerfFeature.d.ts +1 -1
- package/dist/features/webperf/WebPerfFeature.js +3 -3
- package/dist/features/webperf/collectors.js +1 -1
- package/dist/inapp.d.ts +1 -1
- package/dist/inapp.js +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +1 -1
- package/dist/pipeline/index.d.ts +1 -1
- package/dist/pipeline/index.js +1 -1
- package/dist/pipeline/pipeline.d.ts +3 -3
- package/dist/pipeline/pipeline.js +4 -4
- package/dist/public/ScaleBunFacade.d.ts +18 -18
- package/dist/public/ScaleBunFacade.js +11 -11
- package/dist/public/index.d.ts +4 -4
- package/dist/public/index.js +2 -2
- package/dist/scalebun-push-sw.js +236 -236
- package/dist/scalebun.min.js +17 -17
- package/dist/scalebun.min.js.map +4 -4
- package/dist/storage/index.d.ts +1 -1
- package/dist/storage/index.js +1 -1
- package/dist/transport/httpClient.d.ts +1 -1
- package/dist/transport/httpClient.js +3 -3
- package/dist/transport/index.d.ts +1 -1
- package/dist/transport/index.js +1 -1
- package/package.json +7 -7
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { uuid, now } from '../../../core';
|
|
2
|
-
import { PersistentBuffer } from '../../../storage/idb';
|
|
3
|
-
import { capBytes } from '../../../core/prune';
|
|
4
|
-
import { approxBytes } from './segmentBuffer';
|
|
5
|
-
import { AdaptiveController, adapt } from './adaptive';
|
|
6
|
-
import { redactFrame } from './pii';
|
|
7
|
-
import { shouldDeferHeavyEgress } from './deviceSignals';
|
|
8
|
-
import { getTabId, getViewId, getRoute } from './viewContext';
|
|
9
|
-
import { reserveSeq, ensureSeqAtLeast } from '../../session/sessionStore';
|
|
1
|
+
import { uuid, now } from '../../../core/index.js';
|
|
2
|
+
import { PersistentBuffer } from '../../../storage/idb.js';
|
|
3
|
+
import { capBytes } from '../../../core/prune.js';
|
|
4
|
+
import { approxBytes } from './segmentBuffer.js';
|
|
5
|
+
import { AdaptiveController, adapt } from './adaptive.js';
|
|
6
|
+
import { redactFrame } from './pii.js';
|
|
7
|
+
import { shouldDeferHeavyEgress } from './deviceSignals.js';
|
|
8
|
+
import { getTabId, getViewId, getRoute } from './viewContext.js';
|
|
9
|
+
import { reserveSeq, ensureSeqAtLeast } from '../../session/sessionStore.js';
|
|
10
10
|
const SEGMENT_MAX_FRAMES = 120;
|
|
11
11
|
const SEGMENT_MAX_BYTES = 200000; // seal a segment at ~200KB even if it hasn't hit the frame cap
|
|
12
12
|
const MAX_SEGMENTS = 8; // ring depth (count guard; the byte budget is the real bound)
|
|
@@ -97,8 +97,8 @@ export class RecorderController {
|
|
|
97
97
|
* ARM the capture pipeline (observers + first keyframe). The re-armable part lives in `arm()`. */
|
|
98
98
|
async init() {
|
|
99
99
|
const [{ ReplayEncoder }, { SegmentBuffer }] = await Promise.all([
|
|
100
|
-
import('../engine/replayWorker'),
|
|
101
|
-
import('./segmentBuffer'),
|
|
100
|
+
import('../engine/replayWorker.js'),
|
|
101
|
+
import('./segmentBuffer.js'),
|
|
102
102
|
]);
|
|
103
103
|
this.segBuf = new SegmentBuffer(MAX_SEGMENTS, MAX_BUFFER_BYTES);
|
|
104
104
|
// M6 crash-survival (opt-in): recover a PRIOR session's pre-roll if it was retained (i.e. the
|
|
@@ -128,14 +128,14 @@ export class RecorderController {
|
|
|
128
128
|
return;
|
|
129
129
|
const ctx = this.ctx;
|
|
130
130
|
const [{ NodeRegistry }, { takeSnapshot }, { MutationRecorder }, { InteractionRecorder }, { CssomRecorder }, { IframeManager },] = await Promise.all([
|
|
131
|
-
import('../engine/nodeRegistry'),
|
|
132
|
-
import('../engine/snapshot'),
|
|
133
|
-
import('../engine/mutations'),
|
|
134
|
-
import('../engine/interactions'),
|
|
135
|
-
import('../engine/cssom'),
|
|
131
|
+
import('../engine/nodeRegistry.js'),
|
|
132
|
+
import('../engine/snapshot.js'),
|
|
133
|
+
import('../engine/mutations.js'),
|
|
134
|
+
import('../engine/interactions.js'),
|
|
135
|
+
import('../engine/cssom.js'),
|
|
136
136
|
// R3: folded into the same Promise.all. As a separate `await` it added a round trip to
|
|
137
137
|
// time-to-first-keyframe for no reason — nothing above it depends on the iframe manager.
|
|
138
|
-
import('../engine/iframe'),
|
|
138
|
+
import('../engine/iframe.js'),
|
|
139
139
|
]);
|
|
140
140
|
const reg = new NodeRegistry();
|
|
141
141
|
// maskAllText defaults FALSE (text shown); host masks via privacy.maskReplayText or setPrivacy(). Inputs always masked.
|
|
@@ -190,7 +190,7 @@ export class RecorderController {
|
|
|
190
190
|
frameOrigins: ctx.replayFrameOrigins ?? [],
|
|
191
191
|
});
|
|
192
192
|
if ((ctx.replayFrameOrigins ?? []).length) {
|
|
193
|
-
void import('../engine/crossOrigin').then(({ installChildSatellite }) => {
|
|
193
|
+
void import('../engine/crossOrigin.js').then(({ installChildSatellite }) => {
|
|
194
194
|
this.childSatelliteStop = installChildSatellite(ctx.replayFrameOrigins ?? [], snapOpts);
|
|
195
195
|
});
|
|
196
196
|
}
|
|
@@ -205,7 +205,7 @@ export class RecorderController {
|
|
|
205
205
|
this.disconnectCssom = () => cssom.disconnect();
|
|
206
206
|
this.disconnectIframes = () => iframes.disconnect();
|
|
207
207
|
if (ctx.replayCanvas) {
|
|
208
|
-
const { CanvasRecorder } = await import('../engine/canvas');
|
|
208
|
+
const { CanvasRecorder } = await import('../engine/canvas.js');
|
|
209
209
|
const canvas = new CanvasRecorder(reg, (mutations) => {
|
|
210
210
|
interactions.notifyDomActivity();
|
|
211
211
|
this.push(this.delta({ mutations }));
|
|
@@ -217,7 +217,7 @@ export class RecorderController {
|
|
|
217
217
|
// egress pressure; recovers automatically when pressure clears.
|
|
218
218
|
this.adaptive = new AdaptiveController(ctx.egressPending);
|
|
219
219
|
// Checkpoint cadence: time / visibility-return / SPA URL change → re-keyframe.
|
|
220
|
-
const { installCadence } = await import('./cadence');
|
|
220
|
+
const { installCadence } = await import('./cadence.js');
|
|
221
221
|
this.disconnectCadence = installCadence({
|
|
222
222
|
keyframeIntervalMs: KEYFRAME_INTERVAL_MS,
|
|
223
223
|
onCheckpoint: (reason) => this.checkpoint(reason),
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { bucketOf } from '../../config/bucketing';
|
|
1
|
+
import { bucketOf } from '../../config/bucketing.js';
|
|
2
2
|
/** Immutable salt — changing it re-buckets every session, so treat as versioned + frozen. */
|
|
3
3
|
// NOTE: keeps the legacy `wzb-` prefix on purpose. This salt is a bucketing input, not
|
|
4
4
|
// branding — nobody ever sees it, and changing the string reshuffles which sessions are
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* a cadence-triggered keyframe naturally carries the new route via these getters — no extra watcher.)
|
|
11
11
|
* Zero-dependency; SSR-safe.
|
|
12
12
|
*/
|
|
13
|
-
import { uuid } from '../../../core';
|
|
13
|
+
import { uuid } from '../../../core/index.js';
|
|
14
14
|
const TAB_KEY = 'scalebun_replay_tab';
|
|
15
15
|
/** Stable per-tab id. sessionStorage is per-tab and survives in-tab reload → exactly per-tab identity. */
|
|
16
16
|
export function getTabId() {
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
*/
|
|
14
14
|
// Depth is defined ONCE in core/scrollDepth — see that file for why the previous local formula
|
|
15
15
|
// (`maxPx / (docH - viewportH)`) was wrong in two separate ways.
|
|
16
|
-
import { scrollDepthPct, foldBucketOf, isScrollable } from '../../core/scrollDepth';
|
|
16
|
+
import { scrollDepthPct, foldBucketOf, isScrollable } from '../../core/scrollDepth.js';
|
|
17
17
|
export function installScrollTracker() {
|
|
18
18
|
if (typeof window === 'undefined' || typeof document === 'undefined') {
|
|
19
19
|
// SSR / non-DOM: a no-op that never contributes props (autocapture keeps its own scalar).
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* store; this stays a thin header source.
|
|
7
7
|
*/
|
|
8
8
|
import type { ClientInfo, DeviceInfo, AppInfo, ContextInfo } from '@scalebun/protocol';
|
|
9
|
-
import type { ResolvedConfig } from '../../config/schema';
|
|
9
|
+
import type { ResolvedConfig } from '../../config/schema.js';
|
|
10
10
|
export declare class SessionManager {
|
|
11
11
|
private readonly config;
|
|
12
12
|
readonly sessionId: string;
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
* a second tab continues the same session instead of starting a new one. Boundary rules live in the
|
|
6
6
|
* store; this stays a thin header source.
|
|
7
7
|
*/
|
|
8
|
-
import { getOrCreateDeviceId, buildClient, buildDevice, buildApp, buildContext } from '../../core';
|
|
9
|
-
import { resolveSession, touchSession, DEFAULT_SESSION_TIMEOUT_MS, DEFAULT_SESSION_MAX_MS, } from './sessionStore';
|
|
8
|
+
import { getOrCreateDeviceId, buildClient, buildDevice, buildApp, buildContext } from '../../core/index.js';
|
|
9
|
+
import { resolveSession, touchSession, DEFAULT_SESSION_TIMEOUT_MS, DEFAULT_SESSION_MAX_MS, } from './sessionStore.js';
|
|
10
10
|
export class SessionManager {
|
|
11
11
|
constructor(config) {
|
|
12
12
|
this.config = config;
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
* sorts *before* the first load's later frames and scrambles the replay. Persisting the id without
|
|
40
40
|
* the counter would have traded a visible bug for a subtler one.
|
|
41
41
|
*/
|
|
42
|
-
import { uuid, now } from '../../core';
|
|
42
|
+
import { uuid, now } from '../../core/index.js';
|
|
43
43
|
const SESSION_KEY = 'scalebun_session';
|
|
44
44
|
/** Inactivity that ends a session. 30 min is the de-facto standard (GA, and most RUM tools). */
|
|
45
45
|
export const DEFAULT_SESSION_TIMEOUT_MS = 30 * 60 * 1000;
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* in the lazy chunk to keep the core bundle gate.
|
|
10
10
|
*/
|
|
11
11
|
import type { IFeature, FeatureContext } from '@scalebun/sdk-contracts';
|
|
12
|
-
import type { WatchdogStats } from './engine';
|
|
12
|
+
import type { WatchdogStats } from './engine.js';
|
|
13
13
|
export declare class WatchdogFeature implements IFeature {
|
|
14
14
|
readonly name = "watchdog";
|
|
15
15
|
private active;
|
|
@@ -11,7 +11,7 @@ export class WatchdogFeature {
|
|
|
11
11
|
if (typeof window === 'undefined' || typeof performance === 'undefined')
|
|
12
12
|
return;
|
|
13
13
|
this.active = true;
|
|
14
|
-
const { startWatchdog } = await import('./engine');
|
|
14
|
+
const { startWatchdog } = await import('./engine.js');
|
|
15
15
|
if (!this.active)
|
|
16
16
|
return; // torn down while the chunk loaded
|
|
17
17
|
this.handle = startWatchdog(ctx);
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* FPS + LoAF are NOT collected here — the watchdog taps PerformanceFeature's existing observer
|
|
7
7
|
* (jankTap) rather than opening a second one. Every collector is feature-detected and fail-soft.
|
|
8
8
|
*/
|
|
9
|
-
import { now } from '../../core';
|
|
9
|
+
import { now } from '../../core/index.js';
|
|
10
10
|
function isVisible() {
|
|
11
11
|
try {
|
|
12
12
|
return typeof document === 'undefined' || document.visibilityState !== 'hidden';
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { uuid, now, getReplayCoord } from '../../core';
|
|
2
|
-
import { fnv1a32 } from '../config/bucketing';
|
|
3
|
-
import { onJank } from '../performance/jankTap';
|
|
4
|
-
import { flameAvailable, captureFlameWindow } from '../profiler/capture';
|
|
5
|
-
import { IncidentEngine } from './incidents';
|
|
6
|
-
import { HealthRollup } from './rollup';
|
|
7
|
-
import { startCollectors } from './collectors';
|
|
8
|
-
import { resolveThresholds } from './config';
|
|
1
|
+
import { uuid, now, getReplayCoord } from '../../core/index.js';
|
|
2
|
+
import { fnv1a32 } from '../config/bucketing.js';
|
|
3
|
+
import { onJank } from '../performance/jankTap.js';
|
|
4
|
+
import { flameAvailable, captureFlameWindow } from '../profiler/capture.js';
|
|
5
|
+
import { IncidentEngine } from './incidents.js';
|
|
6
|
+
import { HealthRollup } from './rollup.js';
|
|
7
|
+
import { startCollectors } from './collectors.js';
|
|
8
|
+
import { resolveThresholds } from './config.js';
|
|
9
9
|
const NOOP = {
|
|
10
10
|
stop: () => { },
|
|
11
11
|
stats: () => ({ incidents: 0, droppedIncidents: 0, rollups: 0, tiers: { pressure: false, memory: false } }),
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* a real dwell model for compute-pressure (which is edge-triggered, not sampled), — and implements
|
|
10
10
|
* `main_thread_stall` + `memory_leak_suspicion`, which mobile declares but never built.
|
|
11
11
|
*/
|
|
12
|
-
import type { WatchdogThresholds } from './config';
|
|
12
|
+
import type { WatchdogThresholds } from './config.js';
|
|
13
13
|
export type Severity = 'info' | 'warning' | 'critical';
|
|
14
14
|
export type Confidence = 'low' | 'medium' | 'high';
|
|
15
15
|
export type IncidentType = 'cpu_spike' | 'main_thread_stall' | 'jank_burst' | 'frozen_frame' | 'memory_surge' | 'memory_leak_suspicion' | 'low_memory_pressure';
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* distribution, heap slope, incident/drop counts, honest tier availability). Rollups — not raw samples —
|
|
5
5
|
* are what egress, so a session costs ≤ ~2 perf items/min regardless of sampling cadence.
|
|
6
6
|
*/
|
|
7
|
-
import { now } from '../../core';
|
|
7
|
+
import { now } from '../../core/index.js';
|
|
8
8
|
function pct(sorted, q) {
|
|
9
9
|
if (!sorted.length)
|
|
10
10
|
return 0;
|
|
@@ -8,10 +8,10 @@
|
|
|
8
8
|
* visibilitychange listener is registered before the pipeline's flush listener → we emit the CWV
|
|
9
9
|
* items, then the pipeline flushes them (keepalive). Do not reorder bootstrap without preserving this.
|
|
10
10
|
*/
|
|
11
|
-
import { safeObserve } from './observe';
|
|
12
|
-
import { lcpFrom, maxInp, newClsState, addClsWindowed, stripUrlQuery, lcpPhases, ttfbPhases, loafScriptFor, rateVital } from './vitals';
|
|
13
|
-
import { lcpAttribution, newShiftAcc, addShiftSources, clsAttribution, newInpAcc, addInpInteraction, inpAttribution, } from './attribution';
|
|
14
|
-
import { uuid, now } from '../../core';
|
|
11
|
+
import { safeObserve } from './observe.js';
|
|
12
|
+
import { lcpFrom, maxInp, newClsState, addClsWindowed, stripUrlQuery, lcpPhases, ttfbPhases, loafScriptFor, rateVital } from './vitals.js';
|
|
13
|
+
import { lcpAttribution, newShiftAcc, addShiftSources, clsAttribution, newInpAcc, addInpInteraction, inpAttribution, } from './attribution.js';
|
|
14
|
+
import { uuid, now } from '../../core/index.js';
|
|
15
15
|
export class WebVitalsFeature {
|
|
16
16
|
constructor() {
|
|
17
17
|
this.name = 'webVitals';
|
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
* Re-export of the shared PerformanceObserver helper (moved to core/ so F-VIT and F-PERF share one
|
|
3
3
|
* implementation). Kept here so existing F-VIT imports stay stable.
|
|
4
4
|
*/
|
|
5
|
-
export { safeObserve } from '../../core/observe';
|
|
5
|
+
export { safeObserve } from '../../core/observe.js';
|
|
6
6
|
//# sourceMappingURL=observe.d.ts.map
|
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
* Re-export of the shared PerformanceObserver helper (moved to core/ so F-VIT and F-PERF share one
|
|
3
3
|
* implementation). Kept here so existing F-VIT imports stay stable.
|
|
4
4
|
*/
|
|
5
|
-
export { safeObserve } from '../../core/observe';
|
|
5
|
+
export { safeObserve } from '../../core/observe.js';
|
|
6
6
|
//# sourceMappingURL=observe.js.map
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* buffered LoAF) so it stays out of the core bundle. Raw web APIs only (zero third-party deps).
|
|
6
6
|
*/
|
|
7
7
|
import type { IFeature, FeatureContext } from '@scalebun/sdk-contracts';
|
|
8
|
-
export { fpsFromFrames, loafSeverity, navMetric } from './math';
|
|
8
|
+
export { fpsFromFrames, loafSeverity, navMetric } from './math.js';
|
|
9
9
|
export declare class WebPerfFeature implements IFeature {
|
|
10
10
|
readonly name = "webPerf";
|
|
11
11
|
private ctx;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { uuid, now } from '../../core';
|
|
1
|
+
import { uuid, now } from '../../core/index.js';
|
|
2
2
|
// Re-export the pure math (also covered by the unit tests).
|
|
3
|
-
export { fpsFromFrames, loafSeverity, navMetric } from './math';
|
|
3
|
+
export { fpsFromFrames, loafSeverity, navMetric } from './math.js';
|
|
4
4
|
function currentScreen() {
|
|
5
5
|
try {
|
|
6
6
|
return typeof location !== 'undefined' ? location.pathname : undefined;
|
|
@@ -23,7 +23,7 @@ export class WebPerfFeature {
|
|
|
23
23
|
if (typeof window === 'undefined' || typeof performance === 'undefined')
|
|
24
24
|
return;
|
|
25
25
|
this.active = true;
|
|
26
|
-
const { startCollectors } = await import('./collectors');
|
|
26
|
+
const { startCollectors } = await import('./collectors.js');
|
|
27
27
|
if (this.active)
|
|
28
28
|
this.stop = startCollectors((metric, value, metadata, duration) => this.emit(metric, value, metadata, duration), () => this.active);
|
|
29
29
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Web-perf collectors (page-load / FPS / LoAF) — the LAZY chunk. Loaded by WebPerfFeature.setup so the
|
|
2
2
|
// observer/rAF wiring stays out of the core bundle. Returns a stop() that tears everything down.
|
|
3
|
-
import { fpsFromFrames, loafSeverity, navMetric } from './math';
|
|
3
|
+
import { fpsFromFrames, loafSeverity, navMetric } from './math.js';
|
|
4
4
|
const FPS_WINDOW_MS = 5000;
|
|
5
5
|
const FPS_GAP_MS = 25000;
|
|
6
6
|
const LOAF_MIN_MS = 50;
|
package/dist/inapp.d.ts
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
* Subpath entry for `@scalebun/web/inapp` — the In-App Messaging 2.0 public API. Kept separate from
|
|
3
3
|
* the size-gated `index.ts` so none of the IAM engine loads into the eager core bundle.
|
|
4
4
|
*/
|
|
5
|
-
export * from './features/inapp';
|
|
5
|
+
export * from './features/inapp/index.js';
|
|
6
6
|
//# sourceMappingURL=inapp.d.ts.map
|
package/dist/inapp.js
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
* Subpath entry for `@scalebun/web/inapp` — the In-App Messaging 2.0 public API. Kept separate from
|
|
3
3
|
* the size-gated `index.ts` so none of the IAM engine loads into the eager core bundle.
|
|
4
4
|
*/
|
|
5
|
-
export * from './features/inapp';
|
|
5
|
+
export * from './features/inapp/index.js';
|
|
6
6
|
//# sourceMappingURL=inapp.js.map
|
package/dist/index.d.ts
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
*
|
|
9
9
|
* 🚧 Scaffold: the facade is stubbed; capture features are not implemented yet.
|
|
10
10
|
*/
|
|
11
|
-
export { ScaleBun as default, ScaleBun } from './public/ScaleBunFacade';
|
|
11
|
+
export { ScaleBun as default, ScaleBun } from './public/ScaleBunFacade.js';
|
|
12
12
|
export type { ScaleBunInitConfig, ScaleBunFeatures, ScaleBunUser, PrivacyConfig, } from '@scalebun/sdk-contracts';
|
|
13
13
|
/**
|
|
14
14
|
* The gamified in-app contract, so a host can type its `onInAppGameRequest` handler — and share one
|
|
@@ -16,7 +16,7 @@ export type { ScaleBunInitConfig, ScaleBunFeatures, ScaleBunUser, PrivacyConfig,
|
|
|
16
16
|
*
|
|
17
17
|
* TYPES ONLY: `export type` erases at build time, so this adds nothing to the bundle.
|
|
18
18
|
*/
|
|
19
|
-
export type { InAppGameRequest, InAppGameResult, InAppGameOutcome, InAppGameAction, InAppGameVariantKey, InAppGameRequestHandler, } from './features/engage/gameTypes';
|
|
19
|
+
export type { InAppGameRequest, InAppGameResult, InAppGameOutcome, InAppGameAction, InAppGameVariantKey, InAppGameRequestHandler, } from './features/engage/gameTypes.js';
|
|
20
20
|
/**
|
|
21
21
|
* Inbox contracts, so a host can render the message list in its OWN design system.
|
|
22
22
|
*
|
|
@@ -27,5 +27,5 @@ export type { InAppGameRequest, InAppGameResult, InAppGameOutcome, InAppGameActi
|
|
|
27
27
|
*
|
|
28
28
|
* TYPES ONLY — `export type` erases at build time, so this costs zero bytes.
|
|
29
29
|
*/
|
|
30
|
-
export type { InboxMessage, InboxController, InboxState, InboxCta, InboxQueryOptions, InboxPage, InboxMessageState, InboxSyncStatus, InboxMountOptions, InboxLabels, InboxLayout, } from './features/inbox/types';
|
|
30
|
+
export type { InboxMessage, InboxController, InboxState, InboxCta, InboxQueryOptions, InboxPage, InboxMessageState, InboxSyncStatus, InboxMountOptions, InboxLabels, InboxLayout, } from './features/inbox/types.js';
|
|
31
31
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.js
CHANGED
|
@@ -8,5 +8,5 @@
|
|
|
8
8
|
*
|
|
9
9
|
* 🚧 Scaffold: the facade is stubbed; capture features are not implemented yet.
|
|
10
10
|
*/
|
|
11
|
-
export { ScaleBun as default, ScaleBun } from './public/ScaleBunFacade';
|
|
11
|
+
export { ScaleBun as default, ScaleBun } from './public/ScaleBunFacade.js';
|
|
12
12
|
//# sourceMappingURL=index.js.map
|
package/dist/pipeline/index.d.ts
CHANGED
package/dist/pipeline/index.js
CHANGED
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
* re-queued and mirrored to IndexedDB so it survives a reload.
|
|
5
5
|
*/
|
|
6
6
|
import type { Item } from '@scalebun/protocol';
|
|
7
|
-
import type { ResolvedConfig } from '../config/schema';
|
|
8
|
-
import type { SessionManager } from '../features/session/sessionManager';
|
|
9
|
-
import type { HttpClient } from '../transport/httpClient';
|
|
7
|
+
import type { ResolvedConfig } from '../config/schema.js';
|
|
8
|
+
import type { SessionManager } from '../features/session/sessionManager.js';
|
|
9
|
+
import type { HttpClient } from '../transport/httpClient.js';
|
|
10
10
|
export declare class Pipeline {
|
|
11
11
|
private readonly config;
|
|
12
12
|
private readonly session;
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
* SessionEnvelopes and flushes on a timer / on page-hide. At-least-once: a failed batch is
|
|
4
4
|
* re-queued and mirrored to IndexedDB so it survives a reload.
|
|
5
5
|
*/
|
|
6
|
-
import { PersistentBuffer } from '../storage/idb';
|
|
7
|
-
import { now } from '../core';
|
|
8
|
-
import { Backoff, isOnline } from '../core/retry';
|
|
9
|
-
import { capBytes, freshOnly } from '../core/prune';
|
|
6
|
+
import { PersistentBuffer } from '../storage/idb.js';
|
|
7
|
+
import { now } from '../core/index.js';
|
|
8
|
+
import { Backoff, isOnline } from '../core/retry.js';
|
|
9
|
+
import { capBytes, freshOnly } from '../core/prune.js';
|
|
10
10
|
// Inlined (not imported) so the zod-laden `@scalebun/protocol` barrel — and zod itself (~12 KB gz) —
|
|
11
11
|
// stays OUT of the SDK bundle; SCHEMA_VERSION was the only runtime import that pulled it. The type
|
|
12
12
|
// annotation pins this to the contract: a protocol SCHEMA_VERSION bump fails the SDK build. The
|
|
@@ -3,22 +3,22 @@
|
|
|
3
3
|
* app. Everything funnels into the ONE pipeline as contract Items.
|
|
4
4
|
*/
|
|
5
5
|
import type { ScaleBunInitConfig, ScaleBunUser } from '@scalebun/sdk-contracts';
|
|
6
|
-
import type { ReplayStats } from '../features/replay/lifecycle/recorder';
|
|
7
|
-
import { type BreadcrumbLevel } from '../core';
|
|
8
|
-
import { type RevenueInput } from '../features/analytics/revenue';
|
|
9
|
-
import type { SubscriptionInput } from '../features/analytics/subscription';
|
|
10
|
-
import { type ErrorLevel } from '../features/errors/scope';
|
|
11
|
-
import type { ErrorStats } from '../features/errors/ErrorsFeature';
|
|
12
|
-
import { type TransactionHandle } from '../features/performance/trace/types';
|
|
13
|
-
import type { PerfStats } from '../features/performance/PerformanceFeature';
|
|
14
|
-
import type { WatchdogStats } from '../features/watchdog/engine';
|
|
15
|
-
import type { NetworkStats } from '../features/network/NetworkFeature';
|
|
16
|
-
import type { VariationDetail } from '../features/config/types';
|
|
17
|
-
import type { SurveyResult as EngageSurveyResult, RatingEventType as EngageRatingEventType, RatingEventInput as EngageRatingEventInput } from '../features/engage/types';
|
|
18
|
-
import type { PushEnableOptions, PushEnableStatus, PushStatus } from '../features/push/PushFeature';
|
|
19
|
-
import type { PushDiagnostics } from '../features/push/diagnostics';
|
|
20
|
-
import type { InboxController } from '../features/inbox/types';
|
|
21
|
-
import type { TourSpec } from '../features/coach/types';
|
|
6
|
+
import type { ReplayStats } from '../features/replay/lifecycle/recorder.js';
|
|
7
|
+
import { type BreadcrumbLevel } from '../core/index.js';
|
|
8
|
+
import { type RevenueInput } from '../features/analytics/revenue.js';
|
|
9
|
+
import type { SubscriptionInput } from '../features/analytics/subscription.js';
|
|
10
|
+
import { type ErrorLevel } from '../features/errors/scope.js';
|
|
11
|
+
import type { ErrorStats } from '../features/errors/ErrorsFeature.js';
|
|
12
|
+
import { type TransactionHandle } from '../features/performance/trace/types.js';
|
|
13
|
+
import type { PerfStats } from '../features/performance/PerformanceFeature.js';
|
|
14
|
+
import type { WatchdogStats } from '../features/watchdog/engine.js';
|
|
15
|
+
import type { NetworkStats } from '../features/network/NetworkFeature.js';
|
|
16
|
+
import type { VariationDetail } from '../features/config/types.js';
|
|
17
|
+
import type { SurveyResult as EngageSurveyResult, RatingEventType as EngageRatingEventType, RatingEventInput as EngageRatingEventInput } from '../features/engage/types.js';
|
|
18
|
+
import type { PushEnableOptions, PushEnableStatus, PushStatus } from '../features/push/PushFeature.js';
|
|
19
|
+
import type { PushDiagnostics } from '../features/push/diagnostics.js';
|
|
20
|
+
import type { InboxController } from '../features/inbox/types.js';
|
|
21
|
+
import type { TourSpec } from '../features/coach/types.js';
|
|
22
22
|
declare class ScaleBunFacade {
|
|
23
23
|
private rt;
|
|
24
24
|
private ready;
|
|
@@ -351,14 +351,14 @@ declare class ScaleBunFacade {
|
|
|
351
351
|
interface CoachController {
|
|
352
352
|
start(tour: TourSpec, opts?: {
|
|
353
353
|
resume?: boolean;
|
|
354
|
-
context?: import('../features/coach/types').TourContext;
|
|
354
|
+
context?: import('../features/coach/types.js').TourContext;
|
|
355
355
|
}): void;
|
|
356
356
|
startInline(tour: TourSpec): void;
|
|
357
357
|
/** Start a dashboard-authored, published tour by id (fetched from the config lane). Pass a `preview`
|
|
358
358
|
* token (from the dashboard's Preview action) to run a DRAFT tour before it's published. */
|
|
359
359
|
startById(id: string, opts?: {
|
|
360
360
|
resume?: boolean;
|
|
361
|
-
context?: import('../features/coach/types').TourContext;
|
|
361
|
+
context?: import('../features/coach/types.js').TourContext;
|
|
362
362
|
preview?: string;
|
|
363
363
|
}): void;
|
|
364
364
|
/** Report this page's keys so the dashboard tour composer can offer them as
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
* ScaleBunFacade — the public singleton. Methods are crash-safe: the SDK never throws into the host
|
|
3
3
|
* app. Everything funnels into the ONE pipeline as contract Items.
|
|
4
4
|
*/
|
|
5
|
-
import { SDKBootstrapper } from '../bootstrap/SDKBootstrapper';
|
|
6
|
-
import { buildBugReportPayload } from '../features/bugreport/collect';
|
|
7
|
-
import { now, uuid, addBreadcrumb as addCrumb, getReplayCoord, scrubProps, patchEvalContext, clearEvalContext, isServer, getRuntime, setNonce } from '../core';
|
|
8
|
-
import { normalizeRevenue } from '../features/analytics/revenue';
|
|
9
|
-
import { setTag, setContext, setErrorLevel } from '../features/errors/scope';
|
|
10
|
-
import { NOOP_TXN } from '../features/performance/trace/types';
|
|
5
|
+
import { SDKBootstrapper } from '../bootstrap/SDKBootstrapper.js';
|
|
6
|
+
import { buildBugReportPayload } from '../features/bugreport/collect.js';
|
|
7
|
+
import { now, uuid, addBreadcrumb as addCrumb, getReplayCoord, scrubProps, patchEvalContext, clearEvalContext, isServer, getRuntime, setNonce } from '../core/index.js';
|
|
8
|
+
import { normalizeRevenue } from '../features/analytics/revenue.js';
|
|
9
|
+
import { setTag, setContext, setErrorLevel } from '../features/errors/scope.js';
|
|
10
|
+
import { NOOP_TXN } from '../features/performance/trace/types.js';
|
|
11
11
|
class ScaleBunFacade {
|
|
12
12
|
constructor() {
|
|
13
13
|
this.rt = null;
|
|
@@ -120,7 +120,7 @@ class ScaleBunFacade {
|
|
|
120
120
|
if (p)
|
|
121
121
|
return p.check(opts);
|
|
122
122
|
// Not initialized — the explanatory report lives in the lazy chunk, not in eager core.
|
|
123
|
-
return (await import('../features/push/diagnostics')).notInitializedReport();
|
|
123
|
+
return (await import('../features/push/diagnostics.js')).notInitializedReport();
|
|
124
124
|
},
|
|
125
125
|
};
|
|
126
126
|
// ── Install attribution (W1b) — MMP primitives on the analytics lane ────────────
|
|
@@ -283,7 +283,7 @@ class ScaleBunFacade {
|
|
|
283
283
|
*/
|
|
284
284
|
const softAsk = config?.push?.softAsk;
|
|
285
285
|
if (softAsk) {
|
|
286
|
-
void import('../features/push/softAsk')
|
|
286
|
+
void import('../features/push/softAsk.js')
|
|
287
287
|
.then(({ armSoftAsk }) => armSoftAsk(softAsk, {
|
|
288
288
|
enable: () => this.enablePush(),
|
|
289
289
|
permission: () => Notification.permission,
|
|
@@ -523,7 +523,7 @@ class ScaleBunFacade {
|
|
|
523
523
|
* Dynamic-imported so a host that never places inline messages pays nothing for the registry.
|
|
524
524
|
*/
|
|
525
525
|
async registerInAppSlot(name, el) {
|
|
526
|
-
const { registerInAppSlot } = await import('../features/engage/inappSlots');
|
|
526
|
+
const { registerInAppSlot } = await import('../features/engage/inappSlots.js');
|
|
527
527
|
return registerInAppSlot(name, el);
|
|
528
528
|
}
|
|
529
529
|
async reportBug(input) {
|
|
@@ -631,7 +631,7 @@ class ScaleBunFacade {
|
|
|
631
631
|
return Promise.resolve(this.coachFeature);
|
|
632
632
|
if (!this.rt)
|
|
633
633
|
return Promise.resolve(null);
|
|
634
|
-
return import('../features/coach/CoachmarkFeature').then(({ CoachmarkFeature }) => {
|
|
634
|
+
return import('../features/coach/CoachmarkFeature.js').then(({ CoachmarkFeature }) => {
|
|
635
635
|
if (this.coachFeature)
|
|
636
636
|
return this.coachFeature;
|
|
637
637
|
const deps = {
|
|
@@ -682,7 +682,7 @@ class ScaleBunFacade {
|
|
|
682
682
|
return this.pushFeature;
|
|
683
683
|
if (!this.rt)
|
|
684
684
|
return null;
|
|
685
|
-
const { PushFeature } = await import('../features/push/PushFeature');
|
|
685
|
+
const { PushFeature } = await import('../features/push/PushFeature.js');
|
|
686
686
|
this.pushFeature = new PushFeature({
|
|
687
687
|
apiBaseUrl: this.rt.config.apiBaseUrl,
|
|
688
688
|
clientKey: this.rt.config.clientKey,
|
package/dist/public/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { ScaleBun } from './ScaleBunFacade';
|
|
2
|
-
export type { ScaleBunFacade } from './ScaleBunFacade';
|
|
3
|
-
export { createTypedTracker, defineTrackingPlan } from './typedTracker';
|
|
4
|
-
export type { TypedTracker, TypedTrackerPlan, TrackedEventMap, TrackedEventSpec, PlanPropType, PropsFor, TrackTarget, } from './typedTracker';
|
|
1
|
+
export { ScaleBun } from './ScaleBunFacade.js';
|
|
2
|
+
export type { ScaleBunFacade } from './ScaleBunFacade.js';
|
|
3
|
+
export { createTypedTracker, defineTrackingPlan } from './typedTracker.js';
|
|
4
|
+
export type { TypedTracker, TypedTrackerPlan, TrackedEventMap, TrackedEventSpec, PlanPropType, PropsFor, TrackTarget, } from './typedTracker.js';
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/public/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { ScaleBun } from './ScaleBunFacade';
|
|
1
|
+
export { ScaleBun } from './ScaleBunFacade.js';
|
|
2
2
|
// Typed tracking plan — compile-time checking for `track()`, sharing ONE object with the runtime plan.
|
|
3
|
-
export { createTypedTracker, defineTrackingPlan } from './typedTracker';
|
|
3
|
+
export { createTypedTracker, defineTrackingPlan } from './typedTracker.js';
|
|
4
4
|
//# sourceMappingURL=index.js.map
|