@basemaps/lambda-tiler 6.32.1 → 6.34.0

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 (95) hide show
  1. package/CHANGELOG.md +49 -0
  2. package/build/__tests__/xyz.util.d.ts +1 -1
  3. package/build/__tests__/xyz.util.d.ts.map +1 -1
  4. package/build/__tests__/xyz.util.js +2 -2
  5. package/build/__tests__/xyz.util.js.map +1 -1
  6. package/build/arcgis/__tests__/arcgis.style.json.test.d.ts +2 -0
  7. package/build/arcgis/__tests__/arcgis.style.json.test.d.ts.map +1 -0
  8. package/build/arcgis/__tests__/arcgis.style.json.test.js +128 -0
  9. package/build/arcgis/__tests__/arcgis.style.json.test.js.map +1 -0
  10. package/build/arcgis/__tests__/vector.tiler.server.test.d.ts +2 -0
  11. package/build/arcgis/__tests__/vector.tiler.server.test.d.ts.map +1 -0
  12. package/build/arcgis/__tests__/vector.tiler.server.test.js +47 -0
  13. package/build/arcgis/__tests__/vector.tiler.server.test.js.map +1 -0
  14. package/build/arcgis/arcgis.info.d.ts +3 -0
  15. package/build/arcgis/arcgis.info.d.ts.map +1 -0
  16. package/build/arcgis/arcgis.info.js +25 -0
  17. package/build/arcgis/arcgis.info.js.map +1 -0
  18. package/build/arcgis/arcgis.style.json.d.ts +9 -0
  19. package/build/arcgis/arcgis.style.json.d.ts.map +1 -0
  20. package/build/arcgis/arcgis.style.json.js +73 -0
  21. package/build/arcgis/arcgis.style.json.js.map +1 -0
  22. package/build/arcgis/vector.tile.server.d.ts +8 -0
  23. package/build/arcgis/vector.tile.server.d.ts.map +1 -0
  24. package/build/arcgis/vector.tile.server.js +71 -0
  25. package/build/arcgis/vector.tile.server.js.map +1 -0
  26. package/build/index.d.ts.map +1 -1
  27. package/build/index.js +22 -8
  28. package/build/index.js.map +1 -1
  29. package/build/routes/__tests__/fonts.test.js +14 -26
  30. package/build/routes/__tests__/fonts.test.js.map +1 -1
  31. package/build/routes/__tests__/sprites.test.js +7 -1
  32. package/build/routes/__tests__/sprites.test.js.map +1 -1
  33. package/build/routes/__tests__/xyz.test.js +1 -2
  34. package/build/routes/__tests__/xyz.test.js.map +1 -1
  35. package/build/routes/fonts.d.ts +0 -2
  36. package/build/routes/fonts.d.ts.map +1 -1
  37. package/build/routes/fonts.js +3 -66
  38. package/build/routes/fonts.js.map +1 -1
  39. package/build/routes/sprites.d.ts.map +1 -1
  40. package/build/routes/sprites.js +3 -29
  41. package/build/routes/sprites.js.map +1 -1
  42. package/build/routes/tile.xyz.vector.js +2 -2
  43. package/build/routes/tile.xyz.vector.js.map +1 -1
  44. package/build/util/assets.provider.d.ts +27 -0
  45. package/build/util/assets.provider.d.ts.map +1 -0
  46. package/build/util/assets.provider.js +56 -0
  47. package/build/util/assets.provider.js.map +1 -0
  48. package/build/util/config.cache.d.ts +16 -0
  49. package/build/util/config.cache.d.ts.map +1 -0
  50. package/build/util/config.cache.js +41 -0
  51. package/build/util/config.cache.js.map +1 -0
  52. package/build/util/response.d.ts +3 -1
  53. package/build/util/response.d.ts.map +1 -1
  54. package/build/util/response.js +2 -0
  55. package/build/util/response.js.map +1 -1
  56. package/build/util/source.cache.d.ts +1 -0
  57. package/build/util/source.cache.d.ts.map +1 -1
  58. package/build/util/source.cache.js +2 -1
  59. package/build/util/source.cache.js.map +1 -1
  60. package/build/util/swapping.lru.d.ts +1 -0
  61. package/build/util/swapping.lru.d.ts.map +1 -1
  62. package/build/util/swapping.lru.js +7 -0
  63. package/build/util/swapping.lru.js.map +1 -1
  64. package/build/util/validate.d.ts +0 -5
  65. package/build/util/validate.d.ts.map +1 -1
  66. package/build/util/validate.js +1 -23
  67. package/build/util/validate.js.map +1 -1
  68. package/dist/index.js +52 -52
  69. package/dist/node_modules/.package-lock.json +4 -4
  70. package/dist/node_modules/node-abi/abi_registry.json +8 -1
  71. package/dist/node_modules/node-abi/package.json +1 -1
  72. package/dist/package-lock.json +8 -8
  73. package/dist/package.json +1 -1
  74. package/package.json +4 -4
  75. package/src/__tests__/xyz.util.ts +7 -2
  76. package/src/arcgis/__tests__/arcgis.style.json.test.ts +153 -0
  77. package/src/arcgis/__tests__/vector.tiler.server.test.ts +61 -0
  78. package/src/arcgis/arcgis.info.ts +26 -0
  79. package/src/arcgis/arcgis.style.json.ts +81 -0
  80. package/src/arcgis/vector.tile.server.ts +78 -0
  81. package/src/index.ts +25 -8
  82. package/src/routes/__tests__/fonts.test.ts +14 -29
  83. package/src/routes/__tests__/sprites.test.ts +7 -2
  84. package/src/routes/__tests__/xyz.test.ts +2 -2
  85. package/src/routes/fonts.ts +4 -64
  86. package/src/routes/sprites.ts +4 -27
  87. package/src/routes/tile.xyz.vector.ts +2 -2
  88. package/src/util/assets.provider.ts +67 -0
  89. package/src/util/config.cache.ts +44 -0
  90. package/src/util/response.ts +4 -1
  91. package/src/util/source.cache.ts +2 -1
  92. package/src/util/swapping.lru.ts +7 -0
  93. package/src/util/validate.ts +1 -27
  94. package/tsconfig.json +1 -0
  95. package/tsconfig.tsbuildinfo +1 -1
