@adminide-stack/core 0.1.1 → 1.0.201-alpha.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 (286) hide show
  1. package/LICENSE +674 -0
  2. package/README.md +2 -2
  3. package/lib/constants/billing-plan.d.ts +1 -0
  4. package/lib/constants/billing-plan.js +5 -0
  5. package/lib/constants/billing-plan.js.map +1 -0
  6. package/lib/constants/configuration.d.ts +6 -0
  7. package/lib/constants/configuration.js +10 -0
  8. package/lib/constants/configuration.js.map +1 -0
  9. package/lib/constants/constants.d.ts +2 -7
  10. package/lib/constants/constants.js +6 -0
  11. package/lib/constants/constants.js.map +1 -0
  12. package/lib/constants/default-workspace-config.d.ts +3 -0
  13. package/lib/constants/default-workspace-config.js +7 -0
  14. package/lib/constants/default-workspace-config.js.map +1 -0
  15. package/lib/constants/index.d.ts +6 -0
  16. package/lib/constants/index.js +24 -0
  17. package/lib/constants/index.js.map +1 -0
  18. package/lib/constants/routes.d.ts +4 -0
  19. package/lib/constants/routes.js +10 -0
  20. package/lib/constants/routes.js.map +1 -0
  21. package/lib/constants/types.d.ts +19 -0
  22. package/lib/constants/types.js +23 -0
  23. package/lib/constants/types.js.map +1 -0
  24. package/lib/constants/urls.d.ts +3 -0
  25. package/lib/constants/urls.js +7 -0
  26. package/lib/constants/urls.js.map +1 -0
  27. package/lib/core/configurations/configuration.d.ts +64 -0
  28. package/lib/core/configurations/configuration.js +236 -0
  29. package/lib/core/configurations/configuration.js.map +1 -0
  30. package/lib/core/configurations/events/abstract-configuration-change-event.d.ts +6 -0
  31. package/lib/core/configurations/events/abstract-configuration-change-event.js +27 -0
  32. package/lib/core/configurations/events/abstract-configuration-change-event.js.map +1 -0
  33. package/lib/core/configurations/events/all-keys-configuration-change-event.d.ts +17 -0
  34. package/lib/core/configurations/events/all-keys-configuration-change-event.js +33 -0
  35. package/lib/core/configurations/events/all-keys-configuration-change-event.js.map +1 -0
  36. package/lib/core/configurations/events/configuration-change-event.d.ts +24 -0
  37. package/lib/core/configurations/events/configuration-change-event.js +84 -0
  38. package/lib/core/configurations/events/configuration-change-event.js.map +1 -0
  39. package/lib/core/configurations/events/index.d.ts +4 -0
  40. package/lib/core/configurations/events/index.js +21 -0
  41. package/lib/core/configurations/events/index.js.map +1 -0
  42. package/lib/core/configurations/events/organization-configuration-change-event.d.ts +15 -0
  43. package/lib/core/configurations/events/organization-configuration-change-event.js +39 -0
  44. package/lib/core/configurations/events/organization-configuration-change-event.js.map +1 -0
  45. package/lib/core/configurations/helpers/configuration.d.ts +26 -0
  46. package/lib/core/configurations/helpers/configuration.js +203 -0
  47. package/lib/core/configurations/helpers/configuration.js.map +1 -0
  48. package/lib/core/configurations/helpers/index.d.ts +1 -0
  49. package/lib/core/configurations/helpers/index.js +18 -0
  50. package/lib/core/configurations/helpers/index.js.map +1 -0
  51. package/lib/core/configurations/index.d.ts +4 -0
  52. package/lib/core/configurations/index.js +21 -0
  53. package/lib/core/configurations/index.js.map +1 -0
  54. package/lib/core/configurations/models/configuration-model.d.ts +24 -0
  55. package/lib/core/configurations/models/configuration-model.js +143 -0
  56. package/lib/core/configurations/models/configuration-model.js.map +1 -0
  57. package/lib/core/configurations/models/index.d.ts +1 -0
  58. package/lib/core/configurations/models/index.js +18 -0
  59. package/lib/core/configurations/models/index.js.map +1 -0
  60. package/lib/core/disposable.d.ts +28 -0
  61. package/lib/core/disposable.js +82 -0
  62. package/lib/core/disposable.js.map +1 -0
  63. package/lib/core/event.d.ts +76 -0
  64. package/lib/core/event.js +262 -0
  65. package/lib/core/event.js.map +1 -0
  66. package/lib/core/event.test.d.ts +1 -0
  67. package/lib/core/event.test.js +15 -0
  68. package/lib/core/event.test.js.map +1 -0
  69. package/lib/core/index.d.ts +6 -0
  70. package/lib/core/index.js +23 -0
  71. package/lib/core/index.js.map +1 -0
  72. package/lib/core/organization/configuration.d.ts +31 -0
  73. package/lib/core/organization/configuration.js +87 -0
  74. package/lib/core/organization/configuration.js.map +1 -0
  75. package/lib/core/organization/helpers/index.d.ts +1 -0
  76. package/lib/core/organization/helpers/index.js +18 -0
  77. package/lib/core/organization/helpers/index.js.map +1 -0
  78. package/lib/core/organization/helpers/organization-helpers.d.ts +6 -0
  79. package/lib/core/organization/helpers/organization-helpers.js +34 -0
  80. package/lib/core/organization/helpers/organization-helpers.js.map +1 -0
  81. package/lib/core/organization/index.d.ts +3 -0
  82. package/lib/core/organization/index.js +20 -0
  83. package/lib/core/organization/index.js.map +1 -0
  84. package/lib/core/organization/organization.d.ts +31 -0
  85. package/lib/core/organization/organization.js +135 -0
  86. package/lib/core/organization/organization.js.map +1 -0
  87. package/lib/core/path.d.ts +58 -0
  88. package/lib/core/path.js +189 -0
  89. package/lib/core/path.js.map +1 -0
  90. package/lib/core/path.test.d.ts +1 -0
  91. package/lib/core/path.test.js +205 -0
  92. package/lib/core/path.test.js.map +1 -0
  93. package/lib/core/types.d.ts +1 -0
  94. package/lib/core/types.js +3 -0
  95. package/lib/core/types.js.map +1 -0
  96. package/lib/core/uri.d.ts +68 -0
  97. package/lib/core/uri.js +158 -0
  98. package/lib/core/uri.js.map +1 -0
  99. package/lib/core/uri.test.d.ts +1 -0
  100. package/lib/core/uri.test.js +136 -0
  101. package/lib/core/uri.test.js.map +1 -0
  102. package/lib/enums/connection-status.d.ts +6 -0
  103. package/lib/enums/connection-status.js +11 -0
  104. package/lib/enums/connection-status.js.map +1 -0
  105. package/lib/enums/index.d.ts +7 -0
  106. package/lib/enums/index.js +24 -0
  107. package/lib/enums/index.js.map +1 -0
  108. package/lib/enums/integration-configuration-status.d.ts +5 -0
  109. package/lib/enums/integration-configuration-status.js +10 -0
  110. package/lib/enums/integration-configuration-status.js.map +1 -0
  111. package/lib/enums/integrations-configuration-steps.d.ts +7 -0
  112. package/lib/enums/integrations-configuration-steps.js +12 -0
  113. package/lib/enums/integrations-configuration-steps.js.map +1 -0
  114. package/lib/enums/integrations-connection-names.d.ts +11 -0
  115. package/lib/enums/integrations-connection-names.js +17 -0
  116. package/lib/enums/integrations-connection-names.js.map +1 -0
  117. package/lib/enums/integrations.d.ts +9 -0
  118. package/lib/enums/integrations.js +14 -0
  119. package/lib/enums/integrations.js.map +1 -0
  120. package/lib/enums/permissions.d.ts +7 -0
  121. package/lib/enums/permissions.js +12 -0
  122. package/lib/enums/permissions.js.map +1 -0
  123. package/lib/enums/team-member-status.d.ts +4 -0
  124. package/lib/enums/team-member-status.js +9 -0
  125. package/lib/enums/team-member-status.js.map +1 -0
  126. package/lib/errors/auth-error-messages.d.ts +25 -0
  127. package/lib/errors/auth-error-messages.js +31 -0
  128. package/lib/errors/auth-error-messages.js.map +1 -0
  129. package/lib/errors/auth-error.d.ts +8 -0
  130. package/lib/errors/auth-error.js +13 -0
  131. package/lib/errors/auth-error.js.map +1 -0
  132. package/lib/errors/index.d.ts +2 -0
  133. package/lib/errors/index.js +19 -0
  134. package/lib/errors/index.js.map +1 -0
  135. package/lib/index.d.ts +6 -0
  136. package/lib/index.js +23 -143
  137. package/lib/index.js.map +1 -1
  138. package/lib/interfaces/apollo-context.d.ts +48 -0
  139. package/lib/interfaces/apollo-context.js +3 -0
  140. package/lib/interfaces/apollo-context.js.map +1 -0
  141. package/lib/interfaces/common.d.ts +7 -0
  142. package/lib/interfaces/common.js +3 -0
  143. package/lib/interfaces/common.js.map +1 -0
  144. package/lib/interfaces/configuration/configuration-file-service.d.ts +5 -0
  145. package/lib/interfaces/configuration/configuration-file-service.js +3 -0
  146. package/lib/interfaces/configuration/configuration-file-service.js.map +1 -0
  147. package/lib/interfaces/configuration/configuration-server-service.d.ts +10 -0
  148. package/lib/interfaces/configuration/configuration-server-service.js +3 -0
  149. package/lib/interfaces/configuration/configuration-server-service.js.map +1 -0
  150. package/lib/interfaces/configuration/configuration.d.ts +39 -0
  151. package/lib/interfaces/configuration/configuration.js +53 -0
  152. package/lib/interfaces/configuration/configuration.js.map +1 -0
  153. package/lib/interfaces/configuration/configuraton-service.d.ts +60 -0
  154. package/lib/interfaces/configuration/configuraton-service.js +3 -0
  155. package/lib/interfaces/configuration/configuraton-service.js.map +1 -0
  156. package/lib/interfaces/configuration/event.d.ts +12 -0
  157. package/lib/interfaces/configuration/event.js +3 -0
  158. package/lib/interfaces/configuration/event.js.map +1 -0
  159. package/lib/interfaces/configuration/index.d.ts +5 -0
  160. package/lib/interfaces/configuration/index.js +22 -0
  161. package/lib/interfaces/configuration/index.js.map +1 -0
  162. package/lib/interfaces/contex-key-service.d.ts +2 -0
  163. package/lib/interfaces/contex-key-service.js +3 -0
  164. package/lib/interfaces/contex-key-service.js.map +1 -0
  165. package/lib/interfaces/database-migration.d.ts +8 -0
  166. package/lib/interfaces/database-migration.js +3 -0
  167. package/lib/interfaces/database-migration.js.map +1 -0
  168. package/lib/interfaces/enum.d.ts +26 -0
  169. package/lib/interfaces/enum.js +71 -0
  170. package/lib/interfaces/enum.js.map +1 -0
  171. package/lib/interfaces/environment/argv.d.ts +6 -0
  172. package/lib/interfaces/environment/argv.js +3 -0
  173. package/lib/interfaces/environment/argv.js.map +1 -0
  174. package/lib/interfaces/environment/environment-service.d.ts +7 -0
  175. package/lib/interfaces/environment/environment-service.js +3 -0
  176. package/lib/interfaces/environment/environment-service.js.map +1 -0
  177. package/lib/interfaces/environment/index.d.ts +2 -0
  178. package/lib/interfaces/environment/index.js +19 -0
  179. package/lib/interfaces/environment/index.js.map +1 -0
  180. package/lib/interfaces/generated/generated-models.d.ts +10953 -0
  181. package/lib/interfaces/generated/generated-models.js +3984 -0
  182. package/lib/interfaces/generated/generated-models.js.map +1 -0
  183. package/lib/interfaces/generated/index.d.ts +1 -0
  184. package/lib/interfaces/generated/index.js +18 -0
  185. package/lib/interfaces/generated/index.js.map +1 -0
  186. package/lib/interfaces/index.d.ts +17 -1
  187. package/lib/interfaces/index.js +34 -0
  188. package/lib/interfaces/index.js.map +1 -0
  189. package/lib/interfaces/lifecycle-service.d.ts +1 -0
  190. package/lib/interfaces/lifecycle-service.js +8 -0
  191. package/lib/interfaces/lifecycle-service.js.map +1 -0
  192. package/lib/interfaces/log/index.d.ts +1 -0
  193. package/lib/interfaces/log/index.js +18 -0
  194. package/lib/interfaces/log/index.js.map +1 -0
  195. package/lib/interfaces/log/log-service.d.ts +16 -0
  196. package/lib/interfaces/log/log-service.js +3 -0
  197. package/lib/interfaces/log/log-service.js.map +1 -0
  198. package/lib/interfaces/nav-items.d.ts +5 -0
  199. package/lib/interfaces/nav-items.js +3 -0
  200. package/lib/interfaces/nav-items.js.map +1 -0
  201. package/lib/interfaces/organization/index.d.ts +3 -0
  202. package/lib/interfaces/organization/index.js +20 -0
  203. package/lib/interfaces/organization/index.js.map +1 -0
  204. package/lib/interfaces/organization/organization-context-service.d.ts +65 -0
  205. package/lib/interfaces/organization/organization-context-service.js +3 -0
  206. package/lib/interfaces/organization/organization-context-service.js.map +1 -0
  207. package/lib/interfaces/organization/organization-context.d.ts +39 -0
  208. package/lib/interfaces/organization/organization-context.js +31 -0
  209. package/lib/interfaces/organization/organization-context.js.map +1 -0
  210. package/lib/interfaces/organization/organizations-context.d.ts +35 -0
  211. package/lib/interfaces/organization/organizations-context.js +3 -0
  212. package/lib/interfaces/organization/organizations-context.js.map +1 -0
  213. package/lib/interfaces/page-store.d.ts +16 -0
  214. package/lib/interfaces/page-store.js +3 -0
  215. package/lib/interfaces/page-store.js.map +1 -0
  216. package/lib/interfaces/permissions.d.ts +2 -0
  217. package/lib/interfaces/permissions.js +3 -0
  218. package/lib/interfaces/permissions.js.map +1 -0
  219. package/lib/interfaces/preferences-service.d.ts +40 -0
  220. package/lib/interfaces/preferences-service.js +3 -0
  221. package/lib/interfaces/preferences-service.js.map +1 -0
  222. package/lib/interfaces/service.d.ts +18 -0
  223. package/lib/interfaces/service.js +3 -0
  224. package/lib/interfaces/service.js.map +1 -0
  225. package/lib/interfaces/workbench-exports.d.ts +5 -0
  226. package/lib/interfaces/workbench-exports.js +6 -0
  227. package/lib/interfaces/workbench-exports.js.map +1 -0
  228. package/lib/modules/account-api/enums/index.d.ts +51 -0
  229. package/lib/modules/account-api/enums/index.js +56 -0
  230. package/lib/modules/account-api/enums/index.js.map +1 -0
  231. package/lib/modules/account-api/index.d.ts +1 -0
  232. package/lib/modules/account-api/index.js +18 -0
  233. package/lib/modules/account-api/index.js.map +1 -0
  234. package/lib/modules/billing-api/enums/index.d.ts +22 -0
  235. package/lib/modules/billing-api/enums/index.js +28 -0
  236. package/lib/modules/billing-api/enums/index.js.map +1 -0
  237. package/lib/modules/billing-api/index.d.ts +1 -0
  238. package/lib/modules/billing-api/index.js +18 -0
  239. package/lib/modules/billing-api/index.js.map +1 -0
  240. package/lib/modules/index.d.ts +2 -0
  241. package/lib/modules/index.js +19 -0
  242. package/lib/modules/index.js.map +1 -0
  243. package/lib/services/abstract-configuration.d.ts +54 -0
  244. package/lib/services/abstract-configuration.js +80 -0
  245. package/lib/services/abstract-configuration.js.map +1 -0
  246. package/lib/services/abstract-organization-context-service.d.ts +40 -0
  247. package/lib/services/abstract-organization-context-service.js +115 -0
  248. package/lib/services/abstract-organization-context-service.js.map +1 -0
  249. package/lib/services/index.d.ts +2 -0
  250. package/lib/services/index.js +19 -0
  251. package/lib/services/index.js.map +1 -0
  252. package/lib/utils/configuration-utils.d.ts +4 -0
  253. package/lib/utils/configuration-utils.js +15 -0
  254. package/lib/utils/configuration-utils.js.map +1 -0
  255. package/lib/utils/date-utils.d.ts +1 -0
  256. package/lib/utils/date-utils.js +9 -0
  257. package/lib/utils/date-utils.js.map +1 -0
  258. package/lib/utils/flatten-utils.d.ts +1 -0
  259. package/lib/utils/flatten-utils.js +20 -0
  260. package/lib/utils/flatten-utils.js.map +1 -0
  261. package/lib/utils/generate-uri.d.ts +35 -0
  262. package/lib/utils/generate-uri.js +49 -0
  263. package/lib/utils/generate-uri.js.map +1 -0
  264. package/lib/utils/generated-settings-id.d.ts +2 -0
  265. package/lib/utils/generated-settings-id.js +12 -0
  266. package/lib/utils/generated-settings-id.js.map +1 -0
  267. package/lib/utils/index.d.ts +9 -0
  268. package/lib/utils/index.js +26 -0
  269. package/lib/utils/index.js.map +1 -0
  270. package/lib/utils/omit-deep.d.ts +1 -0
  271. package/lib/utils/omit-deep.js +16 -0
  272. package/lib/utils/omit-deep.js.map +1 -0
  273. package/lib/utils/roles-utils.d.ts +2 -0
  274. package/lib/utils/roles-utils.js +11 -0
  275. package/lib/utils/roles-utils.js.map +1 -0
  276. package/lib/utils/uri.d.ts +3 -0
  277. package/lib/utils/uri.js +21 -0
  278. package/lib/utils/uri.js.map +1 -0
  279. package/lib/utils/utils.d.ts +3 -0
  280. package/lib/utils/utils.js +37 -0
  281. package/lib/utils/utils.js.map +1 -0
  282. package/lib/utils/validations.d.ts +1 -0
  283. package/lib/utils/validations.js +9 -0
  284. package/lib/utils/validations.js.map +1 -0
  285. package/package.json +34 -25
  286. package/lib/interfaces/workspace.d.ts +0 -37
