@itwin/map-layers-formats 4.1.0-dev.40 → 4.1.0-dev.50

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 (105) hide show
  1. package/.rush/temp/operation/build/all.log +1 -3
  2. package/.rush/temp/operation/build/state.json +1 -1
  3. package/.rush/temp/operation/cover/all.log +12 -7
  4. package/.rush/temp/operation/cover/state.json +1 -1
  5. package/.rush/temp/operation/docs/all.log +2 -2
  6. package/.rush/temp/operation/docs/state.json +1 -1
  7. package/.rush/temp/package-deps_build.json +36 -0
  8. package/.rush/temp/package-deps_cover.json +7 -7
  9. package/.rush/temp/package-deps_docs.json +7 -7
  10. package/.rush/temp/shrinkwrap-deps.json +70 -80
  11. package/CHANGELOG.json +30 -0
  12. package/CHANGELOG.md +26 -1
  13. package/lib/cjs/ArcGisFeature/ArcGisFeatureFormat.js.map +1 -1
  14. package/lib/cjs/ArcGisFeature/ArcGisFeatureJSON.js.map +1 -1
  15. package/lib/cjs/ArcGisFeature/ArcGisFeaturePBF.js.map +1 -1
  16. package/lib/cjs/ArcGisFeature/ArcGisFeatureProvider.d.ts +3 -0
  17. package/lib/cjs/ArcGisFeature/ArcGisFeatureProvider.d.ts.map +1 -1
  18. package/lib/cjs/ArcGisFeature/ArcGisFeatureProvider.js +49 -11
  19. package/lib/cjs/ArcGisFeature/ArcGisFeatureProvider.js.map +1 -1
  20. package/lib/cjs/ArcGisFeature/ArcGisFeatureQuery.js.map +1 -1
  21. package/lib/cjs/ArcGisFeature/ArcGisFeatureReader.js.map +1 -1
  22. package/lib/cjs/ArcGisFeature/ArcGisFeatureRenderer.js.map +1 -1
  23. package/lib/cjs/ArcGisFeature/ArcGisFeatureResponse.js.map +1 -1
  24. package/lib/cjs/ArcGisFeature/ArcGisSymbologyRenderer.js +3 -3
  25. package/lib/cjs/ArcGisFeature/ArcGisSymbologyRenderer.js.map +1 -1
  26. package/lib/cjs/ArcGisFeature/esriPBuffer.gen.js.map +1 -1
  27. package/lib/cjs/map-layers-formats.js.map +1 -1
  28. package/lib/cjs/mapLayersFormats.js.map +1 -1
  29. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureFeatureFormats.test.js.map +1 -1
  30. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureJSON.test.js.map +1 -1
  31. package/lib/cjs/test/ArcGisFeature/ArcGisFeaturePBF.test.js.map +1 -1
  32. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureProvider.test.js +133 -6
  33. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureProvider.test.js.map +1 -1
  34. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureQuery.test.js.map +1 -1
  35. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureRenderer.test.js.map +1 -1
  36. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureResponse.test.js.map +1 -1
  37. package/lib/cjs/test/ArcGisFeature/ArcGisSymbologyRenderer.test.js.map +1 -1
  38. package/lib/cjs/test/ArcGisFeature/Mocks.js.map +1 -1
  39. package/lib/cjs/test/ArcGisFeature/NewYorkDataset.js.map +1 -1
  40. package/lib/cjs/test/ArcGisFeature/PhillyLandmarksDataset.js.map +1 -1
  41. package/lib/cjs/test/coverage/.nyc_output/49eeff8d-f0c9-43b5-9fa7-717e2ee4f36b.json +1 -0
  42. package/lib/cjs/test/coverage/.nyc_output/processinfo/49eeff8d-f0c9-43b5-9fa7-717e2ee4f36b.json +1 -0
  43. package/lib/cjs/test/coverage/.nyc_output/processinfo/b749190e-f7e9-4cdb-80df-74589d31e28d.json +1 -0
  44. package/lib/cjs/test/coverage/.nyc_output/processinfo/index.json +1 -1
  45. package/lib/cjs/test/coverage/cobertura-coverage.xml +291 -257
  46. package/lib/cjs/test/coverage/lcov-report/index.html +18 -18
  47. package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeatureFormat.ts.html +1 -1
  48. package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeatureJSON.ts.html +1 -1
  49. package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeaturePBF.ts.html +1 -1
  50. package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeatureProvider.ts.html +202 -76
  51. package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeatureQuery.ts.html +1 -1
  52. package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeatureReader.ts.html +1 -1
  53. package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeatureRenderer.ts.html +1 -1
  54. package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeatureResponse.ts.html +1 -1
  55. package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisSymbologyRenderer.ts.html +13 -13
  56. package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/index.html +18 -18
  57. package/lib/cjs/test/coverage/lcov-report/src/index.html +1 -1
  58. package/lib/cjs/test/coverage/lcov-report/src/map-layers-formats.ts.html +1 -1
  59. package/lib/cjs/test/coverage/lcov-report/src/mapLayersFormats.ts.html +1 -1
  60. package/lib/cjs/test/coverage/lcov.info +420 -384
  61. package/lib/cjs/tsconfig.tsbuildinfo +1 -1
  62. package/lib/esm/ArcGisFeature/ArcGisFeatureFormat.js.map +1 -1
  63. package/lib/esm/ArcGisFeature/ArcGisFeatureJSON.js.map +1 -1
  64. package/lib/esm/ArcGisFeature/ArcGisFeaturePBF.js.map +1 -1
  65. package/lib/esm/ArcGisFeature/ArcGisFeatureProvider.d.ts +3 -0
  66. package/lib/esm/ArcGisFeature/ArcGisFeatureProvider.d.ts.map +1 -1
  67. package/lib/esm/ArcGisFeature/ArcGisFeatureProvider.js +49 -11
  68. package/lib/esm/ArcGisFeature/ArcGisFeatureProvider.js.map +1 -1
  69. package/lib/esm/ArcGisFeature/ArcGisFeatureQuery.js.map +1 -1
  70. package/lib/esm/ArcGisFeature/ArcGisFeatureReader.js.map +1 -1
  71. package/lib/esm/ArcGisFeature/ArcGisFeatureRenderer.js.map +1 -1
  72. package/lib/esm/ArcGisFeature/ArcGisFeatureResponse.js.map +1 -1
  73. package/lib/esm/ArcGisFeature/ArcGisSymbologyRenderer.js +3 -3
  74. package/lib/esm/ArcGisFeature/ArcGisSymbologyRenderer.js.map +1 -1
  75. package/lib/esm/ArcGisFeature/esriPBuffer.gen.js.map +1 -1
  76. package/lib/esm/map-layers-formats.js.map +1 -1
  77. package/lib/esm/mapLayersFormats.js.map +1 -1
  78. package/lib/esm/test/ArcGisFeature/ArcGisFeatureFeatureFormats.test.js.map +1 -1
  79. package/lib/esm/test/ArcGisFeature/ArcGisFeatureJSON.test.js.map +1 -1
  80. package/lib/esm/test/ArcGisFeature/ArcGisFeaturePBF.test.js.map +1 -1
  81. package/lib/esm/test/ArcGisFeature/ArcGisFeatureProvider.test.js +134 -7
  82. package/lib/esm/test/ArcGisFeature/ArcGisFeatureProvider.test.js.map +1 -1
  83. package/lib/esm/test/ArcGisFeature/ArcGisFeatureQuery.test.js.map +1 -1
  84. package/lib/esm/test/ArcGisFeature/ArcGisFeatureRenderer.test.js.map +1 -1
  85. package/lib/esm/test/ArcGisFeature/ArcGisFeatureResponse.test.js.map +1 -1
  86. package/lib/esm/test/ArcGisFeature/ArcGisSymbologyRenderer.test.js.map +1 -1
  87. package/lib/esm/test/ArcGisFeature/Mocks.js.map +1 -1
  88. package/lib/esm/test/ArcGisFeature/NewYorkDataset.js.map +1 -1
  89. package/lib/esm/test/ArcGisFeature/PhillyLandmarksDataset.js.map +1 -1
  90. package/lib/esm/tsconfig.tsbuildinfo +1 -1
  91. package/lib/test/junit_results.xml +49 -39
  92. package/map-layers-formats.build.cache.log +2 -0
  93. package/map-layers-formats.cover.log +103 -0
  94. package/{map-layers-formats.build.log → map-layers-formats.docs.log} +2 -2
  95. package/map-layers-formats.lint.error.log +1 -0
  96. package/map-layers-formats.lint.log +2 -0
  97. package/package.json +12 -12
  98. package/src/ArcGisFeature/ArcGisFeatureProvider.ts +53 -11
  99. package/src/ArcGisFeature/ArcGisSymbologyRenderer.ts +3 -3
  100. package/src/test/ArcGisFeature/ArcGisFeatureProvider.test.ts +173 -7
  101. package/.rush/temp/56b9a37b833db0202ea00aa252f5eaa1d19cf7bd.log +0 -10
  102. package/lib/cjs/test/coverage/.nyc_output/4dc5f60e-8ae8-48d3-b717-f77ecf525371.json +0 -1
  103. package/lib/cjs/test/coverage/.nyc_output/processinfo/4dc5f60e-8ae8-48d3-b717-f77ecf525371.json +0 -1
  104. package/lib/cjs/test/coverage/.nyc_output/processinfo/dac1e7eb-315e-4558-9250-262b6f23cf4a.json +0 -1
  105. /package/lib/cjs/test/coverage/.nyc_output/{dac1e7eb-315e-4558-9250-262b6f23cf4a.json → b749190e-f7e9-4cdb-80df-74589d31e28d.json} +0 -0
