@mapvx/web-js 1.1.0 → 1.1.2-alpha.3

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 (116) hide show
  1. package/LICENSE.md +2 -2
  2. package/README.md +12 -9
  3. package/dist/cjs/assets/icons.js +6 -8
  4. package/dist/cjs/assets/icons.js.map +1 -1
  5. package/dist/cjs/controllers/routeController.js +19 -19
  6. package/dist/cjs/controllers/routeController.js.map +1 -1
  7. package/dist/cjs/domain/models/animation.js +2 -2
  8. package/dist/cjs/domain/models/categories.js +23 -10
  9. package/dist/cjs/domain/models/categories.js.map +1 -1
  10. package/dist/cjs/domain/models/circle.js +253 -0
  11. package/dist/cjs/domain/models/circle.js.map +1 -0
  12. package/dist/cjs/domain/models/mapConfig.js +10 -1
  13. package/dist/cjs/domain/models/mapConfig.js.map +1 -1
  14. package/dist/cjs/domain/models/marker.js +92 -80
  15. package/dist/cjs/domain/models/marker.js.map +1 -1
  16. package/dist/cjs/domain/models/routeConfiguration.js +3 -1
  17. package/dist/cjs/domain/models/routeConfiguration.js.map +1 -1
  18. package/dist/cjs/index.js +24 -10
  19. package/dist/cjs/index.js.map +1 -1
  20. package/dist/cjs/logger/logger.js +21 -9
  21. package/dist/cjs/logger/logger.js.map +1 -1
  22. package/dist/cjs/logger/rollbar.js +21 -8
  23. package/dist/cjs/logger/rollbar.js.map +1 -1
  24. package/dist/cjs/map/map.js +446 -28
  25. package/dist/cjs/map/map.js.map +1 -1
  26. package/dist/cjs/map/mapInteractionOptions.js +56 -0
  27. package/dist/cjs/map/mapInteractionOptions.js.map +1 -0
  28. package/dist/cjs/repository/repository.js +25 -26
  29. package/dist/cjs/repository/repository.js.map +1 -1
  30. package/dist/cjs/repository/requester.js +71 -91
  31. package/dist/cjs/repository/requester.js.map +1 -1
  32. package/dist/cjs/sdk.js +18 -1
  33. package/dist/cjs/sdk.js.map +1 -1
  34. package/dist/cjs/utils/preconnect.js +131 -0
  35. package/dist/cjs/utils/preconnect.js.map +1 -0
  36. package/dist/cjs/utils/semaphore.js +143 -0
  37. package/dist/cjs/utils/semaphore.js.map +1 -0
  38. package/dist/es/assets/icons.d.ts +4 -4
  39. package/dist/es/assets/icons.d.ts.map +1 -1
  40. package/dist/es/assets/icons.js +6 -8
  41. package/dist/es/assets/icons.js.map +1 -1
  42. package/dist/es/controllers/routeController.d.ts.map +1 -1
  43. package/dist/es/controllers/routeController.js +19 -19
  44. package/dist/es/controllers/routeController.js.map +1 -1
  45. package/dist/es/domain/models/animation.d.ts +3 -3
  46. package/dist/es/domain/models/animation.js +2 -2
  47. package/dist/es/domain/models/categories.d.ts +34 -10
  48. package/dist/es/domain/models/categories.d.ts.map +1 -1
  49. package/dist/es/domain/models/categories.js +21 -9
  50. package/dist/es/domain/models/categories.js.map +1 -1
  51. package/dist/es/domain/models/circle.d.ts +222 -0
  52. package/dist/es/domain/models/circle.d.ts.map +1 -0
  53. package/dist/es/domain/models/circle.js +246 -0
  54. package/dist/es/domain/models/circle.js.map +1 -0
  55. package/dist/es/domain/models/configuration.d.ts +8 -0
  56. package/dist/es/domain/models/configuration.d.ts.map +1 -1
  57. package/dist/es/domain/models/mapConfig.d.ts +118 -3
  58. package/dist/es/domain/models/mapConfig.d.ts.map +1 -1
  59. package/dist/es/domain/models/mapConfig.js +9 -0
  60. package/dist/es/domain/models/mapConfig.js.map +1 -1
  61. package/dist/es/domain/models/marker.d.ts +16 -0
  62. package/dist/es/domain/models/marker.d.ts.map +1 -1
  63. package/dist/es/domain/models/marker.js +92 -80
  64. package/dist/es/domain/models/marker.js.map +1 -1
  65. package/dist/es/domain/models/routeConfiguration.d.ts +47 -0
  66. package/dist/es/domain/models/routeConfiguration.d.ts.map +1 -1
  67. package/dist/es/domain/models/routeConfiguration.js +3 -1
  68. package/dist/es/domain/models/routeConfiguration.js.map +1 -1
  69. package/dist/es/index.d.ts +15 -11
  70. package/dist/es/index.d.ts.map +1 -1
  71. package/dist/es/index.js +10 -5
  72. package/dist/es/index.js.map +1 -1
  73. package/dist/es/interfaces/routeCacheResponse.d.ts.map +1 -1
  74. package/dist/es/logger/logger.d.ts.map +1 -1
  75. package/dist/es/logger/logger.js +21 -9
  76. package/dist/es/logger/logger.js.map +1 -1
  77. package/dist/es/logger/rollbar.d.ts.map +1 -1
  78. package/dist/es/logger/rollbar.js +21 -8
  79. package/dist/es/logger/rollbar.js.map +1 -1
  80. package/dist/es/map/map.d.ts +298 -0
  81. package/dist/es/map/map.d.ts.map +1 -1
  82. package/dist/es/map/map.js +447 -29
  83. package/dist/es/map/map.js.map +1 -1
  84. package/dist/es/map/mapInteractionOptions.d.ts +37 -0
  85. package/dist/es/map/mapInteractionOptions.d.ts.map +1 -0
  86. package/dist/es/map/mapInteractionOptions.js +51 -0
  87. package/dist/es/map/mapInteractionOptions.js.map +1 -0
  88. package/dist/es/repository/repository.d.ts +0 -1
  89. package/dist/es/repository/repository.d.ts.map +1 -1
  90. package/dist/es/repository/repository.js +25 -26
  91. package/dist/es/repository/repository.js.map +1 -1
  92. package/dist/es/repository/requester.d.ts +12 -2
  93. package/dist/es/repository/requester.d.ts.map +1 -1
  94. package/dist/es/repository/requester.js +71 -91
  95. package/dist/es/repository/requester.js.map +1 -1
  96. package/dist/es/sdk.d.ts +2 -0
  97. package/dist/es/sdk.d.ts.map +1 -1
  98. package/dist/es/sdk.js +18 -1
  99. package/dist/es/sdk.js.map +1 -1
  100. package/dist/es/utils/preconnect.d.ts +45 -0
  101. package/dist/es/utils/preconnect.d.ts.map +1 -0
  102. package/dist/es/utils/preconnect.js +127 -0
  103. package/dist/es/utils/preconnect.js.map +1 -0
  104. package/dist/es/utils/semaphore.d.ts +70 -0
  105. package/dist/es/utils/semaphore.d.ts.map +1 -0
  106. package/dist/es/utils/semaphore.js +139 -0
  107. package/dist/es/utils/semaphore.js.map +1 -0
  108. package/dist/umd/index.js +1968 -669
  109. package/dist/umd/index.js.map +1 -1
  110. package/dist/umd/styles.css +32 -14
  111. package/dist/umd/styles.css.map +1 -1
  112. package/package.json +63 -49
  113. package/dist/cjs/assets/route_animation_icon.svg +0 -15
  114. package/dist/cjs/assets/user-dot-icon.svg +0 -3
  115. package/dist/es/assets/route_animation_icon.svg +0 -15
  116. package/dist/es/assets/user-dot-icon.svg +0 -3
