@picked/client 0.0.1-dev.1777938796953 → 0.0.1-dev.1778120127377
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/README.md +0 -8
- package/dist/{api-GE6C0lxp.cjs → api-BM3zWj3k.cjs} +1 -1
- package/dist/{api-Bn4z854o.js → api-zfqEYPyX.js} +1 -1
- package/dist/cjs/form/index.js +1 -1
- package/dist/cjs/index.js +4 -4
- package/dist/cjs/plugins/dynamic-experiences/index.js +1 -1
- package/dist/cjs/plugins/experience-browser-storage/index.js +1 -1
- package/dist/cjs/plugins/history-browser-storage/index.js +1 -1
- package/dist/cjs/plugins/single-page-app/index.js +1 -1
- package/dist/cjs/plugins/web-components/index.js +1 -1
- package/dist/cjs/server/index.js +1 -1
- package/dist/docs/actions.mdx +0 -1
- package/dist/docs/index.md +0 -2
- package/dist/docs/pickedql/dimensions.md +2 -0
- package/dist/docs/pickedql/virtual-functions.md +27 -0
- package/dist/docs/sdk/actions.md +0 -1
- package/dist/docs/sdk/features.md +0 -1
- package/dist/docs/sdk/index.md +0 -1
- package/dist/docs/sdk/plugins/create-experience.md +0 -1
- package/dist/docs/sdk/plugins/dynamic-experiences.md +0 -1
- package/dist/docs/sdk/plugins/window-object.md +0 -1
- package/dist/docs/sdk/predicates.md +0 -1
- package/dist/esm/form/index.js +1 -1
- package/dist/esm/index.js +971 -539
- package/dist/esm/plugins/dynamic-experiences/index.js +51 -49
- package/dist/esm/plugins/experience-browser-storage/index.js +8 -5
- package/dist/esm/plugins/history-browser-storage/index.js +3 -3
- package/dist/esm/plugins/single-page-app/index.js +1 -1
- package/dist/esm/plugins/web-components/index.js +1 -1
- package/dist/esm/server/index.js +23 -13
- package/dist/{experience-instance-CWYRLfFM.js → experience-instance-BrLWgVAN.js} +135 -127
- package/dist/experience-instance-Ct3ogC7n.cjs +1 -0
- package/dist/rules-logic-D_CVBuv7.js +13 -0
- package/dist/rules-logic-H6P8xwHF.cjs +1 -0
- package/dist/types/client.d.ts +2 -2
- package/dist/types/entities/action/action.d.ts +6 -3
- package/dist/types/entities/action/action.d.ts.map +1 -1
- package/dist/types/entities/component/component.d.ts +39 -2
- package/dist/types/entities/component/component.d.ts.map +1 -1
- package/dist/types/entities/experience/experience.d.ts +49 -113
- package/dist/types/entities/experience/experience.d.ts.map +1 -1
- package/dist/types/entities/experience-instance/experience-instance.d.ts +17 -2
- package/dist/types/entities/experience-instance/experience-instance.d.ts.map +1 -1
- package/dist/types/entities/feature/feature.d.ts +26 -2
- package/dist/types/entities/feature/feature.d.ts.map +1 -1
- package/dist/types/entities/field/field.d.ts.map +1 -1
- package/dist/types/entities/framework/framework.d.ts +24 -3
- package/dist/types/entities/framework/framework.d.ts.map +1 -1
- package/dist/types/entities/history/history.d.ts +15 -27
- package/dist/types/entities/history/history.d.ts.map +1 -1
- package/dist/types/entities/plugin/plugin.d.ts +32 -1
- package/dist/types/entities/plugin/plugin.d.ts.map +1 -1
- package/dist/types/entities/predicate/predicate.d.ts +24 -3
- package/dist/types/entities/predicate/predicate.d.ts.map +1 -1
- package/dist/types/entities/session/session.d.ts +45 -0
- package/dist/types/entities/session/session.d.ts.map +1 -0
- package/dist/types/exports.d.ts +9 -3
- package/dist/types/exports.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/lifecycle/lifecycle.d.ts +47 -0
- package/dist/types/lifecycle/lifecycle.d.ts.map +1 -0
- package/dist/types/lifecycle/rules-logic.d.ts +24 -0
- package/dist/types/lifecycle/rules-logic.d.ts.map +1 -0
- package/dist/types/lifecycle/state-snapshot.d.ts +37 -0
- package/dist/types/lifecycle/state-snapshot.d.ts.map +1 -0
- package/dist/types/logic-engine.d.ts +1 -1
- package/dist/types/logic-engine.d.ts.map +1 -1
- package/dist/types/picked.d.ts +111 -190
- package/dist/types/picked.d.ts.map +1 -1
- package/dist/types/plugins/dynamic-experiences/plugin.d.ts.map +1 -1
- package/dist/types/plugins/experience-browser-storage/plugin.d.ts.map +1 -1
- package/dist/types/plugins/history-browser-storage/plugin.d.ts +0 -14
- package/dist/types/plugins/history-browser-storage/plugin.d.ts.map +1 -1
- package/dist/types/plugins/web-components/plugin.d.ts.map +1 -1
- package/dist/types/server/index.d.ts +7 -0
- package/dist/types/server/index.d.ts.map +1 -1
- package/dist/types/utils/events.d.ts +1 -1
- package/dist/types/utils/events.d.ts.map +1 -1
- package/dist/types/utils/picked-config.d.ts +12 -4
- package/dist/types/utils/picked-config.d.ts.map +1 -1
- package/dist/types/utils/rules-logic.d.ts +4 -9
- package/dist/types/utils/rules-logic.d.ts.map +1 -1
- package/package.json +2 -2
- package/dist/experience-instance-BDTNGT8a.cjs +0 -1
- package/dist/rules-logic-BTIxfrJJ.js +0 -240
- package/dist/rules-logic-DNLOv90w.cjs +0 -1
- package/dist/types/utils/state-snaphot.d.ts +0 -26
- package/dist/types/utils/state-snaphot.d.ts.map +0 -1
- package/dist/types/utils/user-session.d.ts +0 -12
- package/dist/types/utils/user-session.d.ts.map +0 -1
- /package/dist/{object-C82v79xc.js → object-DvUDOytC.js} +0 -0
- /package/dist/{object-CUJOjanb.cjs → object-ThO1DEyl.cjs} +0 -0
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { EventCallable, Store } from 'effector';
|
|
2
|
+
/** Plain shape of a persisted session — id, optional isUser flag, optional identifiers map. */
|
|
3
|
+
export interface Session {
|
|
4
|
+
id: string;
|
|
5
|
+
isUser?: boolean;
|
|
6
|
+
identifiers?: Record<string, string>;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Session entity exposing the reactive `Session` store and mutator events. Field reads
|
|
10
|
+
* derive from the store via `.map`, which is reference-equality memoised so per-field
|
|
11
|
+
* subscribers only re-emit when their slice actually changes.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* const session = createSession()
|
|
16
|
+
* session.store.map((s) => s.id).watch((id) => console.log('Session id:', id))
|
|
17
|
+
* session.setIsUser(true)
|
|
18
|
+
* session.setIdentifier({ key: 'fp_id', value: 'abc' })
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export interface SessionEntity {
|
|
22
|
+
/** Reactive store of the full session. Hydrated synchronously from localStorage when available; otherwise minted fresh in memory. */
|
|
23
|
+
store: Store<Session>;
|
|
24
|
+
/** Event — sets the isUser flag. */
|
|
25
|
+
setIsUser: EventCallable<boolean>;
|
|
26
|
+
/** Event — adds or replaces an identifier in the identifiers map. */
|
|
27
|
+
setIdentifier: EventCallable<{
|
|
28
|
+
key: string;
|
|
29
|
+
value: string;
|
|
30
|
+
}>;
|
|
31
|
+
/** Event — removes an identifier from the identifiers map. */
|
|
32
|
+
removeIdentifier: EventCallable<string>;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Initialises a session entity. Always succeeds — persistence is gated internally on `supportsLocalStorage()`, so callers do not need to null-check the result.
|
|
36
|
+
*
|
|
37
|
+
* @returns {SessionEntity} A ready-to-use session entity.
|
|
38
|
+
* @example
|
|
39
|
+
* ```typescript
|
|
40
|
+
* const session = initialiseSession()
|
|
41
|
+
* console.log(session.store.getState().id)
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
export declare function initialiseSession(): SessionEntity;
|
|
45
|
+
//# sourceMappingURL=session.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../../src/entities/session/session.ts"],"names":[],"mappings":"AAAA,kMAAkM;AAClM,OAAO,EAAkC,KAAK,aAAa,EAAU,KAAK,KAAK,EAAE,MAAM,UAAU,CAAA;AAKjG,+FAA+F;AAC/F,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACrC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,aAAa;IAC5B,qIAAqI;IACrI,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;IAErB,oCAAoC;IACpC,SAAS,EAAE,aAAa,CAAC,OAAO,CAAC,CAAA;IACjC,qEAAqE;IACrE,aAAa,EAAE,aAAa,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC5D,8DAA8D;IAC9D,gBAAgB,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;CACxC;AA+GD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,IAAI,aAAa,CAEjD"}
|
package/dist/types/exports.d.ts
CHANGED
|
@@ -7,11 +7,17 @@ export type * from './utils/storage';
|
|
|
7
7
|
export { evaluateRuleLogic } from './utils/rules-logic';
|
|
8
8
|
export { getPickedConfig } from './utils/picked-config';
|
|
9
9
|
export { lazyComponent, isLazyLoader } from './entities/component/lazyComponent';
|
|
10
|
+
export { createPluginEffect } from './entities/plugin/plugin';
|
|
10
11
|
/**
|
|
11
|
-
*
|
|
12
|
+
* Creates a new Picked client instance and binds it to the window object.
|
|
12
13
|
*
|
|
13
|
-
* @param options - The client context options including organizationId and projectId
|
|
14
|
-
* @returns The
|
|
14
|
+
* @param {CreateClientOptions} options - The client context options including `organizationId` and `projectId`.
|
|
15
|
+
* @returns {Picked} The initialised Picked client instance.
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* const client = createClient({ organizationId: 'org-1', projectId: 'proj-1' })
|
|
19
|
+
* client.start()
|
|
20
|
+
* ```
|
|
15
21
|
*/
|
|
16
22
|
export declare const createClient: (options: CreateClientOptions) => Picked;
|
|
17
23
|
export type { LaunchExperienceOptions, OpenExperienceOptions, } from './entities/experience/experience';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exports.d.ts","sourceRoot":"","sources":["../../src/exports.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAGjC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1C,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAC/B,mBAAmB,iBAAiB,CAAA;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAA;
|
|
1
|
+
{"version":3,"file":"exports.d.ts","sourceRoot":"","sources":["../../src/exports.ts"],"names":[],"mappings":"AAAA,8IAA8I;AAC9I,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAGjC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1C,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAC/B,mBAAmB,iBAAiB,CAAA;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAA;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAE7D;;;;;;;;;;GAUG;AACH,eAAO,MAAM,YAAY,GAAI,SAAS,mBAAmB,KAAG,MAI3D,CAAA;AAED,YAAY,EACV,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,kCAAkC,CAAA"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -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 './
|
|
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,
|
|
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,
|
|
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"}
|