@idlizer/core 2.1.5 → 2.1.9-arktscgen-4

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 (75) hide show
  1. package/build/lib/src/IndentedPrinter.js +2 -0
  2. package/build/lib/src/Language.d.ts +1 -0
  3. package/build/lib/src/Language.js +3 -0
  4. package/build/lib/src/LanguageWriters/ArgConvertors.d.ts +18 -4
  5. package/build/lib/src/LanguageWriters/ArgConvertors.js +162 -26
  6. package/build/lib/src/LanguageWriters/LanguageWriter.d.ts +38 -8
  7. package/build/lib/src/LanguageWriters/LanguageWriter.js +46 -4
  8. package/build/lib/src/LanguageWriters/convertors/CJConvertors.d.ts +1 -0
  9. package/build/lib/src/LanguageWriters/convertors/CJConvertors.js +37 -14
  10. package/build/lib/src/LanguageWriters/convertors/CppConvertors.d.ts +1 -0
  11. package/build/lib/src/LanguageWriters/convertors/CppConvertors.js +55 -54
  12. package/build/lib/src/LanguageWriters/convertors/ETSConvertors.d.ts +1 -1
  13. package/build/lib/src/LanguageWriters/convertors/ETSConvertors.js +2 -2
  14. package/build/lib/src/LanguageWriters/convertors/InteropConvertors.js +1 -0
  15. package/build/lib/src/LanguageWriters/convertors/KotlinConvertor.d.ts +24 -0
  16. package/build/lib/src/LanguageWriters/convertors/KotlinConvertor.js +69 -0
  17. package/build/lib/src/LanguageWriters/convertors/KotlinConvertors.d.ts +25 -0
  18. package/build/lib/src/LanguageWriters/convertors/KotlinConvertors.js +128 -0
  19. package/build/lib/src/LanguageWriters/convertors/TSConvertors.d.ts +4 -2
  20. package/build/lib/src/LanguageWriters/convertors/TSConvertors.js +44 -9
  21. package/build/lib/src/LanguageWriters/index.js +4 -0
  22. package/build/lib/src/LanguageWriters/writers/CJLanguageWriter.d.ts +12 -7
  23. package/build/lib/src/LanguageWriters/writers/CJLanguageWriter.js +43 -27
  24. package/build/lib/src/LanguageWriters/writers/CLikeLanguageWriter.d.ts +1 -1
  25. package/build/lib/src/LanguageWriters/writers/CppLanguageWriter.d.ts +11 -2
  26. package/build/lib/src/LanguageWriters/writers/CppLanguageWriter.js +43 -10
  27. package/build/lib/src/LanguageWriters/writers/ETSLanguageWriter.d.ts +5 -2
  28. package/build/lib/src/LanguageWriters/writers/ETSLanguageWriter.js +45 -11
  29. package/build/lib/src/LanguageWriters/writers/JavaLanguageWriter.d.ts +2 -2
  30. package/build/lib/src/LanguageWriters/writers/JavaLanguageWriter.js +3 -3
  31. package/build/lib/src/LanguageWriters/writers/KotlinLanguageWriter.d.ts +149 -0
  32. package/build/lib/src/LanguageWriters/writers/KotlinLanguageWriter.js +495 -0
  33. package/build/lib/src/LanguageWriters/writers/TsLanguageWriter.d.ts +8 -5
  34. package/build/lib/src/LanguageWriters/writers/TsLanguageWriter.js +17 -13
  35. package/build/lib/src/LibraryInterface.d.ts +2 -0
  36. package/build/lib/src/config.d.ts +673 -44
  37. package/build/lib/src/config.js +20 -0
  38. package/build/lib/src/configDescriber.d.ts +2 -2
  39. package/build/lib/src/configDescriber.js +3 -3
  40. package/build/lib/src/from-idl/DtsPrinter.js +12 -8
  41. package/build/lib/src/from-idl/IDLLinter.d.ts +0 -1
  42. package/build/lib/src/from-idl/IDLLinter.js +1 -7
  43. package/build/lib/src/from-idl/deserialize.d.ts +7 -1
  44. package/build/lib/src/from-idl/deserialize.js +72 -40
  45. package/build/lib/src/idl.d.ts +8 -15
  46. package/build/lib/src/idl.js +69 -72
  47. package/build/lib/src/idlize.js +2 -0
  48. package/build/lib/src/index.d.ts +2 -0
  49. package/build/lib/src/index.js +2 -0
  50. package/build/lib/src/peer-generation/LayoutManager.d.ts +4 -1
  51. package/build/lib/src/peer-generation/LayoutManager.js +5 -1
  52. package/build/lib/src/peer-generation/Materialized.d.ts +7 -3
  53. package/build/lib/src/peer-generation/Materialized.js +18 -4
  54. package/build/lib/src/peer-generation/PeerLibrary.d.ts +5 -2
  55. package/build/lib/src/peer-generation/PeerLibrary.js +30 -10
  56. package/build/lib/src/peer-generation/PeerMethod.d.ts +1 -1
  57. package/build/lib/src/peer-generation/getSuperType.d.ts +5 -0
  58. package/build/lib/src/peer-generation/getSuperType.js +55 -0
  59. package/build/lib/src/peer-generation/idl/IdlNameConvertor.d.ts +4 -0
  60. package/build/lib/src/peer-generation/idl/IdlNameConvertor.js +7 -0
  61. package/build/lib/src/peer-generation/idl/common.d.ts +1 -0
  62. package/build/lib/src/peer-generation/idl/common.js +9 -3
  63. package/build/lib/src/peer-generation/isExternalType.d.ts +4 -0
  64. package/build/lib/src/peer-generation/isExternalType.js +15 -0
  65. package/build/lib/src/peer-generation/isMaterialized.js +18 -6
  66. package/build/lib/src/peer-generation/unions.js +1 -1
  67. package/build/lib/src/util.d.ts +4 -1
  68. package/build/lib/src/util.js +25 -10
  69. package/build/lib/src/visitor.d.ts +2 -0
  70. package/build/lib/src/visitor.js +108 -1
  71. package/package.json +2 -2
  72. package/webidl2.js/dist/webidl2.js +62 -16
  73. package/webidl2.js/LICENSE +0 -21
  74. package/webidl2.js/README.md +0 -827
  75. package/webidl2.js/dist/package.json +0 -3
