@itwin/core-geometry 4.10.0-dev.32 → 4.10.0-dev.33

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 (173) hide show
  1. package/lib/cjs/Geometry.js +2 -2
  2. package/lib/cjs/Geometry.js.map +1 -1
  3. package/lib/cjs/bspline/BSpline1dNd.d.ts.map +1 -1
  4. package/lib/cjs/bspline/BSpline1dNd.js +0 -1
  5. package/lib/cjs/bspline/BSpline1dNd.js.map +1 -1
  6. package/lib/cjs/bspline/BSplineCurve.d.ts +5 -3
  7. package/lib/cjs/bspline/BSplineCurve.d.ts.map +1 -1
  8. package/lib/cjs/bspline/BSplineCurve.js +5 -4
  9. package/lib/cjs/bspline/BSplineCurve.js.map +1 -1
  10. package/lib/cjs/clipping/ClipVector.js +1 -1
  11. package/lib/cjs/clipping/ClipVector.js.map +1 -1
  12. package/lib/cjs/curve/Arc3d.d.ts.map +1 -1
  13. package/lib/cjs/curve/Arc3d.js.map +1 -1
  14. package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts +7 -5
  15. package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
  16. package/lib/cjs/curve/CurveChainWithDistanceIndex.js +9 -7
  17. package/lib/cjs/curve/CurveChainWithDistanceIndex.js.map +1 -1
  18. package/lib/cjs/curve/CurveCollection.d.ts +21 -2
  19. package/lib/cjs/curve/CurveCollection.d.ts.map +1 -1
  20. package/lib/cjs/curve/CurveCollection.js +45 -10
  21. package/lib/cjs/curve/CurveCollection.js.map +1 -1
  22. package/lib/cjs/curve/CurveExtendMode.d.ts +18 -15
  23. package/lib/cjs/curve/CurveExtendMode.d.ts.map +1 -1
  24. package/lib/cjs/curve/CurveExtendMode.js +18 -17
  25. package/lib/cjs/curve/CurveExtendMode.js.map +1 -1
  26. package/lib/cjs/curve/CurvePrimitive.d.ts +9 -5
  27. package/lib/cjs/curve/CurvePrimitive.d.ts.map +1 -1
  28. package/lib/cjs/curve/CurvePrimitive.js +9 -5
  29. package/lib/cjs/curve/CurvePrimitive.js.map +1 -1
  30. package/lib/cjs/curve/CurveProcessor.d.ts.map +1 -1
  31. package/lib/cjs/curve/CurveProcessor.js +0 -1
  32. package/lib/cjs/curve/CurveProcessor.js.map +1 -1
  33. package/lib/cjs/curve/LineSegment3d.d.ts.map +1 -1
  34. package/lib/cjs/curve/LineSegment3d.js +0 -1
  35. package/lib/cjs/curve/LineSegment3d.js.map +1 -1
  36. package/lib/cjs/curve/OffsetOptions.d.ts.map +1 -1
  37. package/lib/cjs/curve/OffsetOptions.js +4 -4
  38. package/lib/cjs/curve/OffsetOptions.js.map +1 -1
  39. package/lib/cjs/curve/Path.d.ts +14 -0
  40. package/lib/cjs/curve/Path.d.ts.map +1 -1
  41. package/lib/cjs/curve/Path.js +27 -0
  42. package/lib/cjs/curve/Path.js.map +1 -1
  43. package/lib/cjs/curve/PointString3d.d.ts.map +1 -1
  44. package/lib/cjs/curve/PointString3d.js +0 -1
  45. package/lib/cjs/curve/PointString3d.js.map +1 -1
  46. package/lib/cjs/curve/StrokeOptions.d.ts.map +1 -1
  47. package/lib/cjs/curve/StrokeOptions.js +0 -1
  48. package/lib/cjs/curve/StrokeOptions.js.map +1 -1
  49. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js +5 -4
  50. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  51. package/lib/cjs/geometry3d/FrameBuilder.d.ts.map +1 -1
  52. package/lib/cjs/geometry3d/FrameBuilder.js +0 -1
  53. package/lib/cjs/geometry3d/FrameBuilder.js.map +1 -1
  54. package/lib/cjs/geometry3d/IndexedXYCollection.d.ts.map +1 -1
  55. package/lib/cjs/geometry3d/IndexedXYCollection.js.map +1 -1
  56. package/lib/cjs/geometry3d/Point2dArrayCarrier.d.ts.map +1 -1
  57. package/lib/cjs/geometry3d/Point2dArrayCarrier.js +2 -3
  58. package/lib/cjs/geometry3d/Point2dArrayCarrier.js.map +1 -1
  59. package/lib/cjs/geometry3d/PointHelpers.d.ts.map +1 -1
  60. package/lib/cjs/geometry3d/PointHelpers.js +0 -1
  61. package/lib/cjs/geometry3d/PointHelpers.js.map +1 -1
  62. package/lib/cjs/geometry3d/YawPitchRollAngles.d.ts.map +1 -1
  63. package/lib/cjs/geometry3d/YawPitchRollAngles.js.map +1 -1
  64. package/lib/cjs/numerics/BezierPolynomials.d.ts.map +1 -1
  65. package/lib/cjs/numerics/BezierPolynomials.js +0 -1
  66. package/lib/cjs/numerics/BezierPolynomials.js.map +1 -1
  67. package/lib/cjs/polyface/AuxData.d.ts.map +1 -1
  68. package/lib/cjs/polyface/AuxData.js.map +1 -1
  69. package/lib/cjs/polyface/IndexedPolyfaceVisitor.d.ts.map +1 -1
  70. package/lib/cjs/polyface/IndexedPolyfaceVisitor.js +0 -1
  71. package/lib/cjs/polyface/IndexedPolyfaceVisitor.js.map +1 -1
  72. package/lib/cjs/polyface/Polyface.d.ts +2 -2
  73. package/lib/cjs/polyface/Polyface.d.ts.map +1 -1
  74. package/lib/cjs/polyface/Polyface.js +0 -1
  75. package/lib/cjs/polyface/Polyface.js.map +1 -1
  76. package/lib/cjs/polyface/PolyfaceBuilder.js +1 -1
  77. package/lib/cjs/polyface/PolyfaceBuilder.js.map +1 -1
  78. package/lib/cjs/polyface/PolyfaceClip.d.ts.map +1 -1
  79. package/lib/cjs/polyface/PolyfaceClip.js +0 -1
  80. package/lib/cjs/polyface/PolyfaceClip.js.map +1 -1
  81. package/lib/cjs/polyface/PolyfaceQuery.d.ts.map +1 -1
  82. package/lib/cjs/polyface/PolyfaceQuery.js +0 -1
  83. package/lib/cjs/polyface/PolyfaceQuery.js.map +1 -1
  84. package/lib/cjs/serialization/DeepCompare.d.ts.map +1 -1
  85. package/lib/cjs/serialization/DeepCompare.js +0 -1
  86. package/lib/cjs/serialization/DeepCompare.js.map +1 -1
  87. package/lib/esm/Geometry.js +2 -2
  88. package/lib/esm/Geometry.js.map +1 -1
  89. package/lib/esm/bspline/BSpline1dNd.d.ts.map +1 -1
  90. package/lib/esm/bspline/BSpline1dNd.js +0 -1
  91. package/lib/esm/bspline/BSpline1dNd.js.map +1 -1
  92. package/lib/esm/bspline/BSplineCurve.d.ts +5 -3
  93. package/lib/esm/bspline/BSplineCurve.d.ts.map +1 -1
  94. package/lib/esm/bspline/BSplineCurve.js +5 -4
  95. package/lib/esm/bspline/BSplineCurve.js.map +1 -1
  96. package/lib/esm/clipping/ClipVector.js +1 -1
  97. package/lib/esm/clipping/ClipVector.js.map +1 -1
  98. package/lib/esm/curve/Arc3d.d.ts.map +1 -1
  99. package/lib/esm/curve/Arc3d.js.map +1 -1
  100. package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts +7 -5
  101. package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
  102. package/lib/esm/curve/CurveChainWithDistanceIndex.js +9 -7
  103. package/lib/esm/curve/CurveChainWithDistanceIndex.js.map +1 -1
  104. package/lib/esm/curve/CurveCollection.d.ts +21 -2
  105. package/lib/esm/curve/CurveCollection.d.ts.map +1 -1
  106. package/lib/esm/curve/CurveCollection.js +45 -10
  107. package/lib/esm/curve/CurveCollection.js.map +1 -1
  108. package/lib/esm/curve/CurveExtendMode.d.ts +18 -15
  109. package/lib/esm/curve/CurveExtendMode.d.ts.map +1 -1
  110. package/lib/esm/curve/CurveExtendMode.js +18 -17
  111. package/lib/esm/curve/CurveExtendMode.js.map +1 -1
  112. package/lib/esm/curve/CurvePrimitive.d.ts +9 -5
  113. package/lib/esm/curve/CurvePrimitive.d.ts.map +1 -1
  114. package/lib/esm/curve/CurvePrimitive.js +9 -5
  115. package/lib/esm/curve/CurvePrimitive.js.map +1 -1
  116. package/lib/esm/curve/CurveProcessor.d.ts.map +1 -1
  117. package/lib/esm/curve/CurveProcessor.js +0 -1
  118. package/lib/esm/curve/CurveProcessor.js.map +1 -1
  119. package/lib/esm/curve/LineSegment3d.d.ts.map +1 -1
  120. package/lib/esm/curve/LineSegment3d.js +0 -1
  121. package/lib/esm/curve/LineSegment3d.js.map +1 -1
  122. package/lib/esm/curve/OffsetOptions.d.ts.map +1 -1
  123. package/lib/esm/curve/OffsetOptions.js +4 -4
  124. package/lib/esm/curve/OffsetOptions.js.map +1 -1
  125. package/lib/esm/curve/Path.d.ts +14 -0
  126. package/lib/esm/curve/Path.d.ts.map +1 -1
  127. package/lib/esm/curve/Path.js +27 -0
  128. package/lib/esm/curve/Path.js.map +1 -1
  129. package/lib/esm/curve/PointString3d.d.ts.map +1 -1
  130. package/lib/esm/curve/PointString3d.js +0 -1
  131. package/lib/esm/curve/PointString3d.js.map +1 -1
  132. package/lib/esm/curve/StrokeOptions.d.ts.map +1 -1
  133. package/lib/esm/curve/StrokeOptions.js +0 -1
  134. package/lib/esm/curve/StrokeOptions.js.map +1 -1
  135. package/lib/esm/curve/internalContexts/PolygonOffsetContext.js +5 -4
  136. package/lib/esm/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  137. package/lib/esm/geometry3d/FrameBuilder.d.ts.map +1 -1
  138. package/lib/esm/geometry3d/FrameBuilder.js +0 -1
  139. package/lib/esm/geometry3d/FrameBuilder.js.map +1 -1
  140. package/lib/esm/geometry3d/IndexedXYCollection.d.ts.map +1 -1
  141. package/lib/esm/geometry3d/IndexedXYCollection.js.map +1 -1
  142. package/lib/esm/geometry3d/Point2dArrayCarrier.d.ts.map +1 -1
  143. package/lib/esm/geometry3d/Point2dArrayCarrier.js +0 -1
  144. package/lib/esm/geometry3d/Point2dArrayCarrier.js.map +1 -1
  145. package/lib/esm/geometry3d/PointHelpers.d.ts.map +1 -1
  146. package/lib/esm/geometry3d/PointHelpers.js +0 -1
  147. package/lib/esm/geometry3d/PointHelpers.js.map +1 -1
  148. package/lib/esm/geometry3d/YawPitchRollAngles.d.ts.map +1 -1
  149. package/lib/esm/geometry3d/YawPitchRollAngles.js.map +1 -1
  150. package/lib/esm/numerics/BezierPolynomials.d.ts.map +1 -1
  151. package/lib/esm/numerics/BezierPolynomials.js +0 -1
  152. package/lib/esm/numerics/BezierPolynomials.js.map +1 -1
  153. package/lib/esm/polyface/AuxData.d.ts.map +1 -1
  154. package/lib/esm/polyface/AuxData.js.map +1 -1
  155. package/lib/esm/polyface/IndexedPolyfaceVisitor.d.ts.map +1 -1
  156. package/lib/esm/polyface/IndexedPolyfaceVisitor.js +0 -1
  157. package/lib/esm/polyface/IndexedPolyfaceVisitor.js.map +1 -1
  158. package/lib/esm/polyface/Polyface.d.ts +2 -2
  159. package/lib/esm/polyface/Polyface.d.ts.map +1 -1
  160. package/lib/esm/polyface/Polyface.js +0 -1
  161. package/lib/esm/polyface/Polyface.js.map +1 -1
  162. package/lib/esm/polyface/PolyfaceBuilder.js +1 -1
  163. package/lib/esm/polyface/PolyfaceBuilder.js.map +1 -1
  164. package/lib/esm/polyface/PolyfaceClip.d.ts.map +1 -1
  165. package/lib/esm/polyface/PolyfaceClip.js +0 -1
  166. package/lib/esm/polyface/PolyfaceClip.js.map +1 -1
  167. package/lib/esm/polyface/PolyfaceQuery.d.ts.map +1 -1
  168. package/lib/esm/polyface/PolyfaceQuery.js +0 -1
  169. package/lib/esm/polyface/PolyfaceQuery.js.map +1 -1
  170. package/lib/esm/serialization/DeepCompare.d.ts.map +1 -1
  171. package/lib/esm/serialization/DeepCompare.js +0 -1
  172. package/lib/esm/serialization/DeepCompare.js.map +1 -1
  173. package/package.json +6 -6
