@picked/client 0.0.62-next.2 → 0.0.62-next.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/dist/{api-Cfb-8mqu.js → api-D-_eTc_P.js} +1 -1
  2. package/dist/{api-C-Q9t21v.cjs → api-EHKlffsC.cjs} +1 -1
  3. package/dist/cjs/form/index.js +1 -1
  4. package/dist/cjs/index.js +2 -2
  5. package/dist/cjs/plugins/create-experience/index.js +1 -1
  6. package/dist/cjs/plugins/dom-observer/index.js +1 -0
  7. package/dist/cjs/plugins/dynamic-experiences/index.js +1 -1
  8. package/dist/cjs/plugins/experience-browser-storage/index.js +1 -1
  9. package/dist/cjs/plugins/history-browser-storage/index.js +1 -1
  10. package/dist/cjs/plugins/responses-browser-storage/index.js +1 -1
  11. package/dist/cjs/plugins/single-page-app/index.js +1 -1
  12. package/dist/cjs/plugins/web-components/index.js +1 -1
  13. package/dist/cjs/server/index.js +1 -1
  14. package/dist/dom-C3C6Fmwz.cjs +1 -0
  15. package/dist/dom-DGePXPpM.js +84 -0
  16. package/dist/esm/form/index.js +1 -1
  17. package/dist/esm/index.js +948 -469
  18. package/dist/esm/plugins/create-experience/index.js +1 -1
  19. package/dist/esm/plugins/dom-observer/index.js +87 -0
  20. package/dist/esm/plugins/dynamic-experiences/index.js +51 -49
  21. package/dist/esm/plugins/experience-browser-storage/index.js +9 -6
  22. package/dist/esm/plugins/history-browser-storage/index.js +1 -1
  23. package/dist/esm/plugins/responses-browser-storage/index.js +1 -1
  24. package/dist/esm/plugins/single-page-app/index.js +1 -1
  25. package/dist/esm/plugins/web-components/index.js +1 -1
  26. package/dist/esm/server/index.js +23 -13
  27. package/dist/experience-instance-DImym3m_.js +419 -0
  28. package/dist/experience-instance-DygAdzbn.cjs +1 -0
  29. package/dist/rules-logic-D_CVBuv7.js +13 -0
  30. package/dist/rules-logic-H6P8xwHF.cjs +1 -0
  31. package/dist/types/entities/action/action.d.ts +6 -3
  32. package/dist/types/entities/action/action.d.ts.map +1 -1
  33. package/dist/types/entities/component/component.d.ts +39 -2
  34. package/dist/types/entities/component/component.d.ts.map +1 -1
  35. package/dist/types/entities/experience/experience.d.ts +49 -113
  36. package/dist/types/entities/experience/experience.d.ts.map +1 -1
  37. package/dist/types/entities/experience-instance/experience-instance.d.ts +17 -2
  38. package/dist/types/entities/experience-instance/experience-instance.d.ts.map +1 -1
  39. package/dist/types/entities/feature/feature.d.ts +26 -2
  40. package/dist/types/entities/feature/feature.d.ts.map +1 -1
  41. package/dist/types/entities/field/field.d.ts.map +1 -1
  42. package/dist/types/entities/framework/framework.d.ts +24 -3
  43. package/dist/types/entities/framework/framework.d.ts.map +1 -1
  44. package/dist/types/entities/plugin/plugin.d.ts +32 -1
  45. package/dist/types/entities/plugin/plugin.d.ts.map +1 -1
  46. package/dist/types/entities/predicate/predicate.d.ts +24 -3
  47. package/dist/types/entities/predicate/predicate.d.ts.map +1 -1
  48. package/dist/types/entities/session/session.d.ts +45 -0
  49. package/dist/types/entities/session/session.d.ts.map +1 -0
  50. package/dist/types/exports.d.ts +8 -4
  51. package/dist/types/exports.d.ts.map +1 -1
  52. package/dist/types/index.d.ts +1 -1
  53. package/dist/types/index.d.ts.map +1 -1
  54. package/dist/types/lifecycle/lifecycle.d.ts +47 -0
  55. package/dist/types/lifecycle/lifecycle.d.ts.map +1 -0
  56. package/dist/types/lifecycle/rules-logic.d.ts +24 -0
  57. package/dist/types/lifecycle/rules-logic.d.ts.map +1 -0
  58. package/dist/types/lifecycle/state-snapshot.d.ts +37 -0
  59. package/dist/types/lifecycle/state-snapshot.d.ts.map +1 -0
  60. package/dist/types/logic-engine.d.ts +1 -1
  61. package/dist/types/logic-engine.d.ts.map +1 -1
  62. package/dist/types/picked.d.ts +102 -186
  63. package/dist/types/picked.d.ts.map +1 -1
  64. package/dist/types/plugins/dom-observer/index.d.ts +3 -0
  65. package/dist/types/plugins/dom-observer/index.d.ts.map +1 -0
  66. package/dist/types/plugins/dom-observer/plugin.d.ts +50 -0
  67. package/dist/types/plugins/dom-observer/plugin.d.ts.map +1 -0
  68. package/dist/types/plugins/dynamic-experiences/plugin.d.ts.map +1 -1
  69. package/dist/types/plugins/experience-browser-storage/plugin.d.ts.map +1 -1
  70. package/dist/types/plugins/web-components/plugin.d.ts.map +1 -1
  71. package/dist/types/server/index.d.ts +7 -0
  72. package/dist/types/server/index.d.ts.map +1 -1
  73. package/dist/types/utils/events.d.ts +1 -1
  74. package/dist/types/utils/events.d.ts.map +1 -1
  75. package/dist/types/utils/rules-logic.d.ts +4 -9
  76. package/dist/types/utils/rules-logic.d.ts.map +1 -1
  77. package/package.json +12 -2
  78. package/dist/experience-instance-DC2gKwA6.cjs +0 -1
  79. package/dist/experience-instance-DJaNc5Ob.js +0 -486
  80. package/dist/rules-logic-BTIxfrJJ.js +0 -240
  81. package/dist/rules-logic-DNLOv90w.cjs +0 -1
  82. package/dist/types/utils/state-snaphot.d.ts +0 -26
  83. package/dist/types/utils/state-snaphot.d.ts.map +0 -1
  84. package/dist/types/utils/user-session.d.ts +0 -12
  85. package/dist/types/utils/user-session.d.ts.map +0 -1
  86. /package/dist/{id-Bv44ilEo.cjs → id-Cg7fVl1O.cjs} +0 -0
  87. /package/dist/{id-CRqy981z.js → id-n2yrHvNo.js} +0 -0
  88. /package/dist/{object-C82v79xc.js → object-DvUDOytC.js} +0 -0
  89. /package/dist/{object-CUJOjanb.cjs → object-ThO1DEyl.cjs} +0 -0
  90. /package/dist/{storage-B6lQtc4-.cjs → storage-BXSlLTRa.cjs} +0 -0
  91. /package/dist/{storage-6Xk0uAxB.js → storage-hOHCCXvP.js} +0 -0