@@ -1,39 +1,39 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
- <testsuites name="Mocha Tests" time="0.336" tests="69" failures="0">
3
- <testsuite name="Root Suite" timestamp="2023-06-20T14:52:49" tests="0" time="0.000" failures="0">
2
+ <testsuites name="Mocha Tests" time="0.367" tests="74" failures="0">
3
+ <testsuite name="Root Suite" timestamp="2023-06-30T05:15:47" tests="0" time="0.000" failures="0">
4
4
  </testsuite>
5
- <testsuite name="ArcGisFeaturePBF" timestamp="2023-06-20T14:52:49" tests="2" file="D:\vsts_a\7\s\extensions\map-layers-formats\lib\cjs\test\ArcGisFeature\ArcGisFeatureFeatureFormats.test.js" time="0.018" failures="0">
6
- <testcase name="ArcGisFeaturePBF should createImageryProvider" time="0.002" classname="should createImageryProvider">
5
+ <testsuite name="ArcGisFeaturePBF" timestamp="2023-06-30T05:15:47" tests="2" file="D:\vsts_a\1\s\extensions\map-layers-formats\lib\cjs\test\ArcGisFeature\ArcGisFeatureFeatureFormats.test.js" time="0.019" failures="0">
6
+ <testcase name="ArcGisFeaturePBF should createImageryProvider" time="0.003" classname="should createImageryProvider">
7
7
  </testcase>
8
- <testcase name="ArcGisFeaturePBF should validateSource" time="0.007" classname="should validateSource">
8
+ <testcase name="ArcGisFeaturePBF should validateSource" time="0.006" classname="should validateSource">
9
9
  </testcase>
10
10
  </testsuite>
