bruce-models 0.6.9 → 0.7.1

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 (82) hide show
  1. package/dist/bruce-models.es5.js +208 -208
  2. package/dist/bruce-models.es5.js.map +1 -1
  3. package/dist/bruce-models.umd.js +201 -201
  4. package/dist/bruce-models.umd.js.map +1 -1
  5. package/dist/lib/account/account.js +244 -244
  6. package/dist/lib/ann-document/ann-document.js +116 -116
  7. package/dist/lib/api/abstract-api.js +267 -267
  8. package/dist/lib/api/api.js +85 -85
  9. package/dist/lib/api/bruce-api.js +202 -202
  10. package/dist/lib/api/bruce-api.js.map +1 -1
  11. package/dist/lib/api/cam-api.js +132 -132
  12. package/dist/lib/api/global-api.js +131 -131
  13. package/dist/lib/api/idm-api.js +132 -132
  14. package/dist/lib/bruce-models.js +83 -83
  15. package/dist/lib/calculator/calculator.js +158 -158
  16. package/dist/lib/client-file/client-file.js +188 -188
  17. package/dist/lib/client-file/client-file.js.map +1 -1
  18. package/dist/lib/common/bounds.js +2 -2
  19. package/dist/lib/common/bruce-event.js +48 -48
  20. package/dist/lib/common/bruce-variable.js +54 -54
  21. package/dist/lib/common/cache.js +86 -86
  22. package/dist/lib/common/camera.js +11 -11
  23. package/dist/lib/common/cartes.js +55 -55
  24. package/dist/lib/common/carto.js +60 -60
  25. package/dist/lib/common/color.js +86 -86
  26. package/dist/lib/common/delay-queue.js +60 -60
  27. package/dist/lib/common/dictionary.js +2 -2
  28. package/dist/lib/common/geometry.js +120 -120
  29. package/dist/lib/common/transform.js +2 -2
  30. package/dist/lib/common/utc.js +39 -39
  31. package/dist/lib/custom-form/custom-form.js +136 -136
  32. package/dist/lib/data-lab/data-lab.js +90 -90
  33. package/dist/lib/entity/entity-attachment-type.js +132 -132
  34. package/dist/lib/entity/entity-attachment.js +208 -208
  35. package/dist/lib/entity/entity-comment.js +132 -132
  36. package/dist/lib/entity/entity-link.js +132 -132
  37. package/dist/lib/entity/entity-lod.js +189 -189
  38. package/dist/lib/entity/entity-relation-type.js +150 -150
  39. package/dist/lib/entity/entity-relation.js +189 -189
  40. package/dist/lib/entity/entity-source.js +176 -176
  41. package/dist/lib/entity/entity-tag.js +229 -229
  42. package/dist/lib/entity/entity-type.js +163 -163
  43. package/dist/lib/entity/entity.js +349 -349
  44. package/dist/lib/entity/getters/batched-data-getter.js +91 -91
  45. package/dist/lib/entity/getters/entity-filter-getter.js +344 -344
  46. package/dist/lib/entity/getters/entity-globe.js +135 -135
  47. package/dist/lib/entity/getters/view-monitor.js +2 -2
  48. package/dist/lib/import/import-cad.js +82 -82
  49. package/dist/lib/import/import-csv.js +51 -51
  50. package/dist/lib/import/import-json.js +51 -51
  51. package/dist/lib/import/import-kml.js +51 -51
  52. package/dist/lib/import/imported-file.js +121 -121
  53. package/dist/lib/markup/markup.js +40 -40
  54. package/dist/lib/program-key/program-key.js +152 -152
  55. package/dist/lib/project/menu-item.js +115 -115
  56. package/dist/lib/project/project-view-bookmark.js +172 -172
  57. package/dist/lib/project/project-view-tile-source.js +115 -115
  58. package/dist/lib/project/project-view.js +166 -166
  59. package/dist/lib/project/zoom-control.js +17 -17
  60. package/dist/lib/server/pending-action.js +106 -106
  61. package/dist/lib/server/task.js +113 -113
  62. package/dist/lib/style/style.js +152 -152
  63. package/dist/lib/tileset/tileset-cad.js +2 -2
  64. package/dist/lib/tileset/tileset-entities-map-tiles.js +18 -18
  65. package/dist/lib/tileset/tileset-entities.js +2 -2
  66. package/dist/lib/tileset/tileset-ext-map-tiles.js +17 -17
  67. package/dist/lib/tileset/tileset-ext-terrain-tiles.js +2 -2
  68. package/dist/lib/tileset/tileset-map-tiles.js +2 -2
  69. package/dist/lib/tileset/tileset-pointcloud.js +2 -2
  70. package/dist/lib/tileset/tileset-terrain-tiles.js +2 -2
  71. package/dist/lib/tileset/tileset.js +403 -403
  72. package/dist/lib/ucs/ucs.js +135 -135
  73. package/dist/lib/user/permission.js +20 -20
  74. package/dist/lib/user/session.js +160 -160
  75. package/dist/lib/user/user-group.js +139 -139
  76. package/dist/lib/user/user.js +451 -451
  77. package/dist/lib/util/encrypt-utils.js +20 -20
  78. package/dist/lib/util/math-utils.js +41 -41
  79. package/dist/lib/util/object-utils.js +17 -17
  80. package/dist/lib/util/path-utils.js +61 -61
  81. package/dist/lib/util/url-utils.js +107 -107
  82. package/package.json +1 -1
