@picked/client 0.0.62-next.1 → 0.0.62-next.11
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-Dfrznen2.js → api-C6HQ65g9.js} +1 -1
- package/dist/api-v323-Asd.cjs +1 -0
- package/dist/cjs/form/index.js +1 -1
- package/dist/cjs/index.js +4 -4
- package/dist/cjs/plugins/create-experience/index.js +1 -1
- package/dist/cjs/plugins/dom-observer/index.js +1 -0
- 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/responses-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/api/authentication.md +376 -0
- package/dist/docs/api/authorization-and-scopes.md +262 -0
- package/dist/docs/api/error-handling.md +211 -0
- package/dist/docs/api/index.md +172 -11
- package/dist/docs/api/pagination.md +176 -0
- package/dist/docs/image-optimisation-service.md +72 -0
- package/dist/docs/index.md +0 -2
- package/dist/docs/pickedql/data-sources.md +2 -2
- package/dist/docs/pickedql/dimensions.md +2 -0
- package/dist/docs/pickedql/schema.md +2 -2
- package/dist/docs/pickedql/virtual-functions.md +27 -0
- package/dist/docs/sdk/actions.md +0 -1
- package/dist/docs/sdk/content-security-policy.md +8 -7
- package/dist/docs/sdk/features.md +0 -1
- package/dist/docs/sdk/fields.md +2 -2
- 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 +2 -3
- package/dist/docs/sdk/plugins/window-object.md +0 -1
- package/dist/docs/sdk/predicates.md +0 -1
- package/dist/docs/workspaces.mdx +60 -1
- package/dist/dom-C3C6Fmwz.cjs +1 -0
- package/dist/dom-DGePXPpM.js +84 -0
- package/dist/esm/form/index.js +1 -1
- package/dist/esm/index.js +1020 -494
- package/dist/esm/plugins/create-experience/index.js +1 -1
- package/dist/esm/plugins/dom-observer/index.js +87 -0
- package/dist/esm/plugins/dynamic-experiences/index.js +133 -60
- package/dist/esm/plugins/experience-browser-storage/index.js +9 -6
- package/dist/esm/plugins/history-browser-storage/index.js +1 -1
- package/dist/esm/plugins/responses-browser-storage/index.js +1 -1
- 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-DImym3m_.js +419 -0
- package/dist/experience-instance-DygAdzbn.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/content/content.d.ts +37 -0
- package/dist/types/entities/content/content.d.ts.map +1 -0
- package/dist/types/entities/experience/experience.d.ts +69 -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/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/entities/step/step.d.ts +17 -2
- package/dist/types/entities/step/step.d.ts.map +1 -1
- package/dist/types/exports.d.ts +9 -3
- package/dist/types/exports.d.ts.map +1 -1
- package/dist/types/index.d.ts +3 -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 +141 -187
- package/dist/types/picked.d.ts.map +1 -1
- package/dist/types/plugins/dom-observer/index.d.ts +3 -0
- package/dist/types/plugins/dom-observer/index.d.ts.map +1 -0
- package/dist/types/plugins/dom-observer/plugin.d.ts +50 -0
- package/dist/types/plugins/dom-observer/plugin.d.ts.map +1 -0
- package/dist/types/plugins/dynamic-experiences/index.d.ts +2 -1
- package/dist/types/plugins/dynamic-experiences/index.d.ts.map +1 -1
- package/dist/types/plugins/dynamic-experiences/plugin.d.ts +18 -1
- package/dist/types/plugins/dynamic-experiences/plugin.d.ts.map +1 -1
- package/dist/types/plugins/dynamic-experiences/types.d.ts +63 -1
- package/dist/types/plugins/dynamic-experiences/types.d.ts.map +1 -1
- package/dist/types/plugins/experience-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 +12 -2
- package/dist/api-NpGrXHyM.cjs +0 -1
- package/dist/docs/reference/index.md +0 -11
- package/dist/docs/tooling/index.md +0 -19
- package/dist/experience-instance-DC2gKwA6.cjs +0 -1
- package/dist/experience-instance-DJaNc5Ob.js +0 -486
- 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/docs/{tooling/chrome-extension.md → chrome-extension.md} +0 -0
- /package/dist/docs/{tooling/gtm-template.md → gtm-template.md} +0 -0
- /package/dist/docs/{tooling/mcp.md → mcp.md} +0 -0
- /package/dist/docs/{tooling/vite-plugin.md → vite-plugin.md} +0 -0
- /package/dist/{id-Bv44ilEo.cjs → id-Cg7fVl1O.cjs} +0 -0
- /package/dist/{id-CRqy981z.js → id-n2yrHvNo.js} +0 -0
- /package/dist/{object-C82v79xc.js → object-DvUDOytC.js} +0 -0
- /package/dist/{object-CUJOjanb.cjs → object-ThO1DEyl.cjs} +0 -0
- /package/dist/{storage-B6lQtc4-.cjs → storage-BXSlLTRa.cjs} +0 -0
- /package/dist/{storage-6Xk0uAxB.js → storage-hOHCCXvP.js} +0 -0
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Store } from 'effector';
|
|
2
|
+
import { Content } from '../content/content';
|
|
2
3
|
export type StepsStore = ReturnType<typeof createStepIndex>;
|
|
3
4
|
export interface ExperienceStep {
|
|
4
5
|
id: string;
|
|
@@ -6,6 +7,19 @@ export interface ExperienceStep {
|
|
|
6
7
|
name: string;
|
|
7
8
|
fieldKeys: string[];
|
|
8
9
|
layoutName?: string | null;
|
|
10
|
+
/**
|
|
11
|
+
* Optional reference to a CMS Content record that supplies the step's layout data.
|
|
12
|
+
* The actual content is registered separately via `client.registerContent` and
|
|
13
|
+
* resolved at render time through `layoutContentStore` against the global content registry.
|
|
14
|
+
*/
|
|
15
|
+
layoutContentId?: string | null;
|
|
16
|
+
/**
|
|
17
|
+
* Reactive store of the content record this step references. Composed at registration
|
|
18
|
+
* time against `client.contents.getById(layoutContentId)`. `null` when the step has no
|
|
19
|
+
* `layoutContentId`. Reads stay reactive — content registered after the step
|
|
20
|
+
* (or updated mid-session) flows through automatically.
|
|
21
|
+
*/
|
|
22
|
+
layoutContentStore?: Store<Content | null> | null;
|
|
9
23
|
}
|
|
10
24
|
declare const createStepIndexFactory: () => {
|
|
11
25
|
register: (step: ExperienceStep) => void;
|
|
@@ -19,6 +33,7 @@ declare const createStepIndexFactory: () => {
|
|
|
19
33
|
/**
|
|
20
34
|
* Creates an Effector-based index for registering and retrieving steps.
|
|
21
35
|
*
|
|
36
|
+
* @returns {ReturnType<typeof createStepIndexFactory>} A step index with register, getById, getByKey, listStore, and indexStore.
|
|
22
37
|
* @example
|
|
23
38
|
* ```typescript
|
|
24
39
|
* const steps = createStepIndex()
|
|
@@ -28,8 +43,8 @@ export declare function createStepIndex(): ReturnType<typeof createStepIndexFact
|
|
|
28
43
|
/**
|
|
29
44
|
* Registers a step with the given index via the helper function.
|
|
30
45
|
*
|
|
31
|
-
* @param step - The step definition to register.
|
|
32
|
-
* @param index - The step index to register the step with.
|
|
46
|
+
* @param {ExperienceStep} step - The step definition to register.
|
|
47
|
+
* @param {ReturnType<typeof createStepIndex>} index - The step index to register the step with.
|
|
33
48
|
* @example
|
|
34
49
|
* ```typescript
|
|
35
50
|
* setupStep(step, index)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step.d.ts","sourceRoot":"","sources":["../../../../src/entities/step/step.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,OAAO,EAA2B,KAAK,KAAK,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"step.d.ts","sourceRoot":"","sources":["../../../../src/entities/step/step.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,OAAO,EAA2B,KAAK,KAAK,EAAE,MAAM,UAAU,CAAA;AAE9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAEjD,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAA;AAI3D,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,IAAI,CAAA;CAClD;AAED,QAAA,MAAM,sBAAsB;qBAuBF,cAAc,KAAG,IAAI;kBAkBxB,cAAc,CAAC,IAAI,CAAC,KAAG,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC;oBAcjD,cAAc,CAAC,KAAK,CAAC,KAAG,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC;;;;;CAa3E,CAAA;AAEF;;;;;;;;GAQG;AACH,wBAAgB,eAAe,IAAI,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAE3E;AAED;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,GAAG,IAAI,CAE/F"}
|
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
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
/** @file Top-level public entry point — re-exports the client class, public utilities, and entity types. */
|
|
1
2
|
export * from './exports';
|
|
2
3
|
export type * from './client';
|
|
3
4
|
export type * from './entities/action/action';
|
|
4
5
|
export type * from './entities/condition/condition';
|
|
6
|
+
export type * from './entities/content/content';
|
|
5
7
|
export type * from './entities/component/component';
|
|
6
8
|
export type * from './entities/component/lazyComponent';
|
|
7
9
|
export type * from './entities/experience-instance/experience-instance';
|
|
@@ -13,7 +15,7 @@ export type * from './entities/framework/framework';
|
|
|
13
15
|
export type * from './entities/history/history';
|
|
14
16
|
export type * from './entities/plugin/plugin';
|
|
15
17
|
export type * from './entities/predicate/predicate';
|
|
16
|
-
export type * from './
|
|
18
|
+
export type * from './lifecycle/state-snapshot';
|
|
17
19
|
export type * from './utils/events';
|
|
18
20
|
export type * from './utils/search-params';
|
|
19
21
|
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,4GAA4G;AAC5G,cAAc,WAAW,CAAA;AACzB,mBAAmB,UAAU,CAAA;AAC7B,mBAAmB,0BAA0B,CAAA;AAC7C,mBAAmB,gCAAgC,CAAA;AACnD,mBAAmB,4BAA4B,CAAA;AAC/C,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;AA4BD;;;;;;;;;;;;;;;;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"}
|