@supernova-studio/pulsar-core 1.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 (219) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +2 -0
  3. package/build/browser/pulsar.js +141772 -0
  4. package/build/browser/pulsar.min.js +270 -0
  5. package/build/main/browser-bundle.d.ts +1 -0
  6. package/build/main/browser-bundle.js +17 -0
  7. package/build/main/browser-bundle.js.map +1 -0
  8. package/build/main/engine/ExportEngine.d.ts +17 -0
  9. package/build/main/engine/ExportEngine.js +122 -0
  10. package/build/main/engine/ExportEngine.js.map +1 -0
  11. package/build/main/engine/configuration/ExportConfiguration.d.ts +18 -0
  12. package/build/main/engine/configuration/ExportConfiguration.js +47 -0
  13. package/build/main/engine/configuration/ExportConfiguration.js.map +1 -0
  14. package/build/main/engine/generation/ExportDataProducer.d.ts +15 -0
  15. package/build/main/engine/generation/ExportDataProducer.js +100 -0
  16. package/build/main/engine/generation/ExportDataProducer.js.map +1 -0
  17. package/build/main/engine/generation/queue/ExportDataQueue.d.ts +16 -0
  18. package/build/main/engine/generation/queue/ExportDataQueue.js +72 -0
  19. package/build/main/engine/generation/queue/ExportDataQueue.js.map +1 -0
  20. package/build/main/engine/generation/queue/ExportDataQueueOperation.d.ts +6 -0
  21. package/build/main/engine/generation/queue/ExportDataQueueOperation.js +36 -0
  22. package/build/main/engine/generation/queue/ExportDataQueueOperation.js.map +1 -0
  23. package/build/main/engine/generation/requests/ExportDataEmittedResponseProducer.d.ts +7 -0
  24. package/build/main/engine/generation/requests/ExportDataEmittedResponseProducer.js +54 -0
  25. package/build/main/engine/generation/requests/ExportDataEmittedResponseProducer.js.map +1 -0
  26. package/build/main/engine/generation/requests/ExportDataPrimaryResponseProducer.d.ts +7 -0
  27. package/build/main/engine/generation/requests/ExportDataPrimaryResponseProducer.js +40 -0
  28. package/build/main/engine/generation/requests/ExportDataPrimaryResponseProducer.js.map +1 -0
  29. package/build/main/engine/generation/requests/ExportDataRequest.d.ts +19 -0
  30. package/build/main/engine/generation/requests/ExportDataRequest.js +55 -0
  31. package/build/main/engine/generation/requests/ExportDataRequest.js.map +1 -0
  32. package/build/main/engine/generation/requests/ExportDataRequestDataStore.d.ts +16 -0
  33. package/build/main/engine/generation/requests/ExportDataRequestDataStore.js +57 -0
  34. package/build/main/engine/generation/requests/ExportDataRequestDataStore.js.map +1 -0
  35. package/build/main/engine/generation/requests/ExportDataRequestNameStore.d.ts +22 -0
  36. package/build/main/engine/generation/requests/ExportDataRequestNameStore.js +86 -0
  37. package/build/main/engine/generation/requests/ExportDataRequestNameStore.js.map +1 -0
  38. package/build/main/engine/generation/requests/ExportDataRequestProducer.d.ts +16 -0
  39. package/build/main/engine/generation/requests/ExportDataRequestProducer.js +162 -0
  40. package/build/main/engine/generation/requests/ExportDataRequestProducer.js.map +1 -0
  41. package/build/main/engine/generation/requests/ExportDataResponse.d.ts +13 -0
  42. package/build/main/engine/generation/requests/ExportDataResponse.js +30 -0
  43. package/build/main/engine/generation/requests/ExportDataResponse.js.map +1 -0
  44. package/build/main/engine/generation/requests/specific/dsm/ExportDataRequestBlueprint.d.ts +14 -0
  45. package/build/main/engine/generation/requests/specific/dsm/ExportDataRequestBlueprint.js +77 -0
  46. package/build/main/engine/generation/requests/specific/dsm/ExportDataRequestBlueprint.js.map +1 -0
  47. package/build/main/engine/generation/requests/specific/dsm/ExportDataRequestDSMComponent.d.ts +13 -0
  48. package/build/main/engine/generation/requests/specific/dsm/ExportDataRequestDSMComponent.js +47 -0
  49. package/build/main/engine/generation/requests/specific/dsm/ExportDataRequestDSMComponent.js.map +1 -0
  50. package/build/main/engine/generation/requests/specific/dsm/ExportDataRequestDSMComponentGroup.d.ts +13 -0
  51. package/build/main/engine/generation/requests/specific/dsm/ExportDataRequestDSMComponentGroup.js +47 -0
  52. package/build/main/engine/generation/requests/specific/dsm/ExportDataRequestDSMComponentGroup.js.map +1 -0
  53. package/build/main/engine/generation/requests/specific/dsm/ExportDataRequestDSMGeneric.d.ts +11 -0
  54. package/build/main/engine/generation/requests/specific/dsm/ExportDataRequestDSMGeneric.js +43 -0
  55. package/build/main/engine/generation/requests/specific/dsm/ExportDataRequestDSMGeneric.js.map +1 -0
  56. package/build/main/engine/generation/requests/specific/dsm/ExportDataRequestDSMTheme.d.ts +13 -0
  57. package/build/main/engine/generation/requests/specific/dsm/ExportDataRequestDSMTheme.js +47 -0
  58. package/build/main/engine/generation/requests/specific/dsm/ExportDataRequestDSMTheme.js.map +1 -0
  59. package/build/main/engine/generation/requests/specific/dsm/ExportDataRequestDSMTokenGroup.d.ts +13 -0
  60. package/build/main/engine/generation/requests/specific/dsm/ExportDataRequestDSMTokenGroup.js +47 -0
  61. package/build/main/engine/generation/requests/specific/dsm/ExportDataRequestDSMTokenGroup.js.map +1 -0
  62. package/build/main/engine/generation/requests/specific/dsm/ExportDataRequestDSMTokenType.d.ts +13 -0
  63. package/build/main/engine/generation/requests/specific/dsm/ExportDataRequestDSMTokenType.js +47 -0
  64. package/build/main/engine/generation/requests/specific/dsm/ExportDataRequestDSMTokenType.js.map +1 -0
  65. package/build/main/engine/items/ExportItemProducer.d.ts +14 -0
  66. package/build/main/engine/items/ExportItemProducer.js +70 -0
  67. package/build/main/engine/items/ExportItemProducer.js.map +1 -0
  68. package/build/main/engine/items/construction/ExportItem.d.ts +8 -0
  69. package/build/main/engine/items/construction/ExportItem.js +25 -0
  70. package/build/main/engine/items/construction/ExportItem.js.map +1 -0
  71. package/build/main/engine/items/construction/ExportItemBuilder.d.ts +9 -0
  72. package/build/main/engine/items/construction/ExportItemBuilder.js +47 -0
  73. package/build/main/engine/items/construction/ExportItemBuilder.js.map +1 -0
  74. package/build/main/engine/items/queue/ExportItemQueue.d.ts +16 -0
  75. package/build/main/engine/items/queue/ExportItemQueue.js +70 -0
  76. package/build/main/engine/items/queue/ExportItemQueue.js.map +1 -0
  77. package/build/main/engine/items/queue/ExportItemQueueOperation.d.ts +6 -0
  78. package/build/main/engine/items/queue/ExportItemQueueOperation.js +36 -0
  79. package/build/main/engine/items/queue/ExportItemQueueOperation.js.map +1 -0
  80. package/build/main/engine/items/requests/ExportItemRequest.d.ts +16 -0
  81. package/build/main/engine/items/requests/ExportItemRequest.js +68 -0
  82. package/build/main/engine/items/requests/ExportItemRequest.js.map +1 -0
  83. package/build/main/engine/items/requests/ExportItemRequestProducer.d.ts +8 -0
  84. package/build/main/engine/items/requests/ExportItemRequestProducer.js +24 -0
  85. package/build/main/engine/items/requests/ExportItemRequestProducer.js.map +1 -0
  86. package/build/main/engine/items/requests/ExportItemResponse.d.ts +9 -0
  87. package/build/main/engine/items/requests/ExportItemResponse.js +25 -0
  88. package/build/main/engine/items/requests/ExportItemResponse.js.map +1 -0
  89. package/build/main/engine/items/requests/ExportItemResponseProducer.d.ts +7 -0
  90. package/build/main/engine/items/requests/ExportItemResponseProducer.js +45 -0
  91. package/build/main/engine/items/requests/ExportItemResponseProducer.js.map +1 -0
  92. package/build/main/engine/loaders/BlueprintLoader.d.ts +9 -0
  93. package/build/main/engine/loaders/BlueprintLoader.js +55 -0
  94. package/build/main/engine/loaders/BlueprintLoader.js.map +1 -0
  95. package/build/main/engine/writing/queue/ExportWriterQueue.d.ts +16 -0
  96. package/build/main/engine/writing/queue/ExportWriterQueue.js +70 -0
  97. package/build/main/engine/writing/queue/ExportWriterQueue.js.map +1 -0
  98. package/build/main/engine/writing/queue/ExportWriterQueueOperation.d.ts +6 -0
  99. package/build/main/engine/writing/queue/ExportWriterQueueOperation.js +36 -0
  100. package/build/main/engine/writing/queue/ExportWriterQueueOperation.js.map +1 -0
  101. package/build/main/engine/writing/requests/ExportWriterRequest.d.ts +14 -0
  102. package/build/main/engine/writing/requests/ExportWriterRequest.js +40 -0
  103. package/build/main/engine/writing/requests/ExportWriterRequest.js.map +1 -0
  104. package/build/main/engine/writing/requests/ExportWriterRequestProducer.d.ts +8 -0
  105. package/build/main/engine/writing/requests/ExportWriterRequestProducer.js +30 -0
  106. package/build/main/engine/writing/requests/ExportWriterRequestProducer.js.map +1 -0
  107. package/build/main/engine/writing/requests/ExportWriterResponse.d.ts +9 -0
  108. package/build/main/engine/writing/requests/ExportWriterResponse.js +25 -0
  109. package/build/main/engine/writing/requests/ExportWriterResponse.js.map +1 -0
  110. package/build/main/engine/writing/requests/ExportWriterResponseProducer.d.ts +7 -0
  111. package/build/main/engine/writing/requests/ExportWriterResponseProducer.js +40 -0
  112. package/build/main/engine/writing/requests/ExportWriterResponseProducer.js.map +1 -0
  113. package/build/main/engine/writing/writers/ExportItemWriter.d.ts +14 -0
  114. package/build/main/engine/writing/writers/ExportItemWriter.js +70 -0
  115. package/build/main/engine/writing/writers/ExportItemWriter.js.map +1 -0
  116. package/build/main/engine/writing/writers/ExportWriterRuleProcessor.d.ts +9 -0
  117. package/build/main/engine/writing/writers/ExportWriterRuleProcessor.js +63 -0
  118. package/build/main/engine/writing/writers/ExportWriterRuleProcessor.js.map +1 -0
  119. package/build/main/engine/writing/writers/memory/ExportWriterMemory.d.ts +4 -0
  120. package/build/main/engine/writing/writers/memory/ExportWriterMemory.js +29 -0
  121. package/build/main/engine/writing/writers/memory/ExportWriterMemory.js.map +1 -0
  122. package/build/main/engine/writing/writers/memory/ExportWriterMemoryRequest.d.ts +5 -0
  123. package/build/main/engine/writing/writers/memory/ExportWriterMemoryRequest.js +59 -0
  124. package/build/main/engine/writing/writers/memory/ExportWriterMemoryRequest.js.map +1 -0
  125. package/build/main/engine/writing/writers/memory/ExportWriterStore.d.ts +5 -0
  126. package/build/main/engine/writing/writers/memory/ExportWriterStore.js +33 -0
  127. package/build/main/engine/writing/writers/memory/ExportWriterStore.js.map +1 -0
  128. package/build/main/exports.d.ts +4 -0
  129. package/build/main/exports.js +13 -0
  130. package/build/main/exports.js.map +1 -0
  131. package/build/main/index.d.ts +1 -0
  132. package/build/main/index.js +14 -0
  133. package/build/main/index.js.map +1 -0
  134. package/build/main/model/dsm/DSMReferenceStore.d.ts +28 -0
  135. package/build/main/model/dsm/DSMReferenceStore.js +100 -0
  136. package/build/main/model/dsm/DSMReferenceStore.js.map +1 -0
  137. package/build/main/model/exporters/Exporter.d.ts +50 -0
  138. package/build/main/model/exporters/Exporter.js +88 -0
  139. package/build/main/model/exporters/Exporter.js.map +1 -0
  140. package/build/main/model/maps/ExporterMapBlueprint.d.ts +12 -0
  141. package/build/main/model/maps/ExporterMapBlueprint.js +39 -0
  142. package/build/main/model/maps/ExporterMapBlueprint.js.map +1 -0
  143. package/build/main/model/sources/ExporterSource.d.ts +25 -0
  144. package/build/main/model/sources/ExporterSource.js +58 -0
  145. package/build/main/model/sources/ExporterSource.js.map +1 -0
  146. package/build/main/pulsar/Pulsar.d.ts +105 -0
  147. package/build/main/pulsar/Pulsar.js +351 -0
  148. package/build/main/pulsar/Pulsar.js.map +1 -0
  149. package/build/main/pulsar/PulsarInterface.d.ts +152 -0
  150. package/build/main/pulsar/PulsarInterface.js +37 -0
  151. package/build/main/pulsar/PulsarInterface.js.map +1 -0
  152. package/build/main/pulsar/PulsarStaticAnalysis.d.ts +23 -0
  153. package/build/main/pulsar/PulsarStaticAnalysis.js +47 -0
  154. package/build/main/pulsar/PulsarStaticAnalysis.js.map +1 -0
  155. package/build/main/pulsar/PulsarStaticAnalysisInterface.d.ts +10 -0
  156. package/build/main/pulsar/PulsarStaticAnalysisInterface.js +10 -0
  157. package/build/main/pulsar/PulsarStaticAnalysisInterface.js.map +1 -0
  158. package/build/main/pulsar/managers/PulsarBlueprintManager.d.ts +16 -0
  159. package/build/main/pulsar/managers/PulsarBlueprintManager.js +76 -0
  160. package/build/main/pulsar/managers/PulsarBlueprintManager.js.map +1 -0
  161. package/build/main/pulsar/managers/PulsarCIManager.d.ts +25 -0
  162. package/build/main/pulsar/managers/PulsarCIManager.js +220 -0
  163. package/build/main/pulsar/managers/PulsarCIManager.js.map +1 -0
  164. package/build/main/pulsar/managers/PulsarCodeManager.d.ts +24 -0
  165. package/build/main/pulsar/managers/PulsarCodeManager.js +180 -0
  166. package/build/main/pulsar/managers/PulsarCodeManager.js.map +1 -0
  167. package/build/main/pulsar/managers/PulsarConfigurationManager.d.ts +16 -0
  168. package/build/main/pulsar/managers/PulsarConfigurationManager.js +48 -0
  169. package/build/main/pulsar/managers/PulsarConfigurationManager.js.map +1 -0
  170. package/build/main/pulsar/managers/PulsarExporterManager.d.ts +25 -0
  171. package/build/main/pulsar/managers/PulsarExporterManager.js +121 -0
  172. package/build/main/pulsar/managers/PulsarExporterManager.js.map +1 -0
  173. package/build/main/pulsar/managers/generators/PulsarExporterJSONGenerator.d.ts +16 -0
  174. package/build/main/pulsar/managers/generators/PulsarExporterJSONGenerator.js +276 -0
  175. package/build/main/pulsar/managers/generators/PulsarExporterJSONGenerator.js.map +1 -0
  176. package/build/main/pulsar/managers/generators/PulsarExporterZIPGenerator.d.ts +7 -0
  177. package/build/main/pulsar/managers/generators/PulsarExporterZIPGenerator.js +63 -0
  178. package/build/main/pulsar/managers/generators/PulsarExporterZIPGenerator.js.map +1 -0
  179. package/build/main/pulsar/managers/loaders/PulsarBaseLoader.d.ts +5 -0
  180. package/build/main/pulsar/managers/loaders/PulsarBaseLoader.js +28 -0
  181. package/build/main/pulsar/managers/loaders/PulsarBaseLoader.js.map +1 -0
  182. package/build/main/pulsar/managers/loaders/local/PulsarFSLoader.d.ts +11 -0
  183. package/build/main/pulsar/managers/loaders/local/PulsarFSLoader.js +99 -0
  184. package/build/main/pulsar/managers/loaders/local/PulsarFSLoader.js.map +1 -0
  185. package/build/main/pulsar/managers/loaders/memory/PulsarExporterJSONLoader.d.ts +9 -0
  186. package/build/main/pulsar/managers/loaders/memory/PulsarExporterJSONLoader.js +81 -0
  187. package/build/main/pulsar/managers/loaders/memory/PulsarExporterJSONLoader.js.map +1 -0
  188. package/build/main/pulsar/managers/loaders/memory/PulsarExporterMemoryLoader.d.ts +20 -0
  189. package/build/main/pulsar/managers/loaders/memory/PulsarExporterMemoryLoader.js +194 -0
  190. package/build/main/pulsar/managers/loaders/memory/PulsarExporterMemoryLoader.js.map +1 -0
  191. package/build/main/pulsar/managers/loaders/remote/PulsarExporterGitHubLoader.d.ts +12 -0
  192. package/build/main/pulsar/managers/loaders/remote/PulsarExporterGitHubLoader.js +143 -0
  193. package/build/main/pulsar/managers/loaders/remote/PulsarExporterGitHubLoader.js.map +1 -0
  194. package/build/main/pulsar/managers/loaders/remote/PulsarExporterZIPLoader.d.ts +12 -0
  195. package/build/main/pulsar/managers/loaders/remote/PulsarExporterZIPLoader.js +115 -0
  196. package/build/main/pulsar/managers/loaders/remote/PulsarExporterZIPLoader.js.map +1 -0
  197. package/build/main/tests/TestConfiguration.d.ts +9 -0
  198. package/build/main/tests/TestConfiguration.js +25 -0
  199. package/build/main/tests/TestConfiguration.js.map +1 -0
  200. package/build/main/tests/casebuilders/ci.d.ts +12 -0
  201. package/build/main/tests/casebuilders/ci.js +38 -0
  202. package/build/main/tests/casebuilders/ci.js.map +1 -0
  203. package/build/main/tests/casebuilders/configuration.d.ts +5 -0
  204. package/build/main/tests/casebuilders/configuration.js +25 -0
  205. package/build/main/tests/casebuilders/configuration.js.map +1 -0
  206. package/build/main/tests/casebuilders/dsm.d.ts +7 -0
  207. package/build/main/tests/casebuilders/dsm.js +57 -0
  208. package/build/main/tests/casebuilders/dsm.js.map +1 -0
  209. package/build/main/tests/casebuilders/modelObjects.d.ts +13 -0
  210. package/build/main/tests/casebuilders/modelObjects.js +120 -0
  211. package/build/main/tests/casebuilders/modelObjects.js.map +1 -0
  212. package/build/main/tools/Logger.d.ts +27 -0
  213. package/build/main/tools/Logger.js +98 -0
  214. package/build/main/tools/Logger.js.map +1 -0
  215. package/build/main/tools/LoggerDefaultMessages.d.ts +13 -0
  216. package/build/main/tools/LoggerDefaultMessages.js +41 -0
  217. package/build/main/tools/LoggerDefaultMessages.js.map +1 -0
  218. package/package.json +113 -0
  219. package/scripts/travis-npm-publish.sh +4 -0
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ //
3
+ // PLSExportItemQueue.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.PLSExportItemQueue = void 0;
11
+ const ExportItemQueueOperation_1 = require("./ExportItemQueueOperation");
12
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
13
+ // MARK: - Definitions
14
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
15
+ // MARK: - Object definition
16
+ class PLSExportItemQueue {
17
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
18
+ // MARK: - Init
19
+ constructor(configuration) {
20
+ this.isLockedForChanges = false;
21
+ this.isFinished = false;
22
+ this.configuration = configuration;
23
+ this.waitingOperations = new Array();
24
+ this.requests = new Array();
25
+ this.requestsCompleted = 0;
26
+ }
27
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
28
+ // MARK: - Queue management
29
+ addQueuedRequest(request) {
30
+ // Create operation
31
+ let operation = new ExportItemQueueOperation_1.PLSExportItemQueueOperation(request);
32
+ // Add operation to queue
33
+ this.requests.push(request);
34
+ this.waitingOperations.push(operation);
35
+ }
36
+ addQueuedRequests(requests) {
37
+ requests.forEach(r => {
38
+ this.addQueuedRequest(r);
39
+ });
40
+ }
41
+ clearQueue() {
42
+ this.requestsCompleted = 0;
43
+ this.waitingOperations = [];
44
+ }
45
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
46
+ // MARK: - Processing
47
+ processQueue() {
48
+ // Sort the files and add them to export buffer
49
+ this.isLockedForChanges = true;
50
+ this.requestsCompleted = 0;
51
+ // Create new queue promise, processing all items at once
52
+ return new Promise((resolve, reject) => {
53
+ let queue = new Array();
54
+ for (let operation of this.waitingOperations) {
55
+ let promise = operation.processOperation();
56
+ queue.push(promise);
57
+ }
58
+ // When one queue item fails, immediately cancel
59
+ Promise.all(queue)
60
+ .then(_ => {
61
+ resolve(this.requests);
62
+ })
63
+ .catch(error => {
64
+ reject(error);
65
+ });
66
+ });
67
+ }
68
+ }
69
+ exports.PLSExportItemQueue = PLSExportItemQueue;
70
+ //# sourceMappingURL=ExportItemQueue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExportItemQueue.js","sourceRoot":"","sources":["../../../../../src/engine/items/queue/ExportItemQueue.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,yBAAyB;AACzB,aAAa;AACb,EAAE;AACF,2BAA2B;AAC3B,sDAAsD;AACtD,EAAE;;;AAMF,yEAAyE;AAGzE,8GAA8G;AAC9G,sBAAsB;AAEtB,8GAA8G;AAC9G,4BAA4B;AAE5B,MAAa,kBAAkB;IAgB7B,8GAA8G;IAC9G,eAAe;IAEf,YAAY,aAAqC;QAVjD,uBAAkB,GAAY,KAAK,CAAC;QACpC,eAAU,GAAY,KAAK,CAAC;QAU1B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,iBAAiB,GAAG,IAAI,KAAK,EAA+B,CAAC;QAClE,IAAI,CAAC,QAAQ,GAAG,IAAI,KAAK,EAAwB,CAAC;QAClD,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,8GAA8G;IAC9G,2BAA2B;IAE3B,gBAAgB,CAAC,OAA6B;QAC5C,mBAAmB;QACnB,IAAI,SAAS,GAAG,IAAI,sDAA2B,CAAC,OAAO,CAAC,CAAC;QAEzD,yBAAyB;QACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;IAED,iBAAiB,CAAC,QAAqC;QACrD,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACnB,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,UAAU;QACR,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;IAC9B,CAAC;IAED,8GAA8G;IAC9G,qBAAqB;IAErB,YAAY;QACV,+CAA+C;QAC/C,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAC/B,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;QAE3B,yDAAyD;QACzD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,KAAK,GAAG,IAAI,KAAK,EAAiC,CAAC;YACvD,KAAK,IAAI,SAAS,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBAC5C,IAAI,OAAO,GAAG,SAAS,CAAC,gBAAgB,EAAE,CAAC;gBAC3C,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aACrB;YAED,gDAAgD;YAChD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;iBACf,IAAI,CAAC,CAAC,CAAC,EAAE;gBACR,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzB,CAAC,CAAC;iBACD,KAAK,CAAC,KAAK,CAAC,EAAE;gBACb,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AA3ED,gDA2EC"}
@@ -0,0 +1,6 @@
1
+ import { PLSExportItemRequest } from './../requests/ExportItemRequest';
2
+ export declare class PLSExportItemQueueOperation {
3
+ request: PLSExportItemRequest;
4
+ constructor(request: PLSExportItemRequest);
5
+ processOperation(): Promise<PLSExportItemRequest>;
6
+ }
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ //
3
+ // ExportItemQueueOperation.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.PLSExportItemQueueOperation = void 0;
11
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
12
+ // MARK: - Definitions
13
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
14
+ // MARK: - Object definition
15
+ class PLSExportItemQueueOperation {
16
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
17
+ // MARK: - Init
18
+ constructor(request) {
19
+ this.request = request;
20
+ }
21
+ processOperation() {
22
+ return new Promise((respond, reject) => {
23
+ // Generate request data, then resolve the promise
24
+ this.request
25
+ .produceItem()
26
+ .then(_ => {
27
+ respond(this.request);
28
+ })
29
+ .catch(error => {
30
+ reject(error);
31
+ });
32
+ });
33
+ }
34
+ }
35
+ exports.PLSExportItemQueueOperation = PLSExportItemQueueOperation;
36
+ //# sourceMappingURL=ExportItemQueueOperation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExportItemQueueOperation.js","sourceRoot":"","sources":["../../../../../src/engine/items/queue/ExportItemQueueOperation.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,+BAA+B;AAC/B,aAAa;AACb,EAAE;AACF,2BAA2B;AAC3B,sDAAsD;AACtD,EAAE;;;AAOF,8GAA8G;AAC9G,sBAAsB;AAEtB,8GAA8G;AAC9G,4BAA4B;AAE5B,MAAa,2BAA2B;IAOtC,8GAA8G;IAC9G,eAAe;IAEf,YAAY,OAA6B;QACvC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,kDAAkD;YAClD,IAAI,CAAC,OAAO;iBACT,WAAW,EAAE;iBACb,IAAI,CAAC,CAAC,CAAC,EAAE;gBACR,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACxB,CAAC,CAAC;iBACD,KAAK,CAAC,KAAK,CAAC,EAAE;gBACb,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AA3BD,kEA2BC"}
@@ -0,0 +1,16 @@
1
+ import { PLSExportConfiguration } from './../../configuration/ExportConfiguration';
2
+ import { PLSExportDataResponse } from './../../generation/requests/ExportDataResponse';
3
+ import { PLSExportItem } from './../construction/ExportItem';
4
+ export declare class PLSExportItemRequest {
5
+ items: Array<PLSExportItem> | null;
6
+ error: Error | null;
7
+ dataResponse: PLSExportDataResponse;
8
+ configuration: PLSExportConfiguration;
9
+ processingError: Error | null;
10
+ processingFinished: boolean;
11
+ constructor(configuration: PLSExportConfiguration, dataResponse: PLSExportDataResponse);
12
+ produceItem(): Promise<Array<PLSExportItem>>;
13
+ cancel(): void;
14
+ requestSuccessful(items: Array<PLSExportItem>): void;
15
+ requestFailed(error: Error): void;
16
+ }
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ //
3
+ // PLSExportItemRequest.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.PLSExportItemRequest = void 0;
11
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
12
+ // MARK: - Imports
13
+ const ExportItemBuilder_1 = require("./../construction/ExportItemBuilder");
14
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
15
+ // MARK: - Definitions
16
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
17
+ // MARK: - Object definition
18
+ class PLSExportItemRequest {
19
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
20
+ // MARK: - Init
21
+ constructor(configuration, dataResponse) {
22
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
23
+ // MARK: - Properties
24
+ // Data
25
+ this.items = null;
26
+ this.error = null;
27
+ // States
28
+ this.processingError = null;
29
+ this.processingFinished = false;
30
+ this.dataResponse = dataResponse;
31
+ this.configuration = configuration;
32
+ }
33
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
34
+ // MARK: - Content production
35
+ produceItem() {
36
+ // Create the items
37
+ return new Promise((resolve, reject) => {
38
+ try {
39
+ // Create the item
40
+ let builder = new ExportItemBuilder_1.PLSExportItemBuilder();
41
+ let items = builder.buildItemsUsingResponse(this.dataResponse);
42
+ // Request successful
43
+ this.requestSuccessful(items);
44
+ resolve(items);
45
+ }
46
+ catch (error) {
47
+ // Request successful
48
+ this.requestFailed(error);
49
+ reject(error);
50
+ }
51
+ });
52
+ }
53
+ cancel() {
54
+ // Doesn't support cancellation
55
+ }
56
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
57
+ // MARK: - Request handling
58
+ requestSuccessful(items) {
59
+ this.processingFinished = true;
60
+ this.items = items;
61
+ }
62
+ requestFailed(error) {
63
+ this.processingFinished = true;
64
+ this.processingError = error;
65
+ }
66
+ }
67
+ exports.PLSExportItemRequest = PLSExportItemRequest;
68
+ //# sourceMappingURL=ExportItemRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExportItemRequest.js","sourceRoot":"","sources":["../../../../../src/engine/items/requests/ExportItemRequest.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,2BAA2B;AAC3B,aAAa;AACb,EAAE;AACF,2BAA2B;AAC3B,sDAAsD;AACtD,EAAE;;;AAEF,8GAA8G;AAC9G,kBAAkB;AAElB,2EAA2E;AAK3E,8GAA8G;AAC9G,sBAAsB;AAEtB,8GAA8G;AAC9G,4BAA4B;AAE5B,MAAa,oBAAoB;IAgB/B,8GAA8G;IAC9G,eAAe;IAEf,YACE,aAAqC,EACrC,YAAmC;QApBrC,8GAA8G;QAC9G,qBAAqB;QAErB,OAAO;QACP,UAAK,GAAgC,IAAI,CAAC;QAC1C,UAAK,GAAiB,IAAI,CAAC;QAM3B,SAAS;QACT,oBAAe,GAAiB,IAAI,CAAC;QACrC,uBAAkB,GAAY,KAAK,CAAC;QASlC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;IAED,8GAA8G;IAC9G,6BAA6B;IAE7B,WAAW;QACT,mBAAmB;QACnB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI;gBACF,kBAAkB;gBAClB,IAAI,OAAO,GAAG,IAAI,wCAAoB,EAAE,CAAC;gBACzC,IAAI,KAAK,GAAG,OAAO,CAAC,uBAAuB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAE/D,qBAAqB;gBACrB,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;gBAC9B,OAAO,CAAC,KAAK,CAAC,CAAC;aAChB;YAAC,OAAO,KAAK,EAAE;gBACd,qBAAqB;gBACrB,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBAC1B,MAAM,CAAC,KAAK,CAAC,CAAC;aACf;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM;QACJ,+BAA+B;IACjC,CAAC;IAED,8GAA8G;IAC9G,2BAA2B;IAE3B,iBAAiB,CAAC,KAA2B;QAC3C,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAC/B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,aAAa,CAAC,KAAY;QACxB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAC/B,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;IAC/B,CAAC;CACF;AAjED,oDAiEC"}
@@ -0,0 +1,8 @@
1
+ import { PLSExportDataResponse } from './../../generation/requests/ExportDataResponse';
2
+ import { PLSExportConfiguration } from './../../configuration/ExportConfiguration';
3
+ import { PLSExportItemRequest } from './ExportItemRequest';
4
+ export declare class PLSExportItemRequestProducer {
5
+ configuration: PLSExportConfiguration;
6
+ constructor(exportConfiguration: PLSExportConfiguration);
7
+ produceRequestsForDataResponse(dataResponse: PLSExportDataResponse): Array<PLSExportItemRequest>;
8
+ }
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PLSExportItemRequestProducer = void 0;
4
+ const ExportItemRequest_1 = require("./ExportItemRequest");
5
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
6
+ // MARK: - Definitions
7
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
8
+ // MARK: - Object definition
9
+ class PLSExportItemRequestProducer {
10
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
11
+ // MARK: - Init
12
+ constructor(exportConfiguration) {
13
+ this.configuration = exportConfiguration;
14
+ }
15
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
16
+ // MARK: - Request creation
17
+ produceRequestsForDataResponse(dataResponse) {
18
+ // For now, only create one item request per one data response
19
+ let request = new ExportItemRequest_1.PLSExportItemRequest(this.configuration, dataResponse);
20
+ return [request];
21
+ }
22
+ }
23
+ exports.PLSExportItemRequestProducer = PLSExportItemRequestProducer;
24
+ //# sourceMappingURL=ExportItemRequestProducer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExportItemRequestProducer.js","sourceRoot":"","sources":["../../../../../src/engine/items/requests/ExportItemRequestProducer.ts"],"names":[],"mappings":";;;AAaA,2DAA2D;AAE3D,8GAA8G;AAC9G,sBAAsB;AAEtB,8GAA8G;AAC9G,4BAA4B;AAE5B,MAAa,4BAA4B;IAMvC,8GAA8G;IAC9G,eAAe;IAEf,YAAY,mBAA2C;QACrD,IAAI,CAAC,aAAa,GAAG,mBAAmB,CAAC;IAC3C,CAAC;IAED,8GAA8G;IAC9G,2BAA2B;IAE3B,8BAA8B,CAC5B,YAAmC;QAEnC,8DAA8D;QAC9D,IAAI,OAAO,GAAG,IAAI,wCAAoB,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;QACzE,OAAO,CAAC,OAAO,CAAC,CAAC;IACnB,CAAC;CACF;AAvBD,oEAuBC"}
@@ -0,0 +1,9 @@
1
+ import { PLSExporterMapBlueprint } from './../../../model/maps/ExporterMapBlueprint';
2
+ import { PLSExportItem } from './../construction/ExportItem';
3
+ import { PLSExportItemRequest } from './ExportItemRequest';
4
+ export declare class PLSExportItemResponse {
5
+ item: PLSExportItem;
6
+ map: PLSExporterMapBlueprint;
7
+ request: PLSExportItemRequest;
8
+ constructor(item: PLSExportItem, map: PLSExporterMapBlueprint, request: PLSExportItemRequest);
9
+ }
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ //
3
+ // PLSExportItemResponse.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.PLSExportItemResponse = void 0;
11
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
12
+ // MARK: - Definitions
13
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
14
+ // MARK: - Object definition
15
+ class PLSExportItemResponse {
16
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
17
+ // MARK: - Init
18
+ constructor(item, map, request) {
19
+ this.item = item;
20
+ this.map = map;
21
+ this.request = request;
22
+ }
23
+ }
24
+ exports.PLSExportItemResponse = PLSExportItemResponse;
25
+ //# sourceMappingURL=ExportItemResponse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExportItemResponse.js","sourceRoot":"","sources":["../../../../../src/engine/items/requests/ExportItemResponse.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,4BAA4B;AAC5B,aAAa;AACb,EAAE;AACF,2BAA2B;AAC3B,sDAAsD;AACtD,EAAE;;;AASF,8GAA8G;AAC9G,sBAAsB;AAEtB,8GAA8G;AAC9G,4BAA4B;AAE5B,MAAa,qBAAqB;IAShC,8GAA8G;IAC9G,eAAe;IAEf,YACE,IAAmB,EACnB,GAA4B,EAC5B,OAA6B;QAE7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AArBD,sDAqBC"}
@@ -0,0 +1,7 @@
1
+ import { PLSExportItemRequest } from './ExportItemRequest';
2
+ import { PLSExportItemResponse } from './ExportItemResponse';
3
+ export declare class PLSExportItemResponseProducer {
4
+ constructor();
5
+ produceResponsesFromRequests(requests: Array<PLSExportItemRequest>): Array<PLSExportItemResponse>;
6
+ produceResponseFromRequest(request: PLSExportItemRequest): Array<PLSExportItemResponse>;
7
+ }
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ //
3
+ // PLSExportItemResponseProducer.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.PLSExportItemResponseProducer = void 0;
11
+ const ExportItemResponse_1 = require("./ExportItemResponse");
12
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
13
+ // MARK: - Definitions
14
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
15
+ // MARK: - Object definition
16
+ class PLSExportItemResponseProducer {
17
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
18
+ // MARK: - Properties
19
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
20
+ // MARK: - Init
21
+ constructor() { }
22
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
23
+ // MARK: - Response production
24
+ produceResponsesFromRequests(requests) {
25
+ let responses = [];
26
+ for (let request of requests) {
27
+ let requestResponses = this.produceResponseFromRequest(request);
28
+ for (let response of requestResponses) {
29
+ responses.push(response);
30
+ }
31
+ }
32
+ return responses;
33
+ }
34
+ produceResponseFromRequest(request) {
35
+ var _a;
36
+ let responses = [];
37
+ for (let item of (_a = request.items) !== null && _a !== void 0 ? _a : []) {
38
+ let response = new ExportItemResponse_1.PLSExportItemResponse(item, item.map, request);
39
+ responses.push(response);
40
+ }
41
+ return responses;
42
+ }
43
+ }
44
+ exports.PLSExportItemResponseProducer = PLSExportItemResponseProducer;
45
+ //# sourceMappingURL=ExportItemResponseProducer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExportItemResponseProducer.js","sourceRoot":"","sources":["../../../../../src/engine/items/requests/ExportItemResponseProducer.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,oCAAoC;AACpC,aAAa;AACb,EAAE;AACF,2BAA2B;AAC3B,sDAAsD;AACtD,EAAE;;;AAMF,6DAA6D;AAE7D,8GAA8G;AAC9G,sBAAsB;AAEtB,8GAA8G;AAC9G,4BAA4B;AAE5B,MAAa,6BAA6B;IACxC,8GAA8G;IAC9G,qBAAqB;IAErB,8GAA8G;IAC9G,eAAe;IAEf,gBAAe,CAAC;IAEhB,8GAA8G;IAC9G,8BAA8B;IAE9B,4BAA4B,CAC1B,QAAqC;QAErC,IAAI,SAAS,GAAiC,EAAE,CAAC;QACjD,KAAK,IAAI,OAAO,IAAI,QAAQ,EAAE;YAC5B,IAAI,gBAAgB,GAAG,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC;YAChE,KAAK,IAAI,QAAQ,IAAI,gBAAgB,EAAE;gBACrC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC1B;SACF;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,0BAA0B,CACxB,OAA6B;;QAE7B,IAAI,SAAS,GAAiC,EAAE,CAAC;QACjD,KAAK,IAAI,IAAI,UAAI,OAAO,CAAC,KAAK,mCAAI,EAAE,EAAE;YACpC,IAAI,QAAQ,GAAG,IAAI,0CAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAClE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC1B;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AArCD,sEAqCC"}
@@ -0,0 +1,9 @@
1
+ import { PLSExporter } from './../../model/exporters/Exporter';
2
+ import { BLZBlueprintLoader } from '@supernova-studio/pulsar-language/build/main/interpreter/loaders/BlueprintLoader';
3
+ import { BLZExecutionContext, BLZBlueprintConfiguration, BLZBlueprint } from '@supernova-studio/pulsar-language';
4
+ export declare class PLSBlueprintLoader extends BLZBlueprintLoader {
5
+ exporter: PLSExporter;
6
+ constructor(exporter: PLSExporter);
7
+ loadSource(sourceId: string, executionContext: BLZExecutionContext, configuration: BLZBlueprintConfiguration): BLZBlueprint;
8
+ loadSourceForSourceId(sourceId: string, executionContext: BLZExecutionContext, configuration: BLZBlueprintConfiguration): BLZBlueprint;
9
+ }
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ //
3
+ // BlueprintLoader.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.PLSBlueprintLoader = void 0;
11
+ const BlueprintLoader_1 = require("@supernova-studio/pulsar-language/build/main/interpreter/loaders/BlueprintLoader");
12
+ const pulsar_language_1 = require("@supernova-studio/pulsar-language");
13
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
14
+ // MARK: - Class
15
+ class PLSBlueprintLoader extends BlueprintLoader_1.BLZBlueprintLoader {
16
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
17
+ // MARK: - Setup
18
+ constructor(exporter) {
19
+ super();
20
+ this.exporter = exporter;
21
+ }
22
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
23
+ // MARK: - Blueprint Loading
24
+ loadSource(sourceId, executionContext, configuration) {
25
+ let cachedBlueprint = this.cachedBlueprint(sourceId);
26
+ let containedBlueprint = this.exporter.sourceById(sourceId);
27
+ if (!cachedBlueprint && !containedBlueprint) {
28
+ for (const bp of this.exporter.sources.values()) {
29
+ if (bp.id === sourceId) {
30
+ sourceId = bp.id;
31
+ break;
32
+ }
33
+ }
34
+ }
35
+ return this.loadSourceForSourceId(sourceId, executionContext, configuration);
36
+ }
37
+ loadSourceForSourceId(sourceId, executionContext, configuration) {
38
+ // Use cached source if exists
39
+ let cachedBlueprint = this.cachedBlueprint(sourceId);
40
+ if (cachedBlueprint) {
41
+ return cachedBlueprint;
42
+ }
43
+ // Blueprint must be present in loader scope
44
+ let containedBlueprint = this.exporter.sourceById(sourceId);
45
+ if (!containedBlueprint) {
46
+ throw Error(`Undefined source ${sourceId}`);
47
+ }
48
+ // Create new source, cache it and retrieve
49
+ let source = pulsar_language_1.BLZBlueprintFactory.blueprint(containedBlueprint.content, sourceId, executionContext, configuration);
50
+ this.cache(source, sourceId);
51
+ return source;
52
+ }
53
+ }
54
+ exports.PLSBlueprintLoader = PLSBlueprintLoader;
55
+ //# sourceMappingURL=BlueprintLoader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BlueprintLoader.js","sourceRoot":"","sources":["../../../../src/engine/loaders/BlueprintLoader.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,sBAAsB;AACtB,aAAa;AACb,EAAE;AACF,2BAA2B;AAC3B,sDAAsD;AACtD,EAAE;;;AAMF,sHAAsH;AACtH,uEAK2C;AAE3C,8GAA8G;AAC9G,gBAAgB;AAEhB,MAAa,kBAAmB,SAAQ,oCAAkB;IAMxD,8GAA8G;IAC9G,gBAAgB;IAEhB,YAAY,QAAqB;QAC/B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,8GAA8G;IAC9G,4BAA4B;IAE5B,UAAU,CACR,QAAgB,EAChB,gBAAqC,EACrC,aAAwC;QAExC,IAAI,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QACrD,IAAI,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAE5D,IAAI,CAAC,eAAe,IAAI,CAAC,kBAAkB,EAAE;YAC3C,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE;gBAC/C,IAAI,EAAE,CAAC,EAAE,KAAK,QAAQ,EAAE;oBACtB,QAAQ,GAAG,EAAE,CAAC,EAAE,CAAC;oBACjB,MAAM;iBACP;aACF;SACF;QAED,OAAO,IAAI,CAAC,qBAAqB,CAC/B,QAAQ,EACR,gBAAgB,EAChB,aAAa,CACd,CAAC;IACJ,CAAC;IAED,qBAAqB,CACnB,QAAgB,EAChB,gBAAqC,EACrC,aAAwC;QAExC,8BAA8B;QAC9B,IAAI,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QACrD,IAAI,eAAe,EAAE;YACnB,OAAO,eAAe,CAAC;SACxB;QAED,4CAA4C;QAC5C,IAAI,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC5D,IAAI,CAAC,kBAAkB,EAAE;YACvB,MAAM,KAAK,CAAC,oBAAoB,QAAQ,EAAE,CAAC,CAAC;SAC7C;QAED,2CAA2C;QAC3C,IAAI,MAAM,GAAG,qCAAmB,CAAC,SAAS,CACxC,kBAAkB,CAAC,OAAO,EAC1B,QAAQ,EACR,gBAAgB,EAChB,aAAa,CACd,CAAC;QACF,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC7B,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AApED,gDAoEC"}
@@ -0,0 +1,16 @@
1
+ import { PLSExportConfiguration } from './../../configuration/ExportConfiguration';
2
+ import { PLSExportWriterQueueOperation } from './ExportWriterQueueOperation';
3
+ import { PLSExportWriterRequest } from './../requests/ExportWriterRequest';
4
+ export declare class PLSExportWriterQueue {
5
+ configuration: PLSExportConfiguration;
6
+ waitingOperations: Array<PLSExportWriterQueueOperation>;
7
+ isLockedForChanges: boolean;
8
+ isFinished: boolean;
9
+ requests: Array<PLSExportWriterRequest>;
10
+ requestsCompleted: number;
11
+ constructor(configuration: PLSExportConfiguration);
12
+ addQueuedRequest(request: PLSExportWriterRequest): void;
13
+ addQueuedRequests(requests: Array<PLSExportWriterRequest>): void;
14
+ clearQueue(): void;
15
+ processQueue(): Promise<Array<PLSExportWriterRequest>>;
16
+ }
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ //
3
+ // PLSExportWriterQueue.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.PLSExportWriterQueue = void 0;
11
+ const ExportWriterQueueOperation_1 = require("./ExportWriterQueueOperation");
12
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
13
+ // MARK: - Definitions
14
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
15
+ // MARK: - Object definition
16
+ class PLSExportWriterQueue {
17
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
18
+ // MARK: - Init
19
+ constructor(configuration) {
20
+ this.isLockedForChanges = false;
21
+ this.isFinished = false;
22
+ this.configuration = configuration;
23
+ this.waitingOperations = new Array();
24
+ this.requests = new Array();
25
+ this.requestsCompleted = 0;
26
+ }
27
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
28
+ // MARK: - Queue management
29
+ addQueuedRequest(request) {
30
+ // Create operation
31
+ let operation = new ExportWriterQueueOperation_1.PLSExportWriterQueueOperation(request);
32
+ // Add operation to queue
33
+ this.requests.push(request);
34
+ this.waitingOperations.push(operation);
35
+ }
36
+ addQueuedRequests(requests) {
37
+ requests.forEach(r => {
38
+ this.addQueuedRequest(r);
39
+ });
40
+ }
41
+ clearQueue() {
42
+ this.requestsCompleted = 0;
43
+ this.waitingOperations = [];
44
+ }
45
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
46
+ // MARK: - Processing
47
+ processQueue() {
48
+ // Sort the files and add them to export buffer
49
+ this.isLockedForChanges = true;
50
+ this.requestsCompleted = 0;
51
+ // Create new queue promise, processing all items at once
52
+ return new Promise((resolve, reject) => {
53
+ let queue = new Array();
54
+ for (let operation of this.waitingOperations) {
55
+ let promise = operation.processOperation();
56
+ queue.push(promise);
57
+ }
58
+ // When one queue item fails, immediately cancel
59
+ Promise.all(queue)
60
+ .then(_ => {
61
+ resolve(this.requests);
62
+ })
63
+ .catch(error => {
64
+ reject(error);
65
+ });
66
+ });
67
+ }
68
+ }
69
+ exports.PLSExportWriterQueue = PLSExportWriterQueue;
70
+ //# sourceMappingURL=ExportWriterQueue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExportWriterQueue.js","sourceRoot":"","sources":["../../../../../src/engine/writing/queue/ExportWriterQueue.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,2BAA2B;AAC3B,aAAa;AACb,EAAE;AACF,2BAA2B;AAC3B,sDAAsD;AACtD,EAAE;;;AAMF,6EAA6E;AAG7E,8GAA8G;AAC9G,sBAAsB;AAEtB,8GAA8G;AAC9G,4BAA4B;AAE5B,MAAa,oBAAoB;IAgB/B,8GAA8G;IAC9G,eAAe;IAEf,YAAY,aAAqC;QAVjD,uBAAkB,GAAY,KAAK,CAAC;QACpC,eAAU,GAAY,KAAK,CAAC;QAU1B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QAEnC,IAAI,CAAC,iBAAiB,GAAG,IAAI,KAAK,EAAiC,CAAC;QACpE,IAAI,CAAC,QAAQ,GAAG,IAAI,KAAK,EAA0B,CAAC;QACpD,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,8GAA8G;IAC9G,2BAA2B;IAE3B,gBAAgB,CAAC,OAA+B;QAC9C,mBAAmB;QACnB,IAAI,SAAS,GAAG,IAAI,0DAA6B,CAAC,OAAO,CAAC,CAAC;QAE3D,yBAAyB;QACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;IAED,iBAAiB,CAAC,QAAuC;QACvD,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACnB,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,UAAU;QACR,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;IAC9B,CAAC;IAED,8GAA8G;IAC9G,qBAAqB;IAErB,YAAY;QACV,+CAA+C;QAC/C,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAC/B,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;QAE3B,yDAAyD;QACzD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,KAAK,GAAG,IAAI,KAAK,EAAmC,CAAC;YACzD,KAAK,IAAI,SAAS,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBAC5C,IAAI,OAAO,GAAG,SAAS,CAAC,gBAAgB,EAAE,CAAC;gBAC3C,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aACrB;YAED,gDAAgD;YAChD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;iBACf,IAAI,CAAC,CAAC,CAAC,EAAE;gBACR,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzB,CAAC,CAAC;iBACD,KAAK,CAAC,KAAK,CAAC,EAAE;gBACb,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AA5ED,oDA4EC"}
@@ -0,0 +1,6 @@
1
+ import { PLSExportWriterRequest } from './../requests/ExportWriterRequest';
2
+ export declare class PLSExportWriterQueueOperation {
3
+ request: PLSExportWriterRequest;
4
+ constructor(request: PLSExportWriterRequest);
5
+ processOperation(): Promise<PLSExportWriterRequest>;
6
+ }
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ //
3
+ // PLSExportWriterQueueOperation.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.PLSExportWriterQueueOperation = void 0;
11
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
12
+ // MARK: - Definitions
13
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
14
+ // MARK: - Object definition
15
+ class PLSExportWriterQueueOperation {
16
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
17
+ // MARK: - Init
18
+ constructor(request) {
19
+ this.request = request;
20
+ }
21
+ processOperation() {
22
+ return new Promise((respond, reject) => {
23
+ // Generate request data, then resolve the promise
24
+ this.request
25
+ .writeItem()
26
+ .then(_ => {
27
+ respond(this.request);
28
+ })
29
+ .catch(error => {
30
+ reject(error);
31
+ });
32
+ });
33
+ }
34
+ }
35
+ exports.PLSExportWriterQueueOperation = PLSExportWriterQueueOperation;
36
+ //# sourceMappingURL=ExportWriterQueueOperation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExportWriterQueueOperation.js","sourceRoot":"","sources":["../../../../../src/engine/writing/queue/ExportWriterQueueOperation.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,oCAAoC;AACpC,aAAa;AACb,EAAE;AACF,2BAA2B;AAC3B,sDAAsD;AACtD,EAAE;;;AAOF,8GAA8G;AAC9G,sBAAsB;AAEtB,8GAA8G;AAC9G,4BAA4B;AAE5B,MAAa,6BAA6B;IAOxC,8GAA8G;IAC9G,eAAe;IAEf,YAAY,OAA+B;QACzC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,kDAAkD;YAClD,IAAI,CAAC,OAAO;iBACT,SAAS,EAAE;iBACX,IAAI,CAAC,CAAC,CAAC,EAAE;gBACR,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACxB,CAAC,CAAC;iBACD,KAAK,CAAC,KAAK,CAAC,EAAE;gBACb,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AA3BD,sEA2BC"}
@@ -0,0 +1,14 @@
1
+ import { PLSExporterMapBlueprint } from './../../../model/maps/ExporterMapBlueprint';
2
+ import { PLSExportConfiguration } from './../../configuration/ExportConfiguration';
3
+ import { PLSExportItem } from './../../items/construction/ExportItem';
4
+ export declare class PLSExportWriterRequest {
5
+ item: PLSExportItem;
6
+ map: PLSExporterMapBlueprint;
7
+ configuration: PLSExportConfiguration;
8
+ processingError: Error | null;
9
+ processingFinished: boolean;
10
+ constructor(configuration: PLSExportConfiguration, item: PLSExportItem, map: PLSExporterMapBlueprint);
11
+ writeItem(): Promise<PLSExportItem>;
12
+ requestSuccesful(_: PLSExportItem): void;
13
+ requestFailed(error: Error): void;
14
+ }
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ //
3
+ // PLSExportWriterRequest.ts
4
+ // Pulsar
5
+ //
6
+ // Created by Jiri Trecak.
7
+ // Copyright © 2020 Jiri Trecak. All rights reserved.
8
+ //
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.PLSExportWriterRequest = void 0;
11
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
12
+ // MARK: - Definitions
13
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
14
+ // MARK: - Object definition
15
+ class PLSExportWriterRequest {
16
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
17
+ // MARK: - Init
18
+ constructor(configuration, item, map) {
19
+ // States
20
+ this.processingError = null;
21
+ this.processingFinished = false;
22
+ this.item = item;
23
+ this.map = map;
24
+ this.configuration = configuration;
25
+ }
26
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
27
+ // MARK: - Content production
28
+ writeItem() {
29
+ throw Error('Content must be written by each individual subclass');
30
+ }
31
+ requestSuccesful(_) {
32
+ this.processingFinished = true;
33
+ }
34
+ requestFailed(error) {
35
+ this.processingFinished = true;
36
+ this.processingError = error;
37
+ }
38
+ }
39
+ exports.PLSExportWriterRequest = PLSExportWriterRequest;
40
+ //# sourceMappingURL=ExportWriterRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExportWriterRequest.js","sourceRoot":"","sources":["../../../../../src/engine/writing/requests/ExportWriterRequest.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,6BAA6B;AAC7B,UAAU;AACV,EAAE;AACF,2BAA2B;AAC3B,sDAAsD;AACtD,EAAE;;;AASF,8GAA8G;AAC9G,sBAAsB;AAEtB,8GAA8G;AAC9G,4BAA4B;AAE5B,MAAa,sBAAsB;IAejC,8GAA8G;IAC9G,eAAe;IAEf,YACE,aAAqC,EACrC,IAAmB,EACnB,GAA4B;QAV9B,SAAS;QACT,oBAAe,GAAiB,IAAI,CAAC;QACrC,uBAAkB,GAAY,KAAK,CAAC;QAUlC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;IAED,8GAA8G;IAC9G,6BAA6B;IAE7B,SAAS;QACP,MAAM,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACrE,CAAC;IAED,gBAAgB,CAAC,CAAgB;QAC/B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;IACjC,CAAC;IAED,aAAa,CAAC,KAAY;QACxB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAC/B,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;IAC/B,CAAC;CACF;AA3CD,wDA2CC"}