@@ -13,7 +13,7 @@ export type * from './entities/framework/framework';
13
13
  export type * from './entities/history/history';
14
14
  export type * from './entities/plugin/plugin';
15
15
  export type * from './entities/predicate/predicate';
16
- export type * from './utils/state-snaphot';
16
+ export type * from './lifecycle/state-snapshot';
17
17
  export type * from './utils/events';
18
18
  export type * from './utils/search-params';
19
19
  export type * from './entities/response/response';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,mBAAmB,UAAU,CAAA;AAC7B,mBAAmB,0BAA0B,CAAA;AAC7C,mBAAmB,gCAAgC,CAAA;AACnD,mBAAmB,gCAAgC,CAAA;AACnD,mBAAmB,oCAAoC,CAAA;AACvD,mBAAmB,oDAAoD,CAAA;AACvE,mBAAmB,kCAAkC,CAAA;AACrD,mBAAmB,sBAAsB,CAAA;AACzC,mBAAmB,4BAA4B,CAAA;AAC/C,mBAAmB,wBAAwB,CAAA;AAC3C,mBAAmB,gCAAgC,CAAA;AACnD,mBAAmB,4BAA4B,CAAA;AAC/C,mBAAmB,0BAA0B,CAAA;AAC7C,mBAAmB,gCAAgC,CAAA;AACnD,mBAAmB,uBAAuB,CAAA;AAC1C,mBAAmB,gBAAgB,CAAA;AACnC,mBAAmB,uBAAuB,CAAA;AAC1C,mBAAmB,8BAA8B,CAAA;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,mBAAmB,UAAU,CAAA;AAC7B,mBAAmB,0BAA0B,CAAA;AAC7C,mBAAmB,gCAAgC,CAAA;AACnD,mBAAmB,gCAAgC,CAAA;AACnD,mBAAmB,oCAAoC,CAAA;AACvD,mBAAmB,oDAAoD,CAAA;AACvE,mBAAmB,kCAAkC,CAAA;AACrD,mBAAmB,sBAAsB,CAAA;AACzC,mBAAmB,4BAA4B,CAAA;AAC/C,mBAAmB,wBAAwB,CAAA;AAC3C,mBAAmB,gCAAgC,CAAA;AACnD,mBAAmB,4BAA4B,CAAA;AAC/C,mBAAmB,0BAA0B,CAAA;AAC7C,mBAAmB,gCAAgC,CAAA;AACnD,mBAAmB,4BAA4B,CAAA;AAC/C,mBAAmB,gBAAgB,CAAA;AACnC,mBAAmB,uBAAuB,CAAA;AAC1C,mBAAmB,8BAA8B,CAAA;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA"}