@@ -1,21 +1,21 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EncryptUtils = void 0;
4
- var EncryptUtils;
5
- (function (EncryptUtils) {
6
- // https://stackoverflow.com/questions/7616461/generate-a-hash-from-string-in-javascript
7
- function Cyrb53Hash(str, seed) {
8
- if (seed === void 0) { seed = 0; }
9
- var h1 = 0xdeadbeef ^ seed, h2 = 0x41c6ce57 ^ seed;
10
- for (var i = 0, ch = void 0; i < str.length; i++) {
11
- ch = str.charCodeAt(i);
12
- h1 = Math.imul(h1 ^ ch, 2654435761);
13
- h2 = Math.imul(h2 ^ ch, 1597334677);
14
- }
15
- h1 = Math.imul(h1 ^ (h1 >>> 16), 2246822507) ^ Math.imul(h2 ^ (h2 >>> 13), 3266489909);
16
- h2 = Math.imul(h2 ^ (h2 >>> 16), 2246822507) ^ Math.imul(h1 ^ (h1 >>> 13), 3266489909);
17
- return (4294967296 * (2097151 & h2) + (h1 >>> 0));
18
- }
19
- EncryptUtils.Cyrb53Hash = Cyrb53Hash;
20
- })(EncryptUtils = exports.EncryptUtils || (exports.EncryptUtils = {}));
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EncryptUtils = void 0;
4
+ var EncryptUtils;
5
+ (function (EncryptUtils) {
6
+ // https://stackoverflow.com/questions/7616461/generate-a-hash-from-string-in-javascript
7
+ function Cyrb53Hash(str, seed) {
8
+ if (seed === void 0) { seed = 0; }
9
+ var h1 = 0xdeadbeef ^ seed, h2 = 0x41c6ce57 ^ seed;
10
+ for (var i = 0, ch = void 0; i < str.length; i++) {
11
+ ch = str.charCodeAt(i);
12
+ h1 = Math.imul(h1 ^ ch, 2654435761);
13
+ h2 = Math.imul(h2 ^ ch, 1597334677);
14
+ }
15
+ h1 = Math.imul(h1 ^ (h1 >>> 16), 2246822507) ^ Math.imul(h2 ^ (h2 >>> 13), 3266489909);
16
+ h2 = Math.imul(h2 ^ (h2 >>> 16), 2246822507) ^ Math.imul(h1 ^ (h1 >>> 13), 3266489909);
17
+ return (4294967296 * (2097151 & h2) + (h1 >>> 0));
18
+ }
19
+ EncryptUtils.Cyrb53Hash = Cyrb53Hash;
20
+ })(EncryptUtils = exports.EncryptUtils || (exports.EncryptUtils = {}));
21
21
  //# sourceMappingURL=encrypt-utils.js.map
