@page-speed/maps 0.1.1 → 0.1.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.
@@ -1,5 +1,5 @@
1
1
  // src/utils/getMapLibreStyleUrl.ts
2
- var MAPLIBRE_DEFAULT_STYLE_URL = "https://demotiles.maplibre.org/style.json";
2
+ var MAPLIBRE_DEFAULT_STYLE_URL = "https://basemaps.cartocdn.com/gl/positron-gl-style/style.json";
3
3
  var DEFAULT_STADIA_STYLE_URL = "https://tiles.stadiamaps.com/styles/osm_bright.json";
4
4
  var STYLE_MAP = {
5
5
  default: DEFAULT_STADIA_STYLE_URL,
@@ -40,16 +40,30 @@ function appendStadiaApiKey(styleUrl, stadiaApiKey) {
40
40
  return parsed.toString();
41
41
  }
42
42
  function getMapLibreStyleUrl(value, stadiaApiKey) {
43
+ const normalizedApiKey = stadiaApiKey.trim();
43
44
  if (!value || typeof value !== "string") {
44
- return appendStadiaApiKey(DEFAULT_STADIA_STYLE_URL, stadiaApiKey);
45
+ if (!normalizedApiKey) {
46
+ return MAPLIBRE_DEFAULT_STYLE_URL;
47
+ }
48
+ return appendStadiaApiKey(DEFAULT_STADIA_STYLE_URL, normalizedApiKey);
45
49
  }
46
50
  if (STYLE_MAP[value]) {
47
- return appendStadiaApiKey(STYLE_MAP[value], stadiaApiKey);
51
+ const mappedStyleUrl = STYLE_MAP[value];
52
+ if (isStadiaMapsUrl(mappedStyleUrl) && !normalizedApiKey) {
53
+ return MAPLIBRE_DEFAULT_STYLE_URL;
54
+ }
55
+ return appendStadiaApiKey(mappedStyleUrl, normalizedApiKey);
48
56
  }
49
57
  if (HTTP_URL_REGEX.test(value)) {
50
- return appendStadiaApiKey(value, stadiaApiKey);
58
+ if (isStadiaMapsUrl(value) && !normalizedApiKey) {
59
+ return MAPLIBRE_DEFAULT_STYLE_URL;
60
+ }
61
+ return appendStadiaApiKey(value, normalizedApiKey);
51
62
  }
52
- return appendStadiaApiKey(DEFAULT_STADIA_STYLE_URL, stadiaApiKey);
63
+ if (!normalizedApiKey) {
64
+ return MAPLIBRE_DEFAULT_STYLE_URL;
65
+ }
66
+ return appendStadiaApiKey(DEFAULT_STADIA_STYLE_URL, normalizedApiKey);
53
67
  }
54
68
 
55
69
  export { DEFAULT_STADIA_STYLE_URL, MAPLIBRE_DEFAULT_STYLE_URL, appendStadiaApiKey, getMapLibreStyleUrl };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/getMapLibreStyleUrl.ts"],"names":[],"mappings":";AAAA,IAAM,0BAAA,GAA6B;AACnC,IAAM,wBAAA,GACJ;AAEF,IAAM,SAAA,GAAoC;AAAA,EACxC,OAAA,EAAS,wBAAA;AAAA,EACT,gBAAA,EAAkB,yDAAA;AAAA,EAClB,qBAAA,EAAuB,8DAAA;AAAA,EACvB,kBAAA,EAAoB,0BAAA;AAAA,EACpB,YAAA,EAAc,qDAAA;AAAA,EACd,iBAAA,EAAmB,mDAAA;AAAA,EACnB,cAAA,EAAgB,uDAAA;AAAA,EAChB,gBAAA,EAAkB,yDAAA;AAAA,EAClB,mBAAA,EAAqB;AACvB,CAAA;AAEA,IAAM,cAAA,GAAiB,eAAA;AAIvB,SAAS,gBAAgB,GAAA,EAAsB;AAC7C,EAAA,IAAI;AACF,IAAA,MAAM,MAAA,GAAS,IAAI,GAAA,CAAI,GAAG,CAAA;AAC1B,IAAA,OAAO,OAAO,QAAA,KAAa,sBAAA;AAAA,EAC7B,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,KAAA;AAAA,EACT;AACF;AAEA,SAAS,mBAAmB,YAAA,EAA4B;AACtD,EAAA,IAAI,CAAC,YAAA,CAAa,IAAA,EAAK,EAAG;AACxB,IAAA,MAAM,IAAI,KAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AACF;AAEO,SAAS,kBAAA,CACd,UACA,YAAA,EACQ;AACR,EAAA,IAAI,CAAC,eAAA,CAAgB,QAAQ,CAAA,EAAG;AAC9B,IAAA,OAAO,QAAA;AAAA,EACT;AAEA,EAAA,kBAAA,CAAmB,YAAY,CAAA;AAE/B,EAAA,MAAM,MAAA,GAAS,IAAI,GAAA,CAAI,QAAQ,CAAA;AAC/B,EAAA,IAAI,CAAC,MAAA,CAAO,YAAA,CAAa,GAAA,CAAI,SAAS,CAAA,EAAG;AACvC,IAAA,MAAA,CAAO,YAAA,CAAa,GAAA,CAAI,SAAA,EAAW,YAAY,CAAA;AAAA,EACjD;AAEA,EAAA,OAAO,OAAO,QAAA,EAAS;AACzB;AAEO,SAAS,mBAAA,CACd,OACA,YAAA,EACQ;AACR,EAAA,IAAI,CAAC,KAAA,IAAS,OAAO,KAAA,KAAU,QAAA,EAAU;AACvC,IAAA,OAAO,kBAAA,CAAmB,0BAA0B,YAAY,CAAA;AAAA,EAClE;AAEA,EAAA,IAAI,SAAA,CAAU,KAAK,CAAA,EAAG;AACpB,IAAA,OAAO,kBAAA,CAAmB,SAAA,CAAU,KAAK,CAAA,EAAG,YAAY,CAAA;AAAA,EAC1D;AAEA,EAAA,IAAI,cAAA,CAAe,IAAA,CAAK,KAAK,CAAA,EAAG;AAC9B,IAAA,OAAO,kBAAA,CAAmB,OAAO,YAAY,CAAA;AAAA,EAC/C;AAEA,EAAA,OAAO,kBAAA,CAAmB,0BAA0B,YAAY,CAAA;AAClE","file":"getMapLibreStyleUrl.js","sourcesContent":["const MAPLIBRE_DEFAULT_STYLE_URL = \"https://demotiles.maplibre.org/style.json\";\nconst DEFAULT_STADIA_STYLE_URL =\n \"https://tiles.stadiamaps.com/styles/osm_bright.json\";\n\nconst STYLE_MAP: Record<string, string> = {\n default: DEFAULT_STADIA_STYLE_URL,\n \"alidade-smooth\": \"https://tiles.stadiamaps.com/styles/alidade_smooth.json\",\n \"alidade-smooth-dark\": \"https://tiles.stadiamaps.com/styles/alidade_smooth_dark.json\",\n \"maplibre-default\": MAPLIBRE_DEFAULT_STYLE_URL,\n \"osm-bright\": \"https://tiles.stadiamaps.com/styles/osm_bright.json\",\n \"stadia-outdoors\": \"https://tiles.stadiamaps.com/styles/outdoors.json\",\n \"stamen-toner\": \"https://tiles.stadiamaps.com/styles/stamen_toner.json\",\n \"stamen-terrain\": \"https://tiles.stadiamaps.com/styles/stamen_terrain.json\",\n \"stamen-watercolor\": \"https://tiles.stadiamaps.com/styles/stamen_watercolor.json\"\n};\n\nconst HTTP_URL_REGEX = /^https?:\\/\\//i;\n\nexport type MapLibreBuiltInStyle = keyof typeof STYLE_MAP;\n\nfunction isStadiaMapsUrl(url: string): boolean {\n try {\n const parsed = new URL(url);\n return parsed.hostname === \"tiles.stadiamaps.com\";\n } catch {\n return false;\n }\n}\n\nfunction assertStadiaApiKey(stadiaApiKey: string): void {\n if (!stadiaApiKey.trim()) {\n throw new Error(\n \"A non-empty stadiaApiKey is required for Stadia Maps style URLs.\"\n );\n }\n}\n\nexport function appendStadiaApiKey(\n styleUrl: string,\n stadiaApiKey: string\n): string {\n if (!isStadiaMapsUrl(styleUrl)) {\n return styleUrl;\n }\n\n assertStadiaApiKey(stadiaApiKey);\n\n const parsed = new URL(styleUrl);\n if (!parsed.searchParams.has(\"api_key\")) {\n parsed.searchParams.set(\"api_key\", stadiaApiKey);\n }\n\n return parsed.toString();\n}\n\nexport function getMapLibreStyleUrl(\n value: string | undefined,\n stadiaApiKey: string\n): string {\n if (!value || typeof value !== \"string\") {\n return appendStadiaApiKey(DEFAULT_STADIA_STYLE_URL, stadiaApiKey);\n }\n\n if (STYLE_MAP[value]) {\n return appendStadiaApiKey(STYLE_MAP[value], stadiaApiKey);\n }\n\n if (HTTP_URL_REGEX.test(value)) {\n return appendStadiaApiKey(value, stadiaApiKey);\n }\n\n return appendStadiaApiKey(DEFAULT_STADIA_STYLE_URL, stadiaApiKey);\n}\n\nexport { DEFAULT_STADIA_STYLE_URL, MAPLIBRE_DEFAULT_STYLE_URL };\n"]}