@@ -0,0 +1,47 @@
1
+ import { Effect, EventCallable, StoreWritable } from 'effector';
2
+ import { Picked } from '../picked';
3
+ import { LogicRule } from '../logic-engine';
4
+ /** Discrete stages of the SDK lifecycle. */
5
+ export type LifecycleStage = 'idle' | 'starting' | 'ready' | 'failed';
6
+ /** A logic-engine gate rule, a literal boolean override, or `undefined` to indicate no gate is configured. */
7
+ type GateConfig = LogicRule | boolean | undefined;
8
+ /** Public effector units exposed by the lifecycle module. */
9
+ interface Lifecycle {
10
+ /** Public trigger — fires the start chain. `await allSettled(start, { scope })` resolves once the chain has fully settled. */
11
+ start: EventCallable<void>;
12
+ /** Reactive store of the readiness flag. */
13
+ readyStore: StoreWritable<boolean>;
14
+ /** Reactive store of the precondition-gate result (`undefined` until `start` is fired). */
15
+ preconditionPassedStore: StoreWritable<boolean | undefined>;
16
+ /** Reactive store of the condition-gate result (`undefined` until `start` is fired). */
17
+ conditionPassedStore: StoreWritable<boolean | undefined>;
18
+ /** Reactive store of the current lifecycle stage. */
19
+ lifecycleStageStore: StoreWritable<LifecycleStage>;
20
+ /** Event — registers a plugin onStart hook effect. */
21
+ registerPluginStartHook: EventCallable<Effect<void, void, Error>>;
22
+ /** Event — sets the precondition gate rule (called once during construction). */
23
+ setPrecondition: EventCallable<GateConfig>;
24
+ /** Event — sets the condition gate rule (called once during construction). */
25
+ setCondition: EventCallable<GateConfig>;
26
+ }
27
+ /**
28
+ * Creates the lifecycle module for a Picked client. Owns the start chain as an effector
29
+ * event graph: `start` triggers a fan-out of effects (ping, plugin hooks, domInteractive)
30
+ * whose `.done` events drive the next phases via `sample`.
31
+ *
32
+ * @param {object} params - Factory params.
33
+ * @param {Picked} params.client - The Picked client instance.
34
+ * @returns {Lifecycle} The lifecycle module exposing public events and read-only reactive stores.
35
+ * @example
36
+ * ```typescript
37
+ * const lifecycle = createLifecycle({ client })
38
+ * lifecycle.setPrecondition(myRule)
39
+ * lifecycle.start()
40
+ * await allSettled(lifecycle.start, { scope })
41
+ * ```
42
+ */
43
+ export declare function createLifecycle(params: {
44
+ client: Picked;
45
+ }): Lifecycle;
46
+ export {};
47
+ //# sourceMappingURL=lifecycle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../../src/lifecycle/lifecycle.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,OAAO,EAOL,KAAK,MAAM,EACX,KAAK,aAAa,EAElB,KAAK,aAAa,EACnB,MAAM,UAAU,CAAA;AAEjB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAOhD,4CAA4C;AAC5C,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAA;AAErE,8GAA8G;AAC9G,KAAK,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAA;AAEjD,6DAA6D;AAC7D,UAAU,SAAS;IACjB,8HAA8H;IAC9H,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,CAAA;IAE1B,4CAA4C;IAC5C,UAAU,EAAE,aAAa,CAAC,OAAO,CAAC,CAAA;IAClC,2FAA2F;IAC3F,uBAAuB,EAAE,aAAa,CAAC,OAAO,GAAG,SAAS,CAAC,CAAA;IAC3D,wFAAwF;IACxF,oBAAoB,EAAE,aAAa,CAAC,OAAO,GAAG,SAAS,CAAC,CAAA;IACxD,qDAAqD;IACrD,mBAAmB,EAAE,aAAa,CAAC,cAAc,CAAC,CAAA;IAElD,sDAAsD;IACtD,uBAAuB,EAAE,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;IAEjE,iFAAiF;IACjF,eAAe,EAAE,aAAa,CAAC,UAAU,CAAC,CAAA;IAC1C,8EAA8E;IAC9E,YAAY,EAAE,aAAa,CAAC,UAAU,CAAC,CAAA;CACxC;AAqOD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAErE"}
@@ -0,0 +1,24 @@
1
+ import { Effect } from 'effector';
2
+ import { LogicObject, LogicRule } from '../logic-engine';
3
+ import { Picked } from '../picked';
4
+ /** Parameters for `evaluateRuleLogicFx` — the rule to evaluate and an optional context override. */
5
+ export interface EvaluateRuleLogicParams {
6
+ rule: LogicRule;
7
+ context?: LogicObject;
8
+ }
9
+ /**
10
+ * Creates an effector effect that evaluates a json-logic rule against the client's reactive state. The effect uses `attach({ source })` so all reads are scope-aware and reactive — no `.getState()` calls.
11
+ *
12
+ * @param {object} params - Factory params.
13
+ * @param {Picked} params.client - The Picked client instance whose stores back the evaluation context.
14
+ * @returns {Effect<EvaluateRuleLogicParams, unknown, Error>} An effect that evaluates a rule and resolves to the result.
15
+ * @example
16
+ * ```typescript
17
+ * const evaluateRuleLogicFx = createEvaluateRuleLogicFx({ client })
18
+ * const result = await evaluateRuleLogicFx({ rule: someRule, context: { extra: 'data' } })
19
+ * ```
20
+ */
21
+ export declare function createEvaluateRuleLogicFx(params: {
22
+ client: Picked;
23
+ }): Effect<EvaluateRuleLogicParams, unknown, Error>;
24
+ //# sourceMappingURL=rules-logic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rules-logic.d.ts","sourceRoot":"","sources":["../../../src/lifecycle/rules-logic.ts"],"names":[],"mappings":"AAAA,kGAAkG;AAClG,OAAO,EAAU,KAAK,MAAM,EAAE,MAAM,UAAU,CAAA;AAE9C,OAAO,KAAK,EAAgB,WAAW,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAEvC,oGAAoG;AACpG,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,SAAS,CAAA;IACf,OAAO,CAAC,EAAE,WAAW,CAAA;CACtB;AAuED;;;;;;;;;;;GAWG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE;IAChD,MAAM,EAAE,MAAM,CAAA;CACf,GAAG,MAAM,CAAC,uBAAuB,EAAE,OAAO,EAAE,KAAK,CAAC,CAElD"}
@@ -0,0 +1,37 @@
1
+ import { Store } from 'effector';
2
+ import { Picked } from '../picked';
3
+ import { Field, FieldValue } from '../entities/field/field';
4
+ /** Immutable snapshot of the current client state, suitable for passing to user-supplied predicates, actions, and rule evaluators. */
5
+ export interface StateSnapshot {
6
+ client: Picked;
7
+ location?: Window['location'];
8
+ document?: Window['document'];
9
+ sessionStorage?: Window['sessionStorage'];
10
+ localStorage?: Window['localStorage'];
11
+ responses: {
12
+ fieldKey: string;
13
+ value: FieldValue | undefined;
14
+ }[];
15
+ fields: Field[];
16
+ }
17
+ /**
18
+ * Creates a reactive store that always reflects the current client state — responses, fields, browser globals, and the client reference.
19
+ *
20
+ * Consumers reading the snapshot inside an effect should use `attach({ source: stateSnapshotStore })` rather than `.getState()` so reads remain scope-aware and reactive.
21
+ *
22
+ * @param {object} params - Factory params.
23
+ * @param {Picked} params.client - The Picked client instance to derive the snapshot from.
24
+ * @returns {Store<StateSnapshot>} A derived store of the current state snapshot.
25
+ * @example
26
+ * ```typescript
27
+ * const stateSnapshotStore = createStateSnapshotStore({ client })
28
+ * const evaluateFx = attach({
29
+ * source: stateSnapshotStore,
30
+ * effect: (snapshot, rule) => evaluate(snapshot, rule),
31
+ * })
32
+ * ```
33
+ */
34
+ export declare function createStateSnapshotStore(params: {
35
+ client: Picked;
36
+ }): Store<StateSnapshot>;
37
+ //# sourceMappingURL=state-snapshot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state-snapshot.d.ts","sourceRoot":"","sources":["../../../src/lifecycle/state-snapshot.ts"],"names":[],"mappings":"AAAA,gIAAgI;AAChI,OAAO,EAAW,KAAK,KAAK,EAAE,MAAM,UAAU,CAAA;AAE9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAEhE,sIAAsI;AACtI,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,CAAA;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,CAAA;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAA;IACzC,YAAY,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,CAAA;IACrC,SAAS,EAAE;QACT,QAAQ,EAAE,MAAM,CAAA;QAChB,KAAK,EAAE,UAAU,GAAG,SAAS,CAAA;KAC9B,EAAE,CAAA;IACH,MAAM,EAAE,KAAK,EAAE,CAAA;CAChB;AA0BD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,KAAK,CAAC,aAAa,CAAC,CAEzF"}
@@ -4,7 +4,7 @@
4
4
  * For the original implementation, see https://github.com/jwadhams/json-logic-js.
