@idlizer/core 2.1.2 → 2.1.7
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.
- package/build/lib/src/LanguageWriters/ArgConvertors.d.ts +3 -4
- package/build/lib/src/LanguageWriters/ArgConvertors.js +43 -32
- package/build/lib/src/LanguageWriters/LanguageWriter.d.ts +35 -17
- package/build/lib/src/LanguageWriters/LanguageWriter.js +30 -56
- package/build/lib/src/LanguageWriters/convertors/CJConvertors.d.ts +3 -1
- package/build/lib/src/LanguageWriters/convertors/CJConvertors.js +32 -11
- package/build/lib/src/LanguageWriters/convertors/CppConvertors.d.ts +5 -2
- package/build/lib/src/LanguageWriters/convertors/CppConvertors.js +71 -62
- package/build/lib/src/LanguageWriters/convertors/ETSConvertors.d.ts +1 -1
- package/build/lib/src/LanguageWriters/convertors/ETSConvertors.js +9 -19
- package/build/lib/src/LanguageWriters/convertors/InteropConvertors.d.ts +4 -2
- package/build/lib/src/LanguageWriters/convertors/InteropConvertors.js +10 -3
- package/build/lib/src/LanguageWriters/convertors/JavaConvertors.d.ts +2 -1
- package/build/lib/src/LanguageWriters/convertors/JavaConvertors.js +24 -4
- package/build/lib/src/LanguageWriters/convertors/TSConvertors.d.ts +8 -4
- package/build/lib/src/LanguageWriters/convertors/TSConvertors.js +87 -33
- package/build/lib/src/LanguageWriters/nameConvertor.d.ts +3 -1
- package/build/lib/src/LanguageWriters/nameConvertor.js +5 -1
- package/build/lib/src/LanguageWriters/writers/CJLanguageWriter.d.ts +19 -11
- package/build/lib/src/LanguageWriters/writers/CJLanguageWriter.js +34 -47
- package/build/lib/src/LanguageWriters/writers/CLikeLanguageWriter.d.ts +4 -1
- package/build/lib/src/LanguageWriters/writers/CLikeLanguageWriter.js +1 -1
- package/build/lib/src/LanguageWriters/writers/CppLanguageWriter.d.ts +9 -9
- package/build/lib/src/LanguageWriters/writers/CppLanguageWriter.js +15 -24
- package/build/lib/src/LanguageWriters/writers/ETSLanguageWriter.d.ts +17 -8
- package/build/lib/src/LanguageWriters/writers/ETSLanguageWriter.js +48 -23
- package/build/lib/src/LanguageWriters/writers/JavaLanguageWriter.d.ts +4 -6
- package/build/lib/src/LanguageWriters/writers/JavaLanguageWriter.js +15 -14
- package/build/lib/src/LanguageWriters/writers/TsLanguageWriter.d.ts +13 -8
- package/build/lib/src/LanguageWriters/writers/TsLanguageWriter.js +33 -52
- package/build/lib/src/LibraryInterface.d.ts +1 -4
- package/build/lib/src/config.d.ts +813 -110
- package/build/lib/src/config.js +25 -3
- package/build/lib/src/configDescriber.d.ts +31 -4
- package/build/lib/src/configDescriber.js +101 -3
- package/build/lib/src/from-idl/DtsPrinter.js +31 -18
- package/build/lib/src/from-idl/IDLLinter.d.ts +40 -7
- package/build/lib/src/from-idl/IDLLinter.js +211 -25
- package/build/lib/src/from-idl/common.js +1 -1
- package/build/lib/src/from-idl/deserialize.d.ts +10 -1
- package/build/lib/src/from-idl/deserialize.js +486 -352
- package/build/lib/src/idl.d.ts +29 -19
- package/build/lib/src/idl.js +404 -119
- package/build/lib/src/idlize.d.ts +2 -1
- package/build/lib/src/idlize.js +82 -26
- package/build/lib/src/index.d.ts +4 -3
- package/build/lib/src/index.js +3 -2
- package/build/lib/src/options.d.ts +1 -1
- package/build/lib/src/peer-generation/BuilderClass.d.ts +0 -2
- package/build/lib/src/peer-generation/BuilderClass.js +0 -8
- package/build/lib/src/peer-generation/LayoutManager.d.ts +10 -3
- package/build/lib/src/peer-generation/LayoutManager.js +3 -2
- package/build/lib/src/peer-generation/Materialized.d.ts +1 -1
- package/build/lib/src/peer-generation/Materialized.js +3 -3
- package/build/lib/src/peer-generation/PeerClass.d.ts +3 -8
- package/build/lib/src/peer-generation/PeerClass.js +0 -1
- package/build/lib/src/peer-generation/PeerFile.d.ts +1 -2
- package/build/lib/src/peer-generation/PeerFile.js +1 -1
- package/build/lib/src/peer-generation/PeerLibrary.d.ts +12 -7
- package/build/lib/src/peer-generation/PeerLibrary.js +131 -67
- package/build/lib/src/peer-generation/ReferenceResolver.d.ts +1 -1
- package/build/lib/src/peer-generation/ReferenceResolver.js +2 -2
- package/build/lib/src/peer-generation/idl/IdlNameConvertor.d.ts +1 -0
- package/build/lib/src/peer-generation/idl/IdlNameConvertor.js +6 -2
- package/build/lib/src/peer-generation/idl/common.d.ts +3 -1
- package/build/lib/src/peer-generation/idl/common.js +21 -4
- package/build/lib/src/peer-generation/isMaterialized.js +28 -7
- package/build/lib/src/peer-generation/unions.d.ts +3 -2
- package/build/lib/src/peer-generation/unions.js +7 -3
- package/build/lib/src/resolveNamedNode.d.ts +3 -0
- package/build/lib/src/resolveNamedNode.js +105 -0
- package/build/lib/src/util.d.ts +8 -1
- package/build/lib/src/util.js +41 -3
- package/build/lib/src/visitor.d.ts +2 -1
- package/build/lib/src/visitor.js +109 -7
- package/package.json +2 -2
- package/webidl2.js/LICENSE +21 -0
- package/webidl2.js/README.md +827 -0
- package/webidl2.js/dist/package.json +3 -0
- package/webidl2.js/dist/webidl2.js +93 -19
|
@@ -855,19 +855,52 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
855
855
|
/**
|
|
856
856
|
* @param {import("../tokeniser.js").Tokeniser} tokeniser
|
|
857
857
|
*/
|
|
858
|
-
function
|
|
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
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
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
|
-
|
|
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(
|
|
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
|
-
|
|
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
|
|
|
@@ -1661,7 +1708,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
1661
1708
|
* @param {string} identifier
|
|
1662
1709
|
*/
|
|
1663
1710
|
function unescape(identifier) {
|
|
1664
|
-
return identifier
|
|
1711
|
+
return identifier;
|
|
1665
1712
|
}
|
|
1666
1713
|
|
|
1667
1714
|
/** @typedef {'callbackInterface'|'dictionary'|'interface'|'mixin'|'namespace'} ExtendableInterfaces */
|
|
@@ -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
|
}
|
|
@@ -3109,9 +3157,8 @@ function generic_type(tokeniser, typeName) {
|
|
|
3109
3157
|
tokeniser.error(`No opening bracket after ${base.value}`);
|
|
3110
3158
|
switch (base.value) {
|
|
3111
3159
|
case "Promise": {
|
|
3112
|
-
if (tokeniser.probe("["))
|
|
3113
|
-
tokeniser.error("Promise type cannot have extended attribute");
|
|
3114
3160
|
const subtype =
|
|
3161
|
+
(0,_helpers_js__WEBPACK_IMPORTED_MODULE_1__.type_with_extended_attributes)(tokeniser, typeName) ||
|
|
3115
3162
|
(0,_helpers_js__WEBPACK_IMPORTED_MODULE_1__.return_type)(tokeniser, typeName) ||
|
|
3116
3163
|
tokeniser.error("Missing Promise subtype");
|
|
3117
3164
|
ret.subtype.push(subtype);
|
|
@@ -3586,7 +3633,7 @@ const tokenRe = {
|
|
|
3586
3633
|
decimal:
|
|
3587
3634
|
/-?(?=[0-9]*\.|[0-9]+[eE])(([0-9]+\.[0-9]*|[0-9]*\.[0-9]+)([Ee][-+]?[0-9]+)?|[0-9]+[Ee][-+]?[0-9]+)/y,
|
|
3588
3635
|
integer: /-?(0([Xx][0-9A-Fa-f]+|[0-7]*)|[1-9][0-9]*)/y,
|
|
3589
|
-
identifier: /[
|
|
3636
|
+
identifier: /[-$_A-Za-z](\.?[$0-9A-Z_a-z-])*/y,
|
|
3590
3637
|
string: /"(\\"|[^"])*"/y,
|
|
3591
3638
|
whitespace: /[\t\n\r ]+/y,
|
|
3592
3639
|
comment: /\/\/.*|\/\*[\s\S]*?\*\//y,
|
|
@@ -3696,8 +3743,6 @@ const punctuations = [
|
|
|
3696
3743
|
const reserved = [
|
|
3697
3744
|
// "constructor" is now a keyword
|
|
3698
3745
|
"_constructor",
|
|
3699
|
-
"toString",
|
|
3700
|
-
"_toString",
|
|
3701
3746
|
];
|
|
3702
3747
|
|
|
3703
3748
|
/**
|
|
@@ -3725,7 +3770,7 @@ function tokenise(str) {
|
|
|
3725
3770
|
line += (currentTrivia.match(/\n/g) || []).length;
|
|
3726
3771
|
trivia += currentTrivia;
|
|
3727
3772
|
index -= 1;
|
|
3728
|
-
} else if (/[
|
|
3773
|
+
} else if (/[-$0-9.A-Z_a-z]/.test(nextChar)) {
|
|
3729
3774
|
result = attemptTokenMatch("decimal");
|
|
3730
3775
|
if (result === -1) {
|
|
3731
3776
|
result = attemptTokenMatch("integer");
|
|
@@ -3757,6 +3802,7 @@ function tokenise(str) {
|
|
|
3757
3802
|
trivia,
|
|
3758
3803
|
line,
|
|
3759
3804
|
index,
|
|
3805
|
+
position: lastCharIndex,
|
|
3760
3806
|
});
|
|
3761
3807
|
trivia = "";
|
|
3762
3808
|
lastCharIndex += punctuation.length;
|
|
@@ -3783,6 +3829,7 @@ function tokenise(str) {
|
|
|
3783
3829
|
trivia,
|
|
3784
3830
|
line,
|
|
3785
3831
|
index,
|
|
3832
|
+
position: lastCharIndex,
|
|
3786
3833
|
});
|
|
3787
3834
|
|
|
3788
3835
|
return tokens;
|
|
@@ -3797,7 +3844,14 @@ function tokenise(str) {
|
|
|
3797
3844
|
re.lastIndex = lastCharIndex;
|
|
3798
3845
|
const result = re.exec(str);
|
|
3799
3846
|
if (result) {
|
|
3800
|
-
tokens.push({
|
|
3847
|
+
tokens.push({
|
|
3848
|
+
type,
|
|
3849
|
+
value: result[0],
|
|
3850
|
+
trivia,
|
|
3851
|
+
line,
|
|
3852
|
+
index,
|
|
3853
|
+
position: lastCharIndex,
|
|
3854
|
+
});
|
|
3801
3855
|
if (!noFlushTrivia) {
|
|
3802
3856
|
trivia = "";
|
|
3803
3857
|
}
|
|
@@ -4251,7 +4305,8 @@ function* checkInterfaceMemberDuplication(defs, i) {
|
|
|
4251
4305
|
|
|
4252
4306
|
__webpack_require__.r(__webpack_exports__);
|
|
4253
4307
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
4254
|
-
/* harmony export */ parse: () => (/* binding */ parse)
|
|
4308
|
+
/* harmony export */ parse: () => (/* binding */ parse),
|
|
4309
|
+
/* harmony export */ parseType: () => (/* binding */ parseType)
|
|
4255
4310
|
/* harmony export */ });
|
|
4256
4311
|
/* harmony import */ var _tokeniser_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./tokeniser.js */ "./lib/tokeniser.js");
|
|
4257
4312
|
/* harmony import */ var _productions_enum_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./productions/enum.js */ "./lib/productions/enum.js");
|
|
@@ -4367,6 +4422,20 @@ function parse(str, options = {}) {
|
|
|
4367
4422
|
return parseByTokens(tokeniser, options);
|
|
4368
4423
|
}
|
|
4369
4424
|
|
|
4425
|
+
/**
|
|
4426
|
+
* @param {string} str
|
|
4427
|
+
* @param {string} fileName
|
|
4428
|
+
*/
|
|
4429
|
+
function parseType(str, fileName) {
|
|
4430
|
+
const tokeniser = new _tokeniser_js__WEBPACK_IMPORTED_MODULE_0__.Tokeniser(str);
|
|
4431
|
+
// @ts-ignore (See Tokeniser.source in supplement.d.ts)
|
|
4432
|
+
tokeniser.source.name = fileName;
|
|
4433
|
+
return (
|
|
4434
|
+
(0,_productions_helpers_js__WEBPACK_IMPORTED_MODULE_15__.type_with_extended_attributes)(tokeniser, "type") ||
|
|
4435
|
+
(0,_productions_helpers_js__WEBPACK_IMPORTED_MODULE_15__.return_type)(tokeniser, "return-type")
|
|
4436
|
+
);
|
|
4437
|
+
}
|
|
4438
|
+
|
|
4370
4439
|
|
|
4371
4440
|
/***/ }),
|
|
4372
4441
|
|
|
@@ -4516,6 +4585,8 @@ function write(ast, { templates: ts = templates } = {}) {
|
|
|
4516
4585
|
/******/
|
|
4517
4586
|
/************************************************************************/
|
|
4518
4587
|
var __webpack_exports__ = {};
|
|
4588
|
+
// This entry needs to be wrapped in an IIFE because it needs to be isolated against other modules in the chunk.
|
|
4589
|
+
(() => {
|
|
4519
4590
|
/*!******************!*\
|
|
4520
4591
|
!*** ./index.js ***!
|
|
4521
4592
|
\******************/
|
|
@@ -4523,6 +4594,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
4523
4594
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
4524
4595
|
/* harmony export */ WebIDLParseError: () => (/* reexport safe */ _lib_tokeniser_js__WEBPACK_IMPORTED_MODULE_3__.WebIDLParseError),
|
|
4525
4596
|
/* harmony export */ parse: () => (/* reexport safe */ _lib_webidl2_js__WEBPACK_IMPORTED_MODULE_0__.parse),
|
|
4597
|
+
/* harmony export */ parseType: () => (/* reexport safe */ _lib_webidl2_js__WEBPACK_IMPORTED_MODULE_0__.parseType),
|
|
4526
4598
|
/* harmony export */ validate: () => (/* reexport safe */ _lib_validator_js__WEBPACK_IMPORTED_MODULE_2__.validate),
|
|
4527
4599
|
/* harmony export */ write: () => (/* reexport safe */ _lib_writer_js__WEBPACK_IMPORTED_MODULE_1__.write)
|
|
4528
4600
|
/* harmony export */ });
|
|
@@ -4541,6 +4613,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
4541
4613
|
|
|
4542
4614
|
if (false) {}
|
|
4543
4615
|
|
|
4616
|
+
})();
|
|
4617
|
+
|
|
4544
4618
|
/******/ return __webpack_exports__;
|
|
4545
4619
|
/******/ })()
|
|
4546
4620
|
;
|