@eventvisor/core 0.0.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 (165) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +9 -0
  3. package/jest.config.js +4 -0
  4. package/lib/builder/buildProject.d.ts +21 -0
  5. package/lib/builder/buildProject.js +153 -0
  6. package/lib/builder/buildProject.js.map +1 -0
  7. package/lib/builder/hashes.d.ts +2 -0
  8. package/lib/builder/hashes.js +59 -0
  9. package/lib/builder/hashes.js.map +1 -0
  10. package/lib/builder/index.d.ts +1 -0
  11. package/lib/builder/index.js +18 -0
  12. package/lib/builder/index.js.map +1 -0
  13. package/lib/cli/cli.d.ts +26 -0
  14. package/lib/cli/cli.js +69 -0
  15. package/lib/cli/cli.js.map +1 -0
  16. package/lib/cli/index.d.ts +1 -0
  17. package/lib/cli/index.js +18 -0
  18. package/lib/cli/index.js.map +1 -0
  19. package/lib/cli/plugins.d.ts +4 -0
  20. package/lib/cli/plugins.js +12 -0
  21. package/lib/cli/plugins.js.map +1 -0
  22. package/lib/config/index.d.ts +2 -0
  23. package/lib/config/index.js +19 -0
  24. package/lib/config/index.js.map +1 -0
  25. package/lib/config/parsers.d.ts +15 -0
  26. package/lib/config/parsers.js +65 -0
  27. package/lib/config/parsers.js.map +1 -0
  28. package/lib/config/projectConfig.d.ts +42 -0
  29. package/lib/config/projectConfig.js +137 -0
  30. package/lib/config/projectConfig.js.map +1 -0
  31. package/lib/datasource/adapter.d.ts +16 -0
  32. package/lib/datasource/adapter.js +7 -0
  33. package/lib/datasource/adapter.js.map +1 -0
  34. package/lib/datasource/datasource.d.ts +48 -0
  35. package/lib/datasource/datasource.js +117 -0
  36. package/lib/datasource/datasource.js.map +1 -0
  37. package/lib/datasource/filesystemAdapter.d.ts +29 -0
  38. package/lib/datasource/filesystemAdapter.js +192 -0
  39. package/lib/datasource/filesystemAdapter.js.map +1 -0
  40. package/lib/datasource/index.d.ts +3 -0
  41. package/lib/datasource/index.js +20 -0
  42. package/lib/datasource/index.js.map +1 -0
  43. package/lib/dependencies.d.ts +11 -0
  44. package/lib/dependencies.js +3 -0
  45. package/lib/dependencies.js.map +1 -0
  46. package/lib/index.d.ts +4 -0
  47. package/lib/index.js +21 -0
  48. package/lib/index.js.map +1 -0
  49. package/lib/index.spec.d.ts +0 -0
  50. package/lib/index.spec.js +6 -0
  51. package/lib/index.spec.js.map +1 -0
  52. package/lib/init/index.d.ts +8 -0
  53. package/lib/init/index.js +90 -0
  54. package/lib/init/index.js.map +1 -0
  55. package/lib/linter/attributeSchema.d.ts +5 -0
  56. package/lib/linter/attributeSchema.js +55 -0
  57. package/lib/linter/attributeSchema.js.map +1 -0
  58. package/lib/linter/conditionsSchema.d.ts +303 -0
  59. package/lib/linter/conditionsSchema.js +106 -0
  60. package/lib/linter/conditionsSchema.js.map +1 -0
  61. package/lib/linter/destinationSchema.d.ts +5 -0
  62. package/lib/linter/destinationSchema.js +57 -0
  63. package/lib/linter/destinationSchema.js.map +1 -0
  64. package/lib/linter/effectSchema.d.ts +1257 -0
  65. package/lib/linter/effectSchema.js +77 -0
  66. package/lib/linter/effectSchema.js.map +1 -0
  67. package/lib/linter/eventSchema.d.ts +5 -0
  68. package/lib/linter/eventSchema.js +70 -0
  69. package/lib/linter/eventSchema.js.map +1 -0
  70. package/lib/linter/index.d.ts +1 -0
  71. package/lib/linter/index.js +18 -0
  72. package/lib/linter/index.js.map +1 -0
  73. package/lib/linter/jsonSchema.d.ts +25 -0
  74. package/lib/linter/jsonSchema.js +487 -0
  75. package/lib/linter/jsonSchema.js.map +1 -0
  76. package/lib/linter/jsonSchema.spec.d.ts +1 -0
  77. package/lib/linter/jsonSchema.spec.js +875 -0
  78. package/lib/linter/jsonSchema.spec.js.map +1 -0
  79. package/lib/linter/lintProject.d.ts +2 -0
  80. package/lib/linter/lintProject.js +141 -0
  81. package/lib/linter/lintProject.js.map +1 -0
  82. package/lib/linter/persistSchema.d.ts +609 -0
  83. package/lib/linter/persistSchema.js +52 -0
  84. package/lib/linter/persistSchema.js.map +1 -0
  85. package/lib/linter/printError.d.ts +9 -0
  86. package/lib/linter/printError.js +75 -0
  87. package/lib/linter/printError.js.map +1 -0
  88. package/lib/linter/sampleSchema.d.ts +331 -0
  89. package/lib/linter/sampleSchema.js +70 -0
  90. package/lib/linter/sampleSchema.js.map +1 -0
  91. package/lib/linter/sourceSchema.d.ts +11 -0
  92. package/lib/linter/sourceSchema.js +73 -0
  93. package/lib/linter/sourceSchema.js.map +1 -0
  94. package/lib/linter/tagsSchema.d.ts +3 -0
  95. package/lib/linter/tagsSchema.js +44 -0
  96. package/lib/linter/tagsSchema.js.map +1 -0
  97. package/lib/linter/testSchema.d.ts +5 -0
  98. package/lib/linter/testSchema.js +44 -0
  99. package/lib/linter/testSchema.js.map +1 -0
  100. package/lib/linter/transformsSchema.d.ts +29 -0
  101. package/lib/linter/transformsSchema.js +66 -0
  102. package/lib/linter/transformsSchema.js.map +1 -0
  103. package/lib/tester/createTestInstance.d.ts +16 -0
  104. package/lib/tester/createTestInstance.js +158 -0
  105. package/lib/tester/createTestInstance.js.map +1 -0
  106. package/lib/tester/executeTest.d.ts +24 -0
  107. package/lib/tester/executeTest.js +305 -0
  108. package/lib/tester/executeTest.js.map +1 -0
  109. package/lib/tester/index.d.ts +1 -0
  110. package/lib/tester/index.js +18 -0
  111. package/lib/tester/index.js.map +1 -0
  112. package/lib/tester/printTestResult.d.ts +10 -0
  113. package/lib/tester/printTestResult.js +80 -0
  114. package/lib/tester/printTestResult.js.map +1 -0
  115. package/lib/tester/testProject.d.ts +12 -0
  116. package/lib/tester/testProject.js +93 -0
  117. package/lib/tester/testProject.js.map +1 -0
  118. package/lib/utils/index.d.ts +1 -0
  119. package/lib/utils/index.js +18 -0
  120. package/lib/utils/index.js.map +1 -0
  121. package/lib/utils/prettyDuration.d.ts +1 -0
  122. package/lib/utils/prettyDuration.js +27 -0
  123. package/lib/utils/prettyDuration.js.map +1 -0
  124. package/package.json +42 -0
  125. package/src/builder/buildProject.ts +222 -0
  126. package/src/builder/hashes.ts +30 -0
  127. package/src/builder/index.ts +1 -0
  128. package/src/cli/cli.ts +110 -0
  129. package/src/cli/index.ts +1 -0
  130. package/src/cli/plugins.ts +13 -0
  131. package/src/config/index.ts +2 -0
  132. package/src/config/parsers.ts +40 -0
  133. package/src/config/projectConfig.ts +158 -0
  134. package/src/datasource/adapter.ts +23 -0
  135. package/src/datasource/datasource.ts +164 -0
  136. package/src/datasource/filesystemAdapter.ts +206 -0
  137. package/src/datasource/index.ts +3 -0
  138. package/src/dependencies.ts +13 -0
  139. package/src/index.spec.ts +5 -0
  140. package/src/index.ts +4 -0
  141. package/src/init/index.ts +65 -0
  142. package/src/linter/attributeSchema.ts +23 -0
  143. package/src/linter/conditionsSchema.ts +89 -0
  144. package/src/linter/destinationSchema.ts +25 -0
  145. package/src/linter/effectSchema.ts +49 -0
  146. package/src/linter/eventSchema.ts +40 -0
  147. package/src/linter/index.ts +1 -0
  148. package/src/linter/jsonSchema.spec.ts +934 -0
  149. package/src/linter/jsonSchema.ts +533 -0
  150. package/src/linter/lintProject.ts +182 -0
  151. package/src/linter/persistSchema.ts +21 -0
  152. package/src/linter/printError.ts +50 -0
  153. package/src/linter/sampleSchema.ts +45 -0
  154. package/src/linter/sourceSchema.ts +42 -0
  155. package/src/linter/tagsSchema.ts +12 -0
  156. package/src/linter/testSchema.ts +9 -0
  157. package/src/linter/transformsSchema.ts +35 -0
  158. package/src/tester/createTestInstance.ts +209 -0
  159. package/src/tester/executeTest.ts +436 -0
  160. package/src/tester/index.ts +1 -0
  161. package/src/tester/printTestResult.ts +60 -0
  162. package/src/tester/testProject.ts +129 -0
  163. package/src/utils/index.ts +1 -0
  164. package/src/utils/prettyDuration.ts +27 -0
  165. package/tsconfig.cjs.json +11 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executeTest.js","sourceRoot":"","sources":["../../src/tester/executeTest.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export * from "./testProject";