@@ -23,6 +23,7 @@ export declare class SourceCache {
23
23
  getCog(location: string): Promise<CogTiff>;
24
24
  getCotar(location: string): Promise<Cotar>;
25
25
  }
26
+ /** Approx ~1.4GB 2x~700MB caches */
26
27
  export declare const CoSources: SourceCache;
27
28
  export {};
28
29
  //# sourceMappingURL=source.cache.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"source.cache.d.ts","sourceRoot":"","sources":["../../src/util/source.cache.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,oBAAY,QAAQ,GAAG,aAAa,GAAG,WAAW,CAAC;AAEnD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACtB,MAAM,CAAC,EAAE,KAAK,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,KAAK,CAAC;IACZ,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACxB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,cAAM,WAAW,CAAC,CAAC,SAAS,QAAQ;IAClC,EAAE,EAAE,CAAC,CAAC;gBACM,EAAE,EAAE,CAAC;IAKjB,IAAI,IAAI,IAAI,MAAM,CAIjB;CACF;AAED,qBAAa,WAAW;IACtB,KAAK,EAAE,WAAW,CAAC,WAAW,CAAC,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC;gBACjD,OAAO,EAAE,MAAM;IAI3B,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAc1C,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;CAa3C;AAED,eAAO,MAAM,SAAS,aAAqC,CAAC"}
1
+ {"version":3,"file":"source.cache.d.ts","sourceRoot":"","sources":["../../src/util/source.cache.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,oBAAY,QAAQ,GAAG,aAAa,GAAG,WAAW,CAAC;AAEnD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACtB,MAAM,CAAC,EAAE,KAAK,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,KAAK,CAAC;IACZ,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACxB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,cAAM,WAAW,CAAC,CAAC,SAAS,QAAQ;IAClC,EAAE,EAAE,CAAC,CAAC;gBACM,EAAE,EAAE,CAAC;IAKjB,IAAI,IAAI,IAAI,MAAM,CAIjB;CACF;AAED,qBAAa,WAAW;IACtB,KAAK,EAAE,WAAW,CAAC,WAAW,CAAC,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC;gBACjD,OAAO,EAAE,MAAM;IAI3B,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAc1C,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;CAa3C;AAED,oCAAoC;AACpC,eAAO,MAAM,SAAS,aAAqC,CAAC"}
@@ -49,5 +49,6 @@ export class SourceCache {
49
49
  return value;
50
50
  }
51
51
  }
