@featurevisor/core 2.9.0 → 2.11.0

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 (29) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/coverage/clover.xml +2 -2
  3. package/coverage/lcov-report/builder/allocator.ts.html +1 -1
  4. package/coverage/lcov-report/builder/buildScopedConditions.ts.html +1 -1
  5. package/coverage/lcov-report/builder/buildScopedDatafile.ts.html +1 -1
  6. package/coverage/lcov-report/builder/buildScopedSegments.ts.html +1 -1
  7. package/coverage/lcov-report/builder/index.html +1 -1
  8. package/coverage/lcov-report/builder/revision.ts.html +1 -1
  9. package/coverage/lcov-report/builder/traffic.ts.html +1 -1
  10. package/coverage/lcov-report/index.html +1 -1
  11. package/coverage/lcov-report/list/index.html +1 -1
  12. package/coverage/lcov-report/list/matrix.ts.html +1 -1
  13. package/coverage/lcov-report/parsers/index.html +1 -1
  14. package/coverage/lcov-report/parsers/json.ts.html +1 -1
  15. package/coverage/lcov-report/parsers/yml.ts.html +1 -1
  16. package/coverage/lcov-report/tester/helpers.ts.html +1 -1
  17. package/coverage/lcov-report/tester/index.html +1 -1
  18. package/lib/generate-code/typescript.js +150 -16
  19. package/lib/generate-code/typescript.js.map +1 -1
  20. package/lib/linter/featureSchema.d.ts +142 -101
  21. package/lib/linter/featureSchema.js +269 -81
  22. package/lib/linter/featureSchema.js.map +1 -1
  23. package/lib/linter/propertySchema.d.ts +5 -0
  24. package/lib/linter/propertySchema.js +43 -0
  25. package/lib/linter/propertySchema.js.map +1 -0
  26. package/package.json +5 -5
  27. package/src/generate-code/typescript.ts +168 -18
  28. package/src/linter/featureSchema.ts +358 -96
  29. package/src/linter/propertySchema.ts +47 -0
@@ -2,28 +2,167 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getFeatureZodSchema = getFeatureZodSchema;
4
4
  const zod_1 = require("zod");
5
+ const propertySchema_1 = require("./propertySchema");
5
6
  const tagRegex = /^[a-z0-9-]+$/;
6
- function isFlatObject(value) {
7
- let isFlat = true;
8
- Object.keys(value).forEach((key) => {
9
- if (typeof value[key] === "object") {
10
- isFlat = false;
11
- }
12
- });
13
- return isFlat;
14
- }
15
7
  function isArrayOfStrings(value) {
16
8
  return Array.isArray(value) && value.every((v) => typeof v === "string");
17
9
  }
