bruce-models 2.3.6 → 2.3.8

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 (195) hide show
  1. package/dist/bruce-models.es5.js +8041 -8033
  2. package/dist/bruce-models.es5.js.map +1 -1
  3. package/dist/bruce-models.umd.js +7805 -7797
  4. package/dist/bruce-models.umd.js.map +1 -1
  5. package/dist/lib/account/account-invite.js +81 -81
  6. package/dist/lib/account/account-settings.js +2 -2
  7. package/dist/lib/account/account.js +169 -169
  8. package/dist/lib/account/account.js.map +1 -1
  9. package/dist/lib/ann-document/ann-document.js +94 -94
  10. package/dist/lib/api/abstract-api.js +269 -269
  11. package/dist/lib/api/api-getters.js +172 -172
  12. package/dist/lib/api/api.js +93 -93
  13. package/dist/lib/api/bruce-api.js +224 -220
  14. package/dist/lib/api/bruce-api.js.map +1 -1
  15. package/dist/lib/api/cam-api.js +88 -88
  16. package/dist/lib/api/global-api.js +82 -82
  17. package/dist/lib/api/guardian-api.js +82 -82
  18. package/dist/lib/api/idm-api.js +90 -90
  19. package/dist/lib/bruce-models.js +95 -91
  20. package/dist/lib/bruce-models.js.map +1 -1
  21. package/dist/lib/calculator/calculator.js +341 -341
  22. package/dist/lib/client-file/client-file.js +255 -255
  23. package/dist/lib/client-file/client-file.js.map +1 -1
  24. package/dist/lib/common/bounds.js +61 -61
  25. package/dist/lib/common/bruce-event.js +46 -46
  26. package/dist/lib/common/bruce-variable.js +60 -60
  27. package/dist/lib/common/cache.js +188 -188
  28. package/dist/lib/common/cache.js.map +1 -1
  29. package/dist/lib/common/camera.js +11 -11
  30. package/dist/lib/common/cartes.js +123 -123
  31. package/dist/lib/common/carto.js +60 -60
  32. package/dist/lib/common/color.js +86 -86
  33. package/dist/lib/common/delay-queue.js +56 -56
  34. package/dist/lib/common/dictionary.js +2 -2
  35. package/dist/lib/common/geometry.js +120 -120
  36. package/dist/lib/common/lru-cache.js +25 -25
  37. package/dist/lib/common/transform.js +2 -2
  38. package/dist/lib/common/utc.js +39 -39
  39. package/dist/lib/custom-form/custom-form-content.js +26 -26
  40. package/dist/lib/custom-form/custom-form.js +114 -114
  41. package/dist/lib/data-lab/data-lab.js +49 -49
  42. package/dist/lib/entity/entity-attachment-type.js +87 -87
  43. package/dist/lib/entity/entity-attachment-type.js.map +1 -1
  44. package/dist/lib/entity/entity-attachment.js +126 -126
  45. package/dist/lib/entity/entity-attachment.js.map +1 -1
  46. package/dist/lib/entity/entity-attribute.js +29 -29
  47. package/dist/lib/entity/entity-comment.js +86 -86
  48. package/dist/lib/entity/entity-comment.js.map +1 -1
  49. package/dist/lib/entity/entity-coords.js +153 -153
  50. package/dist/lib/entity/entity-coords.js.map +1 -1
  51. package/dist/lib/entity/entity-link.js +86 -86
  52. package/dist/lib/entity/entity-link.js.map +1 -1
  53. package/dist/lib/entity/entity-lod-category.js +108 -108
  54. package/dist/lib/entity/entity-lod.js +197 -197
  55. package/dist/lib/entity/entity-lod.js.map +1 -1
  56. package/dist/lib/entity/entity-relation-type.js +117 -117
  57. package/dist/lib/entity/entity-relation-type.js.map +1 -1
  58. package/dist/lib/entity/entity-relation.js +157 -157
  59. package/dist/lib/entity/entity-source.js +136 -136
  60. package/dist/lib/entity/entity-source.js.map +1 -1
  61. package/dist/lib/entity/entity-tag.js +157 -157
  62. package/dist/lib/entity/entity-type-visual-settings.js +13 -13
  63. package/dist/lib/entity/entity-type.js +122 -122
  64. package/dist/lib/entity/entity.js +341 -341
  65. package/dist/lib/entity/entity.js.map +1 -1
  66. package/dist/lib/entity/getters/batched-data-getter.js +84 -84
  67. package/dist/lib/entity/getters/batched-data-getter.js.map +1 -1
  68. package/dist/lib/entity/getters/entity-filter-getter.js +316 -316
  69. package/dist/lib/entity/getters/entity-filter-getter.js.map +1 -1
  70. package/dist/lib/entity/getters/entity-globe.js +175 -175
  71. package/dist/lib/entity/getters/view-monitor.js +2 -2
  72. package/dist/lib/import/import-cad.js +53 -53
  73. package/dist/lib/import/import-cad.js.map +1 -1
  74. package/dist/lib/import/import-csv.js +23 -23
  75. package/dist/lib/import/import-json.js +23 -23
  76. package/dist/lib/import/import-kml.js +23 -23
  77. package/dist/lib/import/imported-file.js +130 -130
  78. package/dist/lib/internal/uploader.js +76 -76
  79. package/dist/lib/internal/uploader.js.map +1 -1
  80. package/dist/lib/markup/markup.js +185 -185
  81. package/dist/lib/plugin/plugin.js +91 -91
  82. package/dist/lib/program-key/program-key.js +120 -120
  83. package/dist/lib/program-key/program-key.js.map +1 -1
  84. package/dist/lib/project/menu-item.js +122 -122
  85. package/dist/lib/project/project-view-bookmark.js +159 -159
  86. package/dist/lib/project/project-view-bookmark.js.map +1 -1
  87. package/dist/lib/project/project-view-legacy-tile.js +77 -77
  88. package/dist/lib/project/project-view-legacy-tile.js.map +1 -1
  89. package/dist/lib/project/project-view-tile.js +125 -125
  90. package/dist/lib/project/project-view.js +141 -141
  91. package/dist/lib/project/zoom-control.js +17 -17
  92. package/dist/lib/server/hosting-location.js +156 -156
  93. package/dist/lib/server/hosting-location.js.map +1 -1
  94. package/dist/lib/server/message-broker.js +142 -142
  95. package/dist/lib/server/message-broker.js.map +1 -1
  96. package/dist/lib/server/pending-action.js +83 -83
  97. package/dist/lib/server/task.js +63 -63
  98. package/dist/lib/style/style.js +129 -129
  99. package/dist/lib/style/style.js.map +1 -1
  100. package/dist/lib/tileset/tileset.js +431 -431
  101. package/dist/lib/tileset/tileset.js.map +1 -1
  102. package/dist/lib/user/permission.js +20 -20
  103. package/dist/lib/user/session.js +145 -142
  104. package/dist/lib/user/session.js.map +1 -1
  105. package/dist/lib/user/user-group.js +94 -94
  106. package/dist/lib/user/user.js +475 -474
  107. package/dist/lib/user/user.js.map +1 -1
  108. package/dist/lib/util/encrypt-utils.js +19 -19
  109. package/dist/lib/util/math-utils.js +40 -40
  110. package/dist/lib/util/object-utils.js +17 -17
  111. package/dist/lib/util/path-utils.js +61 -61
  112. package/dist/lib/util/url-utils.js +94 -94
  113. package/dist/lib/util/url-utils.js.map +1 -1
  114. package/dist/types/account/account-invite.d.ts +68 -68
  115. package/dist/types/account/account-settings.d.ts +24 -24
  116. package/dist/types/account/account.d.ts +84 -84
  117. package/dist/types/ann-document/ann-document.d.ts +50 -50
  118. package/dist/types/api/abstract-api.d.ts +36 -36
  119. package/dist/types/api/api-getters.d.ts +64 -64
  120. package/dist/types/api/api.d.ts +93 -93
  121. package/dist/types/api/bruce-api.d.ts +64 -63
  122. package/dist/types/api/cam-api.d.ts +26 -26
  123. package/dist/types/api/global-api.d.ts +25 -25
  124. package/dist/types/api/guardian-api.d.ts +25 -25
  125. package/dist/types/api/idm-api.d.ts +28 -28
  126. package/dist/types/bruce-models.d.ts +79 -79
  127. package/dist/types/calculator/calculator.d.ts +61 -61
  128. package/dist/types/client-file/client-file.d.ts +130 -130
  129. package/dist/types/common/bounds.d.ts +30 -30
  130. package/dist/types/common/bruce-event.d.ts +12 -12
  131. package/dist/types/common/bruce-variable.d.ts +21 -21
  132. package/dist/types/common/cache.d.ts +57 -57
  133. package/dist/types/common/camera.d.ts +6 -6
  134. package/dist/types/common/cartes.d.ts +51 -51
  135. package/dist/types/common/carto.d.ts +15 -15
  136. package/dist/types/common/color.d.ts +24 -24
  137. package/dist/types/common/delay-queue.d.ts +14 -14
  138. package/dist/types/common/dictionary.d.ts +3 -3
  139. package/dist/types/common/geometry.d.ts +44 -44
  140. package/dist/types/common/lru-cache.d.ts +7 -7
  141. package/dist/types/common/transform.d.ts +15 -15
  142. package/dist/types/common/utc.d.ts +29 -29
  143. package/dist/types/custom-form/custom-form-content.d.ts +60 -60
  144. package/dist/types/custom-form/custom-form.d.ts +49 -49
  145. package/dist/types/data-lab/data-lab.d.ts +28 -28
  146. package/dist/types/entity/entity-attachment-type.d.ts +39 -39
  147. package/dist/types/entity/entity-attachment.d.ts +61 -61
  148. package/dist/types/entity/entity-attribute.d.ts +39 -39
  149. package/dist/types/entity/entity-comment.d.ts +40 -40
  150. package/dist/types/entity/entity-coords.d.ts +66 -66
  151. package/dist/types/entity/entity-link.d.ts +36 -36
  152. package/dist/types/entity/entity-lod-category.d.ts +36 -36
  153. package/dist/types/entity/entity-lod.d.ts +99 -99
  154. package/dist/types/entity/entity-relation-type.d.ts +44 -44
  155. package/dist/types/entity/entity-relation.d.ts +59 -59
  156. package/dist/types/entity/entity-source.d.ts +45 -45
  157. package/dist/types/entity/entity-tag.d.ts +53 -53
  158. package/dist/types/entity/entity-type-visual-settings.d.ts +16 -16
  159. package/dist/types/entity/entity-type.d.ts +63 -63
  160. package/dist/types/entity/entity.d.ts +118 -118
  161. package/dist/types/entity/getters/batched-data-getter.d.ts +26 -26
  162. package/dist/types/entity/getters/entity-filter-getter.d.ts +61 -61
  163. package/dist/types/entity/getters/entity-globe.d.ts +21 -21
  164. package/dist/types/entity/getters/view-monitor.d.ts +13 -13
  165. package/dist/types/import/import-cad.d.ts +49 -49
  166. package/dist/types/import/import-csv.d.ts +31 -31
  167. package/dist/types/import/import-json.d.ts +26 -26
  168. package/dist/types/import/import-kml.d.ts +19 -19
  169. package/dist/types/import/imported-file.d.ts +47 -47
  170. package/dist/types/internal/uploader.d.ts +16 -16
  171. package/dist/types/markup/markup.d.ts +227 -227
  172. package/dist/types/plugin/plugin.d.ts +39 -39
  173. package/dist/types/program-key/program-key.d.ts +48 -48
  174. package/dist/types/project/menu-item.d.ts +169 -169
  175. package/dist/types/project/project-view-bookmark.d.ts +179 -179
  176. package/dist/types/project/project-view-legacy-tile.d.ts +48 -48
  177. package/dist/types/project/project-view-tile.d.ts +65 -65
  178. package/dist/types/project/project-view.d.ts +136 -136
  179. package/dist/types/project/zoom-control.d.ts +22 -22
  180. package/dist/types/server/hosting-location.d.ts +74 -74
  181. package/dist/types/server/message-broker.d.ts +86 -86
  182. package/dist/types/server/pending-action.d.ts +66 -66
  183. package/dist/types/server/task.d.ts +36 -36
  184. package/dist/types/style/style.d.ts +107 -107
  185. package/dist/types/tileset/tileset.d.ts +264 -264
  186. package/dist/types/user/permission.d.ts +15 -15
  187. package/dist/types/user/session.d.ts +72 -66
  188. package/dist/types/user/user-group.d.ts +58 -58
  189. package/dist/types/user/user.d.ts +189 -188
  190. package/dist/types/util/encrypt-utils.d.ts +3 -3
  191. package/dist/types/util/math-utils.d.ts +16 -16
  192. package/dist/types/util/object-utils.d.ts +7 -7
  193. package/dist/types/util/path-utils.d.ts +8 -8
  194. package/dist/types/util/url-utils.d.ts +26 -26
  195. package/package.json +79 -78