11
- <testsuite name="ArcGisFeatureJSON" timestamp="2023-06-20T14:52:49" tests="9" file="D:\vsts_a\7\s\extensions\map-layers-formats\lib\cjs\test\ArcGisFeature\ArcGisFeatureJSON.test.js" time="0.035" failures="0">
11
+ <testsuite name="ArcGisFeatureJSON" timestamp="2023-06-30T05:15:47" tests="9" file="D:\vsts_a\1\s\extensions\map-layers-formats\lib\cjs\test\ArcGisFeature\ArcGisFeatureJSON.test.js" time="0.030" failures="0">
12
12
  <testcase name="ArcGisFeatureJSON should read FeatureInfo in JSON (phillyTansportation)" time="0.004" classname="should read FeatureInfo in JSON (phillyTansportation)">
13
13
  </testcase>
14
14
  <testcase name="ArcGisFeatureJSON should read FeatureInfo in JSON (phillyAirport)" time="0.001" classname="should read FeatureInfo in JSON (phillyAirport)">
15
15
  </testcase>
16
16
  <testcase name="ArcGisFeatureJSON should deflate coordinates array" time="0.001" classname="should deflate coordinates array">
17
17
  </testcase>
18
- <testcase name="ArcGisFeatureJSON should readAndRender single ring polygon feature" time="0.010" classname="should readAndRender single ring polygon feature">
18
+ <testcase name="ArcGisFeatureJSON should readAndRender single ring polygon feature" time="0.004" classname="should readAndRender single ring polygon feature">
19
19
  </testcase>
20
20
  <testcase name="ArcGisFeatureJSON should readAndRender multiple ring polygon feature" time="0.002" classname="should readAndRender multiple ring polygon feature">
21
21
  </testcase>
22
- <testcase name="ArcGisFeatureJSON should readAndRender simple path" time="0.001" classname="should readAndRender simple path">
22
+ <testcase name="ArcGisFeatureJSON should readAndRender simple path" time="0.002" classname="should readAndRender simple path">
23
23
  </testcase>
24
24
  <testcase name="ArcGisFeatureJSON should readAndRender multi path" time="0.001" classname="should readAndRender multi path">
25
25
  </testcase>
26
26
  <testcase name="ArcGisFeatureJSON should readAndRender simple point" time="0.005" classname="should readAndRender simple point">
27
27
  </testcase>
28
- <testcase name="ArcGisFeatureJSON should log error when readAndRender / readFeatureInfo is called invalid response Data" time="0.003" classname="should log error when readAndRender / readFeatureInfo is called invalid response Data">
28
+ <testcase name="ArcGisFeatureJSON should log error when readAndRender / readFeatureInfo is called invalid response Data" time="0.002" classname="should log error when readAndRender / readFeatureInfo is called invalid response Data">
29
29
  </testcase>
30
30
  </testsuite>
31
- <testsuite name="ArcGisFeaturePBF" timestamp="2023-06-20T14:52:49" tests="10" file="D:\vsts_a\7\s\extensions\map-layers-formats\lib\cjs\test\ArcGisFeature\ArcGisFeaturePBF.test.js" time="0.043" failures="0">
32
- <testcase name="ArcGisFeaturePBF should convert pbf geometry type to Esri types" time="0.001" classname="should convert pbf geometry type to Esri types">
31
+ <testsuite name="ArcGisFeaturePBF" timestamp="2023-06-30T05:15:48" tests="10" file="D:\vsts_a\1\s\extensions\map-layers-formats\lib\cjs\test\ArcGisFeature\ArcGisFeaturePBF.test.js" time="0.051" failures="0">
32
+ <testcase name="ArcGisFeaturePBF should convert pbf geometry type to Esri types" time="0.000" classname="should convert pbf geometry type to Esri types">
33
33
  </testcase>
34
- <testcase name="ArcGisFeaturePBF should read FeatureInfo in PBF" time="0.015" classname="should read FeatureInfo in PBF">
34
+ <testcase name="ArcGisFeaturePBF should read FeatureInfo in PBF" time="0.017" classname="should read FeatureInfo in PBF">
35
35
  </testcase>
36
- <testcase name="ArcGisFeaturePBF should read FeatureInfo from PBF (philly transportation)" time="0.009" classname="should read FeatureInfo from PBF (philly transportation)">
36
+ <testcase name="ArcGisFeaturePBF should read FeatureInfo from PBF (philly transportation)" time="0.010" classname="should read FeatureInfo from PBF (philly transportation)">
37
37
  </testcase>
38
38
  <testcase name="ArcGisFeaturePBF should read all data types from FeatureInfo " time="0.003" classname="should read all data types from FeatureInfo ">
39
39
  </testcase>
@@ -41,72 +41,82 @@
41
41
  </testcase>
42
42
  <testcase name="ArcGisFeaturePBF should readAndRender multiple ring polygon feature" time="0.001" classname="should readAndRender multiple ring polygon feature">
43
43
  </testcase>
44
- <testcase name="ArcGisFeaturePBF should readAndRender simple path" time="0.002" classname="should readAndRender simple path">
44
+ <testcase name="ArcGisFeaturePBF should readAndRender simple path" time="0.001" classname="should readAndRender simple path">
45
45
  </testcase>
46
46
  <testcase name="ArcGisFeaturePBF should readAndRender multi path" time="0.001" classname="should readAndRender multi path">
47
47
  </testcase>
48
- <testcase name="ArcGisFeaturePBF should readAndRender simple point" time="0.002" classname="should readAndRender simple point">
48
+ <testcase name="ArcGisFeaturePBF should readAndRender simple point" time="0.003" classname="should readAndRender simple point">
49
49
  </testcase>
50
50
  <testcase name="ArcGisFeaturePBF should log error when readAndRender / readFeatureInfo is called invalid response Data" time="0.002" classname="should log error when readAndRender / readFeatureInfo is called invalid response Data">
