quick-json5 0.1.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 (84) hide show
  1. package/LICENSE.md +7 -0
  2. package/README.md +66 -0
  3. package/dist/exports/Exports.d.ts +6 -0
  4. package/dist/exports/Exports.d.ts.map +1 -0
  5. package/dist/exports/Exports.js +6 -0
  6. package/dist/exports/Exports.js.map +1 -0
  7. package/dist/json/JsonEncoder.d.ts +3 -0
  8. package/dist/json/JsonEncoder.d.ts.map +1 -0
  9. package/dist/json/JsonEncoder.js +147 -0
  10. package/dist/json/JsonEncoder.js.map +1 -0
  11. package/dist/json/JsonParser.d.ts +3 -0
  12. package/dist/json/JsonParser.d.ts.map +1 -0
  13. package/dist/json/JsonParser.js +378 -0
  14. package/dist/json/JsonParser.js.map +1 -0
  15. package/dist/json5/Json5Encoder.d.ts +3 -0
  16. package/dist/json5/Json5Encoder.d.ts.map +1 -0
  17. package/dist/json5/Json5Encoder.js +155 -0
  18. package/dist/json5/Json5Encoder.js.map +1 -0
  19. package/dist/json5/Json5Parser.d.ts +3 -0
  20. package/dist/json5/Json5Parser.d.ts.map +1 -0
  21. package/dist/json5/Json5Parser.js +781 -0
  22. package/dist/json5/Json5Parser.js.map +1 -0
  23. package/dist/tests/Json5EncoderTest.d.ts +2 -0
  24. package/dist/tests/Json5EncoderTest.d.ts.map +1 -0
  25. package/dist/tests/Json5EncoderTest.js +44 -0
  26. package/dist/tests/Json5EncoderTest.js.map +1 -0
  27. package/dist/tests/Json5ParserTests.d.ts +3 -0
  28. package/dist/tests/Json5ParserTests.d.ts.map +1 -0
  29. package/dist/tests/Json5ParserTests.js +211 -0
  30. package/dist/tests/Json5ParserTests.js.map +1 -0
  31. package/dist/tests/JsonEncoderTests.d.ts +2 -0
  32. package/dist/tests/JsonEncoderTests.d.ts.map +1 -0
  33. package/dist/tests/JsonEncoderTests.js +44 -0
  34. package/dist/tests/JsonEncoderTests.js.map +1 -0
  35. package/dist/tests/JsonParserTests.d.ts +3 -0
  36. package/dist/tests/JsonParserTests.d.ts.map +1 -0
  37. package/dist/tests/JsonParserTests.js +140 -0
  38. package/dist/tests/JsonParserTests.js.map +1 -0
  39. package/dist/tests/Test.d.ts +2 -0
  40. package/dist/tests/Test.d.ts.map +1 -0
  41. package/dist/tests/Test.js +9 -0
  42. package/dist/tests/Test.js.map +1 -0
  43. package/dist/types/Types.d.ts +8 -0
  44. package/dist/types/Types.d.ts.map +1 -0
  45. package/dist/types/Types.js +2 -0
  46. package/dist/types/Types.js.map +1 -0
  47. package/dist/unused/Unused.d.ts +2 -0
  48. package/dist/unused/Unused.d.ts.map +1 -0
  49. package/dist/unused/Unused.js +47 -0
  50. package/dist/unused/Unused.js.map +1 -0
  51. package/dist/utilities/JsonParseError.d.ts +7 -0
  52. package/dist/utilities/JsonParseError.d.ts.map +1 -0
  53. package/dist/utilities/JsonParseError.js +10 -0
  54. package/dist/utilities/JsonParseError.js.map +1 -0
  55. package/dist/utilities/ObjectUtilities.d.ts +2 -0
  56. package/dist/utilities/ObjectUtilities.d.ts.map +1 -0
  57. package/dist/utilities/ObjectUtilities.js +142 -0
  58. package/dist/utilities/ObjectUtilities.js.map +1 -0
  59. package/dist/utilities/TypedArray.d.ts +4 -0
  60. package/dist/utilities/TypedArray.d.ts.map +1 -0
  61. package/dist/utilities/TypedArray.js +2 -0
  62. package/dist/utilities/TypedArray.js.map +1 -0
  63. package/dist/utilities/Utilities.d.ts +17 -0
  64. package/dist/utilities/Utilities.d.ts.map +1 -0
  65. package/dist/utilities/Utilities.js +97 -0
  66. package/dist/utilities/Utilities.js.map +1 -0
  67. package/package.json +38 -0
  68. package/src/exports/Exports.ts +7 -0
  69. package/src/json/JsonEncoder.ts +180 -0
  70. package/src/json/JsonParser.ts +491 -0
  71. package/src/json5/Json5Encoder.ts +189 -0
  72. package/src/json5/Json5Parser.ts +959 -0
  73. package/src/tests/Json5EncoderTest.ts +51 -0
  74. package/src/tests/Json5ParserTests.ts +237 -0
  75. package/src/tests/JsonEncoderTests.ts +51 -0
  76. package/src/tests/JsonParserTests.ts +159 -0
  77. package/src/tests/Test.ts +13 -0
  78. package/src/types/Types.ts +9 -0
  79. package/src/unused/Unused.ts +51 -0
  80. package/src/utilities/JsonParseError.ts +7 -0
  81. package/src/utilities/ObjectUtilities.ts +184 -0
  82. package/src/utilities/TypedArray.ts +39 -0
  83. package/src/utilities/Utilities.ts +130 -0
  84. package/tsconfig.json +55 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Json5Parser.js","sourceRoot":"","sources":["../../src/json5/Json5Parser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAChE,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAEpG,MAAM,UAAU,KAAK,CAAC,UAAkB,EAAE,OAA6B,EAAE,OAAsB;IAC9F,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;QACpC,MAAM,IAAI,SAAS,CAAC,8CAA8C,CAAC,CAAA;IACpE,CAAC;IAED,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;QAC5D,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC,CAAA;IACvD,CAAC;IAED,MAAM,iBAAiB,GAAG,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAA;IAE5D,IAAI,YAAY,GAAG,CAAC,CAAA;IAEpB,SAAS,KAAK,CAAC,eAAuB;QACrC,4FAA4F;QAC5F,eAAe;QACf,4FAA4F;QAC5F,IAAI,eAAe,KAAK,EAAE,IAAI,eAAe,KAAK,EAAE,EAAE,CAAC,CAAC,+BAA+B;YACtF,YAAY,IAAI,CAAC,CAAA;YAEjB,kFAAkF;YAClF,CAAC;gBACA,MAAM,eAAe,GAAG,UAAU,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;gBAE1D,IAAI,KAA8B,CAAA;gBAElC,IAAI,eAAe,KAAK,EAAE,EAAE,CAAC;oBAC5B,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;gBAC/C,CAAC;qBAAM,CAAC;oBACP,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;gBAC/C,CAAC;gBAED,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;oBACpB,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;oBAE5B,MAAM,GAAG,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;oBAE5D,YAAY,IAAI,WAAW,CAAC,MAAM,CAAA;oBAElC,OAAO,GAAG,CAAA;gBACX,CAAC;YACF,CAAC;YAED,yGAAyG;YACzG,IAAI,aAAa,GAAG,EAAE,CAAA;YAEtB,OAAO,IAAI,EAAE,CAAC;gBACb,MAAM,QAAQ,GAAG,sBAAsB,EAAE,CAAA;gBAEzC,IAAI,QAAQ,KAAK,eAAe,EAAE,CAAC,CAAC,cAAc;oBACjD,MAAK;gBACN,CAAC;qBAAM,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO;oBACpC,MAAM,sBAAsB,GAAG,sBAAsB,EAAE,CAAA;oBAEvD,IAAI,sBAAsB,IAAI,EAAE,EAAE,CAAC;wBAClC,IAAI,sBAAsB,KAAK,EAAE,EAAE,CAAC;4BACnC,2CAA2C;wBAC5C,CAAC;6BAAM,IAAI,sBAAsB,KAAK,EAAE,EAAE,CAAC;4BAC1C,4DAA4D;4BAC5D,IAAI,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC;gCAChD,YAAY,IAAI,CAAC,CAAA;4BAClB,CAAC;wBACF,CAAC;6BAAM,IAAI,sBAAsB,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM;4BACjD,aAAa,IAAI,IAAI,CAAA;wBACtB,CAAC;6BAAM,IAAI,sBAAsB,IAAI,EAAE,IAAI,sBAAsB,IAAI,EAAE,EAAE,CAAC;4BACzE,MAAM,YAAY,GAAG,6BAA6B,EAAE,CAAA;4BAEpD,MAAM,IAAI,eAAe,CAAC,4CAA4C,YAAY,CAAC,cAAc,GAAG,EAAE,YAAY,CAAC,CAAA;wBACpH,CAAC;6BAAM,CAAC;4BACP,aAAa,IAAI,MAAM,CAAC,YAAY,CAAC,sBAAsB,CAAC,CAAA;wBAC7D,CAAC;oBACF,CAAC;yBAAM,IAAI,sBAAsB,KAAK,GAAG,EAAE,CAAC,CAAC,MAAM;wBAClD,aAAa,IAAI,IAAI,CAAA;oBACtB,CAAC;yBAAM,IAAI,sBAAsB,KAAK,GAAG,EAAE,CAAC,CAAC,MAAM;wBAClD,aAAa,IAAI,IAAI,CAAA;oBACtB,CAAC;yBAAM,IAAI,sBAAsB,KAAK,GAAG,EAAE,CAAC,CAAC,MAAM;wBAClD,aAAa,IAAI,IAAI,CAAA;oBACtB,CAAC;yBAAM,IAAI,sBAAsB,KAAK,GAAG,EAAE,CAAC,CAAC,sBAAsB;wBAClE,IAAI,YAAY,GAAG,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;4BAC1C,MAAM,YAAY,GAAG,kBAAkB,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;4BAE9D,MAAM,IAAI,eAAe,CAAC,wCAAwC,YAAY,CAAC,cAAc,yBAAyB,EAAE,YAAY,CAAC,CAAA;wBACtI,CAAC;wBAED,IAAI,CAAC;4BACJ,MAAM,SAAS,GACd,mBAAmB,CAAC,UAAU,CAAC,UAAU,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE;gCAClE,mBAAmB,CAAC,UAAU,CAAC,UAAU,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;gCACjE,mBAAmB,CAAC,UAAU,CAAC,UAAU,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;gCACjE,mBAAmB,CAAC,UAAU,CAAC,UAAU,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAA;4BAE7D,aAAa,IAAI,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAA;wBAChD,CAAC;wBAAC,MAAM,CAAC;4BACR,MAAM,YAAY,GAAG,kBAAkB,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;4BAE9D,MAAM,IAAI,eAAe,CAAC,gDAAgD,YAAY,CAAC,cAAc,GAAG,EAAE,YAAY,CAAC,CAAA;wBACxH,CAAC;wBAED,YAAY,IAAI,CAAC,CAAA;oBAClB,CAAC;yBAAM,IAAI,sBAAsB,KAAK,GAAG,EAAE,CAAC,CAAC,sBAAsB;wBAClE,IAAI,YAAY,GAAG,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;4BAC1C,MAAM,YAAY,GAAG,6BAA6B,EAAE,CAAA;4BACpD,MAAM,IAAI,eAAe,CAAC,wCAAwC,YAAY,CAAC,cAAc,yBAAyB,EAAE,YAAY,CAAC,CAAA;wBACtI,CAAC;wBAED,IAAI,CAAC;4BACJ,MAAM,SAAS,GACd,mBAAmB,CAAC,UAAU,CAAC,UAAU,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;gCACjE,mBAAmB,CAAC,UAAU,CAAC,UAAU,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAA;4BAE7D,aAAa,IAAI,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAA;wBAChD,CAAC;wBAAC,MAAM,CAAC;4BACR,MAAM,YAAY,GAAG,6BAA6B,EAAE,CAAA;4BACpD,MAAM,IAAI,eAAe,CAAC,gDAAgD,YAAY,CAAC,cAAc,GAAG,EAAE,YAAY,CAAC,CAAA;wBACxH,CAAC;wBAED,YAAY,IAAI,CAAC,CAAA;oBAClB,CAAC;yBAAM,IAAI,sBAAsB,KAAK,GAAG,EAAE,CAAC,CAAC,MAAM;wBAClD,aAAa,IAAI,IAAI,CAAA;oBACtB,CAAC;yBAAM,IAAI,sBAAsB,KAAK,GAAG,EAAE,CAAC,CAAC,MAAM;wBAClD,aAAa,IAAI,IAAI,CAAA;oBACtB,CAAC;yBAAM,IAAI,sBAAsB,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM;wBACjD,aAAa,IAAI,IAAI,CAAA;oBACtB,CAAC;yBAAM,IAAI,sBAAsB,KAAK,MAAM,IAAI,sBAAsB,KAAK,MAAM,EAAE,CAAC;wBACnF,8EAA8E;oBAC/E,CAAC;yBAAM,IAAI,sBAAsB,KAAK,SAAS,EAAE,CAAC;wBACjD,MAAM,IAAI,eAAe,CAAC,8BAA8B,EAAE,kBAAkB,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAA;oBACrG,CAAC;yBAAM,CAAC,CAAC,gBAAgB;wBACxB,aAAa,IAAI,MAAM,CAAC,YAAY,CAAC,sBAAsB,CAAC,CAAA;oBAC7D,CAAC;gBACF,CAAC;qBAAM,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;oBACnC,MAAM,IAAI,eAAe,CAAC,8BAA8B,EAAE,kBAAkB,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAA;gBACrG,CAAC;qBAAM,CAAC;oBACP,IAAI,QAAQ,KAAK,EAAE,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;wBACxC,MAAM,YAAY,GAAG,kBAAkB,CAAC,YAAY,GAAG,CAAC,CAAC,CAAA;wBACzD,MAAM,IAAI,eAAe,CAAC,qEAAqE,YAAY,CAAC,cAAc,GAAG,EAAE,YAAY,CAAC,CAAA;oBAC7I,CAAC;oBAED,aAAa,IAAI,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;gBAC/C,CAAC;YACF,CAAC;YAED,OAAO,aAAa,CAAA;QACrB,CAAC;QAED,4FAA4F;QAC5F,wBAAwB;QACxB,4FAA4F;QAC5F,IAAI,eAAe,GAAG,EAAE,EAAE,CAAC,CAAC,6DAA6D;YACxF,IAAI,yBAAyB,GAAG,YAAY,CAAA;YAC5C,IAAI,QAAQ,GAAG,eAAe,CAAA;YAE9B,4FAA4F;YAC5F,aAAa;YACb,4FAA4F;YAC5F,IAAI,UAAU,GAAG,KAAK,CAAA;YAEtB,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM;gBAC5B,UAAU,GAAG,IAAI,CAAA;gBAEjB,QAAQ,GAAG,sBAAsB,EAAE,CAAA;YACpC,CAAC;iBAAM,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM;gBACnC,QAAQ,GAAG,sBAAsB,EAAE,CAAA;YACpC,CAAC;YAED,4FAA4F;YAC5F,yBAAyB;YACzB,4FAA4F;YAC5F,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC,CAAC,mBAAmB;gBACzC,IACC,UAAU,CAAC,UAAU,CAAC,YAAY,GAAG,CAAC,CAAC,KAAK,GAAG,IAAI,MAAM;oBACzD,UAAU,CAAC,UAAU,CAAC,YAAY,GAAG,CAAC,CAAC,KAAK,GAAG,IAAI,MAAM;oBACzD,UAAU,CAAC,UAAU,CAAC,YAAY,GAAG,CAAC,CAAC,KAAK,GAAG,IAAI,MAAM;oBACzD,UAAU,CAAC,UAAU,CAAC,YAAY,GAAG,CAAC,CAAC,KAAK,GAAG,IAAI,MAAM;oBACzD,UAAU,CAAC,UAAU,CAAC,YAAY,GAAG,CAAC,CAAC,KAAK,GAAG,IAAI,MAAM;oBACzD,UAAU,CAAC,UAAU,CAAC,YAAY,GAAG,CAAC,CAAC,KAAK,GAAG,IAAI,MAAM;oBACzD,UAAU,CAAC,UAAU,CAAC,YAAY,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,MAAM;oBAEzD,MAAM,YAAY,GAAG,6BAA6B,EAAE,CAAA;oBACpD,MAAM,IAAI,eAAe,CAAC,0BAA0B,YAAY,CAAC,cAAc,GAAG,EAAE,YAAY,CAAC,CAAA;gBAClG,CAAC;gBAED,YAAY,IAAI,CAAC,CAAA;gBAEjB,IAAI,UAAU,EAAE,CAAC;oBAChB,OAAO,CAAC,QAAQ,CAAA;gBACjB,CAAC;qBAAM,CAAC;oBACP,OAAO,QAAQ,CAAA;gBAChB,CAAC;YACF,CAAC;YAED,4FAA4F;YAC5F,oBAAoB;YACpB,4FAA4F;YAC5F,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC,CAAC,cAAc;gBACpC,IACC,UAAU,CAAC,UAAU,CAAC,YAAY,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,MAAM;oBACxD,UAAU,CAAC,UAAU,CAAC,YAAY,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM;oBAExD,MAAM,YAAY,GAAG,6BAA6B,EAAE,CAAA;oBACpD,MAAM,IAAI,eAAe,CAAC,qBAAqB,YAAY,CAAC,cAAc,GAAG,EAAE,YAAY,CAAC,CAAA;gBAC7F,CAAC;gBAED,YAAY,IAAI,CAAC,CAAA;gBAEjB,IAAI,UAAU,EAAE,CAAC;oBAChB,OAAO,CAAC,GAAG,CAAA;gBACZ,CAAC;qBAAM,CAAC;oBACP,OAAO,GAAG,CAAA;gBACX,CAAC;YACF,CAAC;YAED,4FAA4F;YAC5F,sDAAsD;YACtD,yDAAyD;YACzD,4FAA4F;YAC5F,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM;gBAC5B,MAAM,YAAY,GAAG,UAAU,CAAC,UAAU,CAAC,YAAY,GAAG,CAAC,CAAC,CAAA;gBAE5D,IAAI,YAAY,KAAK,GAAG,IAAI,YAAY,KAAK,EAAE,EAAE,CAAC,CAAC,oCAAoC;oBACtF,YAAY,IAAI,CAAC,CAAA;oBAEjB,QAAQ,GAAG,sBAAsB,EAAE,CAAA;oBAEnC,MAAM,sBAAsB,GAAG,YAAY,CAAA;oBAC3C,IAAI,cAAc,GAAG,CAAC,CAAA;oBAEtB,IAAI,sBAAsB,GAAG,CAAC,CAAC,CAAA;oBAE/B,OAAO,IAAI,EAAE,CAAC;wBACb,IAAI,UAA8B,CAAA;wBAElC,IAAI,QAAQ,IAAI,EAAE,IAAI,QAAQ,IAAI,EAAE,EAAE,CAAC,CAAC,WAAW;4BAClD,UAAU,GAAG,QAAQ,GAAG,EAAE,CAAA;wBAC3B,CAAC;6BAAM,IAAI,QAAQ,IAAI,EAAE,IAAI,QAAQ,IAAI,EAAE,EAAE,CAAC,CAAC,WAAW;4BACzD,UAAU,GAAG,QAAQ,GAAG,EAAE,GAAG,EAAE,CAAA;wBAChC,CAAC;6BAAM,IAAI,QAAQ,IAAI,EAAE,IAAI,QAAQ,IAAI,GAAG,EAAE,CAAC,CAAC,WAAW;4BAC1D,UAAU,GAAG,QAAQ,GAAG,EAAE,GAAG,EAAE,CAAA;wBAChC,CAAC;6BAAM,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM;4BACnC,sBAAsB,GAAG,YAAY,CAAA;4BAErC,kBAAkB;4BAClB,QAAQ,GAAG,sBAAsB,EAAE,CAAA;4BAEnC,SAAQ;wBACT,CAAC;6BAAM,CAAC;4BACP,MAAK;wBACN,CAAC;wBAED,cAAc,GAAG,CAAC,cAAc,GAAG,EAAE,CAAC,GAAG,UAAU,CAAA;wBAEnD,QAAQ,GAAG,sBAAsB,EAAE,CAAA;oBACpC,CAAC;oBAED,IAAI,YAAY,KAAK,sBAAsB,EAAE,CAAC;wBAC7C,MAAM,YAAY,GAAG,6BAA6B,EAAE,CAAA;wBACpD,MAAM,IAAI,eAAe,CAAC,8CAA8C,YAAY,CAAC,cAAc,GAAG,EAAE,YAAY,CAAC,CAAA;oBACtH,CAAC;oBAED,IAAI,sBAAsB,IAAI,CAAC,EAAE,CAAC;wBACjC,IAAI,iBAAiB,KAAK,KAAK,EAAE,CAAC;4BACjC,MAAM,YAAY,GAAG,kBAAkB,CAAC,sBAAsB,CAAC,CAAA;4BAC/D,MAAM,IAAI,eAAe,CAAC,0BAA0B,YAAY,CAAC,cAAc,yGAAyG,EAAE,YAAY,CAAC,CAAA;wBACxM,CAAC;wBAED,IAAI,UAAU,CAAC,sBAAsB,CAAC,KAAK,GAAG,IAAI,sBAAsB,KAAK,YAAY,GAAG,CAAC,EAAE,CAAC;4BAC/F,MAAM,YAAY,GAAG,kBAAkB,CAAC,sBAAsB,CAAC,CAAA;4BAC/D,MAAM,IAAI,eAAe,CAAC,0BAA0B,YAAY,CAAC,cAAc,wDAAwD,EAAE,YAAY,CAAC,CAAA;wBACvJ,CAAC;oBACF,CAAC;oBAED,IAAI,UAAU,EAAE,CAAC;wBAChB,OAAO,CAAC,cAAc,CAAA;oBACvB,CAAC;yBAAM,CAAC;wBACP,OAAO,cAAc,CAAA;oBACtB,CAAC;gBACF,CAAC;qBAAM,IAAI,YAAY,KAAK,GAAG,EAAE,CAAC,CAAC,gBAAgB;oBAClD,YAAY,IAAI,CAAC,CAAA;oBAEjB,QAAQ,GAAG,sBAAsB,EAAE,CAAA;oBAEnC,MAAM,wBAAwB,GAAG,YAAY,CAAA;oBAE7C,IAAI,iBAAiB,KAAK,KAAK,EAAE,CAAC;wBACjC,MAAM,YAAY,GAAG,kBAAkB,CAAC,wBAAwB,CAAC,CAAA;wBACjE,MAAM,IAAI,eAAe,CAAC,oBAAoB,YAAY,CAAC,cAAc,mEAAmE,EAAE,YAAY,CAAC,CAAA;oBAC5J,CAAC;oBAED,IAAI,gBAAgB,GAAG,CAAC,CAAA;oBAExB,OAAO,IAAI,EAAE,CAAC;wBACb,IAAI,UAA8B,CAAA;wBAElC,IAAI,QAAQ,IAAI,EAAE,IAAI,QAAQ,IAAI,EAAE,EAAE,CAAC,CAAC,WAAW;4BAClD,UAAU,GAAG,QAAQ,GAAG,EAAE,CAAA;wBAC3B,CAAC;6BAAM,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM;4BACnC,kBAAkB;4BAClB,QAAQ,GAAG,sBAAsB,EAAE,CAAA;4BAEnC,SAAQ;wBACT,CAAC;6BAAM,CAAC;4BACP,MAAK;wBACN,CAAC;wBAED,gBAAgB,GAAG,CAAC,gBAAgB,GAAG,CAAC,CAAC,GAAG,UAAU,CAAA;wBAEtD,QAAQ,GAAG,sBAAsB,EAAE,CAAA;oBACpC,CAAC;oBAED,IAAI,YAAY,KAAK,wBAAwB,EAAE,CAAC;wBAC/C,MAAM,YAAY,GAAG,6BAA6B,EAAE,CAAA;wBACpD,MAAM,IAAI,eAAe,CAAC,wCAAwC,YAAY,CAAC,cAAc,GAAG,EAAE,YAAY,CAAC,CAAA;oBAChH,CAAC;oBAED,IAAI,UAAU,CAAC,wBAAwB,CAAC,KAAK,GAAG,IAAI,UAAU,CAAC,YAAY,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;wBAC1F,MAAM,YAAY,GAAG,kBAAkB,CAAC,wBAAwB,CAAC,CAAA;wBACjE,MAAM,IAAI,eAAe,CAAC,oBAAoB,YAAY,CAAC,cAAc,wDAAwD,EAAE,YAAY,CAAC,CAAA;oBACjJ,CAAC;oBAED,IAAI,UAAU,EAAE,CAAC;wBAChB,OAAO,CAAC,gBAAgB,CAAA;oBACzB,CAAC;yBAAM,CAAC;wBACP,OAAO,gBAAgB,CAAA;oBACxB,CAAC;gBACF,CAAC;qBAAM,IAAI,YAAY,KAAK,EAAE,EAAE,CAAC,CAAC,iBAAiB;oBAClD,YAAY,IAAI,CAAC,CAAA;oBAEjB,QAAQ,GAAG,sBAAsB,EAAE,CAAA;oBAEnC,MAAM,yBAAyB,GAAG,YAAY,CAAA;oBAE9C,IAAI,iBAAiB,KAAK,KAAK,EAAE,CAAC;wBACjC,MAAM,YAAY,GAAG,kBAAkB,CAAC,yBAAyB,CAAC,CAAA;wBAClE,MAAM,IAAI,eAAe,CAAC,qBAAqB,YAAY,CAAC,cAAc,mEAAmE,EAAE,YAAY,CAAC,CAAA;oBAC7J,CAAC;oBAED,IAAI,iBAAiB,GAAG,CAAC,CAAA;oBAEzB,OAAO,IAAI,EAAE,CAAC;wBACb,IAAI,UAA6B,CAAA;wBAEjC,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC,CAAC,WAAW;4BACjC,UAAU,GAAG,CAAC,CAAA;wBACf,CAAC;6BAAM,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;4BAC5B,UAAU,GAAG,CAAC,CAAA;wBACf,CAAC;6BAAM,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM;4BACnC,kBAAkB;4BAClB,QAAQ,GAAG,sBAAsB,EAAE,CAAA;4BAEnC,SAAQ;wBACT,CAAC;6BAAM,CAAC;4BACP,MAAK;wBACN,CAAC;wBAED,iBAAiB,GAAG,CAAC,iBAAiB,GAAG,CAAC,CAAC,GAAG,UAAU,CAAA;wBAExD,QAAQ,GAAG,sBAAsB,EAAE,CAAA;oBACpC,CAAC;oBAED,IAAI,YAAY,KAAK,yBAAyB,EAAE,CAAC;wBAChD,MAAM,YAAY,GAAG,6BAA6B,EAAE,CAAA;wBACpD,MAAM,IAAI,eAAe,CAAC,yCAAyC,YAAY,CAAC,cAAc,GAAG,EAAE,YAAY,CAAC,CAAA;oBACjH,CAAC;oBAED,IAAI,UAAU,CAAC,yBAAyB,CAAC,KAAK,GAAG,IAAI,UAAU,CAAC,YAAY,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;wBAC3F,MAAM,YAAY,GAAG,kBAAkB,CAAC,yBAAyB,CAAC,CAAA;wBAClE,MAAM,IAAI,eAAe,CAAC,qBAAqB,YAAY,CAAC,cAAc,wDAAwD,EAAE,YAAY,CAAC,CAAA;oBAClJ,CAAC;oBAED,IAAI,UAAU,EAAE,CAAC;wBAChB,OAAO,CAAC,iBAAiB,CAAA;oBAC1B,CAAC;yBAAM,CAAC;wBACP,OAAO,iBAAiB,CAAA;oBACzB,CAAC;gBACF,CAAC;YACF,CAAC;YAED,4FAA4F;YAC5F,uBAAuB;YACvB,4FAA4F;YAC5F,CAAC;gBACA,IAAI,mBAAmB,GAAG,CAAC,CAAA;gBAE3B,IAAI,qBAAqB,GAAG,CAAC,CAAA;gBAC7B,IAAI,sBAAsB,GAAG,CAAC,CAAC,CAAA;gBAE/B,qBAAqB;gBACrB,CAAC;oBACA,MAAM,mBAAmB,GAAG,YAAY,CAAA;oBAExC,OAAO,IAAI,EAAE,CAAC,CAAC,UAAU;wBACxB,IAAI,QAAQ,IAAI,EAAE,IAAI,QAAQ,IAAI,EAAE,EAAE,CAAC;4BACtC,MAAM,UAAU,GAAG,QAAQ,GAAG,EAAE,CAAA;4BAChC,mBAAmB,GAAG,CAAC,mBAAmB,GAAG,EAAE,CAAC,GAAG,UAAU,CAAA;4BAE7D,QAAQ,GAAG,sBAAsB,EAAE,CAAA;wBACpC,CAAC;6BAAM,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM;4BACnC,sBAAsB,GAAG,YAAY,CAAA;4BAErC,kBAAkB;4BAClB,QAAQ,GAAG,sBAAsB,EAAE,CAAA;4BAEnC,SAAQ;wBACT,CAAC;6BAAM,CAAC;4BACP,MAAK;wBACN,CAAC;oBACF,CAAC;oBAED,4BAA4B;oBAC5B,qBAAqB,GAAG,YAAY,GAAG,mBAAmB,CAAA;oBAE1D,MAAM,UAAU,GAAG,UAAU,CAAC,mBAAmB,CAAC,CAAA;oBAElD,IAAI,sBAAsB,IAAI,CAAC,EAAE,CAAC;wBACjC,IAAI,iBAAiB,KAAK,KAAK,EAAE,CAAC;4BACjC,MAAM,YAAY,GAAG,kBAAkB,CAAC,mBAAmB,CAAC,CAAA;4BAC5D,MAAM,IAAI,eAAe,CAAC,sBAAsB,YAAY,CAAC,cAAc,yGAAyG,EAAE,YAAY,CAAC,CAAA;wBACpM,CAAC;wBAED,IAAI,UAAU,KAAK,GAAG,IAAI,sBAAsB,KAAK,YAAY,GAAG,CAAC,EAAE,CAAC;4BACvE,MAAM,YAAY,GAAG,kBAAkB,CAAC,mBAAmB,CAAC,CAAA;4BAC5D,MAAM,IAAI,eAAe,CAAC,sBAAsB,YAAY,CAAC,cAAc,wDAAwD,EAAE,YAAY,CAAC,CAAA;wBACnJ,CAAC;oBACF,CAAC;oBAED,IAAI,qBAAqB,GAAG,CAAC,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;wBACrD,MAAM,YAAY,GAAG,kBAAkB,CAAC,mBAAmB,CAAC,CAAA;wBAC5D,MAAM,IAAI,eAAe,CAAC,oDAAoD,YAAY,CAAC,cAAc,GAAG,EAAE,YAAY,CAAC,CAAA;oBAC5H,CAAC;gBACF,CAAC;gBAED,IAAI,wBAAwB,GAAG,CAAC,CAAA;gBAEhC,wBAAwB;gBACxB,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM;oBAC5B,QAAQ,GAAG,sBAAsB,EAAE,CAAA;oBAEnC,MAAM,mBAAmB,GAAG,YAAY,CAAA;oBAExC,OAAO,IAAI,EAAE,CAAC,CAAC,UAAU;wBACxB,IAAI,QAAQ,IAAI,EAAE,IAAI,QAAQ,IAAI,EAAE,EAAE,CAAC;4BACtC,MAAM,UAAU,GAAG,QAAQ,GAAG,EAAE,CAAA;4BAChC,mBAAmB,GAAG,CAAC,mBAAmB,GAAG,EAAE,CAAC,GAAG,UAAU,CAAA;4BAE7D,QAAQ,GAAG,sBAAsB,EAAE,CAAA;wBACpC,CAAC;6BAAM,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM;4BACnC,sBAAsB,GAAG,YAAY,CAAA;4BAErC,kBAAkB;4BAClB,QAAQ,GAAG,sBAAsB,EAAE,CAAA;4BAEnC,SAAQ;wBACT,CAAC;6BAAM,CAAC;4BACP,MAAK;wBACN,CAAC;oBACF,CAAC;oBAED,yEAAyE;oBACzE,uEAAuE;oBACvE,mEAAmE;oBAEnE,+BAA+B;oBAC/B,wBAAwB,GAAG,YAAY,GAAG,mBAAmB,CAAA;oBAE7D,IAAI,qBAAqB,KAAK,CAAC,IAAI,wBAAwB,KAAK,CAAC,EAAE,CAAC;wBACnE,MAAM,YAAY,GAAG,6BAA6B,EAAE,CAAA;wBACpD,MAAM,IAAI,eAAe,CAAC,0CAA0C,YAAY,CAAC,cAAc,GAAG,EAAE,YAAY,CAAC,CAAA;oBAClH,CAAC;oBAED,IAAI,sBAAsB,IAAI,CAAC,EAAE,CAAC;wBACjC,IAAI,iBAAiB,KAAK,KAAK,EAAE,CAAC;4BACjC,MAAM,YAAY,GAAG,kBAAkB,CAAC,mBAAmB,CAAC,CAAA;4BAC5D,MAAM,IAAI,eAAe,CAAC,qBAAqB,YAAY,CAAC,cAAc,wGAAwG,EAAE,YAAY,CAAC,CAAA;wBAClM,CAAC;wBAED,IAAI,UAAU,CAAC,mBAAmB,CAAC,KAAK,GAAG,IAAI,sBAAsB,KAAK,YAAY,GAAG,CAAC,EAAE,CAAC;4BAC5F,MAAM,YAAY,GAAG,kBAAkB,CAAC,mBAAmB,CAAC,CAAA;4BAC5D,MAAM,IAAI,eAAe,CAAC,wCAAwC,YAAY,CAAC,cAAc,wDAAwD,EAAE,YAAY,CAAC,CAAA;wBACrK,CAAC;oBACF,CAAC;gBACF,CAAC;qBAAM,IAAI,QAAQ,KAAK,GAAG,EAAE,CAAC,CAAC,iBAAiB;oBAC/C,IAAI,iBAAiB,KAAK,KAAK,EAAE,CAAC;wBACjC,MAAM,YAAY,GAAG,kBAAkB,CAAC,yBAAyB,CAAC,CAAA;wBAClE,MAAM,IAAI,eAAe,CAAC,qBAAqB,YAAY,CAAC,cAAc,mEAAmE,EAAE,YAAY,CAAC,CAAA;oBAC7J,CAAC;oBAED,mCAAmC;oBACnC,IAAI,eAAe,GAAG,UAAU,CAAC,SAAS,CAAC,yBAAyB,EAAE,YAAY,CAAC,CAAA;oBAEnF,kDAAkD;oBAClD,IAAI,sBAAsB,IAAI,CAAC,EAAE,CAAC;wBACjC,eAAe,GAAG,eAAe,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;oBACtD,CAAC;oBAED,4BAA4B;oBAC5B,MAAM,WAAW,GAAG,MAAM,CAAC,eAAe,CAAC,CAAA;oBAE3C,8BAA8B;oBAC9B,YAAY,IAAI,CAAC,CAAA;oBAEjB,OAAO,WAAW,CAAA;gBACnB,CAAC;qBAAM,IAAI,qBAAqB,KAAK,CAAC,EAAE,CAAC;oBACxC,MAAM,YAAY,GAAG,6BAA6B,EAAE,CAAA;oBACpD,MAAM,IAAI,eAAe,CAAC,sBAAsB,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,YAAY,CAAC,cAAc,GAAG,EAAE,YAAY,CAAC,CAAA;gBACnI,CAAC;gBAED,IAAI,QAAQ,GAAG,CAAC,CAAA;gBAEhB,sBAAsB;gBACtB,IAAI,QAAQ,KAAK,GAAG,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC,CAAC,aAAa;oBACvD,QAAQ,GAAG,sBAAsB,EAAE,CAAA;oBAEnC,IAAI,kBAAkB,GAAG,KAAK,CAAA;oBAE9B,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM;wBAC5B,QAAQ,GAAG,sBAAsB,EAAE,CAAA;oBACpC,CAAC;yBAAM,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM;wBACnC,kBAAkB,GAAG,IAAI,CAAA;wBAEzB,QAAQ,GAAG,sBAAsB,EAAE,CAAA;oBACpC,CAAC;oBAED,IAAI,2BAA2B,GAAG,YAAY,CAAA;oBAE9C,OAAO,IAAI,EAAE,CAAC;wBACb,IAAI,QAAQ,IAAI,EAAE,IAAI,QAAQ,IAAI,EAAE,EAAE,CAAC,CAAC,UAAU;4BACjD,MAAM,UAAU,GAAG,QAAQ,GAAG,EAAE,CAAA;4BAChC,QAAQ,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC,GAAG,UAAU,CAAA;4BAEvC,QAAQ,GAAG,sBAAsB,EAAE,CAAA;wBACpC,CAAC;6BAAM,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM;4BACnC,sBAAsB,GAAG,YAAY,CAAA;4BAErC,kBAAkB;4BAClB,QAAQ,GAAG,sBAAsB,EAAE,CAAA;4BAEnC,SAAQ;wBACT,CAAC;6BAAM,CAAC;4BACP,MAAK;wBACN,CAAC;oBACF,CAAC;oBAED,6BAA6B;oBAC7B,IAAI,YAAY,KAAK,2BAA2B,EAAE,CAAC;wBAClD,MAAM,YAAY,GAAG,6BAA6B,EAAE,CAAA;wBACpD,MAAM,IAAI,eAAe,CAAC,2CAA2C,YAAY,CAAC,cAAc,GAAG,EAAE,YAAY,CAAC,CAAA;oBACnH,CAAC;oBAED,IAAI,sBAAsB,IAAI,CAAC,EAAE,CAAC;wBACjC,IAAI,iBAAiB,KAAK,KAAK,EAAE,CAAC;4BACjC,MAAM,YAAY,GAAG,kBAAkB,CAAC,2BAA2B,CAAC,CAAA;4BACpE,MAAM,IAAI,eAAe,CAAC,sBAAsB,YAAY,CAAC,cAAc,wGAAwG,EAAE,YAAY,CAAC,CAAA;wBACnM,CAAC;wBAED,IAAI,UAAU,CAAC,2BAA2B,CAAC,KAAK,GAAG,IAAI,sBAAsB,KAAK,YAAY,GAAG,CAAC,EAAE,CAAC;4BACpG,MAAM,YAAY,GAAG,kBAAkB,CAAC,2BAA2B,CAAC,CAAA;4BACpE,MAAM,IAAI,eAAe,CAAC,yCAAyC,YAAY,CAAC,cAAc,wDAAwD,EAAE,YAAY,CAAC,CAAA;wBACtK,CAAC;oBACF,CAAC;oBAED,IAAI,kBAAkB,EAAE,CAAC;wBACxB,QAAQ,GAAG,CAAC,QAAQ,CAAA;oBACrB,CAAC;gBACF,CAAC;gBAED,MAAM,gBAAgB,GAAG,QAAQ,GAAG,wBAAwB,CAAA;gBAE5D,wEAAwE;gBACxE,iDAAiD;gBACjD,EAAE;gBACF,aAAa;gBACb,2EAA2E;gBAC3E,oFAAoF;gBACpF,6EAA6E;gBAC7E,wFAAwF;gBACxF,wFAAwF;gBACxF,yEAAyE;gBACzE,0DAA0D;gBAC1D,mFAAmF;gBACnF,IAAI,mBAAmB,GAAG,CAAC,IAAI,EAAE,IAAI,gBAAgB,IAAI,CAAC,EAAE,IAAI,gBAAgB,IAAI,EAAE,EAAE,CAAC;oBACxF,IAAI,YAAY,GAAG,mBAAmB,CAAA;oBAEtC,IAAI,gBAAgB,GAAG,CAAC,EAAE,CAAC;wBAC1B,YAAY,IAAI,kBAAkB,CAAC,gBAAgB,CAAC,CAAA;oBACrD,CAAC;yBAAM,IAAI,gBAAgB,GAAG,CAAC,EAAE,CAAC;wBACjC,YAAY,IAAI,kBAAkB,CAAC,CAAC,gBAAgB,CAAC,CAAA;oBACtD,CAAC;oBAED,IAAI,UAAU,EAAE,CAAC;wBAChB,OAAO,CAAC,YAAY,CAAA;oBACrB,CAAC;yBAAM,CAAC;wBACP,OAAO,YAAY,CAAA;oBACpB,CAAC;gBACF,CAAC;qBAAM,CAAC;oBACP,mCAAmC;oBACnC,IAAI,YAAY,GAAG,UAAU,CAAC,SAAS,CAAC,yBAAyB,EAAE,YAAY,CAAC,CAAA;oBAEhF,2DAA2D;oBAC3D,IAAI,sBAAsB,IAAI,CAAC,EAAE,CAAC;wBACjC,YAAY,GAAG,YAAY,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;oBAChD,CAAC;oBAED,oBAAoB;oBACpB,OAAO,MAAM,CAAC,YAAY,CAAC,CAAA;gBAC5B,CAAC;YACF,CAAC;QACF,CAAC;QAED,4FAA4F;QAC5F,uBAAuB;QACvB,4FAA4F;QAC5F,IAAI,eAAe,KAAK,GAAG,EAAE,CAAC,CAAC,eAAe;YAC7C,IACC,UAAU,CAAC,UAAU,CAAC,YAAY,GAAG,CAAC,CAAC,KAAK,GAAG,IAAI,MAAM;gBACzD,UAAU,CAAC,UAAU,CAAC,YAAY,GAAG,CAAC,CAAC,KAAK,GAAG,IAAI,MAAM;gBACzD,UAAU,CAAC,UAAU,CAAC,YAAY,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,MAAM;gBAEzD,MAAM,YAAY,GAAG,6BAA6B,EAAE,CAAA;gBACpD,MAAM,IAAI,eAAe,CAAC,sBAAsB,YAAY,CAAC,cAAc,GAAG,EAAE,YAAY,CAAC,CAAA;YAC9F,CAAC;YAED,YAAY,IAAI,CAAC,CAAA;YAEjB,OAAO,IAAI,CAAA;QACZ,CAAC;QAED,4FAA4F;QAC5F,wBAAwB;QACxB,4FAA4F;QAC5F,IAAI,eAAe,KAAK,GAAG,EAAE,CAAC,CAAC,gBAAgB;YAC9C,IACC,UAAU,CAAC,UAAU,CAAC,YAAY,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,MAAM;gBACxD,UAAU,CAAC,UAAU,CAAC,YAAY,GAAG,CAAC,CAAC,KAAK,GAAG,IAAI,MAAM;gBACzD,UAAU,CAAC,UAAU,CAAC,YAAY,GAAG,CAAC,CAAC,KAAK,GAAG,IAAI,MAAM;gBACzD,UAAU,CAAC,UAAU,CAAC,YAAY,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,MAAM;gBAEzD,MAAM,YAAY,GAAG,6BAA6B,EAAE,CAAA;gBACpD,MAAM,IAAI,eAAe,CAAC,uBAAuB,YAAY,CAAC,cAAc,GAAG,EAAE,YAAY,CAAC,CAAA;YAC/F,CAAC;YAED,YAAY,IAAI,CAAC,CAAA;YAEjB,OAAO,KAAK,CAAA;QACb,CAAC;QAED,4FAA4F;QAC5F,uBAAuB;QACvB,4FAA4F;QAC5F,IAAI,eAAe,KAAK,GAAG,EAAE,CAAC,CAAC,eAAe;YAC7C,IACC,UAAU,CAAC,UAAU,CAAC,YAAY,GAAG,CAAC,CAAC,KAAK,GAAG,IAAI,MAAM;gBACzD,UAAU,CAAC,UAAU,CAAC,YAAY,GAAG,CAAC,CAAC,KAAK,GAAG,IAAI,MAAM;gBACzD,UAAU,CAAC,UAAU,CAAC,YAAY,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,MAAM;gBAEzD,MAAM,YAAY,GAAG,6BAA6B,EAAE,CAAA;gBACpD,MAAM,IAAI,eAAe,CAAC,sBAAsB,YAAY,CAAC,cAAc,GAAG,EAAE,YAAY,CAAC,CAAA;YAC9F,CAAC;YAED,YAAY,IAAI,CAAC,CAAA;YAEjB,OAAO,IAAI,CAAA;QACZ,CAAC;QAED,4FAA4F;QAC5F,cAAc;QACd,4FAA4F;QAC5F,IAAI,eAAe,KAAK,EAAE,EAAE,CAAC,CAAC,sBAAsB;YACnD,YAAY,IAAI,CAAC,CAAA;YAEjB,IAAI,QAAQ,GAAG,0BAA0B,EAAE,CAAA;YAE3C,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC,CAAC,oBAAoB;gBAC1C,YAAY,IAAI,CAAC,CAAA;gBAEjB,OAAO,EAAE,CAAA;YACV,CAAC;YAED,MAAM,GAAG,GAAU,EAAE,CAAA;YAErB,OAAO,IAAI,EAAE,CAAC;gBACb,MAAM,oBAAoB,GAAG,YAAY,CAAA;gBAEzC,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAA;gBAE/B,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;oBAC3B,YAAY,CAAC,EAAE,EAAE,OAAO,EAAE,oBAAoB,CAAC,CAAA;gBAChD,CAAC;gBAED,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;gBAEjB,QAAQ,GAAG,0BAA0B,EAAE,CAAA;gBAEvC,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC,CAAC,gBAAgB;oBACtC,YAAY,IAAI,CAAC,CAAA;oBAEjB,QAAQ,GAAG,0BAA0B,EAAE,CAAA;oBAEvC,uCAAuC;oBACvC,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC,CAAC,oBAAoB;wBAC1C,YAAY,IAAI,CAAC,CAAA;wBAEjB,MAAK;oBACN,CAAC;oBAED,SAAQ;gBACT,CAAC;gBAED,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC,CAAC,oBAAoB;oBAC1C,YAAY,IAAI,CAAC,CAAA;oBAEjB,MAAK;gBACN,CAAC;gBAED,CAAC;oBACA,MAAM,YAAY,GAAG,6BAA6B,EAAE,CAAA;oBACpD,MAAM,IAAI,eAAe,CAAC,sBAAsB,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,4BAA4B,YAAY,CAAC,cAAc,wBAAwB,EAAE,YAAY,CAAC,CAAA;gBAC5K,CAAC;YACF,CAAC;YAED,OAAO,GAAG,CAAA;QACX,CAAC;QAED,4FAA4F;QAC5F,eAAe;QACf,4FAA4F;QAC5F,IAAI,eAAe,KAAK,GAAG,EAAE,CAAC,CAAC,uBAAuB;YACrD,YAAY,IAAI,CAAC,CAAA;YAEjB,IAAI,QAAQ,GAAG,0BAA0B,EAAE,CAAA;YAE3C,IAAI,QAAQ,KAAK,GAAG,EAAE,CAAC,CAAC,qBAAqB;gBAC5C,YAAY,IAAI,CAAC,CAAA;gBAEjB,OAAO,EAAE,CAAA;YACV,CAAC;YAED,MAAM,GAAG,GAAQ,EAAE,CAAA;YAEnB,OAAO,IAAI,EAAE,CAAC;gBACb,IAAI,GAAW,CAAA;gBAEf,IAAI,QAAQ,KAAK,EAAE,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC,CAAC,6BAA6B;oBACtE,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAA;gBACtB,CAAC;qBAAM,CAAC,CAAC,eAAe;oBACvB,MAAM,iBAAiB,GACtB,8GAA8G,CAAA;oBAE/G,MAAM,eAAe,GAAG,UAAU,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;oBAE1D,MAAM,gBAAgB,GAAG,eAAe,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA;oBAEjE,IAAI,gBAAgB,KAAK,IAAI,EAAE,CAAC;wBAC/B,MAAM,YAAY,GAAG,6BAA6B,EAAE,CAAA;wBACpD,MAAM,IAAI,eAAe,CAAC,2DAA2D,YAAY,CAAC,cAAc,GAAG,EAAE,YAAY,CAAC,CAAA;oBACnI,CAAC;oBAED,IAAI,UAAU,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAA;oBAEpC,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC/B,GAAG,GAAG,UAAU,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,MAAM,EAAE,EAAE;4BAC5D,MAAM,SAAS,GACd,mBAAmB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;gCAC/C,mBAAmB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gCAC9C,mBAAmB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gCAC9C,mBAAmB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;4BAE1C,OAAO,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAA;wBACtC,CAAC,CAAC,CAAA;oBACH,CAAC;yBAAM,CAAC;wBACP,GAAG,GAAG,UAAU,CAAA;oBACjB,CAAC;oBAED,YAAY,IAAI,UAAU,CAAC,MAAM,CAAA;gBAClC,CAAC;gBAED,QAAQ,GAAG,0BAA0B,EAAE,CAAA;gBAEvC,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM;oBAC5B,MAAM,YAAY,GAAG,6BAA6B,EAAE,CAAA;oBACpD,MAAM,IAAI,eAAe,CAAC,sBAAsB,UAAU,CAAC,YAAY,CAAC,QAAQ,YAAY,CAAC,cAAc,iBAAiB,EAAE,YAAY,CAAC,CAAA;gBAC5I,CAAC;gBAED,YAAY,IAAI,CAAC,CAAA;gBAEjB,QAAQ,GAAG,0BAA0B,EAAE,CAAA;gBAEvC,MAAM,kBAAkB,GAAG,YAAY,CAAA;gBAEvC,IAAI,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAA;gBAE3B,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;oBAC3B,KAAK,GAAG,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,kBAAkB,EAAE,GAAG,CAAC,CAAA;gBAC1D,CAAC;gBAED,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;gBAEhB,QAAQ,GAAG,0BAA0B,EAAE,CAAA;gBAEvC,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM;oBAC5B,YAAY,IAAI,CAAC,CAAA;oBAEjB,QAAQ,GAAG,0BAA0B,EAAE,CAAA;oBAEvC,uCAAuC;oBACvC,IAAI,QAAQ,KAAK,GAAG,EAAE,CAAC,CAAC,qBAAqB;wBAC5C,YAAY,IAAI,CAAC,CAAA;wBAEjB,MAAK;oBACN,CAAC;oBAED,SAAQ;gBACT,CAAC;gBAED,IAAI,QAAQ,KAAK,GAAG,EAAE,CAAC,CAAC,qBAAqB;oBAC5C,YAAY,IAAI,CAAC,CAAA;oBAEjB,MAAK;gBACN,CAAC;gBAED,CAAC;oBACA,MAAM,YAAY,GAAG,6BAA6B,EAAE,CAAA;oBACpD,MAAM,IAAI,eAAe,CAAC,sBAAsB,UAAU,CAAC,YAAY,CAAC,6BAA6B,YAAY,CAAC,cAAc,wBAAwB,EAAE,YAAY,CAAC,CAAA;gBACxK,CAAC;YACF,CAAC;YAED,OAAO,GAAG,CAAA;QACX,CAAC;QAED,CAAC;YACA,MAAM,YAAY,GAAG,6BAA6B,EAAE,CAAA;YACpD,MAAM,IAAI,eAAe,CAAC,sBAAsB,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,QAAQ,YAAY,CAAC,cAAc,GAAG,EAAE,YAAY,CAAC,CAAA;QAC1I,CAAC;IACF,CAAC;IAED,SAAS,sBAAsB;QAC9B,OAAO,UAAU,CAAC,UAAU,CAAC,EAAE,YAAY,CAAC,CAAA;IAC7C,CAAC;IAED,SAAS,sBAAsB;QAC9B,OAAO,UAAU,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,CAAA;IAC7C,CAAC;IAED,SAAS,yBAAyB;QACjC,SAAS,iCAAiC;YACzC,MAAM,6BAA6B,GAAG,UAAU,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAA;YAEnI,IAAI,6BAA6B,KAAK,IAAI,EAAE,CAAC;gBAC5C,MAAM,YAAY,GAAG,6BAA6B,EAAE,CAAA;gBACpD,MAAM,IAAI,eAAe,CAAC,sCAAsC,YAAY,CAAC,cAAc,GAAG,EAAE,YAAY,CAAC,CAAA;YAC9G,CAAC;YAED,YAAY,IAAI,6BAA6B,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;QACxD,CAAC;QAED,SAAS,iBAAiB,CAAC,QAAgB;YAC1C,IAAI,QAAQ,IAAI,MAAM,IAAI,QAAQ,IAAI,MAAM,EAAE,CAAC;gBAC9C,IAAI,QAAQ,IAAI,MAAM,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;oBACpH,OAAO,IAAI,CAAA;gBACZ,CAAC;YACF,CAAC;iBAAM,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;gBAC9E,OAAO,IAAI,CAAA;YACZ,CAAC;YAED,OAAO,KAAK,CAAA;QACb,CAAC;QAED,OAAO,YAAY,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;YACzC,MAAM,QAAQ,GAAG,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC,CAAA;YAEpD,IAAI,QAAQ,GAAG,MAAM,IAAI,QAAQ,GAAG,MAAM,EAAE,CAAC;gBAC5C,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;oBAChD,YAAY,IAAI,CAAC,CAAA;oBAEjB,SAAQ;gBACT,CAAC;gBAED,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC,CAAC,wBAAwB;oBAC9C,iCAAiC,EAAE,CAAA;oBAEnC,SAAQ;gBACT,CAAC;YACF,CAAC;iBAAM,IAAI,CAAC,QAAQ,IAAI,MAAM,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACtF,YAAY,IAAI,CAAC,CAAA;gBAEjB,SAAQ;YACT,CAAC;YAED,OAAO,QAAQ,CAAA;QAChB,CAAC;QAED,OAAO,SAAS,CAAA;IACjB,CAAC;IAED,SAAS,0BAA0B;QAClC,MAAM,YAAY,GAAG,yBAAyB,EAAE,CAAA;QAEhD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAChC,MAAM,IAAI,eAAe,CAAC,wCAAwC,EAAE,kBAAkB,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAA;QAC/G,CAAC;QAED,OAAO,YAAY,CAAA;IACpB,CAAC;IAED,SAAS,6BAA6B;QACrC,OAAO,kBAAkB,CAAC,YAAY,CAAC,CAAA;IACxC,CAAC;IAED,SAAS,kBAAkB,CAAC,QAAgB;QAC3C,OAAO,eAAe,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;IAC7C,CAAC;IAED,SAAS,YAAY,CAAC,GAAW,EAAE,KAAU,EAAE,kBAA0B,EAAE,OAAa;QACvF,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAM;QACP,CAAC;QAED,IAAI,OAA2B,CAAA;QAE/B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACjD,OAAO,GAAG,UAAU,CAAC,SAAS,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAA;QACjE,CAAC;QAED,IAAI,MAAW,CAAA;QAEf,IAAI,OAAO,EAAE,CAAC;YACb,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;QACpD,CAAC;aAAM,CAAC;YACP,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;QACtC,CAAC;QAED,OAAO,MAAM,CAAA;IACd,CAAC;IAED,yBAAyB;IACzB,CAAC;QACA,MAAM,eAAe,GAAG,0BAA0B,EAAE,CAAA;QAEpD,MAAM,qBAAqB,GAAG,YAAY,CAAA;QAE1C,IAAI,MAAM,GAAG,KAAK,CAAC,eAAe,CAAC,CAAA;QAEnC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,GAAG,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,qBAAqB,CAAC,CAAA;QACzD,CAAC;QAED,MAAM,eAAe,GAAG,yBAAyB,EAAE,CAAA;QAEnD,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;YACnC,MAAM,YAAY,GAAG,6BAA6B,EAAE,CAAA;YACpD,MAAM,IAAI,eAAe,CAAC,gDAAgD,YAAY,CAAC,cAAc,GAAG,EAAE,YAAY,CAAC,CAAA;QACxH,CAAC;QAED,OAAO,MAAM,CAAA;IACd,CAAC;AACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function testJson5Encoder(): void;