@@ -1 +1 @@
1
- {"version":3,"file":"DeepCompare.d.ts","sourceRoot":"","sources":["../../../src/serialization/DeepCompare.ts"],"names":[],"mappings":"AAKA;;GAEG;AAIH;;;GAGG;AACH,qBAAa,WAAW;IACtB,kDAAkD;IAC3C,UAAU;;;;;;;;MAQf;IACF,oEAAoE;IAC7D,cAAc,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAM;IACtD,mCAAmC;IAC5B,YAAY,EAAE,GAAG,EAAE,CAAM;IAChC,6DAA6D;IACtD,YAAY,EAAE,MAAM,CAAC;IAC5B,2DAA2D;gBACxC,YAAY,SAAU;IAEzC;;OAEG;IACI,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAWzC,OAAO,CAAC,YAAY;IAgDpB,OAAO,CAAC,aAAa;IAsCrB,OAAO,CAAC,QAAQ;IAMhB;;OAEG;IACI,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO;IAU3D,OAAO,CAAC,eAAe;CAgCxB"}
1
+ {"version":3,"file":"DeepCompare.d.ts","sourceRoot":"","sources":["../../../src/serialization/DeepCompare.ts"],"names":[],"mappings":"AAKA;;GAEG;AAEH;;;GAGG;AACH,qBAAa,WAAW;IACtB,kDAAkD;IAC3C,UAAU;;;;;;;;MAQf;IACF,oEAAoE;IAC7D,cAAc,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAM;IACtD,mCAAmC;IAC5B,YAAY,EAAE,GAAG,EAAE,CAAM;IAChC,6DAA6D;IACtD,YAAY,EAAE,MAAM,CAAC;IAC5B,2DAA2D;gBACxC,YAAY,SAAU;IAEzC;;OAEG;IACI,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAWzC,OAAO,CAAC,YAAY;IAgDpB,OAAO,CAAC,aAAa;IAsCrB,OAAO,CAAC,QAAQ;IAMhB;;OAEG;IACI,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO;IAU3D,OAAO,CAAC,eAAe;CAgCxB"}
@@ -5,7 +5,6 @@
5
5
  /** @packageDocumentation
6
6
  * @module Serialization
7
7
  */
