@featurevisor/core 0.51.0 → 0.51.2

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 (110) hide show
  1. package/.eslintcache +1 -1
  2. package/CHANGELOG.md +16 -0
  3. package/coverage/clover.xml +8 -8
  4. package/coverage/coverage-final.json +4 -4
  5. package/coverage/lcov-report/index.html +3 -3
  6. package/coverage/lcov-report/lib/{allocator.js.html → builder/allocator.js.html} +10 -10
  7. package/coverage/lcov-report/lib/{index.html → builder/index.html} +10 -10
  8. package/coverage/lcov-report/lib/{traffic.js.html → builder/traffic.js.html} +10 -10
  9. package/coverage/lcov-report/src/{allocator.ts.html → builder/allocator.ts.html} +10 -10
  10. package/coverage/lcov-report/src/{index.html → builder/index.html} +10 -10
  11. package/coverage/lcov-report/src/{traffic.ts.html → builder/traffic.ts.html} +10 -10
  12. package/coverage/lcov.info +4 -4
  13. package/lib/builder/allocator.js.map +1 -0
  14. package/lib/builder/allocator.spec.js.map +1 -0
  15. package/lib/builder/buildDatafile.d.ts +11 -0
  16. package/lib/{builder.js → builder/buildDatafile.js} +5 -106
  17. package/lib/builder/buildDatafile.js.map +1 -0
  18. package/lib/builder/buildProject.d.ts +8 -0
  19. package/lib/builder/buildProject.js +63 -0
  20. package/lib/builder/buildProject.js.map +1 -0
  21. package/lib/builder/getFeatureRanges.d.ts +11 -0
  22. package/lib/builder/getFeatureRanges.js +50 -0
  23. package/lib/builder/getFeatureRanges.js.map +1 -0
  24. package/lib/builder/index.d.ts +2 -0
  25. package/lib/builder/index.js +19 -0
  26. package/lib/builder/index.js.map +1 -0
  27. package/lib/builder/traffic.js.map +1 -0
  28. package/lib/builder/traffic.spec.js.map +1 -0
  29. package/lib/datasource/index.d.ts +2 -0
  30. package/lib/datasource/index.js +19 -0
  31. package/lib/datasource/index.js.map +1 -0
  32. package/lib/generate-code/index.js +1 -1
  33. package/lib/generate-code/index.js.map +1 -1
  34. package/lib/generate-code/typescript.d.ts +1 -1
  35. package/lib/linter/attributeSchema.d.ts +2 -0
  36. package/lib/linter/attributeSchema.js +15 -0
  37. package/lib/linter/attributeSchema.js.map +1 -0
  38. package/lib/linter/checkCircularDependency.d.ts +3 -0
  39. package/lib/linter/checkCircularDependency.js +30 -0
  40. package/lib/linter/checkCircularDependency.js.map +1 -0
  41. package/lib/linter/conditionSchema.d.ts +3 -0
  42. package/lib/linter/conditionSchema.js +44 -0
  43. package/lib/linter/conditionSchema.js.map +1 -0
  44. package/lib/linter/featureSchema.d.ts +3 -0
  45. package/lib/linter/featureSchema.js +147 -0
  46. package/lib/linter/featureSchema.js.map +1 -0
  47. package/lib/linter/groupSchema.d.ts +4 -0
  48. package/lib/linter/groupSchema.js +51 -0
  49. package/lib/linter/groupSchema.js.map +1 -0
  50. package/lib/linter/index.d.ts +1 -0
  51. package/lib/linter/index.js +18 -0
  52. package/lib/linter/index.js.map +1 -0
  53. package/lib/linter/lintProject.d.ts +2 -0
  54. package/lib/linter/lintProject.js +241 -0
  55. package/lib/linter/lintProject.js.map +1 -0
  56. package/lib/linter/printJoiError.d.ts +2 -0
  57. package/lib/linter/printJoiError.js +14 -0
  58. package/lib/linter/printJoiError.js.map +1 -0
  59. package/lib/linter/segmentSchema.d.ts +3 -0
  60. package/lib/linter/segmentSchema.js +14 -0
  61. package/lib/linter/segmentSchema.js.map +1 -0
  62. package/lib/linter/testSchema.d.ts +3 -0
  63. package/lib/linter/testSchema.js +33 -0
  64. package/lib/linter/testSchema.js.map +1 -0
  65. package/lib/site.js +1 -1
  66. package/lib/site.js.map +1 -1
  67. package/lib/tester.js +1 -1
  68. package/lib/tester.js.map +1 -1
  69. package/package.json +2 -2
  70. package/src/{builder.ts → builder/buildDatafile.ts} +5 -148
  71. package/src/builder/buildProject.ts +95 -0
  72. package/src/builder/getFeatureRanges.ts +61 -0
  73. package/src/builder/index.ts +2 -0
  74. package/src/datasource/index.ts +2 -0
  75. package/src/generate-code/index.ts +1 -1
  76. package/src/generate-code/typescript.ts +1 -1
  77. package/src/linter/attributeSchema.ts +12 -0
  78. package/src/linter/checkCircularDependency.ts +45 -0
  79. package/src/linter/conditionSchema.ts +85 -0
  80. package/src/linter/featureSchema.ts +205 -0
  81. package/src/linter/groupSchema.ts +63 -0
  82. package/src/linter/index.ts +1 -0
  83. package/src/linter/lintProject.ts +179 -0
  84. package/src/linter/printJoiError.ts +11 -0
  85. package/src/linter/segmentSchema.ts +13 -0
  86. package/src/linter/testSchema.ts +43 -0
  87. package/src/site.ts +1 -1
  88. package/src/tester.ts +1 -1
  89. package/lib/allocator.js.map +0 -1
  90. package/lib/allocator.spec.js.map +0 -1
  91. package/lib/builder.d.ts +0 -26
  92. package/lib/builder.js.map +0 -1
  93. package/lib/linter.d.ts +0 -11
  94. package/lib/linter.js +0 -542
  95. package/lib/linter.js.map +0 -1
  96. package/lib/traffic.js.map +0 -1
  97. package/lib/traffic.spec.js.map +0 -1
  98. package/src/linter.ts +0 -627
  99. /package/lib/{allocator.d.ts → builder/allocator.d.ts} +0 -0
  100. /package/lib/{allocator.js → builder/allocator.js} +0 -0
  101. /package/lib/{allocator.spec.d.ts → builder/allocator.spec.d.ts} +0 -0
  102. /package/lib/{allocator.spec.js → builder/allocator.spec.js} +0 -0
  103. /package/lib/{traffic.d.ts → builder/traffic.d.ts} +0 -0
  104. /package/lib/{traffic.js → builder/traffic.js} +0 -0
  105. /package/lib/{traffic.spec.d.ts → builder/traffic.spec.d.ts} +0 -0
  106. /package/lib/{traffic.spec.js → builder/traffic.spec.js} +0 -0
  107. /package/src/{allocator.spec.ts → builder/allocator.spec.ts} +0 -0
  108. /package/src/{allocator.ts → builder/allocator.ts} +0 -0
  109. /package/src/{traffic.spec.ts → builder/traffic.spec.ts} +0 -0
  110. /package/src/{traffic.ts → builder/traffic.ts} +0 -0