@@ -1,42 +1,42 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MathUtils = void 0;
4
- var MathUtils;
5
- (function (MathUtils) {
6
- /**
7
- * Rounds a number to a given number of decimal places.
8
- * @param num
9
- * @param decimals
10
- * @returns
11
- */
12
- function Round(num, decimals) {
13
- if (decimals === void 0) { decimals = 0; }
14
- if (decimals <= 0) {
15
- return Math.round(num);
16
- }
17
- var tmp = "1";
18
- for (var i = 0; i < decimals; i++) {
19
- tmp += "0";
20
- }
21
- var d = parseFloat(tmp);
22
- return Math.round((num + Number.EPSILON) * d) / d;
23
- }
24
- MathUtils.Round = Round;
25
- /**
26
- * Returns a random integer between min (inclusive) and max (inclusive).
27
- * @param min
28
- * @param max
29
- * @returns
30
- */
31
- function RandInt(min, max) {
32
- if (min == max) {
33
- return min;
34
- }
35
- else if (min > max) {
36
- throw ("Min is greater than max.");
37
- }
38
- return Math.floor(Math.random() * (max - min + 1)) + min;
39
- }
40
- MathUtils.RandInt = RandInt;
41
- })(MathUtils = exports.MathUtils || (exports.MathUtils = {}));
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MathUtils = void 0;
4
+ var MathUtils;
5
+ (function (MathUtils) {
6
+ /**
7
+ * Rounds a number to a given number of decimal places.
8
+ * @param num
9
+ * @param decimals
10
+ * @returns
11
+ */
12
+ function Round(num, decimals) {
13
+ if (decimals === void 0) { decimals = 0; }
14
+ if (decimals <= 0) {
15
+ return Math.round(num);
16
+ }
17
+ var tmp = "1";
18
+ for (var i = 0; i < decimals; i++) {
19
+ tmp += "0";
20
+ }
21
+ var d = parseFloat(tmp);
22
+ return Math.round((num + Number.EPSILON) * d) / d;
23
+ }
24
+ MathUtils.Round = Round;
25
+ /**
26
+ * Returns a random integer between min (inclusive) and max (inclusive).
27
+ * @param min
28
+ * @param max
29
+ * @returns
30
+ */
31
+ function RandInt(min, max) {
32
+ if (min == max) {
33
+ return min;
34
+ }
35
+ else if (min > max) {
36
+ throw ("Min is greater than max.");
37
+ }
38
+ return Math.floor(Math.random() * (max - min + 1)) + min;
39
+ }
40
+ MathUtils.RandInt = RandInt;
41
+ })(MathUtils = exports.MathUtils || (exports.MathUtils = {}));
42
42
  //# sourceMappingURL=math-utils.js.map
@@ -1,18 +1,18 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ObjectUtils = void 0;
4
- var ObjectUtils;
5
- (function (ObjectUtils) {
6
- /**
7
- * Generates a Bruce compatible UID.
8
- * @returns
9
- */
10
- function UId() {
11
- return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function (c) {
12
- var r = Math.random() * 16 | 0, v = c == "x" ? r : (r & 0x3 | 0x8);
13
- return v.toString(16);
14
- });
15
- }
16
- ObjectUtils.UId = UId;
17
- })(ObjectUtils = exports.ObjectUtils || (exports.ObjectUtils = {}));
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ObjectUtils = void 0;
4
+ var ObjectUtils;
5
+ (function (ObjectUtils) {
6
+ /**
7
+ * Generates a Bruce compatible UID.
8
+ * @returns
9
+ */
10
+ function UId() {
11
+ return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function (c) {
12
+ var r = Math.random() * 16 | 0, v = c == "x" ? r : (r & 0x3 | 0x8);
13
+ return v.toString(16);
14
+ });
15
+ }
16
+ ObjectUtils.UId = UId;
17
+ })(ObjectUtils = exports.ObjectUtils || (exports.ObjectUtils = {}));
18
18
  //# sourceMappingURL=object-utils.js.map