@@ -1,157 +1,157 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.HostingLocation = void 0;
13
- const account_1 = require("../account/account");
14
- const api_1 = require("../api/api");
15
- /**
16
- * A hosting location is a record for a possible bruce-api server configuration.
17
- * A hosting location will have one or many database servers as well, this is an additional setting.
18
- */
19
- var HostingLocation;
20
- (function (HostingLocation) {
21
- /**
22
- * @Warning: This will not return the Settings property.
23
- * @param params
24
- * @returns
25
- */
26
- function GetList(params) {
27
- return __awaiter(this, void 0, void 0, function* () {
28
- const res = yield params.api.GET("hostinglocations", api_1.Api.PrepReqParams(params.req));
29
- return {
30
- locations: res.Items
31
- };
32
- });
33
- }
34
- HostingLocation.GetList = GetList;
35
- function GetById(params) {
36
- return __awaiter(this, void 0, void 0, function* () {
37
- const { id, api, req } = params;
38
- if (!id) {
39
- throw ("Invalid id");
40
- }
41
- const res = yield api.GET(`hostinglocation/id/${id}`, api_1.Api.PrepReqParams(req));
42
- return {
43
- location: res
44
- };
45
- });
46
- }
47
- HostingLocation.GetById = GetById;
48
- function GetByKey(params) {
49
- return __awaiter(this, void 0, void 0, function* () {
50
- const { key, api, req } = params;
51
- if (!key) {
52
- throw ("Invalid key");
53
- }
54
- const res = yield api.GET(`hostinglocation/key/${key}`, api_1.Api.PrepReqParams(req));
55
- return {
56
- location: res
57
- };
58
- });
59
- }
60
- HostingLocation.GetByKey = GetByKey;
61
- /**
62
- * Returns hostingLocationKey from given db url.
63
- * Some older accounts don't have this set, so we need to guess it.
64
- * @param params
65
- * @returns
66
- */
67
- function GuessKey(params) {
68
- const { DBServer: databaseUrl } = params;
69
- if (databaseUrl.includes("hyperfarm-prod-instance-1")) {
70
- return "HYPERFARM";
71
- }
72
- if (databaseUrl.includes("prod-syd1.nextspace.host")) {
73
- return "AU-VULTR-FIRST";
74
- }
75
- else if (databaseUrl.includes("prod-nyc1.nextspace.host")) {
76
- return "US-VULTR-FIRST";
77
- }
78
- else if (databaseUrl.includes("prod-ams1.nextspace.host")) {
79
- return "EU-VULTR-FIRST";
80
- }
81
- else if (databaseUrl.includes("prod-sing1.nextspace.host")) {
82
- return "SE-VULTR-FIRST";
83
- }
84
- else if (databaseUrl.includes("dev-first")) {
85
- return "DEV-FIRST";
86
- }
87
- else if (databaseUrl.includes(".ap-southeast-1.")) {
88
- return "SE";
89
- }
90
- else if (databaseUrl.includes(".us-west-1.")) {
91
- return "US";
92
- }
93
- else if (databaseUrl.includes(".eu-west-3.")) {
94
- return "EU";
95
- }
96
- else if (databaseUrl.includes("bruce-prod-au")) {
97
- return "AU";
98
- }
99
- else if (databaseUrl.includes("bruce-dev")) {
100
- return "DEV";
101
- }
102
- return null;
103
- }
104
- HostingLocation.GuessKey = GuessKey;
105
- function GetKeyByAccountId(params) {
106
- return __awaiter(this, void 0, void 0, function* () {
107
- const { accountId, apiSettings, api, req } = params;
108
- if (!accountId && !apiSettings) {
109
- throw ("Invalid accountId or apiSettings");
110
- }
111
- const settings = apiSettings ? apiSettings : (yield account_1.Account.GetAppSettings({
112
- api,
113
- accountId,
114
- appId: account_1.Account.EAppId.BruceApi
115
- })).settings;
116
- let hostingKey = settings["HostingLocation.Key"];
117
- let isLegacy = false;
118
- if (!hostingKey) {
119
- hostingKey = settings.DBLocation;
120
- isLegacy = true;
121
- }
122
- if (!hostingKey) {
123
- hostingKey = GuessKey({
124
- DBServer: settings.DBServer
125
- });
126
- isLegacy = true;
127
- }
128
- return {
129
- key: hostingKey,
130
- isLegacy
131
- };
132
- });
133
- }
134
- HostingLocation.GetKeyByAccountId = GetKeyByAccountId;
135
- function GetByAccountId(params) {
136
- return __awaiter(this, void 0, void 0, function* () {
137
- const { accountId, apiSettings, api, req } = params;
138
- const data = yield GetKeyByAccountId({
139
- accountId,
140
- apiSettings,
141
- api,
142
- req
143
- });
144
- if (!(data === null || data === void 0 ? void 0 : data.key)) {
145
- return null;
146
- }
147
- const key = yield GetByKey({
148
- key: data.key,
149
- api,
150
- req
151
- });
152
- return key;
153
- });
154
- }
155
- HostingLocation.GetByAccountId = GetByAccountId;
156
- })(HostingLocation = exports.HostingLocation || (exports.HostingLocation = {}));
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.HostingLocation = void 0;
13
+ const account_1 = require("../account/account");
14
+ const api_1 = require("../api/api");
15
+ /**
16
+ * A hosting location is a record for a possible bruce-api server configuration.
17
+ * A hosting location will have one or many database servers as well, this is an additional setting.
18
+ */
19
+ var HostingLocation;
20
+ (function (HostingLocation) {
21
+ /**
22
+ * @Warning: This will not return the Settings property.
23
+ * @param params
24
+ * @returns
25
+ */
26
+ function GetList(params) {
27
+ return __awaiter(this, void 0, void 0, function* () {
28
+ const res = yield params.api.GET("hostinglocations", api_1.Api.PrepReqParams(params.req));
29
+ return {
30
+ locations: res.Items
31
+ };
32
+ });
33
+ }
34
+ HostingLocation.GetList = GetList;
35
+ function GetById(params) {
36
+ return __awaiter(this, void 0, void 0, function* () {
37
+ const { id, api, req } = params;
38
+ if (!id) {
39
+ throw ("Invalid id");
40
+ }
41
+ const res = yield api.GET(`hostinglocation/id/${id}`, api_1.Api.PrepReqParams(req));
42
+ return {
43
+ location: res
44
+ };
45
+ });
46
+ }
47
+ HostingLocation.GetById = GetById;
48
+ function GetByKey(params) {
49
+ return __awaiter(this, void 0, void 0, function* () {
50
+ const { key, api, req } = params;
51
+ if (!key) {
52
+ throw ("Invalid key");
53
+ }
54
+ const res = yield api.GET(`hostinglocation/key/${key}`, api_1.Api.PrepReqParams(req));
55
+ return {
56
+ location: res
57
+ };
58
+ });
59
+ }
60
+ HostingLocation.GetByKey = GetByKey;
61
+ /**
62
+ * Returns hostingLocationKey from given db url.
63
+ * Some older accounts don't have this set, so we need to guess it.
64
+ * @param params
65
+ * @returns
66
+ */
67
+ function GuessKey(params) {
68
+ const { DBServer: databaseUrl } = params;
69
+ if (databaseUrl.includes("hyperfarm-prod-instance-1")) {
70
+ return "HYPERFARM";
71
+ }
72
+ if (databaseUrl.includes("prod-syd1.nextspace.host")) {
73
+ return "AU-VULTR-FIRST";
74
+ }
75
+ else if (databaseUrl.includes("prod-nyc1.nextspace.host")) {
76
+ return "US-VULTR-FIRST";
77
+ }
78
+ else if (databaseUrl.includes("prod-ams1.nextspace.host")) {
79
+ return "EU-VULTR-FIRST";
80
+ }
81
+ else if (databaseUrl.includes("prod-sing1.nextspace.host")) {
82
+ return "SE-VULTR-FIRST";
83
+ }
84
+ else if (databaseUrl.includes("dev-first")) {
85
+ return "DEV-FIRST";
86
+ }
87
+ else if (databaseUrl.includes(".ap-southeast-1.")) {
88
+ return "SE";
89
+ }
90
+ else if (databaseUrl.includes(".us-west-1.")) {
91
+ return "US";
92
+ }
93
+ else if (databaseUrl.includes(".eu-west-3.")) {
94
+ return "EU";
95
+ }
96
+ else if (databaseUrl.includes("bruce-prod-au")) {
97
+ return "AU";
98
+ }
99
+ else if (databaseUrl.includes("bruce-dev")) {
100
+ return "DEV";
101
+ }
102
+ return null;
103
+ }
104
+ HostingLocation.GuessKey = GuessKey;
105
+ function GetKeyByAccountId(params) {
106
+ return __awaiter(this, void 0, void 0, function* () {
107
+ const { accountId, apiSettings, api, req } = params;
108
+ if (!accountId && !apiSettings) {
109
+ throw ("Invalid accountId or apiSettings");
110
+ }
111
+ const settings = apiSettings ? apiSettings : (yield account_1.Account.GetAppSettings({
112
+ api,
113
+ accountId,
114
+ appId: account_1.Account.EAppId.BruceApi
115
+ })).settings;
116
+ let hostingKey = settings["HostingLocation.Key"];
117
+ let isLegacy = false;
118
+ if (!hostingKey) {
119
+ hostingKey = settings.DBLocation;
120
+ isLegacy = true;
121
+ }
122
+ if (!hostingKey) {
123
+ hostingKey = GuessKey({
124
+ DBServer: settings.DBServer
125
+ });
126
+ isLegacy = true;
127
+ }
128
+ return {
129
+ key: hostingKey,
130
+ isLegacy
131
+ };
132
+ });
133
+ }
134
+ HostingLocation.GetKeyByAccountId = GetKeyByAccountId;
135
+ function GetByAccountId(params) {
136
+ return __awaiter(this, void 0, void 0, function* () {
137
+ const { accountId, apiSettings, api, req } = params;
138
+ const data = yield GetKeyByAccountId({
139
+ accountId,
140
+ apiSettings,
141
+ api,
142
+ req
143
+ });
144
+ if (!(data === null || data === void 0 ? void 0 : data.key)) {
145
+ return null;
146
+ }
147
+ const key = yield GetByKey({
148
+ key: data.key,
149
+ api,
150
+ req
151
+ });
152
+ return key;
153
+ });
154
+ }
155
+ HostingLocation.GetByAccountId = GetByAccountId;
156
+ })(HostingLocation = exports.HostingLocation || (exports.HostingLocation = {}));
157
157
  //# sourceMappingURL=hosting-location.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hosting-location.js","sourceRoot":"","sources":["../../../src/server/hosting-location.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gDAA6C;AAE7C,oCAAiC;AAGjC;;;GAGG;AACH,IAAiB,eAAe,CA+L/B;AA/LD,WAAiB,eAAe;IA6B5B;;;;OAIG;IACH,SAAsB,OAAO,CAAC,MAG7B;;YAGG,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,kBAAkB,EAAE,SAAG,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YACpF,OAAO;gBACH,SAAS,EAAE,GAAG,CAAC,KAAK;aACvB,CAAC;QACN,CAAC;KAAA;IAVqB,uBAAO,UAU5B,CAAA;IAED,SAAsB,OAAO,CAAC,MAI7B;;YAGG,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;YAChC,IAAI,CAAC,EAAE,EAAE;gBACL,MAAK,CAAC,YAAY,CAAC,CAAC;aACvB;YACD,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,sBAAsB,EAAE,EAAE,EAAE,SAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;YAC9E,OAAO;gBACH,QAAQ,EAAE,GAAG;aAChB,CAAC;QACN,CAAC;KAAA;IAfqB,uBAAO,UAe5B,CAAA;IAED,SAAsB,QAAQ,CAAC,MAI9B;;YAGG,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;YACjC,IAAI,CAAC,GAAG,EAAE;gBACN,MAAK,CAAC,aAAa,CAAC,CAAC;aACxB;YACD,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,uBAAuB,GAAG,EAAE,EAAE,SAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;YAChF,OAAO;gBACH,QAAQ,EAAE,GAAG;aAChB,CAAC;QACN,CAAC;KAAA;IAfqB,wBAAQ,WAe7B,CAAA;IAED;;;;;OAKG;IACH,SAAgB,QAAQ,CAAC,MAGxB;QACG,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;QACzC,IAAI,WAAW,CAAC,QAAQ,CAAC,2BAA2B,CAAC,EAAE;YACnD,OAAO,WAAW,CAAC;SACtB;QACD,IAAI,WAAW,CAAC,QAAQ,CAAC,0BAA0B,CAAC,EAAE;YAClD,OAAO,gBAAgB,CAAC;SAC3B;aACI,IAAI,WAAW,CAAC,QAAQ,CAAC,0BAA0B,CAAC,EAAE;YACvD,OAAO,gBAAgB,CAAC;SAC3B;aACI,IAAI,WAAW,CAAC,QAAQ,CAAC,0BAA0B,CAAC,EAAE;YACvD,OAAO,gBAAgB,CAAC;SAC3B;aACI,IAAI,WAAW,CAAC,QAAQ,CAAC,2BAA2B,CAAC,EAAE;YACxD,OAAO,gBAAgB,CAAC;SAC3B;aACI,IAAI,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;YACxC,OAAO,WAAW,CAAC;SACtB;aACI,IAAI,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE;YAC/C,OAAO,IAAI,CAAC;SACf;aACI,IAAI,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE;YAC1C,OAAO,IAAI,CAAC;SACf;aACI,IAAI,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE;YAC1C,OAAO,IAAI,CAAC;SACf;aACI,IAAI,WAAW,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE;YAC5C,OAAO,IAAI,CAAC;SACf;aACI,IAAI,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;YACxC,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAvCe,wBAAQ,WAuCvB,CAAA;IAED,SAAsB,iBAAiB,CAAC,MAMvC;;YAKG,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;YACpD,IAAI,CAAC,SAAS,IAAI,CAAC,WAAW,EAAE;gBAC5B,MAAK,CAAC,kCAAkC,CAAC,CAAC;aAC7C;YACD,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,iBAAO,CAAC,cAAc,CAAC;gBACvE,GAAG;gBACH,SAAS;gBACT,KAAK,EAAE,iBAAO,CAAC,MAAM,CAAC,QAAQ;aACjC,CAAC,CAAC,CAAC,QAAqC,CAAC;YAC1C,IAAI,UAAU,GAAG,QAAQ,CAAC,qBAAqB,CAAC,CAAC;YACjD,IAAI,QAAQ,GAAG,KAAK,CAAC;YACrB,IAAI,CAAC,UAAU,EAAE;gBACb,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;gBACjC,QAAQ,GAAG,IAAI,CAAC;aACnB;YACD,IAAI,CAAC,UAAU,EAAE;gBACb,UAAU,GAAG,QAAQ,CAAC;oBAClB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;iBAC9B,CAAC,CAAC;gBACH,QAAQ,GAAG,IAAI,CAAC;aACnB;YACD,OAAO;gBACH,GAAG,EAAE,UAAU;gBACf,QAAQ;aACX,CAAC;QACN,CAAC;KAAA;IApCqB,iCAAiB,oBAoCtC,CAAA;IAED,SAAsB,cAAc,CAAC,MAMpC;;YAGG,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;YACpD,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC;gBACjC,SAAS;gBACT,WAAW;gBACX,GAAG;gBACH,GAAG;aACN,CAAC,CAAC;YACH,IAAI,EAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,GAAG,CAAA,EAAE;gBACZ,OAAO,IAAI,CAAC;aACf;YACD,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC;gBACvB,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,GAAG;gBACH,GAAG;aACN,CAAC,CAAC;YACH,OAAO,GAAG,CAAC;QACf,CAAC;KAAA;IAzBqB,8BAAc,iBAyBnC,CAAA;AACL,CAAC,EA/LgB,eAAe,GAAf,uBAAe,KAAf,uBAAe,QA+L/B"}