51
51
  </testcase>
52
52
  </testsuite>
53
- <testsuite name="ArcGisFeatureProvider" timestamp="2023-06-20T14:52:49" tests="23" file="D:\vsts_a\7\s\extensions\map-layers-formats\lib\cjs\test\ArcGisFeature\ArcGisFeatureProvider.test.js" time="0.178" failures="0">
54
- <testcase name="ArcGisFeatureProvider should initialize with valid data" time="0.004" classname="should initialize with valid data">
53
+ <testsuite name="ArcGisFeatureProvider" timestamp="2023-06-30T05:15:48" tests="28" file="D:\vsts_a\1\s\extensions\map-layers-formats\lib\cjs\test\ArcGisFeature\ArcGisFeatureProvider.test.js" time="0.199" failures="0">
54
+ <testcase name="ArcGisFeatureProvider should initialize with valid service metadata" time="0.004" classname="should initialize with valid service metadata">
55
55
  </testcase>
56
- <testcase name="ArcGisFeatureProvider should not initialize with no service metadata" time="0.003" classname="should not initialize with no service metadata">
56
+ <testcase name="ArcGisFeatureProvider should initialize and set cartoRange without making extra extent request" time="0.002" classname="should initialize and set cartoRange without making extra extent request">
57
+ </testcase>
58
+ <testcase name="ArcGisFeatureProvider should make an extra extent request when none available in layer metadata" time="0.002" classname="should make an extra extent request when none available in layer metadata">
59
+ </testcase>
60
+ <testcase name="ArcGisFeatureProvider should make an extra extent request when none available in layer metadata" time="0.002" classname="should make an extra extent request when none available in layer metadata">
61
+ </testcase>
62
+ <testcase name="ArcGisFeatureProvider should set cartoRange from Extent json" time="0.002" classname="should set cartoRange from Extent json">
63
+ </testcase>
64
+ <testcase name="ArcGisFeatureProvider should compose proper request to get extent" time="0.009" classname="should compose proper request to get extent">
65
+ </testcase>
66
+ <testcase name="ArcGisFeatureProvider should not initialize with no service metadata" time="0.002" classname="should not initialize with no service metadata">
57
67
  </testcase>
58
68
  <testcase name="ArcGisFeatureProvider should update status when invalid token error from service" time="0.002" classname="should update status when invalid token error from service">
59
69
  </testcase>
60
- <testcase name="ArcGisFeatureProvider should throw query capability not supported" time="0.002" classname="should throw query capability not supported">
70
+ <testcase name="ArcGisFeatureProvider should throw query capability not supported" time="0.001" classname="should throw query capability not supported">
61
71
  </testcase>
62
72
  <testcase name="ArcGisFeatureProvider should pick the first visible sub-layer when multiple visible sub-layers" time="0.003" classname="should pick the first visible sub-layer when multiple visible sub-layers">
63
73
  </testcase>
64
- <testcase name="ArcGisFeatureProvider should pick sub-layers from service metadata if none provided on layer settings" time="0.002" classname="should pick sub-layers from service metadata if none provided on layer settings">
74
+ <testcase name="ArcGisFeatureProvider should pick sub-layers from service metadata if none provided on layer settings" time="0.003" classname="should pick sub-layers from service metadata if none provided on layer settings">
65
75
  </testcase>
66
76
  <testcase name="ArcGisFeatureProvider should throw error if no layers in capabilities" time="0.001" classname="should throw error if no layers in capabilities">
67
77
  </testcase>
68
- <testcase name="ArcGisFeatureProvider should throw if no layer metadata from service" time="0.001" classname="should throw if no layer metadata from service">
78
+ <testcase name="ArcGisFeatureProvider should throw if no layer metadata from service" time="0.007" classname="should throw if no layer metadata from service">
69
79
  </testcase>
70
- <testcase name="ArcGisFeatureProvider should read supported supported format" time="0.005" classname="should read supported supported format">
80
+ <testcase name="ArcGisFeatureProvider should read supported supported format" time="0.014" classname="should read supported supported format">
71
81
  </testcase>
72
- <testcase name="ArcGisFeatureProvider should compute minLod/maxLod" time="0.001" classname="should compute minLod/maxLod">
82
+ <testcase name="ArcGisFeatureProvider should compute minLod/maxLod" time="0.003" classname="should compute minLod/maxLod">
73
83
  </testcase>
74
84
  <testcase name="ArcGisFeatureProvider should construct empty url" time="0.000" classname="should construct empty url">
75
85
  </testcase>
76
- <testcase name="ArcGisFeatureProvider should construct feature query url" time="0.042" classname="should construct feature query url">
86
+ <testcase name="ArcGisFeatureProvider should construct feature query url" time="0.028" classname="should construct feature query url">
77
87
  </testcase>
78
- <testcase name="ArcGisFeatureProvider should log error when getFeatureInfo cannot be performed" time="0.004" classname="should log error when getFeatureInfo cannot be performed">
88
+ <testcase name="ArcGisFeatureProvider should log error when getFeatureInfo cannot be performed" time="0.006" classname="should log error when getFeatureInfo cannot be performed">
79
89
  </testcase>
80
- <testcase name="ArcGisFeatureProvider should process data in getFeatureInfo" time="0.022" classname="should process data in getFeatureInfo">
90
+ <testcase name="ArcGisFeatureProvider should process data in getFeatureInfo" time="0.019" classname="should process data in getFeatureInfo">
81
91
  </testcase>
82
- <testcase name="ArcGisFeatureProvider should log error when exceed transfert limit" time="0.008" classname="should log error when exceed transfert limit">
92
+ <testcase name="ArcGisFeatureProvider should log error when exceed transfert limit" time="0.009" classname="should log error when exceed transfert limit">
83
93
  </testcase>