@@ -1,62 +1,62 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PathUtils = void 0;
4
- /**
5
- * Utility to help with parsing and wrapping Bruce paths.
6
- */
7
- var PathUtils;
8
- (function (PathUtils) {
9
- function Parse(str) {
10
- if (!str) {
11
- return [];
12
- }
13
- var broken = str.split("\"/\"");
14
- if (broken.length > 0) {
15
- var top_1 = broken[0];
16
- if (top_1.length > 0) {
17
- if (top_1.charAt(0) == "\"") {
18
- top_1 = top_1.substring(1);
19
- }
20
- broken[0] = top_1;
21
- }
22
- var endIndex = broken.length - 1;
23
- var bot = broken[endIndex];
24
- if (bot.length > 0) {
25
- if (bot.charAt(bot.length - 1) == "\"") {
26
- bot = bot.substring(0, bot.length - 1);
27
- }
28
- broken[endIndex] = bot;
29
- }
30
- }
31
- return broken;
32
- }
33
- PathUtils.Parse = Parse;
34
- function Wrap(path) {
35
- var tmp = "\"";
36
- for (var i = 0; i < path.length; i++) {
37
- var section = path[i];
38
- tmp += section;
39
- if (i < path.length - 1) {
40
- tmp += "\"/\"";
41
- }
42
- }
43
- tmp += "\"";
44
- return tmp;
45
- }
46
- PathUtils.Wrap = Wrap;
47
- function ParseLegacy(str) {
48
- var broken = str.split(".");
49
- for (var i = 0; i < broken.length; i++) {
50
- var piece = broken[0];
51
- if (piece.charAt(0) == "\"") {
52
- piece = broken[0] = piece.substring(1);
53
- }
54
- if (piece.charAt(piece.length - 1) == "\"") {
55
- broken[0] = piece.substring(0, piece.length - 1);
56
- }
57
- }
58
- return broken;
59
- }
60
- PathUtils.ParseLegacy = ParseLegacy;
61
- })(PathUtils = exports.PathUtils || (exports.PathUtils = {}));
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PathUtils = void 0;
4
+ /**
5
+ * Utility to help with parsing and wrapping Bruce paths.
6
+ */
7
+ var PathUtils;
8
+ (function (PathUtils) {
9
+ function Parse(str) {
10
+ if (!str) {
11
+ return [];
12
+ }
13
+ var broken = str.split("\"/\"");
14
+ if (broken.length > 0) {
15
+ var top_1 = broken[0];
16
+ if (top_1.length > 0) {
17
+ if (top_1.charAt(0) == "\"") {
18
+ top_1 = top_1.substring(1);
19
+ }
20
+ broken[0] = top_1;
21
+ }
22
+ var endIndex = broken.length - 1;
23
+ var bot = broken[endIndex];
24
+ if (bot.length > 0) {
25
+ if (bot.charAt(bot.length - 1) == "\"") {
26
+ bot = bot.substring(0, bot.length - 1);
27
+ }
28
+ broken[endIndex] = bot;
29
+ }
30
+ }
31
+ return broken;
32
+ }
33
+ PathUtils.Parse = Parse;
34
+ function Wrap(path) {
35
+ var tmp = "\"";
36
+ for (var i = 0; i < path.length; i++) {
37
+ var section = path[i];
38
+ tmp += section;
39
+ if (i < path.length - 1) {
40
+ tmp += "\"/\"";
41
+ }
42
+ }
43
+ tmp += "\"";
44
+ return tmp;
45
+ }
46
+ PathUtils.Wrap = Wrap;
47
+ function ParseLegacy(str) {
48
+ var broken = str.split(".");
49
+ for (var i = 0; i < broken.length; i++) {
50
+ var piece = broken[0];
51
+ if (piece.charAt(0) == "\"") {
52
+ piece = broken[0] = piece.substring(1);
53
+ }
54
+ if (piece.charAt(piece.length - 1) == "\"") {
55
+ broken[0] = piece.substring(0, piece.length - 1);
56
+ }
57
+ }
58
+ return broken;
59
+ }
60
+ PathUtils.ParseLegacy = ParseLegacy;
61
+ })(PathUtils = exports.PathUtils || (exports.PathUtils = {}));
62
62
  //# sourceMappingURL=path-utils.js.map
