@featurevisor/core 2.13.0 → 2.14.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 (80) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/coverage/clover.xml +906 -557
  3. package/coverage/coverage-final.json +11 -8
  4. package/coverage/lcov-report/builder/allocator.ts.html +1 -1
  5. package/coverage/lcov-report/builder/buildScopedConditions.ts.html +1 -1
  6. package/coverage/lcov-report/builder/buildScopedDatafile.ts.html +1 -1
  7. package/coverage/lcov-report/builder/buildScopedSegments.ts.html +1 -1
  8. package/coverage/lcov-report/builder/index.html +38 -8
  9. package/coverage/lcov-report/builder/mutateVariables.ts.html +400 -0
  10. package/coverage/lcov-report/builder/mutator.ts.html +796 -0
  11. package/coverage/lcov-report/builder/revision.ts.html +1 -1
  12. package/coverage/lcov-report/builder/traffic.ts.html +1 -1
  13. package/coverage/lcov-report/config/index.html +1 -1
  14. package/coverage/lcov-report/config/projectConfig.ts.html +1 -1
  15. package/coverage/lcov-report/datasource/adapter.ts.html +1 -1
  16. package/coverage/lcov-report/datasource/datasource.ts.html +4 -4
  17. package/coverage/lcov-report/datasource/filesystemAdapter.ts.html +23 -23
  18. package/coverage/lcov-report/datasource/index.html +1 -1
  19. package/coverage/lcov-report/datasource/index.ts.html +1 -1
  20. package/coverage/lcov-report/index.html +28 -28
  21. package/coverage/lcov-report/linter/attributeSchema.ts.html +1 -1
  22. package/coverage/lcov-report/linter/checkCircularDependency.ts.html +1 -1
  23. package/coverage/lcov-report/linter/checkPercentageExceedingSlot.ts.html +1 -1
  24. package/coverage/lcov-report/linter/conditionSchema.ts.html +7 -7
  25. package/coverage/lcov-report/linter/featureSchema.ts.html +789 -318
  26. package/coverage/lcov-report/linter/groupSchema.ts.html +1 -1
  27. package/coverage/lcov-report/linter/index.html +34 -19
  28. package/coverage/lcov-report/linter/lintProject.ts.html +25 -25
  29. package/coverage/lcov-report/linter/mutationNotation.ts.html +1309 -0
  30. package/coverage/lcov-report/linter/printError.ts.html +1 -1
  31. package/coverage/lcov-report/linter/schema.ts.html +69 -69
  32. package/coverage/lcov-report/linter/segmentSchema.ts.html +1 -1
  33. package/coverage/lcov-report/linter/testSchema.ts.html +5 -5
  34. package/coverage/lcov-report/list/index.html +1 -1
  35. package/coverage/lcov-report/list/matrix.ts.html +1 -1
  36. package/coverage/lcov-report/parsers/index.html +1 -1
  37. package/coverage/lcov-report/parsers/index.ts.html +1 -1
  38. package/coverage/lcov-report/parsers/json.ts.html +1 -1
  39. package/coverage/lcov-report/parsers/yml.ts.html +2 -2
  40. package/coverage/lcov-report/tester/cliFormat.ts.html +1 -1
  41. package/coverage/lcov-report/tester/helpers.ts.html +1 -1
  42. package/coverage/lcov-report/tester/index.html +1 -1
  43. package/coverage/lcov-report/utils/git.ts.html +1 -1
  44. package/coverage/lcov-report/utils/index.html +1 -1
  45. package/coverage/lcov.info +1839 -1120
  46. package/lib/builder/buildDatafile.js +8 -3
  47. package/lib/builder/buildDatafile.js.map +1 -1
  48. package/lib/builder/mutateVariables.d.ts +14 -0
  49. package/lib/builder/mutateVariables.js +90 -0
  50. package/lib/builder/mutateVariables.js.map +1 -0
  51. package/lib/builder/mutateVariables.spec.d.ts +1 -0
  52. package/lib/builder/mutateVariables.spec.js +1045 -0
  53. package/lib/builder/mutateVariables.spec.js.map +1 -0
  54. package/lib/builder/mutator.d.ts +20 -0
  55. package/lib/builder/mutator.js +223 -0
  56. package/lib/builder/mutator.js.map +1 -0
  57. package/lib/builder/mutator.spec.d.ts +1 -0
  58. package/lib/builder/mutator.spec.js +368 -0
  59. package/lib/builder/mutator.spec.js.map +1 -0
  60. package/lib/linter/featureSchema.d.ts +7 -7
  61. package/lib/linter/featureSchema.js +138 -62
  62. package/lib/linter/featureSchema.js.map +1 -1
  63. package/lib/linter/featureSchema.spec.js +150 -0
  64. package/lib/linter/featureSchema.spec.js.map +1 -1
  65. package/lib/linter/mutationNotation.d.ts +47 -0
  66. package/lib/linter/mutationNotation.js +381 -0
  67. package/lib/linter/mutationNotation.js.map +1 -0
  68. package/lib/linter/mutationNotation.spec.d.ts +1 -0
  69. package/lib/linter/mutationNotation.spec.js +549 -0
  70. package/lib/linter/mutationNotation.spec.js.map +1 -0
  71. package/package.json +2 -2
  72. package/src/builder/buildDatafile.ts +29 -3
  73. package/src/builder/mutateVariables.spec.ts +1134 -0
  74. package/src/builder/mutateVariables.ts +105 -0
  75. package/src/builder/mutator.spec.ts +413 -0
  76. package/src/builder/mutator.ts +237 -0
  77. package/src/linter/featureSchema.spec.ts +182 -0
  78. package/src/linter/featureSchema.ts +254 -97
  79. package/src/linter/mutationNotation.spec.ts +642 -0
  80. package/src/linter/mutationNotation.ts +408 -0
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getFeatureZodSchema = getFeatureZodSchema;
4
4
  const zod_1 = require("zod");