84
- <testcase name="ArcGisFeatureProvider should log error when exceed exception thrown limit" time="0.008" classname="should log error when exceed exception thrown limit">
94
+ <testcase name="ArcGisFeatureProvider should log error when exceed exception thrown limit" time="0.007" classname="should log error when exceed exception thrown limit">
85
95
  </testcase>
86
- <testcase name="ArcGisFeatureProvider should debug Feature Geom" time="0.017" classname="should debug Feature Geom">
96
+ <testcase name="ArcGisFeatureProvider should debug Feature Geom" time="0.019" classname="should debug Feature Geom">
87
97
  </testcase>
88
98
  <testcase name="ArcGisFeatureProvider should compute computeTileWorld2CanvasTransform" time="0.003" classname="should compute computeTileWorld2CanvasTransform">
89
99
  </testcase>
90
100
  <testcase name="ArcGisFeatureProvider should loadTile from PBF request" time="0.007" classname="should loadTile from PBF request">
91
101
  </testcase>
92
- <testcase name="ArcGisFeatureProvider should loadTile from JSON request" time="0.005" classname="should loadTile from JSON request">
102
+ <testcase name="ArcGisFeatureProvider should loadTile from JSON request" time="0.006" classname="should loadTile from JSON request">
93
103
  </testcase>
94
104
  <testcase name="ArcGisFeatureProvider should make sub request if loadtile request return &apos;exceedTransferLimit&apos;" time="0.005" classname="should make sub request if loadtile request return &apos;exceedTransferLimit&apos;">
95
105
  </testcase>
96
- <testcase name="ArcGisFeatureProvider fetchTile should return undefined when to format defined" time="0.000" classname="fetchTile should return undefined when to format defined">
106
+ <testcase name="ArcGisFeatureProvider fetchTile should return undefined when to format defined" time="0.001" classname="fetchTile should return undefined when to format defined">
97
107
  </testcase>
98
- <testcase name="ArcGisFeatureProvider fetchTile should call fetch with the proper URL" time="0.002" classname="fetchTile should call fetch with the proper URL">
108
+ <testcase name="ArcGisFeatureProvider fetchTile should call fetch with the proper URL" time="0.004" classname="fetchTile should call fetch with the proper URL">
99
109
  </testcase>
100
110
  </testsuite>
101
- <testsuite name="ArcGisFeatureQuery" timestamp="2023-06-20T14:52:49" tests="3" file="D:\vsts_a\7\s\extensions\map-layers-formats\lib\cjs\test\ArcGisFeature\ArcGisFeatureQuery.test.js" time="0.014" failures="0">
102
- <testcase name="ArcGisFeatureQuery should not apply different switches if not needed" time="0.003" classname="should not apply different switches if not needed">
111
+ <testsuite name="ArcGisFeatureQuery" timestamp="2023-06-30T05:15:48" tests="3" file="D:\vsts_a\1\s\extensions\map-layers-formats\lib\cjs\test\ArcGisFeature\ArcGisFeatureQuery.test.js" time="0.014" failures="0">
112
+ <testcase name="ArcGisFeatureQuery should not apply different switches if not needed" time="0.002" classname="should not apply different switches if not needed">
103
113
  </testcase>
104
114
  <testcase name="ArcGisFeatureQuery should not apply different switches if not needed" time="0.006" classname="should not apply different switches if not needed">
105
115
  </testcase>
106
116
  <testcase name="ArcGisFeatureQuery should not include geometry only when applicable" time="0.002" classname="should not include geometry only when applicable">
107
117
  </testcase>
108
118
  </testsuite>
109
- <testsuite name="ArcGisFeatureRenderer" timestamp="2023-06-20T14:52:49" tests="12" file="D:\vsts_a\7\s\extensions\map-layers-formats\lib\cjs\test\ArcGisFeature\ArcGisFeatureRenderer.test.js" time="0.026" failures="0">
119
+ <testsuite name="ArcGisFeatureRenderer" timestamp="2023-06-30T05:15:48" tests="12" file="D:\vsts_a\1\s\extensions\map-layers-formats\lib\cjs\test\ArcGisFeature\ArcGisFeatureRenderer.test.js" time="0.027" failures="0">
110
120
  <testcase name="ArcGisFeatureRenderer should render simple path, stride = 2" time="0.001" classname="should render simple path, stride = 2">
111
121
  </testcase>
112
122
  <testcase name="ArcGisFeatureRenderer should render simple filled path" time="0.001" classname="should render simple filled path">
@@ -125,14 +135,14 @@
125
135
  </testcase>
126
136
  <testcase name="ArcGisFeatureRenderer should render multi Point, transform, relativeCoords OFF" time="0.001" classname="should render multi Point, transform, relativeCoords OFF">
127
137
  </testcase>
128
- <testcase name="ArcGisFeatureRenderer should render multi Point and apply transform, relativeCoords OFF" time="0.001" classname="should render multi Point and apply transform, relativeCoords OFF">
138
+ <testcase name="ArcGisFeatureRenderer should render multi Point and apply transform, relativeCoords OFF" time="0.002" classname="should render multi Point and apply transform, relativeCoords OFF">
129
139
  </testcase>
130
140
  <testcase name="ArcGisFeatureRenderer should render multi Point and apply transform, relativeCoords ON" time="0.002" classname="should render multi Point and apply transform, relativeCoords ON">
131
141
  </testcase>
132
142
  <testcase name="ArcGisFeatureRenderer should render and apply transform, relativeCoords ON" time="0.001" classname="should render and apply transform, relativeCoords ON">
133
143
  </testcase>
134
144
  </testsuite>