1
+ {"version":3,"sources":["../../src/utils/getMapLibreStyleUrl.ts"],"names":[],"mappings":";AAAA,IAAM,0BAAA,GACJ;AACF,IAAM,wBAAA,GACJ;AAEF,IAAM,SAAA,GAAoC;AAAA,EACxC,OAAA,EAAS,wBAAA;AAAA,EACT,gBAAA,EAAkB,yDAAA;AAAA,EAClB,qBAAA,EAAuB,8DAAA;AAAA,EACvB,kBAAA,EAAoB,0BAAA;AAAA,EACpB,YAAA,EAAc,qDAAA;AAAA,EACd,iBAAA,EAAmB,mDAAA;AAAA,EACnB,cAAA,EAAgB,uDAAA;AAAA,EAChB,gBAAA,EAAkB,yDAAA;AAAA,EAClB,mBAAA,EAAqB;AACvB,CAAA;AAEA,IAAM,cAAA,GAAiB,eAAA;AAIvB,SAAS,gBAAgB,GAAA,EAAsB;AAC7C,EAAA,IAAI;AACF,IAAA,MAAM,MAAA,GAAS,IAAI,GAAA,CAAI,GAAG,CAAA;AAC1B,IAAA,OAAO,OAAO,QAAA,KAAa,sBAAA;AAAA,EAC7B,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,KAAA;AAAA,EACT;AACF;AAEA,SAAS,mBAAmB,YAAA,EAA4B;AACtD,EAAA,IAAI,CAAC,YAAA,CAAa,IAAA,EAAK,EAAG;AACxB,IAAA,MAAM,IAAI,KAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AACF;AAEO,SAAS,kBAAA,CACd,UACA,YAAA,EACQ;AACR,EAAA,IAAI,CAAC,eAAA,CAAgB,QAAQ,CAAA,EAAG;AAC9B,IAAA,OAAO,QAAA;AAAA,EACT;AAEA,EAAA,kBAAA,CAAmB,YAAY,CAAA;AAE/B,EAAA,MAAM,MAAA,GAAS,IAAI,GAAA,CAAI,QAAQ,CAAA;AAC/B,EAAA,IAAI,CAAC,MAAA,CAAO,YAAA,CAAa,GAAA,CAAI,SAAS,CAAA,EAAG;AACvC,IAAA,MAAA,CAAO,YAAA,CAAa,GAAA,CAAI,SAAA,EAAW,YAAY,CAAA;AAAA,EACjD;AAEA,EAAA,OAAO,OAAO,QAAA,EAAS;AACzB;AAEO,SAAS,mBAAA,CACd,OACA,YAAA,EACQ;AACR,EAAA,MAAM,gBAAA,GAAmB,aAAa,IAAA,EAAK;AAE3C,EAAA,IAAI,CAAC,KAAA,IAAS,OAAO,KAAA,KAAU,QAAA,EAAU;AACvC,IAAA,IAAI,CAAC,gBAAA,EAAkB;AACrB,MAAA,OAAO,0BAAA;AAAA,IACT;AACA,IAAA,OAAO,kBAAA,CAAmB,0BAA0B,gBAAgB,CAAA;AAAA,EACtE;AAEA,EAAA,IAAI,SAAA,CAAU,KAAK,CAAA,EAAG;AACpB,IAAA,MAAM,cAAA,GAAiB,UAAU,KAAK,CAAA;AACtC,IAAA,IAAI,eAAA,CAAgB,cAAc,CAAA,IAAK,CAAC,gBAAA,EAAkB;AACxD,MAAA,OAAO,0BAAA;AAAA,IACT;AACA,IAAA,OAAO,kBAAA,CAAmB,gBAAgB,gBAAgB,CAAA;AAAA,EAC5D;AAEA,EAAA,IAAI,cAAA,CAAe,IAAA,CAAK,KAAK,CAAA,EAAG;AAC9B,IAAA,IAAI,eAAA,CAAgB,KAAK,CAAA,IAAK,CAAC,gBAAA,EAAkB;AAC/C,MAAA,OAAO,0BAAA;AAAA,IACT;AACA,IAAA,OAAO,kBAAA,CAAmB,OAAO,gBAAgB,CAAA;AAAA,EACnD;AAEA,EAAA,IAAI,CAAC,gBAAA,EAAkB;AACrB,IAAA,OAAO,0BAAA;AAAA,EACT;AAEA,EAAA,OAAO,kBAAA,CAAmB,0BAA0B,gBAAgB,CAAA;AACtE","file":"getMapLibreStyleUrl.js","sourcesContent":["const MAPLIBRE_DEFAULT_STYLE_URL =\n \"https://basemaps.cartocdn.com/gl/positron-gl-style/style.json\";\nconst DEFAULT_STADIA_STYLE_URL =\n \"https://tiles.stadiamaps.com/styles/osm_bright.json\";\n\nconst STYLE_MAP: Record<string, string> = {\n default: DEFAULT_STADIA_STYLE_URL,\n \"alidade-smooth\": \"https://tiles.stadiamaps.com/styles/alidade_smooth.json\",\n \"alidade-smooth-dark\": \"https://tiles.stadiamaps.com/styles/alidade_smooth_dark.json\",\n \"maplibre-default\": MAPLIBRE_DEFAULT_STYLE_URL,\n \"osm-bright\": \"https://tiles.stadiamaps.com/styles/osm_bright.json\",\n \"stadia-outdoors\": \"https://tiles.stadiamaps.com/styles/outdoors.json\",\n \"stamen-toner\": \"https://tiles.stadiamaps.com/styles/stamen_toner.json\",\n \"stamen-terrain\": \"https://tiles.stadiamaps.com/styles/stamen_terrain.json\",\n \"stamen-watercolor\": \"https://tiles.stadiamaps.com/styles/stamen_watercolor.json\"\n};\n\nconst HTTP_URL_REGEX = /^https?:\\/\\//i;\n\nexport type MapLibreBuiltInStyle = keyof typeof STYLE_MAP;\n\nfunction isStadiaMapsUrl(url: string): boolean {\n try {\n const parsed = new URL(url);\n return parsed.hostname === \"tiles.stadiamaps.com\";\n } catch {\n return false;\n }\n}\n\nfunction assertStadiaApiKey(stadiaApiKey: string): void {\n if (!stadiaApiKey.trim()) {\n throw new Error(\n \"A non-empty stadiaApiKey is required for Stadia Maps style URLs.\"\n );\n }\n}\n\nexport function appendStadiaApiKey(\n styleUrl: string,\n stadiaApiKey: string\n): string {\n if (!isStadiaMapsUrl(styleUrl)) {\n return styleUrl;\n }\n\n assertStadiaApiKey(stadiaApiKey);\n\n const parsed = new URL(styleUrl);\n if (!parsed.searchParams.has(\"api_key\")) {\n parsed.searchParams.set(\"api_key\", stadiaApiKey);\n }\n\n return parsed.toString();\n}\n\nexport function getMapLibreStyleUrl(\n value: string | undefined,\n stadiaApiKey: string\n): string {\n const normalizedApiKey = stadiaApiKey.trim();\n\n if (!value || typeof value !== \"string\") {\n if (!normalizedApiKey) {\n return MAPLIBRE_DEFAULT_STYLE_URL;\n }\n return appendStadiaApiKey(DEFAULT_STADIA_STYLE_URL, normalizedApiKey);\n }\n\n if (STYLE_MAP[value]) {\n const mappedStyleUrl = STYLE_MAP[value];\n if (isStadiaMapsUrl(mappedStyleUrl) && !normalizedApiKey) {\n return MAPLIBRE_DEFAULT_STYLE_URL;\n }\n return appendStadiaApiKey(mappedStyleUrl, normalizedApiKey);\n }\n\n if (HTTP_URL_REGEX.test(value)) {\n if (isStadiaMapsUrl(value) && !normalizedApiKey) {\n return MAPLIBRE_DEFAULT_STYLE_URL;\n }\n return appendStadiaApiKey(value, normalizedApiKey);\n }\n\n if (!normalizedApiKey) {\n return MAPLIBRE_DEFAULT_STYLE_URL;\n }\n\n return appendStadiaApiKey(DEFAULT_STADIA_STYLE_URL, normalizedApiKey);\n}\n\nexport { DEFAULT_STADIA_STYLE_URL, MAPLIBRE_DEFAULT_STYLE_URL };\n"]}
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  // src/utils/getMapLibreStyleUrl.ts
4
- var MAPLIBRE_DEFAULT_STYLE_URL = "https://demotiles.maplibre.org/style.json";
4
+ var MAPLIBRE_DEFAULT_STYLE_URL = "https://basemaps.cartocdn.com/gl/positron-gl-style/style.json";
5
5
  var DEFAULT_STADIA_STYLE_URL = "https://tiles.stadiamaps.com/styles/osm_bright.json";