52
- export const CoSources = new SourceCache(256 * 1024 * 1024);
52
+ /** Approx ~1.4GB 2x~700MB caches */
53
+ export const CoSources = new SourceCache(700 * 1000 * 1000);
53
54
  //# sourceMappingURL=source.cache.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"source.cache.js","sourceRoot":"","sources":["../../src/util/source.cache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"source.cache.js","sourceRoot":"","sources":["../../src/util/source.cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAEvC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAgBhD,MAAM,WAAW;IAEf,YAAY,EAAK;QACf,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,IAAI,CAAC,EAAE,CAAC,MAAM,IAAI,IAAI;YAAE,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IAC9E,CAAC;IAED,IAAI,IAAI;QACN,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC;QAC3B,IAAI,GAAG,IAAI,IAAI;YAAE,OAAO,CAAC,CAAC;QAC1B,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,GAAI,GAAG,CAAC,MAA0B,CAAC,MAAM,CAAC,IAAI,CAAC;IAC5E,CAAC;CACF;AAED,MAAM,OAAO,WAAW;IAEtB,YAAY,OAAe;QACzB,IAAI,CAAC,KAAK,GAAG,IAAI,WAAW,CAAwB,OAAO,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,CAAC,QAAgB;;QACrB,MAAM,QAAQ,GAAG,MAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,0CAAE,EAAE,CAAC;QAE9C,IAAI,QAAQ,IAAI,IAAI,EAAE;YACpB,IAAI,QAAQ,CAAC,IAAI,KAAK,KAAK;gBAAE,OAAO,QAAQ,CAAC,KAAK,CAAC;YACnD,MAAM,IAAI,KAAK,CAAC,4BAA4B,QAAQ,CAAC,IAAI,uBAAuB,QAAQ,EAAE,CAAC,CAAC;SAC7F;QACD,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACpC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACjB,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,WAAW,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QAClE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,QAAQ,CAAC,QAAgB;;QACvB,MAAM,QAAQ,GAAG,MAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,0CAAE,EAAE,CAAC;QAE9C,IAAI,QAAQ,IAAI,IAAI,EAAE;YACpB,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO;gBAAE,OAAO,QAAQ,CAAC,KAAuB,CAAC;YACvE,MAAM,IAAI,KAAK,CAAC,4BAA4B,QAAQ,CAAC,IAAI,uBAAuB,QAAQ,EAAE,CAAC,CAAC;SAC7F;QACD,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACpC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACjB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,WAAW,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QACpE,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAED,oCAAoC;AACpC,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,WAAW,CAAC,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC"}