@@ -0,0 +1,179 @@
1
+ // for use in node only
2
+ import * as fs from "fs";
3
+
4
+ import * as Joi from "joi";
5
+
6
+ import { Datasource } from "../datasource";
7
+ import { ProjectConfig } from "../config";
8
+
9
+ import { getAttributeJoiSchema } from "./attributeSchema";
10
+ import { getConditionsJoiSchema } from "./conditionSchema";
11
+ import { getSegmentJoiSchema } from "./segmentSchema";
12
+ import { getGroupJoiSchema } from "./groupSchema";
13
+ import { getFeatureJoiSchema } from "./featureSchema";
14
+ import { getTestsJoiSchema } from "./testSchema";
15
+
16
+ import { checkForCircularDependencyInRequired } from "./checkCircularDependency";
17
+ import { printJoiError } from "./printJoiError";
18
+
19
+ export async function lintProject(projectConfig: ProjectConfig): Promise<boolean> {
20
+ let hasError = false;
21
+ const datasource = new Datasource(projectConfig);
22
+
23
+ const availableAttributeKeys: string[] = [];
24
+ const availableSegmentKeys: string[] = [];
25
+ const availableFeatureKeys: string[] = [];
26
+
27
+ // lint attributes
28
+ const attributes = datasource.listAttributes();
29
+ console.log(`Linting ${attributes.length} attributes...\n`);
30
+
31
+ const attributeJoiSchema = getAttributeJoiSchema();
32
+
33
+ for (const key of attributes) {
34
+ const parsed = datasource.readAttribute(key);
35
+ availableAttributeKeys.push(key);
36
+
37
+ try {
38
+ await attributeJoiSchema.validateAsync(parsed);
39
+ } catch (e) {
40
+ console.log(" =>", key);
41
+
42
+ if (e instanceof Joi.ValidationError) {
43
+ printJoiError(e);
44
+ } else {
45
+ console.log(e);
46
+ }
47
+
48
+ hasError = true;
49
+ }
50
+ }
51
+
52
+ // lint segments
53
+ const segments = datasource.listSegments();
54
+ console.log(`\nLinting ${segments.length} segments...\n`);
55
+
56
+ const conditionsJoiSchema = getConditionsJoiSchema(projectConfig, availableAttributeKeys);
57
+ const segmentJoiSchema = getSegmentJoiSchema(projectConfig, conditionsJoiSchema);
58
+
59
+ for (const key of segments) {
60
+ const parsed = datasource.readSegment(key);
61
+ availableSegmentKeys.push(key);
62
+
63
+ try {
64
+ await segmentJoiSchema.validateAsync(parsed);
65
+ } catch (e) {
66
+ console.log(" =>", key);
67
+
68
+ if (e instanceof Joi.ValidationError) {
69
+ printJoiError(e);
70
+ } else {
71
+ console.log(e);
72
+ }
73
+
74
+ hasError = true;
75
+ }
76
+ }
77
+
78
+ // lint groups
79
+
80
+ if (fs.existsSync(projectConfig.groupsDirectoryPath)) {
81
+ const groups = datasource.listGroups();
82
+ console.log(`\nLinting ${groups.length} groups...\n`);
83
+
84
+ // @TODO: feature it slots can be from availableFeatureKeys only
85
+ const groupJoiSchema = getGroupJoiSchema(projectConfig, datasource, availableFeatureKeys);
86
+
87
+ for (const key of groups) {
88
+ const parsed = datasource.readGroup(key);
89
+
90
+ try {
91
+ await groupJoiSchema.validateAsync(parsed);
92
+ } catch (e) {
93
+ console.log(" =>", key);
94
+
95
+ if (e instanceof Joi.ValidationError) {
96
+ printJoiError(e);
97
+ } else {
98
+ console.log(e);
99
+ }
100
+
101
+ hasError = true;
102
+ }
103
+ }
104
+ }
105
+
106
+ // @TODO: feature cannot exist in multiple groups
107
+
108
+ // lint features
109
+ const features = datasource.listFeatures();
110
+ console.log(`\nLinting ${features.length} features...\n`);
111
+
112
+ const featureJoiSchema = getFeatureJoiSchema(
113
+ projectConfig,
114
+ conditionsJoiSchema,
115
+ availableSegmentKeys,
116
+ availableFeatureKeys,
117
+ );
118
+
119
+ for (const key of features) {
120
+ const parsed = datasource.readFeature(key);
121
+ availableFeatureKeys.push(key);
122
+
123
+ try {
124
+ await featureJoiSchema.validateAsync(parsed);
125
+ } catch (e) {
126
+ console.log(" =>", key);
127
+
128
+ if (e instanceof Joi.ValidationError) {
129
+ printJoiError(e);
130
+ } else {
131
+ console.log(e);
132
+ }
133
+
134
+ hasError = true;
135
+ }
136
+
137
+ if (parsed.required) {
138
+ try {
139
+ checkForCircularDependencyInRequired(datasource, key, parsed.required);
140
+ } catch (e) {
141
+ console.log(" =>", key);
142
+ console.log(" => Error:", e.message);
143
+ hasError = true;
144
+ }
145
+ }
146
+ }
147
+
148
+ // lint tests
149
+ if (fs.existsSync(projectConfig.testsDirectoryPath)) {
150
+ const tests = datasource.listTests();
151
+ console.log(`\nLinting ${tests.length} tests...\n`);
152
+
153
+ const testsJoiSchema = getTestsJoiSchema(
154
+ projectConfig,
155
+ availableFeatureKeys,
156
+ availableSegmentKeys,
157
+ );
158
+
159
+ for (const key of tests) {
160
+ const parsed = datasource.readTest(key);
161
+
162
+ try {
163
+ await testsJoiSchema.validateAsync(parsed);
164
+ } catch (e) {
165
+ console.log(" =>", key);
166
+
167
+ if (e instanceof Joi.ValidationError) {
168
+ printJoiError(e);
169
+ } else {
170
+ console.log(e);
171
+ }
172
+
173
+ hasError = true;
174
+ }
175
+ }
176
+ }
177
+
178
+ return hasError;
179
+ }
@@ -0,0 +1,11 @@
1
+ import * as Joi from "joi";
2
+
3
+ export function printJoiError(e: Joi.ValidationError) {
4
+ const { details } = e;
5
+
6
+ details.forEach((detail) => {
7
+ console.error(" => Error:", detail.message);
8
+ console.error(" => Path:", detail.path.join("."));
9
+ console.error(" => Value:", detail.context?.value);
10
+ });
11
+ }
@@ -0,0 +1,13 @@
1
+ import * as Joi from "joi";
2
+
3
+ import { ProjectConfig } from "../config";
4
+
5
+ export function getSegmentJoiSchema(projectConfig: ProjectConfig, conditionsJoiSchema) {
6
+ const segmentJoiSchema = Joi.object({
7
+ archived: Joi.boolean().optional(),
8
+ description: Joi.string().required(),
9
+ conditions: conditionsJoiSchema.required(),
10
+ });
11
+
12
+ return segmentJoiSchema;
13
+ }
@@ -0,0 +1,43 @@
1
+ import * as Joi from "joi";
2
+
3
+ import { ProjectConfig } from "../config";
4
+
5
+ export function getTestsJoiSchema(
6
+ projectConfig: ProjectConfig,
7
+ availableFeatureKeys: string[],
8
+ availableSegmentKeys: string[],
9
+ ) {
10
+ const segmentTestJoiSchema = Joi.object({
11
+ segment: Joi.string()
12
+ .valid(...availableSegmentKeys)
13
+ .required(),
14
+ assertions: Joi.array().items(
15
+ Joi.object({
16
+ description: Joi.string().optional(),
17
+ context: Joi.object(),
18
+ expectedToMatch: Joi.boolean(),
19
+ }),
20
+ ),
21
+ });
22
+
23
+ const featureTestJoiSchema = Joi.object({
24
+ feature: Joi.string()
25
+ .valid(...availableFeatureKeys)
26
+ .required(),
27
+ assertions: Joi.array().items(
28
+ Joi.object({
29
+ description: Joi.string().optional(),
30
+ at: Joi.number().precision(3).min(0).max(100),
31
+ environment: Joi.string().valid(...projectConfig.environments),
32
+ context: Joi.object(),
33
+
34
+ // @TODO: one or all below
35
+ expectedToBeEnabled: Joi.boolean().required(),
36
+ expectedVariation: Joi.alternatives().try(Joi.string(), Joi.number(), Joi.boolean()),
37
+ expectedVariables: Joi.object(),
38
+ }),
39
+ ),
40
+ });
41
+
42
+ return Joi.alternatives().try(segmentTestJoiSchema, featureTestJoiSchema);
43
+ }
package/src/site.ts CHANGED
@@ -16,7 +16,7 @@ import {
16
16
  } from "@featurevisor/types";
