@syntrologie/runtime-sdk 2.1.0 → 2.2.0-canary.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/CAPABILITIES.md +50 -43
- package/README.md +7 -7
- package/dist/RuntimeProvider.d.ts +1 -1
- package/dist/ShadowRootContext.d.ts +19 -0
- package/dist/SmartCanvasApp.d.ts +3 -3
- package/dist/SmartCanvasElement.d.ts +7 -2
- package/dist/SmartCanvasPortal.d.ts +1 -1
- package/dist/actions/executors/index.d.ts +3 -3
- package/dist/actions/executors/tour.d.ts +1 -1
- package/dist/actions/index.d.ts +4 -3
- package/dist/actions/schema.d.ts +1229 -0
- package/dist/actions/schema.js +67 -0
- package/dist/actions/schema.js.map +7 -0
- package/dist/adaptives/adaptive-chatbot/index.js +4 -4
- package/dist/adaptives/adaptive-chatbot/index.js.map +4 -4
- package/dist/adaptives/adaptive-content/index.js +2 -2
- package/dist/adaptives/adaptive-content/index.js.map +4 -4
- package/dist/adaptives/adaptive-faq/index.js +23 -6
- package/dist/adaptives/adaptive-faq/index.js.map +4 -4
- package/dist/adaptives/adaptive-gamification/index.js.map +1 -1
- package/dist/adaptives/adaptive-nav/index.js +22 -7
- package/dist/adaptives/adaptive-nav/index.js.map +4 -4
- package/dist/adaptives/adaptive-overlays/index.js +13 -13
- package/dist/adaptives/adaptive-overlays/index.js.map +4 -4
- package/dist/api.d.ts +2 -2
- package/dist/apps/examples/gamification-app.example.d.ts +4 -4
- package/dist/apps/index.d.ts +7 -7
- package/dist/blocks/data/index.d.ts +1 -1
- package/dist/blocks/index.d.ts +2 -2
- package/dist/blocks/interactive/index.d.ts +1 -1
- package/dist/blocks/notification/NotificationBlock.d.ts +1 -1
- package/dist/blocks/notification/index.d.ts +1 -1
- package/dist/bootstrap.d.ts +4 -4
- package/dist/chunk-AYTRRBR5.js +251 -0
- package/dist/chunk-AYTRRBR5.js.map +7 -0
- package/dist/chunk-CU354JTM.js +7921 -0
- package/dist/chunk-CU354JTM.js.map +7 -0
- package/dist/components/ShadowCanvasOverlay.d.ts +2 -2
- package/dist/components/TileCard.d.ts +1 -1
- package/dist/context/ContextManager.d.ts +1 -1
- package/dist/context/index.d.ts +3 -3
- package/dist/decisions/engine.d.ts +1 -1
- package/dist/decisions/index.d.ts +3 -3
- package/dist/decisions/schema.d.ts +24 -24
- package/dist/decisions/strategies/rules.d.ts +1 -1
- package/dist/decisions/strategies/score.d.ts +1 -1
- package/dist/editorLoader.d.ts +4 -4
- package/dist/events/EventAccumulator.d.ts +1 -1
- package/dist/events/EventBus.d.ts +1 -1
- package/dist/events/index.d.ts +7 -6
- package/dist/events/registerConfigPredicates.d.ts +19 -0
- package/dist/experiments/adapters/growthbook.d.ts +1 -1
- package/dist/experiments/index.d.ts +2 -2
- package/dist/experiments/registry.d.ts +1 -1
- package/dist/fetchers/index.d.ts +2 -2
- package/dist/hooks/useShadowCanvasConfig.d.ts +1 -1
- package/dist/hostPatcher/index.d.ts +2 -2
- package/dist/index.d.ts +24 -21
- package/dist/index.js +816 -75
- package/dist/index.js.map +7 -1
- package/dist/metrics/index.d.ts +1 -1
- package/dist/notifications/index.d.ts +6 -6
- package/dist/overlays/runtime/index.d.ts +3 -3
- package/dist/overlays/runtime/overlay/root.d.ts +17 -1
- package/dist/overlays/runtime/overlay/tooltip.d.ts +1 -1
- package/dist/react.js +90 -134
- package/dist/react.js.map +7 -1
- package/dist/render/RenderContext.d.ts +2 -2
- package/dist/render/index.d.ts +2 -2
- package/dist/render/types.d.ts +2 -2
- package/dist/runtime.d.ts +8 -8
- package/dist/smart-canvas.esm.js +127 -124
- package/dist/smart-canvas.esm.js.map +4 -4
- package/dist/smart-canvas.js +17160 -16782
- package/dist/smart-canvas.js.map +4 -4
- package/dist/smart-canvas.min.js +127 -124
- package/dist/smart-canvas.min.js.map +4 -4
- package/dist/state/StateStore.d.ts +1 -1
- package/dist/state/helpers/cooldowns.d.ts +1 -1
- package/dist/state/helpers/dismissals.d.ts +1 -1
- package/dist/state/helpers/frequency.d.ts +1 -1
- package/dist/state/index.d.ts +3 -3
- package/dist/surfaces/index.d.ts +3 -3
- package/dist/surfaces/positioning.d.ts +1 -1
- package/dist/telemetry/adapters/posthog.d.ts +2 -2
- package/dist/telemetry/index.d.ts +3 -3
- package/dist/telemetry/registry.d.ts +1 -1
- package/dist/theme/ThemeProvider.d.ts +1 -1
- package/dist/theme/extractHostTheme.d.ts +1 -1
- package/dist/theme/index.d.ts +4 -4
- package/dist/types-only.d.ts +1 -1
- package/dist/types-only.js +1 -11
- package/dist/types-only.js.map +7 -1
- package/dist/types.d.ts +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/widgets/index.d.ts +1 -1
- package/package.json +24 -17
- package/schema/canvas-config.base.schema.json +351 -0
- package/schema/canvas-config.schema.json +3202 -440
- package/scripts/validate-config.mjs +54 -58
- package/dist/RuntimeProvider.js +0 -113
- package/dist/RuntimeProvider.js.map +0 -1
- package/dist/SmartCanvasApp.js +0 -143
- package/dist/SmartCanvasApp.js.map +0 -1
- package/dist/SmartCanvasElement.js +0 -138
- package/dist/SmartCanvasElement.js.map +0 -1
- package/dist/SmartCanvasPortal.js +0 -17
- package/dist/SmartCanvasPortal.js.map +0 -1
- package/dist/actions/ActionEngine.js +0 -272
- package/dist/actions/ActionEngine.js.map +0 -1
- package/dist/actions/executors/index.js +0 -240
- package/dist/actions/executors/index.js.map +0 -1
- package/dist/actions/executors/tour.js +0 -332
- package/dist/actions/executors/tour.js.map +0 -1
- package/dist/actions/index.js +0 -12
- package/dist/actions/index.js.map +0 -1
- package/dist/actions/types.js +0 -8
- package/dist/actions/types.js.map +0 -1
- package/dist/actions/validation.js +0 -577
- package/dist/actions/validation.js.map +0 -1
- package/dist/antiFlicker.js +0 -39
- package/dist/antiFlicker.js.map +0 -1
- package/dist/api.js +0 -205
- package/dist/api.js.map +0 -1
- package/dist/apps/AppContext.js +0 -91
- package/dist/apps/AppContext.js.map +0 -1
- package/dist/apps/AppLoader.js +0 -293
- package/dist/apps/AppLoader.js.map +0 -1
- package/dist/apps/AppRegistry.js +0 -317
- package/dist/apps/AppRegistry.js.map +0 -1
- package/dist/apps/examples/gamification-app.example.js +0 -329
- package/dist/apps/examples/gamification-app.example.js.map +0 -1
- package/dist/apps/index.js +0 -16
- package/dist/apps/index.js.map +0 -1
- package/dist/apps/types.js +0 -8
- package/dist/apps/types.js.map +0 -1
- package/dist/blocks/data/ComparisonBlock.js +0 -95
- package/dist/blocks/data/ComparisonBlock.js.map +0 -1
- package/dist/blocks/data/StatsBlock.js +0 -102
- package/dist/blocks/data/StatsBlock.js.map +0 -1
- package/dist/blocks/data/index.js +0 -3
- package/dist/blocks/data/index.js.map +0 -1
- package/dist/blocks/index.js +0 -93
- package/dist/blocks/index.js.map +0 -1
- package/dist/blocks/interactive/ChecklistBlock.js +0 -111
- package/dist/blocks/interactive/ChecklistBlock.js.map +0 -1
- package/dist/blocks/interactive/RatingBlock.js +0 -147
- package/dist/blocks/interactive/RatingBlock.js.map +0 -1
- package/dist/blocks/interactive/index.js +0 -3
- package/dist/blocks/interactive/index.js.map +0 -1
- package/dist/blocks/notification/NotificationBlock.js +0 -171
- package/dist/blocks/notification/NotificationBlock.js.map +0 -1
- package/dist/blocks/notification/index.js +0 -2
- package/dist/blocks/notification/index.js.map +0 -1
- package/dist/blocks/theme-tokens.js +0 -25
- package/dist/blocks/theme-tokens.js.map +0 -1
- package/dist/bootstrap.js +0 -448
- package/dist/bootstrap.js.map +0 -1
- package/dist/bundle-entry.js +0 -9
- package/dist/bundle-entry.js.map +0 -1
- package/dist/components/ShadowCanvasOverlay.js +0 -327
- package/dist/components/ShadowCanvasOverlay.js.map +0 -1
- package/dist/components/TileCard.js +0 -103
- package/dist/components/TileCard.js.map +0 -1
- package/dist/components/TileWheel.js +0 -50
- package/dist/components/TileWheel.js.map +0 -1
- package/dist/config-validator.js +0 -173
- package/dist/config-validator.js.map +0 -1
- package/dist/configFetcher.js +0 -131
- package/dist/configFetcher.js.map +0 -1
- package/dist/context/ContextManager.js +0 -269
- package/dist/context/ContextManager.js.map +0 -1
- package/dist/context/index.js +0 -7
- package/dist/context/index.js.map +0 -1
- package/dist/context/schema.js +0 -50
- package/dist/context/schema.js.map +0 -1
- package/dist/context/types.js +0 -8
- package/dist/context/types.js.map +0 -1
- package/dist/controller.js +0 -34
- package/dist/controller.js.map +0 -1
- package/dist/decisions/engine.js +0 -117
- package/dist/decisions/engine.js.map +0 -1
- package/dist/decisions/index.js +0 -10
- package/dist/decisions/index.js.map +0 -1
- package/dist/decisions/schema.js +0 -151
- package/dist/decisions/schema.js.map +0 -1
- package/dist/decisions/strategies/rules.js +0 -166
- package/dist/decisions/strategies/rules.js.map +0 -1
- package/dist/decisions/strategies/score.js +0 -29
- package/dist/decisions/strategies/score.js.map +0 -1
- package/dist/decisions/types.js +0 -2
- package/dist/decisions/types.js.map +0 -1
- package/dist/earlyPatcher.js +0 -20
- package/dist/earlyPatcher.js.map +0 -1
- package/dist/editorLoader.js +0 -254
- package/dist/editorLoader.js.map +0 -1
- package/dist/events/EventAccumulator.js +0 -101
- package/dist/events/EventAccumulator.js.map +0 -1
- package/dist/events/EventBus.js +0 -152
- package/dist/events/EventBus.js.map +0 -1
- package/dist/events/index.js +0 -11
- package/dist/events/index.js.map +0 -1
- package/dist/events/normalizers/canvas.js +0 -116
- package/dist/events/normalizers/canvas.js.map +0 -1
- package/dist/events/normalizers/posthog.js +0 -171
- package/dist/events/normalizers/posthog.js.map +0 -1
- package/dist/events/schema.js +0 -30
- package/dist/events/schema.js.map +0 -1
- package/dist/events/types.js +0 -54
- package/dist/events/types.js.map +0 -1
- package/dist/experiments/adapters/growthbook.js +0 -81
- package/dist/experiments/adapters/growthbook.js.map +0 -1
- package/dist/experiments/index.js +0 -4
- package/dist/experiments/index.js.map +0 -1
- package/dist/experiments/registry.js +0 -30
- package/dist/experiments/registry.js.map +0 -1
- package/dist/experiments/types.js +0 -2
- package/dist/experiments/types.js.map +0 -1
- package/dist/fetchers/cdnFetcher.js +0 -96
- package/dist/fetchers/cdnFetcher.js.map +0 -1
- package/dist/fetchers/experimentsFetcher.js +0 -109
- package/dist/fetchers/experimentsFetcher.js.map +0 -1
- package/dist/fetchers/index.js +0 -5
- package/dist/fetchers/index.js.map +0 -1
- package/dist/fetchers/mergeConfigs.js +0 -38
- package/dist/fetchers/mergeConfigs.js.map +0 -1
- package/dist/fetchers/registry.js +0 -58
- package/dist/fetchers/registry.js.map +0 -1
- package/dist/fetchers/types.js +0 -2
- package/dist/fetchers/types.js.map +0 -1
- package/dist/hooks/useCanvasOverlays.js +0 -128
- package/dist/hooks/useCanvasOverlays.js.map +0 -1
- package/dist/hooks/useHostPatches.js +0 -40
- package/dist/hooks/useHostPatches.js.map +0 -1
- package/dist/hooks/useShadowCanvasConfig.js +0 -63
- package/dist/hooks/useShadowCanvasConfig.js.map +0 -1
- package/dist/hostPatcher/core/patcher.js +0 -181
- package/dist/hostPatcher/core/patcher.js.map +0 -1
- package/dist/hostPatcher/core/sanitizer.js +0 -66
- package/dist/hostPatcher/core/sanitizer.js.map +0 -1
- package/dist/hostPatcher/core/types.js +0 -2
- package/dist/hostPatcher/core/types.js.map +0 -1
- package/dist/hostPatcher/index.js +0 -7
- package/dist/hostPatcher/index.js.map +0 -1
- package/dist/hostPatcher/policy/defaultPolicy.js +0 -23
- package/dist/hostPatcher/policy/defaultPolicy.js.map +0 -1
- package/dist/hostPatcher/utils/anchors.js +0 -105
- package/dist/hostPatcher/utils/anchors.js.map +0 -1
- package/dist/hostPatcher/utils/observer.js +0 -11
- package/dist/hostPatcher/utils/observer.js.map +0 -1
- package/dist/logger.js +0 -81
- package/dist/logger.js.map +0 -1
- package/dist/metrics/index.js +0 -5
- package/dist/metrics/index.js.map +0 -1
- package/dist/metrics/sessionMetrics.js +0 -178
- package/dist/metrics/sessionMetrics.js.map +0 -1
- package/dist/notifications/NotificationToastStack.js +0 -118
- package/dist/notifications/NotificationToastStack.js.map +0 -1
- package/dist/notifications/index.js +0 -6
- package/dist/notifications/index.js.map +0 -1
- package/dist/notifications/matcher.js +0 -66
- package/dist/notifications/matcher.js.map +0 -1
- package/dist/notifications/types.js +0 -13
- package/dist/notifications/types.js.map +0 -1
- package/dist/notifications/useNotifications.js +0 -104
- package/dist/notifications/useNotifications.js.map +0 -1
- package/dist/notifications/useNotifyWatcher.js +0 -62
- package/dist/notifications/useNotifyWatcher.js.map +0 -1
- package/dist/overlays/fetcher.js +0 -15
- package/dist/overlays/fetcher.js.map +0 -1
- package/dist/overlays/recipeRegistry.js +0 -32
- package/dist/overlays/recipeRegistry.js.map +0 -1
- package/dist/overlays/runtime/anchor/resolve.js +0 -87
- package/dist/overlays/runtime/anchor/resolve.js.map +0 -1
- package/dist/overlays/runtime/index.js +0 -8
- package/dist/overlays/runtime/index.js.map +0 -1
- package/dist/overlays/runtime/overlay/highlight.js +0 -160
- package/dist/overlays/runtime/overlay/highlight.js.map +0 -1
- package/dist/overlays/runtime/overlay/modal.js +0 -78
- package/dist/overlays/runtime/overlay/modal.js.map +0 -1
- package/dist/overlays/runtime/overlay/root.js +0 -297
- package/dist/overlays/runtime/overlay/root.js.map +0 -1
- package/dist/overlays/runtime/overlay/runner.js +0 -602
- package/dist/overlays/runtime/overlay/runner.js.map +0 -1
- package/dist/overlays/runtime/overlay/tooltip.js +0 -232
- package/dist/overlays/runtime/overlay/tooltip.js.map +0 -1
- package/dist/overlays/runtime/utils/dom.js +0 -12
- package/dist/overlays/runtime/utils/dom.js.map +0 -1
- package/dist/overlays/schema.js +0 -52
- package/dist/overlays/schema.js.map +0 -1
- package/dist/overlays/types.js +0 -2
- package/dist/overlays/types.js.map +0 -1
- package/dist/render/RenderContext.js +0 -69
- package/dist/render/RenderContext.js.map +0 -1
- package/dist/render/index.js +0 -3
- package/dist/render/index.js.map +0 -1
- package/dist/render/types.js +0 -2
- package/dist/render/types.js.map +0 -1
- package/dist/runtime.js +0 -237
- package/dist/runtime.js.map +0 -1
- package/dist/state/StateStore.js +0 -176
- package/dist/state/StateStore.js.map +0 -1
- package/dist/state/helpers/cooldowns.js +0 -31
- package/dist/state/helpers/cooldowns.js.map +0 -1
- package/dist/state/helpers/dismissals.js +0 -34
- package/dist/state/helpers/dismissals.js.map +0 -1
- package/dist/state/helpers/frequency.js +0 -43
- package/dist/state/helpers/frequency.js.map +0 -1
- package/dist/state/index.js +0 -7
- package/dist/state/index.js.map +0 -1
- package/dist/state/schema.js +0 -25
- package/dist/state/schema.js.map +0 -1
- package/dist/state/types.js +0 -9
- package/dist/state/types.js.map +0 -1
- package/dist/store/example.js +0 -43
- package/dist/store/example.js.map +0 -1
- package/dist/store/mini-effector.js +0 -88
- package/dist/store/mini-effector.js.map +0 -1
- package/dist/surfaces/Surfaces.js +0 -361
- package/dist/surfaces/Surfaces.js.map +0 -1
- package/dist/surfaces/index.js +0 -12
- package/dist/surfaces/index.js.map +0 -1
- package/dist/surfaces/positioning.js +0 -228
- package/dist/surfaces/positioning.js.map +0 -1
- package/dist/surfaces/types.js +0 -23
- package/dist/surfaces/types.js.map +0 -1
- package/dist/telemetry/adapters/noop.js +0 -42
- package/dist/telemetry/adapters/noop.js.map +0 -1
- package/dist/telemetry/adapters/posthog.js +0 -180
- package/dist/telemetry/adapters/posthog.js.map +0 -1
- package/dist/telemetry/index.js +0 -4
- package/dist/telemetry/index.js.map +0 -1
- package/dist/telemetry/registry.js +0 -29
- package/dist/telemetry/registry.js.map +0 -1
- package/dist/telemetry/types.js +0 -2
- package/dist/telemetry/types.js.map +0 -1
- package/dist/theme/ThemeProvider.js +0 -109
- package/dist/theme/ThemeProvider.js.map +0 -1
- package/dist/theme/defaultTheme.js +0 -190
- package/dist/theme/defaultTheme.js.map +0 -1
- package/dist/theme/extractHostTheme.js +0 -259
- package/dist/theme/extractHostTheme.js.map +0 -1
- package/dist/theme/index.js +0 -7
- package/dist/theme/index.js.map +0 -1
- package/dist/theme/types.js +0 -6
- package/dist/theme/types.js.map +0 -1
- package/dist/token.js +0 -44
- package/dist/token.js.map +0 -1
- package/dist/types.js +0 -17
- package/dist/types.js.map +0 -1
- package/dist/version.js +0 -14
- package/dist/version.js.map +0 -1
- package/dist/widgets/WidgetRegistry.js +0 -190
- package/dist/widgets/WidgetRegistry.js.map +0 -1
- package/dist/widgets/index.js +0 -7
- package/dist/widgets/index.js.map +0 -1
package/dist/runtime.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
|
package/dist/state/StateStore.js
DELETED
|
@@ -1,176 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* StateStore - Unified state management for the runtime.
|
|
3
|
-
*
|
|
4
|
-
* Provides scoped storage (session and user) with built-in helpers
|
|
5
|
-
* for common patterns like dismissals, cooldowns, and frequency caps.
|
|
6
|
-
*/
|
|
7
|
-
import { createCooldownStore } from './helpers/cooldowns';
|
|
8
|
-
import { createDismissalStore } from './helpers/dismissals';
|
|
9
|
-
import { createFrequencyStore } from './helpers/frequency';
|
|
10
|
-
const DEFAULT_NAMESPACE = 'syntro';
|
|
11
|
-
/**
|
|
12
|
-
* Create a ScopedStorage backed by browser storage.
|
|
13
|
-
*/
|
|
14
|
-
function createBrowserStorage(storage, namespace) {
|
|
15
|
-
const prefix = `${namespace}:`;
|
|
16
|
-
return {
|
|
17
|
-
get(key) {
|
|
18
|
-
if (!storage)
|
|
19
|
-
return undefined;
|
|
20
|
-
try {
|
|
21
|
-
const raw = storage.getItem(prefix + key);
|
|
22
|
-
if (!raw)
|
|
23
|
-
return undefined;
|
|
24
|
-
const stored = JSON.parse(raw);
|
|
25
|
-
// Check TTL
|
|
26
|
-
if (stored.expiresAt && Date.now() >= stored.expiresAt) {
|
|
27
|
-
storage.removeItem(prefix + key);
|
|
28
|
-
return undefined;
|
|
29
|
-
}
|
|
30
|
-
return stored.value;
|
|
31
|
-
}
|
|
32
|
-
catch {
|
|
33
|
-
return undefined;
|
|
34
|
-
}
|
|
35
|
-
},
|
|
36
|
-
set(key, value, ttlMs) {
|
|
37
|
-
if (!storage)
|
|
38
|
-
return;
|
|
39
|
-
try {
|
|
40
|
-
const stored = {
|
|
41
|
-
value,
|
|
42
|
-
expiresAt: ttlMs ? Date.now() + ttlMs : undefined,
|
|
43
|
-
};
|
|
44
|
-
storage.setItem(prefix + key, JSON.stringify(stored));
|
|
45
|
-
}
|
|
46
|
-
catch (err) {
|
|
47
|
-
console.warn('[StateStore] Failed to save:', err);
|
|
48
|
-
}
|
|
49
|
-
},
|
|
50
|
-
remove(key) {
|
|
51
|
-
if (!storage)
|
|
52
|
-
return;
|
|
53
|
-
storage.removeItem(prefix + key);
|
|
54
|
-
},
|
|
55
|
-
has(key) {
|
|
56
|
-
if (!storage)
|
|
57
|
-
return false;
|
|
58
|
-
return this.get(key) !== undefined;
|
|
59
|
-
},
|
|
60
|
-
keys() {
|
|
61
|
-
if (!storage)
|
|
62
|
-
return [];
|
|
63
|
-
const keys = [];
|
|
64
|
-
for (let i = 0; i < storage.length; i++) {
|
|
65
|
-
const key = storage.key(i);
|
|
66
|
-
if (key === null || key === void 0 ? void 0 : key.startsWith(prefix)) {
|
|
67
|
-
keys.push(key.slice(prefix.length));
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
return keys;
|
|
71
|
-
},
|
|
72
|
-
clear() {
|
|
73
|
-
if (!storage)
|
|
74
|
-
return;
|
|
75
|
-
const keysToRemove = this.keys();
|
|
76
|
-
for (const key of keysToRemove) {
|
|
77
|
-
storage.removeItem(prefix + key);
|
|
78
|
-
}
|
|
79
|
-
},
|
|
80
|
-
};
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* Create an in-memory ScopedStorage (for SSR/testing).
|
|
84
|
-
*/
|
|
85
|
-
function createMemoryStorage(namespace) {
|
|
86
|
-
const store = new Map();
|
|
87
|
-
const prefix = `${namespace}:`;
|
|
88
|
-
return {
|
|
89
|
-
get(key) {
|
|
90
|
-
const stored = store.get(prefix + key);
|
|
91
|
-
if (!stored)
|
|
92
|
-
return undefined;
|
|
93
|
-
if (stored.expiresAt && Date.now() >= stored.expiresAt) {
|
|
94
|
-
store.delete(prefix + key);
|
|
95
|
-
return undefined;
|
|
96
|
-
}
|
|
97
|
-
return stored.value;
|
|
98
|
-
},
|
|
99
|
-
set(key, value, ttlMs) {
|
|
100
|
-
store.set(prefix + key, {
|
|
101
|
-
value,
|
|
102
|
-
expiresAt: ttlMs ? Date.now() + ttlMs : undefined,
|
|
103
|
-
});
|
|
104
|
-
},
|
|
105
|
-
remove(key) {
|
|
106
|
-
store.delete(prefix + key);
|
|
107
|
-
},
|
|
108
|
-
has(key) {
|
|
109
|
-
return this.get(key) !== undefined;
|
|
110
|
-
},
|
|
111
|
-
keys() {
|
|
112
|
-
const keys = [];
|
|
113
|
-
for (const key of store.keys()) {
|
|
114
|
-
if (key.startsWith(prefix)) {
|
|
115
|
-
keys.push(key.slice(prefix.length));
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
return keys;
|
|
119
|
-
},
|
|
120
|
-
clear() {
|
|
121
|
-
for (const key of store.keys()) {
|
|
122
|
-
if (key.startsWith(prefix)) {
|
|
123
|
-
store.delete(key);
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
},
|
|
127
|
-
};
|
|
128
|
-
}
|
|
129
|
-
/**
|
|
130
|
-
* StateStore class for unified state management.
|
|
131
|
-
*/
|
|
132
|
-
export class StateStore {
|
|
133
|
-
constructor(options = {}) {
|
|
134
|
-
var _a;
|
|
135
|
-
this.namespacedStorages = new Map();
|
|
136
|
-
this.namespace = (_a = options.namespace) !== null && _a !== void 0 ? _a : DEFAULT_NAMESPACE;
|
|
137
|
-
// Create scoped storages
|
|
138
|
-
if (typeof window !== 'undefined') {
|
|
139
|
-
this.session = createBrowserStorage(typeof sessionStorage !== 'undefined' ? sessionStorage : undefined, this.namespace);
|
|
140
|
-
this.user = createBrowserStorage(typeof localStorage !== 'undefined' ? localStorage : undefined, this.namespace);
|
|
141
|
-
}
|
|
142
|
-
else {
|
|
143
|
-
// SSR fallback to in-memory storage
|
|
144
|
-
this.session = createMemoryStorage(this.namespace);
|
|
145
|
-
this.user = createMemoryStorage(this.namespace);
|
|
146
|
-
}
|
|
147
|
-
// Create helpers
|
|
148
|
-
this.dismissals = createDismissalStore(this.session, this.user);
|
|
149
|
-
this.cooldowns = createCooldownStore(this.user); // Cooldowns persist
|
|
150
|
-
this.frequency = createFrequencyStore(this.session); // Frequency is session-based
|
|
151
|
-
}
|
|
152
|
-
/**
|
|
153
|
-
* Create a namespaced storage scope.
|
|
154
|
-
* Useful for isolating state by adaptive/tile.
|
|
155
|
-
*
|
|
156
|
-
* @param namespace - Additional namespace segment
|
|
157
|
-
* @returns A ScopedStorage with the nested namespace
|
|
158
|
-
*/
|
|
159
|
-
ns(namespace) {
|
|
160
|
-
const fullNamespace = `${this.namespace}:${namespace}`;
|
|
161
|
-
if (!this.namespacedStorages.has(fullNamespace)) {
|
|
162
|
-
const storage = typeof window !== 'undefined' && typeof sessionStorage !== 'undefined'
|
|
163
|
-
? createBrowserStorage(sessionStorage, fullNamespace)
|
|
164
|
-
: createMemoryStorage(fullNamespace);
|
|
165
|
-
this.namespacedStorages.set(fullNamespace, storage);
|
|
166
|
-
}
|
|
167
|
-
return this.namespacedStorages.get(fullNamespace);
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
/**
|
|
171
|
-
* Create a StateStore instance.
|
|
172
|
-
*/
|
|
173
|
-
export function createStateStore(options = {}) {
|
|
174
|
-
return new StateStore(options);
|
|
175
|
-
}
|
|
176
|
-
//# sourceMappingURL=StateStore.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"StateStore.js","sourceRoot":"","sources":["../../src/state/StateStore.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAc3D,MAAM,iBAAiB,GAAG,QAAQ,CAAC;AAEnC;;GAEG;AACH,SAAS,oBAAoB,CAAC,OAA4B,EAAE,SAAiB;IAC3E,MAAM,MAAM,GAAG,GAAG,SAAS,GAAG,CAAC;IAE/B,OAAO;QACL,GAAG,CAAI,GAAW;YAChB,IAAI,CAAC,OAAO;gBAAE,OAAO,SAAS,CAAC;YAE/B,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;gBAC1C,IAAI,CAAC,GAAG;oBAAE,OAAO,SAAS,CAAC;gBAE3B,MAAM,MAAM,GAAmB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAE/C,YAAY;gBACZ,IAAI,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;oBACvD,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;oBACjC,OAAO,SAAS,CAAC;gBACnB,CAAC;gBAED,OAAO,MAAM,CAAC,KAAK,CAAC;YACtB,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;QAED,GAAG,CAAI,GAAW,EAAE,KAAQ,EAAE,KAAc;YAC1C,IAAI,CAAC,OAAO;gBAAE,OAAO;YAErB,IAAI,CAAC;gBACH,MAAM,MAAM,GAAmB;oBAC7B,KAAK;oBACL,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,SAAS;iBAClD,CAAC;gBACF,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;YACxD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,8BAA8B,EAAE,GAAG,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;QAED,MAAM,CAAC,GAAW;YAChB,IAAI,CAAC,OAAO;gBAAE,OAAO;YACrB,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;QACnC,CAAC;QAED,GAAG,CAAC,GAAW;YACb,IAAI,CAAC,OAAO;gBAAE,OAAO,KAAK,CAAC;YAC3B,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC;QACrC,CAAC;QAED,IAAI;YACF,IAAI,CAAC,OAAO;gBAAE,OAAO,EAAE,CAAC;YAExB,MAAM,IAAI,GAAa,EAAE,CAAC;YAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACxC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC3B,IAAI,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC5B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;gBACtC,CAAC;YACH,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,KAAK;YACH,IAAI,CAAC,OAAO;gBAAE,OAAO;YAErB,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YACjC,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;gBAC/B,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,SAAiB;IAC5C,MAAM,KAAK,GAAG,IAAI,GAAG,EAAuB,CAAC;IAC7C,MAAM,MAAM,GAAG,GAAG,SAAS,GAAG,CAAC;IAE/B,OAAO;QACL,GAAG,CAAI,GAAW;YAChB,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;YACvC,IAAI,CAAC,MAAM;gBAAE,OAAO,SAAS,CAAC;YAE9B,IAAI,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBACvD,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;gBAC3B,OAAO,SAAS,CAAC;YACnB,CAAC;YAED,OAAO,MAAM,CAAC,KAAU,CAAC;QAC3B,CAAC;QAED,GAAG,CAAI,GAAW,EAAE,KAAQ,EAAE,KAAc;YAC1C,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE;gBACtB,KAAK;gBACL,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,SAAS;aAClD,CAAC,CAAC;QACL,CAAC;QAED,MAAM,CAAC,GAAW;YAChB,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;QAC7B,CAAC;QAED,GAAG,CAAC,GAAW;YACb,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC;QACrC,CAAC;QAED,IAAI;YACF,MAAM,IAAI,GAAa,EAAE,CAAC;YAC1B,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;gBAC/B,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC3B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;gBACtC,CAAC;YACH,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,KAAK;YACH,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;gBAC/B,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC3B,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACpB,CAAC;YACH,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,UAAU;IAmBrB,YAAY,UAA6B,EAAE;;QAF1B,uBAAkB,GAA+B,IAAI,GAAG,EAAE,CAAC;QAG1E,IAAI,CAAC,SAAS,GAAG,MAAA,OAAO,CAAC,SAAS,mCAAI,iBAAiB,CAAC;QAExD,yBAAyB;QACzB,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,IAAI,CAAC,OAAO,GAAG,oBAAoB,CACjC,OAAO,cAAc,KAAK,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,EAClE,IAAI,CAAC,SAAS,CACf,CAAC;YACF,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAC9B,OAAO,YAAY,KAAK,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,EAC9D,IAAI,CAAC,SAAS,CACf,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,oCAAoC;YACpC,IAAI,CAAC,OAAO,GAAG,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACnD,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAClD,CAAC;QAED,iBAAiB;QACjB,IAAI,CAAC,UAAU,GAAG,oBAAoB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAChE,IAAI,CAAC,SAAS,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,oBAAoB;QACrE,IAAI,CAAC,SAAS,GAAG,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,6BAA6B;IACpF,CAAC;IAED;;;;;;OAMG;IACH,EAAE,CAAC,SAAiB;QAClB,MAAM,aAAa,GAAG,GAAG,IAAI,CAAC,SAAS,IAAI,SAAS,EAAE,CAAC;QAEvD,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;YAChD,MAAM,OAAO,GACX,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,cAAc,KAAK,WAAW;gBACpE,CAAC,CAAC,oBAAoB,CAAC,cAAc,EAAE,aAAa,CAAC;gBACrD,CAAC,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;YACzC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QACtD,CAAC;QAED,OAAO,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,aAAa,CAAE,CAAC;IACrD,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,UAA6B,EAAE;IAC9D,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;AACjC,CAAC"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
const COOLDOWN_PREFIX = 'cooldown:';
|
|
2
|
-
export function createCooldownStore(storage) {
|
|
3
|
-
return {
|
|
4
|
-
set(key, durationMs) {
|
|
5
|
-
const storageKey = COOLDOWN_PREFIX + key;
|
|
6
|
-
const expiresAt = Date.now() + durationMs;
|
|
7
|
-
storage.set(storageKey, expiresAt);
|
|
8
|
-
},
|
|
9
|
-
isActive(key) {
|
|
10
|
-
return this.remaining(key) > 0;
|
|
11
|
-
},
|
|
12
|
-
remaining(key) {
|
|
13
|
-
const storageKey = COOLDOWN_PREFIX + key;
|
|
14
|
-
const expiresAt = storage.get(storageKey);
|
|
15
|
-
if (expiresAt === undefined)
|
|
16
|
-
return 0;
|
|
17
|
-
const remaining = expiresAt - Date.now();
|
|
18
|
-
if (remaining <= 0) {
|
|
19
|
-
// Clean up expired cooldown
|
|
20
|
-
storage.remove(storageKey);
|
|
21
|
-
return 0;
|
|
22
|
-
}
|
|
23
|
-
return remaining;
|
|
24
|
-
},
|
|
25
|
-
clear(key) {
|
|
26
|
-
const storageKey = COOLDOWN_PREFIX + key;
|
|
27
|
-
storage.remove(storageKey);
|
|
28
|
-
},
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
//# sourceMappingURL=cooldowns.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cooldowns.js","sourceRoot":"","sources":["../../../src/state/helpers/cooldowns.ts"],"names":[],"mappings":"AAOA,MAAM,eAAe,GAAG,WAAW,CAAC;AAEpC,MAAM,UAAU,mBAAmB,CAAC,OAAsB;IACxD,OAAO;QACL,GAAG,CAAC,GAAW,EAAE,UAAkB;YACjC,MAAM,UAAU,GAAG,eAAe,GAAG,GAAG,CAAC;YACzC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QACrC,CAAC;QAED,QAAQ,CAAC,GAAW;YAClB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjC,CAAC;QAED,SAAS,CAAC,GAAW;YACnB,MAAM,UAAU,GAAG,eAAe,GAAG,GAAG,CAAC;YACzC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAS,UAAU,CAAC,CAAC;YAClD,IAAI,SAAS,KAAK,SAAS;gBAAE,OAAO,CAAC,CAAC;YAEtC,MAAM,SAAS,GAAG,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACzC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;gBACnB,4BAA4B;gBAC5B,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBAC3B,OAAO,CAAC,CAAC;YACX,CAAC;YAED,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,KAAK,CAAC,GAAW;YACf,MAAM,UAAU,GAAG,eAAe,GAAG,GAAG,CAAC;YACzC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC7B,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
const DISMISSAL_PREFIX = 'dismissed:';
|
|
2
|
-
export function createDismissalStore(sessionStorage, userStorage) {
|
|
3
|
-
return {
|
|
4
|
-
mark(key, permanent = false) {
|
|
5
|
-
const storageKey = DISMISSAL_PREFIX + key;
|
|
6
|
-
const storage = permanent ? userStorage : sessionStorage;
|
|
7
|
-
storage.set(storageKey, true);
|
|
8
|
-
},
|
|
9
|
-
isDismissed(key) {
|
|
10
|
-
const storageKey = DISMISSAL_PREFIX + key;
|
|
11
|
-
// Check both session and user storage
|
|
12
|
-
return sessionStorage.has(storageKey) || userStorage.has(storageKey);
|
|
13
|
-
},
|
|
14
|
-
clear(key) {
|
|
15
|
-
const storageKey = DISMISSAL_PREFIX + key;
|
|
16
|
-
sessionStorage.remove(storageKey);
|
|
17
|
-
userStorage.remove(storageKey);
|
|
18
|
-
},
|
|
19
|
-
clearAll() {
|
|
20
|
-
// Clear all dismissal keys from both storages
|
|
21
|
-
for (const key of sessionStorage.keys()) {
|
|
22
|
-
if (key.startsWith(DISMISSAL_PREFIX)) {
|
|
23
|
-
sessionStorage.remove(key);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
for (const key of userStorage.keys()) {
|
|
27
|
-
if (key.startsWith(DISMISSAL_PREFIX)) {
|
|
28
|
-
userStorage.remove(key);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
},
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
//# sourceMappingURL=dismissals.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dismissals.js","sourceRoot":"","sources":["../../../src/state/helpers/dismissals.ts"],"names":[],"mappings":"AAOA,MAAM,gBAAgB,GAAG,YAAY,CAAC;AAEtC,MAAM,UAAU,oBAAoB,CAClC,cAA6B,EAC7B,WAA0B;IAE1B,OAAO;QACL,IAAI,CAAC,GAAW,EAAE,SAAS,GAAG,KAAK;YACjC,MAAM,UAAU,GAAG,gBAAgB,GAAG,GAAG,CAAC;YAC1C,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC;YACzD,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAChC,CAAC;QAED,WAAW,CAAC,GAAW;YACrB,MAAM,UAAU,GAAG,gBAAgB,GAAG,GAAG,CAAC;YAC1C,sCAAsC;YACtC,OAAO,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACvE,CAAC;QAED,KAAK,CAAC,GAAW;YACf,MAAM,UAAU,GAAG,gBAAgB,GAAG,GAAG,CAAC;YAC1C,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAClC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACjC,CAAC;QAED,QAAQ;YACN,8CAA8C;YAC9C,KAAK,MAAM,GAAG,IAAI,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC;gBACxC,IAAI,GAAG,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;oBACrC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7B,CAAC;YACH,CAAC;YACD,KAAK,MAAM,GAAG,IAAI,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;gBACrC,IAAI,GAAG,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;oBACrC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC1B,CAAC;YACH,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
const FREQUENCY_PREFIX = 'freq:';
|
|
2
|
-
export function createFrequencyStore(storage) {
|
|
3
|
-
function getEntry(key) {
|
|
4
|
-
const storageKey = FREQUENCY_PREFIX + key;
|
|
5
|
-
const entry = storage.get(storageKey);
|
|
6
|
-
if (!entry)
|
|
7
|
-
return undefined;
|
|
8
|
-
// Check if reset time has passed
|
|
9
|
-
if (entry.resetAt && Date.now() >= entry.resetAt) {
|
|
10
|
-
storage.remove(storageKey);
|
|
11
|
-
return undefined;
|
|
12
|
-
}
|
|
13
|
-
return entry;
|
|
14
|
-
}
|
|
15
|
-
return {
|
|
16
|
-
increment(key, resetAfterMs) {
|
|
17
|
-
var _a, _b;
|
|
18
|
-
const storageKey = FREQUENCY_PREFIX + key;
|
|
19
|
-
const existing = getEntry(key);
|
|
20
|
-
const newCount = ((_a = existing === null || existing === void 0 ? void 0 : existing.count) !== null && _a !== void 0 ? _a : 0) + 1;
|
|
21
|
-
const entry = {
|
|
22
|
-
count: newCount,
|
|
23
|
-
// Keep existing resetAt or set new one
|
|
24
|
-
resetAt: (_b = existing === null || existing === void 0 ? void 0 : existing.resetAt) !== null && _b !== void 0 ? _b : (resetAfterMs ? Date.now() + resetAfterMs : undefined),
|
|
25
|
-
};
|
|
26
|
-
storage.set(storageKey, entry);
|
|
27
|
-
return newCount;
|
|
28
|
-
},
|
|
29
|
-
count(key) {
|
|
30
|
-
var _a;
|
|
31
|
-
const entry = getEntry(key);
|
|
32
|
-
return (_a = entry === null || entry === void 0 ? void 0 : entry.count) !== null && _a !== void 0 ? _a : 0;
|
|
33
|
-
},
|
|
34
|
-
reset(key) {
|
|
35
|
-
const storageKey = FREQUENCY_PREFIX + key;
|
|
36
|
-
storage.remove(storageKey);
|
|
37
|
-
},
|
|
38
|
-
hasReachedLimit(key, limit) {
|
|
39
|
-
return this.count(key) >= limit;
|
|
40
|
-
},
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
//# sourceMappingURL=frequency.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"frequency.js","sourceRoot":"","sources":["../../../src/state/helpers/frequency.ts"],"names":[],"mappings":"AAQA,MAAM,gBAAgB,GAAG,OAAO,CAAC;AAEjC,MAAM,UAAU,oBAAoB,CAAC,OAAsB;IACzD,SAAS,QAAQ,CAAC,GAAW;QAC3B,MAAM,UAAU,GAAG,gBAAgB,GAAG,GAAG,CAAC;QAC1C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAiB,UAAU,CAAC,CAAC;QACtD,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAC;QAE7B,iCAAiC;QACjC,IAAI,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YACjD,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC3B,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO;QACL,SAAS,CAAC,GAAW,EAAE,YAAqB;;YAC1C,MAAM,UAAU,GAAG,gBAAgB,GAAG,GAAG,CAAC;YAC1C,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;YAE/B,MAAM,QAAQ,GAAG,CAAC,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,KAAK,mCAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAC5C,MAAM,KAAK,GAAmB;gBAC5B,KAAK,EAAE,QAAQ;gBACf,uCAAuC;gBACvC,OAAO,EAAE,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,mCAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;aACrF,CAAC;YAEF,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YAC/B,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,KAAK,CAAC,GAAW;;YACf,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC5B,OAAO,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,mCAAI,CAAC,CAAC;QAC3B,CAAC;QAED,KAAK,CAAC,GAAW;YACf,MAAM,UAAU,GAAG,gBAAgB,GAAG,GAAG,CAAC;YAC1C,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC7B,CAAC;QAED,eAAe,CAAC,GAAW,EAAE,KAAa;YACxC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC;QAClC,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/dist/state/index.js
DELETED
package/dist/state/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/state/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/state/schema.js
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Zod schemas for state validation.
|
|
3
|
-
*/
|
|
4
|
-
import { z } from 'zod';
|
|
5
|
-
export const StoredValueZ = z.object({
|
|
6
|
-
value: z.unknown(),
|
|
7
|
-
expiresAt: z.number().optional(),
|
|
8
|
-
});
|
|
9
|
-
export const FrequencyEntryZ = z.object({
|
|
10
|
-
count: z.number(),
|
|
11
|
-
resetAt: z.number().optional(),
|
|
12
|
-
});
|
|
13
|
-
/**
|
|
14
|
-
* Validate a StoredValue object.
|
|
15
|
-
*/
|
|
16
|
-
export function validateStoredValue(data) {
|
|
17
|
-
return StoredValueZ.safeParse(data);
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Validate a FrequencyEntry object.
|
|
21
|
-
*/
|
|
22
|
-
export function validateFrequencyEntry(data) {
|
|
23
|
-
return FrequencyEntryZ.safeParse(data);
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=schema.js.map
|
package/dist/state/schema.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/state/schema.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE;IAClB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC/B,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAa;IAC/C,OAAO,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAa;IAClD,OAAO,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC"}
|
package/dist/state/types.js
DELETED
package/dist/state/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/state/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
|
package/dist/store/example.js
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Example usage of mini-effector
|
|
3
|
-
*/
|
|
4
|
-
import { createEvent, createStore, createEffect, sample } from './mini-effector';
|
|
5
|
-
// Events
|
|
6
|
-
const tooltipDismissed = createEvent();
|
|
7
|
-
const tourStepCompleted = createEvent();
|
|
8
|
-
const _pageViewed = createEvent();
|
|
9
|
-
// Stores
|
|
10
|
-
const $dismissedTooltips = createStore([]);
|
|
11
|
-
const $tourProgress = createStore({});
|
|
12
|
-
// Connect events → stores
|
|
13
|
-
$dismissedTooltips.on(tooltipDismissed, (list, { anchorId }) => [...list, anchorId]);
|
|
14
|
-
$tourProgress.on(tourStepCompleted, (progress, { tourId, step }) => ({
|
|
15
|
-
...progress,
|
|
16
|
-
[tourId]: step,
|
|
17
|
-
}));
|
|
18
|
-
// Effect (async side effect)
|
|
19
|
-
const saveProgressFx = createEffect(async (data) => {
|
|
20
|
-
console.log('Saving progress:', data);
|
|
21
|
-
// await api.saveProgress(data);
|
|
22
|
-
return { saved: true };
|
|
23
|
-
});
|
|
24
|
-
// Wire event → effect with filter
|
|
25
|
-
sample({
|
|
26
|
-
clock: tourStepCompleted,
|
|
27
|
-
filter: ({ step }) => step > 0, // Only save after first step
|
|
28
|
-
fn: ({ tourId, step }) => ({ tourId, step }),
|
|
29
|
-
target: saveProgressFx,
|
|
30
|
-
});
|
|
31
|
-
// Watch for debugging
|
|
32
|
-
$dismissedTooltips.watch((list) => console.log('Dismissed:', list));
|
|
33
|
-
$tourProgress.watch((progress) => console.log('Progress:', progress));
|
|
34
|
-
saveProgressFx.done.watch(({ result }) => console.log('Saved:', result));
|
|
35
|
-
// Test it
|
|
36
|
-
console.log('--- Testing mini-effector ---');
|
|
37
|
-
tooltipDismissed({ anchorId: '#hero' });
|
|
38
|
-
tooltipDismissed({ anchorId: '#cta' });
|
|
39
|
-
tourStepCompleted({ tourId: 'onboarding', step: 1 });
|
|
40
|
-
tourStepCompleted({ tourId: 'onboarding', step: 2 });
|
|
41
|
-
console.log('Final dismissed:', $dismissedTooltips.getState());
|
|
42
|
-
console.log('Final progress:', $tourProgress.getState());
|
|
43
|
-
//# sourceMappingURL=example.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"example.js","sourceRoot":"","sources":["../../src/store/example.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEjF,SAAS;AACT,MAAM,gBAAgB,GAAG,WAAW,EAAwB,CAAC;AAC7D,MAAM,iBAAiB,GAAG,WAAW,EAAoC,CAAC;AAC1E,MAAM,WAAW,GAAG,WAAW,EAAmB,CAAC;AAEnD,SAAS;AACT,MAAM,kBAAkB,GAAG,WAAW,CAAW,EAAE,CAAC,CAAC;AACrD,MAAM,aAAa,GAAG,WAAW,CAAyB,EAAE,CAAC,CAAC;AAE9D,0BAA0B;AAC1B,kBAAkB,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;AAErF,aAAa,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IACnE,GAAG,QAAQ;IACX,CAAC,MAAM,CAAC,EAAE,IAAI;CACf,CAAC,CAAC,CAAC;AAEJ,6BAA6B;AAC7B,MAAM,cAAc,GAAG,YAAY,CAAC,KAAK,EAAE,IAAsC,EAAE,EAAE;IACnF,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;IACtC,gCAAgC;IAChC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACzB,CAAC,CAAC,CAAC;AAEH,kCAAkC;AAClC,MAAM,CAAC;IACL,KAAK,EAAE,iBAAiB;IACxB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,EAAE,6BAA6B;IAC7D,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC5C,MAAM,EAAE,cAAc;CACvB,CAAC,CAAC;AAEH,sBAAsB;AACtB,kBAAkB,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC;AACpE,aAAa,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;AACtE,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AAEzE,UAAU;AACV,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;AAC7C,gBAAgB,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;AACxC,gBAAgB,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;AACvC,iBAAiB,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;AACrD,iBAAiB,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;AAErD,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC/D,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC"}
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Mini Effector - Minimal event→state implementation
|
|
3
|
-
*
|
|
4
|
-
* Core concepts from Effector in ~100 lines:
|
|
5
|
-
* - createEvent: callable + subscribable
|
|
6
|
-
* - createStore: reactive state with .on() for event connections
|
|
7
|
-
* - sample: connect clock → source → filter → target
|
|
8
|
-
*/
|
|
9
|
-
export function createEvent() {
|
|
10
|
-
const subscribers = new Set();
|
|
11
|
-
const event = ((payload) => {
|
|
12
|
-
subscribers.forEach((fn) => fn(payload));
|
|
13
|
-
});
|
|
14
|
-
event.watch = (fn) => {
|
|
15
|
-
subscribers.add(fn);
|
|
16
|
-
return () => subscribers.delete(fn);
|
|
17
|
-
};
|
|
18
|
-
event._subscribers = subscribers;
|
|
19
|
-
return event;
|
|
20
|
-
}
|
|
21
|
-
export function createStore(initialState) {
|
|
22
|
-
let state = initialState;
|
|
23
|
-
const subscribers = new Set();
|
|
24
|
-
const store = {
|
|
25
|
-
getState: () => state,
|
|
26
|
-
watch: (fn) => {
|
|
27
|
-
subscribers.add(fn);
|
|
28
|
-
return () => subscribers.delete(fn);
|
|
29
|
-
},
|
|
30
|
-
on: (event, reducer) => {
|
|
31
|
-
event.watch((payload) => {
|
|
32
|
-
const nextState = reducer(state, payload);
|
|
33
|
-
if (nextState !== state) {
|
|
34
|
-
state = nextState;
|
|
35
|
-
subscribers.forEach((fn) => fn(state));
|
|
36
|
-
}
|
|
37
|
-
});
|
|
38
|
-
return store;
|
|
39
|
-
},
|
|
40
|
-
_setState: (value) => {
|
|
41
|
-
if (value !== state) {
|
|
42
|
-
state = value;
|
|
43
|
-
subscribers.forEach((fn) => fn(state));
|
|
44
|
-
}
|
|
45
|
-
},
|
|
46
|
-
};
|
|
47
|
-
return store;
|
|
48
|
-
}
|
|
49
|
-
export function createEffect(handler) {
|
|
50
|
-
const done = createEvent();
|
|
51
|
-
const fail = createEvent();
|
|
52
|
-
const pending = createStore(false);
|
|
53
|
-
pending.on(done, () => false);
|
|
54
|
-
pending.on(fail, () => false);
|
|
55
|
-
const effect = (async (payload) => {
|
|
56
|
-
pending._setState(true);
|
|
57
|
-
try {
|
|
58
|
-
const result = await handler(payload);
|
|
59
|
-
done({ params: payload, result });
|
|
60
|
-
return result;
|
|
61
|
-
}
|
|
62
|
-
catch (err) {
|
|
63
|
-
fail({ params: payload, error: err });
|
|
64
|
-
throw err;
|
|
65
|
-
}
|
|
66
|
-
});
|
|
67
|
-
effect.done = done;
|
|
68
|
-
effect.fail = fail;
|
|
69
|
-
effect.pending = pending;
|
|
70
|
-
return effect;
|
|
71
|
-
}
|
|
72
|
-
export function sample(config) {
|
|
73
|
-
const { clock, source, filter, fn, target } = config;
|
|
74
|
-
clock.watch((clockPayload) => {
|
|
75
|
-
const sourceState = source === null || source === void 0 ? void 0 : source.getState();
|
|
76
|
-
// Check filter
|
|
77
|
-
if (filter && !filter(clockPayload, sourceState)) {
|
|
78
|
-
return;
|
|
79
|
-
}
|
|
80
|
-
// Transform
|
|
81
|
-
const result = fn ? fn(clockPayload, sourceState) : clockPayload;
|
|
82
|
-
// Send to target
|
|
83
|
-
if (target) {
|
|
84
|
-
target(result);
|
|
85
|
-
}
|
|
86
|
-
});
|
|
87
|
-
}
|
|
88
|
-
//# sourceMappingURL=mini-effector.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mini-effector.js","sourceRoot":"","sources":["../../src/store/mini-effector.ts"],"names":[],"mappings":"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"}
|