@@ -0,0 +1,143 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ConfigurationModel = void 0;
4
+ const objects = require("@vscode-alt/monaco-editor/esm/vs/base/common/objects");
5
+ const arrays = require("@vscode-alt/monaco-editor/esm/vs/base/common/arrays");
6
+ const types = require("@vscode-alt/monaco-editor/esm/vs/base/common/types");
7
+ const configuration_1 = require("../helpers/configuration");
8
+ class ConfigurationModel {
9
+ constructor(_contents = {}, _keys = [], _overrides = []) {
10
+ this._contents = _contents;
11
+ this._keys = _keys;
12
+ this._overrides = _overrides;
13
+ this.isFrozen = false;
14
+ }
15
+ get contents() {
16
+ return this.checkAndFreeze(this._contents);
17
+ }
18
+ get overrides() {
19
+ return this.checkAndFreeze(this._overrides);
20
+ }
21
+ get keys() {
22
+ return this.checkAndFreeze(this._keys);
23
+ }
24
+ isEmpty() {
25
+ return this._keys.length === 0 && Object.keys(this._contents).length === 0 && this._overrides.length === 0;
26
+ }
27
+ getValue(section) {
28
+ return section ? (0, configuration_1.getConfigurationValue)(this.contents, section) : this.contents;
29
+ }
30
+ override(identifier) {
31
+ const overrideContents = this.getContentsForOverrideIdentifer(identifier);
32
+ if (!overrideContents || typeof overrideContents !== 'object' || !Object.keys(overrideContents).length) {
33
+ // If there are no valid overrides, return self
34
+ return this;
35
+ }
36
+ let contents = {};
37
+ for (const key of arrays.distinct([...Object.keys(this.contents), ...Object.keys(overrideContents)])) {
38
+ let contentsForKey = this.contents[key];
39
+ let overrideContentsForKey = overrideContents[key];
40
+ // If there are override contents for the key, clone and merge otherwise use base contents
41
+ if (overrideContentsForKey) {
42
+ // Clone and merge only if base contents and override contents are of type object otherwise just override
43
+ if (typeof contentsForKey === 'object' && typeof overrideContentsForKey === 'object') {
44
+ contentsForKey = objects.deepClone(contentsForKey);
45
+ this.mergeContents(contentsForKey, overrideContentsForKey);
46
+ }
47
+ else {
48
+ contentsForKey = overrideContentsForKey;
49
+ }
50
+ }
51
+ contents[key] = contentsForKey;
52
+ }
53
+ return new ConfigurationModel(contents);
54
+ }
55
+ merge(...others) {
56
+ const contents = objects.deepClone(this.contents);
57
+ const overrides = objects.deepClone(this.overrides);
58
+ const keys = [...this.keys];
59
+ for (const other of others) {
60
+ this.mergeContents(contents, other.contents);
61
+ for (const otherOverride of other.overrides) {
62
+ const [override] = overrides.filter(o => arrays.equals(o.identifiers, otherOverride.identifiers));
63
+ if (override) {
64
+ this.mergeContents(override.contents, otherOverride.contents);
65
+ }
66
+ else {
67
+ overrides.push(objects.deepClone(otherOverride));
68
+ }
69
+ }
70
+ for (const key of other.keys) {
71
+ if (keys.indexOf(key) === -1) {
72
+ keys.push(key);
73
+ }
74
+ }
75
+ }
76
+ return new ConfigurationModel(contents, keys, overrides);
77
+ }
78
+ freeze() {
79
+ this.isFrozen = true;
80
+ return this;
81
+ }
82
+ mergeContents(source, target) {
83
+ for (const key of Object.keys(target)) {
84
+ if (key in source) {
85
+ if (types.isObject(source[key]) && types.isObject(target[key])) {
86
+ this.mergeContents(source[key], target[key]);
87
+ continue;
88
+ }
89
+ }
90
+ source[key] = objects.deepClone(target[key]);
91
+ }
92
+ }
93
+ checkAndFreeze(data) {
94
+ if (this.isFrozen && !Object.isFrozen(data)) {
95
+ return objects.deepFreeze(data);
96
+ }
97
+ return data;
98
+ }
99
+ getContentsForOverrideIdentifer(identifier) {
100
+ for (const override of this.overrides) {
101
+ if (override.identifiers.indexOf(identifier) !== -1) {
102
+ return override.contents;
103
+ }
104
+ }
105
+ return null;
106
+ }
107
+ toJSON() {
108
+ return {
109
+ contents: this.contents,
110
+ overrides: this.overrides,
111
+ keys: this.keys
112
+ };
113
+ }
114
+ // Update methods
115
+ setValue(key, value) {
116
+ this.addKey(key);
117
+ (0, configuration_1.addToValueTree)(this.contents, key, value, e => { throw new Error(e); });
118
+ }
119
+ removeValue(key) {
120
+ if (this.removeKey(key)) {
121
+ (0, configuration_1.removeFromValueTree)(this.contents, key);
122
+ }
123
+ }
124
+ addKey(key) {
125
+ let index = this.keys.length;
126
+ for (let i = 0; i < index; i++) {
127
+ if (key.indexOf(this.keys[i]) === 0) {
128
+ index = i;
129
+ }
130
+ }
131
+ this.keys.splice(index, 1, key);
132
+ }
133
+ removeKey(key) {
134
+ let index = this.keys.indexOf(key);
135
+ if (index !== -1) {
136
+ this.keys.splice(index, 1);
137
+ return true;
138
+ }
139
+ return false;
140
+ }
141
+ }
142
+ exports.ConfigurationModel = ConfigurationModel;
143
+ //# sourceMappingURL=configuration-model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configuration-model.js","sourceRoot":"","sources":["../../../../src/core/configurations/models/configuration-model.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export * from './configuration-model';
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./configuration-model"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/configurations/models/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC"}
@@ -0,0 +1,28 @@
1
+ import { Event, Emitter } from './event';
2
+ export interface Disposable {
3
+ /**
4
+ * Dispose this object.
5
+ */
6
+ dispose(): void;
7
+ }
8
+ export declare namespace Disposable {
9
+ function is(arg: any): arg is Disposable;
10
+ function create(func: () => void): Disposable;
11
+ const NULL: Disposable;
12
+ }
13
+ export declare class DisposableCollection implements Disposable {
14
+ protected readonly disposables: Disposable[];
15
+ protected readonly onDisposeEmitter: Emitter<void>;
16
+ constructor(...toDispose: Disposable[]);
17
+ /**
18
+ * This event is fired only once
19
+ * on first dispose of not empty collection.
20
+ */
21
+ get onDispose(): Event<void>;
22
+ protected checkDisposed(): void;
23
+ get disposed(): boolean;
24
+ private disposingElements;
25
+ dispose(): void;
26
+ push(disposable: Disposable): Disposable;
27
+ pushAll(disposables: Disposable[]): Disposable[];
28
+ }
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DisposableCollection = exports.Disposable = void 0;
4
+ /* tslint:disable */
5
+ const event_1 = require("./event");
6
+ var Disposable;
7
+ (function (Disposable) {
8
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
9
+ function is(arg) {
10
+ return !!arg && typeof arg === 'object' && 'dispose' in arg && typeof arg['dispose'] === 'function';
11
+ }
12
+ Disposable.is = is;
13
+ function create(func) {
14
+ return {
15
+ dispose: func
16
+ };
17
+ }
18
+ Disposable.create = create;
19
+ Disposable.NULL = create(() => { });
20
+ })(Disposable = exports.Disposable || (exports.Disposable = {}));
21
+ class DisposableCollection {
22
+ constructor(...toDispose) {
23
+ this.disposables = [];
24
+ this.onDisposeEmitter = new event_1.Emitter();
25
+ this.disposingElements = false;
26
+ toDispose.forEach(d => this.push(d));
27
+ }
28
+ /**
29
+ * This event is fired only once
30
+ * on first dispose of not empty collection.
31
+ */
32
+ get onDispose() {
33
+ return this.onDisposeEmitter.event;
34
+ }
35
+ checkDisposed() {
36
+ if (this.disposed && !this.disposingElements) {
37
+ this.onDisposeEmitter.fire(undefined);
38
+ this.onDisposeEmitter.dispose();
39
+ }
40
+ }
41
+ get disposed() {
42
+ return this.disposables.length === 0;
43
+ }
44
+ dispose() {
45
+ if (this.disposed || this.disposingElements) {
46
+ return;
47
+ }
48
+ this.disposingElements = true;
49
+ while (!this.disposed) {
50
+ try {
51
+ this.disposables.pop().dispose();
52
+ }
53
+ catch (e) {
54
+ console.error(e);
55
+ }
56
+ }
57
+ this.disposingElements = false;
58
+ this.checkDisposed();
59
+ }
60
+ push(disposable) {
61
+ const disposables = this.disposables;
62
+ disposables.push(disposable);
63
+ const originalDispose = disposable.dispose.bind(disposable);
64
+ const toRemove = Disposable.create(() => {
65
+ const index = disposables.indexOf(disposable);
66
+ if (index !== -1) {
67
+ disposables.splice(index, 1);
68
+ }
69
+ this.checkDisposed();
70
+ });
71
+ disposable.dispose = () => {
72
+ toRemove.dispose();
73
+ originalDispose();
74
+ };
75
+ return toRemove;
76
+ }
77
+ pushAll(disposables) {
78
+ return disposables.map(disposable => this.push(disposable));
79
+ }
80
+ }
81
+ exports.DisposableCollection = DisposableCollection;
82
+ //# sourceMappingURL=disposable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"disposable.js","sourceRoot":"","sources":["../../src/core/disposable.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,76 @@
1
+ import { Disposable } from './disposable';
2
+ import { MaybePromise } from './types';
3
+ /**
4
+ * Represents a typed event.
5
+ */
6
+ export interface Event<T> {
7
+ /**
8
+ *
9
+ * @param listener The listener function will be call when the event happens.
10
+ * @param thisArgs The 'this' which will be used when calling the event listener.
11
+ * @param disposables An array to which a {{IDisposable}} will be added.
12
+ * @return a disposable to remove the listener again.
13
+ */
14
+ (listener: (e: T) => any, thisArgs?: any, disposables?: Disposable[]): Disposable;
15
+ /**
16
+ * An emitter will print a warning if more listeners are added for this event.
17
+ * The event.maxListeners allows the limit to be modified for this specific event.
18
+ * The value can be set to 0 to indicate an unlimited number of listener.
19
+ */
20
+ maxListeners: number;
21
+ }
22
+ export declare namespace Event {
23
+ const None: Event<any>;
24
+ /**
25
+ * Given an event and a `map` function, returns another event which maps each element
26
+ * through the mapping function.
27
+ */
28
+ function map<I, O>(event: Event<I>, mapFunc: (i: I) => O): Event<O>;
29
+ }
30
+ export interface EmitterOptions {
31
+ onFirstListenerAdd?: Function;
32
+ onLastListenerRemove?: Function;
33
+ }
34
+ export declare class Emitter<T = any> {
35
+ private _options?;
36
+ private static LEAK_WARNING_THRESHHOLD;
37
+ private static _noop;
38
+ private _event;
39
+ private _callbacks;
40
+ private _disposed;
41
+ private _leakingStacks;
42
+ private _leakWarnCountdown;
43
+ constructor(_options?: EmitterOptions);
44
+ /**
45
+ * For the public to allow to subscribe
46
+ * to events from this Emitter
47
+ */
48
+ get event(): Event<T>;
49
+ protected checkMaxListeners(maxListeners: number): (() => void) | undefined;
50
+ protected pushLeakingStack(): () => void;
51
+ protected popLeakingStack(stack: string): void;
52
+ /**
53
+ * To be kept private to fire an event to
54
+ * subscribers
55
+ */
56
+ fire(event: T): any;
57
+ /**
58
+ * Process each listener one by one.
59
+ * Return `false` to stop iterating over the listeners, `true` to continue.
60
+ */
61
+ sequence(processor: (listener: (e: T) => any) => MaybePromise<boolean>): Promise<void>;
62
+ dispose(): void;
63
+ }
64
+ export interface WaitUntilEvent {
65
+ /**
66
+ * Allows to pause the event loop until the provided thenable resolved.
67
+ *
68
+ * *Note:* It can only be called during event dispatch and not in an asynchronous manner
69
+ *
70
+ * @param thenable A thenable that delays execution.
71
+ */
72
+ waitUntil(thenable: Promise<any>): void;
73
+ }
74
+ export declare namespace WaitUntilEvent {
75
+ function fire<T extends WaitUntilEvent>(emitter: Emitter<T>, event: Pick<T, Exclude<keyof T, 'waitUntil'>>, timeout?: number | undefined): Promise<void>;
76
+ }
@@ -0,0 +1,262 @@
1
+ "use strict";
2
+ /* tslint:disable */
3
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
4
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
5
+ return new (P || (P = Promise))(function (resolve, reject) {
6
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
7
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
8
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
9
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
10
+ });
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.WaitUntilEvent = exports.Emitter = exports.Event = void 0;
14
+ var Event;
15
+ (function (Event) {
16
+ const _disposable = { dispose() { } };
17
+ Event.None = Object.assign(function () { return _disposable; }, {
18
+ get maxListeners() { return 0; },
19
+ set maxListeners(maxListeners) { }
20
+ });
21
+ /**
22
+ * Given an event and a `map` function, returns another event which maps each element
23
+ * through the mapping function.
24
+ */
25
+ function map(event, mapFunc) {
26
+ return Object.assign((listener, thisArgs, disposables) => event(i => listener.call(thisArgs, mapFunc(i)), undefined, disposables), {
27
+ maxListeners: 0,
28
+ });
29
+ }
30
+ Event.map = map;
31
+ })(Event = exports.Event || (exports.Event = {}));
32
+ class CallbackList {
33
+ get length() {
34
+ return this._callbacks && this._callbacks.length || 0;
35
+ }
36
+ add(callback, context = undefined, bucket) {
37
+ if (!this._callbacks) {
38
+ this._callbacks = [];
39
+ this._contexts = [];
40
+ }
41
+ this._callbacks.push(callback);
42
+ this._contexts.push(context);
43
+ if (Array.isArray(bucket)) {
44
+ bucket.push({ dispose: () => this.remove(callback, context) });
45
+ }
46
+ }
47
+ remove(callback, context = undefined) {
48
+ if (!this._callbacks) {
49
+ return;
50
+ }
51
+ let foundCallbackWithDifferentContext = false;
52
+ for (let i = 0; i < this._callbacks.length; i++) {
53
+ if (this._callbacks[i] === callback) {
54
+ if (this._contexts[i] === context) {
55
+ // callback & context match => remove it
56
+ this._callbacks.splice(i, 1);
57
+ this._contexts.splice(i, 1);
58
+ return;
59
+ }
60
+ else {
61
+ foundCallbackWithDifferentContext = true;
62
+ }
63
+ }
64
+ }
65
+ if (foundCallbackWithDifferentContext) {
66
+ throw new Error('When adding a listener with a context, you should remove it with the same context');
67
+ }
68
+ }
69
+ // tslint:disable-next-line:typedef
70
+ [Symbol.iterator]() {
71
+ if (!this._callbacks) {
72
+ return [][Symbol.iterator]();
73
+ }
74
+ const callbacks = this._callbacks.slice(0);
75
+ const contexts = this._contexts.slice(0);
76
+ return callbacks.map((callback, i) => (...args) => callback.apply(contexts[i], args))[Symbol.iterator]();
77
+ }
78
+ invoke(...args) {
79
+ const ret = [];
80
+ for (const callback of this) {
81
+ try {
82
+ ret.push(callback(...args));
83
+ }
84
+ catch (e) {
85
+ console.error(e);
86
+ }
87
+ }
88
+ return ret;
89
+ }
90
+ isEmpty() {
91
+ return !this._callbacks || this._callbacks.length === 0;
92
+ }
93
+ dispose() {
94
+ this._callbacks = undefined;
95
+ this._contexts = undefined;
96
+ }
97
+ }
98
+ class Emitter {
99
+ constructor(_options) {
100
+ this._options = _options;
101
+ this._disposed = false;
102
+ this._leakWarnCountdown = 0;
103
+ }
104
+ /**
105
+ * For the public to allow to subscribe
106
+ * to events from this Emitter
107
+ */
108
+ get event() {
109
+ if (!this._event) {
110
+ this._event = Object.assign((listener, thisArgs, disposables) => {
111
+ if (!this._callbacks) {
112
+ this._callbacks = new CallbackList();
113
+ }
114
+ if (this._options && this._options.onFirstListenerAdd && this._callbacks.isEmpty()) {
115
+ this._options.onFirstListenerAdd(this);
116
+ }
117
+ this._callbacks.add(listener, thisArgs);
118
+ const removeMaxListenersCheck = this.checkMaxListeners(this._event.maxListeners);
119
+ const result = {
120
+ dispose: () => {
121
+ if (removeMaxListenersCheck) {
122
+ removeMaxListenersCheck();
123
+ }
124
+ result.dispose = Emitter._noop;
125
+ if (!this._disposed) {
126
+ this._callbacks.remove(listener, thisArgs);
127
+ result.dispose = Emitter._noop;
128
+ if (this._options && this._options.onLastListenerRemove && this._callbacks.isEmpty()) {
129
+ this._options.onLastListenerRemove(this);
130
+ }
131
+ }
132
+ }
133
+ };
134
+ if (Array.isArray(disposables)) {
135
+ disposables.push(result);
136
+ }
137
+ return result;
138
+ }, {
139
+ maxListeners: Emitter.LEAK_WARNING_THRESHHOLD
140
+ });
141
+ }
142
+ return this._event;
143
+ }
144
+ checkMaxListeners(maxListeners) {
145
+ if (maxListeners === 0 || !this._callbacks) {
146
+ return undefined;
147
+ }
148
+ const listenerCount = this._callbacks.length;
149
+ if (listenerCount <= maxListeners) {
150
+ return undefined;
151
+ }
152
+ const popStack = this.pushLeakingStack();
153
+ this._leakWarnCountdown -= 1;
154
+ if (this._leakWarnCountdown <= 0) {
155
+ // only warn on first exceed and then every time the limit
156
+ // is exceeded by 50% again
157
+ this._leakWarnCountdown = maxListeners * 0.5;
158
+ let topStack;
159
+ let topCount = 0;
160
+ this._leakingStacks.forEach((stackCount, stack) => {
161
+ if (!topStack || topCount < stackCount) {
162
+ topStack = stack;
163
+ topCount = stackCount;
164
+ }
165
+ });
166
+ // eslint-disable-next-line max-len
167
+ console.warn(`Possible Emitter memory leak detected. ${listenerCount} listeners added. Use event.maxListeners to increase the limit (${maxListeners}). MOST frequent listener (${topCount}):`);
168
+ console.warn(topStack);
169
+ }
170
+ return popStack;
171
+ }
172
+ pushLeakingStack() {
173
+ if (!this._leakingStacks) {
174
+ this._leakingStacks = new Map();
175
+ }
176
+ const stack = new Error().stack.split('\n').slice(3).join('\n');
177
+ const count = (this._leakingStacks.get(stack) || 0);
178
+ this._leakingStacks.set(stack, count + 1);
179
+ return () => this.popLeakingStack(stack);
180
+ }
181
+ popLeakingStack(stack) {
182
+ if (!this._leakingStacks) {
183
+ return;
184
+ }
185
+ const count = (this._leakingStacks.get(stack) || 0);
186
+ this._leakingStacks.set(stack, count - 1);
187
+ }
188
+ /**
189
+ * To be kept private to fire an event to
190
+ * subscribers
191
+ */
192
+ fire(event) {
193
+ if (this._callbacks) {
194
+ this._callbacks.invoke(event);
195
+ }
196
+ }
197
+ /**
198
+ * Process each listener one by one.
199
+ * Return `false` to stop iterating over the listeners, `true` to continue.
200
+ */
201
+ sequence(processor) {
202
+ return __awaiter(this, void 0, void 0, function* () {
203
+ if (this._callbacks) {
204
+ for (const listener of this._callbacks) {
205
+ if (!(yield processor(listener))) {
206
+ break;
207
+ }
208
+ }
209
+ }
210
+ });
211
+ }
212
+ dispose() {
213
+ if (this._leakingStacks) {
214
+ this._leakingStacks.clear();
215
+ this._leakingStacks = undefined;
216
+ }
217
+ if (this._callbacks) {
218
+ this._callbacks.dispose();
219
+ this._callbacks = undefined;
220
+ }
221
+ this._disposed = true;
222
+ }
223
+ }
224
+ exports.Emitter = Emitter;
225
+ Emitter.LEAK_WARNING_THRESHHOLD = 175;
226
+ Emitter._noop = function () { };
227
+ var WaitUntilEvent;
228
+ (function (WaitUntilEvent) {
229
+ function fire(emitter, event, timeout = undefined) {
230
+ return __awaiter(this, void 0, void 0, function* () {
231
+ const waitables = [];
232
+ const asyncEvent = Object.assign(event, {
233
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
234
+ waitUntil: (thenable) => {
235
+ if (Object.isFrozen(waitables)) {
236
+ throw new Error('waitUntil cannot be called asynchronously.');
237
+ }
238
+ waitables.push(thenable);
239
+ }
240
+ });
241
+ try {
242
+ emitter.fire(asyncEvent);
243
+ // Asynchronous calls to `waitUntil` should fail.
244
+ Object.freeze(waitables);
245
+ }
246
+ finally {
247
+ delete asyncEvent['waitUntil'];
248
+ }
249
+ if (!waitables.length) {
250
+ return;
251
+ }
252
+ if (timeout !== undefined) {
253
+ yield Promise.race([Promise.all(waitables), new Promise(resolve => setTimeout(resolve, timeout))]);
254
+ }
255
+ else {
256
+ yield Promise.all(waitables);
257
+ }
258
+ });
259
+ }
260
+ WaitUntilEvent.fire = fire;
261
+ })(WaitUntilEvent = exports.WaitUntilEvent || (exports.WaitUntilEvent = {}));
262
+ //# sourceMappingURL=event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.js","sourceRoot":"","sources":["../../src/core/event.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const chai_1 = require("chai");
4
+ const event_1 = require("./event");
5
+ describe('Event Objects', () => {
6
+ it('Emitter firing should be synchronous', () => {
7
+ const emitter = new event_1.Emitter();
8
+ let counter = 0;
9
+ emitter.event(() => counter++);
10
+ (0, chai_1.expect)(counter).eq(0);
11
+ emitter.fire(undefined);
12
+ (0, chai_1.expect)(counter).eq(1);
13
+ });
14
+ });
15
+ //# sourceMappingURL=event.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.test.js","sourceRoot":"","sources":["../../src/core/event.test.ts"],"names":[],"mappings":";;AAAA,+BAA8B;AAC9B,mCAAkC;AAElC,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAE3B,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC5C,MAAM,OAAO,GAAG,IAAI,eAAO,EAAa,CAAC;QACzC,IAAI,OAAO,GAAG,CAAC,CAAC;QAEhB,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/B,IAAA,aAAM,EAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACtB,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxB,IAAA,aAAM,EAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AAEP,CAAC,CAAC,CAAC"}