@@ -1,108 +1,108 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.UrlUtils = void 0;
4
- /**
5
- * Utility to help with url manipulation.
6
- */
7
- var UrlUtils;
8
- (function (UrlUtils) {
9
- function GetQueryString(doc) {
10
- var qs = {};
11
- var p0 = doc.location.href.indexOf("?");
12
- if (p0 >= 0) {
13
- var str = doc.location.href.substring(p0 + 1);
14
- var tokens = str.split("&");
15
- tokens.forEach(function (token) {
16
- var p = token.split("=");
17
- if (p.length == 2) {
18
- qs[p[0]] = p[1];
19
- }
20
- });
21
- }
22
- return qs;
23
- }
24
- UrlUtils.GetQueryString = GetQueryString;
25
- /**
26
- * Helper to get and set url params for a given window.
27
- */
28
- var Handler = /** @class */ (function () {
29
- function Handler(window, allowedKeys) {
30
- this._allowedKeys = null;
31
- this._window = window;
32
- this._allowedKeys = allowedKeys;
33
- }
34
- Object.defineProperty(Handler.prototype, "window", {
35
- get: function () {
36
- return this._window;
37
- },
38
- enumerable: false,
39
- configurable: true
40
- });
41
- Object.defineProperty(Handler.prototype, "document", {
42
- get: function () {
43
- var _a;
44
- return (_a = this.window) === null || _a === void 0 ? void 0 : _a.document;
45
- },
46
- enumerable: false,
47
- configurable: true
48
- });
49
- Object.defineProperty(Handler.prototype, "allowedKeys", {
50
- get: function () {
51
- return this._allowedKeys;
52
- },
53
- enumerable: false,
54
- configurable: true
55
- });
56
- Handler.prototype.UpdateAllowedKeys = function (allowedKeys) {
57
- this._allowedKeys = allowedKeys;
58
- var params = this.GetParams();
59
- this.refresh(params);
60
- };
61
- Handler.prototype.UpdateParam = function (key, value) {
62
- var params = this.GetParams();
63
- params[key + ""] = value + "";
64
- this.refresh(params);
65
- };
66
- Handler.prototype.RemoveParam = function (key) {
67
- var params = this.GetParams();
68
- params[key + ""] = null;
69
- this.refresh(params);
70
- };
71
- Handler.prototype.GetParamKeys = function () {
72
- var params = GetQueryString(this.document);
73
- return Object.keys(params);
74
- };
75
- Handler.prototype.GetParams = function () {
76
- return GetQueryString(this.document);
77
- };
78
- Handler.prototype.GetParam = function (key) {
79
- var params = this.GetParams();
80
- return params[key + ""];
81
- };
82
- Handler.prototype.Clear = function () {
83
- this.refresh({});
84
- };
85
- Handler.prototype.refresh = function (data) {
86
- var params = [];
87
- var keys = Object.keys(data);
88
- for (var i = 0; i < keys.length; i++) {
89
- var key = keys[i];
90
- if (this._allowedKeys == null || this._allowedKeys.includes(key)) {
91
- var val = data[key];
92
- if (!!val || val == 0) {
93
- params.push(key + "=" + val);
94
- }
95
- }
96
- }
97
- if (params.length > 0) {
98
- this.window.history.replaceState({}, null, "?" + params.join("&"));
99
- }
100
- else {
101
- this.window.history.replaceState({}, null, "");
102
- }
103
- };
104
- return Handler;
105
- }());
106
- UrlUtils.Handler = Handler;
107
- })(UrlUtils = exports.UrlUtils || (exports.UrlUtils = {}));
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UrlUtils = void 0;
4
+ /**
5
+ * Utility to help with url manipulation.
6
+ */
7
+ var UrlUtils;
8
+ (function (UrlUtils) {
9
+ function GetQueryString(doc) {
10
+ var qs = {};
11
+ var p0 = doc.location.href.indexOf("?");
12
+ if (p0 >= 0) {
13
+ var str = doc.location.href.substring(p0 + 1);
14
+ var tokens = str.split("&");
15
+ tokens.forEach(function (token) {
16
+ var p = token.split("=");
17
+ if (p.length == 2) {
18
+ qs[p[0]] = p[1];
19
+ }
20
+ });
21
+ }
22
+ return qs;
23
+ }
24
+ UrlUtils.GetQueryString = GetQueryString;
25
+ /**
26
+ * Helper to get and set url params for a given window.
27
+ */
28
+ var Handler = /** @class */ (function () {
29
+ function Handler(window, allowedKeys) {
30
+ this._allowedKeys = null;
31
+ this._window = window;
32
+ this._allowedKeys = allowedKeys;
33
+ }
34
+ Object.defineProperty(Handler.prototype, "window", {
35
+ get: function () {
36
+ return this._window;
37
+ },
38
+ enumerable: false,
39
+ configurable: true
40
+ });
41
+ Object.defineProperty(Handler.prototype, "document", {
42
+ get: function () {
43
+ var _a;
44
+ return (_a = this.window) === null || _a === void 0 ? void 0 : _a.document;
45
+ },
46
+ enumerable: false,
47
+ configurable: true
48
+ });
49
+ Object.defineProperty(Handler.prototype, "allowedKeys", {
50
+ get: function () {
51
+ return this._allowedKeys;
52
+ },
53
+ enumerable: false,
54
+ configurable: true
55
+ });
56
+ Handler.prototype.UpdateAllowedKeys = function (allowedKeys) {
57
+ this._allowedKeys = allowedKeys;
58
+ var params = this.GetParams();
59
+ this.refresh(params);
60
+ };
61
+ Handler.prototype.UpdateParam = function (key, value) {
62
+ var params = this.GetParams();
63
+ params[key + ""] = value + "";
64
+ this.refresh(params);
65
+ };
66
+ Handler.prototype.RemoveParam = function (key) {
67
+ var params = this.GetParams();
68
+ params[key + ""] = null;
69
+ this.refresh(params);
70
+ };
71
+ Handler.prototype.GetParamKeys = function () {
72
+ var params = GetQueryString(this.document);
73
+ return Object.keys(params);
74
+ };
75
+ Handler.prototype.GetParams = function () {
76
+ return GetQueryString(this.document);
77
+ };
78
+ Handler.prototype.GetParam = function (key) {
79
+ var params = this.GetParams();
80
+ return params[key + ""];
81
+ };
82
+ Handler.prototype.Clear = function () {
83
+ this.refresh({});
84
+ };
85
+ Handler.prototype.refresh = function (data) {
86
+ var params = [];
87
+ var keys = Object.keys(data);
88
+ for (var i = 0; i < keys.length; i++) {
89
+ var key = keys[i];
90
+ if (this._allowedKeys == null || this._allowedKeys.includes(key)) {
91
+ var val = data[key];
92
+ if (!!val || val == 0) {
93
+ params.push(key + "=" + val);
94
+ }
95
+ }
96
+ }
97
+ if (params.length > 0) {
98
+ this.window.history.replaceState({}, null, "?" + params.join("&"));
99
+ }
100
+ else {
101
+ this.window.history.replaceState({}, null, "");
102
+ }
103
+ };
104
+ return Handler;
105
+ }());
106
+ UrlUtils.Handler = Handler;
107
+ })(UrlUtils = exports.UrlUtils || (exports.UrlUtils = {}));
108
108
  //# sourceMappingURL=url-utils.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bruce-models",
3
- "version": "0.6.9",
3
+ "version": "0.7.1",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "main": "dist/bruce-models.umd.js",