5
+ const mutationNotation_1 = require("./mutationNotation");
5
6
  const schema_1 = require("./schema");
6
7
  const tagRegex = /^[a-z0-9-]+$/;
7
8
  function isArrayOfStrings(value) {
@@ -169,14 +170,23 @@ function valueDeepEqual(a, b) {
169
170
  * Recursively validates that every `required` array (at this level and in nested
170
171
  * object/array schemas) only contains keys that exist in the same level's `properties`.
171
172
  * Adds Zod issues with the correct path for invalid required field names.
173
+ * When schemasByKey is provided, resolves schema references (schema: key) so that
174
+ * referenced and nested schemas are validated too.
172
175
  */
173
- function refineRequiredKeysInSchema(schema, pathPrefix, ctx) {
176
+ function refineRequiredKeysInSchema(schema, pathPrefix, ctx, schemasByKey) {
174
177
  if (!schema || typeof schema !== "object")
175
178
  return;
176
- const effectiveType = schema.type;
177
- const properties = schema.properties;
178
- const required = schema.required;
179
- const items = schema.items;
179
+ // Resolve schema reference so we validate the referenced schema (and can recurse into it)
180
+ let current = schema;
181
+ if (schema.schema && schemasByKey?.[schema.schema]) {
182
+ current = schemasByKey[schema.schema];
183
+ refineRequiredKeysInSchema(current, pathPrefix, ctx, schemasByKey);
184
+ return;
185
+ }
186
+ const effectiveType = current.type;
187
+ const properties = current.properties;
188
+ const required = current.required;
189
+ const items = current.items;
180
190
  if (effectiveType === "object" &&
181
191
  Array.isArray(required) &&
182
192
  required.length > 0 &&
@@ -197,18 +207,18 @@ function refineRequiredKeysInSchema(schema, pathPrefix, ctx) {
197
207
  for (const key of Object.keys(properties)) {
198
208
  const nested = properties[key];
199
209
  if (nested && typeof nested === "object") {
200
- refineRequiredKeysInSchema(nested, [...pathPrefix, "properties", key], ctx);
210
+ refineRequiredKeysInSchema(nested, [...pathPrefix, "properties", key], ctx, schemasByKey);
201
211
  }
202
212
  }
203
213
  }
204
214
  if (items && typeof items === "object" && !Array.isArray(items)) {
205
- refineRequiredKeysInSchema(items, [...pathPrefix, "items"], ctx);
215
+ refineRequiredKeysInSchema(items, [...pathPrefix, "items"], ctx, schemasByKey);
206
216
  }
207
- const oneOf = schema.oneOf;
217
+ const oneOf = current.oneOf;
208
218
  if (oneOf && Array.isArray(oneOf)) {
209
219
  oneOf.forEach((branch, i) => {
210
220
  if (branch && typeof branch === "object") {
211
- refineRequiredKeysInSchema(branch, [...pathPrefix, "oneOf", i], ctx);
221
+ refineRequiredKeysInSchema(branch, [...pathPrefix, "oneOf", i], ctx, schemasByKey);
212
222
  }
213
223
  });
214
224
  }
@@ -631,6 +641,37 @@ function superRefineVariableValue(projectConfig, variableSchema, variableValue,
631
641
  path,
632
642
  });
633
643
  }
644
+ /**
645
+ * Validate a single variable entry (key + value) in variables map.
646
+ * Key may be a root variable name or mutation notation (e.g. "config.width", "items[0].name").
647
+ */
648
+ function refineVariableEntry(projectConfig, variableSchemaByKey, variableKey, variableValue, path, ctx, schemasByKey) {
649
+ if ((0, mutationNotation_1.isMutationKey)(variableKey)) {
650
+ const validation = (0, mutationNotation_1.validateMutationKey)(variableKey, variableSchemaByKey, schemasByKey);
651
+ if (!validation.valid && validation.error) {
652
+ ctx.addIssue({
653
+ code: zod_1.z.ZodIssueCode.custom,
654
+ message: validation.error,
655
+ path,
656
+ });
657
+ return;
658
+ }
659
+ if (validation.valueSchema) {
660
+ superRefineVariableValue(projectConfig, validation.valueSchema, variableValue, path, ctx, variableKey, schemasByKey);
661
+ }
662
+ return;
663
+ }
664
+ const variableSchema = variableSchemaByKey[variableKey];
665
+ if (!variableSchema) {
666
+ ctx.addIssue({
667
+ code: zod_1.z.ZodIssueCode.custom,
668
+ message: `Variable "${variableKey}" is not defined in \`variablesSchema\`.`,
669
+ path,
670
+ });
671
+ return;
672
+ }
673
+ superRefineVariableValue(projectConfig, variableSchema, variableValue, path, ctx, variableKey, schemasByKey);
674
+ }
634
675
  function refineForce({ ctx, parsedFeature, // eslint-disable-line
635
676
  variableSchemaByKey, variationValues, force, pathPrefix, projectConfig, schemasByKey, }) {
636
677
  force.forEach((f, fN) => {
@@ -647,17 +688,7 @@ variableSchemaByKey, variationValues, force, pathPrefix, projectConfig, schemasB
647
688
  // force[n].variables[key]
648
689
  if (f.variables) {
649
690
  Object.keys(f.variables).forEach((variableKey) => {
650
- const variableSchema = variableSchemaByKey[variableKey];
651
- if (!variableSchema) {
652
- ctx.addIssue({
653
- code: zod_1.z.ZodIssueCode.custom,
654
- message: `Variable "${variableKey}" is not defined in \`variablesSchema\`.`,
655
- path: pathPrefix.concat([fN, "variables", variableKey]),
656
- });
657
- }
658
- else {
659
- superRefineVariableValue(projectConfig, variableSchema, f.variables[variableKey], pathPrefix.concat([fN, "variables", variableKey]), ctx, variableKey, schemasByKey);
660
- }
691
+ refineVariableEntry(projectConfig, variableSchemaByKey, variableKey, f.variables[variableKey], pathPrefix.concat([fN, "variables", variableKey]), ctx, schemasByKey);
661
692
  });
662
693
  }
663
694
  });
@@ -667,17 +698,7 @@ function refineRules({ ctx, parsedFeature, variableSchemaByKey, variationValues,
667
698
  // rules[n].variables[key]
668
699
  if (rule.variables) {
669
700
  Object.keys(rule.variables).forEach((variableKey) => {
670
- const variableSchema = variableSchemaByKey[variableKey];
671
- if (!variableSchema) {
672
- ctx.addIssue({
673
- code: zod_1.z.ZodIssueCode.custom,
674
- message: `Variable "${variableKey}" is not defined in \`variablesSchema\`.`,
675
- path: pathPrefix.concat([ruleN, "variables", variableKey]),
676
- });
677
- }
678
- else {
679
- superRefineVariableValue(projectConfig, variableSchema, rule.variables[variableKey], pathPrefix.concat([ruleN, "variables", variableKey]), ctx, variableKey, schemasByKey);
680
- }
701
+ refineVariableEntry(projectConfig, variableSchemaByKey, variableKey, rule.variables[variableKey], pathPrefix.concat([ruleN, "variables", variableKey]), ctx, schemasByKey);
681
702
  });
682
703
  }
683
704
  // rules[n].variationWeights
@@ -735,6 +756,7 @@ function refineRules({ ctx, parsedFeature, variableSchemaByKey, variationValues,
735
756
  function getFeatureZodSchema(projectConfig, conditionsZodSchema, availableAttributeKeys, availableSegmentKeys, availableFeatureKeys, availableSchemaKeys = [], schemasByKey = {}) {
736
757
  const schemaZodSchema = (0, schema_1.getSchemaZodSchema)(availableSchemaKeys);
737
758
  const variableValueZodSchema = schema_1.valueZodSchema;
759
+ const variableValueOrNullZodSchema = zod_1.z.union([schema_1.valueZodSchema, zod_1.z.null()]);
738
760
  const variationValueZodSchema = zod_1.z.string().min(1);
739
761
  const plainGroupSegment = zod_1.z.string().refine((value) => value === "*" || availableSegmentKeys.includes(value), (value) => ({
740
762
  message: `Unknown segment key "${value}"`,
@@ -770,7 +792,7 @@ function getFeatureZodSchema(projectConfig, conditionsZodSchema, availableAttrib
770
792
  percentage: zod_1.z.number().min(0).max(100),
771
793
  enabled: zod_1.z.boolean().optional(),
772
794
  variation: variationValueZodSchema.optional(),
773
- variables: zod_1.z.record(variableValueZodSchema).optional(),
795
+ variables: zod_1.z.record(variableValueOrNullZodSchema).optional(),
774
796
  variationWeights: zod_1.z.record(zod_1.z.number().min(0).max(100)).optional(),
775
797
  })
776
798
  .strict())
@@ -802,7 +824,7 @@ function getFeatureZodSchema(projectConfig, conditionsZodSchema, availableAttrib
802
824
  segments: groupSegmentsZodSchema,
803
825
  enabled: zod_1.z.boolean().optional(),
804
826
  variation: variationValueZodSchema.optional(),
805
- variables: zod_1.z.record(variableValueZodSchema).optional(),
827
+ variables: zod_1.z.record(variableValueOrNullZodSchema).optional(),
806
828
  })
807
829
  .strict(),
808
830
  zod_1.z
@@ -810,7 +832,7 @@ function getFeatureZodSchema(projectConfig, conditionsZodSchema, availableAttrib
810
832
  conditions: conditionsZodSchema,
811
833
  enabled: zod_1.z.boolean().optional(),
812
834
  variation: variationValueZodSchema.optional(),
813
- variables: zod_1.z.record(variableValueZodSchema).optional(),
835
+ variables: zod_1.z.record(variableValueOrNullZodSchema).optional(),
814
836
  })
815
837
  .strict(),
816
838
  ]))
@@ -949,8 +971,8 @@ function getFeatureZodSchema(projectConfig, conditionsZodSchema, availableAttrib
949
971
  });
950
972
  return;
951
973
  }
952
- // Validate required ⊆ properties at this level and in all nested object schemas
953
- refineRequiredKeysInSchema(variableSchema, [], ctx);
974
+ // Validate required ⊆ properties at this level and in all nested object schemas (resolve refs when schemasByKey provided)
975
+ refineRequiredKeysInSchema(variableSchema, [], ctx, schemasByKey);
954
976
  }))
