@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.
@@ -205,31 +205,15 @@ var duplicateData = (data, contentType) => {
205
205
  }
206
206
  return data;
207
207
  };
208
- var duplicateStep = (step, options) => {
209
- var _a;
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) : preserveUndefined ? data : [],
215
- trigger: trigger ? duplicateTriggers(trigger) : preserveUndefined ? 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
  };
@@ -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, options) => {
350
- var _a;
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) : preserveUndefined ? data : [],
356
- trigger: trigger ? duplicateTriggers(trigger) : preserveUndefined ? 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
- * @param options - Options for duplication behavior
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, options?: {
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, duplicateStepWithRename, duplicateSteps, duplicateTarget, duplicateTriggers, extractQuestionData, generateUniqueCopyName, hasMissingRequiredData, isClickableElement, isMissingRequiredData, isQuestionElement, isRestrictedType, processQuestionElements };
88
+ export { duplicateChecklistData, duplicateConfig, duplicateData, duplicateLauncherData, duplicateStep, duplicateTarget, duplicateTriggers, extractQuestionData, generateUniqueCopyName, hasMissingRequiredData, isClickableElement, isMissingRequiredData, isQuestionElement, isRestrictedType, processQuestionElements };
@@ -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
- * @param options - Options for duplication behavior
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, options?: {
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, duplicateStepWithRename, duplicateSteps, duplicateTarget, duplicateTriggers, extractQuestionData, generateUniqueCopyName, hasMissingRequiredData, isClickableElement, isMissingRequiredData, isQuestionElement, isRestrictedType, processQuestionElements };
88
+ export { duplicateChecklistData, duplicateConfig, duplicateData, duplicateLauncherData, duplicateStep, duplicateTarget, duplicateTriggers, extractQuestionData, generateUniqueCopyName, hasMissingRequiredData, isClickableElement, isMissingRequiredData, isQuestionElement, isRestrictedType, processQuestionElements };
@@ -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-JTRQ5CEL.js";
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, options) => {
1906
- var _a;
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) : preserveUndefined ? data : [],
1912
- trigger: trigger ? duplicateTriggers(trigger) : preserveUndefined ? 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, duplicateStepWithRename, duplicateSteps, duplicateTarget, duplicateTriggers, extractQuestionData, generateUniqueCopyName, hasMissingRequiredData, isClickableElement, isMissingRequiredData, isQuestionElement, isRestrictedType, processQuestionElements } from './content-helper.cjs';
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, duplicateStepWithRename, duplicateSteps, duplicateTarget, duplicateTriggers, extractQuestionData, generateUniqueCopyName, hasMissingRequiredData, isClickableElement, isMissingRequiredData, isQuestionElement, isRestrictedType, processQuestionElements } from './content-helper.js';
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-JTRQ5CEL.js";
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.50",
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.33",
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",