@encatch/schema 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -0
- package/dist/cjs/index.js +30 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/schemas/fields/answer-schema.js +103 -0
- package/dist/cjs/schemas/fields/answer-schema.js.map +1 -0
- package/dist/cjs/schemas/fields/auto-trigger-schema.js +49 -0
- package/dist/cjs/schemas/fields/auto-trigger-schema.js.map +1 -0
- package/dist/cjs/schemas/fields/field-schema.js +678 -0
- package/dist/cjs/schemas/fields/field-schema.js.map +1 -0
- package/dist/cjs/schemas/fields/form-properties-schema.js +136 -0
- package/dist/cjs/schemas/fields/form-properties-schema.js.map +1 -0
- package/dist/cjs/schemas/fields/form-schema.js +123 -0
- package/dist/cjs/schemas/fields/form-schema.js.map +1 -0
- package/dist/cjs/schemas/fields/other-screen-schema.js +169 -0
- package/dist/cjs/schemas/fields/other-screen-schema.js.map +1 -0
- package/dist/cjs/schemas/fields/theme-schema.js +85 -0
- package/dist/cjs/schemas/fields/theme-schema.js.map +1 -0
- package/dist/cjs/schemas/fields/translations-example.js +187 -0
- package/dist/cjs/schemas/fields/translations-example.js.map +1 -0
- package/dist/cjs/schemas/fields/translations-schema.js +198 -0
- package/dist/cjs/schemas/fields/translations-schema.js.map +1 -0
- package/dist/esm/index.js +12 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/schemas/fields/answer-schema.js +100 -0
- package/dist/esm/schemas/fields/answer-schema.js.map +1 -0
- package/dist/esm/schemas/fields/auto-trigger-schema.js +46 -0
- package/dist/esm/schemas/fields/auto-trigger-schema.js.map +1 -0
- package/dist/esm/schemas/fields/field-schema.js +675 -0
- package/dist/esm/schemas/fields/field-schema.js.map +1 -0
- package/dist/esm/schemas/fields/form-properties-schema.js +133 -0
- package/dist/esm/schemas/fields/form-properties-schema.js.map +1 -0
- package/dist/esm/schemas/fields/form-schema.js +120 -0
- package/dist/esm/schemas/fields/form-schema.js.map +1 -0
- package/dist/esm/schemas/fields/other-screen-schema.js +166 -0
- package/dist/esm/schemas/fields/other-screen-schema.js.map +1 -0
- package/dist/esm/schemas/fields/theme-schema.js +82 -0
- package/dist/esm/schemas/fields/theme-schema.js.map +1 -0
- package/dist/esm/schemas/fields/translations-example.js +181 -0
- package/dist/esm/schemas/fields/translations-example.js.map +1 -0
- package/dist/esm/schemas/fields/translations-schema.js +193 -0
- package/dist/esm/schemas/fields/translations-schema.js.map +1 -0
- package/dist/types/index.d.ts +9 -0
- package/dist/types/schemas/fields/answer-schema.d.ts +77 -0
- package/dist/types/schemas/fields/auto-trigger-schema.d.ts +21 -0
- package/dist/types/schemas/fields/field-schema.d.ts +1114 -0
- package/dist/types/schemas/fields/form-properties-schema.d.ts +1035 -0
- package/dist/types/schemas/fields/form-schema.d.ts +68 -0
- package/dist/types/schemas/fields/other-screen-schema.d.ts +58 -0
- package/dist/types/schemas/fields/theme-schema.d.ts +91 -0
- package/dist/types/schemas/fields/translations-example.d.ts +10 -0
- package/dist/types/schemas/fields/translations-schema.d.ts +863 -0
- package/package.json +33 -0
package/README.md
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.z = void 0;
|
|
18
|
+
// Main entry point for encatch-typescript schemas
|
|
19
|
+
__exportStar(require("./schemas/fields/field-schema"), exports);
|
|
20
|
+
__exportStar(require("./schemas/fields/answer-schema"), exports);
|
|
21
|
+
__exportStar(require("./schemas/fields/form-schema"), exports);
|
|
22
|
+
__exportStar(require("./schemas/fields/form-properties-schema"), exports);
|
|
23
|
+
__exportStar(require("./schemas/fields/other-screen-schema"), exports);
|
|
24
|
+
__exportStar(require("./schemas/fields/theme-schema"), exports);
|
|
25
|
+
__exportStar(require("./schemas/fields/translations-schema"), exports);
|
|
26
|
+
__exportStar(require("./schemas/fields/auto-trigger-schema"), exports);
|
|
27
|
+
// Re-export Zod for convenience (consumers should add zod to their dependencies)
|
|
28
|
+
var zod_1 = require("zod");
|
|
29
|
+
Object.defineProperty(exports, "z", { enumerable: true, get: function () { return zod_1.z; } });
|
|
30
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,kDAAkD;AAClD,gEAA8C;AAC9C,iEAA+C;AAC/C,+DAA6C;AAC7C,0EAAwD;AACxD,uEAAqD;AACrD,gEAA8C;AAC9C,uEAAqD;AACrD,uEAAqD;AACrD,iFAAiF;AACjF,2BAAwB;AAAf,wFAAA,CAAC,OAAA"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AnswerSchema = exports.TextAnswerSchema = exports.RankingAnswerSchema = exports.ContinuousSumAnswerSchema = exports.ScaleAnswerSchema = exports.MultipleChoiceAnswerSchema = exports.ChoiceAnswerSchema = exports.SimpleAnswerSchema = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
// Simple answer schema
|
|
6
|
+
exports.SimpleAnswerSchema = zod_1.z
|
|
7
|
+
.object({
|
|
8
|
+
type: zod_1.z
|
|
9
|
+
.literal("simple")
|
|
10
|
+
.describe("Indicates this is a simple answer with a single value"),
|
|
11
|
+
value: zod_1.z
|
|
12
|
+
.union([zod_1.z.string(), zod_1.z.number(), zod_1.z.boolean()])
|
|
13
|
+
.describe("The answer value - can be text, number, or boolean"),
|
|
14
|
+
})
|
|
15
|
+
.describe("A simple answer containing a single value like text, number, or boolean");
|
|
16
|
+
// Choice answer schema
|
|
17
|
+
exports.ChoiceAnswerSchema = zod_1.z
|
|
18
|
+
.object({
|
|
19
|
+
type: zod_1.z
|
|
20
|
+
.literal("choice")
|
|
21
|
+
.describe("Indicates this is a single-choice answer"),
|
|
22
|
+
selectedOptionId: zod_1.z
|
|
23
|
+
.string()
|
|
24
|
+
.describe("The ID of the selected option from the available choices"),
|
|
25
|
+
})
|
|
26
|
+
.describe("A single-choice answer where the user selects one option from a list");
|
|
27
|
+
// Multiple choice answer schema
|
|
28
|
+
exports.MultipleChoiceAnswerSchema = zod_1.z
|
|
29
|
+
.object({
|
|
30
|
+
type: zod_1.z
|
|
31
|
+
.literal("multiple_choice")
|
|
32
|
+
.describe("Indicates this is a multiple-choice answer"),
|
|
33
|
+
selectedOptionIds: zod_1.z
|
|
34
|
+
.array(zod_1.z.string())
|
|
35
|
+
.describe("Array of IDs for all selected options from the available choices"),
|
|
36
|
+
})
|
|
37
|
+
.describe("A multiple-choice answer where the user can select multiple options from a list");
|
|
38
|
+
// Scale answer schema
|
|
39
|
+
exports.ScaleAnswerSchema = zod_1.z
|
|
40
|
+
.object({
|
|
41
|
+
type: zod_1.z
|
|
42
|
+
.literal("scale")
|
|
43
|
+
.describe("Indicates this is a scale/rating answer"),
|
|
44
|
+
value: zod_1.z
|
|
45
|
+
.number()
|
|
46
|
+
.describe("The numerical value representing the position on the scale (e.g., 1-5, 1-10)"),
|
|
47
|
+
})
|
|
48
|
+
.describe("A scale answer where the user selects a numerical value on a scale");
|
|
49
|
+
// Continuous sum answer schema
|
|
50
|
+
exports.ContinuousSumAnswerSchema = zod_1.z
|
|
51
|
+
.object({
|
|
52
|
+
type: zod_1.z
|
|
53
|
+
.literal("continuous_sum")
|
|
54
|
+
.describe("Indicates this is a continuous sum answer"),
|
|
55
|
+
values: zod_1.z
|
|
56
|
+
.array(zod_1.z.object({
|
|
57
|
+
optionId: zod_1.z.string().describe("The ID of the option being rated"),
|
|
58
|
+
value: zod_1.z
|
|
59
|
+
.number()
|
|
60
|
+
.describe("The numerical value assigned to this option"),
|
|
61
|
+
}))
|
|
62
|
+
.describe("Array of option-value pairs where the sum of all values represents a total allocation"),
|
|
63
|
+
})
|
|
64
|
+
.describe("A continuous sum answer where users distribute values across multiple options that add up to a total");
|
|
65
|
+
// Ranking answer schema
|
|
66
|
+
exports.RankingAnswerSchema = zod_1.z
|
|
67
|
+
.object({
|
|
68
|
+
type: zod_1.z.literal("ranking").describe("Indicates this is a ranking answer"),
|
|
69
|
+
ranks: zod_1.z
|
|
70
|
+
.array(zod_1.z.object({
|
|
71
|
+
optionId: zod_1.z.string().describe("The ID of the option being ranked"),
|
|
72
|
+
rank: zod_1.z
|
|
73
|
+
.number()
|
|
74
|
+
.describe("The rank position of this option (lower numbers indicate higher preference)"),
|
|
75
|
+
}))
|
|
76
|
+
.describe("Array of option-rank pairs showing the user's preference ordering"),
|
|
77
|
+
})
|
|
78
|
+
.describe("A ranking answer where users order options by preference or priority");
|
|
79
|
+
// Text answer schema
|
|
80
|
+
exports.TextAnswerSchema = zod_1.z
|
|
81
|
+
.object({
|
|
82
|
+
type: zod_1.z.literal("text").describe("Indicates this is a text-based answer"),
|
|
83
|
+
values: zod_1.z
|
|
84
|
+
.array(zod_1.z.object({
|
|
85
|
+
fieldId: zod_1.z.string().describe("The ID of the text field"),
|
|
86
|
+
text: zod_1.z.string().describe("The text content entered by the user"),
|
|
87
|
+
}))
|
|
88
|
+
.describe("Array of field-text pairs for multiple text input fields"),
|
|
89
|
+
})
|
|
90
|
+
.describe("A text answer containing responses to one or more text input fields");
|
|
91
|
+
// Union schema for all answer types
|
|
92
|
+
exports.AnswerSchema = zod_1.z
|
|
93
|
+
.discriminatedUnion("type", [
|
|
94
|
+
exports.SimpleAnswerSchema,
|
|
95
|
+
exports.ChoiceAnswerSchema,
|
|
96
|
+
exports.MultipleChoiceAnswerSchema,
|
|
97
|
+
exports.ScaleAnswerSchema,
|
|
98
|
+
exports.ContinuousSumAnswerSchema,
|
|
99
|
+
exports.RankingAnswerSchema,
|
|
100
|
+
exports.TextAnswerSchema,
|
|
101
|
+
])
|
|
102
|
+
.describe("A union of all possible answer types discriminated by the 'type' field");
|
|
103
|
+
//# sourceMappingURL=answer-schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"answer-schema.js","sourceRoot":"","sources":["../../../../src/schemas/fields/answer-schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.audienceTriggerPropertiesSchema = exports.audienceSegmentSchema = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
// Audience segment schema for targeting specific user groups
|
|
6
|
+
exports.audienceSegmentSchema = zod_1.z
|
|
7
|
+
.object({
|
|
8
|
+
id: zod_1.z
|
|
9
|
+
.string()
|
|
10
|
+
.describe("Unique identifier for the audience segment"),
|
|
11
|
+
name: zod_1.z
|
|
12
|
+
.string()
|
|
13
|
+
.min(1)
|
|
14
|
+
.max(200)
|
|
15
|
+
.describe("Display name for the audience segment"),
|
|
16
|
+
isImportant: zod_1.z
|
|
17
|
+
.boolean()
|
|
18
|
+
.describe("Whether this segment is marked as important for targeting"),
|
|
19
|
+
when: zod_1.z
|
|
20
|
+
.string()
|
|
21
|
+
.describe("Timing condition for when to trigger the audience segment"),
|
|
22
|
+
who: zod_1.z
|
|
23
|
+
.string()
|
|
24
|
+
.describe("User criteria or conditions defining who belongs to this segment"),
|
|
25
|
+
})
|
|
26
|
+
.describe("Schema defining an audience segment for targeting");
|
|
27
|
+
// Audience trigger properties schema
|
|
28
|
+
exports.audienceTriggerPropertiesSchema = zod_1.z
|
|
29
|
+
.object({
|
|
30
|
+
isAuto: zod_1.z
|
|
31
|
+
.boolean()
|
|
32
|
+
.describe("Whether automatic triggering is enabled for this audience"),
|
|
33
|
+
isManual: zod_1.z
|
|
34
|
+
.boolean()
|
|
35
|
+
.describe("Whether manual triggering is enabled for this audience"),
|
|
36
|
+
segments: zod_1.z
|
|
37
|
+
.array(exports.audienceSegmentSchema)
|
|
38
|
+
.min(0)
|
|
39
|
+
.describe("Array of audience segments for targeting conditions"),
|
|
40
|
+
})
|
|
41
|
+
.refine((data) => {
|
|
42
|
+
// Ensure at least one of isAuto or isManual is true
|
|
43
|
+
return data.isAuto || data.isManual;
|
|
44
|
+
}, {
|
|
45
|
+
message: "At least one of isAuto or isManual must be true",
|
|
46
|
+
path: ["isAuto"],
|
|
47
|
+
})
|
|
48
|
+
.describe("Schema defining audience trigger properties for form targeting");
|
|
49
|
+
//# sourceMappingURL=auto-trigger-schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-trigger-schema.js","sourceRoot":"","sources":["../../../../src/schemas/fields/auto-trigger-schema.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAExB,6DAA6D;AAChD,QAAA,qBAAqB,GAAG,OAAC;KACnC,MAAM,CAAC;IACN,EAAE,EAAE,OAAC;SACF,MAAM,EAAE;SACR,QAAQ,CAAC,4CAA4C,CAAC;IACzD,IAAI,EAAE,OAAC;SACJ,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,GAAG,CAAC;SACR,QAAQ,CAAC,uCAAuC,CAAC;IACpD,WAAW,EAAE,OAAC;SACX,OAAO,EAAE;SACT,QAAQ,CAAC,2DAA2D,CAAC;IACxE,IAAI,EAAE,OAAC;SACJ,MAAM,EAAE;SACR,QAAQ,CAAC,2DAA2D,CAAC;IACxE,GAAG,EAAE,OAAC;SACH,MAAM,EAAE;SACR,QAAQ,CAAC,kEAAkE,CAAC;CAChF,CAAC;KACD,QAAQ,CAAC,mDAAmD,CAAC,CAAC;AAEjE,qCAAqC;AACxB,QAAA,+BAA+B,GAAG,OAAC;KAC7C,MAAM,CAAC;IACN,MAAM,EAAE,OAAC;SACN,OAAO,EAAE;SACT,QAAQ,CAAC,2DAA2D,CAAC;IACxE,QAAQ,EAAE,OAAC;SACR,OAAO,EAAE;SACT,QAAQ,CAAC,wDAAwD,CAAC;IACrE,QAAQ,EAAE,OAAC;SACR,KAAK,CAAC,6BAAqB,CAAC;SAC5B,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CAAC,qDAAqD,CAAC;CACnE,CAAC;KACD,MAAM,CACL,CAAC,IAAI,EAAE,EAAE;IACP,oDAAoD;IACpD,OAAO,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC;AACtC,CAAC,EACD;IACE,OAAO,EAAE,iDAAiD;IAC1D,IAAI,EAAE,CAAC,QAAQ,CAAC;CACjB,CACF;KACA,QAAQ,CAAC,gEAAgE,CAAC,CAAC"}
|