135
- <testsuite name="ArcGisFeatureResponse" timestamp="2023-06-20T14:52:50" tests="7" file="D:\vsts_a\7\s\extensions\map-layers-formats\lib\cjs\test\ArcGisFeature\ArcGisFeatureResponse.test.js" time="0.013" failures="0">
145
+ <testsuite name="ArcGisFeatureResponse" timestamp="2023-06-30T05:15:48" tests="7" file="D:\vsts_a\1\s\extensions\map-layers-formats\lib\cjs\test\ArcGisFeature\ArcGisFeatureResponse.test.js" time="0.016" failures="0">
136
146
  <testcase name="ArcGisFeatureResponse should return undefined if http error" time="0.000" classname="should return undefined if http error">
137
147
  </testcase>
138
148
  <testcase name="ArcGisFeatureResponse should return undefined if invalid PBF data" time="0.000" classname="should return undefined if invalid PBF data">
@@ -143,12 +153,12 @@
143
153
  </testcase>
144
154
  <testcase name="ArcGisFeatureResponse should return undefined if invalid JSON" time="0.000" classname="should return undefined if invalid JSON">
145
155
  </testcase>
146
- <testcase name="ArcGisFeatureResponse should return JSON data" time="0.000" classname="should return JSON data">
156
+ <testcase name="ArcGisFeatureResponse should return JSON data" time="0.001" classname="should return JSON data">
147
157
  </testcase>
148
158
  <testcase name="ArcGisFeatureResponse should report exceededTransferLimit from JSON object" time="0.000" classname="should report exceededTransferLimit from JSON object">
149
159
  </testcase>
150
160
  </testsuite>
151
- <testsuite name="ArcGisSymbologyRenderer" timestamp="2023-06-20T14:52:50" tests="3" file="D:\vsts_a\7\s\extensions\map-layers-formats\lib\cjs\test\ArcGisFeature\ArcGisSymbologyRenderer.test.js" time="0.005" failures="0">
161
+ <testsuite name="ArcGisSymbologyRenderer" timestamp="2023-06-30T05:15:48" tests="3" file="D:\vsts_a\1\s\extensions\map-layers-formats\lib\cjs\test\ArcGisFeature\ArcGisSymbologyRenderer.test.js" time="0.005" failures="0">
152
162
  <testcase name="ArcGisSymbologyRenderer should construct renderer from incomplete drawing info" time="0.002" classname="should construct renderer from incomplete drawing info">
153
163
  </testcase>
154
164
  <testcase name="ArcGisSymbologyRenderer should construct renderer from unique value drawing info" time="0.000" classname="should construct renderer from unique value drawing info">
@@ -0,0 +1,2 @@
1
+ This project was not found in the local build cache. Querying the cloud build cache.
2
+ This project was not found in the build cache.
@@ -0,0 +1,103 @@
1
+ Invoking: nyc npm -s test
2
+
3
+
4
+ ArcGisFeaturePBF
5
+ √ should createImageryProvider
6
+ √ should validateSource
7
+
8
+ ArcGisFeatureJSON
9
+ √ should read FeatureInfo in JSON (phillyTansportation)
10
+ √ should read FeatureInfo in JSON (phillyAirport)
11
+ √ should deflate coordinates array
12
+ √ should readAndRender single ring polygon feature
13
+ √ should readAndRender multiple ring polygon feature
14
+ √ should readAndRender simple path
15
+ √ should readAndRender multi path
16
+ √ should readAndRender simple point
17
+ √ should log error when readAndRender / readFeatureInfo is called invalid response Data
18
+
19
+ ArcGisFeaturePBF
20
+ √ should convert pbf geometry type to Esri types
21
+ √ should read FeatureInfo in PBF
22
+ √ should read FeatureInfo from PBF (philly transportation)
23
+ √ should read all data types from FeatureInfo
24
+ √ should readAndRender single ring polygon feature
25
+ √ should readAndRender multiple ring polygon feature
26
+ √ should readAndRender simple path
27
+ √ should readAndRender multi path
28
+ √ should readAndRender simple point
29
+ √ should log error when readAndRender / readFeatureInfo is called invalid response Data
30
+
31
+ ArcGisFeatureProvider
32
+ √ should initialize with valid service metadata
33
+ √ should initialize and set cartoRange without making extra extent request
34
+ √ should make an extra extent request when none available in layer metadata
35
+ √ should make an extra extent request when none available in layer metadata
36
+ √ should set cartoRange from Extent json
37
+ √ should compose proper request to get extent
38
+ √ should not initialize with no service metadata
39
+ √ should update status when invalid token error from service
40
+ √ should throw query capability not supported
41
+ √ should pick the first visible sub-layer when multiple visible sub-layers
42
+ √ should pick sub-layers from service metadata if none provided on layer settings
43
+ √ should throw error if no layers in capabilities
44
+ √ should throw if no layer metadata from service
45
+ √ should read supported supported format
46
+ √ should compute minLod/maxLod
47
+ √ should construct empty url
48
+ √ should construct feature query url
49
+ √ should log error when getFeatureInfo cannot be performed
50
+ √ should process data in getFeatureInfo
51
+ √ should log error when exceed transfert limit
52
+ √ should log error when exceed exception thrown limit
53
+ √ should debug Feature Geom
54
+ √ should compute computeTileWorld2CanvasTransform
55
+ √ should loadTile from PBF request
56
+ √ should loadTile from JSON request
57
+ √ should make sub request if loadtile request return 'exceedTransferLimit'
58
+ √ fetchTile should return undefined when to format defined
59
+ √ fetchTile should call fetch with the proper URL
60
+
61
+ ArcGisFeatureQuery
62
+ √ should not apply different switches if not needed
63
+ √ should not apply different switches if not needed
64
+ √ should not include geometry only when applicable
65
+
66
+ ArcGisFeatureRenderer
67
+ √ should render simple path, stride = 2
68
+ √ should render simple filled path
69
+ √ should render simple Path, stride = 3
70
+ √ should render multiple Paths, stride = 2
71
+ √ should not render invalid with stride value
72
+ √ should render Path and apply transform, relativeCoords OFF
73
+ √ should render single Point, no transform, relativeCoords OFF
74
+ √ should render single Point and apply transform, relativeCoords OFF
75
+ √ should render multi Point, transform, relativeCoords OFF
76
+ √ should render multi Point and apply transform, relativeCoords OFF
77
+ √ should render multi Point and apply transform, relativeCoords ON
78
+ √ should render and apply transform, relativeCoords ON
79
+
80
+ ArcGisFeatureResponse
81
+ √ should return undefined if http error
82
+ √ should return undefined if invalid PBF data
83
+ √ should create FeatureCollectionPBuffer from PBF data
84
+ √ should report exceededTransferLimit from PBF object
85
+ √ should return undefined if invalid JSON
86
+ √ should return JSON data
87
+ √ should report exceededTransferLimit from JSON object
88
+
89
+ ArcGisSymbologyRenderer
90
+ √ should construct renderer from incomplete drawing info
91
+ √ should construct renderer from unique value drawing info
92
+ √ should construct renderer from point symbology drawing info
93
+
94
+
95
+ 74 passing (367ms)
96
+
97
+
98
+ =============================== Coverage summary ===============================
99
+ Statements : 91.54% ( 671/733 )
100
+ Branches : 84.89% ( 354/417 )
101
+ Functions : 92.5% ( 74/80 )
102
+ Lines : 91.42% ( 661/723 )
103
+ ================================================================================
@@ -1,10 +1,10 @@
1
1
  Invoking: betools docs --includes=../../generated-docs/extract --json=../../generated-docs/core/map-layers-formats/file.json --tsIndexFile=./map-layers-formats.ts --onlyJson --excludes=**/ArcGisFeature/*.ts,**/*.gen.ts