@@ -7,6 +7,7 @@ export declare class SwappingLru<T extends {
7
7
  hits: number;
8
8
  misses: number;
9
9
  resets: number;
10
+ clears: number;
10
11
  _lastCheckedAt: number;
11
12
  constructor(maxSize: number);
12
13
  get(id: string): T | null;
@@ -1 +1 @@
1
- {"version":3,"file":"swapping.lru.d.ts","sourceRoot":"","sources":["../../src/util/swapping.lru.ts"],"names":[],"mappings":"AAAA,qBAAa,WAAW,CAAC,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE;IACjD,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAa;IACnC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAa;IACnC,OAAO,EAAE,MAAM,CAAC;IAEhB,IAAI,SAAK;IACT,MAAM,SAAK;IACX,MAAM,SAAK;IAEX,cAAc,SAAM;gBAER,OAAO,EAAE,MAAM;IAI3B,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI;IAoBzB,sBAAsB;IACtB,KAAK,IAAI,IAAI;IAKb,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI;IAK9B,sDAAsD;IACtD,KAAK,IAAI,IAAI;IASb,6DAA6D;IAC7D,IAAI,WAAW,IAAI,MAAM,CAIxB;CACF"}
1
+ {"version":3,"file":"swapping.lru.d.ts","sourceRoot":"","sources":["../../src/util/swapping.lru.ts"],"names":[],"mappings":"AAAA,qBAAa,WAAW,CAAC,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE;IACjD,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAa;IACnC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAa;IACnC,OAAO,EAAE,MAAM,CAAC;IAEhB,IAAI,SAAK;IACT,MAAM,SAAK;IACX,MAAM,SAAK;IACX,MAAM,SAAK;IAEX,cAAc,SAAM;gBAER,OAAO,EAAE,MAAM;IAI3B,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI;IAoBzB,sBAAsB;IACtB,KAAK,IAAI,IAAI;IAMb,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI;IAK9B,sDAAsD;IACtD,KAAK,IAAI,IAAI;IAcb,6DAA6D;IAC7D,IAAI,WAAW,IAAI,MAAM,CAIxB;CACF"}
@@ -5,6 +5,7 @@ export class SwappingLru {
5
5
  this.hits = 0;
6
6
  this.misses = 0;
7
7
  this.resets = 0;
8
+ this.clears = 0;
8
9
  this._lastCheckedAt = -1;
9
10
  this.maxSize = maxSize;
10
11
  }
@@ -29,6 +30,7 @@ export class SwappingLru {
29
30
  clear() {
30
31
  this.cacheA.clear();
31
32
  this.cacheB.clear();
33
+ this.clears++;
32
34
  }
33
35
  set(id, tiff) {
34
36
  this.cacheA.set(id, tiff);
@@ -42,6 +44,11 @@ export class SwappingLru {
42
44
  if (this.currentSize <= this.maxSize)
43
45
  return;
44
46
  this.resets++;
47
+ // Paranoia if we are resetting too often something is wrong, reset the entire cache.
48
+ if (this.resets > 100) {
49
+ this.resets = 0;
50
+ return this.clear();
51
+ }
45
52
  this.cacheB = this.cacheA;
46
53
  this.cacheA = new Map();
47
54
  }
@@ -1 +1 @@
1
- {"version":3,"file":"swapping.lru.js","sourceRoot":"","sources":["../../src/util/swapping.lru.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,WAAW;IAWtB,YAAY,OAAe;QAV3B,WAAM,GAAmB,IAAI,GAAG,EAAE,CAAC;QACnC,WAAM,GAAmB,IAAI,GAAG,EAAE,CAAC;QAGnC,SAAI,GAAG,CAAC,CAAC;QACT,WAAM,GAAG,CAAC,CAAC;QACX,WAAM,GAAG,CAAC,CAAC;QAEX,mBAAc,GAAG,CAAC,CAAC,CAAC;QAGlB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,GAAG,CAAC,EAAU;QACZ,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnC,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,IAAI,EAAE,CAAC;YACZ,OAAO,MAAM,CAAC;SACf;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnC,IAAI,MAAM,IAAI,IAAI,EAAE;YAClB,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,OAAO,IAAI,CAAC;SACb;QAED,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,0DAA0D;QAC1D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAC5B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACvB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,sBAAsB;IACtB,KAAK;QACH,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IAED,GAAG,CAAC,EAAU,EAAE,IAAO;QACrB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAED,sDAAsD;IACtD,KAAK;QACH,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACjC,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC;YAAE,OAAO;QAC9B,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QAC7C,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;IAC1B,CAAC;IAED,6DAA6D;IAC7D,IAAI,WAAW;QACb,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YAAE,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC;QAC7D,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
1
+ {"version":3,"file":"swapping.lru.js","sourceRoot":"","sources":["../../src/util/swapping.lru.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,WAAW;IAYtB,YAAY,OAAe;QAX3B,WAAM,GAAmB,IAAI,GAAG,EAAE,CAAC;QACnC,WAAM,GAAmB,IAAI,GAAG,EAAE,CAAC;QAGnC,SAAI,GAAG,CAAC,CAAC;QACT,WAAM,GAAG,CAAC,CAAC;QACX,WAAM,GAAG,CAAC,CAAC;QACX,WAAM,GAAG,CAAC,CAAC;QAEX,mBAAc,GAAG,CAAC,CAAC,CAAC;QAGlB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,GAAG,CAAC,EAAU;QACZ,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnC,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,IAAI,EAAE,CAAC;YACZ,OAAO,MAAM,CAAC;SACf;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnC,IAAI,MAAM,IAAI,IAAI,EAAE;YAClB,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,OAAO,IAAI,CAAC;SACb;QAED,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,0DAA0D;QAC1D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAC5B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACvB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,sBAAsB;IACtB,KAAK;QACH,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,GAAG,CAAC,EAAU,EAAE,IAAO;QACrB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAED,sDAAsD;IACtD,KAAK;QACH,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACjC,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC;YAAE,OAAO;QAC9B,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QAC7C,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,qFAAqF;QACrF,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE;YACrB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YAChB,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC;SACrB;QACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;IAC1B,CAAC;IAED,6DAA6D;IAC7D,IAAI,WAAW;QACb,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YAAE,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC;QAC7D,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -16,11 +16,6 @@ export interface TileMatrixRequest {
16
16
  tileMatrix?: string;
17
17
  };
18
18
  }
19
- export interface ApiKeyStatus {
20
- valid: boolean;
21
- message: 'ok' | 'malformed' | 'missing' | 'expired';
22
- }
23
- export declare function isValidApiKey(apiKey?: string | null): ApiKeyStatus;
24
19
  export declare const Validate: {
25
20
  /**
26
21
  * Validate that the api key exists and is valid
@@ -1 +1 @@
1
- {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/util/validate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAkB,YAAY,EAAE,MAAM,eAAe,CAAC;AAGzF,OAAO,EAAE,iBAAiB,EAAsB,MAAM,gBAAgB,CAAC;AAEvE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,aAAa,CAAC;IAC1B,QAAQ,EAAE,YAAY,GAAG,WAAW,CAAC;CACtC;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACjC;AAMD,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,IAAI,GAAG,WAAW,GAAG,SAAS,GAAG,SAAS,CAAC;CACrD;AAED,wBAAgB,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,YAAY,CAclE;AAED,eAAO,MAAM,QAAQ;IACnB;;;OAGG;gBACS,iBAAiB,GAAG,MAAM;gDASN,aAAa,GAAG,IAAI;IAIpD,2FAA2F;6BAClE,iBAAiB,GAAG,WAAW,EAAE,GAAG,IAAI;4BAczC,MAAM,GAAG,WAAW,GAAG,YAAY,GAAG,IAAI;IAMlE;;;;;;;;;OASG;aACM,kBAAkB,UAAU,CAAC,GAAG,OAAO;CAiCjD,CAAC"}
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/util/validate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAkB,YAAY,EAAE,MAAM,eAAe,CAAC;AAGzF,OAAO,EAAE,iBAAiB,EAAsB,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,aAAa,CAAC;IAC1B,QAAQ,EAAE,YAAY,GAAG,WAAW,CAAC;CACtC;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACjC;AAED,eAAO,MAAM,QAAQ;IACnB;;;OAGG;gBACS,iBAAiB,GAAG,MAAM;gDASN,aAAa,GAAG,IAAI;IAIpD,2FAA2F;6BAClE,iBAAiB,GAAG,WAAW,EAAE,GAAG,IAAI;4BAczC,MAAM,GAAG,WAAW,GAAG,YAAY,GAAG,IAAI;IAMlE;;;;;;;;;OASG;aACM,kBAAkB,UAAU,CAAC,GAAG,OAAO;CAiCjD,CAAC"}
@@ -1,29 +1,7 @@
1
1
  import { TileMatrixSets, VectorFormat } from '@basemaps/geo';
2
- import { Const, Projection } from '@basemaps/shared';
2
+ import { Const, isValidApiKey, Projection } from '@basemaps/shared';
3
3
  import { getImageFormat } from '@basemaps/tiler';
4
4
  import { LambdaHttpResponse } from '@linzjs/lambda';
5
- import * as ulid from 'ulid';
6
- const OneHourMs = 60 * 60 * 1000;
7
- const OneDayMs = 24 * OneHourMs;
8
- const MaxApiAgeMs = 91 * OneDayMs;
9
- export function isValidApiKey(apiKey) {
10
- if (apiKey == null)
11
- return { valid: false, message: 'missing' };
12
- if (!apiKey.startsWith('c') && !apiKey.startsWith('d'))
13
- return { valid: false, message: 'malformed' };
14
- const ulidId = apiKey.slice(1).toUpperCase();
15
- try {
16
- const ulidTime = ulid.decodeTime(ulidId);
17
- if (apiKey.startsWith('d'))
18
- return { valid: true, message: 'ok' };
19
- if (Date.now() - ulidTime > MaxApiAgeMs)
20
- return { valid: false, message: 'expired' };
21
- }
22
- catch (e) {
23
- return { valid: false, message: 'malformed' };
24
- }
25
- return { valid: true, message: 'ok' };
26
- }
27
5
  export const Validate = {
28
6
  /**
29
7
  * Validate that the api key exists and is valid
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/util/validate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/util/validate.ts"],"names":[],"mappings":"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"}