8
- /* eslint-disable quote-props */
9
8
  /**
10
9
  * Utilities to compare json objects by searching through their properties.
11
10
  * @public
@@ -1 +1 @@
1
- {"version":3,"file":"DeepCompare.js","sourceRoot":"","sources":["../../../src/serialization/DeepCompare.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAE/F;;GAEG;AAEH,gCAAgC;AAEhC;;;GAGG;AACH,MAAM,OAAO,WAAW;IAiBtB,2DAA2D;IAC3D,YAAmB,YAAY,GAAG,OAAO;QAjBzC,kDAAkD;QAC3C,eAAU,GAAG;YAClB,OAAO,EAAE,CAAC;YACV,MAAM,EAAE,CAAC;YACT,SAAS,EAAE,CAAC;YACZ,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE,CAAC;YACX,SAAS,EAAE,CAAC;SACb,CAAC;QACF,oEAAoE;QAC7D,mBAAc,GAA8B,EAAE,CAAC;QACtD,mCAAmC;QAC5B,iBAAY,GAAU,EAAE,CAAC;QAIa,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IAAC,CAAC;IAEhF;;OAEG;IACI,aAAa,CAAC,CAAS,EAAE,CAAS;QACvC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1E,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC7B,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC7B,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,8BAA8B,CAAC,CAAC;YAC/G,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAEO,YAAY,CAAC,CAAQ,EAAE,CAAQ;QACrC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;YAC1B,MAAM,QAAQ,GAA2B,EAAE,CAAC;YAC5C,MAAM,QAAQ,GAA2B,EAAE,CAAC;YAC5C,0HAA0H;YAC1H,KAAK,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClB,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC1E,KAAK,MAAM,QAAQ,IAAI,CAAC,EAAE,CAAC;wBACzB,IAAI,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;4BAC/B,+CAA+C;4BAC/C,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC;gCACpC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;4BACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;wBACvB,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YACD,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACpC,0HAA0H;YAC1H,KAAK,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClB,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC1E,KAAK,MAAM,QAAQ,IAAI,CAAC,EAAE,CAAC;wBACzB,IAAI,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;4BAC/B,+CAA+C;4BAC/C,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC;gCACpC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;4BACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;wBACvB,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YACD,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAEpC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC,MAAM,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;YACxF,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;QACD,iDAAiD;QACjD,IAAI,QAAQ,GAAG,IAAI,CAAC;QACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAClC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtC,QAAQ,GAAG,KAAK,CAAC;gBACjB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;gBAC/C,MAAM;YACR,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;IAEO,aAAa,CAAC,CAAM,EAAE,CAAM;QAClC,gEAAgE;QAChE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI;YACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;YACxD,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,8BAA8B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC7F,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;QACD,mDAAmD;QACnD,IAAI,QAAQ,GAAG,IAAI,CAAC;QACpB,KAAK,MAAM,QAAQ,IAAI,CAAC,EAAE,CAAC;YACzB,2CAA2C;YAC3C,IAAI,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC/B,wDAAwD;gBACxD,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAClD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gBACpC,CAAC;gBACD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAEhC,uCAAuC;gBACvC,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;oBAClC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,QAAQ,gBAAgB,CAAC,CAAC;oBAChE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oBAC7B,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oBAC7B,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAC9B,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;oBACpD,gDAAgD;oBAChD,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;oBACpC,QAAQ,GAAG,KAAK,CAAC;oBACjB,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;IAED,+EAA+E;IACvE,QAAQ,CAAC,KAAc;QAC7B,IAAI,KAAK;YACP,OAAO,IAAI,CAAC;QACd,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACI,OAAO,CAAC,CAAM,EAAE,CAAM,EAAE,SAAkB;QAC/C,IAAI,SAAS,KAAK,SAAS;YACzB,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;QAChC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,CAAC,CAAC;QAC5L,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACpC,CAAC;IAED,yEAAyE;IACjE,eAAe,CAAC,CAAM,EAAE,CAAM;QACpC,IAAI,OAAO,CAAC,KAAK,OAAO,CAAC,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;aAAM,IAAI,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,EAAE,CAAC;YAC9D,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAClC,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAChD,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACjC,CAAC;aAAM,IAAI,OAAO,CAAC,KAAK,UAAU,IAAI,OAAO,CAAC,KAAK,UAAU,EAAE,CAAC;YAC9D,0CAA0C;YAC1C,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC;QACd,CAAC;aAAM,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC1D,+CAA+C;YAC/C,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC1B,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACrD,CAAC;aAAM,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC1D,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC1B,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC;aAAM,IAAI,OAAO,CAAC,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,SAAS,EAAE,CAAC;YAC5D,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;YAC3B,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC;aAAM,IAAI,OAAO,CAAC,KAAK,WAAW,IAAI,OAAO,CAAC,KAAK,WAAW,EAAE,CAAC;YAChE,6CAA6C;YAC7C,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC;QACd,CAAC;aAAM,CAAC;YACN,mBAAmB;YACnB,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;CACF","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\n/** @packageDocumentation\r\n * @module Serialization\r\n */\r\n\r\n/* eslint-disable quote-props */\r\n\r\n/**\r\n * Utilities to compare json objects by searching through their properties.\r\n * @public\r\n */\r\nexport class DeepCompare {\r\n /** Statistical accumulations during searchers. */\r\n public typeCounts = {\r\n numbers: 0,\r\n arrays: 0,\r\n functions: 0,\r\n objects: 0,\r\n strings: 0,\r\n booleans: 0,\r\n undefined: 0,\r\n };\r\n /** Counts of property names encountered during various searches. */\r\n public propertyCounts: { [key: string]: number } = {};\r\n /** Array of error descriptions. */\r\n public errorTracker: any[] = [];\r\n /** relative tolerance for declaring numeric values equal. */\r\n public numberRelTol: number;\r\n /** Construct comparison object with relative tolerance. */\r\n public constructor(numberRelTol = 1.0e-12) { this.numberRelTol = numberRelTol; }\r\n\r\n /** Test if a and b are within tolerance.\r\n * * If not, push error message to errorTracker.\r\n */\r\n public compareNumber(a: number, b: number) {\r\n if (Math.abs(b - a) < this.numberRelTol * (1 + Math.abs(a) + Math.abs(b))) {\r\n return this.announce(true);\r\n } else {\r\n this.errorTracker.unshift(b);\r\n this.errorTracker.unshift(a);\r\n this.errorTracker.unshift(`In ${this.errorTracker[this.errorTracker.length - 1]} property: Mismatched values`);\r\n return this.announce(false);\r\n }\r\n }\r\n\r\n private compareArray(a: any[], b: any[]) {\r\n if (a.length !== b.length) {\r\n const aCounter: { [key: string]: any } = {};\r\n const bCounter: { [key: string]: any } = {};\r\n // Append object to tracker that counts the properties of each array element (which is an object) in b, ONLY AT THIS LEVEL\r\n for (const i of b) {\r\n if (typeof i === \"object\" && typeof i !== \"function\" && !Array.isArray(i)) {\r\n for (const property in i) {\r\n if (i.hasOwnProperty(property)) {\r\n // Add property to counter if not already there\r\n if (!bCounter.hasOwnProperty(property))\r\n bCounter[property] = 0;\r\n bCounter[property]++;\r\n }\r\n }\r\n }\r\n }\r\n this.errorTracker.unshift(bCounter);\r\n // Append object to tracker that counts the properties of each array element (which is an object) in a, ONLY AT THIS LEVEL\r\n for (const i of a) {\r\n if (typeof i === \"object\" && typeof i !== \"function\" && !Array.isArray(i)) {\r\n for (const property in i) {\r\n if (i.hasOwnProperty(property)) {\r\n // Add property to counter if not already there\r\n if (!aCounter.hasOwnProperty(property))\r\n aCounter[property] = 0;\r\n aCounter[property]++;\r\n }\r\n }\r\n }\r\n }\r\n this.errorTracker.unshift(aCounter);\r\n\r\n this.errorTracker.unshift(`Mismatched array lengths a: [${a.length}] b: [${b.length}]`);\r\n return this.announce(false);\r\n }\r\n // Keep track of result for each element of array\r\n let toReturn = true;\r\n for (let i = 0; i < a.length; i++) {\r\n if (!this.compareInternal(a[i], b[i])) {\r\n toReturn = false;\r\n this.errorTracker.unshift(`[${i.toString()}]`);\r\n break;\r\n }\r\n }\r\n return this.announce(toReturn);\r\n }\r\n\r\n private compareObject(a: any, b: any) {\r\n // Check that both objects contain the same amount of properties\r\n if (a == null && b == null)\r\n return this.announce(true);\r\n if ((Object.keys(a)).length !== (Object.keys(b)).length) {\r\n this.errorTracker.unshift(`Mismatched property lists [${Object.keys(a)}][${Object.keys(b)}`);\r\n return this.announce(false);\r\n }\r\n // Keep track of result for each property of object\r\n let toReturn = true;\r\n for (const property in a) {\r\n // Only check non-generic object properties\r\n if (a.hasOwnProperty(property)) {\r\n // If property does not exist in propertyCounter, add it\r\n if (!this.propertyCounts.hasOwnProperty(property)) {\r\n this.propertyCounts[property] = 0;\r\n }\r\n this.propertyCounts[property]++;\r\n\r\n // Check that same property exists in b\r\n if (!(b.hasOwnProperty(property))) {\r\n this.errorTracker.unshift(`Property ${property} of A not in B`);\r\n this.errorTracker.unshift(a);\r\n this.errorTracker.unshift(b);\r\n return this.announce(false);\r\n }\r\n if (!this.compareInternal(a[property], b[property])) {\r\n // If not true, push property and break the loop\r\n this.errorTracker.unshift(property);\r\n toReturn = false;\r\n break;\r\n }\r\n }\r\n }\r\n return this.announce(toReturn);\r\n }\r\n\r\n // this is a convenient place for a breakpoint on failures in areSameStructure.\r\n private announce(value: boolean): boolean {\r\n if (value)\r\n return true;\r\n return false;\r\n }\r\n\r\n /** Main entry for comparing deep json objects.\r\n * * errorTracker, typeCounts, and propertyCounts are cleared.\r\n */\r\n public compare(a: any, b: any, tolerance?: number): boolean {\r\n if (tolerance !== undefined)\r\n this.numberRelTol = tolerance;\r\n this.errorTracker.length = 0;\r\n this.typeCounts.numbers = this.typeCounts.arrays = this.typeCounts.functions = this.typeCounts.objects = this.typeCounts.strings = this.typeCounts.booleans = this.typeCounts.undefined = 0;\r\n this.propertyCounts = {};\r\n return this.compareInternal(a, b);\r\n }\r\n\r\n // Recursive function for comparing any two nodes in a json object \"tree\"\r\n private compareInternal(a: any, b: any): boolean {\r\n if (typeof a !== typeof b) {\r\n return this.announce(false);\r\n } else if ((typeof a === \"number\") && (typeof b === \"number\")) {\r\n this.typeCounts.numbers++;\r\n return this.compareNumber(a, b);\r\n } else if (Array.isArray(a) && Array.isArray(b)) {\r\n this.typeCounts.arrays++;\r\n return this.compareArray(a, b);\r\n } else if (typeof a === \"function\" && typeof b === \"function\") {\r\n // No current necessity to check functions\r\n this.typeCounts.functions++;\r\n return true;\r\n } else if (typeof a === \"object\" && typeof b === \"object\") {\r\n // Argument is object but not array or function\r\n this.typeCounts.objects++;\r\n return (a === b) ? true : this.compareObject(a, b);\r\n } else if (typeof a === \"string\" && typeof b === \"string\") {\r\n this.typeCounts.strings++;\r\n return a === b;\r\n } else if (typeof a === \"boolean\" && typeof b === \"boolean\") {\r\n this.typeCounts.booleans++;\r\n return a === b;\r\n } else if (typeof a === \"undefined\" && typeof b === \"undefined\") {\r\n // As long as both are undefined, return true\r\n this.typeCounts.undefined++;\r\n return true;\r\n } else {\r\n // Unsupported type\r\n return this.announce(false);\r\n }\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"DeepCompare.js","sourceRoot":"","sources":["../../../src/serialization/DeepCompare.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\n/** @packageDocumentation\r\n * @module Serialization\r\n */\r\n\r\n/**\r\n * Utilities to compare json objects by searching through their properties.\r\n * @public\r\n */\r\nexport class DeepCompare {\r\n /** Statistical accumulations during searchers. */\r\n public typeCounts = {\r\n numbers: 0,\r\n arrays: 0,\r\n functions: 0,\r\n objects: 0,\r\n strings: 0,\r\n booleans: 0,\r\n undefined: 0,\r\n };\r\n /** Counts of property names encountered during various searches. */\r\n public propertyCounts: { [key: string]: number } = {};\r\n /** Array of error descriptions. */\r\n public errorTracker: any[] = [];\r\n /** relative tolerance for declaring numeric values equal. */\r\n public numberRelTol: number;\r\n /** Construct comparison object with relative tolerance. */\r\n public constructor(numberRelTol = 1.0e-12) { this.numberRelTol = numberRelTol; }\r\n\r\n /** Test if a and b are within tolerance.\r\n * * If not, push error message to errorTracker.\r\n */\r\n public compareNumber(a: number, b: number) {\r\n if (Math.abs(b - a) < this.numberRelTol * (1 + Math.abs(a) + Math.abs(b))) {\r\n return this.announce(true);\r\n } else {\r\n this.errorTracker.unshift(b);\r\n this.errorTracker.unshift(a);\r\n this.errorTracker.unshift(`In ${this.errorTracker[this.errorTracker.length - 1]} property: Mismatched values`);\r\n return this.announce(false);\r\n }\r\n }\r\n\r\n private compareArray(a: any[], b: any[]) {\r\n if (a.length !== b.length) {\r\n const aCounter: { [key: string]: any } = {};\r\n const bCounter: { [key: string]: any } = {};\r\n // Append object to tracker that counts the properties of each array element (which is an object) in b, ONLY AT THIS LEVEL\r\n for (const i of b) {\r\n if (typeof i === \"object\" && typeof i !== \"function\" && !Array.isArray(i)) {\r\n for (const property in i) {\r\n if (i.hasOwnProperty(property)) {\r\n // Add property to counter if not already there\r\n if (!bCounter.hasOwnProperty(property))\r\n bCounter[property] = 0;\r\n bCounter[property]++;\r\n }\r\n }\r\n }\r\n }\r\n this.errorTracker.unshift(bCounter);\r\n // Append object to tracker that counts the properties of each array element (which is an object) in a, ONLY AT THIS LEVEL\r\n for (const i of a) {\r\n if (typeof i === \"object\" && typeof i !== \"function\" && !Array.isArray(i)) {\r\n for (const property in i) {\r\n if (i.hasOwnProperty(property)) {\r\n // Add property to counter if not already there\r\n if (!aCounter.hasOwnProperty(property))\r\n aCounter[property] = 0;\r\n aCounter[property]++;\r\n }\r\n }\r\n }\r\n }\r\n this.errorTracker.unshift(aCounter);\r\n\r\n this.errorTracker.unshift(`Mismatched array lengths a: [${a.length}] b: [${b.length}]`);\r\n return this.announce(false);\r\n }\r\n // Keep track of result for each element of array\r\n let toReturn = true;\r\n for (let i = 0; i < a.length; i++) {\r\n if (!this.compareInternal(a[i], b[i])) {\r\n toReturn = false;\r\n this.errorTracker.unshift(`[${i.toString()}]`);\r\n break;\r\n }\r\n }\r\n return this.announce(toReturn);\r\n }\r\n\r\n private compareObject(a: any, b: any) {\r\n // Check that both objects contain the same amount of properties\r\n if (a == null && b == null)\r\n return this.announce(true);\r\n if ((Object.keys(a)).length !== (Object.keys(b)).length) {\r\n this.errorTracker.unshift(`Mismatched property lists [${Object.keys(a)}][${Object.keys(b)}`);\r\n return this.announce(false);\r\n }\r\n // Keep track of result for each property of object\r\n let toReturn = true;\r\n for (const property in a) {\r\n // Only check non-generic object properties\r\n if (a.hasOwnProperty(property)) {\r\n // If property does not exist in propertyCounter, add it\r\n if (!this.propertyCounts.hasOwnProperty(property)) {\r\n this.propertyCounts[property] = 0;\r\n }\r\n this.propertyCounts[property]++;\r\n\r\n // Check that same property exists in b\r\n if (!(b.hasOwnProperty(property))) {\r\n this.errorTracker.unshift(`Property ${property} of A not in B`);\r\n this.errorTracker.unshift(a);\r\n this.errorTracker.unshift(b);\r\n return this.announce(false);\r\n }\r\n if (!this.compareInternal(a[property], b[property])) {\r\n // If not true, push property and break the loop\r\n this.errorTracker.unshift(property);\r\n toReturn = false;\r\n break;\r\n }\r\n }\r\n }\r\n return this.announce(toReturn);\r\n }\r\n\r\n // this is a convenient place for a breakpoint on failures in areSameStructure.\r\n private announce(value: boolean): boolean {\r\n if (value)\r\n return true;\r\n return false;\r\n }\r\n\r\n /** Main entry for comparing deep json objects.\r\n * * errorTracker, typeCounts, and propertyCounts are cleared.\r\n */\r\n public compare(a: any, b: any, tolerance?: number): boolean {\r\n if (tolerance !== undefined)\r\n this.numberRelTol = tolerance;\r\n this.errorTracker.length = 0;\r\n this.typeCounts.numbers = this.typeCounts.arrays = this.typeCounts.functions = this.typeCounts.objects = this.typeCounts.strings = this.typeCounts.booleans = this.typeCounts.undefined = 0;\r\n this.propertyCounts = {};\r\n return this.compareInternal(a, b);\r\n }\r\n\r\n // Recursive function for comparing any two nodes in a json object \"tree\"\r\n private compareInternal(a: any, b: any): boolean {\r\n if (typeof a !== typeof b) {\r\n return this.announce(false);\r\n } else if ((typeof a === \"number\") && (typeof b === \"number\")) {\r\n this.typeCounts.numbers++;\r\n return this.compareNumber(a, b);\r\n } else if (Array.isArray(a) && Array.isArray(b)) {\r\n this.typeCounts.arrays++;\r\n return this.compareArray(a, b);\r\n } else if (typeof a === \"function\" && typeof b === \"function\") {\r\n // No current necessity to check functions\r\n this.typeCounts.functions++;\r\n return true;\r\n } else if (typeof a === \"object\" && typeof b === \"object\") {\r\n // Argument is object but not array or function\r\n this.typeCounts.objects++;\r\n return (a === b) ? true : this.compareObject(a, b);\r\n } else if (typeof a === \"string\" && typeof b === \"string\") {\r\n this.typeCounts.strings++;\r\n return a === b;\r\n } else if (typeof a === \"boolean\" && typeof b === \"boolean\") {\r\n this.typeCounts.booleans++;\r\n return a === b;\r\n } else if (typeof a === \"undefined\" && typeof b === \"undefined\") {\r\n // As long as both are undefined, return true\r\n this.typeCounts.undefined++;\r\n return true;\r\n } else {\r\n // Unsupported type\r\n return this.announce(false);\r\n }\r\n }\r\n}\r\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@itwin/core-geometry",
3
- "version": "4.10.0-dev.32",
3
+ "version": "4.10.0-dev.33",
4
4
  "description": "iTwin.js Core Geometry library",
5
5
  "main": "lib/cjs/core-geometry.js",
6
6
  "module": "lib/esm/core-geometry.js",
@@ -23,19 +23,19 @@
23
23
  "url": "http://www.bentley.com"
24
24
  },
25
25
  "devDependencies": {
26
- "@itwin/eslint-plugin": "^4.0.2",
26
+ "@itwin/eslint-plugin": "5.0.0-dev.1",
27
27
  "@types/flatbuffers": "~1.10.0",
28
28
  "@types/node": "~18.16.20",
29
29
  "@vitest/coverage-v8": "^2.1.0",
30
- "eslint": "^8.56.0",
30
+ "eslint": "^9.13.0",
31
31
  "rimraf": "^3.0.2",
32
32
  "typescript": "~5.6.2",
33
33
  "vitest": "^2.1.0",
34
- "@itwin/build-tools": "4.10.0-dev.32"
34
+ "@itwin/build-tools": "4.10.0-dev.33"
35
35
  },
36
36
  "dependencies": {
37
37
  "flatbuffers": "~1.12.0",
38
- "@itwin/core-bentley": "4.10.0-dev.32"
38
+ "@itwin/core-bentley": "4.10.0-dev.33"
39
39
  },
40
40
  "scripts": {
41
41
  "build": "npm run -s build:cjs && npm run -s build:esm",
@@ -48,7 +48,7 @@
48
48
  "extract-api-test": "betools extract-api --entry=core-geometry",
49
49
  "docs": "betools docs --tsIndexFile=./core-geometry.ts --json=../../generated-docs/core/core-geometry/file.json --onlyJson",
50
50
  "cover": "vitest --run --coverage",
51
- "lint": "eslint -f visualstudio \"./src/**/*.ts\" 1>&2",
51
+ "lint": "eslint \"./src/**/*.ts\" 1>&2",
52
52
  "lint-fix": "eslint --fix -f visualstudio \"./src/**/*.ts\" 1>&2"
53
53
  }
54
54
  }