2
2
  Running command:
3
- node D:\vsts_a\7\s\tools\build\scripts\docs.js --json ../../generated-docs/core/map-layers-formats/file.json --includes ../../generated-docs/extract --excludes **/ArcGisFeature/*.ts,**/*.gen.ts --tsIndexFile ./map-layers-formats.ts --onlyJson
3
+ node D:\vsts_a\1\s\tools\build\scripts\docs.js --json ../../generated-docs/core/map-layers-formats/file.json --includes ../../generated-docs/extract --excludes **/ArcGisFeature/*.ts,**/*.gen.ts --tsIndexFile ./map-layers-formats.ts --onlyJson
4
4
  Arguments to TypeDoc: [
5
5
  "--entryPointStrategy",
6
6
  "expand",
7
- "D:\\vsts_a\\7\\s\\extensions\\map-layers-formats\\src",
7
+ "D:\\vsts_a\\1\\s\\extensions\\map-layers-formats\\src",
8
8
  "--excludePrivate",
9
9
  "--hideGenerator",
10
10
  "--logLevel",
@@ -0,0 +1 @@
1
+ no problems
@@ -0,0 +1,2 @@
1
+ Invoking: eslint -f visualstudio "./src/**/*.{ts,tsx}" 1>&2
2
+ no problems
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@itwin/map-layers-formats",
3
- "version": "4.1.0-dev.40",
3
+ "version": "4.1.0-dev.50",
4
4
  "description": "Enables additional map-layers formats in iTwin.js",
5
5
  "main": "lib/cjs/map-layers-formats.js",
6
6
  "module": "lib/esm/map-layers-formats.js",
@@ -22,7 +22,7 @@
22
22
  "url": "http://www.bentley.com"
23
23
  },
24
24
  "devDependencies": {
25
- "@itwin/eslint-plugin": "^4.0.0-dev.33",
25
+ "@itwin/eslint-plugin": "4.0.0-dev.36",
26
26
  "@types/chai": "4.3.1",
27
27
  "@types/chai-as-promised": "^7",
28
28
  "@types/google-protobuf": "~3.15.6",
@@ -42,18 +42,18 @@
42
42
  "sinon-chai": "^3.2.0",
43
43
  "source-map-support": "^0.5.6",
44
44
  "typescript": "~5.0.2",
45
- "@itwin/core-bentley": "4.1.0-dev.40",
46
- "@itwin/appui-abstract": "4.1.0-dev.40",
47
- "@itwin/core-geometry": "4.1.0-dev.40",
48
- "@itwin/build-tools": "4.1.0-dev.40",
49
- "@itwin/core-common": "4.1.0-dev.40",
50
- "@itwin/core-frontend": "4.1.0-dev.40"
45
+ "@itwin/appui-abstract": "4.1.0-dev.50",
46
+ "@itwin/core-bentley": "4.1.0-dev.50",
47
+ "@itwin/core-common": "4.1.0-dev.50",
48
+ "@itwin/build-tools": "4.1.0-dev.50",
49
+ "@itwin/core-geometry": "4.1.0-dev.50",
50
+ "@itwin/core-frontend": "4.1.0-dev.50"
51
51
  },
52
52
  "peerDependencies": {
53
- "@itwin/core-bentley": "4.1.0-dev.40",
54
- "@itwin/appui-abstract": "4.1.0-dev.40",
55
- "@itwin/core-geometry": "4.1.0-dev.40",
56
- "@itwin/core-common": "4.1.0-dev.40"
53
+ "@itwin/appui-abstract": "4.1.0-dev.50",
54
+ "@itwin/core-bentley": "4.1.0-dev.50",
55
+ "@itwin/core-common": "4.1.0-dev.50",
56
+ "@itwin/core-geometry": "4.1.0-dev.50"
57
57
  },