6
6
  var STYLE_MAP = {
7
7
  default: DEFAULT_STADIA_STYLE_URL,
@@ -42,16 +42,30 @@ function appendStadiaApiKey(styleUrl, stadiaApiKey) {
42
42
  return parsed.toString();
43
43
  }
44
44
  function getMapLibreStyleUrl(value, stadiaApiKey) {
45
+ const normalizedApiKey = stadiaApiKey.trim();
45
46
  if (!value || typeof value !== "string") {
46
- return appendStadiaApiKey(DEFAULT_STADIA_STYLE_URL, stadiaApiKey);
47
+ if (!normalizedApiKey) {
48
+ return MAPLIBRE_DEFAULT_STYLE_URL;
49
+ }
50
+ return appendStadiaApiKey(DEFAULT_STADIA_STYLE_URL, normalizedApiKey);
47
51
  }
48
52
  if (STYLE_MAP[value]) {
49
- return appendStadiaApiKey(STYLE_MAP[value], stadiaApiKey);
53
+ const mappedStyleUrl = STYLE_MAP[value];
54
+ if (isStadiaMapsUrl(mappedStyleUrl) && !normalizedApiKey) {
55
+ return MAPLIBRE_DEFAULT_STYLE_URL;
56
+ }
57
+ return appendStadiaApiKey(mappedStyleUrl, normalizedApiKey);
50
58
  }
51
59
  if (HTTP_URL_REGEX.test(value)) {
52
- return appendStadiaApiKey(value, stadiaApiKey);
60
+ if (isStadiaMapsUrl(value) && !normalizedApiKey) {
61
+ return MAPLIBRE_DEFAULT_STYLE_URL;
62
+ }
63
+ return appendStadiaApiKey(value, normalizedApiKey);
53
64
  }
54
- return appendStadiaApiKey(DEFAULT_STADIA_STYLE_URL, stadiaApiKey);
65
+ if (!normalizedApiKey) {
66
+ return MAPLIBRE_DEFAULT_STYLE_URL;
67
+ }
68
+ return appendStadiaApiKey(DEFAULT_STADIA_STYLE_URL, normalizedApiKey);
55
69
  }
56
70
 
57
71
  // src/utils/googleMapLinks.ts
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/getMapLibreStyleUrl.ts","../../src/utils/googleMapLinks.ts"],"names":[],"mappings":";;;AAAA,IAAM,0BAAA,GAA6B;AACnC,IAAM,wBAAA,GACJ;AAEF,IAAM,SAAA,GAAoC;AAAA,EACxC,OAAA,EAAS,wBAAA;AAAA,EACT,gBAAA,EAAkB,yDAAA;AAAA,EAClB,qBAAA,EAAuB,8DAAA;AAAA,EACvB,kBAAA,EAAoB,0BAAA;AAAA,EACpB,YAAA,EAAc,qDAAA;AAAA,EACd,iBAAA,EAAmB,mDAAA;AAAA,EACnB,cAAA,EAAgB,uDAAA;AAAA,EAChB,gBAAA,EAAkB,yDAAA;AAAA,EAClB,mBAAA,EAAqB;AACvB,CAAA;AAEA,IAAM,cAAA,GAAiB,eAAA;AAIvB,SAAS,gBAAgB,GAAA,EAAsB;AAC7C,EAAA,IAAI;AACF,IAAA,MAAM,MAAA,GAAS,IAAI,GAAA,CAAI,GAAG,CAAA;AAC1B,IAAA,OAAO,OAAO,QAAA,KAAa,sBAAA;AAAA,EAC7B,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,KAAA;AAAA,EACT;AACF;AAEA,SAAS,mBAAmB,YAAA,EAA4B;AACtD,EAAA,IAAI,CAAC,YAAA,CAAa,IAAA,EAAK,EAAG;AACxB,IAAA,MAAM,IAAI,KAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AACF;AAEO,SAAS,kBAAA,CACd,UACA,YAAA,EACQ;AACR,EAAA,IAAI,CAAC,eAAA,CAAgB,QAAQ,CAAA,EAAG;AAC9B,IAAA,OAAO,QAAA;AAAA,EACT;AAEA,EAAA,kBAAA,CAAmB,YAAY,CAAA;AAE/B,EAAA,MAAM,MAAA,GAAS,IAAI,GAAA,CAAI,QAAQ,CAAA;AAC/B,EAAA,IAAI,CAAC,MAAA,CAAO,YAAA,CAAa,GAAA,CAAI,SAAS,CAAA,EAAG;AACvC,IAAA,MAAA,CAAO,YAAA,CAAa,GAAA,CAAI,SAAA,EAAW,YAAY,CAAA;AAAA,EACjD;AAEA,EAAA,OAAO,OAAO,QAAA,EAAS;AACzB;AAEO,SAAS,mBAAA,CACd,OACA,YAAA,EACQ;AACR,EAAA,IAAI,CAAC,KAAA,IAAS,OAAO,KAAA,KAAU,QAAA,EAAU;AACvC,IAAA,OAAO,kBAAA,CAAmB,0BAA0B,YAAY,CAAA;AAAA,EAClE;AAEA,EAAA,IAAI,SAAA,CAAU,KAAK,CAAA,EAAG;AACpB,IAAA,OAAO,kBAAA,CAAmB,SAAA,CAAU,KAAK,CAAA,EAAG,YAAY,CAAA;AAAA,EAC1D;AAEA,EAAA,IAAI,cAAA,CAAe,IAAA,CAAK,KAAK,CAAA,EAAG;AAC9B,IAAA,OAAO,kBAAA,CAAmB,OAAO,YAAY,CAAA;AAAA,EAC/C;AAEA,EAAA,OAAO,kBAAA,CAAmB,0BAA0B,YAAY,CAAA;AAClE;;;ACxEO,SAAS,qBAAA,CACd,QAAA,EACA,SAAA,EACA,IAAA,GAAO,EAAA,EACC;AACR,EAAA,OAAO,CAAA,6BAAA,EAAgC,QAAQ,CAAA,CAAA,EAAI,SAAS,IAAI,IAAI,CAAA,CAAA,CAAA;AACtE;AAEO,SAAS,4BAAA,CACd,UACA,SAAA,EACQ;AACR,EAAA,OAAO,CAAA,mDAAA,EAAsD,QAAQ,CAAA,CAAA,EAAI,SAAS,CAAA,CAAA;AACpF","file":"index.cjs","sourcesContent":["const MAPLIBRE_DEFAULT_STYLE_URL = \"https://demotiles.maplibre.org/style.json\";\nconst DEFAULT_STADIA_STYLE_URL =\n \"https://tiles.stadiamaps.com/styles/osm_bright.json\";\n\nconst STYLE_MAP: Record<string, string> = {\n default: DEFAULT_STADIA_STYLE_URL,\n \"alidade-smooth\": \"https://tiles.stadiamaps.com/styles/alidade_smooth.json\",\n \"alidade-smooth-dark\": \"https://tiles.stadiamaps.com/styles/alidade_smooth_dark.json\",\n \"maplibre-default\": MAPLIBRE_DEFAULT_STYLE_URL,\n \"osm-bright\": \"https://tiles.stadiamaps.com/styles/osm_bright.json\",\n \"stadia-outdoors\": \"https://tiles.stadiamaps.com/styles/outdoors.json\",\n \"stamen-toner\": \"https://tiles.stadiamaps.com/styles/stamen_toner.json\",\n \"stamen-terrain\": \"https://tiles.stadiamaps.com/styles/stamen_terrain.json\",\n \"stamen-watercolor\": \"https://tiles.stadiamaps.com/styles/stamen_watercolor.json\"\n};\n\nconst HTTP_URL_REGEX = /^https?:\\/\\//i;\n\nexport type MapLibreBuiltInStyle = keyof typeof STYLE_MAP;\n\nfunction isStadiaMapsUrl(url: string): boolean {\n try {\n const parsed = new URL(url);\n return parsed.hostname === \"tiles.stadiamaps.com\";\n } catch {\n return false;\n }\n}\n\nfunction assertStadiaApiKey(stadiaApiKey: string): void {\n if (!stadiaApiKey.trim()) {\n throw new Error(\n \"A non-empty stadiaApiKey is required for Stadia Maps style URLs.\"\n );\n }\n}\n\nexport function appendStadiaApiKey(\n styleUrl: string,\n stadiaApiKey: string\n): string {\n if (!isStadiaMapsUrl(styleUrl)) {\n return styleUrl;\n }\n\n assertStadiaApiKey(stadiaApiKey);\n\n const parsed = new URL(styleUrl);\n if (!parsed.searchParams.has(\"api_key\")) {\n parsed.searchParams.set(\"api_key\", stadiaApiKey);\n }\n\n return parsed.toString();\n}\n\nexport function getMapLibreStyleUrl(\n value: string | undefined,\n stadiaApiKey: string\n): string {\n if (!value || typeof value !== \"string\") {\n return appendStadiaApiKey(DEFAULT_STADIA_STYLE_URL, stadiaApiKey);\n }\n\n if (STYLE_MAP[value]) {\n return appendStadiaApiKey(STYLE_MAP[value], stadiaApiKey);\n }\n\n if (HTTP_URL_REGEX.test(value)) {\n return appendStadiaApiKey(value, stadiaApiKey);\n }\n\n return appendStadiaApiKey(DEFAULT_STADIA_STYLE_URL, stadiaApiKey);\n}\n\nexport { DEFAULT_STADIA_STYLE_URL, MAPLIBRE_DEFAULT_STYLE_URL };\n","export function generateGoogleMapLink(\n latitude: number,\n longitude: number,\n zoom = 15\n): string {\n return `https://www.google.com/maps/@${latitude},${longitude},${zoom}z`;\n}\n\nexport function generateGoogleDirectionsLink(\n latitude: number,\n longitude: number\n): string {\n return `https://www.google.com/maps/dir/?api=1&destination=${latitude},${longitude}`;\n}\n"]}
1
+ {"version":3,"sources":["../../src/utils/getMapLibreStyleUrl.ts","../../src/utils/googleMapLinks.ts"],"names":[],"mappings":"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","file":"index.cjs","sourcesContent":["const MAPLIBRE_DEFAULT_STYLE_URL =\n \"https://basemaps.cartocdn.com/gl/positron-gl-style/style.json\";\nconst DEFAULT_STADIA_STYLE_URL =\n \"https://tiles.stadiamaps.com/styles/osm_bright.json\";\n\nconst STYLE_MAP: Record<string, string> = {\n default: DEFAULT_STADIA_STYLE_URL,\n \"alidade-smooth\": \"https://tiles.stadiamaps.com/styles/alidade_smooth.json\",\n \"alidade-smooth-dark\": \"https://tiles.stadiamaps.com/styles/alidade_smooth_dark.json\",\n \"maplibre-default\": MAPLIBRE_DEFAULT_STYLE_URL,\n \"osm-bright\": \"https://tiles.stadiamaps.com/styles/osm_bright.json\",\n \"stadia-outdoors\": \"https://tiles.stadiamaps.com/styles/outdoors.json\",\n \"stamen-toner\": \"https://tiles.stadiamaps.com/styles/stamen_toner.json\",\n \"stamen-terrain\": \"https://tiles.stadiamaps.com/styles/stamen_terrain.json\",\n \"stamen-watercolor\": \"https://tiles.stadiamaps.com/styles/stamen_watercolor.json\"\n};\n\nconst HTTP_URL_REGEX = /^https?:\\/\\//i;\n\nexport type MapLibreBuiltInStyle = keyof typeof STYLE_MAP;\n\nfunction isStadiaMapsUrl(url: string): boolean {\n try {\n const parsed = new URL(url);\n return parsed.hostname === \"tiles.stadiamaps.com\";\n } catch {\n return false;\n }\n}\n\nfunction assertStadiaApiKey(stadiaApiKey: string): void {\n if (!stadiaApiKey.trim()) {\n throw new Error(\n \"A non-empty stadiaApiKey is required for Stadia Maps style URLs.\"\n );\n }\n}\n\nexport function appendStadiaApiKey(\n styleUrl: string,\n stadiaApiKey: string\n): string {\n if (!isStadiaMapsUrl(styleUrl)) {\n return styleUrl;\n }\n\n assertStadiaApiKey(stadiaApiKey);\n\n const parsed = new URL(styleUrl);\n if (!parsed.searchParams.has(\"api_key\")) {\n parsed.searchParams.set(\"api_key\", stadiaApiKey);\n }\n\n return parsed.toString();\n}\n\nexport function getMapLibreStyleUrl(\n value: string | undefined,\n stadiaApiKey: string\n): string {\n const normalizedApiKey = stadiaApiKey.trim();\n\n if (!value || typeof value !== \"string\") {\n if (!normalizedApiKey) {\n return MAPLIBRE_DEFAULT_STYLE_URL;\n }\n return appendStadiaApiKey(DEFAULT_STADIA_STYLE_URL, normalizedApiKey);\n }\n\n if (STYLE_MAP[value]) {\n const mappedStyleUrl = STYLE_MAP[value];\n if (isStadiaMapsUrl(mappedStyleUrl) && !normalizedApiKey) {\n return MAPLIBRE_DEFAULT_STYLE_URL;\n }\n return appendStadiaApiKey(mappedStyleUrl, normalizedApiKey);\n }\n\n if (HTTP_URL_REGEX.test(value)) {\n if (isStadiaMapsUrl(value) && !normalizedApiKey) {\n return MAPLIBRE_DEFAULT_STYLE_URL;\n }\n return appendStadiaApiKey(value, normalizedApiKey);\n }\n\n if (!normalizedApiKey) {\n return MAPLIBRE_DEFAULT_STYLE_URL;\n }\n\n return appendStadiaApiKey(DEFAULT_STADIA_STYLE_URL, normalizedApiKey);\n}\n\nexport { DEFAULT_STADIA_STYLE_URL, MAPLIBRE_DEFAULT_STYLE_URL };\n","export function generateGoogleMapLink(\n latitude: number,\n longitude: number,\n zoom = 15\n): string {\n return `https://www.google.com/maps/@${latitude},${longitude},${zoom}z`;\n}\n\nexport function generateGoogleDirectionsLink(\n latitude: number,\n longitude: number\n): string {\n return `https://www.google.com/maps/dir/?api=1&destination=${latitude},${longitude}`;\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  // src/utils/getMapLibreStyleUrl.ts
2
- var MAPLIBRE_DEFAULT_STYLE_URL = "https://demotiles.maplibre.org/style.json";
2
+ var MAPLIBRE_DEFAULT_STYLE_URL = "https://basemaps.cartocdn.com/gl/positron-gl-style/style.json";
3
3
  var DEFAULT_STADIA_STYLE_URL = "https://tiles.stadiamaps.com/styles/osm_bright.json";
4
4
  var STYLE_MAP = {
5
5
  default: DEFAULT_STADIA_STYLE_URL,
@@ -40,16 +40,30 @@ function appendStadiaApiKey(styleUrl, stadiaApiKey) {
40
40
  return parsed.toString();
41
41
  }
42
42
  function getMapLibreStyleUrl(value, stadiaApiKey) {
43
+ const normalizedApiKey = stadiaApiKey.trim();
43
44
  if (!value || typeof value !== "string") {
44
- return appendStadiaApiKey(DEFAULT_STADIA_STYLE_URL, stadiaApiKey);
45
+ if (!normalizedApiKey) {
46
+ return MAPLIBRE_DEFAULT_STYLE_URL;
47
+ }
48
+ return appendStadiaApiKey(DEFAULT_STADIA_STYLE_URL, normalizedApiKey);
45
49
  }
46
50
  if (STYLE_MAP[value]) {
47
- return appendStadiaApiKey(STYLE_MAP[value], stadiaApiKey);
51
+ const mappedStyleUrl = STYLE_MAP[value];
52
+ if (isStadiaMapsUrl(mappedStyleUrl) && !normalizedApiKey) {
53
+ return MAPLIBRE_DEFAULT_STYLE_URL;
54
+ }
55
+ return appendStadiaApiKey(mappedStyleUrl, normalizedApiKey);
48
56
  }
49
57
  if (HTTP_URL_REGEX.test(value)) {
50
- return appendStadiaApiKey(value, stadiaApiKey);
58
+ if (isStadiaMapsUrl(value) && !normalizedApiKey) {
59
+ return MAPLIBRE_DEFAULT_STYLE_URL;
60
+ }
61
+ return appendStadiaApiKey(value, normalizedApiKey);
51
62
  }
52
- return appendStadiaApiKey(DEFAULT_STADIA_STYLE_URL, stadiaApiKey);
63
+ if (!normalizedApiKey) {
64
+ return MAPLIBRE_DEFAULT_STYLE_URL;
65
+ }
66
+ return appendStadiaApiKey(DEFAULT_STADIA_STYLE_URL, normalizedApiKey);
53
67
  }
54
68
 
55
69
  // src/utils/googleMapLinks.ts
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/getMapLibreStyleUrl.ts","../../src/utils/googleMapLinks.ts"],"names":[],"mappings":";AAAA,IAAM,0BAAA,GAA6B;AACnC,IAAM,wBAAA,GACJ;AAEF,IAAM,SAAA,GAAoC;AAAA,EACxC,OAAA,EAAS,wBAAA;AAAA,EACT,gBAAA,EAAkB,yDAAA;AAAA,EAClB,qBAAA,EAAuB,8DAAA;AAAA,EACvB,kBAAA,EAAoB,0BAAA;AAAA,EACpB,YAAA,EAAc,qDAAA;AAAA,EACd,iBAAA,EAAmB,mDAAA;AAAA,EACnB,cAAA,EAAgB,uDAAA;AAAA,EAChB,gBAAA,EAAkB,yDAAA;AAAA,EAClB,mBAAA,EAAqB;AACvB,CAAA;AAEA,IAAM,cAAA,GAAiB,eAAA;AAIvB,SAAS,gBAAgB,GAAA,EAAsB;AAC7C,EAAA,IAAI;AACF,IAAA,MAAM,MAAA,GAAS,IAAI,GAAA,CAAI,GAAG,CAAA;AAC1B,IAAA,OAAO,OAAO,QAAA,KAAa,sBAAA;AAAA,EAC7B,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,KAAA;AAAA,EACT;AACF;AAEA,SAAS,mBAAmB,YAAA,EAA4B;AACtD,EAAA,IAAI,CAAC,YAAA,CAAa,IAAA,EAAK,EAAG;AACxB,IAAA,MAAM,IAAI,KAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AACF;AAEO,SAAS,kBAAA,CACd,UACA,YAAA,EACQ;AACR,EAAA,IAAI,CAAC,eAAA,CAAgB,QAAQ,CAAA,EAAG;AAC9B,IAAA,OAAO,QAAA;AAAA,EACT;AAEA,EAAA,kBAAA,CAAmB,YAAY,CAAA;AAE/B,EAAA,MAAM,MAAA,GAAS,IAAI,GAAA,CAAI,QAAQ,CAAA;AAC/B,EAAA,IAAI,CAAC,MAAA,CAAO,YAAA,CAAa,GAAA,CAAI,SAAS,CAAA,EAAG;AACvC,IAAA,MAAA,CAAO,YAAA,CAAa,GAAA,CAAI,SAAA,EAAW,YAAY,CAAA;AAAA,EACjD;AAEA,EAAA,OAAO,OAAO,QAAA,EAAS;AACzB;AAEO,SAAS,mBAAA,CACd,OACA,YAAA,EACQ;AACR,EAAA,IAAI,CAAC,KAAA,IAAS,OAAO,KAAA,KAAU,QAAA,EAAU;AACvC,IAAA,OAAO,kBAAA,CAAmB,0BAA0B,YAAY,CAAA;AAAA,EAClE;AAEA,EAAA,IAAI,SAAA,CAAU,KAAK,CAAA,EAAG;AACpB,IAAA,OAAO,kBAAA,CAAmB,SAAA,CAAU,KAAK,CAAA,EAAG,YAAY,CAAA;AAAA,EAC1D;AAEA,EAAA,IAAI,cAAA,CAAe,IAAA,CAAK,KAAK,CAAA,EAAG;AAC9B,IAAA,OAAO,kBAAA,CAAmB,OAAO,YAAY,CAAA;AAAA,EAC/C;AAEA,EAAA,OAAO,kBAAA,CAAmB,0BAA0B,YAAY,CAAA;AAClE;;;ACxEO,SAAS,qBAAA,CACd,QAAA,EACA,SAAA,EACA,IAAA,GAAO,EAAA,EACC;AACR,EAAA,OAAO,CAAA,6BAAA,EAAgC,QAAQ,CAAA,CAAA,EAAI,SAAS,IAAI,IAAI,CAAA,CAAA,CAAA;AACtE;AAEO,SAAS,4BAAA,CACd,UACA,SAAA,EACQ;AACR,EAAA,OAAO,CAAA,mDAAA,EAAsD,QAAQ,CAAA,CAAA,EAAI,SAAS,CAAA,CAAA;AACpF","file":"index.js","sourcesContent":["const MAPLIBRE_DEFAULT_STYLE_URL = \"https://demotiles.maplibre.org/style.json\";\nconst DEFAULT_STADIA_STYLE_URL =\n \"https://tiles.stadiamaps.com/styles/osm_bright.json\";\n\nconst STYLE_MAP: Record<string, string> = {\n default: DEFAULT_STADIA_STYLE_URL,\n \"alidade-smooth\": \"https://tiles.stadiamaps.com/styles/alidade_smooth.json\",\n \"alidade-smooth-dark\": \"https://tiles.stadiamaps.com/styles/alidade_smooth_dark.json\",\n \"maplibre-default\": MAPLIBRE_DEFAULT_STYLE_URL,\n \"osm-bright\": \"https://tiles.stadiamaps.com/styles/osm_bright.json\",\n \"stadia-outdoors\": \"https://tiles.stadiamaps.com/styles/outdoors.json\",\n \"stamen-toner\": \"https://tiles.stadiamaps.com/styles/stamen_toner.json\",\n \"stamen-terrain\": \"https://tiles.stadiamaps.com/styles/stamen_terrain.json\",\n \"stamen-watercolor\": \"https://tiles.stadiamaps.com/styles/stamen_watercolor.json\"\n};\n\nconst HTTP_URL_REGEX = /^https?:\\/\\//i;\n\nexport type MapLibreBuiltInStyle = keyof typeof STYLE_MAP;\n\nfunction isStadiaMapsUrl(url: string): boolean {\n try {\n const parsed = new URL(url);\n return parsed.hostname === \"tiles.stadiamaps.com\";\n } catch {\n return false;\n }\n}\n\nfunction assertStadiaApiKey(stadiaApiKey: string): void {\n if (!stadiaApiKey.trim()) {\n throw new Error(\n \"A non-empty stadiaApiKey is required for Stadia Maps style URLs.\"\n );\n }\n}\n\nexport function appendStadiaApiKey(\n styleUrl: string,\n stadiaApiKey: string\n): string {\n if (!isStadiaMapsUrl(styleUrl)) {\n return styleUrl;\n }\n\n assertStadiaApiKey(stadiaApiKey);\n\n const parsed = new URL(styleUrl);\n if (!parsed.searchParams.has(\"api_key\")) {\n parsed.searchParams.set(\"api_key\", stadiaApiKey);\n }\n\n return parsed.toString();\n}\n\nexport function getMapLibreStyleUrl(\n value: string | undefined,\n stadiaApiKey: string\n): string {\n if (!value || typeof value !== \"string\") {\n return appendStadiaApiKey(DEFAULT_STADIA_STYLE_URL, stadiaApiKey);\n }\n\n if (STYLE_MAP[value]) {\n return appendStadiaApiKey(STYLE_MAP[value], stadiaApiKey);\n }\n\n if (HTTP_URL_REGEX.test(value)) {\n return appendStadiaApiKey(value, stadiaApiKey);\n }\n\n return appendStadiaApiKey(DEFAULT_STADIA_STYLE_URL, stadiaApiKey);\n}\n\nexport { DEFAULT_STADIA_STYLE_URL, MAPLIBRE_DEFAULT_STYLE_URL };\n","export function generateGoogleMapLink(\n latitude: number,\n longitude: number,\n zoom = 15\n): string {\n return `https://www.google.com/maps/@${latitude},${longitude},${zoom}z`;\n}\n\nexport function generateGoogleDirectionsLink(\n latitude: number,\n longitude: number\n): string {\n return `https://www.google.com/maps/dir/?api=1&destination=${latitude},${longitude}`;\n}\n"]}
1
+ {"version":3,"sources":["../../src/utils/getMapLibreStyleUrl.ts","../../src/utils/googleMapLinks.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["const MAPLIBRE_DEFAULT_STYLE_URL =\n \"https://basemaps.cartocdn.com/gl/positron-gl-style/style.json\";\nconst DEFAULT_STADIA_STYLE_URL =\n \"https://tiles.stadiamaps.com/styles/osm_bright.json\";\n\nconst STYLE_MAP: Record<string, string> = {\n default: DEFAULT_STADIA_STYLE_URL,\n \"alidade-smooth\": \"https://tiles.stadiamaps.com/styles/alidade_smooth.json\",\n \"alidade-smooth-dark\": \"https://tiles.stadiamaps.com/styles/alidade_smooth_dark.json\",\n \"maplibre-default\": MAPLIBRE_DEFAULT_STYLE_URL,\n \"osm-bright\": \"https://tiles.stadiamaps.com/styles/osm_bright.json\",\n \"stadia-outdoors\": \"https://tiles.stadiamaps.com/styles/outdoors.json\",\n \"stamen-toner\": \"https://tiles.stadiamaps.com/styles/stamen_toner.json\",\n \"stamen-terrain\": \"https://tiles.stadiamaps.com/styles/stamen_terrain.json\",\n \"stamen-watercolor\": \"https://tiles.stadiamaps.com/styles/stamen_watercolor.json\"\n};\n\nconst HTTP_URL_REGEX = /^https?:\\/\\//i;\n\nexport type MapLibreBuiltInStyle = keyof typeof STYLE_MAP;\n\nfunction isStadiaMapsUrl(url: string): boolean {\n try {\n const parsed = new URL(url);\n return parsed.hostname === \"tiles.stadiamaps.com\";\n } catch {\n return false;\n }\n}\n\nfunction assertStadiaApiKey(stadiaApiKey: string): void {\n if (!stadiaApiKey.trim()) {\n throw new Error(\n \"A non-empty stadiaApiKey is required for Stadia Maps style URLs.\"\n );\n }\n}\n\nexport function appendStadiaApiKey(\n styleUrl: string,\n stadiaApiKey: string\n): string {\n if (!isStadiaMapsUrl(styleUrl)) {\n return styleUrl;\n }\n\n assertStadiaApiKey(stadiaApiKey);\n\n const parsed = new URL(styleUrl);\n if (!parsed.searchParams.has(\"api_key\")) {\n parsed.searchParams.set(\"api_key\", stadiaApiKey);\n }\n\n return parsed.toString();\n}\n\nexport function getMapLibreStyleUrl(\n value: string | undefined,\n stadiaApiKey: string\n): string {\n const normalizedApiKey = stadiaApiKey.trim();\n\n if (!value || typeof value !== \"string\") {\n if (!normalizedApiKey) {\n return MAPLIBRE_DEFAULT_STYLE_URL;\n }\n return appendStadiaApiKey(DEFAULT_STADIA_STYLE_URL, normalizedApiKey);\n }\n\n if (STYLE_MAP[value]) {\n const mappedStyleUrl = STYLE_MAP[value];\n if (isStadiaMapsUrl(mappedStyleUrl) && !normalizedApiKey) {\n return MAPLIBRE_DEFAULT_STYLE_URL;\n }\n return appendStadiaApiKey(mappedStyleUrl, normalizedApiKey);\n }\n\n if (HTTP_URL_REGEX.test(value)) {\n if (isStadiaMapsUrl(value) && !normalizedApiKey) {\n return MAPLIBRE_DEFAULT_STYLE_URL;\n }\n return appendStadiaApiKey(value, normalizedApiKey);\n }\n\n if (!normalizedApiKey) {\n return MAPLIBRE_DEFAULT_STYLE_URL;\n }\n\n return appendStadiaApiKey(DEFAULT_STADIA_STYLE_URL, normalizedApiKey);\n}\n\nexport { DEFAULT_STADIA_STYLE_URL, MAPLIBRE_DEFAULT_STYLE_URL };\n","export function generateGoogleMapLink(\n latitude: number,\n longitude: number,\n zoom = 15\n): string {\n return `https://www.google.com/maps/@${latitude},${longitude},${zoom}z`;\n}\n\nexport function generateGoogleDirectionsLink(\n latitude: number,\n longitude: number\n): string {\n return `https://www.google.com/maps/dir/?api=1&destination=${latitude},${longitude}`;\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@page-speed/maps",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "Performance-optimized MapLibre React components and style utilities for DashTrack.",
5
5
  "keywords": [
6
6
  "react",