18
- function superRefineVariableValue(projectConfig, variableSchema, variableValue, path, ctx) {
19
- if (!variableSchema) {
20
- let message = `Unknown variable with value: ${variableValue}`;
21
- if (path.length > 0) {
22
- const lastPath = path[path.length - 1];
23
- if (typeof lastPath === "string") {
24
- message = `Unknown variable "${lastPath}" with value: ${variableValue}`;
10
+ function isFlatObjectValue(value) {
11
+ return (value === null ||
12
+ typeof value === "string" ||
13
+ typeof value === "number" ||
14
+ typeof value === "boolean");
15
+ }
16
+ function getVariableLabel(variableSchema, variableKey, path) {
17
+ return (variableKey ??
18
+ variableSchema?.key ??
19
+ (path.length > 0 ? String(path[path.length - 1]) : "variable"));
20
+ }
21
+ /**
22
+ * Recursively validates that every `required` array (at this level and in nested
23
+ * object/array schemas) only contains keys that exist in the same level's `properties`.
24
+ * Adds Zod issues with the correct path for invalid required field names.
25
+ */
26
+ function refineRequiredKeysInSchema(schema, pathPrefix, ctx) {
27
+ if (!schema || typeof schema !== "object")
28
+ return;
29
+ const effectiveType = schema.type;
30
+ const properties = schema.properties;
31
+ const required = schema.required;
32
+ const items = schema.items;
33
+ if (effectiveType === "object" &&
34
+ Array.isArray(required) &&
35
+ required.length > 0 &&
36
+ properties &&
37
+ typeof properties === "object") {
38
+ const allowedKeys = Object.keys(properties);
39
+ required.forEach((key, index) => {
40
+ if (!allowedKeys.includes(key)) {
41
+ ctx.addIssue({
42
+ code: zod_1.z.ZodIssueCode.custom,
43
+ message: `Unknown required field "${key}". \`required\` must only contain property names defined in \`properties\`. Allowed: ${allowedKeys.length ? allowedKeys.join(", ") : "(none)"}.`,
44
+ path: [...pathPrefix, "required", index],
45
+ });
25
46
  }
47
+ });
48
+ }
49
+ if (properties && typeof properties === "object") {
50
+ for (const key of Object.keys(properties)) {
51
+ const nested = properties[key];
52
+ if (nested && typeof nested === "object") {
53
+ refineRequiredKeysInSchema(nested, [...pathPrefix, "properties", key], ctx);
54
+ }
55
+ }
56
+ }
57
+ if (items && typeof items === "object" && !Array.isArray(items)) {
58
+ refineRequiredKeysInSchema(items, [...pathPrefix, "items"], ctx);
59
+ }
60
+ }
61
+ function typeOfValue(value) {
62
+ if (value === null)
63
+ return "null";
64
+ if (value === undefined)
65
+ return "undefined";
66
+ if (Array.isArray(value))
67
+ return "array";
68
+ return typeof value;
69
+ }
70
+ /**
71
+ * Validates a variable value against an array schema. Recursively validates each item
72
+ * when the schema defines `items` (nested arrays/objects use the same refinement).
73
+ */
74
+ function refineVariableValueArray(projectConfig, variableSchema, variableValue, path, ctx, variableKey) {
75
+ const label = getVariableLabel(variableSchema, variableKey, path);
76
+ const itemSchema = variableSchema.items;
77
+ if (itemSchema) {
78
+ variableValue.forEach((item, index) => {
79
+ superRefineVariableValue(projectConfig, itemSchema, item, [...path, index], ctx, variableKey);
80
+ });
81
+ }
82
+ else {
83
+ if (!isArrayOfStrings(variableValue)) {
84
+ ctx.addIssue({
85
+ code: zod_1.z.ZodIssueCode.custom,
86
+ message: `Variable "${label}" (type array): when \`items\` is not set, array must contain only strings; found non-string element.`,
87
+ path,
88
+ });
89
+ }
90
+ }
91
+ if (projectConfig.maxVariableArrayStringifiedLength) {
92
+ const stringified = JSON.stringify(variableValue);
93
+ if (stringified.length > projectConfig.maxVariableArrayStringifiedLength) {
94
+ ctx.addIssue({
95
+ code: zod_1.z.ZodIssueCode.custom,
96
+ message: `Variable "${label}" array is too long (${stringified.length} characters), max length is ${projectConfig.maxVariableArrayStringifiedLength}`,
97
+ path,
98
+ });
26
99
  }
100
+ }
101
+ }
102
+ /**
103
+ * Validates a variable value against an object schema. Recursively validates each property
104
+ * when the schema defines `properties` (nested objects/arrays use the same refinement).
105
+ */
106
+ function refineVariableValueObject(projectConfig, variableSchema, variableValue, path, ctx, variableKey) {
107
+ const label = getVariableLabel(variableSchema, variableKey, path);
108
+ const schemaProperties = variableSchema.properties;
109
+ if (schemaProperties && typeof schemaProperties === "object") {
110
+ const requiredKeys = variableSchema.required && variableSchema.required.length > 0
111
+ ? variableSchema.required.filter((k) => Object.prototype.hasOwnProperty.call(schemaProperties, k))
112
+ : Object.keys(schemaProperties);
113
+ for (const key of requiredKeys) {
114
+ if (!Object.prototype.hasOwnProperty.call(variableValue, key)) {
115
+ ctx.addIssue({
116
+ code: zod_1.z.ZodIssueCode.custom,
117
+ message: `Missing required property "${key}" in variable "${label}"`,
118
+ path: [...path, key],
119
+ });
120
+ }
121
+ }
122
+ for (const key of Object.keys(variableValue)) {
123
+ const propSchema = schemaProperties[key];
124
+ if (!propSchema) {
125
+ ctx.addIssue({
126
+ code: zod_1.z.ZodIssueCode.custom,
127
+ message: `Unknown property "${key}" in variable "${label}" (not in schema)`,
128
+ path: [...path, key],
129
+ });
130
+ }
131
+ else {
132
+ superRefineVariableValue(projectConfig, propSchema, variableValue[key], [...path, key], ctx, key);
133
+ }
134
+ }
135
+ }
136
+ else {
137
+ for (const key of Object.keys(variableValue)) {
138
+ const propValue = variableValue[key];
139
+ if (!isFlatObjectValue(propValue)) {
140
+ ctx.addIssue({
141
+ code: zod_1.z.ZodIssueCode.custom,
142
+ message: `Variable "${label}" is a flat object (no \`properties\` in schema); property "${key}" must be a primitive (string, number, boolean, or null), got: ${typeof propValue}`,
143
+ path: [...path, key],
144
+ });
145
+ }
146
+ }
147
+ }
148
+ if (projectConfig.maxVariableObjectStringifiedLength) {
149
+ const stringified = JSON.stringify(variableValue);
150
+ if (stringified.length > projectConfig.maxVariableObjectStringifiedLength) {
151
+ ctx.addIssue({
152
+ code: zod_1.z.ZodIssueCode.custom,
153
+ message: `Variable "${label}" object is too long (${stringified.length} characters), max length is ${projectConfig.maxVariableObjectStringifiedLength}`,
154
+ path,
155
+ });
156
+ }
157
+ }
158
+ }
159
+ function superRefineVariableValue(projectConfig, variableSchema, variableValue, path, ctx, variableKey) {
160
+ const label = getVariableLabel(variableSchema, variableKey, path);
161
+ if (!variableSchema) {
162
+ const variableName = path.length > 0 && typeof path[path.length - 1] === "string"
163
+ ? String(path[path.length - 1])
164
+ : "variable";
165
+ const message = `Variable "${variableName}" is used but not defined in variablesSchema. Define it under variablesSchema first, then use it here.`;
27
166
  ctx.addIssue({
28
167
  code: zod_1.z.ZodIssueCode.custom,
29
168
  message,
@@ -31,99 +170,139 @@ function superRefineVariableValue(projectConfig, variableSchema, variableValue,
31
170
  });
32
171
  return;
33
172
  }
34
- // string
35
- if (variableSchema.type === "string") {
173
+ // Require a value (no undefined) for every variable usage
174
+ if (variableValue === undefined) {
175
+ ctx.addIssue({
176
+ code: zod_1.z.ZodIssueCode.custom,
177
+ message: `Variable "${label}" value is required (got undefined).`,
178
+ path,
179
+ });
180
+ return;
181
+ }
182
+ const expectedType = variableSchema.type;
183
+ const gotType = typeOfValue(variableValue);
184
+ // string — only string allowed
185
+ if (expectedType === "string") {
36
186
  if (typeof variableValue !== "string") {
37
187
  ctx.addIssue({
38
188
  code: zod_1.z.ZodIssueCode.custom,
39
- message: `Invalid value for variable "${variableSchema.key}" (${variableSchema.type}): ${variableValue}`,
189
+ message: `Variable "${label}" (type string) must be a string; got ${gotType}.`,
40
190
  path,
41
191
  });
192
+ return;
42
193
  }
43
194
  if (projectConfig.maxVariableStringLength &&
44
195
  variableValue.length > projectConfig.maxVariableStringLength) {
45
196
  ctx.addIssue({
46
197
  code: zod_1.z.ZodIssueCode.custom,
47
- message: `Variable "${variableSchema.key}" value is too long (${variableValue.length} characters), max length is ${projectConfig.maxVariableStringLength}`,
198
+ message: `Variable "${label}" value is too long (${variableValue.length} characters), max length is ${projectConfig.maxVariableStringLength}`,
48
199
  path,
49
200
  });
50
201
  }
51
202
  return;
52
203
  }
53
- // integer, double
54
- if (["integer", "double"].indexOf(variableSchema.type) > -1) {
204
+ // integer — only integer number allowed (no NaN, no Infinity, no float)
205
+ if (expectedType === "integer") {
55
206
  if (typeof variableValue !== "number") {
56
207
  ctx.addIssue({
57
208
  code: zod_1.z.ZodIssueCode.custom,
58
- message: `Invalid value for variable "${variableSchema.key}" (${variableSchema.type}): ${variableValue}`,
209
+ message: `Variable "${label}" (type integer) must be a number; got ${gotType}.`,
210
+ path,
211
+ });
212
+ return;
213
+ }
214
+ if (!Number.isFinite(variableValue)) {
215
+ ctx.addIssue({
216
+ code: zod_1.z.ZodIssueCode.custom,
217
+ message: `Variable "${label}" (type integer) must be a finite number; got ${variableValue}.`,
218
+ path,
219
+ });
220
+ return;
221
+ }
222
+ if (!Number.isInteger(variableValue)) {
223
+ ctx.addIssue({
224
+ code: zod_1.z.ZodIssueCode.custom,
225
+ message: `Variable "${label}" (type integer) must be an integer; got ${variableValue}.`,
59
226
  path,
60
227
  });
61
228
  }
62
229
  return;
63
230
  }
64
- // boolean
65
- if (variableSchema.type === "boolean") {
66
- if (typeof variableValue !== "boolean") {
231
+ // double — only finite number allowed
232
+ if (expectedType === "double") {
233
+ if (typeof variableValue !== "number") {
67
234
  ctx.addIssue({
68
235
  code: zod_1.z.ZodIssueCode.custom,
69
- message: `Invalid value for variable "${variableSchema.key}" (${variableSchema.type}): ${variableValue}`,
236
+ message: `Variable "${label}" (type double) must be a number; got ${gotType}.`,
237
+ path,
238
+ });
239
+ return;
240
+ }
241
+ if (!Number.isFinite(variableValue)) {
242
+ ctx.addIssue({
243
+ code: zod_1.z.ZodIssueCode.custom,
244
+ message: `Variable "${label}" (type double) must be a finite number; got ${variableValue}.`,
70
245
  path,
71
246
  });
72
247
  }
73
248
  return;
74
249
  }
75
- // array
76
- if (variableSchema.type === "array") {
77
- if (!Array.isArray(variableValue) || !isArrayOfStrings(variableValue)) {
250
+ // boolean — only boolean allowed
251
+ if (expectedType === "boolean") {
252
+ if (typeof variableValue !== "boolean") {
78
253
  ctx.addIssue({
79
254
  code: zod_1.z.ZodIssueCode.custom,
80
- message: `Invalid value for variable "${variableSchema.key}" (${variableSchema.type}): \n\n${variableValue}\n\n`,
255
+ message: `Variable "${label}" (type boolean) must be a boolean; got ${gotType}.`,
81
256
  path,
82
257
  });
83
258
  }
84
- if (projectConfig.maxVariableArrayStringifiedLength) {
85
- const stringified = JSON.stringify(variableValue);
86
- if (stringified.length > projectConfig.maxVariableArrayStringifiedLength) {
87
- ctx.addIssue({
88
- code: zod_1.z.ZodIssueCode.custom,
89
- message: `Variable "${variableSchema.key}" array is too long (${stringified.length} characters), max length is ${projectConfig.maxVariableArrayStringifiedLength}`,
90
- path,
91
- });
92
- }
93
- }
94
259
  return;
95
260
  }
96
- // object
97
- if (variableSchema.type === "object") {
98
- if (typeof variableValue !== "object" || !isFlatObject(variableValue)) {
261
+ // array — only array allowed; without items schema = array of strings
262
+ if (expectedType === "array") {
263
+ if (!Array.isArray(variableValue)) {
99
264
  ctx.addIssue({
100
265
  code: zod_1.z.ZodIssueCode.custom,
101
- message: `Invalid value for variable "${variableSchema.key}" (${variableSchema.type}): \n\n${variableValue}\n\n`,
266
+ message: `Variable "${label}" (type array) must be an array; got ${gotType}.`,
102
267
  path,
103
268
  });
269
+ return;
104
270
  }
105
- if (projectConfig.maxVariableObjectStringifiedLength) {
106
- const stringified = JSON.stringify(variableValue);
107
- if (stringified.length > projectConfig.maxVariableObjectStringifiedLength) {
108
- ctx.addIssue({
109
- code: zod_1.z.ZodIssueCode.custom,
110
- message: `Variable "${variableSchema.key}" object is too long (${stringified.length} characters), max length is ${projectConfig.maxVariableObjectStringifiedLength}`,
111
- path,
112
- });
113
- }
271
+ refineVariableValueArray(projectConfig, variableSchema, variableValue, path, ctx, variableKey);
272
+ return;
273
+ }
274
+ // object — only plain object allowed (no null, no array)
275
+ if (expectedType === "object") {
276
+ if (typeof variableValue !== "object" ||
277
+ variableValue === null ||
278
+ Array.isArray(variableValue)) {
279
+ ctx.addIssue({
280
+ code: zod_1.z.ZodIssueCode.custom,
281
+ message: `Variable "${label}" (type object) must be a plain object; got ${gotType}.`,
282
+ path,
283
+ });
284
+ return;
114
285
  }
286
+ refineVariableValueObject(projectConfig, variableSchema, variableValue, path, ctx, variableKey);
115
287
  return;
116
288
  }
117
- // json
118
- if (variableSchema.type === "json") {
289
+ // json — only string containing valid JSON allowed
290
+ if (expectedType === "json") {
291
+ if (typeof variableValue !== "string") {
292
+ ctx.addIssue({
293
+ code: zod_1.z.ZodIssueCode.custom,
294
+ message: `Variable "${label}" (type json) must be a string (JSON string); got ${gotType}.`,
295
+ path,
296
+ });
297
+ return;
298
+ }
119
299
  try {
120
300
  JSON.parse(variableValue);
121
301
  if (projectConfig.maxVariableJSONStringifiedLength) {
122
- const stringified = variableValue;
123
- if (stringified.length > projectConfig.maxVariableJSONStringifiedLength) {
302
+ if (variableValue.length > projectConfig.maxVariableJSONStringifiedLength) {
124
303
  ctx.addIssue({
125
304
  code: zod_1.z.ZodIssueCode.custom,
126
- message: `Variable "${variableSchema.key}" JSON is too long (${stringified.length} characters), max length is ${projectConfig.maxVariableJSONStringifiedLength}`,
305
+ message: `Variable "${label}" JSON is too long (${variableValue.length} characters), max length is ${projectConfig.maxVariableJSONStringifiedLength}`,
127
306
  path,
128
307
  });
129
308
  }
@@ -133,12 +312,18 @@ function superRefineVariableValue(projectConfig, variableSchema, variableValue,
133
312
  catch (e) {
134
313
  ctx.addIssue({
135
314
  code: zod_1.z.ZodIssueCode.custom,
136
- message: `Invalid value for variable "${variableSchema.key}" (${variableSchema.type}): \n\n${variableValue}\n\n`,
315
+ message: `Variable "${label}" (type json) must be a valid JSON string; parse failed.`,
137
316
  path,
138
317
  });
139
318
  }
140
319
  return;
141
320
  }
321
+ // Unknown variable type — schema is invalid or unsupported
322
+ ctx.addIssue({
323
+ code: zod_1.z.ZodIssueCode.custom,
324
+ message: `Variable "${label}" has unknown or unsupported type "${String(expectedType)}" in variablesSchema.`,
325
+ path,
326
+ });
142
327
  }
143
328
  function refineForce({ ctx, parsedFeature, // eslint-disable-line
144
329
  variableSchemaByKey, variationValues, force, pathPrefix, projectConfig, }) {
@@ -156,7 +341,7 @@ variableSchemaByKey, variationValues, force, pathPrefix, projectConfig, }) {
156
341
  // force[n].variables[key]
157
342
  if (f.variables) {
158
343
  Object.keys(f.variables).forEach((variableKey) => {
159
- superRefineVariableValue(projectConfig, variableSchemaByKey[variableKey], f.variables[variableKey], pathPrefix.concat([fN, "variables", variableKey]), ctx);
344
+ superRefineVariableValue(projectConfig, variableSchemaByKey[variableKey], f.variables[variableKey], pathPrefix.concat([fN, "variables", variableKey]), ctx, variableKey);
160
345
  });
161
346
  }
162
347
  });
@@ -166,7 +351,7 @@ function refineRules({ ctx, parsedFeature, variableSchemaByKey, variationValues,
166
351
  // rules[n].variables[key]
167
352
  if (rule.variables) {
168
353
  Object.keys(rule.variables).forEach((variableKey) => {
169
- superRefineVariableValue(projectConfig, variableSchemaByKey[variableKey], rule.variables[variableKey], pathPrefix.concat([ruleN, "variables", variableKey]), ctx);
354
+ superRefineVariableValue(projectConfig, variableSchemaByKey[variableKey], rule.variables[variableKey], pathPrefix.concat([ruleN, "variables", variableKey]), ctx, variableKey);
170
355
  });
171
356
  }
172
357
  // rules[n].variationWeights
@@ -222,18 +407,9 @@ function refineRules({ ctx, parsedFeature, variableSchemaByKey, variationValues,
222
407
  });
223
408
  }
224
409
  function getFeatureZodSchema(projectConfig, conditionsZodSchema, availableAttributeKeys, availableSegmentKeys, availableFeatureKeys) {
410
+ const propertyZodSchema = (0, propertySchema_1.getPropertyZodSchema)();
411
+ const variableValueZodSchema = propertySchema_1.valueZodSchema;
225
412
  const variationValueZodSchema = zod_1.z.string().min(1);
226
- const variableValueZodSchema = zod_1.z.union([
227
- zod_1.z.string(),
228
- zod_1.z.number(),
229
- zod_1.z.boolean(),
230
- zod_1.z.array(zod_1.z.string()),
231
- zod_1.z.record(zod_1.z.unknown()).refine((value) => {
232
- return isFlatObject(value);
233
- }, {
234
- message: "object is not flat",
235
- }),
236
- ]);
237
413
  const plainGroupSegment = zod_1.z.string().refine((value) => value === "*" || availableSegmentKeys.includes(value), (value) => ({
238
414
  message: `Unknown segment key "${value}"`,
239
415
  }));
@@ -358,13 +534,23 @@ function getFeatureZodSchema(projectConfig, conditionsZodSchema, availableAttrib
358
534
  .record(zod_1.z
359
535
  .object({
360
536
  deprecated: zod_1.z.boolean().optional(),
361
- type: zod_1.z.enum(["string", "integer", "boolean", "double", "array", "object", "json"]),
537
+ type: zod_1.z.union([zod_1.z.literal("json"), propertySchema_1.propertyTypeEnum]),
538
+ // array: when omitted, treated as array of strings
539
+ items: propertyZodSchema.optional(),
540
+ // object: when omitted, treated as flat object (primitive values only)
541
+ properties: zod_1.z.record(propertyZodSchema).optional(),
542
+ // object: optional list of required property names
543
+ required: zod_1.z.array(zod_1.z.string()).optional(),
362
544
  description: zod_1.z.string().optional(),
363
545
  defaultValue: variableValueZodSchema,
364
- useDefaultWhenDisabled: zod_1.z.boolean().optional(),
365
546
  disabledValue: variableValueZodSchema.optional(),
547
+ useDefaultWhenDisabled: zod_1.z.boolean().optional(),
366
548
  })
367
- .strict())
549
+ .strict()
550
+ .superRefine((variableSchema, ctx) => {
551
+ // Validate required ⊆ properties at this level and in all nested object schemas
552
+ refineRequiredKeysInSchema(variableSchema, [], ctx);
553
+ }))
368
554
  .optional(),
369
555
  disabledVariationValue: variationValueZodSchema.optional(),
370
556
  variations: zod_1.z
@@ -453,9 +639,11 @@ function getFeatureZodSchema(projectConfig, conditionsZodSchema, availableAttrib
453
639
  });
454
640
  }
455
641
  // defaultValue
456
- superRefineVariableValue(projectConfig, variableSchema, variableSchema.defaultValue, ["variablesSchema", variableKey, "defaultValue"], ctx);
457
- // disabledValue
458
- superRefineVariableValue(projectConfig, variableSchema, variableSchema.defaultValue, ["variablesSchema", variableKey, "disabledValue"], ctx);
642
+ superRefineVariableValue(projectConfig, variableSchema, variableSchema.defaultValue, ["variablesSchema", variableKey, "defaultValue"], ctx, variableKey);
643
+ // disabledValue (only when present)
644
+ if (variableSchema.disabledValue !== undefined) {
645
+ superRefineVariableValue(projectConfig, variableSchema, variableSchema.disabledValue, ["variablesSchema", variableKey, "disabledValue"], ctx, variableKey);
646
+ }
459
647
  });
460
648
  // variations
461
649
  if (value.variations) {
@@ -466,7 +654,7 @@ function getFeatureZodSchema(projectConfig, conditionsZodSchema, availableAttrib
466
654
  // variations[n].variables[key]
467
655
  for (const variableKey of Object.keys(variation.variables)) {
468
656
  const variableValue = variation.variables[variableKey];
469
- superRefineVariableValue(projectConfig, variableSchemaByKey[variableKey], variableValue, ["variations", variationN, "variables", variableKey], ctx);
657
+ superRefineVariableValue(projectConfig, variableSchemaByKey[variableKey], variableValue, ["variations", variationN, "variables", variableKey], ctx, variableKey);
470
658
  // variations[n].variableOverrides[n].value
471
659
  if (variation.variableOverrides) {
472
660
  for (const variableKey of Object.keys(variation.variableOverrides)) {
@@ -480,7 +668,7 @@ function getFeatureZodSchema(projectConfig, conditionsZodSchema, availableAttrib
480
668
  variableKey,
481
669
  overrideN,
482
670
  "value",
483
- ], ctx);
671
+ ], ctx, variableKey);
484
672
  });
485
673
  }
486
674
  }
@@ -1 +1 @@
1
- {"version":3,"file":"featureSchema.js","sourceRoot":"","sources":["../../src/linter/featureSchema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"featureSchema.js","sourceRoot":"","sources":["../../src/linter/featureSchema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { PropertySchema, Value } from "@featurevisor/types";
2
+ import { z } from "zod";
3
+ export declare const valueZodSchema: z.ZodType<Value>;
4
+ export declare const propertyTypeEnum: z.ZodEnum<["boolean", "string", "integer", "double", "object", "array"]>;
5
+ export declare function getPropertyZodSchema(): z.ZodType<PropertySchema, z.ZodTypeDef, PropertySchema>;
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.propertyTypeEnum = exports.valueZodSchema = void 0;
4
+ exports.getPropertyZodSchema = getPropertyZodSchema;
5
+ const zod_1 = require("zod");
6
+ // Recursive schema for Value: boolean | string | number | ObjectValue | Value[]
7
+ exports.valueZodSchema = zod_1.z.lazy(() => zod_1.z.union([
8
+ zod_1.z.boolean(),
9
+ zod_1.z.string(),
10
+ zod_1.z.number(),
11
+ // | Date // @TODO: support in future
12
+ zod_1.z.record(zod_1.z.string(), exports.valueZodSchema),
13
+ zod_1.z.array(exports.valueZodSchema),
14
+ ]));
15
+ // @TODO: support "date" in future
16
+ // @TODO: consider "semver" in future
17
+ // @TODO: consider "url" in future
18
+ exports.propertyTypeEnum = zod_1.z.enum([
19
+ "boolean",
20
+ "string",
21
+ "integer",
22
+ "double",
23
+ "object",
24
+ "array",
25
+ ]);
26
+ function getPropertyZodSchema() {
27
+ const propertyZodSchema = zod_1.z.lazy(() => zod_1.z
28
+ .object({
29
+ description: zod_1.z.string().optional(),
30
+ type: exports.propertyTypeEnum.optional(),
31
+ // enum?: Value[]; const?: Value;
32
+ // Numeric: maximum?, minimum?
33
+ // String: maxLength?, minLength?, pattern?
34
+ items: propertyZodSchema.optional(),
35
+ // maxItems?, minItems?, uniqueItems?
36
+ required: zod_1.z.array(zod_1.z.string()).optional(),
37
+ properties: zod_1.z.record(zod_1.z.string(), propertyZodSchema).optional(),
38
+ // Annotations: default?: Value; examples?: Value[];
39
+ })
40
+ .strict());
41
+ return propertyZodSchema;
42
+ }
43
+ //# sourceMappingURL=propertySchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"propertySchema.js","sourceRoot":"","sources":["../../src/linter/propertySchema.ts"],"names":[],"mappings":";;;AA2BA,oDAmBC;AA7CD,6BAAwB;AAExB,gFAAgF;AACnE,QAAA,cAAc,GAAqB,OAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAC1D,OAAC,CAAC,KAAK,CAAC;IACN,OAAC,CAAC,OAAO,EAAE;IACX,OAAC,CAAC,MAAM,EAAE;IACV,OAAC,CAAC,MAAM,EAAE;IACV,qCAAqC;IACrC,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,MAAM,EAAE,EAAE,sBAAc,CAAC;IACpC,OAAC,CAAC,KAAK,CAAC,sBAAc,CAAC;CACxB,CAAC,CACH,CAAC;AAEF,kCAAkC;AAClC,qCAAqC;AACrC,kCAAkC;AACrB,QAAA,gBAAgB,GAAG,OAAC,CAAC,IAAI,CAAC;IACrC,SAAS;IACT,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,QAAQ;IACR,OAAO;CACR,CAAC,CAAC;AAEH,SAAgB,oBAAoB;IAClC,MAAM,iBAAiB,GAA8B,OAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAC/D,OAAC;SACE,MAAM,CAAC;QACN,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAClC,IAAI,EAAE,wBAAgB,CAAC,QAAQ,EAAE;QACjC,iCAAiC;QACjC,8BAA8B;QAC9B,2CAA2C;QAC3C,KAAK,EAAE,iBAAiB,CAAC,QAAQ,EAAE;QACnC,qCAAqC;QACrC,QAAQ,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;QACxC,UAAU,EAAE,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,MAAM,EAAE,EAAE,iBAAiB,CAAC,CAAC,QAAQ,EAAE;QAC9D,oDAAoD;KACrD,CAAC;SACD,MAAM,EAAE,CACZ,CAAC;IAEF,OAAO,iBAAiB,CAAC;AAC3B,CAAC"}