1
+ {"version":3,"file":"hosting-location.js","sourceRoot":"","sources":["../../../src/server/hosting-location.ts"],"names":[],"mappings":"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"}
@@ -1,143 +1,143 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MessageBroker = void 0;
4
- const api_1 = require("../api/api");
5
- var MessageBroker;
6
- (function (MessageBroker) {
7
- let EAction;
8
- (function (EAction) {
9
- // Subscribes a client to topic messages on a server side.
10
- EAction["SUBSCRIBE"] = "subscribe";
11
- // Subscribes a client to a topic without notifying other clients.
12
- EAction["SUBSCRIBE_SHADOW"] = "subscribeShadow";
13
- // Unsubscribes clients from topic messages on a server side
14
- EAction["UNSUBSCRIBE"] = "unsubscribe";
15
- // Sends a message to all topic subscribers.
16
- EAction["BROADCAST"] = "broadcast";
17
- // Requests topic subscribers without subscribing.
18
- EAction["GET_TOPIC_SUBSCRIBERS"] = "getTopicSubscribers";
19
- })(EAction = MessageBroker.EAction || (MessageBroker.EAction = {}));
20
- /**
21
- * Communicates with a server message broker.
22
- */
23
- class WebSocketBroker {
24
- constructor(uri, env) {
25
- this.subscriptions = new Map();
26
- this.reconnects = 0;
27
- this.maxReconnects = 5;
28
- this.uri = uri;
29
- this.env = env ? env : api_1.Api.EEnv.PROD;
30
- this.connect();
31
- }
32
- get IsConnected() {
33
- return this.ws.readyState === WebSocket.OPEN;
34
- }
35
- SetUserId(userId) {
36
- this.userId = this.userId ? this.userId : userId;
37
- }
38
- connect() {
39
- try {
40
- if (!WebSocket) {
41
- throw new Error("WebSocket is not supported by this browser");
42
- }
43
- this.ws = new WebSocket(this.formatApiUri(this.uri));
44
- this.ws.onopen = this.onOpen.bind(this);
45
- this.ws.onmessage = this.onMessage.bind(this);
46
- this.ws.onerror = this.onError.bind(this);
47
- this.ws.onclose = this.onClose.bind(this);
48
- }
49
- catch (e) {
50
- console.error(e);
51
- }
52
- }
53
- formatApiUri(uri) {
54
- const ws = document.location.protocol === "https:" ? "wss" : "ws";
55
- return uri.replace(/^(https|http)/, ws) + "websocket";
56
- }
57
- onOpen(ev) {
58
- if (this.env === api_1.Api.EEnv.DEV) {
59
- console.log("MessageBroker connection opened: ", ev);
60
- }
61
- }
62
- onClose(ev) {
63
- if (this.env === api_1.Api.EEnv.DEV) {
64
- console.log("MessageBroker connection closed, trying to reconnect: ", ev);
65
- }
66
- if (this.reconnects < this.maxReconnects) {
67
- this.reconnects += 1;
68
- setTimeout(() => this.connect(), 5000 * this.reconnects);
69
- }
70
- }
71
- onMessage(ev) {
72
- var _a;
73
- const data = JSON.parse(ev.data);
74
- (_a = this.subscriptions.get(data.topic)) === null || _a === void 0 ? void 0 : _a.forEach(cb => cb(data));
75
- }
76
- onError(ev) {
77
- console.error("MessageBroker connection error: ", ev);
78
- }
79
- addSubscriber(topic, callback) {
80
- const subscribers = this.subscriptions.get(topic) || [];
81
- if (subscribers.includes(callback)) {
82
- return;
83
- }
84
- subscribers.push(callback);
85
- this.subscriptions.set(topic, subscribers);
86
- }
87
- /**
88
- * Send message to server.
89
- * @param base
90
- * @returns
91
- */
92
- SendMessage(base) {
93
- if (this.ws.readyState !== WebSocket.OPEN) {
94
- return;
95
- }
96
- try {
97
- const msg = base;
98
- if (!msg.event) {
99
- msg.event = EAction.BROADCAST;
100
- }
101
- let message = base.data ? base.data : {};
102
- if (typeof message == "object") {
103
- message = JSON.stringify(message);
104
- }
105
- msg.data = message;
106
- const outgoingMessage = Object.assign(Object.assign({}, msg), { user: this.userId, time: Date.now() });
107
- this.ws.send(JSON.stringify(outgoingMessage));
108
- }
109
- catch (e) {
110
- console.warn(e);
111
- }
112
- }
113
- /**
114
- * Add a subscriber to a topic.
115
- * @param topic
116
- * @param callback
117
- * @param action
118
- */
119
- Subscribe(topic, callback, action) {
120
- if (!action) {
121
- action = EAction.SUBSCRIBE;
122
- }
123
- this.addSubscriber(topic, callback);
124
- this.SendMessage({ topic, action });
125
- }
126
- /**
127
- * Remove a subscriber from a topic.
128
- * @param topic
129
- * @param callback
130
- */
131
- Unsubscribe(topic, callback) {
132
- const subscribers = this.subscriptions.get(topic) || [];
133
- this.subscriptions.set(topic, subscribers.filter(fn => fn != callback));
134
- this.SendMessage({ topic, action: EAction.UNSUBSCRIBE });
135
- }
136
- RequestTopicUsers(topic, callback) {
137
- this.addSubscriber(topic, callback);
138
- this.SendMessage({ topic, event: EAction.GET_TOPIC_SUBSCRIBERS });
139
- }
140
- }
141
- MessageBroker.WebSocketBroker = WebSocketBroker;
142
- })(MessageBroker = exports.MessageBroker || (exports.MessageBroker = {}));
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MessageBroker = void 0;
4
+ const api_1 = require("../api/api");
5
+ var MessageBroker;
6
+ (function (MessageBroker) {
7
+ let EAction;
8
+ (function (EAction) {
9
+ // Subscribes a client to topic messages on a server side.
10
+ EAction["SUBSCRIBE"] = "subscribe";
11
+ // Subscribes a client to a topic without notifying other clients.
12
+ EAction["SUBSCRIBE_SHADOW"] = "subscribeShadow";
13
+ // Unsubscribes clients from topic messages on a server side
14
+ EAction["UNSUBSCRIBE"] = "unsubscribe";
15
+ // Sends a message to all topic subscribers.
16
+ EAction["BROADCAST"] = "broadcast";
17
+ // Requests topic subscribers without subscribing.
18
+ EAction["GET_TOPIC_SUBSCRIBERS"] = "getTopicSubscribers";
19
+ })(EAction = MessageBroker.EAction || (MessageBroker.EAction = {}));
20
+ /**
21
+ * Communicates with a server message broker.
22
+ */
23
+ class WebSocketBroker {
24
+ constructor(uri, env) {
25
+ this.subscriptions = new Map();
26
+ this.reconnects = 0;
27
+ this.maxReconnects = 5;
28
+ this.uri = uri;
29
+ this.env = env ? env : api_1.Api.EEnv.PROD;
30
+ this.connect();
31
+ }
32
+ get IsConnected() {
33
+ return this.ws.readyState === WebSocket.OPEN;
34
+ }
35
+ SetUserId(userId) {
36
+ this.userId = this.userId ? this.userId : userId;
37
+ }
38
+ connect() {
39
+ try {
40
+ if (!WebSocket) {
41
+ throw new Error("WebSocket is not supported by this browser");
42
+ }
43
+ this.ws = new WebSocket(this.formatApiUri(this.uri));
44
+ this.ws.onopen = this.onOpen.bind(this);
45
+ this.ws.onmessage = this.onMessage.bind(this);
46
+ this.ws.onerror = this.onError.bind(this);
47
+ this.ws.onclose = this.onClose.bind(this);
48
+ }
49
+ catch (e) {
50
+ console.error(e);
51
+ }
52
+ }
53
+ formatApiUri(uri) {
54
+ const ws = document.location.protocol === "https:" ? "wss" : "ws";
55
+ return uri.replace(/^(https|http)/, ws) + "websocket";
56
+ }
57
+ onOpen(ev) {
58
+ if (this.env === api_1.Api.EEnv.DEV) {
59
+ console.log("MessageBroker connection opened: ", ev);
60
+ }
61
+ }
62
+ onClose(ev) {
63
+ if (this.env === api_1.Api.EEnv.DEV) {
64
+ console.log("MessageBroker connection closed, trying to reconnect: ", ev);
65
+ }
66
+ if (this.reconnects < this.maxReconnects) {
67
+ this.reconnects += 1;
68
+ setTimeout(() => this.connect(), 5000 * this.reconnects);
69
+ }
70
+ }
71
+ onMessage(ev) {
72
+ var _a;
73
+ const data = JSON.parse(ev.data);
74
+ (_a = this.subscriptions.get(data.topic)) === null || _a === void 0 ? void 0 : _a.forEach(cb => cb(data));
75
+ }
76
+ onError(ev) {
77
+ console.error("MessageBroker connection error: ", ev);
78
+ }
79
+ addSubscriber(topic, callback) {
80
+ const subscribers = this.subscriptions.get(topic) || [];
81
+ if (subscribers.includes(callback)) {
82
+ return;
83
+ }
84
+ subscribers.push(callback);
85
+ this.subscriptions.set(topic, subscribers);
86
+ }
87
+ /**
88
+ * Send message to server.
89
+ * @param base
90
+ * @returns
91
+ */
92
+ SendMessage(base) {
93
+ if (this.ws.readyState !== WebSocket.OPEN) {
94
+ return;
95
+ }
96
+ try {
97
+ const msg = base;
98
+ if (!msg.event) {
99
+ msg.event = EAction.BROADCAST;
100
+ }
101
+ let message = base.data ? base.data : {};
102
+ if (typeof message == "object") {
103
+ message = JSON.stringify(message);
104
+ }
105
+ msg.data = message;
106
+ const outgoingMessage = Object.assign(Object.assign({}, msg), { user: this.userId, time: Date.now() });
107
+ this.ws.send(JSON.stringify(outgoingMessage));
108
+ }
109
+ catch (e) {
110
+ console.warn(e);
111
+ }
112
+ }
113
+ /**
114
+ * Add a subscriber to a topic.
115
+ * @param topic
116
+ * @param callback
117
+ * @param action
118
+ */
119
+ Subscribe(topic, callback, action) {
120
+ if (!action) {
121
+ action = EAction.SUBSCRIBE;
122
+ }
123
+ this.addSubscriber(topic, callback);
124
+ this.SendMessage({ topic, action });
125
+ }
126
+ /**
127
+ * Remove a subscriber from a topic.
128
+ * @param topic
129
+ * @param callback
130
+ */
131
+ Unsubscribe(topic, callback) {
132
+ const subscribers = this.subscriptions.get(topic) || [];
133
+ this.subscriptions.set(topic, subscribers.filter(fn => fn != callback));
134
+ this.SendMessage({ topic, action: EAction.UNSUBSCRIBE });
135
+ }
136
+ RequestTopicUsers(topic, callback) {
137
+ this.addSubscriber(topic, callback);
138
+ this.SendMessage({ topic, event: EAction.GET_TOPIC_SUBSCRIBERS });
139
+ }
140
+ }
141
+ MessageBroker.WebSocketBroker = WebSocketBroker;
142
+ })(MessageBroker = exports.MessageBroker || (exports.MessageBroker = {}));
143
143
  //# sourceMappingURL=message-broker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"message-broker.js","sourceRoot":"","sources":["../../../src/server/message-broker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"message-broker.js","sourceRoot":"","sources":["../../../src/server/message-broker.ts"],"names":[],"mappings":"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"}