@@ -855,19 +855,52 @@ __webpack_require__.r(__webpack_exports__);
855
855
  /**
856
856
  * @param {import("../tokeniser.js").Tokeniser} tokeniser
857
857
  */
858
- function inheritance(tokeniser) {
858
+ function inheritanceItem(tokeniser) {
859
+ const extAttrs = _extended_attributes_js__WEBPACK_IMPORTED_MODULE_2__.ExtendedAttributes.parse(tokeniser);
860
+ const inheritance = tokeniser.consumeKind("identifier");
861
+ if (!inheritance) {
862
+ return undefined;
863
+ }
864
+ return {
865
+ extAttrs,
866
+ inheritance,
867
+ tokens: {},
868
+ };
869
+ }
870
+
871
+ /**
872
+ * @param {import("../tokeniser.js").Tokeniser} tokeniser
873
+ * @param {boolean} multipleInheritance
874
+ */
875
+ function inheritance(tokeniser, multipleInheritance) {
859
876
  const colon = tokeniser.consume(":");
860
877
  if (!colon) {
861
878
  return {};
862
879
  }
863
- const extAttrs = _extended_attributes_js__WEBPACK_IMPORTED_MODULE_2__.ExtendedAttributes.parse(tokeniser);
864
- const inheritance =
865
- tokeniser.consumeKind("identifier") ||
866
- tokeniser.error("Inheritance lacks a type");
880
+ const first =
881
+ inheritanceItem(tokeniser) || tokeniser.error("Inheritance lacks a type");
882
+ if (!multipleInheritance) {
883
+ return {
884
+ colon,
885
+ extAttrs: first.extAttrs,
886
+ inheritance: first.inheritance,
887
+ };
888
+ }
889
+ first.tokens.separator = tokeniser.consume(",");
890
+ if (!first.tokens.separator) {
891
+ return {
892
+ colon,
893
+ inheritance: [first],
894
+ };
895
+ }
896
+ const rest = (0,_helpers_js__WEBPACK_IMPORTED_MODULE_3__.list)(tokeniser, {
897
+ parser: inheritanceItem,
898
+ listName: "inheritance-list",
899
+ allowDangler: false,
900
+ });
867
901
  return {
868
902
  colon,
869
- extAttrs: extAttrs && extAttrs.length ? extAttrs : undefined,
870
- inheritance,
903
+ inheritance: [first, ...rest],
871
904
  };
872
905
  }
873
906
 
@@ -890,7 +923,11 @@ class Container extends _base_js__WEBPACK_IMPORTED_MODULE_0__.Base {
890
923
  * @param {*} instance TODO: This should be {T extends Container}, but see https://github.com/microsoft/TypeScript/issues/4628
891
924
  * @param {*} args
892
925
  */
893
- static parse(tokeniser, instance, { inheritable, allowedMembers }) {
926
+ static parse(
927
+ tokeniser,
928
+ instance,
929
+ { inheritable, allowedMembers, multipleInheritance = false },
930
+ ) {
894
931
  const { tokens, type } = instance;
895
932
  tokens.name =
896
933
  tokeniser.consumeKind("identifier") ||
@@ -898,10 +935,12 @@ class Container extends _base_js__WEBPACK_IMPORTED_MODULE_0__.Base {
898
935
  tokeniser.current = instance;
899
936
  instance = (0,_helpers_js__WEBPACK_IMPORTED_MODULE_3__.autoParenter)(instance);
900
937
  if (inheritable) {
901
- const inheritanceParsed = inheritance(tokeniser);
938
+ const inheritanceParsed = inheritance(tokeniser, multipleInheritance);
902
939
  tokens.colon = inheritanceParsed.colon;
903
940
  tokens.inheritance = inheritanceParsed.inheritance;
904
- instance.inheritanceExtAttrs = inheritanceParsed.extAttrs;
941
+ if (!multipleInheritance) {
942
+ instance.inheritanceExtAttrs = inheritanceParsed.extAttrs;
943
+ }
905
944
  }
906
945
  tokens.open = tokeniser.consume("{") || tokeniser.error(`Bodyless ${type}`);
907
946
  instance.members = [];
@@ -944,6 +983,14 @@ class Container extends _base_js__WEBPACK_IMPORTED_MODULE_0__.Base {
944
983
  if (!this.tokens.inheritance) {
945
984
  return null;
946
985
  }
986
+ if (Array.isArray(this.tokens.inheritance)) {
987
+ return this.tokens.inheritance.map((it) => {
988
+ return {
989
+ extAttrs: it.extAttrs,
990
+ inheritance: (0,_helpers_js__WEBPACK_IMPORTED_MODULE_3__.unescape)(it.inheritance.value),
991
+ };
992
+ });
993
+ }
947
994
  return (0,_helpers_js__WEBPACK_IMPORTED_MODULE_3__.unescape)(this.tokens.inheritance.value);
948
995
  }
949
996
 
@@ -1829,13 +1876,13 @@ function return_type(tokeniser, typeName) {
1829
1876
  typ.tokens.closeRT = closeRT;
1830
1877
  return typ;
1831
1878
  } while (false);
1832
- const typ = Type.parse(tokeniser, typeName || "return-type");
1879
+ const typ = _type_js__WEBPACK_IMPORTED_MODULE_0__.Type.parse(tokeniser, typeName || "return-type");
1833
1880
  if (typ) {
1834
1881
  return typ;
1835
1882
  }
1836
1883
  const voidToken = tokeniser.consume("void");
1837
1884
  if (voidToken) {
1838
- const ret = new Type({
1885
+ const ret = new _type_js__WEBPACK_IMPORTED_MODULE_0__.Type({
1839
1886
  source: tokeniser.source,
1840
1887
  tokens: { base: voidToken },
1841
1888
  });
@@ -2250,6 +2297,7 @@ class Interface extends _container_js__WEBPACK_IMPORTED_MODULE_0__.Container {
2250
2297
  [_attribute_js__WEBPACK_IMPORTED_MODULE_1__.Attribute.parse],
2251
2298
  [_operation_js__WEBPACK_IMPORTED_MODULE_2__.Operation.parse],
2252
2299
  ],
2300
+ multipleInheritance: true,
2253
2301
  },
2254
2302
  );
2255
2303
  }
@@ -3585,7 +3633,7 @@ const tokenRe = {
3585
3633
  decimal:
3586
3634
  /-?(?=[0-9]*\.|[0-9]+[eE])(([0-9]+\.[0-9]*|[0-9]*\.[0-9]+)([Ee][-+]?[0-9]+)?|[0-9]+[Ee][-+]?[0-9]+)/y,
3587
3635
  integer: /-?(0([Xx][0-9A-Fa-f]+|[0-7]*)|[1-9][0-9]*)/y,
3588
- identifier: /[_-]?[A-Za-z](\.?[0-9A-Z_a-z-])*/y,
3636
+ identifier: /[-$_A-Za-z](\.?[$0-9A-Z_a-z-])*/y,
3589
3637
  string: /"(\\"|[^"])*"/y,
3590
3638
  whitespace: /[\t\n\r ]+/y,
3591
3639
  comment: /\/\/.*|\/\*[\s\S]*?\*\//y,
@@ -3695,8 +3743,6 @@ const punctuations = [
3695
3743
  const reserved = [
3696
3744
  // "constructor" is now a keyword
3697
3745
  "_constructor",
3698
- "toString",
3699
- "_toString",
3700
3746
  ];
3701
3747
 
3702
3748
  /**
@@ -3724,7 +3770,7 @@ function tokenise(str) {
3724
3770
  line += (currentTrivia.match(/\n/g) || []).length;
3725
3771
  trivia += currentTrivia;
3726
3772
  index -= 1;
3727
- } else if (/[-0-9.A-Z_a-z]/.test(nextChar)) {
3773
+ } else if (/[-$0-9.A-Z_a-z]/.test(nextChar)) {
3728
3774
  result = attemptTokenMatch("decimal");
3729
3775
  if (result === -1) {
3730
3776
  result = attemptTokenMatch("integer");
@@ -1,21 +0,0 @@
1
- The MIT License (MIT)
2
-
3
- Copyright (c) 2014 Robin Berjon
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.