@picked/client 0.0.50 → 0.0.51-next.10

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 (130) hide show
  1. package/dist/api-CHy9HcU7.cjs +1 -0
  2. package/dist/{api-DWBcrf98.js → api-mlYS-lDj.js} +1 -1
  3. package/dist/cjs/form/index.js +1 -0
  4. package/dist/cjs/index.js +2 -2
  5. package/dist/cjs/plugins/create-experience/index.js +1 -1
  6. package/dist/cjs/plugins/dynamic-experiences/index.js +1 -1
  7. package/dist/cjs/plugins/experience-browser-storage/index.js +1 -1
  8. package/dist/cjs/plugins/history-browser-storage/index.js +1 -1
  9. package/dist/cjs/plugins/responses-browser-storage/index.js +1 -1
  10. package/dist/cjs/plugins/responses-indexeddb/index.js +1 -1
  11. package/dist/cjs/plugins/single-page-app/index.js +1 -1
  12. package/dist/cjs/server/index.js +1 -1
  13. package/dist/esm/form/index.js +472 -0
  14. package/dist/esm/index.js +473 -383
  15. package/dist/esm/plugins/create-experience/index.js +198 -165
  16. package/dist/esm/plugins/dynamic-experiences/index.js +52 -30
  17. package/dist/esm/plugins/experience-browser-storage/index.js +1 -1
  18. package/dist/esm/plugins/history-browser-storage/index.js +1 -1
  19. package/dist/esm/plugins/responses-browser-storage/index.js +7 -9
  20. package/dist/esm/plugins/responses-indexeddb/index.js +11 -11
  21. package/dist/esm/plugins/single-page-app/index.js +4 -4
  22. package/dist/esm/server/index.js +1 -1
  23. package/dist/experience-instance-DOcd8XI1.cjs +1 -0
  24. package/dist/experience-instance-NHU1moID.js +486 -0
  25. package/dist/{object-Clj5zVr1.js → object-C82v79xc.js} +2 -1
  26. package/dist/object-CUJOjanb.cjs +1 -0
  27. package/dist/rules-logic-CnVktz2l.js +240 -0
  28. package/dist/rules-logic-nMHNVLn7.cjs +1 -0
  29. package/dist/{storage-DyxpJ0pg.js → storage-6Xk0uAxB.js} +3 -1
  30. package/dist/storage-B6lQtc4-.cjs +1 -0
  31. package/dist/types/client.d.ts +47 -43
  32. package/dist/types/client.d.ts.map +1 -1
  33. package/dist/types/entities/action/action.d.ts +37 -5
  34. package/dist/types/entities/action/action.d.ts.map +1 -1
  35. package/dist/types/entities/condition/condition.d.ts +20 -0
  36. package/dist/types/entities/condition/condition.d.ts.map +1 -0
  37. package/dist/types/entities/experience/experience.d.ts +67 -51
  38. package/dist/types/entities/experience/experience.d.ts.map +1 -1
  39. package/dist/types/entities/experience-instance/experience-instance.d.ts +22 -2
  40. package/dist/types/entities/experience-instance/experience-instance.d.ts.map +1 -1
  41. package/dist/types/entities/feature/feature.d.ts.map +1 -1
  42. package/dist/types/entities/field/field.d.ts +24 -10
  43. package/dist/types/entities/field/field.d.ts.map +1 -1
  44. package/dist/types/entities/history/history.d.ts.map +1 -1
  45. package/dist/types/entities/response/response-validation.d.ts +74 -0
  46. package/dist/types/entities/response/response-validation.d.ts.map +1 -0
  47. package/dist/types/entities/response/response.d.ts +24 -20
  48. package/dist/types/entities/response/response.d.ts.map +1 -1
  49. package/dist/types/entities/step/step.d.ts +42 -0
  50. package/dist/types/entities/step/step.d.ts.map +1 -0
  51. package/dist/types/exports.d.ts +0 -1
  52. package/dist/types/exports.d.ts.map +1 -1
  53. package/dist/types/form/build-responses.d.ts +17 -0
  54. package/dist/types/form/build-responses.d.ts.map +1 -0
  55. package/dist/types/form/create-field-evaluator.d.ts +27 -0
  56. package/dist/types/form/create-field-evaluator.d.ts.map +1 -0
  57. package/dist/types/form/create-field-validation.d.ts +59 -0
  58. package/dist/types/form/create-field-validation.d.ts.map +1 -0
  59. package/dist/types/form/create-form.d.ts +97 -0
  60. package/dist/types/form/create-form.d.ts.map +1 -0
  61. package/dist/types/form/create-submit-pipeline.d.ts +70 -0
  62. package/dist/types/form/create-submit-pipeline.d.ts.map +1 -0
  63. package/dist/types/form/get-step-fields.d.ts +18 -0
  64. package/dist/types/form/get-step-fields.d.ts.map +1 -0
  65. package/dist/types/form/index.d.ts +10 -0
  66. package/dist/types/form/index.d.ts.map +1 -0
  67. package/dist/types/index.d.ts +3 -1
  68. package/dist/types/index.d.ts.map +1 -1
  69. package/dist/types/logic-engine.d.ts +12 -10
  70. package/dist/types/logic-engine.d.ts.map +1 -1
  71. package/dist/types/picked.d.ts +99 -33
  72. package/dist/types/picked.d.ts.map +1 -1
  73. package/dist/types/plugins/create-experience/create-experience.d.ts +53 -31
  74. package/dist/types/plugins/create-experience/create-experience.d.ts.map +1 -1
  75. package/dist/types/plugins/create-experience/index.d.ts +2 -2
  76. package/dist/types/plugins/create-experience/index.d.ts.map +1 -1
  77. package/dist/types/plugins/create-experience/plugin.d.ts.map +1 -1
  78. package/dist/types/plugins/dynamic-experiences/plugin.d.ts +21 -4
  79. package/dist/types/plugins/dynamic-experiences/plugin.d.ts.map +1 -1
  80. package/dist/types/plugins/dynamic-experiences/types.d.ts +45 -0
  81. package/dist/types/plugins/dynamic-experiences/types.d.ts.map +1 -1
  82. package/dist/types/plugins/experience-browser-storage/plugin.d.ts +2 -1
  83. package/dist/types/plugins/experience-browser-storage/plugin.d.ts.map +1 -1
  84. package/dist/types/plugins/history-browser-storage/plugin.d.ts +1 -0
  85. package/dist/types/plugins/history-browser-storage/plugin.d.ts.map +1 -1
  86. package/dist/types/plugins/responses-browser-storage/plugin.d.ts +2 -1
  87. package/dist/types/plugins/responses-browser-storage/plugin.d.ts.map +1 -1
  88. package/dist/types/plugins/responses-indexeddb/plugin.d.ts.map +1 -1
  89. package/dist/types/plugins/single-page-app/plugin.d.ts +1 -1
  90. package/dist/types/plugins/single-page-app/plugin.d.ts.map +1 -1
  91. package/dist/types/utils/dom.d.ts +0 -3
  92. package/dist/types/utils/dom.d.ts.map +1 -1
  93. package/dist/types/utils/events.d.ts +2 -2
  94. package/dist/types/utils/events.d.ts.map +1 -1
  95. package/dist/types/utils/global-obj.d.ts +0 -1
  96. package/dist/types/utils/global-obj.d.ts.map +1 -1
  97. package/dist/types/utils/indexed-db.d.ts +2 -1
  98. package/dist/types/utils/indexed-db.d.ts.map +1 -1
  99. package/dist/types/utils/logger.d.ts.map +1 -1
  100. package/dist/types/utils/node-tree/get-next-node-from-condition.d.ts +16 -0
  101. package/dist/types/utils/node-tree/get-next-node-from-condition.d.ts.map +1 -0
  102. package/dist/types/utils/node-tree/min-max-steps-to-leaf.d.ts.map +1 -1
  103. package/dist/types/utils/node-tree/min-max-steps-to-origin.d.ts.map +1 -1
  104. package/dist/types/utils/node-tree/next-reachable-step-nodes.d.ts.map +1 -1
  105. package/dist/types/utils/nodes.d.ts +2 -2
  106. package/dist/types/utils/nodes.d.ts.map +1 -1
  107. package/dist/types/utils/object.d.ts +0 -8
  108. package/dist/types/utils/object.d.ts.map +1 -1
  109. package/dist/types/utils/picked-config.d.ts +1 -1
  110. package/dist/types/utils/picked-config.d.ts.map +1 -1
  111. package/dist/types/utils/rules-logic.d.ts +31 -0
  112. package/dist/types/utils/rules-logic.d.ts.map +1 -1
  113. package/dist/types/utils/search-params.d.ts.map +1 -1
  114. package/dist/types/utils/state-snaphot.d.ts +11 -1
  115. package/dist/types/utils/state-snaphot.d.ts.map +1 -1
  116. package/dist/types/utils/storage.d.ts.map +1 -1
  117. package/package.json +43 -7
  118. package/dist/api-BwTaomem.cjs +0 -1
  119. package/dist/experience-instance-BRpI9I4s.js +0 -710
  120. package/dist/experience-instance-BUTnwbSJ.cjs +0 -1
  121. package/dist/object-BReQiaSS.cjs +0 -1
  122. package/dist/storage-BFjb8azI.cjs +0 -1
  123. package/dist/types/entities/project/project.d.ts +0 -9
  124. package/dist/types/entities/project/project.d.ts.map +0 -1
  125. package/dist/types/utils/get-step-fields.d.ts +0 -4
  126. package/dist/types/utils/get-step-fields.d.ts.map +0 -1
  127. package/dist/types/utils/node-tree/get-next-node-from-conditional.d.ts +0 -3
  128. package/dist/types/utils/node-tree/get-next-node-from-conditional.d.ts.map +0 -1
  129. /package/dist/{id-CIbS4P60.cjs → id-Bv44ilEo.cjs} +0 -0
  130. /package/dist/{id-BniPxOdF.js → id-CRqy981z.js} +0 -0