17
17
 
18
18
  import { ProjectConfig } from "./config";
19
- import { Datasource } from "./datasource/datasource";
19
+ import { Datasource } from "./datasource";
20
20
  import { extractAttributeKeysFromConditions, extractSegmentKeysFromGroupSegments } from "./utils";
21
21
 
22
22
  function getRelativePaths(rootDirectoryPath, projectConfig: ProjectConfig) {
package/src/tester.ts CHANGED
@@ -5,7 +5,7 @@ import { createInstance, allConditionsAreMatched, MAX_BUCKETED_NUMBER } from "@f
5
5
 
6
6
  import { ProjectConfig, SCHEMA_VERSION } from "./config";
7
7
  import { getExistingStateFilePath, buildDatafile } from "./builder";
8
- import { Datasource } from "./datasource/datasource";
8
+ import { Datasource } from "./datasource";
9
9
 
10
10
  // @TODO: make it better
11
11
  export function checkIfArraysAreEqual(a, b) {
@@ -1 +0,0 @@
1
- {"version":3,"file":"allocator.js","sourceRoot":"","sources":["../src/allocator.ts"],"names":[],"mappings":";;;AAEA,SAAgB,aAAa,CAAC,eAAwB,EAAE,IAAgB;IACtE,IAAM,MAAM,GAAY,EAAE,CAAC;IAE3B,IAAI,SAAS,GAAG,IAAI,CAAC;IACrB,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,SAAS,GAAG,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE;QAClD,IAAM,KAAK,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAA,KAAK,GAAS,KAAK,GAAd,EAAE,GAAG,GAAI,KAAK,GAAT,CAAU;QAE3B,IAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,GAAG,KAAK,CAAC,CAAC;QACnD,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC;QACxC,SAAS,IAAI,SAAS,CAAC;QACvB,CAAC,EAAE,CAAC;KACL;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAhBD,sCAgBC;AAED,SAAgB,qCAAqC,CACnD,eAAwB,EACxB,IAAgB;IAEhB,IAAM,MAAM,GAAY,EAAE,CAAC;IAE3B,IAAI,SAAS,GAAG,IAAI,CAAC;IACrB,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,SAAS,GAAG,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE;QAClD,IAAM,KAAK,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAA,KAAK,GAAS,KAAK,GAAd,EAAE,GAAG,GAAI,KAAK,GAAT,CAAU;QAC3B,IAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,GAAG,KAAK,CAAC,CAAC;QACnD,IAAI,SAAS,GAAG,GAAG,GAAG,KAAK,EAAE;YAC3B,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC;SACvC;QACD,SAAS,IAAI,SAAS,CAAC;QACvB,CAAC,EAAE,CAAC;KACL;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AApBD,sFAoBC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"allocator.spec.js","sourceRoot":"","sources":["../src/allocator.spec.ts"],"names":[],"mappings":"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"}
package/lib/builder.d.ts DELETED
@@ -1,26 +0,0 @@
1
- import { DatafileContent, ExistingState, FeatureKey, EnvironmentKey, Range } from "@featurevisor/types";
2
- import { ProjectConfig } from "./config";
3
- import { Datasource } from "./datasource/datasource";
4
- export interface BuildOptions {
5
- schemaVersion: string;
6
- revision: string;
7
- environment: string;
8
- tag?: string;
9
- features?: FeatureKey[];
10
- }
11
- export declare function getDatafilePath(projectConfig: ProjectConfig, environment: EnvironmentKey, tag: string): string;
12
- export declare function getExistingStateFilePath(projectConfig: ProjectConfig, environment: EnvironmentKey): string;
13
- export type FeatureRanges = Map<FeatureKey, Range[]>;
14
- interface FeatureRangesResult {
15
- featureRanges: FeatureRanges;
16
- featureIsInGroup: {
17
- [key: string]: boolean;
18
- };
19
- }
20
- export declare function getFeatureRanges(projectConfig: ProjectConfig, datasource: Datasource): FeatureRangesResult;
21
- export declare function buildDatafile(projectConfig: ProjectConfig, datasource: Datasource, options: BuildOptions, existingState: ExistingState): DatafileContent;
22
- export interface BuildCLIOptions {
23
- revision?: string;
24
- }
25
- export declare function buildProject(rootDirectoryPath: any, projectConfig: ProjectConfig, cliOptions?: BuildCLIOptions): void;
26
- export {};
@@ -1 +0,0 @@
1
- {"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"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"}
package/lib/linter.d.ts DELETED
@@ -1,11 +0,0 @@
1
- import * as Joi from "joi";
2
- import { Datasource } from "./datasource/datasource";
3
- import { ProjectConfig } from "./config";
4
- export declare function getAttributeJoiSchema(): Joi.ObjectSchema<any>;
5
- export declare function getConditionsJoiSchema(projectConfig: ProjectConfig, availableAttributeKeys: string[]): Joi.AlternativesSchema<any>;
6
- export declare function getSegmentJoiSchema(projectConfig: ProjectConfig, conditionsJoiSchema: any): Joi.ObjectSchema<any>;
7
- export declare function getGroupJoiSchema(projectConfig: ProjectConfig, datasource: Datasource, availableFeatureKeys: string[]): Joi.ObjectSchema<any>;
8
- export declare function getFeatureJoiSchema(projectConfig: ProjectConfig, conditionsJoiSchema: any, availableSegmentKeys: string[], availableFeatureKeys: string[]): Joi.ObjectSchema<any>;
9
- export declare function getTestsJoiSchema(projectConfig: ProjectConfig, availableFeatureKeys: string[], availableSegmentKeys: string[]): Joi.AlternativesSchema<any>;
10
- export declare function printJoiError(e: Joi.ValidationError): void;
11
- export declare function lintProject(projectConfig: ProjectConfig): Promise<boolean>;