@picked/client 0.0.1-dev.1774224866171 → 0.0.1-dev.1774244905386

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 (119) hide show
  1. package/dist/{api-ZK-H-MlI.js → api-ENA5t36y.js} +1 -1
  2. package/dist/{api-WKe5XBeR.cjs → api-dkMxUUe0.cjs} +1 -1
  3. package/dist/cjs/index.js +2 -2
  4. package/dist/cjs/plugins/create-experience/index.js +1 -1
  5. package/dist/cjs/plugins/dynamic-experiences/index.js +1 -1
  6. package/dist/cjs/plugins/experience-browser-storage/index.js +1 -1
  7. package/dist/cjs/plugins/history-browser-storage/index.js +1 -1
  8. package/dist/cjs/plugins/responses-browser-storage/index.js +1 -1
  9. package/dist/cjs/plugins/responses-indexeddb/index.js +1 -1
  10. package/dist/cjs/plugins/single-page-app/index.js +1 -1
  11. package/dist/cjs/plugins/web-components/index.js +1 -1
  12. package/dist/cjs/server/index.js +1 -1
  13. package/dist/esm/index.js +503 -426
  14. package/dist/esm/plugins/create-experience/index.js +352 -281
  15. package/dist/esm/plugins/dynamic-experiences/index.js +53 -30
  16. package/dist/esm/plugins/experience-browser-storage/index.js +1 -1
  17. package/dist/esm/plugins/history-browser-storage/index.js +1 -1
  18. package/dist/esm/plugins/responses-browser-storage/index.js +1 -1
  19. package/dist/esm/plugins/responses-indexeddb/index.js +9 -5
  20. package/dist/esm/plugins/single-page-app/index.js +4 -4
  21. package/dist/esm/plugins/web-components/index.js +1 -1
  22. package/dist/esm/server/index.js +1 -1
  23. package/dist/experience-instance-BODAwa-_.js +713 -0
  24. package/dist/experience-instance-DImQh64e.cjs +1 -0
  25. package/dist/object-BReQiaSS.cjs +1 -0
  26. package/dist/{object-C82v79xc.js → object-Clj5zVr1.js} +1 -2
  27. package/dist/storage-BFjb8azI.cjs +1 -0
  28. package/dist/{storage-6Xk0uAxB.js → storage-DyxpJ0pg.js} +1 -3
  29. package/dist/types/entities/action/action.d.ts.map +1 -1
  30. package/dist/types/entities/condition/condition.d.ts +17 -0
  31. package/dist/types/entities/condition/condition.d.ts.map +1 -0
  32. package/dist/types/entities/experience/experience.d.ts +36 -59
  33. package/dist/types/entities/experience/experience.d.ts.map +1 -1
  34. package/dist/types/entities/experience-instance/experience-instance.d.ts +2 -2
  35. package/dist/types/entities/experience-instance/experience-instance.d.ts.map +1 -1
  36. package/dist/types/entities/feature/feature.d.ts.map +1 -1
  37. package/dist/types/entities/field/field.d.ts +17 -12
  38. package/dist/types/entities/field/field.d.ts.map +1 -1
  39. package/dist/types/entities/history/history.d.ts.map +1 -1
  40. package/dist/types/entities/project/project.d.ts +9 -0
  41. package/dist/types/entities/project/project.d.ts.map +1 -0
  42. package/dist/types/entities/response/response.d.ts +10 -7
  43. package/dist/types/entities/response/response.d.ts.map +1 -1
  44. package/dist/types/entities/step/step.d.ts +38 -0
  45. package/dist/types/entities/step/step.d.ts.map +1 -0
  46. package/dist/types/index.d.ts +3 -1
  47. package/dist/types/index.d.ts.map +1 -1
  48. package/dist/types/logic-engine.d.ts +8 -2
  49. package/dist/types/logic-engine.d.ts.map +1 -1
  50. package/dist/types/picked.d.ts +61 -52
  51. package/dist/types/picked.d.ts.map +1 -1
  52. package/dist/types/plugins/create-experience/create-experience.d.ts +81 -50
  53. package/dist/types/plugins/create-experience/create-experience.d.ts.map +1 -1
  54. package/dist/types/plugins/create-experience/index.d.ts +2 -2
  55. package/dist/types/plugins/create-experience/index.d.ts.map +1 -1
  56. package/dist/types/plugins/create-experience/plugin.d.ts.map +1 -1
  57. package/dist/types/plugins/dynamic-experiences/plugin.d.ts +21 -4
  58. package/dist/types/plugins/dynamic-experiences/plugin.d.ts.map +1 -1
  59. package/dist/types/plugins/dynamic-experiences/types.d.ts +47 -0
  60. package/dist/types/plugins/dynamic-experiences/types.d.ts.map +1 -1
  61. package/dist/types/plugins/experience-browser-storage/plugin.d.ts +1 -2
  62. package/dist/types/plugins/experience-browser-storage/plugin.d.ts.map +1 -1
  63. package/dist/types/plugins/history-browser-storage/plugin.d.ts +0 -1
  64. package/dist/types/plugins/history-browser-storage/plugin.d.ts.map +1 -1
  65. package/dist/types/plugins/responses-browser-storage/plugin.d.ts +1 -2
  66. package/dist/types/plugins/responses-browser-storage/plugin.d.ts.map +1 -1
  67. package/dist/types/plugins/responses-indexeddb/plugin.d.ts.map +1 -1
  68. package/dist/types/plugins/single-page-app/plugin.d.ts +1 -1
  69. package/dist/types/plugins/single-page-app/plugin.d.ts.map +1 -1
  70. package/dist/types/utils/dom.d.ts +3 -0
  71. package/dist/types/utils/dom.d.ts.map +1 -1
  72. package/dist/types/utils/events.d.ts +2 -2
  73. package/dist/types/utils/events.d.ts.map +1 -1
  74. package/dist/types/utils/global-obj.d.ts +1 -0
  75. package/dist/types/utils/global-obj.d.ts.map +1 -1
  76. package/dist/types/utils/indexed-db.d.ts +1 -2
  77. package/dist/types/utils/indexed-db.d.ts.map +1 -1
  78. package/dist/types/utils/key.d.ts +12 -0
  79. package/dist/types/utils/key.d.ts.map +1 -0
  80. package/dist/types/utils/logger.d.ts.map +1 -1
  81. package/dist/types/utils/node-tree/min-max-steps-to-leaf.d.ts.map +1 -1
  82. package/dist/types/utils/node-tree/min-max-steps-to-origin.d.ts.map +1 -1
  83. package/dist/types/utils/node-tree/next-reachable-step-nodes.d.ts +3 -3
  84. package/dist/types/utils/node-tree/next-reachable-step-nodes.d.ts.map +1 -1
  85. package/dist/types/utils/nodes.d.ts +25 -2
  86. package/dist/types/utils/nodes.d.ts.map +1 -1
  87. package/dist/types/utils/object.d.ts +8 -0
  88. package/dist/types/utils/object.d.ts.map +1 -1
  89. package/dist/types/utils/picked-config.d.ts +1 -1
  90. package/dist/types/utils/picked-config.d.ts.map +1 -1
  91. package/dist/types/utils/search-params.d.ts.map +1 -1
  92. package/dist/types/utils/storage.d.ts.map +1 -1
  93. package/package.json +1 -11
  94. package/dist/cjs/form/index.js +0 -1
  95. package/dist/esm/form/index.js +0 -428
  96. package/dist/experience-instance-DZiAwXph.js +0 -481
  97. package/dist/experience-instance-Ddk4Jktn.cjs +0 -1
  98. package/dist/object-CUJOjanb.cjs +0 -1
  99. package/dist/rules-logic-B7vJrWyO.js +0 -231
  100. package/dist/rules-logic-CXr4wXcG.cjs +0 -1
  101. package/dist/storage-B6lQtc4-.cjs +0 -1
  102. package/dist/types/form/build-responses.d.ts +0 -14
  103. package/dist/types/form/build-responses.d.ts.map +0 -1
  104. package/dist/types/form/create-field-evaluator.d.ts +0 -19
  105. package/dist/types/form/create-field-evaluator.d.ts.map +0 -1
  106. package/dist/types/form/create-field-validation.d.ts +0 -44
  107. package/dist/types/form/create-field-validation.d.ts.map +0 -1
  108. package/dist/types/form/create-form.d.ts +0 -66
  109. package/dist/types/form/create-form.d.ts.map +0 -1
  110. package/dist/types/form/create-submit-pipeline.d.ts +0 -58
  111. package/dist/types/form/create-submit-pipeline.d.ts.map +0 -1
  112. package/dist/types/form/get-step-fields.d.ts +0 -5
  113. package/dist/types/form/get-step-fields.d.ts.map +0 -1
  114. package/dist/types/form/index.d.ts +0 -10
  115. package/dist/types/form/index.d.ts.map +0 -1
  116. package/dist/types/plugins/create-experience/serialization.d.ts +0 -6
  117. package/dist/types/plugins/create-experience/serialization.d.ts.map +0 -1
  118. /package/dist/{id-CRqy981z.js → id-BniPxOdF.js} +0 -0
  119. /package/dist/{id-Bv44ilEo.cjs → id-CIbS4P60.cjs} +0 -0