@@ -1,7 +1,9 @@
1
+ import { Store } from 'effector';
1
2
  import { AdaptedComponent } from '../component/component';
3
+ import { Condition } from '../condition/condition';
4
+ import { ExperienceStep } from '../step/step';
2
5
  import { Picked } from '../../picked';
3
6
  import { LogicRule, LogicValue } from '../../logic-engine';
4
- import { Field } from '../field/field';
5
7
  export type ExperiencesListStore = ReturnType<typeof createExperienceIndex>;
6
8
  export type ExperienceStore = ReturnType<typeof createExperience>;
7
9
  declare const createExperienceFactory: ({ client, experience }: {
@@ -9,23 +11,24 @@ declare const createExperienceFactory: ({ client, experience }: {
9
11
  experience: Experience;
10
12
  }) => {
11
13
  id: string;
12
- configStore: import('effector').Store<{
14
+ key: string;
15
+ name: string;
16
+ configStore: Store<{
13
17
  name: string;
14
18
  decisionLogic: LogicValue | LogicRule;
15
19
  targetSelectors: ExperienceTarget[];
16
20
  initializeOpenLogic: LogicValue | LogicRule;
17
21
  }>;
18
- treeStore: import('effector').Store<{
22
+ treeStore: Store<{
19
23
  steps: ExperienceStep[];
20
24
  nodes: ExperienceNode[];
21
25
  edges: ExperienceEdge[];
22
- conditionals: ExperienceConditional[];
26
+ conditions: Condition[];
23
27
  }>;
24
- fieldsStore: import('effector').Store<Field[]>;
25
- componentStore: import('effector').Store<{
28
+ componentStore: Store<{
26
29
  name: string;
27
30
  component: AdaptedComponent<string, unknown>;
28
- frameworkStore: import('effector').Store<import('../..').Framework | undefined>;
31
+ frameworkStore: Store<import('../..').Framework | undefined>;
29
32
  } | undefined>;
30
33
  actions: ExperienceAction[];
31
34
  merge: import('effector').EventCallable<{
@@ -35,6 +38,7 @@ declare const createExperienceFactory: ({ client, experience }: {
35
38
  };
36
39
  /**
37
40
  * Creates an Effector store for a single experience.
41
+ *
38
42
  * @param params - The client instance and experience data.
39
43
  * @returns An experience store with config, tree, fields, and component sub-stores.
40
44
  * @example
@@ -58,25 +62,26 @@ declare const createExperienceIndexFactory: ({ client }: {
58
62
  /** Registers an experience in the index. If an experience with the same ID already exists, it is merged. */
59
63
  register: (experience: Experience) => void;
60
64
  /** Returns a derived store for an experience by its ID. The store value is `undefined` when no match exists. */
61
- get: (id: Experience["id"]) => import('effector').Store<{
65
+ get: (id: Experience["id"]) => Store<{
62
66
  id: string;
63
- configStore: import('effector').Store<{
67
+ key: string;
68
+ name: string;
69
+ configStore: Store<{
64
70
  name: string;
65
71
  decisionLogic: LogicValue | LogicRule;
66
72
  targetSelectors: ExperienceTarget[];
67
73
  initializeOpenLogic: LogicValue | LogicRule;
68
74
  }>;
69
- treeStore: import('effector').Store<{
75
+ treeStore: Store<{
70
76
  steps: ExperienceStep[];
71
77
  nodes: ExperienceNode[];
72
78
  edges: ExperienceEdge[];
73
- conditionals: ExperienceConditional[];
79
+ conditions: Condition[];
74
80
  }>;
75
- fieldsStore: import('effector').Store<Field[]>;
76
- componentStore: import('effector').Store<{
81
+ componentStore: Store<{
77
82
  name: string;
78
83
  component: AdaptedComponent<string, unknown>;
79
- frameworkStore: import('effector').Store<import('../..').Framework | undefined>;
84
+ frameworkStore: Store<import('../..').Framework | undefined>;
80
85
  } | undefined>;
81
86
  actions: ExperienceAction[];
82
87
  merge: import('effector').EventCallable<{
@@ -85,25 +90,26 @@ declare const createExperienceIndexFactory: ({ client }: {
85
90
  }>;
86
91
  } | undefined>;
87
92
  /** @deprecated Use `experiences.get(id)` instead. */
88
- getById: (id: Experience["id"]) => import('effector').Store<{
93
+ getById: (id: Experience["id"]) => Store<{
89
94
  id: string;
90
- configStore: import('effector').Store<{
95
+ key: string;
96
+ name: string;
97
+ configStore: Store<{
91
98
  name: string;
92
99
  decisionLogic: LogicValue | LogicRule;
93
100
  targetSelectors: ExperienceTarget[];
94
101
  initializeOpenLogic: LogicValue | LogicRule;
95
102
  }>;
96
- treeStore: import('effector').Store<{
103
+ treeStore: Store<{
97
104
  steps: ExperienceStep[];
98
105
  nodes: ExperienceNode[];
99
106
  edges: ExperienceEdge[];
100
- conditionals: ExperienceConditional[];
107
+ conditions: Condition[];
101
108
  }>;
102
- fieldsStore: import('effector').Store<Field[]>;
103
- componentStore: import('effector').Store<{
109
+ componentStore: Store<{
104
110
  name: string;
105
111
  component: AdaptedComponent<string, unknown>;
106
- frameworkStore: import('effector').Store<import('../..').Framework | undefined>;
112
+ frameworkStore: Store<import('../..').Framework | undefined>;
107
113
  } | undefined>;
108
114
  actions: ExperienceAction[];
109
115
  merge: import('effector').EventCallable<{
@@ -111,36 +117,45 @@ declare const createExperienceIndexFactory: ({ client }: {
111
117
  strategy: "override";
112
118
  }>;
113
119
  } | undefined>;
114
- /** Effector effect that launches an experience by ID, creating instances for each DOM target. */
120
+ /** Returns a derived store for an experience by its key. The store value is `undefined` when no match exists. */
121
+ getByKey: (key: Experience["key"]) => Store<ExperienceStore | undefined>;
122
+ /** Effector effect that launches an experience by its key. */
115
123
  launch: import('effector').Effect<{
124
+ key: string;
125
+ options?: LaunchExperienceOptions;
126
+ } | {
116
127
  id: string;
117
128
  options?: LaunchExperienceOptions;
118
129
  }, void, Error>;
119
130
  /** Effector effect that opens an experience's existing instances, or launches it with `initialiseOpen` if none exist. */
120
131
  open: import('effector').Effect<{
132
+ key: string;
133
+ options?: OpenExperienceOptions;
134
+ } | {
121
135
  id: string;
122
136
  options?: OpenExperienceOptions;
123
137
  }, void, Error>;
124
138
  /** Derived store containing all registered experiences as an array. */
125
- listStore: import('effector').Store<{
139
+ listStore: Store<{
126
140
  id: string;
127
- configStore: import('effector').Store<{
141
+ key: string;
142
+ name: string;
143
+ configStore: Store<{
128
144
  name: string;
129
145
  decisionLogic: LogicValue | LogicRule;
130
146
  targetSelectors: ExperienceTarget[];
131
147
  initializeOpenLogic: LogicValue | LogicRule;
132
148
  }>;
133
- treeStore: import('effector').Store<{
149
+ treeStore: Store<{
134
150
  steps: ExperienceStep[];
135
151
  nodes: ExperienceNode[];
136
152
  edges: ExperienceEdge[];
137
- conditionals: ExperienceConditional[];
153
+ conditions: Condition[];
138
154
  }>;
139
- fieldsStore: import('effector').Store<Field[]>;
140
- componentStore: import('effector').Store<{
155
+ componentStore: Store<{
141
156
  name: string;
142
157
  component: AdaptedComponent<string, unknown>;
143
- frameworkStore: import('effector').Store<import('../..').Framework | undefined>;
158
+ frameworkStore: Store<import('../..').Framework | undefined>;
144
159
  } | undefined>;
145
160
  actions: ExperienceAction[];
146
161
  merge: import('effector').EventCallable<{
@@ -151,27 +166,24 @@ declare const createExperienceIndexFactory: ({ client }: {
151
166
  };
152
167
  /**
153
168
  * Creates an Effector-based index for registering and retrieving experiences.
169
+ *
154
170
  * @param params - The client instance.
155
- * @returns An experience index with register, get, launch, and open methods.
171
+ * @returns An experience index with register, getById, getByKey, launch, and open methods.
156
172
  * @example
157
173
  * ```typescript
158
174
  * const index = createExperienceIndex({ client })
159
175
  * ```
160
176
  */
161
177
  export declare function createExperienceIndex<T extends Parameters<typeof createExperienceIndexFactory>[0]>(params: T): ReturnType<typeof createExperienceIndexFactory>;
162
- export interface ExperienceStep {
163
- id: string;
164
- label: string;
165
- fieldIds: string[];
166
- }
167
- export type ExperienceNode = StepNode | ConditionalNode | LaunchExperienceNode | OriginNode | ActionNode;
178
+ export type ExperienceNode = StepNode | ConditionNode | LaunchExperienceNode | OriginNode | ActionNode;
168
179
  export interface ExperienceAction {
169
180
  id: string;
170
181
  action: string;
171
182
  }
172
183
  export interface ActionNode extends BaseNode {
173
184
  type: 'action';
174
- action: string;
185
+ actionId?: string;
186
+ actionKey?: string;
175
187
  }
176
188
  export interface BaseNode {
177
189
  id: string;
@@ -180,15 +192,20 @@ export interface BaseNode {
180
192
  export interface StepNode extends BaseNode {
181
193
  type: 'step';
182
194
  stepId: string;
183
- label: string;
195
+ stepKey?: string;
196
+ name?: string;
197
+ /** @deprecated Use `name` instead. */
198
+ label?: string;
184
199
  }
185
- export interface ConditionalNode extends BaseNode {
186
- type: 'conditional';
187
- conditionalId: string;
200
+ export interface ConditionNode extends BaseNode {
201
+ type: 'condition';
202
+ conditionId: string;
203
+ conditionKey?: string;
188
204
  }
189
205
  export interface LaunchExperienceNode extends BaseNode {
190
206
  type: 'experience';
191
207
  experienceId: string;
208
+ experienceKey: string;
192
209
  }
193
210
  export interface OriginNode extends BaseNode {
194
211
  type: 'origin';
@@ -197,12 +214,7 @@ export interface ExperienceEdge {
197
214
  id: string;
198
215
  sourceNodeId: string;
199
216
  destinationNodeId: string;
200
- sourceNodeHandle?: string;
201
- }
202
- export interface ExperienceConditional {
203
- id: string;
204
- label?: string;
205
- condition: LogicRule;
217
+ sourceHandle?: string;
206
218
  }
207
219
  export interface ExperienceTarget {
208
220
  selector: string;
@@ -210,29 +222,33 @@ export interface ExperienceTarget {
210
222
  }
211
223
  export interface Experience {
212
224
  id: string;
225
+ key: string;
213
226
  name: string;
214
227
  componentName?: string;
215
228
  component?: AdaptedComponent;
216
- conditionals: ExperienceConditional[];
217
229
  initializeOpen?: LogicRule | LogicValue;
218
230
  actions?: ExperienceAction[];
231
+ /** Decision logic that controls whether this experience is initialised. */
219
232
  condition?: LogicRule | LogicValue;
220
233
  edges: ExperienceEdge[];
221
234
  nodes: ExperienceNode[];
222
- fields: Field[];
223
- steps: ExperienceStep[];
224
235
  targets: ExperienceTarget[];
225
236
  }
226
- export declare const setupExperience: (experience: Experience, experienceStore: ExperiencesListStore) => void;
227
237
  /**
228
238
  * Initializes an experience for each target that exists in the DOM.
239
+ *
229
240
  * @param client - The Picked client instance.
230
241
  * @param experience - The experience store to initialise.
231
242
  */
232
243
  export declare const initialiseExperience: (client: Picked, experience: ExperienceStore, options?: LaunchExperienceOptions) => void;
233
244
  /**
234
245
  * Conditionally initializes experiences.
246
+ *
235
247
  * @param client - The Picked client instance.
248
+ * @example
249
+ * ```typescript
250
+ * await initialiseExperiences(client)
251
+ * ```
236
252
  */
237
253
  export declare const initialiseExperiences: (client: Picked) => Promise<void>;
238
254
  export declare const shouldInitialiseExperience: (client: Picked, experience: ExperienceStore) => Promise<boolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"experience.d.ts","sourceRoot":"","sources":["../../../../src/entities/experience/experience.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAC9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAG1C,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAE/D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAE3C,MAAM,MAAM,oBAAoB,GAAG,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAC3E,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAIjE,QAAA,MAAM,uBAAuB,2BACF;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,UAAU,CAAA;CAAE;;;;;;;;;;;;;;;;;;;;;;oBAIjB,OAAO,CAAC,UAAU,CAAC;kBAAY,UAAU;;CAuD5F,CAAA;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC,CAAC,CAAC,EACtF,MAAM,EAAE,CAAC,GACR,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAE5C;AAED,2CAA2C;AAC3C,MAAM,WAAW,uBAAuB;IACtC,iFAAiF;IACjF,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,iGAAiG;IACjG,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED,2GAA2G;AAC3G,MAAM,MAAM,qBAAqB,GAAG,IAAI,CAAC,uBAAuB,EAAE,gBAAgB,CAAC,CAAA;AAEnF,QAAA,MAAM,4BAA4B,eAA8B;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE;IA8F9E,4GAA4G;2BAxEhF,UAAU,KAAG,IAAI;IA0E7C,gHAAgH;cAjDjG,UAAU,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;wBAlIiB,OAAO,CAAC,UAAU,CAAC;sBAAY,UAAU;;;IAqLzF,qDAAqD;kBAnDtC,UAAU,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;wBAlIiB,OAAO,CAAC,UAAU,CAAC;sBAAY,UAAU;;;IAuLzF,iGAAiG;;YA7CxE,MAAM;kBAAY,uBAAuB;;IA+ClE,yHAAyH;;YAtB3E,MAAM;kBAAY,qBAAqB;;IAwBrF,uEAAuE;;;;;;;;;;;;;;;;;;;;;;;wBA3LvB,OAAO,CAAC,UAAU,CAAC;sBAAY,UAAU;;;CA8L3F,CAAA;AAEF;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,UAAU,CAAC,OAAO,4BAA4B,CAAC,CAAC,CAAC,CAAC,EAChG,MAAM,EAAE,CAAC,GACR,UAAU,CAAC,OAAO,4BAA4B,CAAC,CAEjD;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB;AAED,MAAM,MAAM,cAAc,GACtB,QAAQ,GACR,eAAe,GACf,oBAAoB,GACpB,UAAU,GACV,UAAU,CAAA;AACd,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;CAEf;AAED,MAAM,WAAW,UAAW,SAAQ,QAAQ;IAC1C,IAAI,EAAE,QAAQ,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,QAAS,SAAQ,QAAQ;IACxC,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,eAAgB,SAAQ,QAAQ;IAC/C,IAAI,EAAE,aAAa,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,oBAAqB,SAAQ,QAAQ;IACpD,IAAI,EAAE,YAAY,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,UAAW,SAAQ,QAAQ;IAC1C,IAAI,EAAE,QAAQ,CAAA;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,YAAY,EAAE,MAAM,CAAA;IACpB,iBAAiB,EAAE,MAAM,CAAA;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,SAAS,CAAA;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAA;CACjE;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,SAAS,CAAC,EAAE,gBAAgB,CAAA;IAC5B,YAAY,EAAE,qBAAqB,EAAE,CAAA;IACrC,cAAc,CAAC,EAAE,SAAS,GAAG,UAAU,CAAA;IACvC,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAC5B,SAAS,CAAC,EAAE,SAAS,GAAG,UAAU,CAAA;IAClC,KAAK,EAAE,cAAc,EAAE,CAAA;IACvB,KAAK,EAAE,cAAc,EAAE,CAAA;IACvB,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,KAAK,EAAE,cAAc,EAAE,CAAA;IACvB,OAAO,EAAE,gBAAgB,EAAE,CAAA;CAC5B;AAED,eAAO,MAAM,eAAe,GAC1B,YAAY,UAAU,EACtB,iBAAiB,oBAAoB,KACpC,IAEF,CAAA;AAED;;;;GAIG;AAEH,eAAO,MAAM,oBAAoB,GAC/B,QAAQ,MAAM,EACd,YAAY,eAAe,EAC3B,UAAU,uBAAuB,SAkBlC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB,GAAU,QAAQ,MAAM,kBASzD,CAAA;AAmBD,eAAO,MAAM,0BAA0B,GACrC,QAAQ,MAAM,EACd,YAAY,eAAe,KAC1B,OAAO,CAAC,OAAO,CAiCjB,CAAA"}
1
+ {"version":3,"file":"experience.d.ts","sourceRoot":"","sources":["../../../../src/entities/experience/experience.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,11 @@
1
1
  import { EventCallable, Store } from 'effector';
2
- import { Experience, ExperienceNode, ExperienceStep, ExperienceStore, ExperienceTarget, LaunchExperienceOptions } from '../experience/experience';
2
+ import { Experience, ExperienceNode, ExperienceStore, ExperienceTarget, LaunchExperienceOptions } from '../experience/experience';
3
+ import { ExperienceStep } from '../step/step';
3
4
  import { Picked } from '../../picked';
4
5
  import { HistoryEntry } from '../history/history';
5
6
  export interface ExperienceInstance {
6
7
  id: string;
8
+ experienceKey: Experience['key'];
7
9
  experienceId: Experience['id'];
8
10
  configStore: ExperienceStore['configStore'];
9
11
  target: HTMLElement | undefined;
@@ -15,7 +17,6 @@ export interface ExperienceInstance {
15
17
  toggleOpen: EventCallable<void>;
16
18
  setOpen: EventCallable<boolean>;
17
19
  treeStore: ExperienceStore['treeStore'];
18
- fieldsStore: ExperienceStore['fieldsStore'];
19
20
  currentNodeStore: Store<ExperienceNode | null>;
20
21
  currentStepStore: Store<ExperienceStep | null>;
21
22
  previousStepStore: Store<ExperienceStep | null>;
@@ -38,14 +39,33 @@ declare const createExperienceInstanceFactory: ({ client, experience, target, op
38
39
  target?: HTMLElement;
39
40
  options?: LaunchExperienceOptions;
40
41
  }) => Readonly<ExperienceInstance>;
42
+ /**
43
+ * Creates an experience instance with lifecycle stores and navigation logic.
44
+ *
45
+ * @param params - Factory parameters including the client and experience store.
46
+ * @example
47
+ * ```typescript
48
+ * const instance = createExperienceInstance({ client, experience })
49
+ * ```
50
+ */
41
51
  export declare function createExperienceInstance<T extends Parameters<typeof createExperienceInstanceFactory>[0]>(params: T): ReturnType<typeof createExperienceInstanceFactory>;
42
52
  declare const createExperienceInstanceIndexFactory: ({ client }: {
43
53
  client: Picked;
44
54
  }) => {
45
55
  spawn: (experience: ExperienceStore, target: HTMLElement, options?: LaunchExperienceOptions) => void;
56
+ getByExperienceKey: (key: Experience["key"]) => Store<ExperienceInstance[]>;
46
57
  getByExperienceId: (id: Experience["id"]) => Store<ExperienceInstance[]>;
47
58
  listStore: Store<ExperienceInstance[]>;
48
59
  };
60
+ /**
61
+ * Creates an index that tracks all experience instances keyed by experience ID.
62
+ *
63
+ * @param params - Factory parameters including the client.
64
+ * @example
65
+ * ```typescript
66
+ * const index = createExperienceInstanceIndex({ client })
67
+ * ```
68
+ */
49
69
  export declare function createExperienceInstanceIndex<T extends Parameters<typeof createExperienceInstanceIndexFactory>[0]>(params: T): ReturnType<typeof createExperienceInstanceIndexFactory>;
50
70
  export {};
51
71
  //# sourceMappingURL=experience-instance.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"experience-instance.d.ts","sourceRoot":"","sources":["../../../../src/entities/experience-instance/experience-instance.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,aAAa,EAGlB,KAAK,KAAK,EACX,MAAM,UAAU,CAAA;AAEjB,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EACd,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,uBAAuB,EACxB,MAAM,0BAA0B,CAAA;AACjC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAiB1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAItD,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAA;IACV,YAAY,EAAE,UAAU,CAAC,IAAI,CAAC,CAAA;IAC9B,WAAW,EAAE,eAAe,CAAC,aAAa,CAAC,CAAA;IAC3C,MAAM,EAAE,WAAW,GAAG,SAAS,CAAA;IAC/B,cAAc,EAAE,eAAe,CAAC,gBAAgB,CAAC,CAAA;IACjD,UAAU,EAAE,KAAK,CAAC,eAAe,GAAG,OAAO,CAAC,CAAA;IAC5C,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;IAC3B,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,CAAA;IACzB,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,CAAA;IAC1B,UAAU,EAAE,aAAa,CAAC,IAAI,CAAC,CAAA;IAC/B,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,CAAA;IAC/B,SAAS,EAAE,eAAe,CAAC,WAAW,CAAC,CAAA;IACvC,WAAW,EAAE,eAAe,CAAC,aAAa,CAAC,CAAA;IAC3C,gBAAgB,EAAE,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,CAAA;IAC9C,gBAAgB,EAAE,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,CAAA;IAC9C,iBAAiB,EAAE,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,CAAA;IAC/C,2BAA2B,EAAE,KAAK,CAAC,cAAc,EAAE,CAAC,CAAA;IACpD,kBAAkB,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAA;IACnC,gBAAgB,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAA;IACjC,YAAY,EAAE,aAAa,CAAC,IAAI,CAAC,CAAA;IACjC,gBAAgB,EAAE,aAAa,CAAC,IAAI,CAAC,CAAA;IACrC,YAAY,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IACnC,iBAAiB,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC,CAAA;CACzC;AAED,MAAM,MAAM,uBAAuB,GAAG,UAAU,CAAC,OAAO,6BAA6B,CAAC,CAAA;AACtF,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,WAAW,EAAE,CAAA;IACvB,SAAS,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAA;CACzC;AAED,QAAA,MAAM,+BAA+B,6CAMhC;IACD,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,eAAe,CAAA;IAC3B,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,OAAO,CAAC,EAAE,uBAAuB,CAAA;CAClC,iCA6cF,CAAA;AAED,wBAAgB,wBAAwB,CACtC,CAAC,SAAS,UAAU,CAAC,OAAO,+BAA+B,CAAC,CAAC,CAAC,CAAC,EAC/D,MAAM,EAAE,CAAC,GAAG,UAAU,CAAC,OAAO,+BAA+B,CAAC,CAE/D;AAED,QAAA,MAAM,oCAAoC,eAA8B;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE;wBA+I1E,eAAe,UACnB,WAAW,YACT,uBAAuB;4BASJ,UAAU,CAAC,IAAI,CAAC;;CAS/C,CAAA;AAEF,wBAAgB,6BAA6B,CAC3C,CAAC,SAAS,UAAU,CAAC,OAAO,oCAAoC,CAAC,CAAC,CAAC,CAAC,EACpE,MAAM,EAAE,CAAC,GAAG,UAAU,CAAC,OAAO,oCAAoC,CAAC,CAEpE"}
1
+ {"version":3,"file":"experience-instance.d.ts","sourceRoot":"","sources":["../../../../src/entities/experience-instance/experience-instance.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"feature.d.ts","sourceRoot":"","sources":["../../../../src/entities/feature/feature.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,KAAK,EACX,MAAM,UAAU,CAAA;AAEjB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAI1C,MAAM,WAAW,OAAO;IACtB,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IACnE,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAC9B;AAED,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAExE,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,OAAO,GAAG;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAA;CAClC;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,OAAO,GAAG,MAAM,CAAA;IACxB,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAC9B;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,EAAE,EAAE,MAAM,CAAA;CACX;AAED,MAAM,WAAW,uBAAwB,SAAQ,iBAAiB;IAChE,UAAU,EAAE,KAAK,CAAA;IACjB,SAAS,EAAE,MAAM,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC,CAAA;CACnE;AAED,MAAM,WAAW,qBAAsB,SAAQ,iBAAiB;IAC9D,UAAU,EAAE,IAAI,CAAA;IAChB,SAAS,EAAE,MAAM;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAA;CAC1D;AAED,MAAM,MAAM,aAAa,GAAG,uBAAuB,GAAG,qBAAqB,CAAA;AAK3E,QAAA,MAAM,yBAAyB,eAA8B;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE;mBAgBvD,MAAM,WAAW,OAAO,KAAG,IAAI;kBAwMhC,MAAM;sBAOF,MAAM;;sCAKhB,MAAM,KAClB,KAAK,CAAC,MAAM,OAAO,CAAC,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC,CAAC;CA2CrD,CAAA;AAEF,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAC,CAAC,CAAC,EAC1F,MAAM,EAAE,CAAC,GACR,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAE9C;AAED,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,EAAE,SAAS,OAAO,EAAE,UAAU,aAAa,SAEnF,CAAA"}
1
+ {"version":3,"file":"feature.d.ts","sourceRoot":"","sources":["../../../../src/entities/feature/feature.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,KAAK,EACX,MAAM,UAAU,CAAA;AAEjB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAI1C,MAAM,WAAW,OAAO;IACtB,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IACnE,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAC9B;AAED,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAExE,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,OAAO,GAAG;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAA;CAClC;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,OAAO,GAAG,MAAM,CAAA;IACxB,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAC9B;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,EAAE,EAAE,MAAM,CAAA;CACX;AAED,MAAM,WAAW,uBAAwB,SAAQ,iBAAiB;IAChE,UAAU,EAAE,KAAK,CAAA;IACjB,SAAS,EAAE,MAAM,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC,CAAA;CACnE;AAED,MAAM,WAAW,qBAAsB,SAAQ,iBAAiB;IAC9D,UAAU,EAAE,IAAI,CAAA;IAChB,SAAS,EAAE,MAAM;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAA;CAC1D;AAED,MAAM,MAAM,aAAa,GAAG,uBAAuB,GAAG,qBAAqB,CAAA;AAK3E,QAAA,MAAM,yBAAyB,eAA8B;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE;mBAgBvD,MAAM,WAAW,OAAO,KAAG,IAAI;kBAwMhC,MAAM;sBAOF,MAAM;;sCAKhB,MAAM,KAClB,KAAK,CAAC,MAAM,OAAO,CAAC,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC,CAAC;CA4CrD,CAAA;AAEF,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAC,CAAC,CAAC,EAC1F,MAAM,EAAE,CAAC,GACR,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAE9C;AAED,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,EAAE,SAAS,OAAO,EAAE,UAAU,aAAa,SAEnF,CAAA"}
@@ -2,6 +2,15 @@ import { Store } from 'effector';
2
2
  import { LogicRule } from '../../logic-engine';
3
3
  export type FieldsStore = ReturnType<typeof createFieldIndex>;
4
4
  export type PrimitiveFieldValue = string | number | boolean | null;
5
+ export type FieldOptionValue = string | number | boolean;
6
+ export interface FieldOption<T = FieldOptionValue> {
7
+ id: string;
8
+ label: string;
9
+ description?: string;
10
+ value: T;
11
+ condition?: LogicRule;
12
+ }
13
+ export type FieldOptionArray<T = FieldOptionValue> = FieldOption<T>[];
5
14
  /**
6
15
  * JSON-serializable value type for object fields.
7
16
  * Recursively defines all valid JSON-serializable structures.
@@ -10,8 +19,10 @@ export type JsonValue = string | number | boolean | null | {
10
19
  [key: string]: JsonValue;
11
20
  } | JsonValue[];
12
21
  export type FieldValue = PrimitiveFieldValue | PrimitiveFieldValue[] | JsonValue | JsonValue[];
13
- export interface FieldBase<TOptionValue = PrimitiveFieldValue> {
22
+ export interface FieldBase<TOptionValue = JsonValue> {
14
23
  id: string;
24
+ /** Stable identifier used for lookups across API versions. */
25
+ key: string;
15
26
  name: string;
16
27
  label: string;
17
28
  type: 'text' | 'number' | 'object' | 'boolean';
@@ -27,13 +38,7 @@ export interface FieldBase<TOptionValue = PrimitiveFieldValue> {
27
38
  doNotTrackValue?: boolean;
28
39
  doNotStoreValue?: boolean;
29
40
  };
30
- options?: {
31
- id: string;
32
- label: string;
33
- description?: string;
34
- value: TOptionValue;
35
- condition?: LogicRule;
36
- }[] | null;
41
+ options?: FieldOptionArray<TOptionValue> | null;
37
42
  }
38
43
  export interface FieldTextSingular extends FieldBase<string> {
39
44
  type: 'text';
@@ -78,12 +83,21 @@ export interface FieldBooleanMultiple extends FieldBase<boolean> {
78
83
  export type Field = FieldTextSingular | FieldTextMultiple | FieldNumberSingular | FieldNumberMultiple | FieldObjectSingular | FieldObjectMultiple | FieldBooleanSingular | FieldBooleanMultiple;
79
84
  declare const createFieldIndexFactory: () => {
80
85
  register: (field: Field) => void;
81
- update: (fieldId: FieldBase["id"], updates: Partial<Field>) => void;
86
+ update: (key: FieldBase["key"], updates: Partial<Field>) => void;
82
87
  getById: (id: FieldBase["id"]) => Store<Field | null>;
88
+ getByKey: (key: FieldBase["key"]) => Store<Field | null>;
83
89
  listStore: Store<Field[]>;
84
90
  getByName: (name: FieldBase["name"]) => Store<Field | null>;
85
91
  };
92
+ /**
93
+ * Creates an Effector-based index for registering and retrieving fields.
94
+ *
95
+ * @returns {FieldsStore} A field index with register, update, getById, getByKey, and list methods.
96
+ * @example
97
+ * ```typescript
98
+ * const fields = createFieldIndex()
99
+ * ```
100
+ */
86
101
  export declare function createFieldIndex(): ReturnType<typeof createFieldIndexFactory>;
87
- export declare const setupField: (field: Field, fields: FieldsStore) => void;
88
102
  export {};
89
103
  //# sourceMappingURL=field.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../../../src/entities/field/field.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,KAAK,EAAE,MAAM,UAAU,CAAA;AAE9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAEnD,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAI7D,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAA;AAElE;;;GAGG;AACH,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAC5B,SAAS,EAAE,CAAA;AAEf,MAAM,MAAM,UAAU,GAAG,mBAAmB,GAAG,mBAAmB,EAAE,GAAG,SAAS,GAAG,SAAS,EAAE,CAAA;AAE9F,MAAM,WAAW,SAAS,CAAC,YAAY,GAAG,mBAAmB;IAC3D,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAA;IAC9C,QAAQ,EAAE,OAAO,CAAA;IACjB,QAAQ,EAAE,OAAO,CAAA;IACjB,YAAY,CAAC,EAAE,UAAU,CAAA;IACzB,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,SAAS,CAAA;IACtB,QAAQ,CAAC,EAAE;QACT,eAAe,CAAC,EAAE,OAAO,CAAA;QACzB,eAAe,CAAC,EAAE,OAAO,CAAA;KAC1B,CAAA;IACD,OAAO,CAAC,EACJ;QACE,EAAE,EAAE,MAAM,CAAA;QACV,KAAK,EAAE,MAAM,CAAA;QACb,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,KAAK,EAAE,YAAY,CAAA;QACnB,SAAS,CAAC,EAAE,SAAS,CAAA;KACtB,EAAE,GACH,IAAI,CAAA;CACT;AAED,MAAM,WAAW,iBAAkB,SAAQ,SAAS,CAAC,MAAM,CAAC;IAC1D,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,KAAK,CAAA;IACf,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,iBAAkB,SAAQ,SAAS,CAAC,MAAM,CAAC;IAC1D,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,IAAI,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;CACxB;AAED,MAAM,WAAW,mBAAoB,SAAQ,SAAS,CAAC,MAAM,CAAC;IAC5D,IAAI,EAAE,QAAQ,CAAA;IACd,QAAQ,EAAE,KAAK,CAAA;IACf,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,mBAAoB,SAAQ,SAAS,CAAC,MAAM,CAAC;IAC5D,IAAI,EAAE,QAAQ,CAAA;IACd,QAAQ,EAAE,IAAI,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;CACxB;AAED,MAAM,WAAW,mBAAoB,SAAQ,SAAS,CAAC,SAAS,CAAC;IAC/D,IAAI,EAAE,QAAQ,CAAA;IACd,QAAQ,EAAE,KAAK,CAAA;IACf,YAAY,CAAC,EAAE,SAAS,CAAA;CACzB;AAED,MAAM,WAAW,mBAAoB,SAAQ,SAAS,CAAC,SAAS,CAAC;IAC/D,IAAI,EAAE,QAAQ,CAAA;IACd,QAAQ,EAAE,IAAI,CAAA;IACd,YAAY,CAAC,EAAE,SAAS,EAAE,CAAA;CAC3B;AAED,MAAM,WAAW,oBAAqB,SAAQ,SAAS,CAAC,OAAO,CAAC;IAC9D,IAAI,EAAE,SAAS,CAAA;IACf,QAAQ,EAAE,KAAK,CAAA;IACf,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,oBAAqB,SAAQ,SAAS,CAAC,OAAO,CAAC;IAC9D,IAAI,EAAE,SAAS,CAAA;IACf,QAAQ,EAAE,IAAI,CAAA;IACd,YAAY,CAAC,EAAE,OAAO,EAAE,CAAA;CACzB;AAED,MAAM,MAAM,KAAK,GACb,iBAAiB,GACjB,iBAAiB,GACjB,mBAAmB,GACnB,mBAAmB,GACnB,mBAAmB,GACnB,mBAAmB,GACnB,oBAAoB,GACpB,oBAAoB,CAAA;AAGxB,QAAA,MAAM,uBAAuB;sBAcF,KAAK,KAAG,IAAI;sBAcZ,SAAS,CAAC,IAAI,CAAC,WAAW,OAAO,CAAC,KAAK,CAAC,KAAG,IAAI;kBAmBnD,SAAS,CAAC,IAAI,CAAC;;sBAIX,SAAS,CAAC,MAAM,CAAC;CAW1C,CAAA;AAEF,wBAAgB,gBAAgB,IAAI,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAE7E;AAED,eAAO,MAAM,UAAU,GAAI,OAAO,KAAK,EAAE,QAAQ,WAAW,KAAG,IAE9D,CAAA"}
1
+ {"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../../../src/entities/field/field.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,OAAO,EAA2B,KAAK,KAAK,EAAE,MAAM,UAAU,CAAA;AAE9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAEnD,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAI7D,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAA;AAElE,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;AAExD,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,gBAAgB;IAC/C,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,CAAC,CAAA;IACR,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB;AAED,MAAM,MAAM,gBAAgB,CAAC,CAAC,GAAG,gBAAgB,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,CAAA;AAErE;;;GAGG;AACH,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAC5B,SAAS,EAAE,CAAA;AAEf,MAAM,MAAM,UAAU,GAAG,mBAAmB,GAAG,mBAAmB,EAAE,GAAG,SAAS,GAAG,SAAS,EAAE,CAAA;AAE9F,MAAM,WAAW,SAAS,CAAC,YAAY,GAAG,SAAS;IACjD,EAAE,EAAE,MAAM,CAAA;IACV,8DAA8D;IAC9D,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAA;IAC9C,QAAQ,EAAE,OAAO,CAAA;IACjB,QAAQ,EAAE,OAAO,CAAA;IACjB,YAAY,CAAC,EAAE,UAAU,CAAA;IACzB,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,SAAS,CAAA;IACtB,QAAQ,CAAC,EAAE;QACT,eAAe,CAAC,EAAE,OAAO,CAAA;QACzB,eAAe,CAAC,EAAE,OAAO,CAAA;KAC1B,CAAA;IACD,OAAO,CAAC,EAAE,gBAAgB,CAAC,YAAY,CAAC,GAAG,IAAI,CAAA;CAChD;AAED,MAAM,WAAW,iBAAkB,SAAQ,SAAS,CAAC,MAAM,CAAC;IAC1D,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,KAAK,CAAA;IACf,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,iBAAkB,SAAQ,SAAS,CAAC,MAAM,CAAC;IAC1D,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,IAAI,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;CACxB;AAED,MAAM,WAAW,mBAAoB,SAAQ,SAAS,CAAC,MAAM,CAAC;IAC5D,IAAI,EAAE,QAAQ,CAAA;IACd,QAAQ,EAAE,KAAK,CAAA;IACf,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,mBAAoB,SAAQ,SAAS,CAAC,MAAM,CAAC;IAC5D,IAAI,EAAE,QAAQ,CAAA;IACd,QAAQ,EAAE,IAAI,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;CACxB;AAED,MAAM,WAAW,mBAAoB,SAAQ,SAAS,CAAC,SAAS,CAAC;IAC/D,IAAI,EAAE,QAAQ,CAAA;IACd,QAAQ,EAAE,KAAK,CAAA;IACf,YAAY,CAAC,EAAE,SAAS,CAAA;CACzB;AAED,MAAM,WAAW,mBAAoB,SAAQ,SAAS,CAAC,SAAS,CAAC;IAC/D,IAAI,EAAE,QAAQ,CAAA;IACd,QAAQ,EAAE,IAAI,CAAA;IACd,YAAY,CAAC,EAAE,SAAS,EAAE,CAAA;CAC3B;AAED,MAAM,WAAW,oBAAqB,SAAQ,SAAS,CAAC,OAAO,CAAC;IAC9D,IAAI,EAAE,SAAS,CAAA;IACf,QAAQ,EAAE,KAAK,CAAA;IACf,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,oBAAqB,SAAQ,SAAS,CAAC,OAAO,CAAC;IAC9D,IAAI,EAAE,SAAS,CAAA;IACf,QAAQ,EAAE,IAAI,CAAA;IACd,YAAY,CAAC,EAAE,OAAO,EAAE,CAAA;CACzB;AAED,MAAM,MAAM,KAAK,GACb,iBAAiB,GACjB,iBAAiB,GACjB,mBAAmB,GACnB,mBAAmB,GACnB,mBAAmB,GACnB,mBAAmB,GACnB,oBAAoB,GACpB,oBAAoB,CAAA;AAGxB,QAAA,MAAM,uBAAuB;sBA6BF,KAAK,KAAG,IAAI;kBAchB,SAAS,CAAC,KAAK,CAAC,WAAW,OAAO,CAAC,KAAK,CAAC,KAAG,IAAI;kBAuBhD,SAAS,CAAC,IAAI,CAAC,KAAG,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;oBAcnC,SAAS,CAAC,KAAK,CAAC,KAAG,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;;sBAgBpC,SAAS,CAAC,MAAM,CAAC,KAAG,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;CAiBhE,CAAA;AAEF;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,IAAI,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAE7E"}
@@ -1 +1 @@
1
- {"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../../../src/entities/history/history.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAM9D,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,cAAc,CAAA;IACpB,EAAE,EAAE,MAAM,CAAA;IACV,YAAY,EAAE,MAAM,CAAA;CACrB;AA2FD,wBAAgB,aAAa;;sBA1EsB,MAAM;cAAQ,cAAc;;;sBACzB,MAAM;cAAQ,cAAc;;;uBAC9B,MAAM;;;iBACT,YAAY,EAAE;;;EAyE9D"}
1
+ {"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../../../src/entities/history/history.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAM9D,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,cAAc,CAAA;IACpB,EAAE,EAAE,MAAM,CAAA;IACV,YAAY,EAAE,MAAM,CAAA;CACrB;AA4FD,wBAAgB,aAAa;;sBA3EsB,MAAM;cAAQ,cAAc;;;sBACzB,MAAM;cAAQ,cAAc;;;uBAC9B,MAAM;;;iBACT,YAAY,EAAE;;;EA0E9D"}
@@ -0,0 +1,74 @@
1
+ import { Field, FieldValue } from '../field/field';
2
+ import { LogicObject, LogicRule } from '../../logic-engine';
3
+ export interface ValidationError {
4
+ fieldKey: Field['key'];
5
+ userMessage: string;
6
+ systemMessage: string;
7
+ value: FieldValue;
8
+ }
9
+ /** Callback signature for evaluating rule-based validation logic. */
10
+ type RuleEvaluator = (logic: LogicRule, context?: LogicObject) => Promise<unknown>;
11
+ /**
12
+ * Resolves a field from an array by id or key.
13
+ *
14
+ * @param inputKey - The field id or key to look up.
15
+ * @param allFields - All registered fields.
16
+ * @returns The matching field, or null if not found.
17
+ * @example
18
+ * ```typescript
19
+ * resolveField('email', allFields) // Field | null
20
+ * ```
21
+ */
22
+ export declare function resolveField(inputKey: string, allFields: Field[]): Field | null;
23
+ /**
24
+ * Coerces a scalar value into a single-element array when the field expects multiple values.
25
+ *
26
+ * @param field - The field definition.
27
+ * @param value - The response value to coerce.
28
+ * @returns The original or coerced value.
29
+ * @example
30
+ * ```typescript
31
+ * coerceToArray(multipleField, 'hello') // ['hello']
32
+ * ```
33
+ */
34
+ export declare function coerceToArray(field: Field, value: FieldValue): FieldValue;
35
+ /**
36
+ * Validates that an object field value has the correct shape and is JSON-serializable.
37
+ *
38
+ * @param field - The field definition.
39
+ * @param value - The response value to validate.
40
+ * @returns A validation error if the value is invalid, or null if valid.
41
+ * @example
42
+ * ```typescript
43
+ * getObjectValueError(objectField, { key: 'val' }) // null
44
+ * ```
45
+ */
46
+ export declare function getObjectValueError(field: Field, value: FieldValue): ValidationError | null;
47
+ /**
48
+ * Validates that a response value matches one of the field's allowed options.
49
+ *
50
+ * @param field - The field definition with options.
51
+ * @param value - The response value to validate.
52
+ * @returns A validation error if the value is not a valid option, or null if valid.
53
+ * @example
54
+ * ```typescript
55
+ * getOptionsError(fieldWithOptions, 'valid-option') // null
56
+ * ```
57
+ */
58
+ export declare function getOptionsError(field: Field, value: FieldValue): ValidationError | null;
59
+ /**
60
+ * Runs field-level validation including rule-based validation, required checks, and multiplicity checks.
61
+ *
62
+ * @param evaluateRule - Callback to evaluate rule-based validation logic.
63
+ * @param field - The field definition.
64
+ * @param value - The response value to validate.
65
+ * @param responses - All current responses for cross-field validation.
66
+ * @returns A validation error if the field fails validation, or null if valid.
67
+ * @example
68
+ * ```typescript
69
+ * await getFieldValidationError(evaluate, field, 'hello') // null
70
+ * ```
71
+ */
72
+ export declare function getFieldValidationError(evaluateRule: RuleEvaluator, field: Field, value: FieldValue, responses?: Record<string, FieldValue>): Promise<ValidationError | null>;
73
+ export {};
74
+ //# sourceMappingURL=response-validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response-validation.d.ts","sourceRoot":"","sources":["../../../../src/entities/response/response-validation.ts"],"names":[],"mappings":"AAAA,0GAA0G;AAC1G,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAuB,MAAM,gBAAgB,CAAA;AAC5E,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAGhE,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;IACtB,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,KAAK,EAAE,UAAU,CAAA;CAClB;AAED,qEAAqE;AACrE,KAAK,aAAa,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;AAmFlF;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,KAAK,GAAG,IAAI,CAE/E;AAED;;;;;;;;;;GAUG;AAEH,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,GAAG,UAAU,CASzE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,GAAG,eAAe,GAAG,IAAI,CAgE3F;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,GAAG,eAAe,GAAG,IAAI,CAsCvF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,uBAAuB,CAC3C,YAAY,EAAE,aAAa,EAC3B,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,UAAU,EACjB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GACrC,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAsCjC"}
@@ -1,18 +1,20 @@
1
1
  import { Store } from 'effector';
2
2
  import { Picked } from '../../picked';
3
- import { Field, FieldValue, JsonValue } from '../field/field';
3
+ import { Field, FieldValue } from '../field/field';
4
+ import { ValidationError } from './response-validation';
5
+ export type { ValidationError } from './response-validation';
4
6
  export type ResponsesStore = ReturnType<typeof createResponseIndex>;
5
7
  export type Response = FieldValue;
6
8
  export interface ResponseListItem {
7
- fieldId: string;
8
- value: Response | undefined;
9
+ fieldKey: string;
10
+ value: Response;
9
11
  }
10
12
  declare const createResponseIndexFactory: ({ client }: {
11
13
  client: Picked;
12
14
  }) => {
13
15
  register: {
14
- (fieldId: Field["id"], response: Response): void;
15
- (payload: Record<Field["id"], Response>, response?: never): void;
16
+ (fieldKey: Field["key"], response: Response): void;
17
+ (payload: Record<Field["key"], Response>, response?: never): void;
16
18
  };
17
19
  clearAll: import('effector').EventCallable<void>;
18
20
  clear: import('effector').EventCallable<string>;
@@ -24,25 +26,27 @@ declare const createResponseIndexFactory: ({ client }: {
24
26
  validationErrors: ValidationError[];
25
27
  }>;
26
28
  listStore: Store<{
27
- fieldId: string;
28
- value: FieldValue | undefined;
29
+ fieldKey: string;
30
+ value: FieldValue;
29
31
  }[]>;
30
32
  getAllStore: Store<{
31
- [fieldId: string]: FieldValue;
33
+ [fieldKey: string]: FieldValue;
32
34
  }>;
33
- getByFieldId: {
34
- (fieldId: Field["id"]): Store<FieldValue>;
35
- <T extends JsonValue>(fieldId: Field["id"]): Store<T | null>;
36
- };
35
+ getByFieldId: (id: Field["id"]) => Store<FieldValue>;
36
+ getByFieldKey: (key: Field["key"]) => Store<FieldValue>;
37
37
  getByFieldName: (fieldName: Field["name"]) => Store<FieldValue>;
38
38
  };
39
+ /**
40
+ * Creates a response index instance bound to the given client.
41
+ *
42
+ * @param params - Configuration including the Picked client instance.
43
+ * @returns The response index with register, commit, and lookup methods.
44
+ * @example
45
+ * ```typescript
46
+ * const responses = createResponseIndex({ client })
47
+ * ```
48
+ */
39
49
  export declare function createResponseIndex<T extends Parameters<typeof createResponseIndexFactory>[0]>(params: T): ReturnType<typeof createResponseIndexFactory>;
40
- export type CommitResponses = Record<Field['id'], FieldValue>;
41
- export interface ValidationError {
42
- fieldId: Field['id'];
43
- userMessage: string;
44
- systemMessage: string;
45
- value: FieldValue;
46
- }
47
- export {};
50
+ /** Record keyed by field `key`. */
51
+ export type CommitResponses = Record<string, FieldValue>;
48
52
  //# sourceMappingURL=response.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../../../src/entities/response/response.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyD,KAAK,KAAK,EAAE,MAAM,UAAU,CAAA;AAE5F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAuB,MAAM,gBAAgB,CAAA;AA8CvF,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAInE,MAAM,MAAM,QAAQ,GAAG,UAAU,CAAA;AAGjC,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,QAAQ,GAAG,SAAS,CAAA;CAC5B;AAED,QAAA,MAAM,0BAA0B,eAA8B;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE;;kBA8BnD,KAAK,CAAC,IAAI,CAAC,YAAY,QAAQ,GAAG,IAAI;kBACtC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,aAAa,KAAK,GAAG,IAAI;;;;gCAuO5D,eAAe,KACjC,OAAO,CAAC;QAAE,MAAM,EAAE,eAAe,EAAE,CAAA;KAAE,CAAC;8CAvNpB,eAAe,KACjC,OAAO,CAAC;QAAE,iBAAiB,EAAE,eAAe,CAAC;QAAC,gBAAgB,EAAE,eAAe,EAAE,CAAA;KAAE,CAAC;;;;;;;;;kBAkPxD,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC;SAExC,CAAC,SAAS,SAAS,WAAW,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;;gCA6B9C,KAAK,CAAC,MAAM,CAAC;CAwChD,CAAA;AAEF,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,UAAU,CAAC,OAAO,0BAA0B,CAAC,CAAC,CAAC,CAAC,EAC5F,MAAM,EAAE,CAAC,GACR,UAAU,CAAC,OAAO,0BAA0B,CAAC,CAE/C;AAED,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,CAAA;AAE7D,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;IAGpB,WAAW,EAAE,MAAM,CAAA;IAGnB,aAAa,EAAE,MAAM,CAAA;IAGrB,KAAK,EAAE,UAAU,CAAA;CAClB"}
1
+ {"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../../../src/entities/response/response.ts"],"names":[],"mappings":"AAAA,mGAAmG;AACnG,OAAO,EAAiE,KAAK,KAAK,EAAE,MAAM,UAAU,CAAA;AAEpG,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAGvD,OAAO,EAML,KAAK,eAAe,EACrB,MAAM,uBAAuB,CAAA;AAE9B,YAAY,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAE5D,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAInE,MAAM,MAAM,QAAQ,GAAG,UAAU,CAAA;AAGjC,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,QAAQ,CAAA;CAChB;AAED,QAAA,MAAM,0BAA0B,eAA8B;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE;;mBA6BlD,KAAK,CAAC,KAAK,CAAC,YAAY,QAAQ,GAAG,IAAI;kBACxC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,aAAa,KAAK,GAAG,IAAI;;;;gCAwK7D,eAAe,KACjC,OAAO,CAAC;QAAE,MAAM,EAAE,eAAe,EAAE,CAAA;KAAE,CAAC;8CAtCpB,eAAe,KACjC,OAAO,CAAC;QAAE,iBAAiB,EAAE,eAAe,CAAC;QAAC,gBAAgB,EAAE,eAAe,EAAE,CAAA;KAAE,CAAC;;;;;;;;uBA8E7D,KAAK,CAAC,IAAI,CAAC,KAAG,KAAK,CAAC,UAAU,CAAC;yBAc7B,KAAK,CAAC,KAAK,CAAC,KAAG,KAAK,CAAC,UAAU,CAAC;gCAezB,KAAK,CAAC,MAAM,CAAC,KAAG,KAAK,CAAC,UAAU,CAAC;CA0BpE,CAAA;AAEF;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,UAAU,CAAC,OAAO,0BAA0B,CAAC,CAAC,CAAC,CAAC,EAC5F,MAAM,EAAE,CAAC,GACR,UAAU,CAAC,OAAO,0BAA0B,CAAC,CAE/C;AAED,mCAAmC;AACnC,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA"}