@usertour/helpers 0.0.50 → 0.0.52
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/dist/__tests__/content-helper.test.cjs +543 -70
- package/dist/__tests__/content-helper.test.js +542 -58
- package/dist/{chunk-JTRQ5CEL.js → chunk-2TMOS3DN.js} +5 -23
- package/dist/content-helper.cjs +4 -24
- package/dist/content-helper.d.cts +4 -23
- package/dist/content-helper.d.ts +4 -23
- package/dist/content-helper.js +1 -5
- package/dist/index.cjs +4 -24
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -5
- package/package.json +2 -2
|
@@ -205,31 +205,15 @@ var duplicateData = (data, contentType) => {
|
|
|
205
205
|
}
|
|
206
206
|
return data;
|
|
207
207
|
};
|
|
208
|
-
var duplicateStep = (step
|
|
209
|
-
|
|
210
|
-
const { id, cvid, createdAt, updatedAt, versionId, trigger, target, data, ...rest } = step;
|
|
211
|
-
const preserveUndefined = (_a = options == null ? void 0 : options.preserveUndefined) != null ? _a : false;
|
|
208
|
+
var duplicateStep = (step) => {
|
|
209
|
+
const { id, createdAt, updatedAt, versionId, trigger, target, data, ...rest } = step;
|
|
212
210
|
return {
|
|
213
211
|
...rest,
|
|
214
|
-
data: data ? processQuestionElements(data) :
|
|
215
|
-
trigger: trigger ? duplicateTriggers(trigger) :
|
|
212
|
+
data: data ? processQuestionElements(data) : [],
|
|
213
|
+
trigger: trigger ? duplicateTriggers(trigger) : [],
|
|
216
214
|
target: duplicateTarget(target)
|
|
217
215
|
};
|
|
218
216
|
};
|
|
219
|
-
var duplicateSteps = (steps) => {
|
|
220
|
-
if (!isArray(steps)) {
|
|
221
|
-
return [];
|
|
222
|
-
}
|
|
223
|
-
return steps.map((step) => duplicateStep(step, { preserveUndefined: true }));
|
|
224
|
-
};
|
|
225
|
-
var duplicateStepWithRename = (originalStep, sequence, existingStepNames) => {
|
|
226
|
-
const duplicated = duplicateStep(originalStep);
|
|
227
|
-
return {
|
|
228
|
-
...duplicated,
|
|
229
|
-
name: generateUniqueCopyName(originalStep.name, existingStepNames),
|
|
230
|
-
sequence
|
|
231
|
-
};
|
|
232
|
-
};
|
|
233
217
|
|
|
234
218
|
export {
|
|
235
219
|
isRestrictedType,
|
|
@@ -246,7 +230,5 @@ export {
|
|
|
246
230
|
duplicateLauncherData,
|
|
247
231
|
duplicateConfig,
|
|
248
232
|
duplicateData,
|
|
249
|
-
duplicateStep
|
|
250
|
-
duplicateSteps,
|
|
251
|
-
duplicateStepWithRename
|
|
233
|
+
duplicateStep
|
|
252
234
|
};
|
package/dist/content-helper.cjs
CHANGED
|
@@ -35,8 +35,6 @@ __export(content_helper_exports, {
|
|
|
35
35
|
duplicateData: () => duplicateData,
|
|
36
36
|
duplicateLauncherData: () => duplicateLauncherData,
|
|
37
37
|
duplicateStep: () => duplicateStep,
|
|
38
|
-
duplicateStepWithRename: () => duplicateStepWithRename,
|
|
39
|
-
duplicateSteps: () => duplicateSteps,
|
|
40
38
|
duplicateTarget: () => duplicateTarget,
|
|
41
39
|
duplicateTriggers: () => duplicateTriggers,
|
|
42
40
|
extractQuestionData: () => extractQuestionData,
|
|
@@ -346,31 +344,15 @@ var duplicateData = (data, contentType) => {
|
|
|
346
344
|
}
|
|
347
345
|
return data;
|
|
348
346
|
};
|
|
349
|
-
var duplicateStep = (step
|
|
350
|
-
|
|
351
|
-
const { id, cvid, createdAt, updatedAt, versionId, trigger, target, data, ...rest } = step;
|
|
352
|
-
const preserveUndefined = (_a = options == null ? void 0 : options.preserveUndefined) != null ? _a : false;
|
|
347
|
+
var duplicateStep = (step) => {
|
|
348
|
+
const { id, createdAt, updatedAt, versionId, trigger, target, data, ...rest } = step;
|
|
353
349
|
return {
|
|
354
350
|
...rest,
|
|
355
|
-
data: data ? processQuestionElements(data) :
|
|
356
|
-
trigger: trigger ? duplicateTriggers(trigger) :
|
|
351
|
+
data: data ? processQuestionElements(data) : [],
|
|
352
|
+
trigger: trigger ? duplicateTriggers(trigger) : [],
|
|
357
353
|
target: duplicateTarget(target)
|
|
358
354
|
};
|
|
359
355
|
};
|
|
360
|
-
var duplicateSteps = (steps) => {
|
|
361
|
-
if (!isArray(steps)) {
|
|
362
|
-
return [];
|
|
363
|
-
}
|
|
364
|
-
return steps.map((step) => duplicateStep(step, { preserveUndefined: true }));
|
|
365
|
-
};
|
|
366
|
-
var duplicateStepWithRename = (originalStep, sequence, existingStepNames) => {
|
|
367
|
-
const duplicated = duplicateStep(originalStep);
|
|
368
|
-
return {
|
|
369
|
-
...duplicated,
|
|
370
|
-
name: generateUniqueCopyName(originalStep.name, existingStepNames),
|
|
371
|
-
sequence
|
|
372
|
-
};
|
|
373
|
-
};
|
|
374
356
|
// Annotate the CommonJS export names for ESM import in node:
|
|
375
357
|
0 && (module.exports = {
|
|
376
358
|
duplicateChecklistData,
|
|
@@ -378,8 +360,6 @@ var duplicateStepWithRename = (originalStep, sequence, existingStepNames) => {
|
|
|
378
360
|
duplicateData,
|
|
379
361
|
duplicateLauncherData,
|
|
380
362
|
duplicateStep,
|
|
381
|
-
duplicateStepWithRename,
|
|
382
|
-
duplicateSteps,
|
|
383
363
|
duplicateTarget,
|
|
384
364
|
duplicateTriggers,
|
|
385
365
|
extractQuestionData,
|
|
@@ -79,29 +79,10 @@ type StepLike = {
|
|
|
79
79
|
/**
|
|
80
80
|
* Core function to duplicate a single step by removing database-specific fields
|
|
81
81
|
* and regenerating IDs in triggers, target actions, and question elements
|
|
82
|
+
* Preserves cvid to maintain step references in triggers/actions when duplicating entire content
|
|
82
83
|
* @param step - The step to duplicate
|
|
83
|
-
* @
|
|
84
|
-
* @param options.preserveUndefined - If true, undefined data/trigger remain undefined; if false (default), they become empty arrays
|
|
85
|
-
* @returns A new step object with regenerated IDs, without id/cvid/timestamps/versionId
|
|
84
|
+
* @returns A new step object with regenerated IDs, preserving cvid
|
|
86
85
|
*/
|
|
87
|
-
declare const duplicateStep: <T extends StepLike>(step: T,
|
|
88
|
-
preserveUndefined?: boolean;
|
|
89
|
-
}) => Omit<T, "id" | "cvid" | "createdAt" | "updatedAt" | "versionId">;
|
|
90
|
-
/**
|
|
91
|
-
* Process multiple steps for duplication
|
|
92
|
-
* Works with both Prisma Step type (server) and @usertour/types Step (client)
|
|
93
|
-
* @param steps - Array of steps to process
|
|
94
|
-
* @returns Array of steps ready for creation with regenerated IDs
|
|
95
|
-
*/
|
|
96
|
-
declare const duplicateSteps: <T extends StepLike>(steps: T[]) => Omit<T, "id" | "cvid" | "createdAt" | "updatedAt" | "versionId">[];
|
|
97
|
-
/**
|
|
98
|
-
* Duplicate a single step with a new unique name and sequence
|
|
99
|
-
* Used for UI operations when duplicating a step within the same version
|
|
100
|
-
* @param originalStep - The step to duplicate
|
|
101
|
-
* @param sequence - The new sequence number for the duplicated step
|
|
102
|
-
* @param existingStepNames - Optional array of existing step names to avoid conflicts
|
|
103
|
-
* @returns A new step object ready for creation
|
|
104
|
-
*/
|
|
105
|
-
declare const duplicateStepWithRename: (originalStep: Step, sequence: number, existingStepNames?: string[]) => Omit<Step, 'id' | 'cvid' | 'updatedAt' | 'createdAt'>;
|
|
86
|
+
declare const duplicateStep: <T extends StepLike>(step: T) => Omit<T, "id" | "createdAt" | "updatedAt" | "versionId">;
|
|
106
87
|
|
|
107
|
-
export { duplicateChecklistData, duplicateConfig, duplicateData, duplicateLauncherData, duplicateStep,
|
|
88
|
+
export { duplicateChecklistData, duplicateConfig, duplicateData, duplicateLauncherData, duplicateStep, duplicateTarget, duplicateTriggers, extractQuestionData, generateUniqueCopyName, hasMissingRequiredData, isClickableElement, isMissingRequiredData, isQuestionElement, isRestrictedType, processQuestionElements };
|
package/dist/content-helper.d.ts
CHANGED
|
@@ -79,29 +79,10 @@ type StepLike = {
|
|
|
79
79
|
/**
|
|
80
80
|
* Core function to duplicate a single step by removing database-specific fields
|
|
81
81
|
* and regenerating IDs in triggers, target actions, and question elements
|
|
82
|
+
* Preserves cvid to maintain step references in triggers/actions when duplicating entire content
|
|
82
83
|
* @param step - The step to duplicate
|
|
83
|
-
* @
|
|
84
|
-
* @param options.preserveUndefined - If true, undefined data/trigger remain undefined; if false (default), they become empty arrays
|
|
85
|
-
* @returns A new step object with regenerated IDs, without id/cvid/timestamps/versionId
|
|
84
|
+
* @returns A new step object with regenerated IDs, preserving cvid
|
|
86
85
|
*/
|
|
87
|
-
declare const duplicateStep: <T extends StepLike>(step: T,
|
|
88
|
-
preserveUndefined?: boolean;
|
|
89
|
-
}) => Omit<T, "id" | "cvid" | "createdAt" | "updatedAt" | "versionId">;
|
|
90
|
-
/**
|
|
91
|
-
* Process multiple steps for duplication
|
|
92
|
-
* Works with both Prisma Step type (server) and @usertour/types Step (client)
|
|
93
|
-
* @param steps - Array of steps to process
|
|
94
|
-
* @returns Array of steps ready for creation with regenerated IDs
|
|
95
|
-
*/
|
|
96
|
-
declare const duplicateSteps: <T extends StepLike>(steps: T[]) => Omit<T, "id" | "cvid" | "createdAt" | "updatedAt" | "versionId">[];
|
|
97
|
-
/**
|
|
98
|
-
* Duplicate a single step with a new unique name and sequence
|
|
99
|
-
* Used for UI operations when duplicating a step within the same version
|
|
100
|
-
* @param originalStep - The step to duplicate
|
|
101
|
-
* @param sequence - The new sequence number for the duplicated step
|
|
102
|
-
* @param existingStepNames - Optional array of existing step names to avoid conflicts
|
|
103
|
-
* @returns A new step object ready for creation
|
|
104
|
-
*/
|
|
105
|
-
declare const duplicateStepWithRename: (originalStep: Step, sequence: number, existingStepNames?: string[]) => Omit<Step, 'id' | 'cvid' | 'updatedAt' | 'createdAt'>;
|
|
86
|
+
declare const duplicateStep: <T extends StepLike>(step: T) => Omit<T, "id" | "createdAt" | "updatedAt" | "versionId">;
|
|
106
87
|
|
|
107
|
-
export { duplicateChecklistData, duplicateConfig, duplicateData, duplicateLauncherData, duplicateStep,
|
|
88
|
+
export { duplicateChecklistData, duplicateConfig, duplicateData, duplicateLauncherData, duplicateStep, duplicateTarget, duplicateTriggers, extractQuestionData, generateUniqueCopyName, hasMissingRequiredData, isClickableElement, isMissingRequiredData, isQuestionElement, isRestrictedType, processQuestionElements };
|
package/dist/content-helper.js
CHANGED
|
@@ -4,8 +4,6 @@ import {
|
|
|
4
4
|
duplicateData,
|
|
5
5
|
duplicateLauncherData,
|
|
6
6
|
duplicateStep,
|
|
7
|
-
duplicateStepWithRename,
|
|
8
|
-
duplicateSteps,
|
|
9
7
|
duplicateTarget,
|
|
10
8
|
duplicateTriggers,
|
|
11
9
|
extractQuestionData,
|
|
@@ -16,7 +14,7 @@ import {
|
|
|
16
14
|
isQuestionElement,
|
|
17
15
|
isRestrictedType,
|
|
18
16
|
processQuestionElements
|
|
19
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-2TMOS3DN.js";
|
|
20
18
|
import "./chunk-7ODE2AIC.js";
|
|
21
19
|
import "./chunk-SIG4WTEF.js";
|
|
22
20
|
import "./chunk-YYIGUZNZ.js";
|
|
@@ -32,8 +30,6 @@ export {
|
|
|
32
30
|
duplicateData,
|
|
33
31
|
duplicateLauncherData,
|
|
34
32
|
duplicateStep,
|
|
35
|
-
duplicateStepWithRename,
|
|
36
|
-
duplicateSteps,
|
|
37
33
|
duplicateTarget,
|
|
38
34
|
duplicateTriggers,
|
|
39
35
|
extractQuestionData,
|
package/dist/index.cjs
CHANGED
|
@@ -59,8 +59,6 @@ __export(src_exports, {
|
|
|
59
59
|
duplicateData: () => duplicateData,
|
|
60
60
|
duplicateLauncherData: () => duplicateLauncherData,
|
|
61
61
|
duplicateStep: () => duplicateStep,
|
|
62
|
-
duplicateStepWithRename: () => duplicateStepWithRename,
|
|
63
|
-
duplicateSteps: () => duplicateSteps,
|
|
64
62
|
duplicateTarget: () => duplicateTarget,
|
|
65
63
|
duplicateTriggers: () => duplicateTriggers,
|
|
66
64
|
evalCode: () => evalCode,
|
|
@@ -1902,31 +1900,15 @@ var duplicateData = (data, contentType) => {
|
|
|
1902
1900
|
}
|
|
1903
1901
|
return data;
|
|
1904
1902
|
};
|
|
1905
|
-
var duplicateStep = (step
|
|
1906
|
-
|
|
1907
|
-
const { id, cvid, createdAt, updatedAt, versionId, trigger, target, data, ...rest } = step;
|
|
1908
|
-
const preserveUndefined = (_a = options == null ? void 0 : options.preserveUndefined) != null ? _a : false;
|
|
1903
|
+
var duplicateStep = (step) => {
|
|
1904
|
+
const { id, createdAt, updatedAt, versionId, trigger, target, data, ...rest } = step;
|
|
1909
1905
|
return {
|
|
1910
1906
|
...rest,
|
|
1911
|
-
data: data ? processQuestionElements(data) :
|
|
1912
|
-
trigger: trigger ? duplicateTriggers(trigger) :
|
|
1907
|
+
data: data ? processQuestionElements(data) : [],
|
|
1908
|
+
trigger: trigger ? duplicateTriggers(trigger) : [],
|
|
1913
1909
|
target: duplicateTarget(target)
|
|
1914
1910
|
};
|
|
1915
1911
|
};
|
|
1916
|
-
var duplicateSteps = (steps) => {
|
|
1917
|
-
if (!isArray(steps)) {
|
|
1918
|
-
return [];
|
|
1919
|
-
}
|
|
1920
|
-
return steps.map((step) => duplicateStep(step, { preserveUndefined: true }));
|
|
1921
|
-
};
|
|
1922
|
-
var duplicateStepWithRename = (originalStep, sequence, existingStepNames) => {
|
|
1923
|
-
const duplicated = duplicateStep(originalStep);
|
|
1924
|
-
return {
|
|
1925
|
-
...duplicated,
|
|
1926
|
-
name: generateUniqueCopyName(originalStep.name, existingStepNames),
|
|
1927
|
-
sequence
|
|
1928
|
-
};
|
|
1929
|
-
};
|
|
1930
1912
|
// Annotate the CommonJS export names for ESM import in node:
|
|
1931
1913
|
0 && (module.exports = {
|
|
1932
1914
|
AbortController,
|
|
@@ -1953,8 +1935,6 @@ var duplicateStepWithRename = (originalStep, sequence, existingStepNames) => {
|
|
|
1953
1935
|
duplicateData,
|
|
1954
1936
|
duplicateLauncherData,
|
|
1955
1937
|
duplicateStep,
|
|
1956
|
-
duplicateStepWithRename,
|
|
1957
|
-
duplicateSteps,
|
|
1958
1938
|
duplicateTarget,
|
|
1959
1939
|
duplicateTriggers,
|
|
1960
1940
|
evalCode,
|
package/dist/index.d.cts
CHANGED
|
@@ -14,7 +14,7 @@ export { evaluateUrlCondition, isMatchUrlPattern } from './conditions/url.cjs';
|
|
|
14
14
|
export { convertTimeConditionLegacyToV2, evaluateTimeCondition, isTimeConditionDataLegacy, isTimeConditionDataV2, normalizeTimeConditionData } from './conditions/time.cjs';
|
|
15
15
|
export { evaluateAttributeCondition } from './conditions/attribute.cjs';
|
|
16
16
|
export { capitalizeFirstLetter, filterNullAttributes, getAttributeType, isValidISO8601 } from './attribute.cjs';
|
|
17
|
-
export { duplicateChecklistData, duplicateConfig, duplicateData, duplicateLauncherData, duplicateStep,
|
|
17
|
+
export { duplicateChecklistData, duplicateConfig, duplicateData, duplicateLauncherData, duplicateStep, duplicateTarget, duplicateTriggers, extractQuestionData, generateUniqueCopyName, hasMissingRequiredData, isClickableElement, isMissingRequiredData, isQuestionElement, isRestrictedType, processQuestionElements } from './content-helper.cjs';
|
|
18
18
|
export { default as isEqual } from 'fast-deep-equal';
|
|
19
19
|
import '@usertour/types';
|
|
20
20
|
import './storage.cjs';
|
package/dist/index.d.ts
CHANGED
|
@@ -14,7 +14,7 @@ export { evaluateUrlCondition, isMatchUrlPattern } from './conditions/url.js';
|
|
|
14
14
|
export { convertTimeConditionLegacyToV2, evaluateTimeCondition, isTimeConditionDataLegacy, isTimeConditionDataV2, normalizeTimeConditionData } from './conditions/time.js';
|
|
15
15
|
export { evaluateAttributeCondition } from './conditions/attribute.js';
|
|
16
16
|
export { capitalizeFirstLetter, filterNullAttributes, getAttributeType, isValidISO8601 } from './attribute.js';
|
|
17
|
-
export { duplicateChecklistData, duplicateConfig, duplicateData, duplicateLauncherData, duplicateStep,
|
|
17
|
+
export { duplicateChecklistData, duplicateConfig, duplicateData, duplicateLauncherData, duplicateStep, duplicateTarget, duplicateTriggers, extractQuestionData, generateUniqueCopyName, hasMissingRequiredData, isClickableElement, isMissingRequiredData, isQuestionElement, isRestrictedType, processQuestionElements } from './content-helper.js';
|
|
18
18
|
export { default as isEqual } from 'fast-deep-equal';
|
|
19
19
|
import '@usertour/types';
|
|
20
20
|
import './storage.js';
|
package/dist/index.js
CHANGED
|
@@ -28,8 +28,6 @@ import {
|
|
|
28
28
|
duplicateData,
|
|
29
29
|
duplicateLauncherData,
|
|
30
30
|
duplicateStep,
|
|
31
|
-
duplicateStepWithRename,
|
|
32
|
-
duplicateSteps,
|
|
33
31
|
duplicateTarget,
|
|
34
32
|
duplicateTriggers,
|
|
35
33
|
extractQuestionData,
|
|
@@ -40,7 +38,7 @@ import {
|
|
|
40
38
|
isQuestionElement,
|
|
41
39
|
isRestrictedType,
|
|
42
40
|
processQuestionElements
|
|
43
|
-
} from "./chunk-
|
|
41
|
+
} from "./chunk-2TMOS3DN.js";
|
|
44
42
|
import "./chunk-7ODE2AIC.js";
|
|
45
43
|
import {
|
|
46
44
|
allConditionsHaveIds,
|
|
@@ -173,8 +171,6 @@ export {
|
|
|
173
171
|
duplicateData,
|
|
174
172
|
duplicateLauncherData,
|
|
175
173
|
duplicateStep,
|
|
176
|
-
duplicateStepWithRename,
|
|
177
|
-
duplicateSteps,
|
|
178
174
|
duplicateTarget,
|
|
179
175
|
duplicateTriggers,
|
|
180
176
|
evalCode,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@usertour/helpers",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.52",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Utility functions and helpers shared across the UserTour project",
|
|
6
6
|
"homepage": "https://www.usertour.io",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
31
|
"@paralleldrive/cuid2": "^2.2.2",
|
|
32
|
-
"@usertour/types": "^0.0.
|
|
32
|
+
"@usertour/types": "^0.0.35",
|
|
33
33
|
"chroma-js": "^3.1.2",
|
|
34
34
|
"class-variance-authority": "^0.4.0",
|
|
35
35
|
"clsx": "^1.2.1",
|