@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
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2025 Fahad Heylaal (https://fahad19.com)
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,9 @@
1
+ # @eventvisor/core
2
+
3
+ > Core package of Eventvisor for internal usage in CLI
4
+
5
+ Visit [https://eventvisor.org](https://eventvisor.org) for more information.
6
+
7
+ ## License
8
+
9
+ MIT © [Fahad Heylaal](https://fahad19.com)
package/jest.config.js ADDED
@@ -0,0 +1,4 @@
1
+ module.exports = {
2
+ preset: "ts-jest",
3
+ bail: true,
4
+ };
@@ -0,0 +1,21 @@
1
+ import { DatafileContent } from "@eventvisor/types";
2
+ import { Dependencies } from "../dependencies";
3
+ import { Plugin } from "../cli";
4
+ export interface BuildCLIOptions {
5
+ tag?: string;
6
+ revision?: string;
7
+ revisionFromHash?: boolean;
8
+ schemaVersion?: string;
9
+ json?: boolean;
10
+ pretty?: boolean;
11
+ systemFiles?: boolean;
12
+ datafilesDir?: string;
13
+ }
14
+ export declare function getNextRevision(currentRevision: string): string;
15
+ export interface BuildDatafileOptions {
16
+ tag?: string;
17
+ revision?: string;
18
+ }
19
+ export declare function buildDatafile(deps: Dependencies, options?: BuildDatafileOptions): Promise<DatafileContent>;
20
+ export declare function buildProject(deps: Dependencies, cliOptions?: BuildCLIOptions): Promise<void>;
21
+ export declare const buildPlugin: Plugin;
@@ -0,0 +1,153 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildPlugin = void 0;
4
+ exports.getNextRevision = getNextRevision;
5
+ exports.buildDatafile = buildDatafile;
6
+ exports.buildProject = buildProject;
7
+ const projectConfig_1 = require("../config/projectConfig");
8
+ const hashes_1 = require("./hashes");
9
+ function getNextRevision(currentRevision) {
10
+ // If the string is empty or can't be parsed with parseInt(), return "1".
11
+ if (!currentRevision || isNaN(parseInt(currentRevision, 10))) {
12
+ return "1";
13
+ }
14
+ return (parseInt(currentRevision, 10) + 1).toString();
15
+ }
16
+ async function buildDatafile(deps, options = {}) {
17
+ const { tag, revision } = options;
18
+ const { datasource } = deps;
19
+ const datafileContent = {
20
+ schemaVersion: projectConfig_1.SCHEMA_VERSION,
21
+ revision: revision || "1",
22
+ attributes: {},
23
+ events: {},
24
+ destinations: {},
25
+ effects: {},
26
+ };
27
+ // attributes
28
+ const attributes = await datasource.listAttributes();
29
+ for (const attribute of attributes) {
30
+ const parsedAttribute = await datasource.readAttribute(attribute);
31
+ if (!parsedAttribute) {
32
+ continue;
33
+ }
34
+ if (typeof parsedAttribute.archived === "boolean" && parsedAttribute.archived === true) {
35
+ continue;
36
+ }
37
+ if (tag && !parsedAttribute.tags?.includes(tag)) {
38
+ continue;
39
+ }
40
+ delete parsedAttribute.description;
41
+ delete parsedAttribute.tags;
42
+ // @TODO: stringify conditions and transforms
43
+ datafileContent.attributes[attribute] = parsedAttribute;
44
+ }
45
+ // events
46
+ const events = await datasource.listEvents();
47
+ for (const event of events) {
48
+ const parsedEvent = await datasource.readEvent(event);
49
+ if (!parsedEvent) {
50
+ continue;
51
+ }
52
+ if (typeof parsedEvent.archived === "boolean" && parsedEvent.archived === true) {
53
+ continue;
54
+ }
55
+ if (tag && !parsedEvent.tags?.includes(tag)) {
56
+ continue;
57
+ }
58
+ delete parsedEvent.description;
59
+ delete parsedEvent.tags;
60
+ // @TODO: stringify conditions and transforms
61
+ datafileContent.events[event] = parsedEvent;
62
+ }
63
+ // destinations
64
+ const destinations = await datasource.listDestinations();
65
+ for (const destination of destinations) {
66
+ const parsedDestination = await datasource.readDestination(destination);
67
+ if (!parsedDestination) {
68
+ continue;
69
+ }
70
+ if (typeof parsedDestination.archived === "boolean" && parsedDestination.archived === true) {
71
+ continue;
72
+ }
73
+ if (tag && !parsedDestination.tags?.includes(tag)) {
74
+ continue;
75
+ }
76
+ delete parsedDestination.description;
77
+ delete parsedDestination.tags;
78
+ // @TODO: stringify conditions and transforms
79
+ datafileContent.destinations[destination] = parsedDestination;
80
+ }
81
+ // effects
82
+ const effects = await datasource.listEffects();
83
+ for (const effect of effects) {
84
+ const parsedEffect = await datasource.readEffect(effect);
85
+ if (!parsedEffect) {
86
+ continue;
87
+ }
88
+ if (typeof parsedEffect.archived === "boolean" && parsedEffect.archived === true) {
89
+ continue;
90
+ }
91
+ if (tag && !parsedEffect.tags?.includes(tag)) {
92
+ continue;
93
+ }
94
+ delete parsedEffect.description;
95
+ delete parsedEffect.tags;
96
+ // @TODO: stringify conditions and transforms
97
+ datafileContent.effects[effect] = parsedEffect;
98
+ }
99
+ return datafileContent;
100
+ }
101
+ async function buildProject(deps, cliOptions = {}) {
102
+ const { projectConfig, datasource } = deps;
103
+ /**
104
+ * Regular build process writing to disk
105
+ */
106
+ const { tags } = projectConfig;
107
+ const currentRevision = await datasource.readRevision();
108
+ const nextRevision = (cliOptions.revision && cliOptions.revision.toString()) || getNextRevision(currentRevision);
109
+ // print
110
+ if (cliOptions.json) {
111
+ const datafileContent = await buildDatafile(deps, {
112
+ tag: cliOptions.tag,
113
+ revision: cliOptions.revision,
114
+ });
115
+ if (cliOptions.revisionFromHash) {
116
+ datafileContent.revision = (0, hashes_1.generateHashForDatafile)(datafileContent);
117
+ }
118
+ if (cliOptions.pretty) {
119
+ console.log(JSON.stringify(datafileContent, null, 2));
120
+ }
121
+ else {
122
+ console.log(JSON.stringify(datafileContent));
123
+ }
124
+ return;
125
+ }
126
+ console.log("\nCurrent revision:", currentRevision);
127
+ for (const tag of tags) {
128
+ const datafileContent = await buildDatafile(deps, {
129
+ tag,
130
+ revision: nextRevision,
131
+ });
132
+ if (cliOptions.revisionFromHash) {
133
+ datafileContent.revision = (0, hashes_1.generateHashForDatafile)(datafileContent);
134
+ }
135
+ console.log(`\n => Tag: ${tag}`);
136
+ await datasource.writeDatafile(datafileContent, { tag, datafilesDir: cliOptions.datafilesDir });
137
+ }
138
+ await datasource.writeRevision(nextRevision);
139
+ console.log("\nLatest revision:", nextRevision, "\n");
140
+ }
141
+ exports.buildPlugin = {
142
+ command: "build",
143
+ handler: async function ({ rootDirectoryPath, projectConfig, datasource, parsed }) {
144
+ await buildProject({
145
+ rootDirectoryPath,
146
+ projectConfig,
147
+ datasource,
148
+ options: parsed,
149
+ }, parsed);
150
+ },
151
+ examples: [],
152
+ };
153
+ //# sourceMappingURL=buildProject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildProject.js","sourceRoot":"","sources":["../../src/builder/buildProject.ts"],"names":[],"mappings":";;;AAqBA,0CAOC;AAOD,sCAqHC;AAED,oCAmDC;AA3MD,2DAAyD;AAGzD,qCAAmD;AAgBnD,SAAgB,eAAe,CAAC,eAAuB;IACrD,yEAAyE;IACzE,IAAI,CAAC,eAAe,IAAI,KAAK,CAAC,QAAQ,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC;QAC7D,OAAO,GAAG,CAAC;IACb,CAAC;IAED,OAAO,CAAC,QAAQ,CAAC,eAAe,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;AACxD,CAAC;AAOM,KAAK,UAAU,aAAa,CACjC,IAAkB,EAClB,UAAgC,EAAE;IAElC,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAClC,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;IAE5B,MAAM,eAAe,GAAoB;QACvC,aAAa,EAAE,8BAAc;QAC7B,QAAQ,EAAE,QAAQ,IAAI,GAAG;QACzB,UAAU,EAAE,EAAE;QACd,MAAM,EAAE,EAAE;QACV,YAAY,EAAE,EAAE;QAChB,OAAO,EAAE,EAAE;KACZ,CAAC;IAEF,aAAa;IACb,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,cAAc,EAAE,CAAC;IACrD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,eAAe,GAAG,MAAM,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QAElE,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,SAAS;QACX,CAAC;QAED,IAAI,OAAO,eAAe,CAAC,QAAQ,KAAK,SAAS,IAAI,eAAe,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YACvF,SAAS;QACX,CAAC;QAED,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAChD,SAAS;QACX,CAAC;QAED,OAAO,eAAe,CAAC,WAAW,CAAC;QACnC,OAAO,eAAe,CAAC,IAAI,CAAC;QAE5B,6CAA6C;QAE7C,eAAe,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,eAAe,CAAC;IAC1D,CAAC;IAED,SAAS;IACT,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,UAAU,EAAE,CAAC;IAC7C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAEtD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,SAAS;QACX,CAAC;QAED,IAAI,OAAO,WAAW,CAAC,QAAQ,KAAK,SAAS,IAAI,WAAW,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC/E,SAAS;QACX,CAAC;QAED,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5C,SAAS;QACX,CAAC;QAED,OAAO,WAAW,CAAC,WAAW,CAAC;QAC/B,OAAO,WAAW,CAAC,IAAI,CAAC;QAExB,6CAA6C;QAE7C,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC;IAC9C,CAAC;IAED,eAAe;IACf,MAAM,YAAY,GAAG,MAAM,UAAU,CAAC,gBAAgB,EAAE,CAAC;IACzD,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;QACvC,MAAM,iBAAiB,GAAG,MAAM,UAAU,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QAExE,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,SAAS;QACX,CAAC;QAED,IAAI,OAAO,iBAAiB,CAAC,QAAQ,KAAK,SAAS,IAAI,iBAAiB,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC3F,SAAS;QACX,CAAC;QAED,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAClD,SAAS;QACX,CAAC;QAED,OAAO,iBAAiB,CAAC,WAAW,CAAC;QACrC,OAAO,iBAAiB,CAAC,IAAI,CAAC;QAE9B,6CAA6C;QAE7C,eAAe,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,iBAAiB,CAAC;IAChE,CAAC;IAED,UAAU;IACV,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,WAAW,EAAE,CAAC;IAC/C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,YAAY,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAEzD,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,SAAS;QACX,CAAC;QAED,IAAI,OAAO,YAAY,CAAC,QAAQ,KAAK,SAAS,IAAI,YAAY,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YACjF,SAAS;QACX,CAAC;QAED,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7C,SAAS;QACX,CAAC;QAED,OAAO,YAAY,CAAC,WAAW,CAAC;QAChC,OAAO,YAAY,CAAC,IAAI,CAAC;QAEzB,6CAA6C;QAE7C,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC;IACjD,CAAC;IAED,OAAO,eAAe,CAAC;AACzB,CAAC;AAEM,KAAK,UAAU,YAAY,CAAC,IAAkB,EAAE,aAA8B,EAAE;IACrF,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;IAE3C;;OAEG;IACH,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC;IAE/B,MAAM,eAAe,GAAG,MAAM,UAAU,CAAC,YAAY,EAAE,CAAC;IACxD,MAAM,YAAY,GAChB,CAAC,UAAU,CAAC,QAAQ,IAAI,UAAU,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,eAAe,CAAC,eAAe,CAAC,CAAC;IAE9F,QAAQ;IACR,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;QACpB,MAAM,eAAe,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE;YAChD,GAAG,EAAE,UAAU,CAAC,GAAG;YACnB,QAAQ,EAAE,UAAU,CAAC,QAAQ;SAC9B,CAAC,CAAC;QAEH,IAAI,UAAU,CAAC,gBAAgB,EAAE,CAAC;YAChC,eAAe,CAAC,QAAQ,GAAG,IAAA,gCAAuB,EAAC,eAAe,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC;QAC/C,CAAC;QAED,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAAC;IAEpD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,eAAe,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE;YAChD,GAAG;YACH,QAAQ,EAAE,YAAY;SACvB,CAAC,CAAC;QAEH,IAAI,UAAU,CAAC,gBAAgB,EAAE,CAAC;YAChC,eAAe,CAAC,QAAQ,GAAG,IAAA,gCAAuB,EAAC,eAAe,CAAC,CAAC;QACtE,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,EAAE,CAAC,CAAC;QAClC,MAAM,UAAU,CAAC,aAAa,CAAC,eAAe,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC;IAClG,CAAC;IAED,MAAM,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;IAE7C,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;AACxD,CAAC;AAEY,QAAA,WAAW,GAAW;IACjC,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE,KAAK,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE;QAC/E,MAAM,YAAY,CAChB;YACE,iBAAiB;YACjB,aAAa;YACb,UAAU;YACV,OAAO,EAAE,MAAM;SAChB,EACD,MAAyB,CAC1B,CAAC;IACJ,CAAC;IACD,QAAQ,EAAE,EAAE;CACb,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { DatafileContent } from "@eventvisor/types";
2
+ export declare function generateHashForDatafile(datafileContent: DatafileContent): string;
@@ -0,0 +1,59 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.generateHashForDatafile = generateHashForDatafile;
37
+ const crypto = __importStar(require("crypto"));
38
+ const base62chars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
39
+ function generateHashFromString(str, length = 10) {
40
+ const hashBuffer = crypto.createHash("sha256").update(str).digest();
41
+ // Convert buffer to base62 (alphanumeric)
42
+ let num = BigInt("0x" + hashBuffer.toString("hex"));
43
+ let base62 = "";
44
+ while (num > 0) {
45
+ // Convert the remainder to a number for indexing
46
+ const remainder = Number(num % 62n);
47
+ base62 = base62chars[remainder] + base62;
48
+ num = num / 62n;
49
+ }
50
+ // Return first 10 chars for a short hash (adjust length as needed)
51
+ return base62.slice(0, length);
52
+ }
53
+ function generateHashForDatafile(datafileContent) {
54
+ const copiedDatafileContent = { ...datafileContent };
55
+ copiedDatafileContent.revision = "";
56
+ const hash = generateHashFromString(JSON.stringify(copiedDatafileContent));
57
+ return hash;
58
+ }
59
+ //# sourceMappingURL=hashes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hashes.js","sourceRoot":"","sources":["../../src/builder/hashes.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsBA,0DAOC;AA7BD,+CAAiC;AAGjC,MAAM,WAAW,GAAG,gEAAgE,CAAC;AAErF,SAAS,sBAAsB,CAAC,GAAW,EAAE,MAAM,GAAG,EAAE;IACtD,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;IAEpE,0CAA0C;IAC1C,IAAI,GAAG,GAAG,MAAM,CAAC,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IACpD,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,OAAO,GAAG,GAAG,CAAC,EAAE,CAAC;QACf,iDAAiD;QACjD,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;QACpC,MAAM,GAAG,WAAW,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;QACzC,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAClB,CAAC;IAED,mEAAmE;IACnE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AACjC,CAAC;AAED,SAAgB,uBAAuB,CAAC,eAAgC;IACtE,MAAM,qBAAqB,GAAG,EAAE,GAAG,eAAe,EAAE,CAAC;IACrD,qBAAqB,CAAC,QAAQ,GAAG,EAAE,CAAC;IAEpC,MAAM,IAAI,GAAG,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAE3E,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1 @@
1
+ export * from "./buildProject";
@@ -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("./buildProject"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/builder/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B"}
@@ -0,0 +1,26 @@
1
+ import type { ProjectConfig } from "../config";
2
+ import { Datasource } from "../datasource";
3
+ export interface ParsedOptions {
4
+ _: string[];
5
+ [key: string]: any;
6
+ }
7
+ export interface PluginHandlerOptions {
8
+ rootDirectoryPath: string;
9
+ projectConfig: ProjectConfig;
10
+ datasource: Datasource;
11
+ parsed: ParsedOptions;
12
+ }
13
+ export interface Plugin {
14
+ command: string;
15
+ handler: (options: PluginHandlerOptions) => Promise<void | boolean>;
16
+ examples: {
17
+ command: string;
18
+ description: string;
19
+ }[];
20
+ }
21
+ export interface RunnerOptions {
22
+ rootDirectoryPath: string;
23
+ projectConfig?: ProjectConfig;
24
+ datasource?: Datasource;
25
+ }
26
+ export declare function runCLI(runnerOptions: RunnerOptions): Promise<void>;
package/lib/cli/cli.js ADDED
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.runCLI = runCLI;
4
+ const plugins_1 = require("./plugins");
5
+ async function runCLI(runnerOptions) {
6
+ const yargs = require("yargs");
7
+ let y = yargs(process.argv.slice(2)).usage("Usage: <command> [options]");
8
+ const registeredSubcommands = [];
9
+ const { rootDirectoryPath, projectConfig, datasource } = runnerOptions;
10
+ function registerPlugin(plugin) {
11
+ const subcommand = plugin.command.split(" ")[0];
12
+ if (registeredSubcommands.includes(subcommand)) {
13
+ console.warn(`Plugin "${subcommand}" already registered. Skipping.`);
14
+ return;
15
+ }
16
+ y = y.command({
17
+ command: plugin.command,
18
+ handler: async function (parsed) {
19
+ // @NOTE: in future, allow yargs options to be defined via plugins
20
+ if (parsed.schemaVersion && typeof parsed.schemaVersion !== "string") {
21
+ parsed.schemaVersion = parsed.schemaVersion.toString();
22
+ }
23
+ try {
24
+ const result = await plugin.handler({
25
+ rootDirectoryPath,
26
+ projectConfig,
27
+ datasource,
28
+ parsed,
29
+ });
30
+ if (result === false) {
31
+ process.exit(1);
32
+ }
33
+ }
34
+ catch (error) {
35
+ console.error(error);
36
+ process.exit(1);
37
+ }
38
+ },
39
+ });
40
+ for (const example of plugin.examples) {
41
+ y = y.example(`$0 ${example.command}`, example.description);
42
+ }
43
+ registeredSubcommands.push(subcommand);
44
+ }
45
+ // non project-based plugins
46
+ if (!projectConfig) {
47
+ for (const plugin of plugins_1.nonProjectPlugins) {
48
+ registerPlugin(plugin);
49
+ }
50
+ }
51
+ // project-based plugins
52
+ if (projectConfig) {
53
+ for (const plugin of [...plugins_1.projectBasedPlugins, ...(projectConfig.plugins || [])]) {
54
+ registerPlugin(plugin);
55
+ }
56
+ }
57
+ // common plugins
58
+ for (const plugin of plugins_1.commonPlugins) {
59
+ registerPlugin(plugin);
60
+ }
61
+ // show help if no command is provided
62
+ y.command({
63
+ command: "*",
64
+ handler() {
65
+ y.showHelp();
66
+ },
67
+ }).argv;
68
+ }
69
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli/cli.ts"],"names":[],"mappings":";;AAkCA,wBA2EC;AA1GD,uCAAkF;AA+B3E,KAAK,UAAU,MAAM,CAAC,aAA4B;IACvD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE/B,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;IACzE,MAAM,qBAAqB,GAAa,EAAE,CAAC;IAE3C,MAAM,EAAE,iBAAiB,EAAE,aAAa,EAAE,UAAU,EAAE,GAAG,aAAa,CAAC;IAEvE,SAAS,cAAc,CAAC,MAAc;QACpC,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAEhD,IAAI,qBAAqB,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/C,OAAO,CAAC,IAAI,CAAC,WAAW,UAAU,iCAAiC,CAAC,CAAC;YACrE,OAAO;QACT,CAAC;QAED,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;YACZ,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,OAAO,EAAE,KAAK,WAAW,MAAqB;gBAC5C,kEAAkE;gBAClE,IAAI,MAAM,CAAC,aAAa,IAAI,OAAO,MAAM,CAAC,aAAa,KAAK,QAAQ,EAAE,CAAC;oBACrE,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;gBACzD,CAAC;gBAED,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;wBAClC,iBAAiB;wBACjB,aAAa;wBACb,UAAU;wBACV,MAAM;qBACiB,CAAC,CAAC;oBAE3B,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;wBACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAClB,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC;SACF,CAAC,CAAC;QAEH,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACtC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,OAAO,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;QAC9D,CAAC;QAED,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACzC,CAAC;IAED,4BAA4B;IAC5B,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,KAAK,MAAM,MAAM,IAAI,2BAAiB,EAAE,CAAC;YACvC,cAAc,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,wBAAwB;IACxB,IAAI,aAAa,EAAE,CAAC;QAClB,KAAK,MAAM,MAAM,IAAI,CAAC,GAAG,6BAAmB,EAAE,GAAG,CAAC,aAAa,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YAChF,cAAc,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,iBAAiB;IACjB,KAAK,MAAM,MAAM,IAAI,uBAAa,EAAE,CAAC;QACnC,cAAc,CAAC,MAAM,CAAC,CAAC;IACzB,CAAC;IAED,sCAAsC;IACtC,CAAC,CAAC,OAAO,CAAC;QACR,OAAO,EAAE,GAAG;QACZ,OAAO;YACL,CAAC,CAAC,QAAQ,EAAE,CAAC;QACf,CAAC;KACF,CAAC,CAAC,IAAI,CAAC;AACV,CAAC"}
@@ -0,0 +1 @@
1
+ export * from "./cli";
@@ -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("./cli"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wCAAsB"}
@@ -0,0 +1,4 @@
1
+ import type { Plugin } from "./cli";
2
+ export declare const commonPlugins: Plugin[];
3
+ export declare const nonProjectPlugins: Plugin[];
4
+ export declare const projectBasedPlugins: Plugin[];
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.projectBasedPlugins = exports.nonProjectPlugins = exports.commonPlugins = void 0;
4
+ const config_1 = require("../config");
5
+ const linter_1 = require("../linter");
6
+ const builder_1 = require("../builder");
7
+ const tester_1 = require("../tester");
8
+ const init_1 = require("../init");
9
+ exports.commonPlugins = [];
10
+ exports.nonProjectPlugins = [init_1.initPlugin];
11
+ exports.projectBasedPlugins = [config_1.configPlugin, linter_1.lintPlugin, builder_1.buildPlugin, tester_1.testPlugin];
12
+ //# sourceMappingURL=plugins.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugins.js","sourceRoot":"","sources":["../../src/cli/plugins.ts"],"names":[],"mappings":";;;AAEA,sCAAyC;AACzC,sCAAuC;AACvC,wCAAyC;AACzC,sCAAuC;AACvC,kCAAqC;AAExB,QAAA,aAAa,GAAa,EAAE,CAAC;AAE7B,QAAA,iBAAiB,GAAa,CAAC,iBAAU,CAAC,CAAC;AAE3C,QAAA,mBAAmB,GAAa,CAAC,qBAAY,EAAE,mBAAU,EAAE,qBAAW,EAAE,mBAAU,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "./projectConfig";
2
+ export * from "./parsers";
@@ -0,0 +1,19 @@
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("./projectConfig"), exports);
18
+ __exportStar(require("./parsers"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC;AAChC,4CAA0B"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * If we want to add more built-in parsers,
3
+ * add them to this object with new file extension as the key,
4
+ * and a function that takes file content as string and returns parsed object as the value.
5
+ */
6
+ export declare const parsers: {
7
+ [key: string]: CustomParser;
8
+ };
9
+ export type BuiltInParser = keyof typeof parsers;
10
+ export interface CustomParser {
11
+ extension: string;
12
+ parse: <T>(content: string, filePath?: string) => T;
13
+ stringify: (content: any) => string;
14
+ }
15
+ export type Parser = BuiltInParser | CustomParser;
@@ -0,0 +1,65 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.parsers = void 0;
37
+ const YAML = __importStar(require("js-yaml"));
38
+ /**
39
+ * If we want to add more built-in parsers,
40
+ * add them to this object with new file extension as the key,
41
+ * and a function that takes file content as string and returns parsed object as the value.
42
+ */
43
+ exports.parsers = {
44
+ // YAML
45
+ yml: {
46
+ extension: "yml",
47
+ parse: function (content) {
48
+ return YAML.load(content);
49
+ },
50
+ stringify: function (content) {
51
+ return YAML.dump(content);
52
+ },
53
+ },
54
+ // JSON
55
+ json: {
56
+ extension: "json",
57
+ parse: function (content) {
58
+ return JSON.parse(content);
59
+ },
60
+ stringify: function (content) {
61
+ return JSON.stringify(content, null, 2);
62
+ },
63
+ },
64
+ };
65
+ //# sourceMappingURL=parsers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parsers.js","sourceRoot":"","sources":["../../src/config/parsers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8CAAgC;AAEhC;;;;GAIG;AACU,QAAA,OAAO,GAAoC;IACtD,OAAO;IACP,GAAG,EAAE;QACH,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,UAAa,OAAe;YACjC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAM,CAAC;QACjC,CAAC;QACD,SAAS,EAAE,UAAU,OAAY;YAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5B,CAAC;KACF;IAED,OAAO;IACP,IAAI,EAAE;QACJ,SAAS,EAAE,MAAM;QACjB,KAAK,EAAE,UAAa,OAAe;YACjC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAM,CAAC;QAClC,CAAC;QACD,SAAS,EAAE,UAAU,OAAY;YAC/B,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC1C,CAAC;KACF;CACF,CAAC"}
@@ -0,0 +1,42 @@
1
+ import { Parser } from "./parsers";
2
+ import type { Plugin } from "../cli";
3
+ export declare const EVENTS_DIRECTORY_NAME = "events";
4
+ export declare const ATTRIBUTES_DIRECTORY_NAME = "attributes";
5
+ export declare const DESTINATIONS_DIRECTORY_NAME = "destinations";
6
+ export declare const STATES_DIRECTORY_NAME = "states";
7
+ export declare const EFFECTS_DIRECTORY_NAME = "effects";
8
+ export declare const TESTS_DIRECTORY_NAME = "tests";
9
+ export declare const SYSTEM_DIRECTORY_NAME = ".eventvisor";
10
+ export declare const DATAFILES_DIRECTORY_NAME = "datafiles";
11
+ export declare const DATAFILE_NAME_PATTERN = "eventvisor-%s.json";
12
+ export declare const SITE_EXPORT_DIRECTORY_NAME = "out";
13
+ export declare const CONFIG_MODULE_NAME = "eventvisor.config.js";
14
+ export declare const ROOT_DIR_PLACEHOLDER = "<rootDir>";
15
+ export declare const DEFAULT_PRETTY_DATAFILE = false;
16
+ export declare const DEFAULT_TAGS: string[];
17
+ export declare const DEFAULT_PARSER: Parser;
18
+ export declare const SCHEMA_VERSION = "1";
19
+ export interface ProjectConfig {
20
+ eventsDirectoryPath: string;
21
+ attributesDirectoryPath: string;
22
+ destinationsDirectoryPath: string;
23
+ statesDirectoryPath: string;
24
+ effectsDirectoryPath: string;
25
+ testsDirectoryPath: string;
26
+ datafilesDirectoryPath: string;
27
+ systemDirectoryPath: string;
28
+ datafileNamePattern: string;
29
+ tags: string[];
30
+ adapter: any;
31
+ plugins: Plugin[];
32
+ parser: Parser;
33
+ prettyDatafile: boolean;
34
+ stringify: boolean;
35
+ }
36
+ export declare function getProjectConfig(rootDirectoryPath: string): ProjectConfig;
37
+ export interface ShowProjectConfigOptions {
38
+ json?: boolean;
39
+ pretty?: boolean;
40
+ }
41
+ export declare function showProjectConfig(projectConfig: ProjectConfig, options?: ShowProjectConfigOptions): void;
42
+ export declare const configPlugin: Plugin;