@@ -8,14 +8,20 @@ export type LogicValue = SyncLogicValue | (() => LogicValue) | (() => Promise<Sy
8
8
  export interface LogicObject {
9
9
  [key: string]: LogicValue;
10
10
  }
11
- type LogicArray = Array<LogicValue>;
11
+ export type LogicArray = Array<LogicValue>;
12
12
  export type LogicRuleValue = string | number | boolean | null | undefined | LogicRule | LogicRule[] | LogicRuleValue[];
13
13
  export interface LogicRule {
14
14
  [key: string]: LogicRuleValue | LogicRuleValue[];
15
15
  }
16
+ export type ComparisonOperation = (a: LogicValue, b: LogicValue) => boolean;
17
+ export type NumericOperation = (a: number, b: number, c?: number) => boolean | number;
18
+ export type UnaryOperation = (a: LogicValue) => LogicValue;
19
+ export type StringOperation = (source: LogicValue, start: number, end?: number) => string;
20
+ export type ArrayOperation = (...args: LogicValue[]) => LogicValue[];
21
+ export type MathOperation = (...args: number[]) => number;
16
22
  export type LogicContext = {
17
23
  [key: string]: LogicValue;
18
24
  } | LogicValue;
25
+ export type Operation = (this: LogicContext, ...args: LogicValue[]) => LogicValue | Promise<SyncLogicValue>;
19
26
  export declare function apply(logic: LogicObject | LogicValue | undefined, data?: LogicContext): Promise<LogicValue>;
20
- export {};
21
27
  //# sourceMappingURL=logic-engine.d.ts.map
@@ -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;AA8Od,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,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,MAAM,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,CAAA;AAE1C,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,mBAAmB,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,KAAK,OAAO,CAAA;AAC3E,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,GAAG,MAAM,CAAA;AACrF,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,EAAE,UAAU,KAAK,UAAU,CAAA;AAC1D,MAAM,MAAM,eAAe,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;AACzF,MAAM,MAAM,cAAc,GAAG,CAAC,GAAG,IAAI,EAAE,UAAU,EAAE,KAAK,UAAU,EAAE,CAAA;AACpE,MAAM,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,KAAK,MAAM,CAAA;AAEzD,MAAM,MAAM,YAAY,GACpB;IACE,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAAA;CAC1B,GACD,UAAU,CAAA;AAqCd,MAAM,MAAM,SAAS,GAAG,CACtB,IAAI,EAAE,YAAY,EAClB,GAAG,IAAI,EAAE,UAAU,EAAE,KAClB,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;AAuMzC,wBAAsB,KAAK,CACzB,KAAK,EAAE,WAAW,GAAG,UAAU,GAAG,SAAS,EAC3C,IAAI,CAAC,EAAE,YAAY,GAClB,OAAO,CAAC,UAAU,CAAC,CAoJrB"}
@@ -8,13 +8,16 @@ import { Predicate } from './entities/predicate/predicate';
8
8
  import { Feature } from './entities/feature/feature';
9
9
  import { EventBusPayload, EventHistoryStore } from './utils/events';
10
10
  import { Field } from './entities/field/field';
11
+ import { ExperienceStep } from './entities/step/step';
11
12
  import { Action } from './entities/action/action';
13
+ import { Condition } from './entities/condition/condition';
12
14
  import { SessionStore } from './utils/user-session';
13
15
  import { LogicRule } from './logic-engine';
14
16
  export declare class Picked {
15
17
  static readonly logger: (level: "log" | "warn" | "info" | "error", ...args: Parameters<Console["log"]>) => void;
16
18
  private readonly options;
17
19
  isReady: boolean;
20
+ private project?;
18
21
  private readonly plugins;
19
22
  private readonly pluginStartHooks;
20
23
  readonly eventBus: import('effector').EventCallable<EventBusPayload>;
@@ -28,7 +31,7 @@ export declare class Picked {
28
31
  readonly precondition?: LogicRule | boolean;
29
32
  readonly condition?: LogicRule | boolean;
30
33
  preconditionPassed?: boolean;
31
- readonly searchParams: import('.').PickedSearchParams;
34
+ readonly searchParams: import('./utils/search-params').PickedSearchParams;
32
35
  readonly history: {
33
36
  push: import('effector').EventCallable<{
34
37
  experienceId: string;
@@ -65,34 +68,10 @@ export declare class Picked {
65
68
  };
66
69
  readonly experiences: {
67
70
  register: (experience: Experience) => void;
68
- get: (id: Experience["id"]) => import('effector').Store<{
69
- id: string;
70
- configStore: import('effector').Store<{
71
- name: string;
72
- decisionLogic: import('./logic-engine').LogicValue | LogicRule;
73
- targetSelectors: import('.').ExperienceTarget[];
74
- initializeOpenLogic: import('./logic-engine').LogicValue | LogicRule;
75
- }>;
76
- treeStore: import('effector').Store<{
77
- steps: import('.').ExperienceStep[];
78
- nodes: import('.').ExperienceNode[];
79
- edges: import('.').ExperienceEdge[];
80
- conditionals: import('.').ExperienceConditional[];
81
- }>;
82
- fieldsStore: import('effector').Store<Field[]>;
83
- componentStore: import('effector').Store<{
84
- name: string;
85
- component: AdaptedComponent<string, unknown>;
86
- frameworkStore: import('effector').Store<Framework | undefined>;
87
- } | undefined>;
88
- actions: import('.').ExperienceAction[];
89
- merge: import('effector').EventCallable<{
90
- experience: Partial<Experience>;
91
- strategy: "override";
92
- }>;
93
- } | undefined>;
94
- getById: (id: Experience["id"]) => import('effector').Store<{
71
+ get: (key: string) => import('effector').Store<{
95
72
  id: string;
73
+ key: string;
74
+ name: string;
96
75
  configStore: import('effector').Store<{
97
76
  name: string;
98
77
  decisionLogic: import('./logic-engine').LogicValue | LogicRule;
@@ -100,12 +79,11 @@ export declare class Picked {
100
79
  initializeOpenLogic: import('./logic-engine').LogicValue | LogicRule;
101
80
  }>;
102
81
  treeStore: import('effector').Store<{
103
- steps: import('.').ExperienceStep[];
82
+ steps: ExperienceStep[];
104
83
  nodes: import('.').ExperienceNode[];
105
84
  edges: import('.').ExperienceEdge[];
106
- conditionals: import('.').ExperienceConditional[];
85
+ conditions: Condition[];
107
86
  }>;
108
- fieldsStore: import('effector').Store<Field[]>;
109
87
  componentStore: import('effector').Store<{
110
88
  name: string;
111
89
  component: AdaptedComponent<string, unknown>;
@@ -118,15 +96,17 @@ export declare class Picked {
118
96
  }>;
119
97
  } | undefined>;
120
98
  launch: import('effector').Effect<{
121
- id: string;
99
+ key: string;
122
100
  options?: LaunchExperienceOptions;
123
101
  }, void, Error>;
124
102
  open: import('effector').Effect<{
125
- id: string;
103
+ key: string;
126
104
  options?: import('./exports').OpenExperienceOptions;
127
105
  }, void, Error>;
128
106
  listStore: import('effector').Store<{
129
107
  id: string;
108
+ key: string;
109
+ name: string;
130
110
  configStore: import('effector').Store<{
131
111
  name: string;
132
112
  decisionLogic: import('./logic-engine').LogicValue | LogicRule;
@@ -134,12 +114,11 @@ export declare class Picked {
134
114
  initializeOpenLogic: import('./logic-engine').LogicValue | LogicRule;
135
115
  }>;
136
116
  treeStore: import('effector').Store<{
137
- steps: import('.').ExperienceStep[];
117
+ steps: ExperienceStep[];
138
118
  nodes: import('.').ExperienceNode[];
139
119
  edges: import('.').ExperienceEdge[];
140
- conditionals: import('.').ExperienceConditional[];
120
+ conditions: Condition[];
141
121
  }>;
142
- fieldsStore: import('effector').Store<Field[]>;
143
122
  componentStore: import('effector').Store<{
144
123
  name: string;
145
124
  component: AdaptedComponent<string, unknown>;
@@ -173,6 +152,20 @@ export declare class Picked {
173
152
  listStore: import('effector').Store<import('.').FeatureBucket[]>;
174
153
  getEvokableFeature: (featureName: string) => import('effector').Store<() => Promise<boolean | string | undefined>>;
175
154
  };
155
+ readonly conditions: {
156
+ register: (condition: Condition) => void;
157
+ getById: (id: Condition["id"]) => import('effector').Store<Condition | null>;
158
+ getByKey: (key: Condition["key"]) => import('effector').Store<Condition | null>;
159
+ listStore: import('effector').Store<Condition[]>;
160
+ };
161
+ readonly fields: {
162
+ register: (field: Field) => void;
163
+ update: (fieldKeyOrId: import('.').FieldBase["key"], updates: Partial<Field>) => void;
164
+ getById: (id: import('.').FieldBase["id"]) => import('effector').Store<Field | null>;
165
+ getByKey: (key: import('.').FieldBase["key"]) => import('effector').Store<Field | null>;
166
+ listStore: import('effector').Store<Field[]>;
167
+ getByName: (name: import('.').FieldBase["name"]) => import('effector').Store<Field | null>;
168
+ };
176
169
  readonly responses: {
177
170
  register: {
178
171
  (fieldId: Field["id"], response: import('.').Response): void;
@@ -189,23 +182,21 @@ export declare class Picked {
189
182
  }>;
190
183
  listStore: import('effector').Store<{
191
184
  fieldId: string;
192
- value: import('.').FieldValue | undefined;
185
+ fieldKey: string;
186
+ value: import('.').FieldValue;
193
187
  }[]>;
194
188
  getAllStore: import('effector').Store<{
195
189
  [fieldId: string]: import('.').FieldValue;
196
190
  }>;
197
- getByFieldId: {
198
- (fieldId: Field["id"]): import('effector').Store<import('.').FieldValue>;
199
- <T extends import('.').JsonValue>(fieldId: Field["id"]): import('effector').Store<T | null>;
200
- };
191
+ getAllByKeyStore: import('effector').Store<Record<string, import('.').FieldValue>>;
192
+ getByFieldId: (fieldId: Field["id"]) => import('effector').Store<import('.').FieldValue>;
193
+ getByFieldKey: (key: Field["key"]) => import('effector').Store<import('.').FieldValue>;
201
194
  getByFieldName: (fieldName: Field["name"]) => import('effector').Store<import('.').FieldValue>;
202
195
  };
203
- readonly fields: {
204
- register: (field: Field) => void;
205
- update: (fieldId: import('.').FieldBase["id"], updates: Partial<Field>) => void;
206
- getById: (id: import('.').FieldBase["id"]) => import('effector').Store<Field | null>;
207
- listStore: import('effector').Store<Field[]>;
208
- getByName: (name: import('.').FieldBase["name"]) => import('effector').Store<Field | null>;
196
+ readonly steps: {
197
+ register: (step: ExperienceStep) => void;
198
+ getById: (id: ExperienceStep["id"]) => import('effector').Store<ExperienceStep | null>;
199
+ listStore: import('effector').Store<ExperienceStep[]>;
209
200
  };
210
201
  readonly actions: {
211
202
  register: (name: string, action: Action) => void;
@@ -220,13 +211,34 @@ export declare class Picked {
220
211
  registerPlugin: (plugin: Plugin) => void;
221
212
  registerFeature: (name: string, feature: Feature) => void;
222
213
  registerPredicate: (name: string, predicate: Predicate) => void;
214
+ registerCondition: (condition: Condition) => void;
223
215
  registerField: (field: Field) => void;
216
+ registerStep: (step: ExperienceStep) => void;
224
217
  registerAction: (name: string, action: Action) => void;
225
218
  registerExperience: (experience: Experience) => void;
226
219
  getStateSnapshot: () => StateSnapshot;
227
- /** @deprecated Use `client.experiences.launch({ id: experienceId })` instead. */
220
+ /**
221
+ * Launches an experience by ID.
222
+ *
223
+ * @deprecated Use `client.experiences.launch({ key: experienceKey })` instead.
224
+ * @param experienceId - The experience ID to launch.
225
+ * @param options - Optional launch options.
226
+ * @example
227
+ * ```typescript
228
+ * await client.launchExperienceById('exp-1')
229
+ * ```
230
+ */
228
231
  launchExperienceById: (experienceId: string, options?: LaunchExperienceOptions) => Promise<void>;
229
- /** @deprecated Use `client.experiences.open({ id: experienceId })` instead. */
232
+ /**
233
+ * Opens an experience by ID.
234
+ *
235
+ * @deprecated Use `client.experiences.open({ key: experienceKey })` instead.
236
+ * @param experienceId - The experience ID to open.
237
+ * @example
238
+ * ```typescript
239
+ * await client.openExperienceById('exp-1')
240
+ * ```
241
+ */
230
242
  openExperienceById: (experienceId: string) => Promise<void>;
231
243
  private runPluginStartHooks;
232
244
  private evaluateGate;
@@ -265,15 +277,12 @@ export declare class Picked {
265
277
  * @param template Template containing placeholders.
266
278
  * @param context Optional data for interpolation. Non-responses.* keys belong here; function values are executed.
267
279
  * @returns Interpolated string.
268
- *
269
280
  * @example
270
281
  * renderString("Hello {{ name | default: 'Guest' | capitalize }}! Email: {{ responses.email | lower }}.", { name: "ALICE" })
271
282
  * // => "Hello Alice! Email: alice@example.com."
272
- *
273
283
  * @example
274
284
  * renderString("User: {{ getName | capitalize }}", { getName: () => "alice" })
275
285
  * // => "User: Alice"
276
- *
277
286
  * @example
278
287
  * renderString("Fruits: {{ fruits | list }}", { fruits: ["apple", "banana", "cherry"] })
279
288
  * // => "Fruits: apple, banana, and cherry"
@@ -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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"}
@@ -1,36 +1,42 @@
1
- import { ActionNode, Experience, ExperienceConditional, ExperienceEdge, ExperienceNode, ExperienceStep, ExperienceTarget } from '../../entities/experience/experience';
1
+ import { ExperienceTarget } from '../../entities/experience/experience';
2
2
  import { AdaptedComponent } from '../../entities/component/component';
3
3
  import { LogicRule, LogicValue } from '../../logic-engine';
4
- import { Field, JsonValue, FieldOptionValue, FieldOption, FieldOptionArray } from '../../entities/field/field';
5
- import { Serialized } from './serialization';
6
- export type { FieldOptionValue, FieldOption, FieldOptionArray };
4
+ import { Field, FieldBooleanMultiple, FieldBooleanSingular, FieldNumberMultiple, FieldNumberSingular, FieldObjectMultiple, FieldObjectSingular, FieldTextMultiple, FieldTextSingular, JsonValue } from '../../entities/field/field';
7
5
  export interface Nodeable {
8
6
  node: SerializableNode | null;
9
7
  }
10
8
  export interface SerializableStep extends Nodeable {
11
9
  id: string;
10
+ name: string;
11
+ key: string;
12
+ /** @deprecated Use `name` instead. */
12
13
  label: string;
13
14
  fields: SerializableField[];
14
15
  experience: SerializableExperience;
15
16
  nextStep: (stepOptions: CreateStepOptions | SerializableStep) => SerializableStep;
16
- nextConditional: (conditionalOptions: CreateConditionalOptions | SerializableConditional) => SerializableConditional;
17
+ nextCondition: (conditionOptions: CreateConditionOptions | SerializableCondition) => SerializableCondition;
18
+ /** @deprecated Use `nextCondition` instead. */
19
+ nextConditional: (conditionOptions: CreateConditionOptions | SerializableCondition) => SerializableCondition;
17
20
  addNextExperience: (experience: SerializableExperience) => SerializableExperience;
18
21
  addField: (fieldOptions: CreateFieldOptions | SerializableField) => SerializableField;
19
- serialize: () => Serialized<ExperienceStep>;
22
+ serialize: () => string;
20
23
  }
21
24
  export interface CreateStepOptions {
22
25
  id?: string;
23
- label: string;
26
+ name?: string;
27
+ key?: string;
28
+ /** @deprecated Use `name` instead. */
29
+ label?: string;
24
30
  fields?: SerializableField[];
25
31
  }
26
- export type SerializableNode = SerializableStepNode | SerializableConditionalNode | SerializableLaunchExperienceNode | SerializableOriginNode | SerializableActionNode;
32
+ export type SerializableNode = SerializableStepNode | SerializableConditionNode | SerializableLaunchExperienceNode | SerializableOriginNode | SerializableActionNode;
27
33
  export interface SerializableActionNode extends SerializableBaseNode {
28
34
  type: 'action';
29
35
  action: string;
30
36
  addNext: (nodeable: Nodeable) => undefined;
31
37
  onSuccess: (nodeable: Nodeable) => undefined;
32
38
  onFail: (nodeable: Nodeable) => undefined;
33
- serialize: () => Serialized<ActionNode>;
39
+ serialize: () => string;
34
40
  }
35
41
  export interface CreateActionOptions {
36
42
  action: string;
@@ -39,15 +45,15 @@ export declare const createAction: (actionOptions: CreateActionOptions, experien
39
45
  export interface SerializableBaseNode {
40
46
  id: string;
41
47
  experience: SerializableExperience;
42
- serialize: () => Serialized<ExperienceNode>;
48
+ serialize: () => string;
43
49
  }
44
50
  export interface SerializableStepNode extends SerializableBaseNode {
45
51
  type: 'step';
46
52
  connectedStep: SerializableStep;
47
53
  }
48
- export interface SerializableConditionalNode extends SerializableBaseNode {
49
- type: 'conditional';
50
- connectedConditional: SerializableConditional;
54
+ export interface SerializableConditionNode extends SerializableBaseNode {
55
+ type: 'condition';
56
+ connectedCondition: SerializableCondition;
51
57
  }
52
58
  export interface SerializableLaunchExperienceNode extends SerializableBaseNode {
53
59
  type: 'experience';
@@ -60,8 +66,8 @@ export type CreateNodeOptions = {
60
66
  step: SerializableStep;
61
67
  type: 'step';
62
68
  } | {
63
- conditional: SerializableConditional;
64
- type: 'conditional';
69
+ condition: SerializableCondition;
70
+ type: 'condition';
65
71
  } | {
66
72
  type: 'origin';
67
73
  } | {
@@ -77,75 +83,93 @@ export interface SerializableEdge {
77
83
  sourceNodeHandle: 'true' | 'false' | null;
78
84
  destinationNode: SerializableNode;
79
85
  experience: SerializableExperience;
80
- serialize: () => Serialized<ExperienceEdge>;
86
+ serialize: () => string;
81
87
  }
82
88
  export interface CreateEdgeOptions {
83
89
  sourceNode: SerializableNode;
84
90
  sourceNodeHandle: 'true' | 'false' | null;
85
91
  destinationNode: SerializableNode;
86
92
  }
87
- export interface SerializableConditional extends Nodeable {
93
+ export interface SerializableCondition extends Nodeable {
88
94
  id: string;
95
+ key: string;
96
+ name: string;
97
+ /** @deprecated Use `name` instead. */
89
98
  label?: string;
90
- condition: LogicRule;
99
+ logic: LogicRule;
91
100
  experience: SerializableExperience;
92
101
  addTrue: (nodeable: Nodeable) => undefined;
93
102
  addFalse: (nodeable: Nodeable) => undefined;
94
- serialize: () => Serialized<ExperienceConditional>;
103
+ serialize: () => string;
95
104
  }
96
- export interface CreateConditionalOptions {
105
+ export interface CreateConditionOptions {
106
+ /** @deprecated The `id` is auto-generated. This property is accepted but ignored. */
107
+ id?: string;
97
108
  condition: LogicRule;
109
+ name?: string;
110
+ key?: string;
111
+ /** @deprecated Use `name` instead. */
98
112
  label?: string;
99
113
  }
100
- export interface CreateFieldOptions<T extends JsonValue = JsonValue> {
101
- id: string;
102
- name: string;
103
- type: 'text' | 'number' | 'boolean' | 'object';
104
- label: string;
114
+ export type CreateFieldOptions = Omit<Field, 'id' | 'key' | 'options' | 'placeholder' | 'description' | 'helpText' | 'validation' | 'policies' | 'defaultValue'> & {
115
+ /**
116
+ * @deprecated Provide `key` instead. If omitted, a stable key is auto-generated from `name`.
117
+ * The internal `id` is derived from `key` when not explicitly set.
118
+ */
119
+ id?: string;
120
+ key?: string;
121
+ defaultValue?: string | number | boolean | object | null | string[] | number[] | boolean[] | object[];
105
122
  placeholder?: string;
106
123
  description?: string;
107
124
  helpText?: string;
108
- defaultValue?: T | T[] | null;
109
- multiple: boolean;
110
125
  validation?: LogicRule;
111
- condition?: LogicRule;
112
- required: boolean;
113
- options?: FieldOptionArray<JsonValue>;
114
126
  policies?: {
115
127
  doNotTrackValue?: boolean;
116
128
  doNotStoreValue?: boolean;
117
129
  };
118
- }
119
- export interface SerializableField<T extends JsonValue = JsonValue> {
130
+ options?: NonNullable<FieldTextSingular['options']>[number][] | NonNullable<FieldTextMultiple['options']>[number][] | NonNullable<FieldNumberSingular['options']>[number][] | NonNullable<FieldNumberMultiple['options']>[number][] | NonNullable<FieldBooleanSingular['options']>[number][] | NonNullable<FieldBooleanMultiple['options']>[number][] | Omit<NonNullable<FieldObjectSingular['options']>[number], 'id'>[] | Omit<NonNullable<FieldObjectMultiple['options']>[number], 'id'>[];
131
+ };
132
+ export type SerializableField<T extends JsonValue = JsonValue> = {
120
133
  id: string;
134
+ key: string;
121
135
  name: string;
122
- type: 'text' | 'number' | 'boolean' | 'object';
123
136
  label: string;
137
+ type: 'text' | 'number' | 'object' | 'boolean';
138
+ multiple: boolean;
139
+ required: boolean;
140
+ defaultValue: string | number | boolean | object | null | string[] | number[] | boolean[] | object[];
124
141
  placeholder?: string;
125
142
  description?: string;
126
143
  helpText?: string;
127
- defaultValue?: JsonValue | JsonValue[] | null;
128
- multiple: boolean;
129
- validation?: LogicRule;
144
+ validation: LogicRule;
130
145
  condition?: LogicRule;
131
- required: boolean;
132
- options: FieldOptionArray<JsonValue> | null;
133
146
  policies?: {
134
147
  doNotTrackValue?: boolean;
135
148
  doNotStoreValue?: boolean;
136
149
  };
150
+ options: {
151
+ id: string;
152
+ label: string;
153
+ description?: string;
154
+ value: JsonValue;
155
+ condition?: LogicRule;
156
+ }[] | null;
137
157
  /**
138
158
  * Phantom type property for TypeScript type inference.
139
159
  * This property never exists at runtime but enables type-safe field value access.
160
+ *
140
161
  * @internal
141
162
  */
142
163
  __fieldType?: T;
143
- serialize: () => Serialized<Field>;
144
- }
164
+ } & {
165
+ serialize: () => string;
166
+ };
145
167
  export interface SerializableExperience {
146
168
  id: string;
169
+ key: string;
147
170
  component?: AdaptedComponent;
148
171
  name: string;
172
+ /** Decision logic that controls whether this experience is initialised. */
149
173
  condition?: LogicRule | LogicValue;
150
174
  initializeOpen?: LogicRule | LogicValue;
151
175
  targets: ExperienceTarget[];
@@ -153,13 +177,17 @@ export interface SerializableExperience {
153
177
  nodes: SerializableNode[];
154
178
  edges: SerializableEdge[];
155
179
  fields: SerializableField[];
156
- conditionals: SerializableConditional[];
180
+ conditions: SerializableCondition[];
157
181
  addStep: (stepOptions: CreateStepOptions | SerializableStep | OrphanStep, after?: {
158
182
  node: SerializableNode | null;
159
183
  }) => SerializableStep;
160
- addConditional: (conditionalOptions: CreateConditionalOptions | SerializableConditional, after?: {
184
+ addCondition: (conditionOptions: CreateConditionOptions | SerializableCondition, after?: {
185
+ node: SerializableNode | null;
186
+ }) => SerializableCondition;
187
+ /** @deprecated Use `addCondition` instead. */
188
+ addConditional: (conditionOptions: CreateConditionOptions | SerializableCondition, after?: {
161
189
  node: SerializableNode | null;
162
- }) => SerializableConditional;
190
+ }) => SerializableCondition;
163
191
  addExperience: (experience: SerializableExperience, after?: {
164
192
  node: SerializableNode | null;
165
193
  }) => SerializableExperience;
@@ -167,29 +195,32 @@ export interface SerializableExperience {
167
195
  addAction: (actionOptions: CreateActionOptions | SerializableActionNode, after?: {
168
196
  node: SerializableNode | null;
169
197
  }) => SerializableActionNode;
170
- serialize: () => Serialized<Experience>;
198
+ serialize: () => string;
171
199
  }
172
200
  export interface CreateExperienceOptions {
173
201
  id: string;
202
+ key?: string;
174
203
  name: string;
204
+ /** Decision logic that controls whether this experience is initialised. */
175
205
  condition?: LogicRule | LogicValue;
176
206
  initializeOpen?: LogicRule | LogicValue;
177
207
  targets: ExperienceTarget[];
178
208
  component?: AdaptedComponent;
179
209
  }
180
- export type OrphanStep = Omit<SerializableStep, 'nextStep' | 'nextConditional' | 'addNextExperience' | 'node' | 'serialize' | 'addField' | 'experience'> & {
210
+ export type OrphanStep = Omit<SerializableStep, 'nextStep' | 'nextCondition' | 'nextConditional' | 'addNextExperience' | 'node' | 'serialize' | 'addField' | 'experience'> & {
181
211
  addField: (fieldOrFieldOptions: CreateFieldOptions | SerializableField) => void;
182
212
  };
183
213
  export declare const createStep: (stepOptions: CreateStepOptions) => OrphanStep;
184
214
  export declare const bindExperienceStep: (stepOptions: CreateStepOptions | OrphanStep, experience: SerializableExperience) => SerializableStep;
185
215
  export declare const createNode: (nodeOptions: CreateNodeOptions, experience: SerializableExperience) => SerializableNode;
186
216
  export declare const createEdge: (edgeOptions: CreateEdgeOptions, experience: SerializableExperience) => SerializableEdge;
187
- export declare const createConditional: (conditionalOptions: CreateConditionalOptions, experience: SerializableExperience) => SerializableConditional;
217
+ export declare const createCondition: (conditionOptions: CreateConditionOptions, experience: SerializableExperience) => SerializableCondition;
188
218
  /**
189
219
  * Creates a field with optional generic type parameter for object field type safety.
190
- * @template T - The type of the object field value (only applicable for type: 'object')
191
- * @param fieldOptions - The field configuration options
192
- * @returns A serializable field with type information
220
+ *
221
+ * @template T - The type of the object field value (only applicable for type: 'object').
222
+ * @param fieldOptions - The field configuration options.
223
+ * @returns A serializable field with type information.
193
224
  * @example
194
225
  * ```typescript
195
226
  * // Without type parameter (default JsonValue)
@@ -200,6 +231,6 @@ export declare const createConditional: (conditionalOptions: CreateConditionalOp
200
231
  * const typedField = createField<MyData>({ type: 'object', ... })
201
232
  * ```
202
233
  */
203
- export declare const createField: <T extends JsonValue = JsonValue>(fieldOptions: CreateFieldOptions<T>) => SerializableField<T>;
234
+ export declare const createField: <T extends JsonValue = JsonValue>(fieldOptions: CreateFieldOptions) => SerializableField<T>;
204
235
  export declare const createExperience: (experience: CreateExperienceOptions) => SerializableExperience;
205
236
  //# sourceMappingURL=create-experience.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-experience.d.ts","sourceRoot":"","sources":["../../../../src/plugins/create-experience/create-experience.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-experience.d.ts","sourceRoot":"","sources":["../../../../src/plugins/create-experience/create-experience.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
+ /** @file Public API for the create-experience plugin. */
1
2
  export { createExperiencePlugin } from './plugin';
2
3
  export type * from './plugin';
3
4
  export type * from './create-experience';
4
- export { createConditional, createEdge, createExperience, createNode, createField, createStep, } from './create-experience';
5
- export { serialization } from './serialization';
5
+ export { createCondition, createEdge, createExperience, createNode, createField, createStep, } from './create-experience';
6
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/create-experience/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AACjD,mBAAmB,UAAU,CAAA;AAC7B,mBAAmB,qBAAqB,CAAA;AACxC,OAAO,EACL,iBAAiB,EACjB,UAAU,EACV,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,UAAU,GACX,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/create-experience/index.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AACjD,mBAAmB,UAAU,CAAA;AAC7B,mBAAmB,qBAAqB,CAAA;AACxC,OAAO,EACL,eAAe,EACf,UAAU,EACV,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,UAAU,GACX,MAAM,qBAAqB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../../src/plugins/create-experience/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAA;AAG1D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAGjE,UAAU,6BAA6B;IACrC,WAAW,EAAE,sBAAsB,EAAE,CAAA;CACtC;AAED,eAAO,MAAM,sBAAsB,GAAI,SAAS,6BAA6B,KAAG,MAmB/E,CAAA"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../../src/plugins/create-experience/plugin.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAA;AAG1D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAEjE,UAAU,6BAA6B;IACrC,WAAW,EAAE,sBAAsB,EAAE,CAAA;CACtC;AAED,eAAO,MAAM,sBAAsB,GAAI,SAAS,6BAA6B,KAAG,MA2B/E,CAAA"}
@@ -1,13 +1,30 @@
1
1
  import { Plugin } from '../../entities/plugin/plugin';
2
2
  import { DynamicExperiencesPluginOptions, FetchProjectOptions, ProjectConfig } from './types';
3
+ /**
4
+ * Fetches the project configuration from the Picked REST API.
5
+ *
6
+ * Returns `null` on network failure, non-OK responses, or invalid JSON shape.
7
+ * Connection-refused errors from local URLs are suppressed silently.
8
+ *
9
+ * @param apiUrl - Base URL for the Picked API.
10
+ * @param projectId - Project ID to fetch config for.
11
+ * @param options - Optional headers and preview token.
12
+ * @returns Validated project config, or `null` on any failure.
13
+ * @example
14
+ * ```typescript
15
+ * const config = await fetchProject('https://api.picked.app', 'proj_123')
16
+ * ```
17
+ */
3
18
  export declare function fetchProject(apiUrl: string, projectId: string, options?: FetchProjectOptions): Promise<ProjectConfig | null>;
4
19
  /**
5
- * Plugin that fetches feature configuration from the Picked REST API
6
- * and registers features with deterministic bucket allocation.
20
+ * Plugin that fetches project configuration from the Picked REST API and registers
21
+ * features, steps, fields, and experiences with the client.
7
22
  *
8
- * Features are fetched during the `onStart` hook, before experience
9
- * initialization. Search param feature overrides take precedence.
23
+ * Features are fetched during the `onStart` hook, before experience initialisation.
24
+ * Search param feature overrides take precedence over API-provided values.
10
25
  *
26
+ * @param options - Optional plugin configuration.
27
+ * @returns A configured Picked plugin.
11
28
  * @example
12
29
  * ```typescript
13
30
  * import { dynamicExperiencesPlugin } from '@picked/client/plugins/dynamic-experiences'