package/dist/es/sdk.js CHANGED
@@ -29,6 +29,7 @@ export class InternalMapVXSDK extends Loggeable {
29
29
  constructor(token, config) {
30
30
  var _a, _b, _c;
31
31
  super();
32
+ this.maps = [];
32
33
  this.geoLocation = navigator.geolocation;
33
34
  this.headingListeners = [];
34
35
  this.token = token;
@@ -54,6 +55,13 @@ export class InternalMapVXSDK extends Loggeable {
54
55
  setSdkLang(lang) {
55
56
  this.config.lang = lang;
56
57
  this.repository.setLang(lang);
58
+ this.maps.forEach((map) => map.setLang(lang));
59
+ }
60
+ unregisterMap(map) {
61
+ const mapIndex = this.maps.indexOf(map);
62
+ if (mapIndex >= 0) {
63
+ this.maps.splice(mapIndex, 1);
64
+ }
57
65
  }
58
66
  async getPlaceDetail(id) {
59
67
  try {
@@ -84,6 +92,16 @@ export class InternalMapVXSDK extends Loggeable {
84
92
  mapConfig.apiUrl = this.config.apiUrl;
85
93
  mapConfig.mapvxRequestContext = this.config.mapvxRequestContext;
86
94
  const map = new InternalMapVXMap(mapConfig, container, this.token);
95
+ const originalDestroyMap = map.destroyMap.bind(map);
96
+ map.destroyMap = () => {
97
+ try {
98
+ originalDestroyMap();
99
+ }
100
+ finally {
101
+ this.unregisterMap(map);
102
+ }
103
+ };
104
+ this.maps.push(map);
87
105
  this.logEvent("createMap");
88
106
  return map;
89
107
  }
@@ -242,7 +260,6 @@ export class InternalMapVXSDK extends Loggeable {
242
260
  throw new Error("Failed to search places by tags");
243
261
  }
244
262
  }
245
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
246
263
  async getPlacesByCategory(category) {
247
264
  try {
248
265
  // TODO: Implement proper category-based search when API endpoint is available
@@ -1 +1 @@
1
- {"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../src/sdk.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../src/sdk.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Hostnames that MapVX maps typically need to talk to during the first
3
+ * paint: vector tiles, sprite, glyphs and indoor tile sources. Exposed so
4
+ * that consumer apps can call `injectPreconnects(MAPVX_DEFAULT_PRECONNECT_HOSTS)`
5
+ * without having to maintain the list themselves.
6
+ *
7
+ * @group Utils
8
+ */
9
+ export declare const MAPVX_DEFAULT_PRECONNECT_HOSTS: readonly string[];
10
+ /**
11
+ * Injects `<link rel="preconnect">` (and a `<link rel="dns-prefetch">` fallback)
12
+ * tags into `document.head` for the given origins, so the browser starts the
13
+ * DNS + TLS handshake before MapLibre actually requests sprite/glyph/tile
14
+ * resources.
15
+ *
16
+ * Call this as early as possible — ideally before {@link initializeSDK} — to
17
+ * maximize the savings. In real captures this shaves ~150-300 ms off the
18
+ * first-paint cascade.
19
+ *
20
+ * Idempotent: hosts that already have a `<link rel="preconnect" crossorigin>`
21
+ * are skipped. If an existing `preconnect` link is missing `crossorigin`, it
22
+ * is upgraded in place (added `crossorigin="anonymous"`) — without that
23
+ * attribute the warmed socket can't be reused for the CORS tile/font/sprite
24
+ * fetches MapLibre performs, so leaving the existing link untouched would
25
+ * silently defeat the optimization. Existing `crossorigin="use-credentials"`
26
+ * is respected and never overwritten.
27
+ *
28
+ * @param hosts - Origin URLs (`"https://tiles.mapvx.com"`) or bare hostnames
29
+ * (`"tiles.mapvx.com"`, normalized to `https://`). Invalid entries are
30
+ * silently ignored.
31
+ * @returns The origins where the helper made a change — either a new link was
32
+ * appended, or an existing one was upgraded with `crossorigin="anonymous"`.
33
+ *
34
+ * @example
35
+ * ```ts
36
+ * import { initializeSDK, injectPreconnects, MAPVX_DEFAULT_PRECONNECT_HOSTS } from "@mapvx/web-js"
37
+ *
38
+ * injectPreconnects(MAPVX_DEFAULT_PRECONNECT_HOSTS)
39
+ * const sdk = initializeSDK(apiKey)
40
+ * ```
41
+ *
42
+ * @group Utils
43
+ */
44
+ export declare function injectPreconnects(hosts: readonly string[]): string[];
45
+ //# sourceMappingURL=preconnect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preconnect.d.ts","sourceRoot":"","sources":["../../../src/utils/preconnect.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,eAAO,MAAM,8BAA8B,EAAE,SAAS,MAAM,EAI3D,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CA+CpE"}
@@ -0,0 +1,127 @@
1
+ /**
2
+ * Hostnames that MapVX maps typically need to talk to during the first
3
+ * paint: vector tiles, sprite, glyphs and indoor tile sources. Exposed so
4
+ * that consumer apps can call `injectPreconnects(MAPVX_DEFAULT_PRECONNECT_HOSTS)`
5
+ * without having to maintain the list themselves.
6
+ *
7
+ * @group Utils
8
+ */
9
+ export const MAPVX_DEFAULT_PRECONNECT_HOSTS = [
10
+ "https://tiles.mapvx.com",
11
+ "https://api.maptiler.com",
12
+ "https://indoorequals.mapvx.com",
13
+ ];
14
+ /**
15
+ * Injects `<link rel="preconnect">` (and a `<link rel="dns-prefetch">` fallback)
16
+ * tags into `document.head` for the given origins, so the browser starts the
17
+ * DNS + TLS handshake before MapLibre actually requests sprite/glyph/tile
18
+ * resources.
19
+ *
20
+ * Call this as early as possible — ideally before {@link initializeSDK} — to
21
+ * maximize the savings. In real captures this shaves ~150-300 ms off the
22
+ * first-paint cascade.
23
+ *
24
+ * Idempotent: hosts that already have a `<link rel="preconnect" crossorigin>`
25
+ * are skipped. If an existing `preconnect` link is missing `crossorigin`, it
26
+ * is upgraded in place (added `crossorigin="anonymous"`) — without that
27
+ * attribute the warmed socket can't be reused for the CORS tile/font/sprite
28
+ * fetches MapLibre performs, so leaving the existing link untouched would
29
+ * silently defeat the optimization. Existing `crossorigin="use-credentials"`
30
+ * is respected and never overwritten.
31
+ *
32
+ * @param hosts - Origin URLs (`"https://tiles.mapvx.com"`) or bare hostnames
33
+ * (`"tiles.mapvx.com"`, normalized to `https://`). Invalid entries are
34
+ * silently ignored.
35
+ * @returns The origins where the helper made a change — either a new link was
36
+ * appended, or an existing one was upgraded with `crossorigin="anonymous"`.
37
+ *
38
+ * @example
39
+ * ```ts
40
+ * import { initializeSDK, injectPreconnects, MAPVX_DEFAULT_PRECONNECT_HOSTS } from "@mapvx/web-js"
41
+ *
42
+ * injectPreconnects(MAPVX_DEFAULT_PRECONNECT_HOSTS)
43
+ * const sdk = initializeSDK(apiKey)
44
+ * ```
45
+ *
46
+ * @group Utils
47
+ */
48
+ export function injectPreconnects(hosts) {
49
+ if (typeof document === "undefined" || !document.head)
50
+ return [];
51
+ if (!Array.isArray(hosts) || hosts.length === 0)
52
+ return [];
53
+ const injected = [];
54
+ for (const raw of hosts) {
55
+ if (typeof raw !== "string" || raw.length === 0)
56
+ continue;
57
+ const origin = normalizeOrigin(raw);
58
+ if (origin === null)
59
+ continue;
60
+ // Check what's already in <head>. We may need to UPGRADE an existing
61
+ // preconnect — server-rendered or hand-authored hints frequently omit
62
+ // `crossorigin`, and a warmed socket without it cannot be reused for
63
+ // the CORS tile/font/sprite fetches that MapLibre performs. Without
64
+ // this branch the optimization would silently no-op when the page
65
+ // already had a partial hint.
66
+ const existingPreconnect = findLinkForOrigin("preconnect", origin);
67
+ let preconnectChanged = false;
68
+ if (existingPreconnect) {
69
+ if (!existingPreconnect.hasAttribute("crossorigin")) {
70
+ existingPreconnect.crossOrigin = "anonymous";
71
+ preconnectChanged = true;
72
+ }
73
+ // If the existing link already has any `crossorigin` value
74
+ // (including `use-credentials`), respect the author's intent and
75
+ // leave it alone.
76
+ }
77
+ else {
78
+ const preconnect = document.createElement("link");
79
+ preconnect.rel = "preconnect";
80
+ preconnect.href = origin;
81
+ preconnect.crossOrigin = "anonymous";
82
+ document.head.appendChild(preconnect);
83
+ preconnectChanged = true;
84
+ }
85
+ // dns-prefetch is a fallback for older browsers that ignore preconnect.
86
+ if (!findLinkForOrigin("dns-prefetch", origin)) {
87
+ const dnsPrefetch = document.createElement("link");
88
+ dnsPrefetch.rel = "dns-prefetch";
89
+ dnsPrefetch.href = origin;
90
+ document.head.appendChild(dnsPrefetch);
91
+ }
92
+ if (preconnectChanged)
93
+ injected.push(origin);
94
+ }
95
+ return injected;
96
+ }
97
+ /**
98
+ * Returns the first `<link rel="${rel}">` in `<head>` whose resolved origin
99
+ * matches `origin`, or null. We compare canonical URL origins instead of
100
+ * the raw `href` attribute text — the same origin can be written as
101
+ * `https://tiles.mapvx.com` or `https://tiles.mapvx.com/`, and a strict
102
+ * attribute selector would miss the second form and inject a duplicate.
103
+ */
104
+ function findLinkForOrigin(rel, origin) {
105
+ const links = document.head.querySelectorAll(`link[rel="${rel}"]`);
106
+ for (let i = 0; i < links.length; i++) {
107
+ const link = links[i];
108
+ try {
109
+ if (new URL(link.href).origin === origin)
110
+ return link;
111
+ }
112
+ catch (_a) {
113
+ // Malformed href — skip and keep scanning.
114
+ }
115
+ }
116
+ return null;
117
+ }
118
+ function normalizeOrigin(raw) {
119
+ try {
120
+ const candidate = /^https?:\/\//i.test(raw) ? raw : `https://${raw}`;
121
+ return new URL(candidate).origin;
122
+ }
123
+ catch (_a) {
124
+ return null;
125
+ }
126
+ }
127
+ //# sourceMappingURL=preconnect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preconnect.js","sourceRoot":"","sources":["../../../src/utils/preconnect.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAsB;IAC/D,yBAAyB;IACzB,0BAA0B;IAC1B,gCAAgC;CACjC,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAwB;IACxD,IAAI,OAAO,QAAQ,KAAK,WAAW,IAAI,CAAC,QAAQ,CAAC,IAAI;QAAE,OAAO,EAAE,CAAA;IAChE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IAE1D,MAAM,QAAQ,GAAa,EAAE,CAAA;IAC7B,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE;QACvB,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAAE,SAAQ;QACzD,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,CAAA;QACnC,IAAI,MAAM,KAAK,IAAI;YAAE,SAAQ;QAE7B,qEAAqE;QACrE,sEAAsE;QACtE,qEAAqE;QACrE,oEAAoE;QACpE,kEAAkE;QAClE,8BAA8B;QAC9B,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAA;QAClE,IAAI,iBAAiB,GAAG,KAAK,CAAA;QAE7B,IAAI,kBAAkB,EAAE;YACtB,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE;gBACnD,kBAAkB,CAAC,WAAW,GAAG,WAAW,CAAA;gBAC5C,iBAAiB,GAAG,IAAI,CAAA;aACzB;YACD,2DAA2D;YAC3D,iEAAiE;YACjE,kBAAkB;SACnB;aAAM;YACL,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;YACjD,UAAU,CAAC,GAAG,GAAG,YAAY,CAAA;YAC7B,UAAU,CAAC,IAAI,GAAG,MAAM,CAAA;YACxB,UAAU,CAAC,WAAW,GAAG,WAAW,CAAA;YACpC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAA;YACrC,iBAAiB,GAAG,IAAI,CAAA;SACzB;QAED,wEAAwE;QACxE,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,MAAM,CAAC,EAAE;YAC9C,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;YAClD,WAAW,CAAC,GAAG,GAAG,cAAc,CAAA;YAChC,WAAW,CAAC,IAAI,GAAG,MAAM,CAAA;YACzB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAA;SACvC;QAED,IAAI,iBAAiB;YAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;KAC7C;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,iBAAiB,CACxB,GAAkC,EAClC,MAAc;IAEd,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,GAAG,IAAI,CAAC,CAAA;IAClE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACrC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAoB,CAAA;QACxC,IAAI;YACF,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM;gBAAE,OAAO,IAAI,CAAA;SACtD;QAAC,WAAM;YACN,2CAA2C;SAC5C;KACF;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,eAAe,CAAC,GAAW;IAClC,IAAI;QACF,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,GAAG,EAAE,CAAA;QACpE,OAAO,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,MAAM,CAAA;KACjC;IAAC,WAAM;QACN,OAAO,IAAI,CAAA;KACZ;AACH,CAAC"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Counting semaphore that caps the number of concurrent operations.
3
+ *
4
+ * Useful when calling APIs, CDNs, or other shared resources where unbounded
5
+ * parallelism can trigger rate limiting, WAF blocks, or excessive memory use.
6
+ * Waiters are released in FIFO order as slots become free.
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * const sem = new Semaphore(4);
11
+ *
12
+ * async function fetchTile(url: string) {
13
+ * await sem.acquire();
14
+ * try {
15
+ * return await fetch(url);
16
+ * } finally {
17
+ * sem.release();
18
+ * }
19
+ * }
20
+ * ```
21
+ *
22
+ * @group Utils
23
+ */
24
+ export declare class Semaphore {
25
+ private waiters;
26
+ private slotsInUse;
27
+ private readonly slotLimit;
28
+ /**
29
+ * @param limit - Maximum number of concurrent slots. Must be a finite
30
+ * integer in `[1, 64]`; invalid values fall back to `1`.
31
+ */
32
+ constructor(limit?: number);
33
+ /**
34
+ * Maximum number of slots that can be acquired concurrently.
35
+ */
36
+ get limit(): number;
37
+ /**
38
+ * Number of slots currently held by callers (acquired but not released).
39
+ */
40
+ get inUse(): number;
41
+ /**
42
+ * Number of callers currently waiting for a slot.
43
+ */
44
+ get waiting(): number;
45
+ /**
46
+ * Acquire one slot. Resolves immediately if a slot is free; otherwise waits
47
+ * in FIFO order until `release()` is called.
48
+ *
49
+ * Every successful `acquire()` must be paired with exactly one `release()`,
50
+ * typically from a `finally` block. If the promise rejects (e.g. the optional
51
+ * `signal` aborts while queued) no slot was granted, so `release()` must NOT
52
+ * be called.
53
+ *
54
+ * @param signal - Optional `AbortSignal`. If it aborts while the caller is
55
+ * still queued, the waiter is removed from the queue and the promise rejects
56
+ * with an `AbortError`, so cancelled work never occupies a slot.
57
+ * @returns A promise that resolves once a slot has been granted.
58
+ */
59
+ acquire(signal?: AbortSignal): Promise<void>;
60
+ /**
61
+ * Release one slot, waking the next FIFO waiter only when a slot was actually
62
+ * freed.
63
+ *
64
+ * Safe to call even when no slots are in use: it is a true no-op in that case,
65
+ * so cleanup code in `finally` blocks is defensive against double-releases and
66
+ * a stray release can never admit a waiter beyond {@link limit}.
67
+ */
68
+ release(): void;
69
+ }
70
+ //# sourceMappingURL=semaphore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semaphore.d.ts","sourceRoot":"","sources":["../../../src/utils/semaphore.ts"],"names":[],"mappings":"AA8BA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,UAAU,CAAI;IACtB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAElC;;;OAGG;gBACS,KAAK,GAAE,MAAkB;IAIrC;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,CAElB;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,CAElB;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IA8B5C;;;;;;;OAOG;IACH,OAAO,IAAI,IAAI;CAShB"}
@@ -0,0 +1,139 @@
1
+ /**
2
+ * Lower bound (inclusive) for the semaphore concurrency limit.
3
+ *
4
+ * A value of 1 means at least one operation can run at a time, which keeps the
5
+ * semaphore meaningful: zero or negative limits would deadlock every caller.
6
+ */
7
+ const MIN_LIMIT = 1;
8
+ /**
9
+ * Upper bound (inclusive) for the semaphore concurrency limit.
10
+ *
11
+ * 64 is high enough for any practical browser-side fan-out (network requests,
12
+ * tile fetches, etc.) while still protecting downstream services from being
13
+ * overwhelmed by misconfigured callers.
14
+ */
15
+ const MAX_LIMIT = 64;
16
+ /**
17
+ * Validate and normalize a candidate concurrency limit.
18
+ *
19
+ * @param limit - Candidate value to validate.
20
+ * @returns The validated integer limit, or `null` if the value is invalid.
21
+ */
22
+ function normalizeLimit(limit) {
23
+ if (!Number.isFinite(limit))
24
+ return null;
25
+ const floored = Math.floor(limit);
26
+ if (floored < MIN_LIMIT || floored > MAX_LIMIT)
27
+ return null;
28
+ return floored;
29
+ }
30
+ /**
31
+ * Counting semaphore that caps the number of concurrent operations.
32
+ *
33
+ * Useful when calling APIs, CDNs, or other shared resources where unbounded
34
+ * parallelism can trigger rate limiting, WAF blocks, or excessive memory use.
35
+ * Waiters are released in FIFO order as slots become free.
36
+ *
37
+ * @example
38
+ * ```typescript
39
+ * const sem = new Semaphore(4);
40
+ *
41
+ * async function fetchTile(url: string) {
42
+ * await sem.acquire();
43
+ * try {
44
+ * return await fetch(url);
45
+ * } finally {
46
+ * sem.release();
47
+ * }
48
+ * }
49
+ * ```
50
+ *
51
+ * @group Utils
52
+ */
53
+ export class Semaphore {
54
+ /**
55
+ * @param limit - Maximum number of concurrent slots. Must be a finite
56
+ * integer in `[1, 64]`; invalid values fall back to `1`.
57
+ */
58
+ constructor(limit = MIN_LIMIT) {
59
+ var _a;
60
+ this.waiters = [];
61
+ this.slotsInUse = 0;
62
+ this.slotLimit = (_a = normalizeLimit(limit)) !== null && _a !== void 0 ? _a : MIN_LIMIT;
63
+ }
64
+ /**
65
+ * Maximum number of slots that can be acquired concurrently.
66
+ */
67
+ get limit() {
68
+ return this.slotLimit;
69
+ }
70
+ /**
71
+ * Number of slots currently held by callers (acquired but not released).
72
+ */
73
+ get inUse() {
74
+ return this.slotsInUse;
75
+ }
76
+ /**
77
+ * Number of callers currently waiting for a slot.
78
+ */
79
+ get waiting() {
80
+ return this.waiters.length;
81
+ }
82
+ /**
83
+ * Acquire one slot. Resolves immediately if a slot is free; otherwise waits
84
+ * in FIFO order until `release()` is called.
85
+ *
86
+ * Every successful `acquire()` must be paired with exactly one `release()`,
87
+ * typically from a `finally` block. If the promise rejects (e.g. the optional
88
+ * `signal` aborts while queued) no slot was granted, so `release()` must NOT
89
+ * be called.
90
+ *
91
+ * @param signal - Optional `AbortSignal`. If it aborts while the caller is
92
+ * still queued, the waiter is removed from the queue and the promise rejects
93
+ * with an `AbortError`, so cancelled work never occupies a slot.
94
+ * @returns A promise that resolves once a slot has been granted.
95
+ */
96
+ acquire(signal) {
97
+ if (signal === null || signal === void 0 ? void 0 : signal.aborted) {
98
+ return Promise.reject(new DOMException("Aborted", "AbortError"));
99
+ }
100
+ if (this.slotsInUse < this.slotLimit) {
101
+ this.slotsInUse++;
102
+ return Promise.resolve();
103
+ }
104
+ return new Promise((resolve, reject) => {
105
+ const waiter = () => {
106
+ this.slotsInUse++;
107
+ resolve();
108
+ };
109
+ this.waiters.push(waiter);
110
+ if (signal) {
111
+ signal.addEventListener("abort", () => {
112
+ const index = this.waiters.indexOf(waiter);
113
+ if (index !== -1) {
114
+ this.waiters.splice(index, 1);
115
+ reject(new DOMException("Aborted", "AbortError"));
116
+ }
117
+ }, { once: true });
118
+ }
119
+ });
120
+ }
121
+ /**
122
+ * Release one slot, waking the next FIFO waiter only when a slot was actually
123
+ * freed.
124
+ *
125
+ * Safe to call even when no slots are in use: it is a true no-op in that case,
126
+ * so cleanup code in `finally` blocks is defensive against double-releases and
127
+ * a stray release can never admit a waiter beyond {@link limit}.
128
+ */
129
+ release() {
130
+ if (this.slotsInUse > 0) {
131
+ this.slotsInUse--;
132
+ const next = this.waiters.shift();
133
+ if (next) {
134
+ next();
135
+ }
136
+ }
137
+ }
138
+ }
139
+ //# sourceMappingURL=semaphore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semaphore.js","sourceRoot":"","sources":["../../../src/utils/semaphore.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,SAAS,GAAG,CAAC,CAAA;AAEnB;;;;;;GAMG;AACH,MAAM,SAAS,GAAG,EAAE,CAAA;AAEpB;;;;;GAKG;AACH,SAAS,cAAc,CAAC,KAAa;IACnC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IACxC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACjC,IAAI,OAAO,GAAG,SAAS,IAAI,OAAO,GAAG,SAAS;QAAE,OAAO,IAAI,CAAA;IAC3D,OAAO,OAAO,CAAA;AAChB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,OAAO,SAAS;IAKpB;;;OAGG;IACH,YAAY,QAAgB,SAAS;;QAR7B,YAAO,GAAsB,EAAE,CAAA;QAC/B,eAAU,GAAG,CAAC,CAAA;QAQpB,IAAI,CAAC,SAAS,GAAG,MAAA,cAAc,CAAC,KAAK,CAAC,mCAAI,SAAS,CAAA;IACrD,CAAC;IAED;;OAEG;IACH,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,SAAS,CAAA;IACvB,CAAC;IAED;;OAEG;IACH,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,UAAU,CAAA;IACxB,CAAC;IAED;;OAEG;IACH,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAA;IAC5B,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,MAAoB;QAC1B,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,EAAE;YACnB,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAA;SACjE;QACD,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE;YACpC,IAAI,CAAC,UAAU,EAAE,CAAA;YACjB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;SACzB;QACD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,MAAM,GAAG,GAAS,EAAE;gBACxB,IAAI,CAAC,UAAU,EAAE,CAAA;gBACjB,OAAO,EAAE,CAAA;YACX,CAAC,CAAA;YACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YACzB,IAAI,MAAM,EAAE;gBACV,MAAM,CAAC,gBAAgB,CACrB,OAAO,EACP,GAAG,EAAE;oBACH,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;oBAC1C,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;wBAChB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;wBAC7B,MAAM,CAAC,IAAI,YAAY,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAA;qBAClD;gBACH,CAAC,EACD,EAAE,IAAI,EAAE,IAAI,EAAE,CACf,CAAA;aACF;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,OAAO;QACL,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE;YACvB,IAAI,CAAC,UAAU,EAAE,CAAA;YACjB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;YACjC,IAAI,IAAI,EAAE;gBACR,IAAI,EAAE,CAAA;aACP;SACF;IACH,CAAC;CACF"}