5
5
  */
6
6
  export type SyncLogicValue = string | number | boolean | null | undefined | LogicArray | LogicObject;
7
- export type LogicValue = SyncLogicValue | (() => LogicValue) | (() => Promise<SyncLogicValue>) | Promise<SyncLogicValue>;
7
+ export type LogicValue = SyncLogicValue | ((...args: unknown[]) => LogicValue) | ((...args: unknown[]) => Promise<SyncLogicValue>) | Promise<SyncLogicValue>;
8
8
  export interface LogicObject {
9
9
  [key: string]: LogicValue;
10
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"logic-engine.d.ts","sourceRoot":"","sources":["../../src/logic-engine.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,UAAU,GAAG,WAAW,CAAA;AAEpG,MAAM,MAAM,UAAU,GAClB,cAAc,GACd,CAAC,MAAM,UAAU,CAAC,GAClB,CAAC,MAAM,OAAO,CAAC,cAAc,CAAC,CAAC,GAC/B,OAAO,CAAC,cAAc,CAAC,CAAA;AAE3B,MAAM,WAAW,WAAW;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAAA;CAC1B;AAED,KAAK,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,CAAA;AAEnC,MAAM,MAAM,cAAc,GACtB,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,SAAS,GACT,SAAS,GACT,SAAS,EAAE,GACX,cAAc,EAAE,CAAA;AAEpB,MAAM,WAAW,SAAS;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,cAAc,EAAE,CAAA;CACjD;AAED,MAAM,MAAM,YAAY,GACpB;IACE,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAAA;CAC1B,GACD,UAAU,CAAA;AAwSd;;;;;;;GAOG;AAEH,wBAAsB,KAAK,CACzB,KAAK,EAAE,WAAW,GAAG,UAAU,GAAG,SAAS,EAC3C,IAAI,CAAC,EAAE,YAAY,GAClB,OAAO,CAAC,UAAU,CAAC,CAmJrB"}
1
+ {"version":3,"file":"logic-engine.d.ts","sourceRoot":"","sources":["../../src/logic-engine.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,UAAU,GAAG,WAAW,CAAA;AAEpG,MAAM,MAAM,UAAU,GAClB,cAAc,GACd,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,UAAU,CAAC,GACpC,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC,GACjD,OAAO,CAAC,cAAc,CAAC,CAAA;AAE3B,MAAM,WAAW,WAAW;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAAA;CAC1B;AAED,KAAK,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,CAAA;AAEnC,MAAM,MAAM,cAAc,GACtB,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,SAAS,GACT,SAAS,GACT,SAAS,EAAE,GACX,cAAc,EAAE,CAAA;AAEpB,MAAM,WAAW,SAAS;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,cAAc,EAAE,CAAA;CACjD;AAED,MAAM,MAAM,YAAY,GACpB;IACE,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAAA;CAC1B,GACD,UAAU,CAAA;AAuSd;;;;;;;GAOG;AAEH,wBAAsB,KAAK,CACzB,KAAK,EAAE,WAAW,GAAG,UAAU,GAAG,SAAS,EAC3C,IAAI,CAAC,EAAE,YAAY,GAClB,OAAO,CAAC,UAAU,CAAC,CAmJrB"}
@@ -1,9 +1,12 @@
1
+ import { Effect, EventCallable, Store, StoreWritable } from 'effector';
1
2
  import { Experience, LaunchExperienceOptions } from './entities/experience/experience';
2
3
  import { Plugin, PluginConfigIndex } from './entities/plugin/plugin';
3
4
  import { CreateClientOptions } from './client';
4
5
  import { AdaptedComponent } from './entities/component/component';
5
6
  import { Framework } from './entities/framework/framework';
6
- import { StateSnapshot } from './utils/state-snaphot';
7
+ import { StateSnapshot } from './lifecycle/state-snapshot';
8
+ import { EvaluateRuleLogicParams } from './lifecycle/rules-logic';
9
+ import { LifecycleStage } from './lifecycle/lifecycle';
7
10
  import { Predicate } from './entities/predicate/predicate';
8
11
  import { Feature } from './entities/feature/feature';
9
12
  import { EventBusPayload, EventHistoryStore } from './utils/events';
@@ -11,204 +14,133 @@ import { Field } from './entities/field/field';
11
14
  import { ExperienceStep } from './entities/step/step';
12
15
  import { Action } from './entities/action/action';
13
16
  import { Condition } from './entities/condition/condition';
14
- import { SessionStore } from './utils/user-session';
15
- import { LogicRule } from './logic-engine';
17
+ import { SessionEntity } from './entities/session/session';
16
18
  export declare class Picked {
17
19
  static readonly logger: (level: "log" | "warn" | "info" | "error", ...args: Parameters<Console["log"]>) => void;
18
20
  private readonly options;
19
- isReady: boolean;
20
21
  private readonly plugins;
21
- private readonly pluginStartHooks;
22
- readonly eventBus: import('effector').EventCallable<EventBusPayload>;
22
+ readonly eventBus: EventCallable<EventBusPayload>;
23
23
  readonly events: EventHistoryStore;
24
24
  readonly projectId: string;
25
25
  readonly apiUrl: string;
26
26
  readonly dashboardUrl: string;
27
27
  readonly documentationSiteUrl: string;
28
- readonly session?: SessionStore | null;
29
- readonly precondition?: LogicRule | boolean;
30
- readonly condition?: LogicRule | boolean;
31
- preconditionPassed?: boolean;
28
+ readonly session: SessionEntity;
32
29
  readonly searchParams: import('.').PickedSearchParams;
33
30
  readonly history: {
34
- push: import('effector').EventCallable<{
31
+ push: EventCallable<{
35
32
  experienceId: string;
36
33
  node: import('.').ExperienceNode;
37
34
  }>;
38
- replace: import('effector').EventCallable<{
35
+ replace: EventCallable<{
39
36
  experienceId: string;
40
37
  node: import('.').ExperienceNode;
41
38
  }>;
42
- back: import('effector').EventCallable<{
39
+ back: EventCallable<{
43
40
  experienceId?: string;
44
41
  }>;
45
- restore: import('effector').EventCallable<{
42
+ restore: EventCallable<{
46
43
  entries: import('.').HistoryEntry[];
47
44
  }>;
48
- entriesStore: import('effector').Store<import('.').HistoryEntry[]>;
45
+ entriesStore: Store<import('.').HistoryEntry[]>;
49
46
  };
50
47
  readonly components: {
51
- register: (name: string, component: AdaptedComponent) => void;
52
- getByName: (name: string) => import('effector').Store<{
48
+ register: EventCallable<{
49
+ name: string;
50
+ component: AdaptedComponent;
51
+ }>;
52
+ getByName: (name: string) => Store<{
53
53
  name: string;
54
54
  component: AdaptedComponent;
55
55
  } | undefined>;
56
- listStore: import('effector').Store<{
56
+ listStore: Store<{
57
57
  name: string;
58
58
  component: AdaptedComponent<string, unknown>;
59
- frameworkStore: import('effector').Store<Framework | undefined>;
59
+ frameworkStore: Store<Framework | undefined>;
60
60
  }[]>;
61
61
  };
62
62
  readonly experienceInstances: {
63
63
  spawn: (experience: import('.').ExperienceStore, target: HTMLElement, options?: LaunchExperienceOptions) => void;
64
- getByExperienceKey: (key: Experience["key"]) => import('effector').Store<import('.').ExperienceInstance[]>;
65
- getByExperienceId: (id: Experience["id"]) => import('effector').Store<import('.').ExperienceInstance[]>;
66
- listStore: import('effector').Store<import('.').ExperienceInstance[]>;
64
+ getByExperienceKey: (key: Experience["key"]) => Store<import('.').ExperienceInstance[]>;
65
+ getByExperienceId: (id: Experience["id"]) => Store<import('.').ExperienceInstance[]>;
66
+ listStore: Store<import('.').ExperienceInstance[]>;
67
67
  };
68
68
  readonly experiences: {
69
- register: (experience: Experience) => void;
70
- get: (id: Experience["id"]) => import('effector').Store<{
71
- id: string;
72
- key: string;
73
- name: string;
74
- configStore: import('effector').Store<{
75
- name: string;
76
- decisionLogic: import('./logic-engine').LogicValue | LogicRule;
77
- targetSelectors: import('.').ExperienceTarget[];
78
- initializeOpenLogic: import('./logic-engine').LogicValue | LogicRule;
79
- }>;
80
- treeStore: import('effector').Store<{
81
- steps: ExperienceStep[];
82
- nodes: import('.').ExperienceNode[];
83
- edges: import('.').ExperienceEdge[];
84
- conditions: Condition[];
85
- }>;
86
- componentStore: import('effector').Store<{
87
- name: string;
88
- component: AdaptedComponent<string, unknown>;
89
- frameworkStore: import('effector').Store<Framework | undefined>;
90
- } | undefined>;
91
- actions: import('.').ExperienceAction[];
92
- merge: import('effector').EventCallable<{
93
- experience: Partial<Experience>;
94
- strategy: "override";
95
- }>;
96
- } | undefined>;
97
- getById: (id: Experience["id"]) => import('effector').Store<{
98
- id: string;
99
- key: string;
100
- name: string;
101
- configStore: import('effector').Store<{
102
- name: string;
103
- decisionLogic: import('./logic-engine').LogicValue | LogicRule;
104
- targetSelectors: import('.').ExperienceTarget[];
105
- initializeOpenLogic: import('./logic-engine').LogicValue | LogicRule;
106
- }>;
107
- treeStore: import('effector').Store<{
108
- steps: ExperienceStep[];
109
- nodes: import('.').ExperienceNode[];
110
- edges: import('.').ExperienceEdge[];
111
- conditions: Condition[];
112
- }>;
113
- componentStore: import('effector').Store<{
114
- name: string;
115
- component: AdaptedComponent<string, unknown>;
116
- frameworkStore: import('effector').Store<Framework | undefined>;
117
- } | undefined>;
118
- actions: import('.').ExperienceAction[];
119
- merge: import('effector').EventCallable<{
120
- experience: Partial<Experience>;
121
- strategy: "override";
122
- }>;
123
- } | undefined>;
124
- getByKey: (key: Experience["key"]) => import('effector').Store<import('.').ExperienceStore | undefined>;
125
- launch: import('effector').Effect<{
69
+ register: EventCallable<Experience>;
70
+ get: (id: Experience["id"]) => Store<import('.').ExperienceStore | undefined>;
71
+ getById: (id: Experience["id"]) => Store<import('.').ExperienceStore | undefined>;
72
+ getByKey: (key: Experience["key"]) => Store<import('.').ExperienceStore | undefined>;
73
+ launch: Effect<{
126
74
  key: string;
127
75
  options?: LaunchExperienceOptions;
128
76
  } | {
129
77
  id: string;
130
78
  options?: LaunchExperienceOptions;
131
79
  }, void, Error>;
132
- open: import('effector').Effect<{
80
+ open: Effect<{
133
81
  key: string;
134
82
  options?: import('./exports').OpenExperienceOptions;
135
83
  } | {
136
84
  id: string;
137
85
  options?: import('./exports').OpenExperienceOptions;
138
86
  }, void, Error>;
139
- listStore: import('effector').Store<{
140
- id: string;
141
- key: string;
142
- name: string;
143
- configStore: import('effector').Store<{
144
- name: string;
145
- decisionLogic: import('./logic-engine').LogicValue | LogicRule;
146
- targetSelectors: import('.').ExperienceTarget[];
147
- initializeOpenLogic: import('./logic-engine').LogicValue | LogicRule;
148
- }>;
149
- treeStore: import('effector').Store<{
150
- steps: ExperienceStep[];
151
- nodes: import('.').ExperienceNode[];
152
- edges: import('.').ExperienceEdge[];
153
- conditions: Condition[];
154
- }>;
155
- componentStore: import('effector').Store<{
156
- name: string;
157
- component: AdaptedComponent<string, unknown>;
158
- frameworkStore: import('effector').Store<Framework | undefined>;
159
- } | undefined>;
160
- actions: import('.').ExperienceAction[];
161
- merge: import('effector').EventCallable<{
162
- experience: Partial<Experience>;
163
- strategy: "override";
164
- }>;
165
- }[]>;
87
+ listStore: Store<import('.').ExperienceStore[]>;
88
+ initialiseExperiencesFx: Effect<void, void, Error>;
166
89
  };
167
90
  readonly frameworks: {
168
- register: (name: string, framework: Framework) => void;
169
- getByName: (name: string) => import('effector').Store<Framework | undefined>;
170
- listStore: import('effector').Store<Framework[]>;
91
+ register: EventCallable<{
92
+ name: string;
93
+ framework: Framework;
94
+ }>;
95
+ getByName: (name: string) => Store<Framework | undefined>;
96
+ listStore: Store<Framework[]>;
171
97
  };
172
98
  readonly predicates: {
173
- register: (name: string, predicate: Predicate) => void;
174
- getByName: (name: string) => import('effector').Store<Predicate | undefined>;
175
- listStore: import('effector').Store<{
99
+ register: EventCallable<{
100
+ name: string;
101
+ predicate: Predicate;
102
+ }>;
103
+ getByName: (name: string) => Store<Predicate | undefined>;
104
+ listStore: Store<{
176
105
  name: string;
177
106
  predicate: Predicate;
178
107
  }[]>;
179
- getEvokablePredicate: (predicateName: string) => import('effector').Store<() => ReturnType<Predicate>>;
108
+ getEvokablePredicate: (predicateName: string) => Store<() => ReturnType<Predicate>>;
180
109
  };
181
110
  readonly features: {
182
- register: (id: string, feature: Feature) => void;
183
- getById: (id: string) => import('effector').Store<import('.').FeatureBucket | undefined>;
184
- getByName: (name: string) => import('effector').Store<import('.').FeatureIndexItem | undefined>;
185
- listStore: import('effector').Store<import('.').FeatureBucket[]>;
186
- getEvokableFeature: (featureName: string) => import('effector').Store<() => Promise<boolean | string | undefined>>;
111
+ register: EventCallable<{
112
+ id: string;
113
+ feature: Feature;
114
+ }>;
115
+ getById: (id: string) => Store<import('.').FeatureBucket | undefined>;
116
+ getByName: (name: string) => Store<import('.').FeatureIndexItem | undefined>;
117
+ listStore: Store<import('.').FeatureBucket[]>;
118
+ getEvokableFeature: (featureName: string) => Store<() => Promise<boolean | string | undefined>>;
187
119
  };
188
120
  readonly conditions: {
189
121
  register: (condition: Condition) => void;
190
- getById: (id: Condition["id"]) => import('effector').Store<Condition | null>;
191
- getByKey: (key: Condition["key"]) => import('effector').Store<Condition | null>;
192
- listStore: import('effector').Store<Condition[]>;
193
- indexStore: import('effector').StoreWritable<{
122
+ getById: (id: Condition["id"]) => Store<Condition | null>;
123
+ getByKey: (key: Condition["key"]) => Store<Condition | null>;
124
+ listStore: Store<Condition[]>;
125
+ indexStore: StoreWritable<{
194
126
  [id: string]: Condition;
195
127
  }>;
196
128
  };
197
129
  readonly fields: {
198
130
  register: (field: Field) => void;
199
131
  update: (key: import('.').FieldBase["key"], updates: Partial<Field>) => void;
200
- getById: (id: import('.').FieldBase["id"]) => import('effector').Store<Field | null>;
201
- getByKey: (key: import('.').FieldBase["key"]) => import('effector').Store<Field | null>;
202
- listStore: import('effector').Store<Field[]>;
203
- getByName: (name: import('.').FieldBase["name"]) => import('effector').Store<Field | null>;
132
+ getById: (id: import('.').FieldBase["id"]) => Store<Field | null>;
133
+ getByKey: (key: import('.').FieldBase["key"]) => Store<Field | null>;
134
+ listStore: Store<Field[]>;
135
+ getByName: (name: import('.').FieldBase["name"]) => Store<Field | null>;
204
136
  };
205
137
  readonly responses: {
206
138
  register: {
207
139
  (fieldKey: Field["key"], response: import('.').Response): void;
208
140
  (payload: Record<Field["key"], import('.').Response>, response?: never): void;
209
141
  };
210
- clearAll: import('effector').EventCallable<void>;
211
- clear: import('effector').EventCallable<string>;
142
+ clearAll: EventCallable<void>;
143
+ clear: EventCallable<string>;
212
144
  commit: (responsesToCommit: import('.').CommitResponses) => Promise<{
213
145
  errors: import('.').ValidationError[];
214
146
  }>;
@@ -216,36 +148,63 @@ export declare class Picked {
216
148
  responsesToCommit: import('.').CommitResponses;
217
149
  validationErrors: import('.').ValidationError[];
218
150
  }>;
219
- listStore: import('effector').Store<{
151
+ listStore: Store<{
220
152
  fieldKey: string;
221
153
  value: import('.').FieldValue;
222
154
  }[]>;
223
- getAllStore: import('effector').Store<{
155
+ getAllStore: Store<{
224
156
  [fieldKey: string]: import('.').FieldValue;
225
157
  }>;
226
- getByFieldId: (id: Field["id"]) => import('effector').Store<import('.').FieldValue>;
227
- getByFieldKey: (key: Field["key"]) => import('effector').Store<import('.').FieldValue>;
228
- getByFieldName: (fieldName: Field["name"]) => import('effector').Store<import('.').FieldValue>;
158
+ getByFieldId: (id: Field["id"]) => Store<import('.').FieldValue>;
159
+ getByFieldKey: (key: Field["key"]) => Store<import('.').FieldValue>;
160
+ getByFieldName: (fieldName: Field["name"]) => Store<import('.').FieldValue>;
229
161
  };
230
162
  readonly steps: {
231
163
  register: (step: ExperienceStep) => void;
232
- getById: (id: ExperienceStep["id"]) => import('effector').Store<ExperienceStep | null>;
233
- getByKey: (key: ExperienceStep["key"]) => import('effector').Store<ExperienceStep | null>;
234
- listStore: import('effector').Store<ExperienceStep[]>;
235
- indexStore: import('effector').StoreWritable<{
164
+ getById: (id: ExperienceStep["id"]) => Store<ExperienceStep | null>;
165
+ getByKey: (key: ExperienceStep["key"]) => Store<ExperienceStep | null>;
166
+ listStore: Store<ExperienceStep[]>;
167
+ indexStore: StoreWritable<{
236
168
  [id: string]: ExperienceStep;
237
169
  }>;
238
170
  };
239
171
  readonly actions: {
240
- register: (key: string, action: Action) => void;
241
- getByKey: (key: string) => import('effector').Store<Action | undefined>;
242
- listStore: import('effector').Store<import('.').ActionIndexItem[]>;
172
+ register: EventCallable<{
173
+ key: string;
174
+ action: Action;
175
+ }>;
176
+ getByKey: (key: string) => Store<Action | undefined>;
177
+ listStore: Store<import('.').ActionIndexItem[]>;
243
178
  getEvokableAction: (actionKey: string, options?: {
244
179
  experience: import('.').ExperienceInstance;
245
- }) => import('effector').Store<() => ReturnType<Action>>;
180
+ }) => Store<() => ReturnType<Action>>;
246
181
  };
182
+ readonly stateSnapshotStore: Store<StateSnapshot>;
183
+ readonly evaluateRuleLogicFx: Effect<EvaluateRuleLogicParams, unknown, Error>;
184
+ /** Public trigger — fires the start chain. `await allSettled(client.start, { scope })` resolves once the chain has fully settled. */
185
+ readonly start: EventCallable<void>;
186
+ /** Reactive store of the readiness flag. */
187
+ readonly readyStore: StoreWritable<boolean>;
188
+ /** Reactive store of the precondition-gate result (`undefined` until `start` is fired). */
189
+ readonly preconditionPassedStore: StoreWritable<boolean | undefined>;
190
+ /** Reactive store of the condition-gate result (`undefined` until `start` is fired). */
191
+ readonly conditionPassedStore: StoreWritable<boolean | undefined>;
192
+ /** Reactive store of the current lifecycle stage. */
193
+ readonly lifecycleStageStore: StoreWritable<LifecycleStage>;
194
+ private readonly lifecycle;
195
+ /**
196
+ * Effect that interpolates a template string against the latest responses plus a caller-supplied context. Source is `responses.listStore` so renders are scope-aware and pick up the latest committed responses without `.getState()`.
197
+ *
198
+ * @example
199
+ * ```typescript
200
+ * const greeting = await client.renderStringFx({ template: 'Hi {{name}}', context: { name: 'Mae' } })
201
+ * ```
202
+ */
203
+ readonly renderStringFx: Effect<{
204
+ template: string;
205
+ context?: Record<string, unknown>;
206
+ }, string, Error>;
247
207
  constructor(options: CreateClientOptions);
248
- start: () => void;
249
208
  registerFramework: (framework: Framework) => void;
250
209
  registerComponent: (name: string, component: AdaptedComponent) => void;
251
210
  registerPlugin: (plugin: Plugin) => void;
@@ -256,7 +215,6 @@ export declare class Picked {
256
215
  registerStep: (step: ExperienceStep) => void;
257
216
  registerAction: (key: string, action: Action) => void;
258
217
  registerExperience: (experience: Experience) => void;
259
- getStateSnapshot: () => StateSnapshot;
260
218
  /**
261
219
  * Launches an experience by ID.
262
220
  *
@@ -299,53 +257,11 @@ export declare class Picked {
299
257
  * ```
300
258
  */
301
259
  openExperienceByKey: (experienceKey: string) => Promise<void>;
302
- private runPluginStartHooks;
303
- private evaluateGate;
304
260
  private setupPlugins;
305
261
  private setupFeatures;
306
262
  private setupPredicates;
307
263
  private setupActions;
308
264
  private setupComponents;
309
265
  getPluginConfig: (pluginName: string) => PluginConfigIndex[string] | Record<string, unknown>;
310
- /**
311
- * Interpolates a template string using values from the client's response store and/or a provided context.
312
- * Supports dot-notation, modifiers, and executing functions found in the context.
313
- *
314
- * Sources:
315
- * - responses.*: Loaded automatically from the client's internal response store by fieldId (e.g. {{ responses.email }}).
316
- * - Context: Any non-responses.* key must be supplied in the context; nested dot-notation is supported.
317
- * - Functions: If a context value is a function, it is invoked and its result is rendered.
318
- *
319
- * Placeholders:
320
- * - {{ key | modifier: arg | modifier2: arg2 }} with modifiers applied left-to-right.
321
- *
322
- * Modifiers:
323
- * - default: Use the argument when the value is null, undefined, NaN, or empty string; otherwise return the value as a string.
324
- * - append: Append the argument (space-separated) when the value is non-empty.
325
- * - prepend: Prepend the argument (space-separated) when the value is non-empty.
326
- * - upper: Uppercase string values.
327
- * - lower: Lowercase string values.
328
- * - capitalize: Capitalize the first letter of string values.
329
- * - list: Format Arrays, Maps, and Sets via Intl.ListFormat (Maps render as key: value pairs).
330
- *
331
- * Behavior:
332
- * - Empty values (null, undefined, empty string, NaN) render as empty. Numeric 0 renders as "0", boolean false renders as "false", and boolean true renders as "true".
333
- * - Objects and arrays are JSON-stringified; Maps/Sets serialize to {} unless the list modifier is used.
334
- * - Unknown modifiers are ignored.
335
- *
336
- * @param template Template containing placeholders.
337
- * @param context Optional data for interpolation. Non-responses.* keys belong here; function values are executed.
338
- * @returns Interpolated string.
339
- * @example
340
- * renderString("Hello {{ name | default: 'Guest' | capitalize }}! Email: {{ responses.email | lower }}.", { name: "ALICE" })
341
- * // => "Hello Alice! Email: alice@example.com."
342
- * @example
343
- * renderString("User: {{ getName | capitalize }}", { getName: () => "alice" })
344
- * // => "User: Alice"
345
- * @example
346
- * renderString("Fruits: {{ fruits | list }}", { fruits: ["apple", "banana", "cherry"] })
347
- * // => "Fruits: apple, banana, and cherry"
348
- */
349
- renderString: (template: string, context?: Record<string, unknown>) => string;
350
266
  }
351
267
  //# sourceMappingURL=picked.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"picked.d.ts","sourceRoot":"","sources":["../../src/picked.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"picked.d.ts","sourceRoot":"","sources":["../../src/picked.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ /** @file Public entrypoint for the dom-observer plugin. */
2
+ export { domObserverPlugin } from './plugin';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/dom-observer/index.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA"}