@syntrologie/runtime-sdk 0.2.21 → 1.0.0
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 +944 -440
- package/README.md +395 -66
- package/dist/RuntimeProvider.d.ts +51 -0
- package/dist/RuntimeProvider.js +113 -0
- package/dist/RuntimeProvider.js.map +1 -0
- package/dist/SmartCanvasApp.d.ts +16 -10
- package/dist/SmartCanvasApp.js +47 -51
- package/dist/SmartCanvasApp.js.map +1 -1
- package/dist/SmartCanvasElement.d.ts +5 -5
- package/dist/SmartCanvasElement.js +24 -14
- package/dist/SmartCanvasElement.js.map +1 -1
- package/dist/SmartCanvasPortal.d.ts +2 -2
- package/dist/SmartCanvasPortal.js +2 -2
- package/dist/SmartCanvasPortal.js.map +1 -1
- package/dist/actions/ActionEngine.d.ts +11 -0
- package/dist/actions/ActionEngine.js +272 -0
- package/dist/actions/ActionEngine.js.map +1 -0
- package/dist/actions/executors/index.d.ts +116 -0
- package/dist/actions/executors/index.js +240 -0
- package/dist/actions/executors/index.js.map +1 -0
- package/dist/actions/executors/tour.d.ts +18 -0
- package/dist/actions/executors/tour.js +332 -0
- package/dist/actions/executors/tour.js.map +1 -0
- package/dist/actions/index.d.ts +10 -0
- package/dist/actions/index.js +12 -0
- package/dist/actions/index.js.map +1 -0
- package/dist/actions/types.d.ts +399 -0
- package/dist/actions/types.js +8 -0
- package/dist/actions/types.js.map +1 -0
- package/dist/actions/validation.d.ts +14 -0
- package/dist/actions/validation.js +577 -0
- package/dist/actions/validation.js.map +1 -0
- package/dist/adaptives/adaptive-chatbot/index.js +9 -0
- package/dist/adaptives/adaptive-chatbot/index.js.map +7 -0
- package/dist/adaptives/adaptive-content/index.js +2 -0
- package/dist/adaptives/adaptive-content/index.js.map +7 -0
- package/dist/adaptives/adaptive-faq/index.js +11 -0
- package/dist/adaptives/adaptive-faq/index.js.map +7 -0
- package/dist/adaptives/adaptive-gamification/index.js +2 -0
- package/dist/adaptives/adaptive-gamification/index.js.map +7 -0
- package/dist/adaptives/adaptive-nav/index.js +11 -0
- package/dist/adaptives/adaptive-nav/index.js.map +7 -0
- package/dist/adaptives/adaptive-overlays/index.js +91 -0
- package/dist/adaptives/adaptive-overlays/index.js.map +7 -0
- package/dist/antiFlicker.js +1 -1
- package/dist/api.d.ts +40 -26
- package/dist/api.js +87 -60
- package/dist/api.js.map +1 -1
- package/dist/apps/AppContext.d.ts +31 -0
- package/dist/apps/AppContext.js +91 -0
- package/dist/apps/AppContext.js.map +1 -0
- package/dist/apps/AppLoader.d.ts +85 -0
- package/dist/apps/AppLoader.js +282 -0
- package/dist/apps/AppLoader.js.map +1 -0
- package/dist/apps/AppRegistry.d.ts +102 -0
- package/dist/apps/AppRegistry.js +317 -0
- package/dist/apps/AppRegistry.js.map +1 -0
- package/dist/apps/examples/gamification-app.example.d.ts +305 -0
- package/dist/apps/examples/gamification-app.example.js +329 -0
- package/dist/apps/examples/gamification-app.example.js.map +1 -0
- package/dist/apps/index.d.ts +14 -0
- package/dist/apps/index.js +16 -0
- package/dist/apps/index.js.map +1 -0
- package/dist/apps/types.d.ts +231 -0
- package/dist/apps/types.js +8 -0
- package/dist/apps/types.js.map +1 -0
- package/dist/blocks/data/ComparisonBlock.d.ts +1 -1
- package/dist/blocks/data/ComparisonBlock.js +40 -40
- package/dist/blocks/data/ComparisonBlock.js.map +1 -1
- package/dist/blocks/data/StatsBlock.d.ts +1 -1
- package/dist/blocks/data/StatsBlock.js +42 -44
- package/dist/blocks/data/StatsBlock.js.map +1 -1
- package/dist/blocks/data/index.d.ts +2 -2
- package/dist/blocks/data/index.js +2 -2
- package/dist/blocks/index.d.ts +5 -5
- package/dist/blocks/index.js +29 -30
- package/dist/blocks/index.js.map +1 -1
- package/dist/blocks/interactive/ChecklistBlock.d.ts +1 -1
- package/dist/blocks/interactive/ChecklistBlock.js +60 -60
- package/dist/blocks/interactive/ChecklistBlock.js.map +1 -1
- package/dist/blocks/interactive/RatingBlock.d.ts +1 -1
- package/dist/blocks/interactive/RatingBlock.js +73 -65
- package/dist/blocks/interactive/RatingBlock.js.map +1 -1
- package/dist/blocks/interactive/index.d.ts +2 -2
- package/dist/blocks/interactive/index.js +2 -2
- package/dist/blocks/notification/NotificationBlock.d.ts +2 -2
- package/dist/blocks/notification/NotificationBlock.js +68 -64
- package/dist/blocks/notification/NotificationBlock.js.map +1 -1
- package/dist/blocks/notification/index.d.ts +1 -1
- package/dist/blocks/notification/index.js +1 -1
- package/dist/bootstrap.d.ts +32 -8
- package/dist/bootstrap.js +218 -102
- package/dist/bootstrap.js.map +1 -1
- package/dist/components/ShadowCanvasOverlay.d.ts +6 -6
- package/dist/components/ShadowCanvasOverlay.js +156 -118
- package/dist/components/ShadowCanvasOverlay.js.map +1 -1
- package/dist/components/TileCard.d.ts +5 -5
- package/dist/components/TileCard.js +205 -154
- package/dist/components/TileCard.js.map +1 -1
- package/dist/components/TileWheel.d.ts +3 -3
- package/dist/components/TileWheel.js +29 -7
- package/dist/components/TileWheel.js.map +1 -1
- package/dist/config-validator.d.ts +49 -0
- package/dist/config-validator.js +173 -0
- package/dist/config-validator.js.map +1 -0
- package/dist/configFetcher.d.ts +7 -3
- package/dist/configFetcher.js +70 -29
- package/dist/configFetcher.js.map +1 -1
- package/dist/context/ContextManager.d.ts +3 -3
- package/dist/context/ContextManager.js +19 -18
- package/dist/context/ContextManager.js.map +1 -1
- package/dist/context/index.d.ts +4 -4
- package/dist/context/index.js +3 -3
- package/dist/context/schema.d.ts +9 -9
- package/dist/context/schema.js +2 -2
- package/dist/context/schema.js.map +1 -1
- package/dist/decisions/engine.d.ts +5 -5
- package/dist/decisions/engine.js +13 -13
- package/dist/decisions/engine.js.map +1 -1
- package/dist/decisions/index.d.ts +6 -6
- package/dist/decisions/index.js +5 -5
- package/dist/decisions/schema.d.ts +131 -131
- package/dist/decisions/schema.js +21 -21
- package/dist/decisions/schema.js.map +1 -1
- package/dist/decisions/strategies/rules.d.ts +1 -1
- package/dist/decisions/strategies/rules.js +24 -24
- package/dist/decisions/strategies/rules.js.map +1 -1
- package/dist/decisions/strategies/score.d.ts +1 -1
- package/dist/decisions/strategies/score.js +3 -3
- package/dist/decisions/types.d.ts +19 -19
- package/dist/earlyPatcher.d.ts +8 -20
- package/dist/earlyPatcher.js +13 -62
- package/dist/earlyPatcher.js.map +1 -1
- package/dist/editorLoader.d.ts +19 -7
- package/dist/editorLoader.js +154 -97
- package/dist/editorLoader.js.map +1 -1
- package/dist/events/EventBus.d.ts +3 -3
- package/dist/events/EventBus.js +5 -7
- package/dist/events/EventBus.js.map +1 -1
- package/dist/events/index.d.ts +6 -6
- package/dist/events/index.js +5 -5
- package/dist/events/normalizers/canvas.d.ts +2 -2
- package/dist/events/normalizers/canvas.js +3 -3
- package/dist/events/normalizers/canvas.js.map +1 -1
- package/dist/events/normalizers/posthog.d.ts +25 -1
- package/dist/events/normalizers/posthog.js +35 -27
- package/dist/events/normalizers/posthog.js.map +1 -1
- package/dist/events/schema.d.ts +13 -13
- package/dist/events/schema.js +3 -3
- package/dist/events/schema.js.map +1 -1
- package/dist/events/types.d.ts +7 -1
- package/dist/events/types.js +29 -21
- package/dist/events/types.js.map +1 -1
- package/dist/experiments/adapters/growthbook.d.ts +5 -4
- package/dist/experiments/adapters/growthbook.js +14 -6
- package/dist/experiments/adapters/growthbook.js.map +1 -1
- package/dist/experiments/index.d.ts +3 -3
- package/dist/experiments/index.js +1 -1
- package/dist/experiments/registry.d.ts +2 -2
- package/dist/experiments/registry.js +2 -2
- package/dist/experiments/types.d.ts +10 -1
- package/dist/fetchers/cdnFetcher.d.ts +1 -1
- package/dist/fetchers/cdnFetcher.js +4 -8
- package/dist/fetchers/cdnFetcher.js.map +1 -1
- package/dist/fetchers/experimentsFetcher.d.ts +25 -3
- package/dist/fetchers/experimentsFetcher.js +55 -8
- package/dist/fetchers/experimentsFetcher.js.map +1 -1
- package/dist/fetchers/index.d.ts +3 -3
- package/dist/fetchers/index.js +2 -2
- package/dist/fetchers/index.js.map +1 -1
- package/dist/fetchers/mergeConfigs.d.ts +29 -0
- package/dist/fetchers/mergeConfigs.js +38 -0
- package/dist/fetchers/mergeConfigs.js.map +1 -0
- package/dist/fetchers/registry.d.ts +1 -1
- package/dist/fetchers/registry.js +4 -4
- package/dist/fetchers/types.d.ts +1 -1
- package/dist/hooks/useCanvasOverlays.d.ts +8 -5
- package/dist/hooks/useCanvasOverlays.js +66 -17
- package/dist/hooks/useCanvasOverlays.js.map +1 -1
- package/dist/hooks/useHostPatches.d.ts +2 -2
- package/dist/hooks/useHostPatches.js +8 -8
- package/dist/hooks/useHostPatches.js.map +1 -1
- package/dist/hooks/useShadowCanvasConfig.d.ts +5 -9
- package/dist/hooks/useShadowCanvasConfig.js +7 -5
- package/dist/hooks/useShadowCanvasConfig.js.map +1 -1
- package/dist/hostPatcher/core/patcher.d.ts +1 -1
- package/dist/hostPatcher/core/patcher.js +18 -9
- package/dist/hostPatcher/core/patcher.js.map +1 -1
- package/dist/hostPatcher/core/sanitizer.js +24 -3
- package/dist/hostPatcher/core/sanitizer.js.map +1 -1
- package/dist/hostPatcher/policy/defaultPolicy.js +15 -5
- package/dist/hostPatcher/policy/defaultPolicy.js.map +1 -1
- package/dist/hostPatcher/utils/anchors.js +4 -6
- package/dist/hostPatcher/utils/anchors.js.map +1 -1
- package/dist/index.d.ts +34 -27
- package/dist/index.js +51 -24
- package/dist/index.js.map +1 -1
- package/dist/logger.d.ts +29 -0
- package/dist/logger.js +81 -0
- package/dist/logger.js.map +1 -0
- package/dist/metrics/index.d.ts +1 -1
- package/dist/metrics/index.js +1 -1
- package/dist/metrics/sessionMetrics.d.ts +1 -1
- package/dist/metrics/sessionMetrics.js +6 -6
- package/dist/overlays/fetcher.d.ts +2 -2
- package/dist/overlays/fetcher.js +13 -15
- package/dist/overlays/fetcher.js.map +1 -1
- package/dist/overlays/recipeRegistry.js +2 -2
- package/dist/overlays/recipeRegistry.js.map +1 -1
- package/dist/overlays/runtime/anchor/resolve.js +1 -1
- package/dist/overlays/runtime/anchor/resolve.js.map +1 -1
- package/dist/overlays/runtime/index.d.ts +7 -7
- package/dist/overlays/runtime/index.js +7 -7
- package/dist/overlays/runtime/overlay/highlight.js +39 -39
- package/dist/overlays/runtime/overlay/highlight.js.map +1 -1
- package/dist/overlays/runtime/overlay/modal.js +5 -5
- package/dist/overlays/runtime/overlay/modal.js.map +1 -1
- package/dist/overlays/runtime/overlay/root.js +1 -1
- package/dist/overlays/runtime/overlay/runner.js +88 -28
- package/dist/overlays/runtime/overlay/runner.js.map +1 -1
- package/dist/overlays/runtime/overlay/tooltip.d.ts +1 -1
- package/dist/overlays/runtime/overlay/tooltip.js +13 -15
- package/dist/overlays/runtime/overlay/tooltip.js.map +1 -1
- package/dist/overlays/runtime/utils/dom.js +4 -1
- package/dist/overlays/runtime/utils/dom.js.map +1 -1
- package/dist/overlays/schema.d.ts +146 -146
- package/dist/overlays/schema.js +12 -8
- package/dist/overlays/schema.js.map +1 -1
- package/dist/react.d.ts +7 -7
- package/dist/react.js +4 -4
- package/dist/react.js.map +1 -1
- package/dist/render/RenderContext.d.ts +2 -2
- package/dist/render/RenderContext.js +5 -5
- package/dist/render/RenderContext.js.map +1 -1
- package/dist/render/index.d.ts +3 -3
- package/dist/render/index.js +1 -1
- package/dist/render/types.d.ts +4 -4
- package/dist/runtime.d.ts +32 -8
- package/dist/runtime.js +109 -13
- package/dist/runtime.js.map +1 -1
- package/dist/smart-canvas.esm.js +144 -55
- package/dist/smart-canvas.esm.js.map +4 -4
- package/dist/smart-canvas.js +14688 -11455
- package/dist/smart-canvas.js.map +4 -4
- package/dist/smart-canvas.min.js +145 -55
- package/dist/smart-canvas.min.js.map +4 -4
- package/dist/state/StateStore.d.ts +1 -7
- package/dist/state/StateStore.js +15 -9
- package/dist/state/StateStore.js.map +1 -1
- package/dist/state/helpers/cooldowns.d.ts +1 -1
- package/dist/state/helpers/cooldowns.js +1 -1
- package/dist/state/helpers/dismissals.d.ts +1 -1
- package/dist/state/helpers/dismissals.js +1 -1
- package/dist/state/helpers/frequency.d.ts +1 -1
- package/dist/state/helpers/frequency.js +1 -1
- package/dist/state/index.d.ts +4 -4
- package/dist/state/index.js +3 -3
- package/dist/state/schema.d.ts +1 -1
- package/dist/state/schema.js +1 -1
- package/dist/store/example.d.ts +1 -0
- package/dist/store/example.js +43 -0
- package/dist/store/example.js.map +1 -0
- package/dist/store/mini-effector.d.ts +46 -0
- package/dist/store/mini-effector.js +88 -0
- package/dist/store/mini-effector.js.map +1 -0
- package/dist/surfaces/Surfaces.d.ts +11 -0
- package/dist/surfaces/Surfaces.js +361 -0
- package/dist/surfaces/Surfaces.js.map +1 -0
- package/dist/surfaces/index.d.ts +9 -0
- package/dist/surfaces/index.js +12 -0
- package/dist/surfaces/index.js.map +1 -0
- package/dist/surfaces/positioning.d.ts +50 -0
- package/dist/surfaces/positioning.js +228 -0
- package/dist/surfaces/positioning.js.map +1 -0
- package/dist/surfaces/types.d.ts +167 -0
- package/dist/surfaces/types.js +23 -0
- package/dist/surfaces/types.js.map +1 -0
- package/dist/telemetry/adapters/noop.d.ts +12 -0
- package/dist/telemetry/adapters/noop.js +42 -0
- package/dist/telemetry/adapters/noop.js.map +1 -0
- package/dist/telemetry/adapters/posthog.d.ts +8 -2
- package/dist/telemetry/adapters/posthog.js +36 -14
- package/dist/telemetry/adapters/posthog.js.map +1 -1
- package/dist/telemetry/index.d.ts +4 -3
- package/dist/telemetry/index.js +3 -2
- package/dist/telemetry/index.js.map +1 -1
- package/dist/telemetry/registry.d.ts +2 -9
- package/dist/telemetry/registry.js +4 -2
- package/dist/telemetry/registry.js.map +1 -1
- package/dist/telemetry/types.d.ts +1 -1
- package/dist/theme/ThemeProvider.d.ts +2 -2
- package/dist/theme/ThemeProvider.js +21 -21
- package/dist/theme/ThemeProvider.js.map +1 -1
- package/dist/theme/defaultTheme.d.ts +4 -5
- package/dist/theme/defaultTheme.js +127 -118
- package/dist/theme/defaultTheme.js.map +1 -1
- package/dist/theme/extractHostTheme.d.ts +1 -1
- package/dist/theme/extractHostTheme.js +43 -45
- package/dist/theme/extractHostTheme.js.map +1 -1
- package/dist/theme/index.d.ts +5 -5
- package/dist/theme/index.js +3 -3
- package/dist/theme/index.js.map +1 -1
- package/dist/theme/types.d.ts +2 -2
- package/dist/token.d.ts +2 -0
- package/dist/token.js +3 -6
- package/dist/token.js.map +1 -1
- package/dist/types-only.d.ts +32 -0
- package/dist/types-only.js +11 -0
- package/dist/types-only.js.map +1 -0
- package/dist/types.d.ts +89 -56
- package/dist/types.js +14 -2
- package/dist/types.js.map +1 -1
- package/dist/version.d.ts +13 -0
- package/dist/version.js +14 -0
- package/dist/version.js.map +1 -0
- package/dist/widgets/WidgetRegistry.d.ts +145 -0
- package/dist/widgets/WidgetRegistry.js +191 -0
- package/dist/widgets/WidgetRegistry.js.map +1 -0
- package/dist/widgets/index.d.ts +7 -0
- package/dist/widgets/index.js +7 -0
- package/dist/widgets/index.js.map +1 -0
- package/package.json +35 -15
- package/schema/canvas-config.schema.json +488 -254
- package/schema/runtime-context.schema.json +1 -5
package/dist/decisions/schema.js
CHANGED
|
@@ -1,63 +1,63 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Zod schemas for decision strategy validation.
|
|
3
3
|
*/
|
|
4
|
-
import { z } from
|
|
4
|
+
import { z } from 'zod';
|
|
5
5
|
// =============================================================================
|
|
6
6
|
// CONDITION SCHEMAS
|
|
7
7
|
// =============================================================================
|
|
8
8
|
export const PageUrlConditionZ = z.object({
|
|
9
|
-
type: z.literal(
|
|
9
|
+
type: z.literal('page_url'),
|
|
10
10
|
url: z.string(),
|
|
11
11
|
});
|
|
12
12
|
export const RouteConditionZ = z.object({
|
|
13
|
-
type: z.literal(
|
|
13
|
+
type: z.literal('route'),
|
|
14
14
|
routeId: z.string(),
|
|
15
15
|
});
|
|
16
16
|
export const AnchorVisibleConditionZ = z.object({
|
|
17
|
-
type: z.literal(
|
|
17
|
+
type: z.literal('anchor_visible'),
|
|
18
18
|
anchorId: z.string(),
|
|
19
|
-
state: z.enum([
|
|
19
|
+
state: z.enum(['visible', 'present', 'absent']),
|
|
20
20
|
});
|
|
21
21
|
export const EventOccurredConditionZ = z.object({
|
|
22
|
-
type: z.literal(
|
|
22
|
+
type: z.literal('event_occurred'),
|
|
23
23
|
eventName: z.string(),
|
|
24
24
|
withinMs: z.number().optional(),
|
|
25
25
|
});
|
|
26
26
|
export const StateEqualsConditionZ = z.object({
|
|
27
|
-
type: z.literal(
|
|
27
|
+
type: z.literal('state_equals'),
|
|
28
28
|
key: z.string(),
|
|
29
29
|
value: z.unknown(),
|
|
30
30
|
});
|
|
31
31
|
export const ViewportConditionZ = z.object({
|
|
32
|
-
type: z.literal(
|
|
32
|
+
type: z.literal('viewport'),
|
|
33
33
|
minWidth: z.number().optional(),
|
|
34
34
|
maxWidth: z.number().optional(),
|
|
35
35
|
minHeight: z.number().optional(),
|
|
36
36
|
maxHeight: z.number().optional(),
|
|
37
37
|
});
|
|
38
38
|
export const SessionMetricConditionZ = z.object({
|
|
39
|
-
type: z.literal(
|
|
39
|
+
type: z.literal('session_metric'),
|
|
40
40
|
key: z.string(),
|
|
41
|
-
operator: z.enum([
|
|
41
|
+
operator: z.enum(['gte', 'lte', 'eq', 'gt', 'lt']),
|
|
42
42
|
threshold: z.number(),
|
|
43
43
|
});
|
|
44
44
|
export const DismissedConditionZ = z.object({
|
|
45
|
-
type: z.literal(
|
|
45
|
+
type: z.literal('dismissed'),
|
|
46
46
|
key: z.string(),
|
|
47
47
|
inverted: z.boolean().optional(),
|
|
48
48
|
});
|
|
49
49
|
export const CooldownActiveConditionZ = z.object({
|
|
50
|
-
type: z.literal(
|
|
50
|
+
type: z.literal('cooldown_active'),
|
|
51
51
|
key: z.string(),
|
|
52
52
|
inverted: z.boolean().optional(),
|
|
53
53
|
});
|
|
54
54
|
export const FrequencyLimitConditionZ = z.object({
|
|
55
|
-
type: z.literal(
|
|
55
|
+
type: z.literal('frequency_limit'),
|
|
56
56
|
key: z.string(),
|
|
57
57
|
limit: z.number(),
|
|
58
58
|
inverted: z.boolean().optional(),
|
|
59
59
|
});
|
|
60
|
-
export const ConditionZ = z.discriminatedUnion(
|
|
60
|
+
export const ConditionZ = z.discriminatedUnion('type', [
|
|
61
61
|
PageUrlConditionZ,
|
|
62
62
|
RouteConditionZ,
|
|
63
63
|
AnchorVisibleConditionZ,
|
|
@@ -77,32 +77,32 @@ export const RuleZ = z.object({
|
|
|
77
77
|
value: z.unknown(),
|
|
78
78
|
});
|
|
79
79
|
export const RuleStrategyZ = z.object({
|
|
80
|
-
type: z.literal(
|
|
80
|
+
type: z.literal('rules'),
|
|
81
81
|
rules: z.array(RuleZ),
|
|
82
82
|
default: z.unknown(),
|
|
83
83
|
});
|
|
84
84
|
export const ScoreStrategyZ = z.object({
|
|
85
|
-
type: z.literal(
|
|
85
|
+
type: z.literal('score'),
|
|
86
86
|
field: z.string(),
|
|
87
87
|
threshold: z.number(),
|
|
88
88
|
above: z.unknown(),
|
|
89
89
|
below: z.unknown(),
|
|
90
90
|
});
|
|
91
91
|
export const ModelStrategyZ = z.object({
|
|
92
|
-
type: z.literal(
|
|
92
|
+
type: z.literal('model'),
|
|
93
93
|
modelId: z.string(),
|
|
94
94
|
inputs: z.array(z.string()),
|
|
95
|
-
outputMapping: z.record(z.unknown()),
|
|
95
|
+
outputMapping: z.record(z.string(), z.unknown()),
|
|
96
96
|
default: z.unknown(),
|
|
97
97
|
});
|
|
98
98
|
export const ExternalStrategyZ = z.object({
|
|
99
|
-
type: z.literal(
|
|
99
|
+
type: z.literal('external'),
|
|
100
100
|
endpoint: z.string(),
|
|
101
|
-
method: z.enum([
|
|
101
|
+
method: z.enum(['GET', 'POST']).optional(),
|
|
102
102
|
default: z.unknown(),
|
|
103
103
|
timeoutMs: z.number().optional(),
|
|
104
104
|
});
|
|
105
|
-
export const DecisionStrategyZ = z.discriminatedUnion(
|
|
105
|
+
export const DecisionStrategyZ = z.discriminatedUnion('type', [
|
|
106
106
|
RuleStrategyZ,
|
|
107
107
|
ScoreStrategyZ,
|
|
108
108
|
ModelStrategyZ,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/decisions/schema.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,gFAAgF;AAChF,oBAAoB;AACpB,gFAAgF;AAEhF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;IAC3B,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;CAChB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IACxB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;CACpB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC;IACjC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;CAChD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC;IACjC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAChC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC;IAC/B,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE;CACnB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;IAC3B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC;IACjC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAClD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;CACtB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;IAC5B,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC;IAClC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC;IAClC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IACrD,iBAAiB;IACjB,eAAe;IACf,uBAAuB;IACvB,uBAAuB;IACvB,qBAAqB;IACrB,kBAAkB;IAClB,uBAAuB;IACvB,mBAAmB;IACnB,wBAAwB;IACxB,wBAAwB;CACzB,CAAC,CAAC;AAEH,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAEhF,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5B,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC;IAC/B,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE;CACnB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IACxB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;IACrB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;CACrB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IACxB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE;IAClB,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE;CACnB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IACxB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC3B,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/decisions/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Evaluates rules in order and returns the value of the first matching rule.
|
|
5
5
|
*/
|
|
6
|
-
import type { RuleStrategy, Rule, Condition, DecisionResult, EvaluationContext } from
|
|
6
|
+
import type { RuleStrategy, Rule, Condition, DecisionResult, EvaluationContext } from '../types';
|
|
7
7
|
/**
|
|
8
8
|
* Evaluate a single condition against the evaluation context.
|
|
9
9
|
*/
|
|
@@ -5,40 +5,40 @@ export function evaluateCondition(condition, evalContext) {
|
|
|
5
5
|
var _a, _b, _c, _d, _e;
|
|
6
6
|
const { context, state, events } = evalContext;
|
|
7
7
|
switch (condition.type) {
|
|
8
|
-
case
|
|
8
|
+
case 'page_url': {
|
|
9
9
|
const { url } = condition;
|
|
10
10
|
const currentUrl = context.page.url;
|
|
11
11
|
// Simple pattern matching with wildcards
|
|
12
12
|
const pattern = url
|
|
13
|
-
.replace(/[.+^${}()|[\]\\]/g,
|
|
14
|
-
.replace(/\*\*/g,
|
|
15
|
-
.replace(/\*/g,
|
|
13
|
+
.replace(/[.+^${}()|[\]\\]/g, '\\$&') // Escape regex chars except * and ?
|
|
14
|
+
.replace(/\*\*/g, '.*') // ** matches anything
|
|
15
|
+
.replace(/\*/g, '[^/]*'); // * matches within path segment
|
|
16
16
|
const regex = new RegExp(`^${pattern}$`);
|
|
17
17
|
return regex.test(currentUrl);
|
|
18
18
|
}
|
|
19
|
-
case
|
|
19
|
+
case 'route': {
|
|
20
20
|
return context.page.routeId === condition.routeId;
|
|
21
21
|
}
|
|
22
|
-
case
|
|
22
|
+
case 'anchor_visible': {
|
|
23
23
|
const anchor = (_a = context.anchors) === null || _a === void 0 ? void 0 : _a.find((a) => a.anchorId === condition.anchorId);
|
|
24
24
|
switch (condition.state) {
|
|
25
|
-
case
|
|
25
|
+
case 'visible':
|
|
26
26
|
return (anchor === null || anchor === void 0 ? void 0 : anchor.visible) === true;
|
|
27
|
-
case
|
|
27
|
+
case 'present':
|
|
28
28
|
return (anchor === null || anchor === void 0 ? void 0 : anchor.present) === true;
|
|
29
|
-
case
|
|
29
|
+
case 'absent':
|
|
30
30
|
return !(anchor === null || anchor === void 0 ? void 0 : anchor.present);
|
|
31
31
|
default:
|
|
32
32
|
return false;
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
|
-
case
|
|
35
|
+
case 'event_occurred': {
|
|
36
36
|
if (!events)
|
|
37
37
|
return false;
|
|
38
38
|
const withinMs = (_b = condition.withinMs) !== null && _b !== void 0 ? _b : 60000; // Default 1 minute
|
|
39
39
|
return events.hasRecentEvent(condition.eventName, withinMs);
|
|
40
40
|
}
|
|
41
|
-
case
|
|
41
|
+
case 'state_equals': {
|
|
42
42
|
// This checks arbitrary state values - implementation depends on
|
|
43
43
|
// how the state store exposes values. For now, check session storage.
|
|
44
44
|
if (!state)
|
|
@@ -47,7 +47,7 @@ export function evaluateCondition(condition, evalContext) {
|
|
|
47
47
|
// For simplicity, we'll do a basic comparison
|
|
48
48
|
return false; // TODO: Implement when state interface is clearer
|
|
49
49
|
}
|
|
50
|
-
case
|
|
50
|
+
case 'viewport': {
|
|
51
51
|
const { width, height } = context.viewport;
|
|
52
52
|
if (condition.minWidth !== undefined && width < condition.minWidth)
|
|
53
53
|
return false;
|
|
@@ -59,39 +59,39 @@ export function evaluateCondition(condition, evalContext) {
|
|
|
59
59
|
return false;
|
|
60
60
|
return true;
|
|
61
61
|
}
|
|
62
|
-
case
|
|
62
|
+
case 'session_metric': {
|
|
63
63
|
if (!state)
|
|
64
64
|
return false;
|
|
65
65
|
const metricValue = state.getSessionMetric(condition.key);
|
|
66
66
|
const { operator, threshold } = condition;
|
|
67
67
|
switch (operator) {
|
|
68
|
-
case
|
|
68
|
+
case 'gte':
|
|
69
69
|
return metricValue >= threshold;
|
|
70
|
-
case
|
|
70
|
+
case 'lte':
|
|
71
71
|
return metricValue <= threshold;
|
|
72
|
-
case
|
|
72
|
+
case 'eq':
|
|
73
73
|
return metricValue === threshold;
|
|
74
|
-
case
|
|
74
|
+
case 'gt':
|
|
75
75
|
return metricValue > threshold;
|
|
76
|
-
case
|
|
76
|
+
case 'lt':
|
|
77
77
|
return metricValue < threshold;
|
|
78
78
|
default:
|
|
79
79
|
return false;
|
|
80
80
|
}
|
|
81
81
|
}
|
|
82
|
-
case
|
|
82
|
+
case 'dismissed': {
|
|
83
83
|
if (!state)
|
|
84
84
|
return (_c = condition.inverted) !== null && _c !== void 0 ? _c : false;
|
|
85
85
|
const isDismissed = state.isDismissed(condition.key);
|
|
86
86
|
return condition.inverted ? !isDismissed : isDismissed;
|
|
87
87
|
}
|
|
88
|
-
case
|
|
88
|
+
case 'cooldown_active': {
|
|
89
89
|
if (!state)
|
|
90
90
|
return (_d = condition.inverted) !== null && _d !== void 0 ? _d : false;
|
|
91
91
|
const isActive = state.isCooldownActive(condition.key);
|
|
92
92
|
return condition.inverted ? !isActive : isActive;
|
|
93
93
|
}
|
|
94
|
-
case
|
|
94
|
+
case 'frequency_limit': {
|
|
95
95
|
if (!state)
|
|
96
96
|
return (_e = condition.inverted) !== null && _e !== void 0 ? _e : false;
|
|
97
97
|
const count = state.getFrequencyCount(condition.key);
|
|
@@ -100,7 +100,7 @@ export function evaluateCondition(condition, evalContext) {
|
|
|
100
100
|
}
|
|
101
101
|
default:
|
|
102
102
|
// Unknown condition type - fail closed (return false)
|
|
103
|
-
console.warn(
|
|
103
|
+
console.warn('[RuleStrategy] Unknown condition type:', condition.type);
|
|
104
104
|
return false;
|
|
105
105
|
}
|
|
106
106
|
}
|
|
@@ -133,7 +133,7 @@ export function evaluateRuleStrategy(strategy, evalContext) {
|
|
|
133
133
|
value: rule.value,
|
|
134
134
|
isFallback: false,
|
|
135
135
|
matchInfo: {
|
|
136
|
-
strategyType:
|
|
136
|
+
strategyType: 'rules',
|
|
137
137
|
matchedRuleIndex: i,
|
|
138
138
|
evaluatedConditions: conditionResults,
|
|
139
139
|
},
|
|
@@ -145,7 +145,7 @@ export function evaluateRuleStrategy(strategy, evalContext) {
|
|
|
145
145
|
value: strategy.default,
|
|
146
146
|
isFallback: true,
|
|
147
147
|
matchInfo: {
|
|
148
|
-
strategyType:
|
|
148
|
+
strategyType: 'rules',
|
|
149
149
|
},
|
|
150
150
|
};
|
|
151
151
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rules.js","sourceRoot":"","sources":["../../../src/decisions/strategies/rules.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"rules.js","sourceRoot":"","sources":["../../../src/decisions/strategies/rules.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Compares an augmented field value against a threshold.
|
|
5
5
|
*/
|
|
6
|
-
import type { ScoreStrategy, DecisionResult, EvaluationContext } from
|
|
6
|
+
import type { ScoreStrategy, DecisionResult, EvaluationContext } from '../types';
|
|
7
7
|
/**
|
|
8
8
|
* Evaluate a ScoreStrategy and return the result.
|
|
9
9
|
*/
|
|
@@ -7,12 +7,12 @@ export function evaluateScoreStrategy(strategy, evalContext) {
|
|
|
7
7
|
// Get the score from augmented context
|
|
8
8
|
const score = (_a = context.augmented) === null || _a === void 0 ? void 0 : _a[strategy.field];
|
|
9
9
|
// If no score available, return below value as fallback
|
|
10
|
-
if (score === undefined || typeof score !==
|
|
10
|
+
if (score === undefined || typeof score !== 'number') {
|
|
11
11
|
return {
|
|
12
12
|
value: strategy.below,
|
|
13
13
|
isFallback: true,
|
|
14
14
|
matchInfo: {
|
|
15
|
-
strategyType:
|
|
15
|
+
strategyType: 'score',
|
|
16
16
|
},
|
|
17
17
|
};
|
|
18
18
|
}
|
|
@@ -22,7 +22,7 @@ export function evaluateScoreStrategy(strategy, evalContext) {
|
|
|
22
22
|
value: isAbove ? strategy.above : strategy.below,
|
|
23
23
|
isFallback: false,
|
|
24
24
|
matchInfo: {
|
|
25
|
-
strategyType:
|
|
25
|
+
strategyType: 'score',
|
|
26
26
|
},
|
|
27
27
|
};
|
|
28
28
|
}
|
|
@@ -5,12 +5,12 @@
|
|
|
5
5
|
* and adaptive behavior in the v2 runtime. It replaces the experiment-based
|
|
6
6
|
* filtering with a more flexible, context-aware system.
|
|
7
7
|
*/
|
|
8
|
-
import type { RuntimeContext } from
|
|
8
|
+
import type { RuntimeContext } from '../context/types';
|
|
9
9
|
/**
|
|
10
10
|
* Condition that checks if the current page URL matches a pattern.
|
|
11
11
|
*/
|
|
12
12
|
export interface PageUrlCondition {
|
|
13
|
-
type:
|
|
13
|
+
type: 'page_url';
|
|
14
14
|
/** URL pattern (supports wildcards: * and **) */
|
|
15
15
|
url: string;
|
|
16
16
|
}
|
|
@@ -18,7 +18,7 @@ export interface PageUrlCondition {
|
|
|
18
18
|
* Condition that checks if the current route matches.
|
|
19
19
|
*/
|
|
20
20
|
export interface RouteCondition {
|
|
21
|
-
type:
|
|
21
|
+
type: 'route';
|
|
22
22
|
/** Route ID from RoutesConfig */
|
|
23
23
|
routeId: string;
|
|
24
24
|
}
|
|
@@ -26,17 +26,17 @@ export interface RouteCondition {
|
|
|
26
26
|
* Condition that checks anchor element visibility.
|
|
27
27
|
*/
|
|
28
28
|
export interface AnchorVisibleCondition {
|
|
29
|
-
type:
|
|
29
|
+
type: 'anchor_visible';
|
|
30
30
|
/** Anchor element ID */
|
|
31
31
|
anchorId: string;
|
|
32
32
|
/** Required state */
|
|
33
|
-
state:
|
|
33
|
+
state: 'visible' | 'present' | 'absent';
|
|
34
34
|
}
|
|
35
35
|
/**
|
|
36
36
|
* Condition that checks if an event occurred recently.
|
|
37
37
|
*/
|
|
38
38
|
export interface EventOccurredCondition {
|
|
39
|
-
type:
|
|
39
|
+
type: 'event_occurred';
|
|
40
40
|
/** Event name to check */
|
|
41
41
|
eventName: string;
|
|
42
42
|
/** Time window in milliseconds (optional) */
|
|
@@ -46,7 +46,7 @@ export interface EventOccurredCondition {
|
|
|
46
46
|
* Condition that checks a state value.
|
|
47
47
|
*/
|
|
48
48
|
export interface StateEqualsCondition {
|
|
49
|
-
type:
|
|
49
|
+
type: 'state_equals';
|
|
50
50
|
/** State key to check */
|
|
51
51
|
key: string;
|
|
52
52
|
/** Expected value */
|
|
@@ -56,7 +56,7 @@ export interface StateEqualsCondition {
|
|
|
56
56
|
* Condition that checks viewport size.
|
|
57
57
|
*/
|
|
58
58
|
export interface ViewportCondition {
|
|
59
|
-
type:
|
|
59
|
+
type: 'viewport';
|
|
60
60
|
/** Minimum viewport width */
|
|
61
61
|
minWidth?: number;
|
|
62
62
|
/** Maximum viewport width */
|
|
@@ -70,11 +70,11 @@ export interface ViewportCondition {
|
|
|
70
70
|
* Condition that checks a session metric threshold.
|
|
71
71
|
*/
|
|
72
72
|
export interface SessionMetricCondition {
|
|
73
|
-
type:
|
|
73
|
+
type: 'session_metric';
|
|
74
74
|
/** Metric key */
|
|
75
75
|
key: string;
|
|
76
76
|
/** Comparison operator */
|
|
77
|
-
operator:
|
|
77
|
+
operator: 'gte' | 'lte' | 'eq' | 'gt' | 'lt';
|
|
78
78
|
/** Threshold value */
|
|
79
79
|
threshold: number;
|
|
80
80
|
}
|
|
@@ -82,7 +82,7 @@ export interface SessionMetricCondition {
|
|
|
82
82
|
* Condition that checks if an item has been dismissed.
|
|
83
83
|
*/
|
|
84
84
|
export interface DismissedCondition {
|
|
85
|
-
type:
|
|
85
|
+
type: 'dismissed';
|
|
86
86
|
/** Item key to check */
|
|
87
87
|
key: string;
|
|
88
88
|
/** Invert the condition (true if NOT dismissed) */
|
|
@@ -92,7 +92,7 @@ export interface DismissedCondition {
|
|
|
92
92
|
* Condition that checks if a cooldown is active.
|
|
93
93
|
*/
|
|
94
94
|
export interface CooldownActiveCondition {
|
|
95
|
-
type:
|
|
95
|
+
type: 'cooldown_active';
|
|
96
96
|
/** Cooldown key to check */
|
|
97
97
|
key: string;
|
|
98
98
|
/** Invert the condition (true if NOT active) */
|
|
@@ -102,7 +102,7 @@ export interface CooldownActiveCondition {
|
|
|
102
102
|
* Condition that checks frequency limits.
|
|
103
103
|
*/
|
|
104
104
|
export interface FrequencyLimitCondition {
|
|
105
|
-
type:
|
|
105
|
+
type: 'frequency_limit';
|
|
106
106
|
/** Frequency key to check */
|
|
107
107
|
key: string;
|
|
108
108
|
/** Maximum allowed count */
|
|
@@ -127,7 +127,7 @@ export interface Rule<T = unknown> {
|
|
|
127
127
|
* Rule-based strategy: evaluates rules in order, returns first match.
|
|
128
128
|
*/
|
|
129
129
|
export interface RuleStrategy<T = unknown> {
|
|
130
|
-
type:
|
|
130
|
+
type: 'rules';
|
|
131
131
|
/** Rules to evaluate in order */
|
|
132
132
|
rules: Rule<T>[];
|
|
133
133
|
/** Default value if no rules match */
|
|
@@ -137,7 +137,7 @@ export interface RuleStrategy<T = unknown> {
|
|
|
137
137
|
* Score-based strategy: compares an augmented field against a threshold.
|
|
138
138
|
*/
|
|
139
139
|
export interface ScoreStrategy<T = unknown> {
|
|
140
|
-
type:
|
|
140
|
+
type: 'score';
|
|
141
141
|
/** Field name in augmented context */
|
|
142
142
|
field: string;
|
|
143
143
|
/** Threshold value */
|
|
@@ -152,7 +152,7 @@ export interface ScoreStrategy<T = unknown> {
|
|
|
152
152
|
* (Phase 3 - placeholder)
|
|
153
153
|
*/
|
|
154
154
|
export interface ModelStrategy<T = unknown> {
|
|
155
|
-
type:
|
|
155
|
+
type: 'model';
|
|
156
156
|
/** Model endpoint or ID */
|
|
157
157
|
modelId: string;
|
|
158
158
|
/** Input fields from context */
|
|
@@ -167,11 +167,11 @@ export interface ModelStrategy<T = unknown> {
|
|
|
167
167
|
* (Phase 3 - placeholder)
|
|
168
168
|
*/
|
|
169
169
|
export interface ExternalStrategy<T = unknown> {
|
|
170
|
-
type:
|
|
170
|
+
type: 'external';
|
|
171
171
|
/** Endpoint URL */
|
|
172
172
|
endpoint: string;
|
|
173
173
|
/** HTTP method */
|
|
174
|
-
method?:
|
|
174
|
+
method?: 'GET' | 'POST';
|
|
175
175
|
/** Default value if endpoint fails */
|
|
176
176
|
default: T;
|
|
177
177
|
/** Timeout in milliseconds */
|
|
@@ -192,7 +192,7 @@ export interface DecisionResult<T = unknown> {
|
|
|
192
192
|
/** Debug info about which rule/condition matched */
|
|
193
193
|
matchInfo?: {
|
|
194
194
|
/** Strategy type that produced the result */
|
|
195
|
-
strategyType: DecisionStrategy<T>[
|
|
195
|
+
strategyType: DecisionStrategy<T>['type'];
|
|
196
196
|
/** Index of matched rule (for rule strategy) */
|
|
197
197
|
matchedRuleIndex?: number;
|
|
198
198
|
/** Conditions that were evaluated */
|
package/dist/earlyPatcher.d.ts
CHANGED
|
@@ -1,23 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Early
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
onComplete?: () => void;
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Revert all currently active patches
|
|
2
|
+
* Early Patcher - DEPRECATED
|
|
3
|
+
*
|
|
4
|
+
* This module is kept for backward compatibility but all functionality
|
|
5
|
+
* has moved to ActionEngine. Actions are now applied through the runtime.
|
|
6
|
+
*
|
|
7
|
+
* @deprecated Use ActionEngine through SmartCanvasRuntime instead.
|
|
12
8
|
*/
|
|
13
9
|
export declare function revertAllPatches(): void;
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
* This runs before React components are mounted
|
|
17
|
-
*/
|
|
18
|
-
export declare function applyPatchesEarly(config: EarlyPatchConfig): void;
|
|
19
|
-
/**
|
|
20
|
-
* Extract patches from SDK config
|
|
21
|
-
*/
|
|
22
|
-
export declare function extractPatchesFromConfig(config: any): Patch[];
|
|
23
|
-
export {};
|
|
10
|
+
export declare function applyPatchesEarly(): void;
|
|
11
|
+
export declare function extractPatchesFromConfig(): [];
|
package/dist/earlyPatcher.js
CHANGED
|
@@ -1,69 +1,20 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Early
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Revert all currently active patches
|
|
2
|
+
* Early Patcher - DEPRECATED
|
|
3
|
+
*
|
|
4
|
+
* This module is kept for backward compatibility but all functionality
|
|
5
|
+
* has moved to ActionEngine. Actions are now applied through the runtime.
|
|
6
|
+
*
|
|
7
|
+
* @deprecated Use ActionEngine through SmartCanvasRuntime instead.
|
|
10
8
|
*/
|
|
9
|
+
// Re-export empty functions for any code still importing from here
|
|
11
10
|
export function revertAllPatches() {
|
|
12
|
-
|
|
13
|
-
try {
|
|
14
|
-
revertPatch(id);
|
|
15
|
-
}
|
|
16
|
-
catch (e) {
|
|
17
|
-
console.warn(`[SmartCanvas] Failed to revert patch ${id}`, e);
|
|
18
|
-
}
|
|
19
|
-
});
|
|
20
|
-
activePatchIds.clear();
|
|
21
|
-
console.log('[SmartCanvas] Reverted all patches');
|
|
11
|
+
console.warn('[SmartCanvas] revertAllPatches is deprecated. Use ActionEngine instead.');
|
|
22
12
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
* This runs before React components are mounted
|
|
26
|
-
*/
|
|
27
|
-
export function applyPatchesEarly(config) {
|
|
28
|
-
const { patches = [], onComplete } = config;
|
|
29
|
-
// Apply each patch synchronously
|
|
30
|
-
let appliedCount = 0;
|
|
31
|
-
patches.forEach(patch => {
|
|
32
|
-
try {
|
|
33
|
-
const result = applyPatch(patch, {
|
|
34
|
-
policy: defaultPolicy,
|
|
35
|
-
shadowHost: null // No shadow DOM yet, apply to main document
|
|
36
|
-
});
|
|
37
|
-
if (result.ok) {
|
|
38
|
-
appliedCount++;
|
|
39
|
-
activePatchIds.add(patch.id);
|
|
40
|
-
console.log(`[SmartCanvas] Early patch applied: ${patch.id}`);
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
console.warn(`[SmartCanvas] Early patch failed: ${patch.id}`, result.reason);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
catch (error) {
|
|
47
|
-
console.error(`[SmartCanvas] Error applying early patch: ${patch.id}`, error);
|
|
48
|
-
}
|
|
49
|
-
});
|
|
50
|
-
console.log(`[SmartCanvas] Applied ${appliedCount}/${patches.length} patches early`);
|
|
51
|
-
// Callback when done
|
|
52
|
-
if (onComplete) {
|
|
53
|
-
onComplete();
|
|
54
|
-
}
|
|
13
|
+
export function applyPatchesEarly() {
|
|
14
|
+
console.warn('[SmartCanvas] applyPatchesEarly is deprecated. Use ActionEngine instead.');
|
|
55
15
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
export function extractPatchesFromConfig(config) {
|
|
60
|
-
if (!config || !config.patches)
|
|
61
|
-
return [];
|
|
62
|
-
return config.patches.map((patch, index) => ({
|
|
63
|
-
id: patch.id || `patch_${index}`,
|
|
64
|
-
anchor: patch.anchor,
|
|
65
|
-
operations: patch.operations || [],
|
|
66
|
-
invariants: patch.invariants
|
|
67
|
-
}));
|
|
16
|
+
export function extractPatchesFromConfig() {
|
|
17
|
+
console.warn('[SmartCanvas] extractPatchesFromConfig is deprecated. Config now uses actions[].');
|
|
18
|
+
return [];
|
|
68
19
|
}
|
|
69
20
|
//# sourceMappingURL=earlyPatcher.js.map
|
package/dist/earlyPatcher.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"earlyPatcher.js","sourceRoot":"","sources":["../src/earlyPatcher.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"earlyPatcher.js","sourceRoot":"","sources":["../src/earlyPatcher.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,mEAAmE;AACnE,MAAM,UAAU,gBAAgB;IAC9B,OAAO,CAAC,IAAI,CAAC,yEAAyE,CAAC,CAAC;AAC1F,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,OAAO,CAAC,IAAI,CAAC,0EAA0E,CAAC,CAAC;AAC3F,CAAC;AAED,MAAM,UAAU,wBAAwB;IACtC,OAAO,CAAC,IAAI,CAAC,kFAAkF,CAAC,CAAC;IACjG,OAAO,EAAE,CAAC;AACZ,CAAC"}
|