955
977
  .optional(),
956
978
  disabledVariationValue: variationValueZodSchema.optional(),
@@ -960,7 +982,7 @@ function getFeatureZodSchema(projectConfig, conditionsZodSchema, availableAttrib
960
982
  description: zod_1.z.string().optional(),
961
983
  value: variationValueZodSchema,
962
984
  weight: zod_1.z.number().min(0).max(100),
963
- variables: zod_1.z.record(variableValueZodSchema).optional(),
985
+ variables: zod_1.z.record(variableValueOrNullZodSchema).optional(),
964
986
  variableOverrides: zod_1.z
965
987
  .record(zod_1.z.array(zod_1.z.union([
966
988
  zod_1.z
@@ -1036,6 +1058,20 @@ function getFeatureZodSchema(projectConfig, conditionsZodSchema, availableAttrib
1036
1058
  const variableKeys = Object.keys(variableSchemaByKey);
1037
1059
  variableKeys.forEach((variableKey) => {
1038
1060
  const variableSchema = variableSchemaByKey[variableKey];
1061
+ // When variable references a schema by name, ensure it resolves and validate the referenced schema
1062
+ if ("schema" in variableSchema && variableSchema.schema) {
1063
+ const resolvedSchema = resolveVariableSchema(variableSchema, schemasByKey);
1064
+ if (!resolvedSchema) {
1065
+ ctx.addIssue({
1066
+ code: zod_1.z.ZodIssueCode.custom,
1067
+ message: `Schema "${variableSchema.schema}" could not be loaded for variable "${variableKey}".`,
1068
+ path: ["variablesSchema", variableKey],
1069
+ });
1070
+ }
1071
+ else {
1072
+ refineRequiredKeysInSchema(resolvedSchema, ["variablesSchema", variableKey], ctx, schemasByKey);
1073
+ }
1074
+ }
1039
1075
  // When type and enum are both present, all enum values must match the type
1040
1076
  const effectiveSchema = resolveVariableSchema(variableSchema, schemasByKey);
1041
1077
  if (effectiveSchema &&
@@ -1071,24 +1107,12 @@ function getFeatureZodSchema(projectConfig, conditionsZodSchema, availableAttrib
1071
1107
  // variations[n].variables[key]
1072
1108
  if (variation.variables) {
1073
1109
  for (const variableKey of Object.keys(variation.variables)) {
1074
- const variableValue = variation.variables[variableKey];
1075
- const variableSchema = variableSchemaByKey[variableKey];
1076
- if (!variableSchema) {
1077
- ctx.addIssue({
1078
- code: zod_1.z.ZodIssueCode.custom,
1079
- message: `Variable "${variableKey}" is not defined in \`variablesSchema\`.`,
1080
- path: ["variations", variationN, "variables", variableKey],
1081
- });
1082
- }
1083
- else {
1084
- superRefineVariableValue(projectConfig, variableSchema, variableValue, ["variations", variationN, "variables", variableKey], ctx, variableKey, schemasByKey);
1085
- }
1110
+ refineVariableEntry(projectConfig, variableSchemaByKey, variableKey, variation.variables[variableKey], ["variations", variationN, "variables", variableKey], ctx, schemasByKey);
1086
1111
  }
1087
1112
  }
1088
- // variations[n].variableOverrides[key][].value (validated even when variation.variables is absent)
1113
+ // variations[n].variableOverrides[key][].value (path-map or full value)
1089
1114
  if (variation.variableOverrides) {
1090
1115
  for (const variableKey of Object.keys(variation.variableOverrides)) {
1091
- const overrides = variation.variableOverrides[variableKey];
1092
1116
  const variableSchema = variableSchemaByKey[variableKey];
1093
1117
  if (!variableSchema) {
1094
1118
  ctx.addIssue({
@@ -1096,19 +1120,71 @@ function getFeatureZodSchema(projectConfig, conditionsZodSchema, availableAttrib
1096
1120
  message: `Variable "${variableKey}" is not defined in \`variablesSchema\`.`,
1097
1121
  path: ["variations", variationN, "variableOverrides", variableKey],
1098
1122
  });
1123
+ continue;
1099
1124
  }
1100
- else if (Array.isArray(overrides)) {
1101
- overrides.forEach((override, overrideN) => {
1102
- superRefineVariableValue(projectConfig, variableSchema, override.value, [
1103
- "variations",
1104
- variationN,
1105
- "variableOverrides",
1106
- variableKey,
1107
- overrideN,
1108
- "value",
1109
- ], ctx, variableKey, schemasByKey);
1110
- });
1125
+ // When variable references a schema by name, ensure it can be resolved
1126
+ const variableSchemaWithRef = variableSchema;
1127
+ if (variableSchemaWithRef.schema) {
1128
+ const resolvedVarSchema = resolveVariableSchema(variableSchema, schemasByKey);
1129
+ if (!resolvedVarSchema) {
1130
+ ctx.addIssue({
1131
+ code: zod_1.z.ZodIssueCode.custom,
1132
+ message: `Schema "${variableSchemaWithRef.schema}" could not be loaded for variable "${variableKey}".`,
1133
+ path: ["variations", variationN, "variableOverrides", variableKey],
1134
+ });
1135
+ continue;
1136
+ }
1111
1137
  }
1138
+ const overrides = variation.variableOverrides[variableKey];
1139
+ if (!Array.isArray(overrides))
1140
+ continue;
1141
+ overrides.forEach((override, overrideN) => {
1142
+ const overrideValue = override.value;
1143
+ const valuePath = [
1144
+ "variations",
1145
+ variationN,
1146
+ "variableOverrides",
1147
+ variableKey,
1148
+ overrideN,
1149
+ "value",
1150
+ ];
1151
+ if (typeof overrideValue === "object" &&
1152
+ overrideValue !== null &&
1153
+ !Array.isArray(overrideValue)) {
1154
+ const pathMap = overrideValue;
1155
+ for (const pathKey of Object.keys(pathMap)) {
1156
+ const pathSegments = (0, mutationNotation_1.parsePathMapKey)(pathKey);
1157
+ if (!pathSegments || pathSegments.length === 0) {
1158
+ ctx.addIssue({
1159
+ code: zod_1.z.ZodIssueCode.custom,
1160
+ message: `Invalid mutation path "${pathKey}" in variableOverride for "${variableKey}".`,
1161
+ path: [...valuePath, pathKey],
1162
+ });
1163
+ continue;
1164
+ }
1165
+ const atPathSchema = (0, mutationNotation_1.resolveSchemaAtPath)(variableSchema, pathSegments, schemasByKey);
1166
+ if (!atPathSchema) {
1167
+ const effectiveSchema = resolveVariableSchema(variableSchema, schemasByKey);
1168
+ const isFlatObject = effectiveSchema?.type === "object" &&
1169
+ (!effectiveSchema.properties ||
1170
+ Object.keys(effectiveSchema.properties).length === 0);
1171
+ if (isFlatObject) {
1172
+ continue;
1173
+ }
1174
+ ctx.addIssue({
1175
+ code: zod_1.z.ZodIssueCode.custom,
1176
+ message: `Path "${pathKey}" is invalid for variable "${variableKey}" (not in schema).`,
1177
+ path: [...valuePath, pathKey],
1178
+ });
1179
+ continue;
1180
+ }
1181
+ superRefineVariableValue(projectConfig, atPathSchema, pathMap[pathKey], [...valuePath, pathKey], ctx, pathKey, schemasByKey);
1182
+ }
1183
+ }
1184
+ else {
1185
+ superRefineVariableValue(projectConfig, variableSchema, overrideValue, valuePath, ctx, variableKey, schemasByKey);
1186
+ }
1187
+ });
1112
1188
  }
1113
1189
  }
1114
1190
  });
@@ -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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"}