2
+ //# sourceMappingURL=Json5EncoderTest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Json5EncoderTest.d.ts","sourceRoot":"","sources":["../../src/tests/Json5EncoderTest.ts"],"names":[],"mappings":"AAIA,wBAAgB,gBAAgB,SA8C/B"}
@@ -0,0 +1,44 @@
1
+ import { stringify } from '../json5/Json5Encoder.js';
2
+ const print = console.log;
3
+ export function testJson5Encoder() {
4
+ const obj1 = {
5
+ hi: 123,
6
+ there: [
7
+ 1,
8
+ 2,
9
+ 3
10
+ ],
11
+ yo: {
12
+ boom: 'asdf',
13
+ ba: {
14
+ go: 65
15
+ }
16
+ }
17
+ };
18
+ const obj2 = [
19
+ {
20
+ hi: 123,
21
+ there: [
22
+ 1,
23
+ 2,
24
+ 3
25
+ ],
26
+ yo: {
27
+ boom: 'asdf',
28
+ ba: {
29
+ go: 65
30
+ }
31
+ }
32
+ }
33
+ ];
34
+ const obj = obj2;
35
+ const replacer = undefined;
36
+ const space = 4;
37
+ const reference = JSON.stringify(obj, replacer, space);
38
+ const result = stringify(obj, replacer, space);
39
+ print('JSON.stringify:');
40
+ print(reference);
41
+ print('\n\nencodeJson:');
42
+ print(result);
43
+ }
44
+ //# sourceMappingURL=Json5EncoderTest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Json5EncoderTest.js","sourceRoot":"","sources":["../../src/tests/Json5EncoderTest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEpD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAA;AAEzB,MAAM,UAAU,gBAAgB;IAC/B,MAAM,IAAI,GAAG;QACZ,EAAE,EAAE,GAAG;QACP,KAAK,EAAE;YACN,CAAC;YACD,CAAC;YACD,CAAC;SACD;QACD,EAAE,EAAE;YACH,IAAI,EAAE,MAAM;YACZ,EAAE,EAAE;gBACH,EAAE,EAAE,EAAE;aACN;SACD;KACD,CAAA;IAED,MAAM,IAAI,GAAG;QACZ;YACC,EAAE,EAAE,GAAG;YACP,KAAK,EAAE;gBACN,CAAC;gBACD,CAAC;gBACD,CAAC;aACD;YACD,EAAE,EAAE;gBACH,IAAI,EAAE,MAAM;gBACZ,EAAE,EAAE;oBACH,EAAE,EAAE,EAAE;iBACN;aACD;SACD;KACD,CAAA;IAED,MAAM,GAAG,GAAG,IAAI,CAAA;IAEhB,MAAM,QAAQ,GAAG,SAAS,CAAA;IAC1B,MAAM,KAAK,GAAG,CAAC,CAAA;IAEf,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;IACtD,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;IAE9C,KAAK,CAAC,iBAAiB,CAAC,CAAA;IACxB,KAAK,CAAC,SAAS,CAAC,CAAA;IAEhB,KAAK,CAAC,iBAAiB,CAAC,CAAA;IACxB,KAAK,CAAC,MAAM,CAAC,CAAA;AACd,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function testJson5Parser(): void;
2
+ export declare function testJson5ParserInvalidInputs(): void;
3
+ //# sourceMappingURL=Json5ParserTests.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Json5ParserTests.d.ts","sourceRoot":"","sources":["../../src/tests/Json5ParserTests.ts"],"names":[],"mappings":"AAKA,wBAAgB,eAAe,SAsB9B;AAED,wBAAgB,4BAA4B,SAkB3C"}
@@ -0,0 +1,211 @@
1
+ import { parse } from '../json5/Json5Parser.js';
2
+ import { deepEquals } from '../utilities/ObjectUtilities.js';
3
+ const log = console.log;
4
+ export function testJson5Parser() {
5
+ for (const [source, expected] of testPairs) {
6
+ let parsedObj;
7
+ try {
8
+ parsedObj = parse(source, undefined, { enableExtensions: true });
9
+ }
10
+ catch (e) {
11
+ log(`Error when parsing:`);
12
+ log(source);
13
+ log(``);
14
+ log(e.message);
15
+ return;
16
+ }
17
+ if (!deepEquals(parsedObj, expected)) {
18
+ log(`JSON5 not parsed correctly:`);
19
+ log(source);
20
+ return;
21
+ }
22
+ }
23
+ }
24
+ export function testJson5ParserInvalidInputs() {
25
+ for (const invalidInput of invalidInputs) {
26
+ let parsedObj;
27
+ try {
28
+ parsedObj = parse(invalidInput);
29
+ }
30
+ catch (e) {
31
+ log(`Error when parsing:`);
32
+ log(invalidInput);
33
+ log(``);
34
+ log(e.message);
35
+ log(``);
36
+ continue;
37
+ }
38
+ throw new Error(`No error when parsing ${invalidInput}`);
39
+ }
40
+ }
41
+ const testPairs = [
42
+ ['{}', {}],
43
+ ['{"a":1}', { a: 1 }],
44
+ ["{'a':1}", { a: 1 }],
45
+ ['{a:1}', { a: 1 }],
46
+ ['{a\\u200C:3}', { 'a\u200C': 3 }],
47
+ ['{$_:1,_$:2,a\\u200C:3}', { $_: 1, _$: 2, 'a\u200C': 3 }],
48
+ ['{ùńîċõďë:9}', { 'ùńîċõďë': 9 }],
49
+ ['{\\u0061\\u0062:1,\\u0024\\u005F:2,\\u005F\\u0024:3}', { ab: 1, $_: 2, _$: 3 }],
50
+ ['{"__proto__":1}', { "__proto__": 1 }],
51
+ ['{abc:1,def:2}', { abc: 1, def: 2 }],
52
+ ['{a:{b:2}}', { a: { b: 2 } }],
53
+ ['[12341234123412341234n, "asdf"]', [12341234123412341234n, 'asdf']],
54
+ ['[]', []],
55
+ ['[1]', [1]],
56
+ ['[1,2]', [1, 2]],
57
+ ['[1,[2,3]]', [1, [2, 3]]],
58
+ ['[[]]', [[]]],
59
+ ['[[[],[[[[1, false, null, "hi"]]]]]]', [[[], [[[[1, false, null, "hi"]]]]]]],
60
+ ['null', null],
61
+ ['true', true],
62
+ ['false', false],
63
+ ['[0,0.,0e0]', [0, 0, 0]],
64
+ ['[1,23,456,7890]', [1, 23, 456, 7890]],
65
+ ['[-1,+2,-.1,-0]', [-1, 2, -0.1, -0]],
66
+ ['[.1,.23]', [0.1, 0.23]],
67
+ ['[1.0,1.23]', [1, 1.23]],
68
+ ['[1e0,1e1,1e01,1.e0,1.1e0,1e-1,1e+1]', [1, 10, 10, 1, 1.1, 0.1, 10]],
69
+ ['[0x1,0x10,0xff,0xFF]', [1, 16, 255, 255]],
70
+ ['[Infinity,-Infinity]', [Infinity, -Infinity]],
71
+ ['NaN', NaN],
72
+ ['-NaN', NaN],
73
+ ['1', 1],
74
+ ['+1.23e100', 1.23e+100],
75
+ ['+1.23e-100', 1.23e-100],
76
+ ['0x1', 0x1],
77
+ ['+0x01b23A4', +0x01b23A4],
78
+ ['-0x0123456789abcdefABCDEF', -0x0123456789abcdefABCDEF],
79
+ ['"abc"', 'abc'],
80
+ ["'abc'", 'abc'],
81
+ [`['"', "'"]`, ['"', "'"]],
82
+ [`['', ""]`, ['', '']],
83
+ ['{//hey\r\n}', {}],
84
+ ['{//hey\r\n x: 1234 //yo\n}', { x: 1234 }],
85
+ ['{ /*Comment!\n\r\n*/ }', {}],
86
+ ['{ /*Comment 1!\n\r\n*/ x: 1234 /* Comment 2! */ }', { x: 1234 }],
87
+ ['{\t\v\f \u00A0\uFEFF\n\r\u2028\u2029\u2003}', {}],
88
+ [`'\\u01fF'`, `\u01fF`],
89
+ [`'abc\\u01fFabc'`, `abc\u01fFabc`],
90
+ [`'\\x12'`, `\x12`],
91
+ [`'abc\\x12abc'`, `abc\x12abc`],
92
+ [`'😅hey🙃'`, `😅hey🙃`],
93
+ [`'\\u01fF\\\n\\\r\n\\\r\\\u2028\\\u2029\\a\\'\\"'`, `\u01FF\a'"`],
94
+ [`'a\\\nb'`, 'ab'],
95
+ [`'a\\\r\nb'`, 'ab'],
96
+ [`"a\\\u2028b"`, 'ab'],
97
+ [`'a\\\u2029b'`, 'ab'],
98
+ [`'\\b\\f\\n\\r\\t\\v\\0\\x0f\\u01fF\\\n\\\r\n\\\r\\\u2028\\\u2029\\a\\'\\"'`, `\b\f\n\r\t\v\0\x0f\u01FF\a'"`],
99
+ [`'hey \u2028 p \u2029 there'`, `hey \u2028 p \u2029 there`], // \u2028 and \u2029 can be used in string
100
+ [`'hey \\\u2028\\\u2029 there'`, `hey there`], // \u2028 and \u2029 can be used for line continuation
101
+ ['"unicode \\u263A"', 'unicode ☺'], // unicode escape sequence
102
+ ['"surrogate pair: \\uD834\\uDD1E"', 'surrogate pair: 𝄞'], // surrogate pair unicode
103
+ [' { } ', {}], // Whitespace around object
104
+ [' [ ] ', []], // Whitespace around array
105
+ [' { "a" : 1 } ', { a: 1 }], // Whitespace around key-value colon
106
+ [' { "a" : 1 , } ', { a: 1 }], // Whitespace around trailing comma
107
+ [' [ 1 , 2 ] ', [1, 2]], // Whitespace around array commas
108
+ [' " abc " ', ' abc '], // Whitespace inside string
109
+ [' \t\r\n{\t\r\n"a"\t\r\n:\t\r\n1\t\r\n}\t\r\n ', { a: 1 }], // Extensive whitespace everywhere
110
+ ['\u00A0{\u2003}\uFEFF', {}], // Unicode whitespace characters
111
+ ['\u000B{\u000C}', {}], // More whitespace characters (vertical tab, form feed)
112
+ ['// comment\n{}', {}], // Comment before object
113
+ ['{}// comment', {}], // Comment after object
114
+ ['[] // comment', []], // Comment after array
115
+ ['// comment\n[]', []], // Comment before array
116
+ ['{\n // comment\n "a": 1\n}', { a: 1 }], // Comment inside object - before key-value
117
+ ['{\n "a": // comment\n 1\n}', { a: 1 }], // Comment inside object - between key and value
118
+ [`{\n 'a': 1 // comment\n}`, { a: 1 }], // Comment inside object - after value
119
+ ['[\n // comment\n 1,\n 2\n]', [1, 2]], // Comment inside array - before element
120
+ ['[\n 1, // comment\n 2\n]', [1, 2]], // Comment inside array - between elements
121
+ ['[\n 1,\n 2 // comment\n]', [1, 2]], // Comment inside array - after element
122
+ ['/* multi-line comment */ {}', {}], // Multi-line comment before object
123
+ ['{} /* multi-line comment */', {}], // Multi-line comment after object
124
+ ['/*\nmulti\nline\ncomment\n*/ {}', {}], // Multi-line comment with newlines
125
+ ['{\n /* multi-line\n comment */\n "a": 1\n}', { a: 1 }], // Multi-line comment inside object
126
+ ['{\n "a": 1, /*\n multi-line\n comment */\n}', { a: 1 }], // Multi-line comment at the end of object
127
+ ['// single-line comment\n{ "a": 1 } /* multi-line comment */ // another single-line', { a: 1 }], // Mixed comments
128
+ ['{\n "a": 1, // single-line comment\n "b": 2 /* multi-line comment */\n}', { a: 1, b: 2 }], // Comments interspersed in object
129
+ ['/* comment before */{/* comment inside object */}/* comment after */', {}], // Comments around and inside object
130
+ ['/* comment before */[/* comment inside array */]/* comment after */', []], // Comments around and inside array
131
+ ['{ "a": 1, }', { a: 1 }], // Trailing comma in object
132
+ ['[ 1, 2, ]', [1, 2]], // Trailing comma in array
133
+ ['{ "a": 1 ,}', { a: 1 }], // Trailing comma with whitespace
134
+ ['[ 1, 2 ,]', [1, 2]], // Trailing comma with whitespace in array
135
+ ['{ "a": 1 , // comment\n}', { a: 1 }], // Trailing comma with comment
136
+ ['[ 1, 2 , // comment\n]', [1, 2]], // Trailing comma with comment in array
137
+ ['{ ùńîċõďë: 1 , \t\r\n}', { ùńîċõďë: 1 }], // Trailing comma with various whitespace
138
+ ['[ 1, 2 , \t\r\n]', [1, 2]], // Trailing comma with various whitespace in array
139
+ ['[ 1, 2 \t\r\n , \t\r\n]', [1, 2]], // Trailing comma with various whitespace before and after it
140
+ ['{ "a": 1, /* comment */ }', { a: 1 }], // Trailing comma position, but no comma - still valid
141
+ ['[ 1, 2, /* comment */ ]', [1, 2]], // Trailing comma position, but no comma in array - still valid
142
+ [`{ '😅hey🙃': 123 /* comment */, }`, { '😅hey🙃': 123 }], // Emojis in key
143
+ ['[0.0, 0.00, 0.000]', [0, 0, 0]], // Zero with multiple decimal places
144
+ ['[12345678901234567890]', [12345678901234567890]], // Large integer
145
+ ['[-12345678901234567890]', [-12345678901234567890]], // Large negative integer
146
+ ['[1e+100, 1e-100, 1e100]', [1e+100, 1e-100, 1e+100]], // Large and small exponents
147
+ ['[1.23456789e+100, 1.23456789e-100]', [1.23456789e+100, 1.23456789e-100]], // Decimal with large/small exponents
148
+ ['[0x0, 0x9, 0xa, 0xf, 0xA, 0xF]', [0, 9, 10, 15, 10, 15]], // Hex digits (mixed case)
149
+ ['[0x1234567890abcdef]', [0x1234567890abcdef]], // Long hex number
150
+ ['[-0x1234567890abcdef]', [-0x1234567890abcdef]], // Negative long hex number
151
+ ['[+Infinity, -Infinity, NaN]', [Infinity, -Infinity, NaN]], // Explicit signs for Infinity and NaN
152
+ ['[+NaN]', [NaN]], // Plus NaN
153
+ ['[0., 1., 10., 100.]', [0, 1, 10, 100]], // Trailing decimal points
154
+ ['[.0, .1, .123]', [0, 0.1, 0.123]], // Leading decimal points
155
+ ['[123e0, 123e+0, 123e-0]', [123, 123, 123]], // Exponent with zero sign
156
+ ['[123E0, 123E+0, 123E-0]', [123, 123, 123]], // Uppercase E exponent
157
+ ['[123.456e7, 123.456E7]', [123.456e7, 123.456e7]], // Decimal and exponent
158
+ ['[123.e7, 123.E7]', [123.e7, 123.e7]], // Decimal point before exponent
159
+ ['[+0, -0]', [+0, -0]], // Positive and negative zero (important distinction in JS)
160
+ ['[0e+10]', [0]], // Zero with exponent
161
+ ['[18446744073709551616]', [18446744073709552000]], // Number larger than MAX_SAFE_INTEGER - might lose precision
162
+ ['[-18446744073709551616]', [-18446744073709552000]], // Negative number larger than MAX_SAFE_INTEGER
163
+ ['[5e-324]', [5e-324]], // Smallest positive number
164
+ ['[-5e-324]', [-5e-324]], // Smallest negative number
165
+ [`{ identifierKey: 1 }`, { identifierKey: 1 }], // Identifier key
166
+ [`{ $identifier: 1 }`, { $identifier: 1 }], // Identifier starting with $
167
+ [`{ _identifier: 1 }`, { _identifier: 1 }], // Identifier starting with _
168
+ [`{ identifier_123: 1 }`, { identifier_123: 1 }], // Identifier with numbers and underscore
169
+ [`{ unicodeIdentifier\u200C: 1 }`, { 'unicodeIdentifier\u200C': 1 }], // Unicode identifier
170
+ [`{ "stringKey": 1 }`, { stringKey: 1 }], // String key (already in original tests, but good to keep)
171
+ [`{ "": 1 }`, { "": 1 }], // Empty string key
172
+ [`{ "key with spaces": 1 }`, { 'key with spaces': 1 }], // String key with spaces
173
+ [`{ 'key.with.dots': 1 }`, { 'key.with.dots': 1 }], // String key with dots
174
+ [`{ "key-with-hyphens": 1 }`, { 'key-with-hyphens': 1 }], // String key with hyphens
175
+ [`{ '123key': 1 }`, { '123key': 1 }], // String key starting with number
176
+ [`{ "key with unicode \u200C": 1 }`, { 'key with unicode \u200C': 1 }], // String key with unicode
177
+ [`{ key1: 1, "key1": 2 }`, { key1: 2 }], // Duplicate keys - last one wins (common behavior, but spec allows other interpretations)
178
+ [`{ __proto__: 1 }`, { __proto__: 1 }], // "__proto__" key - important for security considerations in JS environments
179
+ [`{ constructor: 1 }`, { constructor: 1 }], // "constructor" key - also relevant for JS security
180
+ [`{ 'hasOwnProperty': 1 }`, { 'hasOwnProperty': 1 }], // "hasOwnProperty" key - another JS object property
181
+ ['{ // comment\n "a" : /* comment */ 1 , // comment\n }', { a: 1 }], // Comments and whitespace around key-value and trailing comma
182
+ ['[ /* comment */ 1 , // comment\n 2 , /* comment */ ]', [1, 2]], // Comments and whitespace in array with trailing comma
183
+ ['{ a /* comment */ : /* comment */ 1 }', { a: 1 }], // Comments inside key-value pair
184
+ ['[ 1 /* comment */ , /* comment */ 2 ]', [1, 2]], // Comments inside array elements
185
+ ['{ "a" : /* comment */ [\n 1,\r\n 2,\n ] }', { a: [1, 2] }], // Comment inside nested structure
186
+ ['/* comment */ { /* comment */ "a" /* comment */ : /* comment */ 1 /* comment */ } /* comment */', { a: 1 }], // Comments everywhere
187
+ ['\t\r\n// comment\n/* multi-line */\u00A0{\u2003"a":1,\n} \uFEFF', { a: 1 }], // Extreme whitespace and comments
188
+ ['{ a: +1.23e10 // comment \n, }', { a: 1.23e+10 }], // Number with explicit plus and exponent, comment and trailing comma
189
+ ['[ 0xdecaf, 0Xdecaf, "string\\\ncontinuation" , ]', [0xdecaf, 0xdecaf, 'stringcontinuation']], // Mixed number type, string continuation, trailing comma in array
190
+ // Extensions to JSON5:
191
+ // Octal literals, binary literals, big integers, underscore separators
192
+ ['[0o1234, 0b01000101, 12341234123412341234n]', [0o1234, 0b01000101, 12341234123412341234n]], // Zero with multiple decimal places
193
+ ['[0x1234_abc_1234_abc, 0o1234_1234, 0b01_0001_01, 1234_1234123_4123412_34n]', [0x1234_abc_1234_abc, 0o1234_1234, 0b01_0001_01, 12341234123412341234n]], // Zero with multiple decimal places
194
+ ];
195
+ const invalidInputs = [
196
+ // === Invalid JSON (should fail strict parsers) ===
197
+ '[1,2,3 trailing]', // garbage after array
198
+ '{ "a": undefined }', // undefined literal
199
+ '1,2,,3]', // double comma
200
+ '{,}', // comma without key-value
201
+ '[}', // mismatched brackets
202
+ '{"a":}', // missing value
203
+ '{"a":1 "b":2}', // missing comma between pairs
204
+ '{"a":1,, "b":2}', // double comma
205
+ '{"a":1, "b":2 "c":3}', // missing comma
206
+ '{"a":1 "b":2}', // missing comma
207
+ '"multi\nline"', // literal newline in string (invalid JSON, should fail)
208
+ '[1,,2]', // sparse array (non-standard, should fail in strict JSON parsers)
209
+ '012341234n'
210
+ ];
211
+ //# sourceMappingURL=Json5ParserTests.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Json5ParserTests.js","sourceRoot":"","sources":["../../src/tests/Json5ParserTests.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;AAE5D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAA;AAEvB,MAAM,UAAU,eAAe;IAC9B,KAAK,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,SAAS,EAAE,CAAC;QAC5C,IAAI,SAAkB,CAAA;QAEtB,IAAI,CAAC;YACJ,SAAS,GAAG,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAA;QACjE,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YACjB,GAAG,CAAC,qBAAqB,CAAC,CAAA;YAC1B,GAAG,CAAC,MAAM,CAAC,CAAA;YACX,GAAG,CAAC,EAAE,CAAC,CAAA;YACP,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;YAEd,OAAM;QACP,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC;YACtC,GAAG,CAAC,6BAA6B,CAAC,CAAA;YAClC,GAAG,CAAC,MAAM,CAAC,CAAA;YAEX,OAAM;QACP,CAAC;IACF,CAAC;AACF,CAAC;AAED,MAAM,UAAU,4BAA4B;IAC3C,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;QAC1C,IAAI,SAAc,CAAA;QAElB,IAAI,CAAC;YACJ,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC,CAAA;QAChC,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YACjB,GAAG,CAAC,qBAAqB,CAAC,CAAA;YAC1B,GAAG,CAAC,YAAY,CAAC,CAAA;YACjB,GAAG,CAAC,EAAE,CAAC,CAAA;YACP,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;YACd,GAAG,CAAC,EAAE,CAAC,CAAA;YAEP,SAAQ;QACT,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,yBAAyB,YAAY,EAAE,CAAC,CAAA;IACzD,CAAC;AACF,CAAC;AAED,MAAM,SAAS,GAAwB;IACtC,CAAC,IAAI,EAAE,EAAE,CAAC;IACV,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IACrB,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IACrB,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IACnB,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;IAClC,CAAC,wBAAwB,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;IAC1D,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;IACjC,CAAC,sDAAsD,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;IACjF,CAAC,iBAAiB,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;IACvC,CAAC,eAAe,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;IACrC,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;IAC9B,CAAC,iCAAiC,EAAE,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;IAEpE,CAAC,IAAI,EAAE,EAAE,CAAC;IACV,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IACZ,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjB,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;IACd,CAAC,qCAAqC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE7E,CAAC,MAAM,EAAE,IAAI,CAAC;IAEd,CAAC,MAAM,EAAE,IAAI,CAAC;IACd,CAAC,OAAO,EAAE,KAAK,CAAC;IAEhB,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACzB,CAAC,iBAAiB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACvC,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACzB,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACzB,CAAC,qCAAqC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IACrE,CAAC,sBAAsB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC3C,CAAC,sBAAsB,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC,KAAK,EAAE,GAAG,CAAC;IACZ,CAAC,MAAM,EAAE,GAAG,CAAC;IACb,CAAC,GAAG,EAAE,CAAC,CAAC;IACR,CAAC,WAAW,EAAE,SAAS,CAAC;IACxB,CAAC,YAAY,EAAE,SAAS,CAAC;IACzB,CAAC,KAAK,EAAE,GAAG,CAAC;IACZ,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC;IAC1B,CAAC,2BAA2B,EAAE,CAAC,wBAAwB,CAAC;IAExD,CAAC,OAAO,EAAE,KAAK,CAAC;IAChB,CAAC,OAAO,EAAE,KAAK,CAAC;IAChB,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC1B,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAEtB,CAAC,aAAa,EAAE,EAAE,CAAC;IACnB,CAAC,4BAA4B,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;IAC3C,CAAC,wBAAwB,EAAE,EAAE,CAAC;IAC9B,CAAC,mDAAmD,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;IAElE,CAAC,6CAA6C,EAAE,EAAE,CAAC;IAEnD,CAAC,WAAW,EAAE,QAAQ,CAAC;IACvB,CAAC,iBAAiB,EAAE,cAAc,CAAC;IACnC,CAAC,SAAS,EAAE,MAAM,CAAC;IACnB,CAAC,eAAe,EAAE,YAAY,CAAC;IAC/B,CAAC,WAAW,EAAE,SAAS,CAAC;IACxB,CAAC,kDAAkD,EAAE,YAAY,CAAC;IAClE,CAAC,UAAU,EAAE,IAAI,CAAC;IAClB,CAAC,YAAY,EAAE,IAAI,CAAC;IACpB,CAAC,cAAc,EAAE,IAAI,CAAC;IACtB,CAAC,cAAc,EAAE,IAAI,CAAC;IACtB,CAAC,4EAA4E,EAAE,8BAA8B,CAAC;IAC9G,CAAC,6BAA6B,EAAE,2BAA2B,CAAC,EAAE,0CAA0C;IACxG,CAAC,8BAA8B,EAAE,YAAY,CAAC,EAAE,sDAAsD;IACtG,CAAC,mBAAmB,EAAE,WAAW,CAAC,EAAE,0BAA0B;IAC9D,CAAC,kCAAkC,EAAE,oBAAoB,CAAC,EAAE,yBAAyB;IAErF,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,2BAA2B;IAC1C,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,0BAA0B;IACzC,CAAC,eAAe,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,oCAAoC;IACjE,CAAC,iBAAiB,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,mCAAmC;IAClE,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,iCAAiC;IAC1D,CAAC,aAAa,EAAE,SAAS,CAAC,EAAE,2BAA2B;IACvD,CAAC,+CAA+C,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,kCAAkC;IAC/F,CAAC,sBAAsB,EAAE,EAAE,CAAC,EAAE,gCAAgC;IAC9D,CAAC,gBAAgB,EAAE,EAAE,CAAC,EAAE,uDAAuD;IAE/E,CAAC,gBAAgB,EAAE,EAAE,CAAC,EAAE,wBAAwB;IAChD,CAAC,cAAc,EAAE,EAAE,CAAC,EAAE,uBAAuB;IAC7C,CAAC,eAAe,EAAE,EAAE,CAAC,EAAE,sBAAsB;IAC7C,CAAC,gBAAgB,EAAE,EAAE,CAAC,EAAE,uBAAuB;IAC/C,CAAC,8BAA8B,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,2CAA2C;IACvF,CAAC,8BAA8B,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,gDAAgD;IAC5F,CAAC,2BAA2B,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,sCAAsC;IAC/E,CAAC,+BAA+B,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,wCAAwC;IACnF,CAAC,4BAA4B,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,0CAA0C;IAClF,CAAC,4BAA4B,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,uCAAuC;IAC/E,CAAC,6BAA6B,EAAE,EAAE,CAAC,EAAE,mCAAmC;IACxE,CAAC,6BAA6B,EAAE,EAAE,CAAC,EAAE,kCAAkC;IACvE,CAAC,iCAAiC,EAAE,EAAE,CAAC,EAAE,mCAAmC;IAC5E,CAAC,kDAAkD,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,mCAAmC;IACnG,CAAC,sDAAsD,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,0CAA0C;IAC9G,CAAC,oFAAoF,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,iBAAiB;IACnH,CAAC,2EAA2E,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,kCAAkC;IACjI,CAAC,sEAAsE,EAAE,EAAE,CAAC,EAAE,oCAAoC;IAClH,CAAC,qEAAqE,EAAE,EAAE,CAAC,EAAE,mCAAmC;IAEhH,CAAC,aAAa,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,2BAA2B;IACtD,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,0BAA0B;IACjD,CAAC,aAAa,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,iCAAiC;IAC5D,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,0CAA0C;IACjE,CAAC,0BAA0B,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,8BAA8B;IACtE,CAAC,wBAAwB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,uCAAuC;IAC3E,CAAC,yBAAyB,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,yCAAyC;IACtF,CAAC,mBAAmB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,kDAAkD;IACjF,CAAC,2BAA2B,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,6DAA6D;IACpG,CAAC,2BAA2B,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,sDAAsD;IAC/F,CAAC,yBAAyB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,+DAA+D;IACpG,CAAC,mCAAmC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,gBAAgB;IAE3E,CAAC,oBAAoB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,oCAAoC;IACvE,CAAC,wBAAwB,EAAE,CAAC,oBAAoB,CAAC,CAAC,EAAE,gBAAgB;IACpE,CAAC,yBAAyB,EAAE,CAAC,CAAC,oBAAoB,CAAC,CAAC,EAAE,yBAAyB;IAC/E,CAAC,yBAAyB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,4BAA4B;IACnF,CAAC,oCAAoC,EAAE,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC,EAAE,qCAAqC;IACjH,CAAC,gCAAgC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,0BAA0B;IACtF,CAAC,sBAAsB,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAE,kBAAkB;IAClE,CAAC,uBAAuB,EAAE,CAAC,CAAC,kBAAkB,CAAC,CAAC,EAAE,2BAA2B;IAC7E,CAAC,6BAA6B,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,EAAE,sCAAsC;IACnG,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW;IAC9B,CAAC,qBAAqB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,0BAA0B;IACpE,CAAC,gBAAgB,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,EAAE,yBAAyB;IAC9D,CAAC,yBAAyB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,0BAA0B;IACxE,CAAC,yBAAyB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,uBAAuB;IACrE,CAAC,wBAAwB,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,EAAE,uBAAuB;IAC3E,CAAC,kBAAkB,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,gCAAgC;IACxE,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,2DAA2D;IACnF,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,qBAAqB;IACvC,CAAC,wBAAwB,EAAE,CAAC,oBAAoB,CAAC,CAAC,EAAE,6DAA6D;IACjH,CAAC,yBAAyB,EAAE,CAAC,CAAC,oBAAoB,CAAC,CAAC,EAAE,+CAA+C;IACrG,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,2BAA2B;IACnD,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,2BAA2B;IAErD,CAAC,sBAAsB,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC,EAAE,iBAAiB;IACjE,CAAC,oBAAoB,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,EAAE,6BAA6B;IACzE,CAAC,oBAAoB,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,EAAE,6BAA6B;IACzE,CAAC,uBAAuB,EAAE,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC,EAAE,yCAAyC;IAC3F,CAAC,gCAAgC,EAAE,EAAE,yBAAyB,EAAE,CAAC,EAAE,CAAC,EAAE,qBAAqB;IAC3F,CAAC,oBAAoB,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,2DAA2D;IACrG,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,mBAAmB;IAC7C,CAAC,0BAA0B,EAAE,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC,EAAE,yBAAyB;IACjF,CAAC,wBAAwB,EAAE,EAAE,eAAe,EAAE,CAAC,EAAE,CAAC,EAAE,uBAAuB;IAC3E,CAAC,2BAA2B,EAAE,EAAE,kBAAkB,EAAE,CAAC,EAAE,CAAC,EAAE,0BAA0B;IACpF,CAAC,iBAAiB,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,kCAAkC;IACxE,CAAC,kCAAkC,EAAE,EAAE,yBAAyB,EAAE,CAAC,EAAE,CAAC,EAAE,0BAA0B;IAClG,CAAC,wBAAwB,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,0FAA0F;IACnI,CAAC,kBAAkB,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,6EAA6E;IACrH,CAAC,oBAAoB,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,EAAE,oDAAoD;IAChG,CAAC,yBAAyB,EAAE,EAAE,gBAAgB,EAAE,CAAC,EAAE,CAAC,EAAE,oDAAoD;IAE1G,CAAC,wDAAwD,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,8DAA8D;IACpI,CAAC,sDAAsD,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,uDAAuD;IACzH,CAAC,uCAAuC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,iCAAiC;IACtF,CAAC,uCAAuC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,iCAAiC;IACpF,CAAC,6CAA6C,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,kCAAkC;IAClG,CAAC,iGAAiG,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,sBAAsB;IACrI,CAAC,iEAAiE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,kCAAkC;IACjH,CAAC,gCAAgC,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,qEAAqE;IAC1H,CAAC,kDAAkD,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,oBAAoB,CAAC,CAAC,EAAE,kEAAkE;IAElK,uBAAuB;IACvB,uEAAuE;IACvE,CAAC,6CAA6C,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,qBAAqB,CAAC,CAAC,EAAE,oCAAoC;IAClI,CAAC,4EAA4E,EAAE,CAAC,mBAAmB,EAAE,WAAW,EAAE,YAAY,EAAE,qBAAwB,CAAC,CAAC,EAAE,oCAAoC;CAChM,CAAA;AAED,MAAM,aAAa,GAAa;IAC/B,oDAAoD;IACpD,kBAAkB,EAAE,sBAAsB;IAC1C,oBAAoB,EAAE,oBAAoB;IAC1C,SAAS,EAAE,eAAe;IAC1B,KAAK,EAAE,0BAA0B;IACjC,IAAI,EAAE,sBAAsB;IAC5B,QAAQ,EAAE,gBAAgB;IAC1B,eAAe,EAAE,8BAA8B;IAC/C,iBAAiB,EAAE,eAAe;IAClC,sBAAsB,EAAE,gBAAgB;IACxC,eAAe,EAAE,gBAAgB;IAEjC,eAAe,EAAE,wDAAwD;IACzE,QAAQ,EAAE,kEAAkE;IAE5E,YAAY;CACZ,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare function testJsonEncoder(): void;
2
+ //# sourceMappingURL=JsonEncoderTests.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JsonEncoderTests.d.ts","sourceRoot":"","sources":["../../src/tests/JsonEncoderTests.ts"],"names":[],"mappings":"AAIA,wBAAgB,eAAe,SA8C9B"}
@@ -0,0 +1,44 @@
1
+ import { stringifyJSON as stringifyToJson } from '../json/JsonEncoder.js';
2
+ const print = console.log;
3
+ export function testJsonEncoder() {
4
+ const obj1 = {
5
+ hi: 123,
6
+ there: [
7
+ 1,
8
+ 2,
9
+ 3
10
+ ],
11
+ yo: {
12
+ boom: 'asdf',
13
+ ba: {
14
+ go: 65
15
+ }
16
+ }
17
+ };
18
+ const obj2 = [
19
+ {
20
+ hi: 123,
21
+ there: [
22
+ 1,
23
+ 2,
24
+ 3
25
+ ],
26
+ yo: {
27
+ boom: 'asdf',
28
+ ba: {
29
+ go: 65
30
+ }
31
+ }
32
+ }
33
+ ];
34
+ const obj = obj2;
35
+ const replacer = undefined;
36
+ const space = 4;
37
+ const reference = JSON.stringify(obj, replacer, space);
38
+ const result = stringifyToJson(obj, replacer, space);
39
+ print('JSON.stringify:');
40
+ print(reference);
41
+ print('\n\nencodeJson:');
42
+ print(result);
43
+ }
44
+ //# sourceMappingURL=JsonEncoderTests.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JsonEncoderTests.js","sourceRoot":"","sources":["../../src/tests/JsonEncoderTests.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,IAAI,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAEzE,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAA;AAEzB,MAAM,UAAU,eAAe;IAC9B,MAAM,IAAI,GAAG;QACZ,EAAE,EAAE,GAAG;QACP,KAAK,EAAE;YACN,CAAC;YACD,CAAC;YACD,CAAC;SACD;QACD,EAAE,EAAE;YACH,IAAI,EAAE,MAAM;YACZ,EAAE,EAAE;gBACH,EAAE,EAAE,EAAE;aACN;SACD;KACD,CAAA;IAED,MAAM,IAAI,GAAG;QACZ;YACC,EAAE,EAAE,GAAG;YACP,KAAK,EAAE;gBACN,CAAC;gBACD,CAAC;gBACD,CAAC;aACD;YACD,EAAE,EAAE;gBACH,IAAI,EAAE,MAAM;gBACZ,EAAE,EAAE;oBACH,EAAE,EAAE,EAAE;iBACN;aACD;SACD;KACD,CAAA;IAED,MAAM,GAAG,GAAG,IAAI,CAAA;IAEhB,MAAM,QAAQ,GAAG,SAAS,CAAA;IAC1B,MAAM,KAAK,GAAG,CAAC,CAAA;IAEf,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;IACtD,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;IAEpD,KAAK,CAAC,iBAAiB,CAAC,CAAA;IACxB,KAAK,CAAC,SAAS,CAAC,CAAA;IAEhB,KAAK,CAAC,iBAAiB,CAAC,CAAA;IACxB,KAAK,CAAC,MAAM,CAAC,CAAA;AACd,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function testJsonParser(): void;
2
+ export declare function testJsonParserInvalidInputs(): void;
3
+ //# sourceMappingURL=JsonParserTests.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JsonParserTests.d.ts","sourceRoot":"","sources":["../../src/tests/JsonParserTests.ts"],"names":[],"mappings":"AAKA,wBAAgB,cAAc,SAoB7B;AAED,wBAAgB,2BAA2B,SAkB1C"}
@@ -0,0 +1,140 @@
1
+ import { parseJSON } from '../json/JsonParser.js';
2
+ import { deepEquals } from '../utilities/ObjectUtilities.js';
3
+ const log = console.log;
4
+ export function testJsonParser() {
5
+ for (const [source, expected] of testPairs) {
6
+ let parsedObj;
7
+ try {
8
+ parsedObj = parseJSON(source);
9
+ }
10
+ catch (e) {
11
+ log(`Error when parsing:`);
12
+ log(source);
13
+ log(``);
14
+ log(e.message);
15
+ }
16
+ if (!deepEquals(parsedObj, expected)) {
17
+ log(`JSON not parsed correctly:`);
18
+ log(source);
19
+ return;
20
+ }
21
+ }
22
+ }
23
+ export function testJsonParserInvalidInputs() {
24
+ for (const invalidInput of invalidInputs) {
25
+ let parsedObj;
26
+ try {
27
+ parsedObj = parseJSON(invalidInput);
28
+ }
29
+ catch (e) {
30
+ log(`Error when parsing:`);
31
+ log(invalidInput);
32
+ log(``);
33
+ log(e.message);
34
+ log(``);
35
+ continue;
36
+ }
37
+ throw new Error(`No error when parsing:\n ${invalidInput}\n`);
38
+ }
39
+ }
40
+ const testPairs = [
41
+ ['[1,2]', [1, 2]], // multiple elements
42
+ // === String literals ===
43
+ ['"x"', 'x'], // simple string
44
+ ['""', ''], // empty string
45
+ ['"hello world"', 'hello world'], // basic string with spaces
46
+ ['"hello \\"world\\""', 'hello "world"'], // escaped quotes inside string
47
+ ['"line\\nbreak"', 'line\nbreak'], // escaped newline
48
+ ['"tab\\tcharacter"', 'tab\tcharacter'], // escaped tab
49
+ ['"backslash\\\\test"', 'backslash\\test'], // escaped backslash
50
+ ['"unicode \\u263A"', 'unicode ☺'], // unicode escape sequence
51
+ ['"surrogate pair: \\uD834\\uDD1E"', 'surrogate pair: 𝄞'], // surrogate pair unicode
52
+ ['"emoji: 😀"', 'emoji: 😀'], // literal emoji character
53
+ ['"中文"', '中文'], // Chinese characters
54
+ ['"Русский"', 'Русский'], // Cyrillic characters
55
+ ['"العربية"', 'العربية'], // Arabic characters
56
+ ['"𠜎"', '𠜎'], // supplementary plane CJK character
57
+ // === Numbers ===
58
+ ['1234', 1234], // integer
59
+ ['1234.5678', 1234.5678], // float
60
+ ['0', 0], // zero
61
+ ['-0', -0], // negative zero
62
+ ['-123', -123], // negative integer
63
+ ['-123.456', -123.456], // negative float
64
+ ['1e10', 1e10], // positive exponent
65
+ ['-1e10', -1e10], // negative exponent
66
+ ['1E-10', 1e-10], // negative exponent with uppercase E
67
+ ['123.456e7', 123.456e7], // Decimal and exponent
68
+ ['123.456E7', 123.456E7], // Decimal and exponent
69
+ ['0.0', 0.0], // zero float
70
+ ['1.0e+2', 1.0e2], // positive exponent with plus sign
71
+ ['1.2345678901234567', 1.2345678901234567], // double precision limit
72
+ ['18446744073709551616', 18446744073709552000], // Number larger than MAX_SAFE_INTEGER - might lose precision
73
+ ['-18446744073709551616', -18446744073709552000], // Negative number larger than MAX_SAFE_INTEGER
74
+ // === Booleans and null ===
75
+ ['true', true], // boolean true
76
+ ['false', false], // boolean false
77
+ ['null', null], // null literal
78
+ // === Empty structures ===
79
+ ['{}', {}], // empty object
80
+ ['[]', []], // empty array
81
+ ['[[]]', [[]]], // nested empty array
82
+ [' [ [ ] ] ', [[]]], // nested empty array with whitespace
83
+ [' [ { } ] ', [{}]], // array with empty object, whitespace
84
+ // === Arrays ===
85
+ ['[1]', [1]], // single element array
86
+ ['[1,2]', [1, 2]], // multiple elements
87
+ ['[1,[2,3]]', [1, [2, 3]]], // nested arrays
88
+ ['[true,false,null]', [true, false, null]], // mixed literals
89
+ ['[ "a", "b", "c" ]', ['a', 'b', 'c']], // string array with spaces
90
+ [' [1 , 2 , 3 ] ', [1, 2, 3]], // number array with whitespace
91
+ ['[{"a":1},{"b":2}]', [{ a: 1 }, { b: 2 }]], // array of objects
92
+ // === Objects ===
93
+ ['{"a":1}', { a: 1 }], // simple object
94
+ ['{"abc":1,"def":2}', { abc: 1, def: 2 }], // multiple key-value pairs
95
+ ['{"":true,"a":6.123}', { '': true, a: 6.123 }], // empty string key and mixed values
96
+ ['{"nested":{"x":1,"y":[2,3]}}', { nested: { x: 1, y: [2, 3] } }], // nested object and array
97
+ ['{ "a" : 1 , "b" : 2 }', { a: 1, b: 2 }], // object with whitespace
98
+ ['{"a":{"b":{"c":{"d":{}}}}}', { a: { b: { c: { d: {} } } } }], // deeply nested objects
99
+ ['{"a": null, "b": true, "c": false}', { a: null, b: true, c: false }], // mixed value types
100
+ ['{"arr":[1,2,3],"obj":{"x":10}}', { arr: [1, 2, 3], obj: { x: 10 } }], // nested array and object
101
+ ['{"a":1,"a":2}', { a: 2 }], // duplicate keys, last one wins (per JSON spec)
102
+ // === Whitespace variations ===
103
+ [' \n\t 1234 ', 1234], // number with leading/trailing whitespace
104
+ [' \n\t "abc" \r\n ', 'abc'], // string with whitespace
105
+ ['\n\t{\n\t"a"\t:\n1\n}\n', { a: 1 }], // object with whitespace around tokens
106
+ [' [ \n 1 , \n 2 , \n 3 \n ] ', [1, 2, 3]], // array with whitespace
107
+ [' { "a" : [ 1 , 2 , 3 ] } ', { a: [1, 2, 3] }], // nested with whitespace
108
+ // === Edge cases and special characters ===
109
+ ['"\\u0000"', '\u0000'], // null character
110
+ ['"\\b\\f\\n\\r\\t"', '\b\f\n\r\t'], // control characters escapes
111
+ ['"\\/"', '/'], // escaped slash
112
+ ['"\\\\"', '\\'], // escaped backslash
113
+ ['"\\u2028"', '\u2028'], // line separator
114
+ ['"\\u2029"', '\u2029'], // paragraph separator
115
+ ['"multi\\nline"', 'multi\nline'], // escaped newline in string
116
+ ];
117
+ const invalidInputs = [
118
+ '"multi\nline"', // literal newline in string (invalid JSON, should fail)
119
+ '{unquoted_key:1}', // unquoted key
120
+ "{'a':1}", // single quotes
121
+ '1,2,3 trailing]', // garbage after array
122
+ '{ "a": undefined }', // undefined literal
123
+ '{ "a": NaN }', // NaN literal
124
+ '{ "a": Infinity }', // Infinity literal
125
+ '1,2,,3]', // double comma
126
+ '1,2,3,]', // trailing comma
127
+ '{"a":1,}', // trailing comma in object
128
+ '{,}', // comma without key-value
129
+ '[}', // mismatched brackets
130
+ '{"a":}', // missing value
131
+ '{"a":1 "b":2}', // missing comma between pairs
132
+ '{"a":1, "b":2,}', // trailing comma
133
+ '{"a":1,, "b":2}', // double comma
134
+ '{"a":1, "b":2 "c":3}', // missing comma
135
+ '{"a":1 "b":2}', // missing comma
136
+ '[1,2,3,]', // trailing comma (non-standard, should fail in strict JSON parsers)
137
+ '[1,,2]', // sparse array (non-standard, should fail in strict JSON parsers)
138
+ '{"a":1,}', // trailing comma (non-standard, should fail in strict JSON parsers)
139
+ ];
140
+ //# sourceMappingURL=JsonParserTests.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JsonParserTests.js","sourceRoot":"","sources":["../../src/tests/JsonParserTests.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Test.d.ts","sourceRoot":"","sources":["../../src/tests/Test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ import { testJson5Parser } from './Json5ParserTests.js';
2
+ import { testJsonParser } from './JsonParserTests.js';
3
+ //testJsonEncoder()
4
+ testJsonParser();
5
+ //testJsonParserInvalidInputs()
6
+ //testJson5Encoder()
7
+ testJson5Parser();
8
+ //testJson5ParserInvalidInputs()
9
+ //# sourceMappingURL=Test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Test.js","sourceRoot":"","sources":["../../src/tests/Test.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAgC,MAAM,uBAAuB,CAAA;AAErF,OAAO,EAAE,cAAc,EAA+B,MAAM,sBAAsB,CAAA;AAElF,mBAAmB;AACnB,cAAc,EAAE,CAAA;AAChB,+BAA+B;AAE/B,oBAAoB;AACpB,eAAe,EAAE,CAAA;AACjB,gCAAgC"}
@@ -0,0 +1,8 @@
1
+ export type JsonReplacerFunction = (key: string, value: any) => any;
2
+ export type JsonReplacerArray = (string | number)[];
3
+ export type JsonReplacerType = JsonReplacerFunction | JsonReplacerArray | null;
4
+ export type JsonReviverFunction = (key: string, value: any, context?: string) => any;
5
+ export interface Json5Options {
6
+ enableExtensions: boolean;
7
+ }
8
+ //# sourceMappingURL=Types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Types.d.ts","sourceRoot":"","sources":["../../src/types/Types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,GAAG,CAAA;AACnE,MAAM,MAAM,iBAAiB,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;AACnD,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,GAAG,iBAAiB,GAAG,IAAI,CAAA;AAE9E,MAAM,MAAM,mBAAmB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,GAAG,CAAA;AAEpF,MAAM,WAAW,YAAY;IAC5B,gBAAgB,EAAE,OAAO,CAAA;CACzB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Types.js.map