@supernova-studio/pulsar-core 1.0.8 → 1.0.11

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 (217) hide show
  1. package/build/browser/pulsar.js +141629 -0
  2. package/build/browser/pulsar.min.js +270 -0
  3. package/build/main/browser-bundle.d.ts +1 -0
  4. package/build/main/browser-bundle.js +16 -0
  5. package/build/main/browser-bundle.js.map +1 -0
  6. package/build/main/engine/ExportEngine.d.ts +17 -0
  7. package/build/main/engine/ExportEngine.js +122 -0
  8. package/build/main/engine/ExportEngine.js.map +1 -0
  9. package/build/main/engine/configuration/ExportConfiguration.d.ts +18 -0
  10. package/build/main/engine/configuration/ExportConfiguration.js +47 -0
  11. package/build/main/engine/configuration/ExportConfiguration.js.map +1 -0
  12. package/build/main/engine/generation/ExportDataProducer.d.ts +15 -0
  13. package/build/main/engine/generation/ExportDataProducer.js +100 -0
  14. package/build/main/engine/generation/ExportDataProducer.js.map +1 -0
  15. package/build/main/engine/generation/queue/ExportDataQueue.d.ts +16 -0
  16. package/build/main/engine/generation/queue/ExportDataQueue.js +72 -0
  17. package/build/main/engine/generation/queue/ExportDataQueue.js.map +1 -0
  18. package/build/main/engine/generation/queue/ExportDataQueueOperation.d.ts +6 -0
  19. package/build/main/engine/generation/queue/ExportDataQueueOperation.js +36 -0
  20. package/build/main/engine/generation/queue/ExportDataQueueOperation.js.map +1 -0
  21. package/build/main/engine/generation/requests/ExportDataEmittedResponseProducer.d.ts +7 -0
  22. package/build/main/engine/generation/requests/ExportDataEmittedResponseProducer.js +54 -0
  23. package/build/main/engine/generation/requests/ExportDataEmittedResponseProducer.js.map +1 -0
  24. package/build/main/engine/generation/requests/ExportDataPrimaryResponseProducer.d.ts +7 -0
  25. package/build/main/engine/generation/requests/ExportDataPrimaryResponseProducer.js +40 -0
  26. package/build/main/engine/generation/requests/ExportDataPrimaryResponseProducer.js.map +1 -0
  27. package/build/main/engine/generation/requests/ExportDataRequest.d.ts +19 -0
  28. package/build/main/engine/generation/requests/ExportDataRequest.js +55 -0
  29. package/build/main/engine/generation/requests/ExportDataRequest.js.map +1 -0
  30. package/build/main/engine/generation/requests/ExportDataRequestDataStore.d.ts +16 -0
  31. package/build/main/engine/generation/requests/ExportDataRequestDataStore.js +57 -0
  32. package/build/main/engine/generation/requests/ExportDataRequestDataStore.js.map +1 -0
  33. package/build/main/engine/generation/requests/ExportDataRequestNameStore.d.ts +22 -0
  34. package/build/main/engine/generation/requests/ExportDataRequestNameStore.js +86 -0
  35. package/build/main/engine/generation/requests/ExportDataRequestNameStore.js.map +1 -0
  36. package/build/main/engine/generation/requests/ExportDataRequestProducer.d.ts +16 -0
  37. package/build/main/engine/generation/requests/ExportDataRequestProducer.js +149 -0
  38. package/build/main/engine/generation/requests/ExportDataRequestProducer.js.map +1 -0
  39. package/build/main/engine/generation/requests/ExportDataResponse.d.ts +13 -0
  40. package/build/main/engine/generation/requests/ExportDataResponse.js +30 -0
  41. package/build/main/engine/generation/requests/ExportDataResponse.js.map +1 -0
  42. package/build/main/engine/generation/requests/specific/dsm/ExportDataRequestBlueprint.d.ts +14 -0
  43. package/build/main/engine/generation/requests/specific/dsm/ExportDataRequestBlueprint.js +76 -0
  44. package/build/main/engine/generation/requests/specific/dsm/ExportDataRequestBlueprint.js.map +1 -0
  45. package/build/main/engine/generation/requests/specific/dsm/ExportDataRequestDSMComponent.d.ts +13 -0
  46. package/build/main/engine/generation/requests/specific/dsm/ExportDataRequestDSMComponent.js +47 -0
  47. package/build/main/engine/generation/requests/specific/dsm/ExportDataRequestDSMComponent.js.map +1 -0
  48. package/build/main/engine/generation/requests/specific/dsm/ExportDataRequestDSMComponentGroup.d.ts +13 -0
  49. package/build/main/engine/generation/requests/specific/dsm/ExportDataRequestDSMComponentGroup.js +47 -0
  50. package/build/main/engine/generation/requests/specific/dsm/ExportDataRequestDSMComponentGroup.js.map +1 -0
  51. package/build/main/engine/generation/requests/specific/dsm/ExportDataRequestDSMGeneric.d.ts +11 -0
  52. package/build/main/engine/generation/requests/specific/dsm/ExportDataRequestDSMGeneric.js +43 -0
  53. package/build/main/engine/generation/requests/specific/dsm/ExportDataRequestDSMGeneric.js.map +1 -0
  54. package/build/main/engine/generation/requests/specific/dsm/ExportDataRequestDSMTheme.d.ts +13 -0
  55. package/build/main/engine/generation/requests/specific/dsm/ExportDataRequestDSMTheme.js +47 -0
  56. package/build/main/engine/generation/requests/specific/dsm/ExportDataRequestDSMTheme.js.map +1 -0
  57. package/build/main/engine/generation/requests/specific/dsm/ExportDataRequestDSMTokenGroup.d.ts +13 -0
  58. package/build/main/engine/generation/requests/specific/dsm/ExportDataRequestDSMTokenGroup.js +47 -0
  59. package/build/main/engine/generation/requests/specific/dsm/ExportDataRequestDSMTokenGroup.js.map +1 -0
  60. package/build/main/engine/generation/requests/specific/dsm/ExportDataRequestDSMTokenType.d.ts +13 -0
  61. package/build/main/engine/generation/requests/specific/dsm/ExportDataRequestDSMTokenType.js +47 -0
  62. package/build/main/engine/generation/requests/specific/dsm/ExportDataRequestDSMTokenType.js.map +1 -0
  63. package/build/main/engine/items/ExportItemProducer.d.ts +14 -0
  64. package/build/main/engine/items/ExportItemProducer.js +70 -0
  65. package/build/main/engine/items/ExportItemProducer.js.map +1 -0
  66. package/build/main/engine/items/construction/ExportItem.d.ts +8 -0
  67. package/build/main/engine/items/construction/ExportItem.js +25 -0
  68. package/build/main/engine/items/construction/ExportItem.js.map +1 -0
  69. package/build/main/engine/items/construction/ExportItemBuilder.d.ts +9 -0
  70. package/build/main/engine/items/construction/ExportItemBuilder.js +43 -0
  71. package/build/main/engine/items/construction/ExportItemBuilder.js.map +1 -0
  72. package/build/main/engine/items/queue/ExportItemQueue.d.ts +16 -0
  73. package/build/main/engine/items/queue/ExportItemQueue.js +70 -0
  74. package/build/main/engine/items/queue/ExportItemQueue.js.map +1 -0
  75. package/build/main/engine/items/queue/ExportItemQueueOperation.d.ts +6 -0
  76. package/build/main/engine/items/queue/ExportItemQueueOperation.js +36 -0
  77. package/build/main/engine/items/queue/ExportItemQueueOperation.js.map +1 -0
  78. package/build/main/engine/items/requests/ExportItemRequest.d.ts +16 -0
  79. package/build/main/engine/items/requests/ExportItemRequest.js +68 -0
  80. package/build/main/engine/items/requests/ExportItemRequest.js.map +1 -0
  81. package/build/main/engine/items/requests/ExportItemRequestProducer.d.ts +8 -0
  82. package/build/main/engine/items/requests/ExportItemRequestProducer.js +24 -0
  83. package/build/main/engine/items/requests/ExportItemRequestProducer.js.map +1 -0
  84. package/build/main/engine/items/requests/ExportItemResponse.d.ts +9 -0
  85. package/build/main/engine/items/requests/ExportItemResponse.js +25 -0
  86. package/build/main/engine/items/requests/ExportItemResponse.js.map +1 -0
  87. package/build/main/engine/items/requests/ExportItemResponseProducer.d.ts +7 -0
  88. package/build/main/engine/items/requests/ExportItemResponseProducer.js +45 -0
  89. package/build/main/engine/items/requests/ExportItemResponseProducer.js.map +1 -0
  90. package/build/main/engine/loaders/BlueprintLoader.d.ts +9 -0
  91. package/build/main/engine/loaders/BlueprintLoader.js +55 -0
  92. package/build/main/engine/loaders/BlueprintLoader.js.map +1 -0
  93. package/build/main/engine/writing/queue/ExportWriterQueue.d.ts +16 -0
  94. package/build/main/engine/writing/queue/ExportWriterQueue.js +70 -0
  95. package/build/main/engine/writing/queue/ExportWriterQueue.js.map +1 -0
  96. package/build/main/engine/writing/queue/ExportWriterQueueOperation.d.ts +6 -0
  97. package/build/main/engine/writing/queue/ExportWriterQueueOperation.js +36 -0
  98. package/build/main/engine/writing/queue/ExportWriterQueueOperation.js.map +1 -0
  99. package/build/main/engine/writing/requests/ExportWriterRequest.d.ts +14 -0
  100. package/build/main/engine/writing/requests/ExportWriterRequest.js +40 -0
  101. package/build/main/engine/writing/requests/ExportWriterRequest.js.map +1 -0
  102. package/build/main/engine/writing/requests/ExportWriterRequestProducer.d.ts +8 -0
  103. package/build/main/engine/writing/requests/ExportWriterRequestProducer.js +30 -0
  104. package/build/main/engine/writing/requests/ExportWriterRequestProducer.js.map +1 -0
  105. package/build/main/engine/writing/requests/ExportWriterResponse.d.ts +9 -0
  106. package/build/main/engine/writing/requests/ExportWriterResponse.js +25 -0
  107. package/build/main/engine/writing/requests/ExportWriterResponse.js.map +1 -0
  108. package/build/main/engine/writing/requests/ExportWriterResponseProducer.d.ts +7 -0
  109. package/build/main/engine/writing/requests/ExportWriterResponseProducer.js +40 -0
  110. package/build/main/engine/writing/requests/ExportWriterResponseProducer.js.map +1 -0
  111. package/build/main/engine/writing/writers/ExportItemWriter.d.ts +14 -0
  112. package/build/main/engine/writing/writers/ExportItemWriter.js +70 -0
  113. package/build/main/engine/writing/writers/ExportItemWriter.js.map +1 -0
  114. package/build/main/engine/writing/writers/ExportWriterRuleProcessor.d.ts +9 -0
  115. package/build/main/engine/writing/writers/ExportWriterRuleProcessor.js +63 -0
  116. package/build/main/engine/writing/writers/ExportWriterRuleProcessor.js.map +1 -0
  117. package/build/main/engine/writing/writers/memory/ExportWriterMemory.d.ts +4 -0
  118. package/build/main/engine/writing/writers/memory/ExportWriterMemory.js +29 -0
  119. package/build/main/engine/writing/writers/memory/ExportWriterMemory.js.map +1 -0
  120. package/build/main/engine/writing/writers/memory/ExportWriterMemoryRequest.d.ts +5 -0
  121. package/build/main/engine/writing/writers/memory/ExportWriterMemoryRequest.js +59 -0
  122. package/build/main/engine/writing/writers/memory/ExportWriterMemoryRequest.js.map +1 -0
  123. package/build/main/engine/writing/writers/memory/ExportWriterStore.d.ts +5 -0
  124. package/build/main/engine/writing/writers/memory/ExportWriterStore.js +33 -0
  125. package/build/main/engine/writing/writers/memory/ExportWriterStore.js.map +1 -0
  126. package/build/main/exports.d.ts +4 -0
  127. package/build/main/exports.js +13 -0
  128. package/build/main/exports.js.map +1 -0
  129. package/build/main/index.d.ts +1 -0
  130. package/build/main/index.js +14 -0
  131. package/build/main/index.js.map +1 -0
  132. package/build/main/model/dsm/DSMReferenceStore.d.ts +28 -0
  133. package/build/main/model/dsm/DSMReferenceStore.js +100 -0
  134. package/build/main/model/dsm/DSMReferenceStore.js.map +1 -0
  135. package/build/main/model/exporters/Exporter.d.ts +51 -0
  136. package/build/main/model/exporters/Exporter.js +98 -0
  137. package/build/main/model/exporters/Exporter.js.map +1 -0
  138. package/build/main/model/maps/ExporterMapBlueprint.d.ts +12 -0
  139. package/build/main/model/maps/ExporterMapBlueprint.js +39 -0
  140. package/build/main/model/maps/ExporterMapBlueprint.js.map +1 -0
  141. package/build/main/model/sources/ExporterSource.d.ts +25 -0
  142. package/build/main/model/sources/ExporterSource.js +58 -0
  143. package/build/main/model/sources/ExporterSource.js.map +1 -0
  144. package/build/main/pulsar/Pulsar.d.ts +105 -0
  145. package/build/main/pulsar/Pulsar.js +351 -0
  146. package/build/main/pulsar/Pulsar.js.map +1 -0
  147. package/build/main/pulsar/PulsarInterface.d.ts +152 -0
  148. package/build/main/pulsar/PulsarInterface.js +37 -0
  149. package/build/main/pulsar/PulsarInterface.js.map +1 -0
  150. package/build/main/pulsar/PulsarStaticAnalysis.d.ts +23 -0
  151. package/build/main/pulsar/PulsarStaticAnalysis.js +47 -0
  152. package/build/main/pulsar/PulsarStaticAnalysis.js.map +1 -0
  153. package/build/main/pulsar/PulsarStaticAnalysisInterface.d.ts +10 -0
  154. package/build/main/pulsar/PulsarStaticAnalysisInterface.js +10 -0
  155. package/build/main/pulsar/PulsarStaticAnalysisInterface.js.map +1 -0
  156. package/build/main/pulsar/managers/PulsarBlueprintManager.d.ts +16 -0
  157. package/build/main/pulsar/managers/PulsarBlueprintManager.js +76 -0
  158. package/build/main/pulsar/managers/PulsarBlueprintManager.js.map +1 -0
  159. package/build/main/pulsar/managers/PulsarCIManager.d.ts +25 -0
  160. package/build/main/pulsar/managers/PulsarCIManager.js +220 -0
  161. package/build/main/pulsar/managers/PulsarCIManager.js.map +1 -0
  162. package/build/main/pulsar/managers/PulsarCodeManager.d.ts +24 -0
  163. package/build/main/pulsar/managers/PulsarCodeManager.js +180 -0
  164. package/build/main/pulsar/managers/PulsarCodeManager.js.map +1 -0
  165. package/build/main/pulsar/managers/PulsarConfigurationManager.d.ts +16 -0
  166. package/build/main/pulsar/managers/PulsarConfigurationManager.js +48 -0
  167. package/build/main/pulsar/managers/PulsarConfigurationManager.js.map +1 -0
  168. package/build/main/pulsar/managers/PulsarExporterManager.d.ts +25 -0
  169. package/build/main/pulsar/managers/PulsarExporterManager.js +121 -0
  170. package/build/main/pulsar/managers/PulsarExporterManager.js.map +1 -0
  171. package/build/main/pulsar/managers/generators/PulsarExporterJSONGenerator.d.ts +16 -0
  172. package/build/main/pulsar/managers/generators/PulsarExporterJSONGenerator.js +272 -0
  173. package/build/main/pulsar/managers/generators/PulsarExporterJSONGenerator.js.map +1 -0
  174. package/build/main/pulsar/managers/generators/PulsarExporterZIPGenerator.d.ts +7 -0
  175. package/build/main/pulsar/managers/generators/PulsarExporterZIPGenerator.js +63 -0
  176. package/build/main/pulsar/managers/generators/PulsarExporterZIPGenerator.js.map +1 -0
  177. package/build/main/pulsar/managers/loaders/PulsarBaseLoader.d.ts +5 -0
  178. package/build/main/pulsar/managers/loaders/PulsarBaseLoader.js +28 -0
  179. package/build/main/pulsar/managers/loaders/PulsarBaseLoader.js.map +1 -0
  180. package/build/main/pulsar/managers/loaders/local/PulsarFSLoader.d.ts +11 -0
  181. package/build/main/pulsar/managers/loaders/local/PulsarFSLoader.js +97 -0
  182. package/build/main/pulsar/managers/loaders/local/PulsarFSLoader.js.map +1 -0
  183. package/build/main/pulsar/managers/loaders/memory/PulsarExporterJSONLoader.d.ts +9 -0
  184. package/build/main/pulsar/managers/loaders/memory/PulsarExporterJSONLoader.js +81 -0
  185. package/build/main/pulsar/managers/loaders/memory/PulsarExporterJSONLoader.js.map +1 -0
  186. package/build/main/pulsar/managers/loaders/memory/PulsarExporterMemoryLoader.d.ts +20 -0
  187. package/build/main/pulsar/managers/loaders/memory/PulsarExporterMemoryLoader.js +183 -0
  188. package/build/main/pulsar/managers/loaders/memory/PulsarExporterMemoryLoader.js.map +1 -0
  189. package/build/main/pulsar/managers/loaders/remote/PulsarExporterGitHubLoader.d.ts +12 -0
  190. package/build/main/pulsar/managers/loaders/remote/PulsarExporterGitHubLoader.js +143 -0
  191. package/build/main/pulsar/managers/loaders/remote/PulsarExporterGitHubLoader.js.map +1 -0
  192. package/build/main/pulsar/managers/loaders/remote/PulsarExporterZIPLoader.d.ts +12 -0
  193. package/build/main/pulsar/managers/loaders/remote/PulsarExporterZIPLoader.js +115 -0
  194. package/build/main/pulsar/managers/loaders/remote/PulsarExporterZIPLoader.js.map +1 -0
  195. package/build/main/tests/TestConfiguration.d.ts +9 -0
  196. package/build/main/tests/TestConfiguration.js +25 -0
  197. package/build/main/tests/TestConfiguration.js.map +1 -0
  198. package/build/main/tests/casebuilders/ci.d.ts +12 -0
  199. package/build/main/tests/casebuilders/ci.js +38 -0
  200. package/build/main/tests/casebuilders/ci.js.map +1 -0
  201. package/build/main/tests/casebuilders/configuration.d.ts +5 -0
  202. package/build/main/tests/casebuilders/configuration.js +25 -0
  203. package/build/main/tests/casebuilders/configuration.js.map +1 -0
  204. package/build/main/tests/casebuilders/dsm.d.ts +7 -0
  205. package/build/main/tests/casebuilders/dsm.js +57 -0
  206. package/build/main/tests/casebuilders/dsm.js.map +1 -0
  207. package/build/main/tests/casebuilders/modelObjects.d.ts +13 -0
  208. package/build/main/tests/casebuilders/modelObjects.js +120 -0
  209. package/build/main/tests/casebuilders/modelObjects.js.map +1 -0
  210. package/build/main/tools/Logger.d.ts +27 -0
  211. package/build/main/tools/Logger.js +98 -0
  212. package/build/main/tools/Logger.js.map +1 -0
  213. package/build/main/tools/LoggerDefaultMessages.d.ts +13 -0
  214. package/build/main/tools/LoggerDefaultMessages.js +41 -0
  215. package/build/main/tools/LoggerDefaultMessages.js.map +1 -0
  216. package/build/tsconfig.tsbuildinfo +2829 -0
  217. package/package.json +9 -3
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ // PCPulsarFSLoader.ts
3
+ // Supernova
4
+ //
5
+ // Created by Jiri Trecak.
6
+ // Copyright © 2020 Jiri Trecak. All rights reserved.
7
+ //
8
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.PCPulsarFSLoader = void 0;
13
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
14
+ // MARK: - Imports
15
+ const PulsarBaseLoader_1 = require("../PulsarBaseLoader");
16
+ const PulsarExporterMemoryLoader_1 = require("../memory/PulsarExporterMemoryLoader");
17
+ const fs_1 = __importDefault(require("fs"));
18
+ const util_1 = require("util");
19
+ const path_1 = require("path");
20
+ const readdir = util_1.promisify(fs_1.default.readdir);
21
+ const stat = util_1.promisify(fs_1.default.stat);
22
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
23
+ // MARK: - Definitions
24
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
25
+ // MARK: - Class
26
+ class PCPulsarFSLoader extends PulsarBaseLoader_1.PCPulsarBaseLoader {
27
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
28
+ // MARK: - Setup
29
+ constructor(sourceZIPURL) {
30
+ super();
31
+ this.exporterRootURL = sourceZIPURL;
32
+ }
33
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
34
+ // MARK: - Initialization of the exporter
35
+ async initialize() {
36
+ let processedFiles = await this.loadFilesFromRootDirectory(this.exporterRootURL);
37
+ let unpackager = new PulsarExporterMemoryLoader_1.PCPulsarExporterMemoryLoader(processedFiles);
38
+ let exporter = await unpackager.constructExporterFromSourceFiles();
39
+ return exporter;
40
+ }
41
+ async loadFilesFromRootDirectory(rootDirectory) {
42
+ let processedFiles = new Map();
43
+ let files = (await this.getFiles(rootDirectory));
44
+ // Fetch each file from zip (only if not directory)
45
+ for (let file of files) {
46
+ // Obtain directory and filename of the unzipped file
47
+ let parsedFile = await this.loadFileAtUrl(file, rootDirectory);
48
+ if (parsedFile) {
49
+ processedFiles.set(parsedFile.key, parsedFile);
50
+ }
51
+ }
52
+ return processedFiles;
53
+ }
54
+ async getFiles(directory) {
55
+ const subdirs = await readdir(directory);
56
+ const files = await Promise.all(subdirs.map(async (subdir) => {
57
+ const res = path_1.resolve(directory, subdir);
58
+ return (await stat(res)).isDirectory() ? this.getFiles(res) : res;
59
+ }));
60
+ return files.reduce((a, f) => a.concat(f), []);
61
+ }
62
+ async loadFileAtUrl(filePath, rootDirectory) {
63
+ // Only retrieve files that are .pr or .json
64
+ let components = filePath.split('/');
65
+ // Extract filename, extension and paths
66
+ let filename = components[components.length - 1];
67
+ let fullpath = components.join('/');
68
+ // Extract directory
69
+ components.pop();
70
+ let directory = components.join('/');
71
+ // Get extension and check whether it is correct format
72
+ let nameParts = filename.split('.');
73
+ let extension;
74
+ let name;
75
+ if (nameParts.length >= 2) {
76
+ extension = nameParts[nameParts.length - 1];
77
+ nameParts.pop();
78
+ name = nameParts.join('.');
79
+ }
80
+ // Only pulsar and json extension are of interest to us
81
+ if (extension !== 'pr' && extension !== 'json') {
82
+ return null;
83
+ }
84
+ // Extract content
85
+ let content = fs_1.default.readFileSync(filePath, 'utf-8');
86
+ return {
87
+ key: fullpath.substring(rootDirectory.length + 1),
88
+ filename: filename,
89
+ name: name,
90
+ extension: extension,
91
+ directory: directory.substring(rootDirectory.length + 1),
92
+ content: content
93
+ };
94
+ }
95
+ }
96
+ exports.PCPulsarFSLoader = PCPulsarFSLoader;
97
+ //# sourceMappingURL=PulsarFSLoader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PulsarFSLoader.js","sourceRoot":"","sources":["../../../../../../src/pulsar/managers/loaders/local/PulsarFSLoader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { PCPulsarBaseLoader } from '../PulsarBaseLoader';
2
+ import { PCExporter } from '../../../../model/exporters/Exporter';
3
+ import { ExporterPackageFileExtractionData } from './PulsarExporterMemoryLoader';
4
+ export declare class PCPulsarExporterJSONLoader extends PCPulsarBaseLoader {
5
+ blob: string | Object;
6
+ constructor(blob: string | Object);
7
+ initialize(): Promise<PCExporter>;
8
+ validateBlobEntry(entry: ExporterPackageFileExtractionData): void;
9
+ }
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ // PulsarExporterJSONLoader.ts
3
+ // Supernova
4
+ //
5
+ // Created by Jiri Trecak.
6
+ // Copyright © 2020 Jiri Trecak. All rights reserved.
7
+ //
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.PCPulsarExporterJSONLoader = void 0;
10
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
11
+ // MARK: - Imports
12
+ const PulsarBaseLoader_1 = require("../PulsarBaseLoader");
13
+ const PulsarExporterMemoryLoader_1 = require("./PulsarExporterMemoryLoader");
14
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
15
+ // MARK: - Definitions
16
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
17
+ // MARK: - Class
18
+ class PCPulsarExporterJSONLoader extends PulsarBaseLoader_1.PCPulsarBaseLoader {
19
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
20
+ // MARK: - Setup
21
+ constructor(blob) {
22
+ super();
23
+ this.blob = blob;
24
+ }
25
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
26
+ // MARK: - Initialization of the exporter
27
+ async initialize() {
28
+ let processedFiles = new Map();
29
+ let processedBlob;
30
+ if (typeof this.blob === 'object') {
31
+ processedBlob = this.blob;
32
+ }
33
+ else if (typeof this.blob === 'string') {
34
+ processedBlob = JSON.parse(this.blob);
35
+ }
36
+ else {
37
+ throw new Error('Unsupported blob type, supported: Object or JSON representation');
38
+ }
39
+ // Process each file of blob
40
+ if (processedBlob instanceof Array) {
41
+ for (let item of processedBlob) {
42
+ // Validate that item has all requested blob properties
43
+ this.validateBlobEntry(item);
44
+ // Create item from the blob
45
+ let correctItem = item;
46
+ processedFiles.set(correctItem.key, correctItem);
47
+ }
48
+ let unpackager = new PulsarExporterMemoryLoader_1.PCPulsarExporterMemoryLoader(processedFiles);
49
+ let exporter = await unpackager.constructExporterFromSourceFiles();
50
+ return exporter;
51
+ }
52
+ else {
53
+ throw new Error('Blob must contain array of file descriptors');
54
+ }
55
+ }
56
+ validateBlobEntry(entry) {
57
+ if (!(entry instanceof Object)) {
58
+ throw new Error('File descriptor must be provided and must be object');
59
+ }
60
+ if (typeof entry.directory !== 'string') {
61
+ throw new Error('File descriptor must contain directory attribute');
62
+ }
63
+ if (typeof entry.content !== 'string') {
64
+ throw new Error('File descriptor must contain content attribute');
65
+ }
66
+ if (typeof entry.extension !== 'string') {
67
+ throw new Error('File descriptor must contain extension attribute');
68
+ }
69
+ if (typeof entry.filename !== 'string') {
70
+ throw new Error('File descriptor must contain filename attribute');
71
+ }
72
+ if (typeof entry.key !== 'string') {
73
+ throw new Error('File descriptor must contain key attribute');
74
+ }
75
+ if (typeof entry.name !== 'string') {
76
+ throw new Error('File descriptor must contain name attribute');
77
+ }
78
+ }
79
+ }
80
+ exports.PCPulsarExporterJSONLoader = PCPulsarExporterJSONLoader;
81
+ //# sourceMappingURL=PulsarExporterJSONLoader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PulsarExporterJSONLoader.js","sourceRoot":"","sources":["../../../../../../src/pulsar/managers/loaders/memory/PulsarExporterJSONLoader.ts"],"names":[],"mappings":";AAAA,+BAA+B;AAC/B,aAAa;AACb,EAAE;AACF,2BAA2B;AAC3B,sDAAsD;AACtD,EAAE;;;AAEF,8GAA8G;AAC9G,kBAAkB;AAElB,0DAAwD;AAExD,6EAA8G;AAE9G,8GAA8G;AAC9G,sBAAsB;AAEtB,8GAA8G;AAC9G,gBAAgB;AAEhB,MAAa,0BAA2B,SAAQ,qCAAkB;IAMhE,8GAA8G;IAC9G,gBAAgB;IAEhB,YAAY,IAAqB;QAC/B,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;IAED,8GAA8G;IAC9G,yCAAyC;IAEzC,KAAK,CAAC,UAAU;QACd,IAAI,cAAc,GAAG,IAAI,GAAG,EAA6C,CAAA;QAEzE,IAAI,aAAqB,CAAA;QACzB,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;YACjC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAA;SAC1B;aAAM,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;YACxC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;SACtC;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAA;SACnF;QAED,4BAA4B;QAC5B,IAAI,aAAa,YAAY,KAAK,EAAE;YAClC,KAAK,IAAI,IAAI,IAAI,aAAa,EAAE;gBAC9B,uDAAuD;gBACvD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;gBAE5B,4BAA4B;gBAC5B,IAAI,WAAW,GAAG,IAAyC,CAAA;gBAC3D,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE,WAAW,CAAC,CAAA;aACjD;YAED,IAAI,UAAU,GAAG,IAAI,yDAA4B,CAAC,cAAc,CAAC,CAAA;YACjE,IAAI,QAAQ,GAAG,MAAM,UAAU,CAAC,gCAAgC,EAAE,CAAA;YAClE,OAAO,QAAQ,CAAA;SAChB;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;SAC/D;IACH,CAAC;IAED,iBAAiB,CAAC,KAAwC;QACxD,IAAI,CAAC,CAAC,KAAK,YAAY,MAAM,CAAC,EAAE;YAC9B,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAA;SACvE;QAED,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,EAAE;YACvC,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAA;SACpE;QACD,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE;YACrC,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAA;SAClE;QACD,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,EAAE;YACvC,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAA;SACpE;QACD,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,EAAE;YACtC,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAA;SACnE;QACD,IAAI,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;YACjC,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAA;SAC9D;QACD,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;YAClC,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;SAC/D;IACH,CAAC;CACF;AAxED,gEAwEC"}
@@ -0,0 +1,20 @@
1
+ import { PCPulsarBaseLoader } from '../PulsarBaseLoader';
2
+ import { PCExporter } from '../../../../model/exporters/Exporter';
3
+ export declare type ExporterPackageExtractionData = Map<string, ExporterPackageFileExtractionData>;
4
+ export declare type ExporterPackageFileExtractionData = {
5
+ directory: string;
6
+ filename: string;
7
+ name: string;
8
+ extension: string;
9
+ content: string;
10
+ key: string;
11
+ };
12
+ export declare class PCPulsarExporterMemoryLoader extends PCPulsarBaseLoader {
13
+ sourceFiles: ExporterPackageExtractionData;
14
+ constructor(sourceFiles: ExporterPackageExtractionData);
15
+ constructExporterFromSourceFiles(): Promise<PCExporter>;
16
+ private loadSourcesFromSourceDirectory;
17
+ private enhanceSourcesWithConfiguration;
18
+ private loadOutputMapping;
19
+ private validateExporterConfiguration;
20
+ }
@@ -0,0 +1,183 @@
1
+ "use strict";
2
+ //
3
+ // PulsarExporterMemoryLoader.ts
4
+ // Supernova
5
+ //
6
+ // Created by Jiri Trecak.
7
+ // Copyright © 2020 Jiri Trecak. All rights reserved.
8
+ //
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.PCPulsarExporterMemoryLoader = void 0;
11
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
12
+ // MARK: - Imports
13
+ const PulsarBaseLoader_1 = require("../PulsarBaseLoader");
14
+ const Exporter_1 = require("../../../../model/exporters/Exporter");
15
+ const ExporterSource_1 = require("../../../../model/sources/ExporterSource");
16
+ const ExporterMapBlueprint_1 = require("../../../../model/maps/ExporterMapBlueprint");
17
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
18
+ // MARK: - Class
19
+ class PCPulsarExporterMemoryLoader extends PulsarBaseLoader_1.PCPulsarBaseLoader {
20
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
21
+ // MARK: - Setup
22
+ constructor(sourceFiles) {
23
+ super();
24
+ this.sourceFiles = sourceFiles;
25
+ }
26
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
27
+ // MARK: - Initialization of the exporter
28
+ async constructExporterFromSourceFiles() {
29
+ // Retrieve and validate configuration file
30
+ let configurationFile = this.sourceFiles.get('exporter.json');
31
+ if (!configurationFile) {
32
+ throw new Error('exporter.json not found it root directory of the exporter package');
33
+ }
34
+ try {
35
+ // Parse and validate configuration file
36
+ let parsedConfiguration = JSON.parse(configurationFile.content);
37
+ this.validateExporterConfiguration(parsedConfiguration);
38
+ // Create exporter based on the configuration
39
+ let exporter = new Exporter_1.PCExporter(parsedConfiguration);
40
+ // Load all sources including their configuration
41
+ this.loadSourcesFromSourceDirectory(exporter);
42
+ this.enhanceSourcesWithConfiguration(exporter);
43
+ // Create output definitions
44
+ this.loadOutputMapping(exporter);
45
+ // Exporter fully prepared and validated, enjoy :)
46
+ return exporter;
47
+ }
48
+ catch (error) {
49
+ throw error;
50
+ }
51
+ }
52
+ loadSourcesFromSourceDirectory(exporter) {
53
+ let sources = new Array();
54
+ for (let sourceDefinition of this.sourceFiles.values()) {
55
+ // Only sources inside the source directory
56
+ if (sourceDefinition.directory.startsWith(exporter.sourceDirectory)) {
57
+ let source = new ExporterSource_1.PCExporterSource(sourceDefinition.name, sourceDefinition.directory, sourceDefinition.content);
58
+ sources.push(source);
59
+ }
60
+ }
61
+ exporter.linkSources(sources);
62
+ }
63
+ enhanceSourcesWithConfiguration(exporter) {
64
+ // Load the output configuration file, if any
65
+ if (exporter.sourceConfigFilePath == null) {
66
+ return;
67
+ }
68
+ let configPath = exporter.sourceConfigFilePath;
69
+ let configFile = this.sourceFiles.get(configPath);
70
+ // Configuration file must be present when defined, otherwise it is ignored
71
+ if (!configFile) {
72
+ throw `Could not find source configuration file at ${configPath}`;
73
+ }
74
+ // Configuration file must contain source definitions
75
+ let parsedConfiguration = JSON.parse(configFile.content);
76
+ // Update each source. If defined, source is required and must be valid configuration object
77
+ // Note: configuration keys are optional, if user defines something else, it is ignored
78
+ for (const [sourceId, configuration] of Object.entries(parsedConfiguration)) {
79
+ let source = exporter.sourceById(sourceId);
80
+ if (!source) {
81
+ throw `Source configuration file defines source id ${sourceId} but there is no such file`;
82
+ }
83
+ if (!(configuration instanceof Object)) {
84
+ throw `Source configuration for source id ${sourceId} must be key/value object`;
85
+ }
86
+ source.loadBlueprintConfiguration(configuration);
87
+ }
88
+ }
89
+ loadOutputMapping(exporter) {
90
+ // Load the output configuration file, if any
91
+ if (exporter.outputConfigFilePath == null) {
92
+ throw `Output configuration file is not defined inside exporter.json file`;
93
+ }
94
+ let configPath = exporter.outputConfigFilePath;
95
+ let configFile = this.sourceFiles.get(configPath);
96
+ // Configuration file must be present when defined, otherwise it is ignored
97
+ if (!configFile) {
98
+ throw `Could not find output configuration file at ${configPath}`;
99
+ }
100
+ // Configuration file must contain source definitions
101
+ let parsedConfiguration = JSON.parse(configFile.content);
102
+ let outputDefinition = parsedConfiguration['blueprints'];
103
+ if (!outputDefinition) {
104
+ throw `Output configuration file must define 'blueprints' key`;
105
+ }
106
+ if (!(outputDefinition instanceof Array)) {
107
+ throw `Output configuration file 'blueprints' key must be an array`;
108
+ }
109
+ // Create output mapping object from each output entry
110
+ for (let configuration of outputDefinition) {
111
+ if (!(configuration instanceof Object)) {
112
+ throw `Output configuration source entry must be a key/value object`;
113
+ }
114
+ let invoke = configuration['invoke'];
115
+ let writeTo = configuration['write_to'];
116
+ let writeUsing = configuration['write_using'];
117
+ if (!invoke) {
118
+ throw `Output configuration source entry must define 'invoke' key`;
119
+ }
120
+ if (!writeTo && !writeUsing) {
121
+ throw `Output configuration source entry must define either 'write_to' or 'write_using' key`;
122
+ }
123
+ if (writeTo && writeUsing) {
124
+ throw `Output configuration source entry must define one of 'write_to' or 'write_using' keys, but not both`;
125
+ }
126
+ if (writeUsing && !exporter.sources.get(writeUsing)) {
127
+ throw `Output configuration source entry references unknown source '${writeUsing}'`;
128
+ }
129
+ let map = new ExporterMapBlueprint_1.PCExporterMapBlueprint(configuration);
130
+ exporter.linkOutputs([map]);
131
+ }
132
+ }
133
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
134
+ // MARK: - Validation
135
+ validateExporterConfiguration(parsedConfiguration) {
136
+ // Required
137
+ if (!parsedConfiguration.id || !(typeof parsedConfiguration.id === 'string')) {
138
+ throw new Error("Invalid exporter.json configuration, missing or invalid 'id'");
139
+ }
140
+ if (!parsedConfiguration.name || !(typeof parsedConfiguration.name === 'string')) {
141
+ throw new Error("Invalid exporter.json configuration, missing or invalid 'name'");
142
+ }
143
+ if (!parsedConfiguration.description || !(typeof parsedConfiguration.description === 'string')) {
144
+ throw new Error("Invalid exporter.json configuration, missing or invalid 'description'");
145
+ }
146
+ if (!parsedConfiguration.source_dir || !(typeof parsedConfiguration.source_dir === 'string')) {
147
+ throw new Error("Invalid exporter.json configuration, missing or invalid 'source_dir'");
148
+ }
149
+ if (!parsedConfiguration.version || !(typeof parsedConfiguration.version === 'string')) {
150
+ throw new Error("Invalid exporter.json configuration, missing or invalid 'version'");
151
+ }
152
+ if (!parsedConfiguration.tags || !(parsedConfiguration.tags instanceof Array)) {
153
+ throw new Error("Invalid exporter.json configuration, missing or invalid 'tags'");
154
+ }
155
+ if (parsedConfiguration.tags.length === 0) {
156
+ throw new Error("Invalid exporter.json configuration, 'tags' must not be empty");
157
+ }
158
+ // Optional
159
+ if (parsedConfiguration.author && !(typeof parsedConfiguration.author === 'string')) {
160
+ throw new Error("Invalid exporter.json configuration, invalid 'author'");
161
+ }
162
+ if (parsedConfiguration.organization && !(typeof parsedConfiguration.organization === 'string')) {
163
+ throw new Error("Invalid exporter.json configuration, invalid 'organization'");
164
+ }
165
+ if (parsedConfiguration.homepage && !(typeof parsedConfiguration.homepage === 'string')) {
166
+ throw new Error("Invalid exporter.json configuration, invalid 'homepage'");
167
+ }
168
+ // TODO Validate config and engines
169
+ /*
170
+ config?: {
171
+ sources?: string,
172
+ output?: string
173
+ }
174
+
175
+ engines?: {
176
+ pulsar?: string,
177
+ supernova?: string
178
+ }
179
+ */
180
+ }
181
+ }
182
+ exports.PCPulsarExporterMemoryLoader = PCPulsarExporterMemoryLoader;
183
+ //# sourceMappingURL=PulsarExporterMemoryLoader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PulsarExporterMemoryLoader.js","sourceRoot":"","sources":["../../../../../../src/pulsar/managers/loaders/memory/PulsarExporterMemoryLoader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { PCPulsarBaseLoader } from '../PulsarBaseLoader';
2
+ import { PCExporter } from '../../../../model/exporters/Exporter';
3
+ import { ExporterPackageExtractionData, ExporterPackageFileExtractionData } from '../memory/PulsarExporterMemoryLoader';
4
+ import JSZip from 'jszip';
5
+ export declare class PCPulsarExporterGitHubLoader extends PCPulsarBaseLoader {
6
+ repositoryURL: string;
7
+ constructor(githubURL: string);
8
+ initialize(): Promise<PCExporter>;
9
+ downloadZIPFromURL(url: string): Promise<JSZip>;
10
+ processZIP(zip: JSZip): Promise<ExporterPackageExtractionData>;
11
+ parseUnzippedFile(file: JSZip.JSZipObject): Promise<ExporterPackageFileExtractionData | null>;
12
+ }
@@ -0,0 +1,143 @@
1
+ "use strict";
2
+ // PulsarExporterGitHubLoader.ts
3
+ // Supernova
4
+ //
5
+ // Created by Jiri Trecak.
6
+ // Copyright © 2020 Jiri Trecak. All rights reserved.
7
+ //
8
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.PCPulsarExporterGitHubLoader = void 0;
13
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
14
+ // MARK: - Imports
15
+ const PulsarBaseLoader_1 = require("../PulsarBaseLoader");
16
+ const PulsarExporterMemoryLoader_1 = require("../memory/PulsarExporterMemoryLoader");
17
+ const request_1 = __importDefault(require("request"));
18
+ const parse_github_url_1 = __importDefault(require("parse-github-url"));
19
+ const jszip_1 = __importDefault(require("jszip"));
20
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
21
+ // MARK: - Definitions
22
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
23
+ // MARK: - Class
24
+ class PCPulsarExporterGitHubLoader extends PulsarBaseLoader_1.PCPulsarBaseLoader {
25
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
26
+ // MARK: - Setup
27
+ constructor(githubURL) {
28
+ super();
29
+ this.repositoryURL = githubURL;
30
+ }
31
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
32
+ // MARK: - Initialization of the exporter
33
+ async initialize() {
34
+ let url = parse_github_url_1.default(this.repositoryURL);
35
+ if (url) {
36
+ let owner = url.owner;
37
+ let name = url.name;
38
+ // TODO: We should get the link to the archive dynamically using the API
39
+ let rawZIP;
40
+ try {
41
+ let zipballURL = `https://github.com/${owner}/${name}/archive/main.zip`;
42
+ rawZIP = await this.downloadZIPFromURL(zipballURL);
43
+ }
44
+ catch (_a) {
45
+ try {
46
+ let zipballURL = `https://github.com/${owner}/${name}/archive/master.zip`;
47
+ rawZIP = await this.downloadZIPFromURL(zipballURL);
48
+ }
49
+ catch (_b) {
50
+ throw new Error('Unable to obtain releases from GitHub repository');
51
+ }
52
+ }
53
+ if (!rawZIP) {
54
+ throw new Error('Unable to obtain releases from GitHub repository');
55
+ }
56
+ let processedFiles = await this.processZIP(rawZIP);
57
+ let unpackager = new PulsarExporterMemoryLoader_1.PCPulsarExporterMemoryLoader(processedFiles);
58
+ let exporter = await unpackager.constructExporterFromSourceFiles();
59
+ return exporter;
60
+ }
61
+ else {
62
+ throw new Error('Unable to obtain releases from GitHub repository');
63
+ }
64
+ }
65
+ async downloadZIPFromURL(url) {
66
+ return new Promise((resolve, reject) => {
67
+ // Write zip file into buffered chunks
68
+ let buffers = [];
69
+ let buffer;
70
+ // Create request to download the zipball.
71
+ request_1.default.get(url)
72
+ .on('end', () => {
73
+ buffer = Buffer.concat(buffers);
74
+ jszip_1.default.loadAsync(buffer)
75
+ .then(zip => {
76
+ resolve(zip);
77
+ })
78
+ .catch(error => {
79
+ reject(error);
80
+ });
81
+ })
82
+ .on('error', error => {
83
+ reject(error);
84
+ })
85
+ .on('data', d => {
86
+ buffers.push(d);
87
+ });
88
+ });
89
+ }
90
+ async processZIP(zip) {
91
+ let processedFiles = new Map();
92
+ let values = Object.values(zip.files);
93
+ // Fetch each file from zip (only if not directory)
94
+ for (let file of values) {
95
+ if (file.dir) {
96
+ continue;
97
+ }
98
+ // Obtain directory and filename of the unzipped file
99
+ let parsedFile = await this.parseUnzippedFile(file);
100
+ if (parsedFile) {
101
+ processedFiles.set(parsedFile.key, parsedFile);
102
+ }
103
+ }
104
+ return processedFiles;
105
+ }
106
+ async parseUnzippedFile(file) {
107
+ // Only retrieve files that are .pr or .json
108
+ // Modify filename by removing the first directory
109
+ let components = file.name.split('/');
110
+ components.shift();
111
+ // Extract filename, extension and paths
112
+ let filename = components[components.length - 1];
113
+ let fullpath = components.join('/');
114
+ // Extract directory
115
+ components.pop();
116
+ let directory = components.join('/');
117
+ // Get extension and check whether it is correct format
118
+ let nameParts = filename.split('.');
119
+ let extension;
120
+ let name;
121
+ if (nameParts.length >= 2) {
122
+ extension = nameParts[nameParts.length - 1];
123
+ nameParts.pop();
124
+ name = nameParts.join('.');
125
+ }
126
+ // Only pulsar and json extension are of interest to us
127
+ if (extension !== 'pr' && extension !== 'json') {
128
+ return null;
129
+ }
130
+ // Extract content
131
+ let content = await file.async('string');
132
+ return {
133
+ key: fullpath,
134
+ filename: filename,
135
+ name: name,
136
+ extension: extension,
137
+ directory: directory,
138
+ content: content
139
+ };
140
+ }
141
+ }
142
+ exports.PCPulsarExporterGitHubLoader = PCPulsarExporterGitHubLoader;
143
+ //# sourceMappingURL=PulsarExporterGitHubLoader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PulsarExporterGitHubLoader.js","sourceRoot":"","sources":["../../../../../../src/pulsar/managers/loaders/remote/PulsarExporterGitHubLoader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { PCPulsarBaseLoader } from '../PulsarBaseLoader';
2
+ import { PCExporter } from '../../../../model/exporters/Exporter';
3
+ import { ExporterPackageExtractionData, ExporterPackageFileExtractionData } from '../memory/PulsarExporterMemoryLoader';
4
+ import JSZip from 'jszip';
5
+ export declare class PCPulsarExporterZIPLoader extends PCPulsarBaseLoader {
6
+ zipSourceURL: string;
7
+ constructor(sourceZIPURL: string);
8
+ initialize(): Promise<PCExporter>;
9
+ downloadZIPFromURL(url: string): Promise<JSZip>;
10
+ processZIP(zip: JSZip): Promise<ExporterPackageExtractionData>;
11
+ parseUnzippedFile(file: JSZip.JSZipObject): Promise<ExporterPackageFileExtractionData | null>;
12
+ }