58
58
  "dependencies": {
59
59
  "google-protobuf": "~3.20.1"
@@ -46,6 +46,8 @@ export class ArcGisFeatureProvider extends ArcGISImageryProvider {
46
46
  public override get minimumZoomLevel(): number { return this._minDepthFromLod; }
47
47
  public override get maximumZoomLevel(): number { return this._maxDepthFromLod; }
48
48
 
49
+ private static _extentCache = new Map<string, any>();
50
+
49
51
  constructor(settings: ImageMapLayerSettings) {
50
52
  super(settings, true);
51
53
  }
@@ -98,6 +100,7 @@ export class ArcGisFeatureProvider extends ArcGISImageryProvider {
98
100
  for (const layer of this.serviceJson.layers) {
99
101
  if (layer.defaultVisibility) {
100
102
  this._layerId = layer.id;
103
+ break;
101
104
  }
102
105
  }
103
106
  } else {
@@ -166,17 +169,24 @@ export class ArcGisFeatureProvider extends ArcGISImageryProvider {
166
169
  }
167
170
 
168
171
  // Read range using full extent from service metadata
169
- if (json.fullExtent) {
170
- if (json.fullExtent.spatialReference.latestWkid === 3857 || json.fullExtent.spatialReference.wkid === 102100) {
171
- const range3857 = Range2d.createFrom({
172
- low: {x: json.fullExtent.xmin, y: json.fullExtent.ymin},
173
- high: {x: json.fullExtent.xmax, y: json.fullExtent.ymax} });
174
-
175
- const west = this.getEPSG4326Lon(range3857.xLow);
176
- const south = this.getEPSG4326Lat(range3857.yLow);
177
- const east = this.getEPSG4326Lon(range3857.xHigh);
178
- const north = this.getEPSG4326Lat(range3857.yHigh);
179
- this.cartoRange = MapCartoRectangle.fromDegrees(west, south, east, north);
172
+ if (this._layerMetadata?.extent) {
173
+ const layerExtent = this._layerMetadata.extent;
174
+ if (layerExtent.spatialReference.latestWkid === 3857 || layerExtent.spatialReference.wkid === 102100) {
175
+ this.setCartoRangeFromExtentJson(layerExtent);
176
+ }
177
+ }
178
+
179
+ if (!this.cartoRange) {
180
+ // Range could not be found (or is not in a coordinate system we support), make a request to compute the extent
181
+ try {
182
+ const extentJson = await this.fetchLayerExtent();
183
+
184
+ if (extentJson)
185
+ this.setCartoRangeFromExtentJson(extentJson);
186
+ else
187
+ Logger.logWarning(loggerCategory, `Could not get features extent, disabling extent filtering`);
188
+ } catch {
189
+ Logger.logError(loggerCategory, `Could not get feature extent`);
180
190
  }
181
191
  }
182
192
 
@@ -193,6 +203,38 @@ export class ArcGisFeatureProvider extends ArcGISImageryProvider {
193
203
  this._symbologyRenderer = new ArcGisSymbologyRenderer(this._layerMetadata?.geometryType, this._layerMetadata?.drawingInfo?.renderer);
194
204
  }
195
205
 
206
+ private async fetchLayerExtent() {
207
+ let extentJson: any;
208
+ const tmpUrl = new URL(this._settings.url);
209
+ tmpUrl.pathname = `${tmpUrl.pathname}/${this._layerId}/query`;
210
+ tmpUrl.searchParams.append("where", "1=1");
211
+ tmpUrl.searchParams.append("outSR", "3857");
212
+ tmpUrl.searchParams.append("returnExtentOnly", "true");
213
+ tmpUrl.searchParams.append("f", "json");
214
+ const cached = ArcGisFeatureProvider._extentCache.get(tmpUrl.toString());
215
+ if (cached) {
216
+ extentJson = cached;
217
+ } else {
218
+ const response = await this.fetch(tmpUrl, { method: "GET" });
219
+ extentJson = await response.json();
220
+ ArcGisFeatureProvider._extentCache.set(tmpUrl.toString(), extentJson);
221
+ }
222
+ return (extentJson ? extentJson.extent : undefined);
223
+ }
224
+
225
+ private setCartoRangeFromExtentJson(extent: any) {
226
+ const range3857 = Range2d.createFrom({
227
+ low: { x: extent.xmin, y: extent.ymin },
228
+ high: { x: extent.xmax, y: extent.ymax },
229
+ });
230
+
231
+ const west = this.getEPSG4326Lon(range3857.xLow);
232
+ const south = this.getEPSG4326Lat(range3857.yLow);
233
+ const east = this.getEPSG4326Lon(range3857.xHigh);
234
+ const north = this.getEPSG4326Lat(range3857.yHigh);
235
+ this.cartoRange = MapCartoRectangle.fromDegrees(west, south, east, north);
236
+ }
237
+
196
238
  protected async getLayerMetadata(layerId: number) {
197
239
  let metadata: ArcGISServiceMetadata|undefined;
198
240
  try {
@@ -152,13 +152,13 @@ export class ArcGisSymbologyRenderer {
152
152
 
153
153
  constructor(geometryType: ArcGisFeatureGeometryType, rendererDefinition: any) {
154
154
  let symbol;
155
- if (rendererDefinition?.symbol !== undefined) {
155
+ if (rendererDefinition?.symbol) {
156
156
  symbol = rendererDefinition.symbol;
157
- } else if (rendererDefinition?.defaultSymbol !== undefined) {
157
+ } else if (rendererDefinition?.defaultSymbol) {
158
158
  symbol = rendererDefinition?.defaultSymbol;
159
159
  }
160
160
 
161
- if (symbol !== undefined) {
161
+ if (symbol) {
162
162
  if (symbol.type === "esriSFS") {
163
163
  this._symbol = EsriSFS.fromJSON(symbol);
164
164
  } else if (symbol.type === "esriSLS") {