@@ -0,0 +1,18 @@
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
+ __exportStar(require("./testProject"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tester/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B"}
@@ -0,0 +1,10 @@
1
+ import { Test } from "@eventvisor/types";
2
+ import { Dependencies } from "../dependencies";
3
+ import { TestResult } from "./executeTest";
4
+ export interface PrintTestResultOptions {
5
+ testName: string;
6
+ test: Test;
7
+ testResult: TestResult;
8
+ deps: Dependencies;
9
+ }
10
+ export declare function printTestResult(options: PrintTestResultOptions): void;
@@ -0,0 +1,80 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.printTestResult = printTestResult;
40
+ const path = __importStar(require("path"));
41
+ const chalk_1 = __importDefault(require("chalk"));
42
+ function prefixLines(str, prefix) {
43
+ return str.replace(/^/gm, prefix);
44
+ }
45
+ function printTestResult(options) {
46
+ const { testName, test, testResult, deps } = options;
47
+ const { projectConfig, rootDirectoryPath, datasource } = deps;
48
+ const relativeTestPath = path.relative(rootDirectoryPath, path.join(projectConfig.testsDirectoryPath, testName + "." + datasource.getExtension()));
49
+ console.log(`\n\n`);
50
+ if (testResult.passed) {
51
+ console.log(chalk_1.default.green(`Testing: ${relativeTestPath}`));
52
+ }
53
+ else {
54
+ console.error(chalk_1.default.red(`Testing: ${relativeTestPath}`));
55
+ }
56
+ if ("attribute" in test) {
57
+ if (testResult.passed) {
58
+ console.log(chalk_1.default.green(` Attribute "${chalk_1.default.green(test.attribute)}":`));
59
+ }
60
+ else {
61
+ console.error(chalk_1.default.red(` Attribute "${chalk_1.default.red(test.attribute)}":`));
62
+ }
63
+ }
64
+ if (testResult.assertions.length > 0) {
65
+ for (const assertion of testResult.assertions) {
66
+ if (assertion.passed) {
67
+ console.log(chalk_1.default.green(` ✓ ${assertion.description}`));
68
+ }
69
+ else {
70
+ console.error(chalk_1.default.red(` ✗ ${assertion.description}`));
71
+ }
72
+ if (assertion.errors) {
73
+ for (const error of assertion.errors) {
74
+ console.error(chalk_1.default.red(prefixLines(error, " ")));
75
+ }
76
+ }
77
+ }
78
+ }
79
+ }
80
+ //# sourceMappingURL=printTestResult.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"printTestResult.js","sourceRoot":"","sources":["../../src/tester/printTestResult.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBA,0CAwCC;AA3DD,2CAA6B;AAC7B,kDAA0B;AAO1B,SAAS,WAAW,CAAC,GAAW,EAAE,MAAc;IAC9C,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACpC,CAAC;AASD,SAAgB,eAAe,CAAC,OAA+B;IAC7D,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IACrD,MAAM,EAAE,aAAa,EAAE,iBAAiB,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;IAE9D,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CACpC,iBAAiB,EACjB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,kBAAkB,EAAE,QAAQ,GAAG,GAAG,GAAG,UAAU,CAAC,YAAY,EAAE,CAAC,CACxF,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAEpB,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,YAAY,gBAAgB,EAAE,CAAC,CAAC,CAAC;IAC3D,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,YAAY,gBAAgB,EAAE,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;QACxB,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,gBAAgB,eAAK,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5E,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,gBAAgB,eAAK,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAED,IAAI,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrC,KAAK,MAAM,SAAS,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;YAC9C,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;gBACrB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YAC3D,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,OAAO,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YAC3D,CAAC;YAED,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;gBACrB,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;oBACrC,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;gBACvD,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { Dependencies } from "../dependencies";
2
+ import { Plugin } from "../cli";
3
+ export interface TestProjectOptions {
4
+ keyPattern?: string;
5
+ entityType?: string;
6
+ assertionPattern?: string;
7
+ onlyFailures?: boolean;
8
+ quiet?: boolean;
9
+ verbose?: boolean;
10
+ }
11
+ export declare function testProject(deps: Dependencies, options: TestProjectOptions): Promise<boolean>;
12
+ export declare const testPlugin: Plugin;
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.testPlugin = void 0;
7
+ exports.testProject = testProject;
8
+ const chalk_1 = __importDefault(require("chalk"));
9
+ const builder_1 = require("../builder");
10
+ const utils_1 = require("../utils");
11
+ const printTestResult_1 = require("./printTestResult");
12
+ const executeTest_1 = require("./executeTest");
13
+ async function testProject(deps, options) {
14
+ const beforeDatafileBuild = new Date();
15
+ console.log("Building datafile...");
16
+ const datafileContent = await (0, builder_1.buildDatafile)(deps);
17
+ const afterDatafileBuild = new Date();
18
+ console.log(`Datafile built in ${afterDatafileBuild.getTime() - beforeDatafileBuild.getTime()}ms`);
19
+ const tests = await deps.datasource.listTests();
20
+ const totals = {
21
+ specsPassed: 0,
22
+ specsFailed: 0,
23
+ assertionsPassed: 0,
24
+ assertionsFailed: 0,
25
+ };
26
+ let hasFailures = false;
27
+ const start = new Date();
28
+ for (const test of tests) {
29
+ // @TODO: use regex?
30
+ if (options.keyPattern && !test.includes(options.keyPattern)) {
31
+ continue;
32
+ }
33
+ const testContent = await deps.datasource.readTest(test);
34
+ const testResult = await (0, executeTest_1.executeTest)({
35
+ deps,
36
+ datafileContent,
37
+ test: testContent,
38
+ cliOptions: options,
39
+ });
40
+ if (!testResult.passed) {
41
+ hasFailures = true;
42
+ totals.specsFailed++;
43
+ }
44
+ else {
45
+ totals.specsPassed++;
46
+ }
47
+ for (const assertion of testResult.assertions) {
48
+ if (assertion.passed) {
49
+ totals.assertionsPassed++;
50
+ }
51
+ else {
52
+ totals.assertionsFailed++;
53
+ }
54
+ }
55
+ if (typeof options.onlyFailures === "undefined" || !testResult.passed) {
56
+ // print
57
+ (0, printTestResult_1.printTestResult)({
58
+ testName: test,
59
+ test: testContent,
60
+ testResult,
61
+ deps,
62
+ });
63
+ }
64
+ }
65
+ console.log(`\n\n`);
66
+ if (hasFailures) {
67
+ console.log(chalk_1.default.red(`Test specs: ${totals.specsPassed} passed, ${totals.specsFailed} failed`));
68
+ console.log(chalk_1.default.red(`Assertions: ${totals.assertionsPassed} passed, ${totals.assertionsFailed} failed`));
69
+ }
70
+ else {
71
+ console.log(chalk_1.default.green(`Test specs: ${totals.specsPassed} passed, ${totals.specsFailed} failed`));
72
+ console.log(chalk_1.default.green(`Assertions: ${totals.assertionsPassed} passed, ${totals.assertionsFailed} failed`));
73
+ }
74
+ const end = new Date();
75
+ console.log(`Time: ${(0, utils_1.prettyDuration)(end.getTime() - start.getTime())}`);
76
+ if (hasFailures) {
77
+ return false;
78
+ }
79
+ return true;
80
+ }
81
+ exports.testPlugin = {
82
+ command: "test",
83
+ handler: async function ({ rootDirectoryPath, projectConfig, datasource, parsed }) {
84
+ return testProject({
85
+ rootDirectoryPath,
86
+ projectConfig,
87
+ datasource,
88
+ options: parsed,
89
+ }, parsed);
90
+ },
91
+ examples: [],
92
+ };
93
+ //# sourceMappingURL=testProject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testProject.js","sourceRoot":"","sources":["../../src/tester/testProject.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export * from "./prettyDuration";
@@ -0,0 +1,18 @@
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
+ __exportStar(require("./prettyDuration"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAiC"}
@@ -0,0 +1 @@
1
+ export declare function prettyDuration(duration: number): string;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.prettyDuration = prettyDuration;
4
+ function prettyDuration(duration) {
5
+ if (duration < 1000) {
6
+ return `${Math.floor(duration)}ms`;
7
+ }
8
+ const hours = Math.floor(duration / (1000 * 60 * 60));
9
+ const minutes = Math.floor((duration % (1000 * 60 * 60)) / (1000 * 60));
10
+ const seconds = Math.floor((duration % (1000 * 60)) / 1000);
11
+ const milliseconds = Math.floor(duration % 1000);
12
+ let result = "";
13
+ if (hours > 0) {
14
+ result += `${hours}h`;
15
+ }
16
+ if (minutes > 0) {
17
+ result += `${minutes}m`;
18
+ }
19
+ if (seconds > 0) {
20
+ result += `${seconds}s`;
21
+ }
22
+ if (milliseconds > 0) {
23
+ result += `${milliseconds}ms`;
24
+ }
25
+ return result;
26
+ }
27
+ //# sourceMappingURL=prettyDuration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prettyDuration.js","sourceRoot":"","sources":["../../src/utils/prettyDuration.ts"],"names":[],"mappings":";;AAAA,wCA0BC;AA1BD,SAAgB,cAAc,CAAC,QAAgB;IAC7C,IAAI,QAAQ,GAAG,IAAI,EAAE,CAAC;QACpB,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;IACrC,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;IACxE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAC5D,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;IAEjD,IAAI,MAAM,GAAG,EAAE,CAAC;IAEhB,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACd,MAAM,IAAI,GAAG,KAAK,GAAG,CAAC;IACxB,CAAC;IACD,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;QAChB,MAAM,IAAI,GAAG,OAAO,GAAG,CAAC;IAC1B,CAAC;IACD,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;QAChB,MAAM,IAAI,GAAG,OAAO,GAAG,CAAC;IAC1B,CAAC;IACD,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,GAAG,YAAY,IAAI,CAAC;IAChC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
package/package.json ADDED
@@ -0,0 +1,42 @@
1
+ {
2
+ "name": "@eventvisor/core",
3
+ "version": "0.0.2",
4
+ "description": "Core package of Eventvisor for Node.js usage",
5
+ "main": "lib/index.js",
6
+ "types": "lib/index.d.ts",
7
+ "scripts": {
8
+ "transpile": "rimraf lib && tsc --project tsconfig.cjs.json",
9
+ "dist": "echo 'Nothing to dist here'",
10
+ "build": "npm run transpile",
11
+ "test": "jest --config jest.config.js --verbose --coverage"
12
+ },
13
+ "author": {
14
+ "name": "Fahad Heylaal",
15
+ "url": "https://fahad19.com"
16
+ },
17
+ "homepage": "https://eventvisor.org",
18
+ "keywords": [],
19
+ "repository": {
20
+ "type": "git",
21
+ "url": "https://github.com/eventvisor/eventvisor.git"
22
+ },
23
+ "publishConfig": {
24
+ "access": "public",
25
+ "registry": "https://registry.npmjs.org/"
26
+ },
27
+ "bugs": {
28
+ "url": "https://github.com/eventvisor/eventvisor/issues"
29
+ },
30
+ "license": "MIT",
31
+ "dependencies": {
32
+ "@eventvisor/sdk": "0.0.2",
33
+ "@eventvisor/types": "0.0.2",
34
+ "axios": "^1.12.2",
35
+ "chalk": "^5.6.0",
36
+ "js-yaml": "^4.1.0",
37
+ "tar": "^7.4.3",
38
+ "yargs": "^17.7.2",
39
+ "zod": "^4.0.17"
40
+ },
41
+ "gitHead": "373d5c00cb6fa0d6f4baaa05a10e57e505474847"
42
+ }
@@ -0,0 +1,222 @@
1
+ import { DatafileContent } from "@eventvisor/types";
2
+
3
+ import { SCHEMA_VERSION } from "../config/projectConfig";
4
+ import { Dependencies } from "../dependencies";
5
+ import { Plugin } from "../cli";
6
+ import { generateHashForDatafile } from "./hashes";
7
+
8
+ export interface BuildCLIOptions {
9
+ tag?: string;
10
+ revision?: string;
11
+ revisionFromHash?: boolean;
12
+ schemaVersion?: string;
13
+
14
+ // event?: string;
15
+ json?: boolean;
16
+ pretty?: boolean;
17
+ systemFiles?: boolean; // --no-system-files in CLI
18
+ // inflate?: number;
19
+ datafilesDir?: string;
20
+ }
21
+
22
+ export function getNextRevision(currentRevision: string) {
23
+ // If the string is empty or can't be parsed with parseInt(), return "1".
24
+ if (!currentRevision || isNaN(parseInt(currentRevision, 10))) {
25
+ return "1";
26
+ }
27
+
28
+ return (parseInt(currentRevision, 10) + 1).toString();
29
+ }
30
+
31
+ export interface BuildDatafileOptions {
32
+ tag?: string;
33
+ revision?: string;
34
+ }
35
+
36
+ export async function buildDatafile(
37
+ deps: Dependencies,
38
+ options: BuildDatafileOptions = {},
39
+ ): Promise<DatafileContent> {
40
+ const { tag, revision } = options;
41
+ const { datasource } = deps;
42
+
43
+ const datafileContent: DatafileContent = {
44
+ schemaVersion: SCHEMA_VERSION,
45
+ revision: revision || "1",
46
+ attributes: {},
47
+ events: {},
48
+ destinations: {},
49
+ effects: {},
50
+ };
51
+
52
+ // attributes
53
+ const attributes = await datasource.listAttributes();
54
+ for (const attribute of attributes) {
55
+ const parsedAttribute = await datasource.readAttribute(attribute);
56
+
57
+ if (!parsedAttribute) {
58
+ continue;
59
+ }
60
+
61
+ if (typeof parsedAttribute.archived === "boolean" && parsedAttribute.archived === true) {
62
+ continue;
63
+ }
64
+
65
+ if (tag && !parsedAttribute.tags?.includes(tag)) {
66
+ continue;
67
+ }
68
+
69
+ delete parsedAttribute.description;
70
+ delete parsedAttribute.tags;
71
+
72
+ // @TODO: stringify conditions and transforms
73
+
74
+ datafileContent.attributes[attribute] = parsedAttribute;
75
+ }
76
+
77
+ // events
78
+ const events = await datasource.listEvents();
79
+ for (const event of events) {
80
+ const parsedEvent = await datasource.readEvent(event);
81
+
82
+ if (!parsedEvent) {
83
+ continue;
84
+ }
85
+
86
+ if (typeof parsedEvent.archived === "boolean" && parsedEvent.archived === true) {
87
+ continue;
88
+ }
89
+
90
+ if (tag && !parsedEvent.tags?.includes(tag)) {
91
+ continue;
92
+ }
93
+
94
+ delete parsedEvent.description;
95
+ delete parsedEvent.tags;
96
+
97
+ // @TODO: stringify conditions and transforms
98
+
99
+ datafileContent.events[event] = parsedEvent;
100
+ }
101
+
102
+ // destinations
103
+ const destinations = await datasource.listDestinations();
104
+ for (const destination of destinations) {
105
+ const parsedDestination = await datasource.readDestination(destination);
106
+
107
+ if (!parsedDestination) {
108
+ continue;
109
+ }
110
+
111
+ if (typeof parsedDestination.archived === "boolean" && parsedDestination.archived === true) {
112
+ continue;
113
+ }
114
+
115
+ if (tag && !parsedDestination.tags?.includes(tag)) {
116
+ continue;
117
+ }
118
+
119
+ delete parsedDestination.description;
120
+ delete parsedDestination.tags;
121
+
122
+ // @TODO: stringify conditions and transforms
123
+
124
+ datafileContent.destinations[destination] = parsedDestination;
125
+ }
126
+
127
+ // effects
128
+ const effects = await datasource.listEffects();
129
+ for (const effect of effects) {
130
+ const parsedEffect = await datasource.readEffect(effect);
131
+
132
+ if (!parsedEffect) {
133
+ continue;
134
+ }
135
+
136
+ if (typeof parsedEffect.archived === "boolean" && parsedEffect.archived === true) {
137
+ continue;
138
+ }
139
+
140
+ if (tag && !parsedEffect.tags?.includes(tag)) {
141
+ continue;
142
+ }
143
+
144
+ delete parsedEffect.description;
145
+ delete parsedEffect.tags;
146
+
147
+ // @TODO: stringify conditions and transforms
148
+
149
+ datafileContent.effects[effect] = parsedEffect;
150
+ }
151
+
152
+ return datafileContent;
153
+ }
154
+
155
+ export async function buildProject(deps: Dependencies, cliOptions: BuildCLIOptions = {}) {
156
+ const { projectConfig, datasource } = deps;
157
+
158
+ /**
159
+ * Regular build process writing to disk
160
+ */
161
+ const { tags } = projectConfig;
162
+
163
+ const currentRevision = await datasource.readRevision();
164
+ const nextRevision =
165
+ (cliOptions.revision && cliOptions.revision.toString()) || getNextRevision(currentRevision);
166
+
167
+ // print
168
+ if (cliOptions.json) {
169
+ const datafileContent = await buildDatafile(deps, {
170
+ tag: cliOptions.tag,
171
+ revision: cliOptions.revision,
172
+ });
173
+
174
+ if (cliOptions.revisionFromHash) {
175
+ datafileContent.revision = generateHashForDatafile(datafileContent);
176
+ }
177
+
178
+ if (cliOptions.pretty) {
179
+ console.log(JSON.stringify(datafileContent, null, 2));
180
+ } else {
181
+ console.log(JSON.stringify(datafileContent));
182
+ }
183
+
184
+ return;
185
+ }
186
+
187
+ console.log("\nCurrent revision:", currentRevision);
188
+
189
+ for (const tag of tags) {
190
+ const datafileContent = await buildDatafile(deps, {
191
+ tag,
192
+ revision: nextRevision,
193
+ });
194
+
195
+ if (cliOptions.revisionFromHash) {
196
+ datafileContent.revision = generateHashForDatafile(datafileContent);
197
+ }
198
+
199
+ console.log(`\n => Tag: ${tag}`);
200
+ await datasource.writeDatafile(datafileContent, { tag, datafilesDir: cliOptions.datafilesDir });
201
+ }
202
+
203
+ await datasource.writeRevision(nextRevision);
204
+
205
+ console.log("\nLatest revision:", nextRevision, "\n");
206
+ }
207
+
208
+ export const buildPlugin: Plugin = {
209
+ command: "build",
210
+ handler: async function ({ rootDirectoryPath, projectConfig, datasource, parsed }) {
211
+ await buildProject(
212
+ {
213
+ rootDirectoryPath,
214
+ projectConfig,
215
+ datasource,
216
+ options: parsed,
217
+ },
218
+ parsed as BuildCLIOptions,
219
+ );
220
+ },
221
+ examples: [],
222
+ };
@@ -0,0 +1,30 @@
1
+ import * as crypto from "crypto";
2
+ import { DatafileContent } from "@eventvisor/types";
3
+
4
+ const base62chars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
5
+
6
+ function generateHashFromString(str: string, length = 10): string {
7
+ const hashBuffer = crypto.createHash("sha256").update(str).digest();
8
+
9
+ // Convert buffer to base62 (alphanumeric)
10
+ let num = BigInt("0x" + hashBuffer.toString("hex"));
11
+ let base62 = "";
12
+ while (num > 0) {
13
+ // Convert the remainder to a number for indexing
14
+ const remainder = Number(num % 62n);
15
+ base62 = base62chars[remainder] + base62;
16
+ num = num / 62n;
17
+ }
18
+
19
+ // Return first 10 chars for a short hash (adjust length as needed)
20
+ return base62.slice(0, length);
21
+ }
22
+
23
+ export function generateHashForDatafile(datafileContent: DatafileContent): string {
24
+ const copiedDatafileContent = { ...datafileContent };
25
+ copiedDatafileContent.revision = "";
26
+
27
+ const hash = generateHashFromString(JSON.stringify(copiedDatafileContent));
28
+
29
+ return hash;
30
+ }
@@ -0,0 +1 @@
1
+ export * from "./buildProject";