@oml/language 0.14.17 → 0.16.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.
- package/out/oml/generated/ast.d.ts +1 -1
- package/out/oml/generated/ast.js +1 -1
- package/out/oml/generated/grammar.d.ts +1 -1
- package/out/oml/generated/grammar.js +1 -1
- package/out/oml/generated/module.d.ts +1 -1
- package/out/oml/generated/module.js +1 -1
- package/out/oml/oml-candidates.js +1 -42
- package/out/oml/oml-candidates.js.map +1 -1
- package/out/oml/oml-document.js +1 -5
- package/out/oml/oml-document.js.map +1 -1
- package/out/oml/oml-index.d.ts +1 -0
- package/out/oml/oml-index.js +8 -1
- package/out/oml/oml-index.js.map +1 -1
- package/out/oml/oml-scope.js +10 -4
- package/out/oml/oml-scope.js.map +1 -1
- package/out/oml/oml-update.d.ts +32 -15
- package/out/oml/oml-update.js +393 -199
- package/out/oml/oml-update.js.map +1 -1
- package/out/oml/oml-utils.d.ts +18 -0
- package/out/oml/oml-utils.js +183 -26
- package/out/oml/oml-utils.js.map +1 -1
- package/out/oml/oml-workspace.js +1 -4
- package/out/oml/oml-workspace.js.map +1 -1
- package/package.json +1 -1
- package/src/oml/generated/ast.ts +1 -1
- package/src/oml/generated/grammar.ts +1 -1
- package/src/oml/generated/module.ts +1 -1
- package/src/oml/oml-candidates.ts +1 -46
- package/src/oml/oml-document.ts +1 -5
- package/src/oml/oml-index.ts +9 -1
- package/src/oml/oml-scope.ts +10 -4
- package/src/oml/oml-update.ts +459 -223
- package/src/oml/oml-utils.ts +199 -26
- package/src/oml/oml-workspace.ts +1 -4
package/out/oml/oml-utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oml-utils.js","sourceRoot":"","sources":["../../src/oml/oml-utils.ts"],"names":[],"mappings":"AAAA,qDAAqD;AAErD,OAAO,EACH,aAAa,EACb,iBAAiB,EACjB,QAAQ,EACR,gBAAgB,EAChB,iBAAiB,EACjB,UAAU,EACV,YAAY,GACf,MAAM,oBAAoB,CAAC;AAW5B,OAAO,EAAE,GAAG,EAAE,MAAM,SAAS,CAAC;AAO9B,SAAS,WAAW,CAAC,SAAyB;IAC1C,MAAM,KAAK,GAAG,SAAS,EAAE,IAAI,CAAC;IAC9B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAc;IACxC,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAAqB;IACrD,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC7C,IAAI,OAAO,GAAS,MAAc,CAAC,UAAU,CAAC;IAC9C,OAAO,OAAO,EAAE,CAAC;QACb,IAAI,YAAY,CAAC,OAAO,CAAC,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;YAClD,OAAO,OAAO,CAAC;QACnB,CAAC;QACD,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;IACjC,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAAS;IAC5C,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,OAAO,OAAO,EAAE,CAAC;QACb,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACtB,OAAO,OAAmB,CAAC;QAC/B,CAAC;QACD,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;IACjC,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,QAAkC;IACrE,MAAM,OAAO,GAAmB,EAAE,CAAC;IACnC,MAAM,UAAU,GAAI,QAAqC,CAAC,eAAe,IAAI,EAAE,CAAC;IAChF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACjC,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5B,CAAC;QACD,IAAI,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,IAAI,SAAS,CAAC,eAAe,EAAE,CAAC;gBAC5B,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;YAC5C,CAAC;YACD,IAAI,SAAS,CAAC,eAAe,EAAE,CAAC;gBAC5B,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;YAC5C,CAAC;QACL,CAAC;IACL,CAAC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,QAAgB,EAAU,EAAE,CACzD,QAAQ;KACH,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC;KACtC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;KAClB,WAAW,EAAE,CAAC;AASvB,MAAM,UAAU,iBAAiB,CAAC,OAA0K;IACxM,MAAM,OAAO,GAAG,OAAO,EAAE,QAAQ,CAAC;IAClC,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAE/B,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC;IAC9B,IAAI,CAAC,GAAG,EAAE,YAAY;QAAE,OAAO,SAAS,CAAC;IAEzC,MAAM,aAAa,GAAG,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAClE,MAAM,WAAW,GAAG,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACjF,OAAO;QACH,SAAS,EAAE,aAAa,CAAC,IAAI,GAAG,CAAC;QACjC,WAAW,EAAE,aAAa,CAAC,SAAS;QACpC,OAAO,EAAE,WAAW,CAAC,IAAI,GAAG,CAAC;QAC7B,SAAS,EAAE,WAAW,CAAC,SAAS;KACnC,CAAC;AACN,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,IAAS;IAC3B,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC;IACzB,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC;IAC3D,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,GAAW,EAAU,EAAE,CACtD,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AAEpD,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,GAAW,EAAU,EAAE;IAC1D,MAAM,GAAG,GACJ,GAAG,CAAC,QAAgB,EAAE,QAAQ;QAC9B,GAAW,EAAE,QAAQ;QACtB,EAAE,CAAC;IACP,OAAO,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AACrC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,SAA2B,EAAqB,EAAE;IACrF,MAAM,IAAI,GAAQ,SAAS,CAAC;IAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC;IAC3B,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO,GAAG,CAAC;IACf,CAAC;IACD,IAAI,OAAO,GAAG,EAAE,OAAO,KAAK,UAAU,EAAE,CAAC;QACrC,OAAO,GAAG,CAAC,OAAO,EAAuB,CAAC;IAC9C,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAgC,CAAC,CAAC;AACxD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,QAAyB,EAAU,EAAE;IACvE,MAAM,MAAM,GAAQ,QAAQ,CAAC;IAC7B,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,YAAY,EAAE,GAAG,CAAC;IACnD,OAAO,OAAO,GAAG,EAAE,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;AACpF,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,QAAyB,EAAU,EAAE;IAC3E,MAAM,OAAO,GAAI,QAAgB,EAAE,YAAY,EAAE,OAAO,CAAC;IACzD,OAAO,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AACrD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,SAA2B,EAAU,EAAE,CACxE,sBAAsB,CAAC,SAAS,CAAC;KAC5B,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,qBAAqB,CAAC,GAAG,CAAC,IAAI,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC;KAC/E,IAAI,EAAE;KACN,IAAI,CAAC,GAAG,CAAC,CAAC;AAEnB,MAAM,+BAA+B,GAAG,IAAI,GAAG,CAAC;IAC5C,yBAAyB;IACzB,kCAAkC;IAClC,wBAAwB;CAC3B,CAAC,CAAC;AAEH,MAAM,UAAU,2BAA2B,CAAC,GAAW;IACnD,IAAI,CAAC;QACD,OAAO,+BAA+B,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;IACtE,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAgE,EAAE;IAClG,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QACjB,OAAO;YACH,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC;YACjC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC;YACtC,SAAS,EAAE,GAAG;SACjB,CAAC;IACN,CAAC;IACD,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC5C,IAAI,UAAU,IAAI,CAAC,EAAE,CAAC;QAClB,OAAO;YACH,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC;YAClC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC;YACvC,SAAS,EAAE,GAAG;SACjB,CAAC;IACN,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAY,EAAE,UAAkB,EAAE,YAAoB,EAAU,EAAE;IAC5F,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACnC,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG;YAAE,SAAS;QAC3D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACjC,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,IAAc,EAAY,EAAE;IAC/D,MAAM,UAAU,GAAI,IAAoC,CAAC,eAAe,IAAI,EAAE,CAAC;IAC/E,OAAO,UAAU;SACZ,MAAM,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,IAAI,EAAE,IAAI,KAAK,QAAQ,CAAC;SACvE,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SACpC,MAAM,CAAC,OAAO,CAAC,CAAC;AACzB,CAAC,CAAC;AAEF,MAAM,UAAU,wBAAwB,CAAC,IAAc,EAAE,UAAkB;IACvE,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;IACjC,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9C,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,OAAO,sBAAsB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,CAAC;AACjG,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAS;IACzC,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,OAAO,OAAO,EAAE,CAAC;QACb,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,iBAAiB,CAAC,OAAO,CAAC,IAAI,iBAAiB,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACvG,OAAO,OAA2B,CAAC;QACvC,CAAC;QACD,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;IACjC,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,YAAgC;IAClE,MAAM,KAAK,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1C,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC;IACpC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC;IACpC,OAAO,GAAG,CAAC;AACf,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,SAAiB,EAAE,UAAkB,EAAE,SAAoB;IACtF,MAAM,EAAE,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IACzC,OAAO,GAAG,EAAE,GAAG,SAAS,GAAG,UAAU,EAAE,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAS;IACnC,MAAM,KAAK,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAE7B,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACpB,MAAM,SAAS,GAAG,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7E,MAAM,UAAU,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;QACjD,OAAO,UAAU,IAAI,SAAS,CAAC;IACnC,CAAC;IAED,MAAM,IAAI,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACxC,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,MAAM,QAAQ,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAC/C,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,CAAC,SAAS,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAC1E,MAAM,SAAS,GAAG,qBAAqB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC5D,OAAO,cAAc,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;AAC/D,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAS;IACpC,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,OAAO,OAAO,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC;QAClD,IAAI,GAAG,EAAE,CAAC;YACN,OAAO,GAAG,CAAC;QACf,CAAC;QACD,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;IACjC,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC7B,IAAS,EACT,cAAiE,EACjE,kBAA2B;IAE3B,MAAM,MAAM,GAAG,qBAAqB,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC;IACjE,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAC9B,IAAI,CAAC,cAAc,IAAI,OAAO,cAAc,CAAC,cAAc,KAAK,UAAU;QAAE,OAAO,SAAS,CAAC;IAC7F,MAAM,OAAO,GAAG,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IACpD,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/B,OAAO,GAAG,MAAM,IAAI,OAAO,EAAE,CAAC;AAClC,CAAC"}
|
|
1
|
+
{"version":3,"file":"oml-utils.js","sourceRoot":"","sources":["../../src/oml/oml-utils.ts"],"names":[],"mappings":"AAAA,qDAAqD;AAErD,OAAO,EACH,aAAa,EACb,iBAAiB,EACjB,QAAQ,EACR,gBAAgB,EAChB,iBAAiB,EACjB,UAAU,EACV,YAAY,GACf,MAAM,oBAAoB,CAAC;AAW5B,OAAO,EAAE,GAAG,EAAE,MAAM,SAAS,CAAC;AAO9B,SAAS,WAAW,CAAC,SAAyB;IAC1C,MAAM,KAAK,GAAG,SAAS,EAAE,IAAI,CAAC;IAC9B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAc;IACxC,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAAqB;IACrD,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC7C,IAAI,OAAO,GAAS,MAAc,CAAC,UAAU,CAAC;IAC9C,OAAO,OAAO,EAAE,CAAC;QACb,IAAI,YAAY,CAAC,OAAO,CAAC,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;YAClD,OAAO,OAAO,CAAC;QACnB,CAAC;QACD,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;IACjC,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAAS;IAC5C,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,OAAO,OAAO,EAAE,CAAC;QACb,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACtB,OAAO,OAAmB,CAAC;QAC/B,CAAC;QACD,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;IACjC,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,QAAkC;IACrE,MAAM,OAAO,GAAmB,EAAE,CAAC;IACnC,MAAM,UAAU,GAAI,QAAqC,CAAC,eAAe,IAAI,EAAE,CAAC;IAChF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACjC,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5B,CAAC;QACD,IAAI,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,IAAI,SAAS,CAAC,eAAe,EAAE,CAAC;gBAC5B,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;YAC5C,CAAC;YACD,IAAI,SAAS,CAAC,eAAe,EAAE,CAAC;gBAC5B,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;YAC5C,CAAC;QACL,CAAC;IACL,CAAC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,QAAgB,EAAU,EAAE,CACzD,QAAQ;KACH,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC;KACtC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;KAClB,WAAW,EAAE,CAAC;AASvB,MAAM,UAAU,iBAAiB,CAAC,OAA0K;IACxM,MAAM,OAAO,GAAG,OAAO,EAAE,QAAQ,CAAC;IAClC,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAE/B,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC;IAC9B,IAAI,CAAC,GAAG,EAAE,YAAY;QAAE,OAAO,SAAS,CAAC;IAEzC,MAAM,aAAa,GAAG,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAClE,MAAM,WAAW,GAAG,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACjF,OAAO;QACH,SAAS,EAAE,aAAa,CAAC,IAAI,GAAG,CAAC;QACjC,WAAW,EAAE,aAAa,CAAC,SAAS;QACpC,OAAO,EAAE,WAAW,CAAC,IAAI,GAAG,CAAC;QAC7B,SAAS,EAAE,WAAW,CAAC,SAAS;KACnC,CAAC;AACN,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,IAAS;IAC3B,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC;IACzB,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC;IAC3D,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAa,EAAU,EAAE,CAClD,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AAErD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,GAAW,EAAU,EAAE,CACtD,YAAY,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AAE5C,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,YAAoB,EAAU,EAAE;IACnE,MAAM,OAAO,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;IAC3C,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,OAAO,OAAO,CAAC;IACnB,CAAC;IACD,OAAO,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC;AAC3D,CAAC,CAAC;AAEF,MAAM,UAAU,mBAAmB,CAAC,GAAW;IAC3C,MAAM,cAAc,GAAG,OAAO,GAAG,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAChF,IAAI,cAAc,EAAE,CAAC;QACjB,OAAO,cAAc,CAAC;IAC1B,CAAC;IACD,MAAM,cAAc,GAAG,OAAQ,GAAW,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,KAAK,QAAQ;QAC1E,CAAC,CAAE,GAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE;QACzC,CAAC,CAAC,EAAE,CAAC;IACT,OAAO,cAAc,IAAI,SAAS,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,GAAW;IACjD,MAAM,iBAAiB,GAAG,OAAQ,GAAW,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,KAAK,QAAQ;QAChF,CAAC,CAAE,GAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS;QACrC,CAAC,CAAC,EAAE,CAAC;IACT,IAAI,iBAAiB,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtC,OAAO,iBAAiB,CAAC,IAAI,EAAE,CAAC;IACpC,CAAC;IACD,MAAM,OAAO,GAAG,OAAQ,GAAW,EAAE,QAAQ,EAAE,QAAQ,KAAK,QAAQ;QAChE,CAAC,CAAE,GAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE;QACvC,CAAC,CAAC,EAAE,CAAC;IACT,OAAO,OAAO,IAAI,SAAS,CAAC;AAChC,CAAC;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,GAAW,EAAU,EAAE;IAC1D,OAAO,yBAAyB,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;AAChD,CAAC,CAAC;AAIF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,GAAW,EAAwB,EAAE;IAC/D,MAAM,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,CAAC,UAAU,EAAE,CAAC;QACd,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,MAAM,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC9C,IAAI,SAAS,GAAG,CAAC,IAAI,SAAS,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrD,OAAO;YACH,SAAS,EAAE,kBAAkB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;YAC7D,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC;YACzC,SAAS,EAAE,GAAG;SACjB,CAAC;IACN,CAAC;IACD,MAAM,UAAU,GAAG,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC/C,IAAI,UAAU,GAAG,CAAC,IAAI,UAAU,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvD,OAAO;YACH,SAAS,EAAE,kBAAkB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;YAC9D,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC;YAC1C,SAAS,EAAE,GAAG;SACjB,CAAC;IACN,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,SAA2B,EAAqB,EAAE;IACrF,MAAM,IAAI,GAAQ,SAAS,CAAC;IAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC;IAC3B,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO,GAAG,CAAC;IACf,CAAC;IACD,IAAI,OAAO,GAAG,EAAE,OAAO,KAAK,UAAU,EAAE,CAAC;QACrC,OAAO,GAAG,CAAC,OAAO,EAAuB,CAAC;IAC9C,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAgC,CAAC,CAAC;AACxD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,QAAyB,EAAU,EAAE;IACvE,MAAM,MAAM,GAAQ,QAAQ,CAAC;IAC7B,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,YAAY,EAAE,GAAG,CAAC;IACnD,OAAO,OAAO,GAAG,EAAE,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;AACpF,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,QAAyB,EAAU,EAAE;IAC3E,MAAM,OAAO,GAAI,QAAgB,EAAE,YAAY,EAAE,OAAO,CAAC;IACzD,OAAO,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AACrD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,SAA2B,EAAU,EAAE,CACxE,sBAAsB,CAAC,SAAS,CAAC;KAC5B,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,qBAAqB,CAAC,GAAG,CAAC,IAAI,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC;KAC/E,IAAI,EAAE;KACN,IAAI,CAAC,GAAG,CAAC,CAAC;AAEnB,MAAM,+BAA+B,GAAG,IAAI,GAAG,CAAC;IAC5C,yBAAyB;IACzB,kCAAkC;IAClC,wBAAwB;IACxB,yBAAyB;IACzB,6BAA6B;CAChC,CAAC,CAAC;AAEH,MAAM,UAAU,2BAA2B,CAAC,GAAW;IACnD,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QACnD,IAAI,+BAA+B,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9C,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC9F,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAgE,EAAE;IAClG,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IACjC,OAAO,KAAK;QACR,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE;QACjF,CAAC,CAAC,IAAI,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,UAAU,UAAU,CAAC,GAAQ;IAC/B,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC1B,OAAO,GAAG,CAAC;IACf,CAAC;IACD,IAAI,OAAO,GAAG,EAAE,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACpC,OAAO,GAAG,CAAC,QAAQ,CAAC;IACxB,CAAC;IACD,IAAI,OAAO,GAAG,EAAE,QAAQ,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC1C,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC7B,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,GAAW,EAAE,YAAgC;IAClF,MAAM,SAAS,GAAG,kBAAkB,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,CAAC;IACjE,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IACjC,OAAO,KAAK,EAAE,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,YAAgC,EAAE,SAAiB;IAClF,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7C,MAAM,SAAS,GAAG,sBAAsB,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,CAAC;IACrE,IAAI,CAAC,SAAS,IAAI,CAAC,KAAK,EAAE,CAAC;QACvB,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,OAAO,GAAG,SAAS,GAAG,KAAK,EAAE,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,QAAa,EAAE,OAAe;IAC7D,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7C,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;QAClB,OAAO,iDAAiD,CAAC;IAC7D,CAAC;IACD,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACnD,OAAO,YAAY,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,YAAY,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IACD,MAAM,sBAAsB,GAAG,kBAAkB,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAChF,IAAI,sBAAsB,EAAE,CAAC;QACzB,OAAO,sBAAsB,CAAC;IAClC,CAAC;IACD,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC5C,IAAI,cAAc,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;IAChD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;IAChD,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,IAAI,OAAO,QAAQ,EAAE,MAAM,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;QAC5E,OAAO,kBAAkB,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACzD,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IACnF,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,mBAAmB,CAAC,GAAG,CAAC,KAAK,MAAM,EAAE,CAAC;YACtC,SAAS;QACb,CAAC;QACD,OAAO,kBAAkB,CAAC,yBAAyB,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,OAAe;IAChD,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACtC,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACxC,IAAI,QAAQ,EAAE,CAAC;QACX,OAAO,QAAQ,CAAC,QAAQ,CAAC;IAC7B,CAAC;IACD,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACxC,IAAI,UAAU,GAAG,CAAC,IAAI,UAAU,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpD,OAAO,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,KAAa;IACvD,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACtC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,MAAM,SAAS,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IAC5C,IAAI,CAAC,SAAS,IAAI,CAAC,UAAU,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,OAAO,SAAS,CAAC,SAAS,KAAK,UAAU,CAAC,SAAS;WAC5C,SAAS,CAAC,QAAQ,KAAK,UAAU,CAAC,QAAQ,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,SAAiB,EAAE,YAAiC;IACjF,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAC1D,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAClF,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,mBAAmB,CAAC;SAC1D,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC;SAC7B,WAAW,EAAE,CAAC;IACnB,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;IAC1D,MAAM,aAAa,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAClD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;QACnC,OAAO,aAAa,CAAC;IACzB,CAAC;IACD,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,OAAO,YAAY,CAAC,GAAG,CAAC,GAAG,aAAa,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,CAAC,CAAC;IAChB,CAAC;IACD,OAAO,GAAG,aAAa,GAAG,MAAM,EAAE,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAY;IACzC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC5C,OAAO,UAAU,IAAI,GAAG,CAAC;AAC7B,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAY,EAAE,UAAkB,EAAE,YAAoB,EAAU,EAAE;IAC5F,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACnC,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG;YAAE,SAAS;QAC3D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACjC,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,IAAc,EAAY,EAAE;IAC/D,MAAM,UAAU,GAAI,IAAoC,CAAC,eAAe,IAAI,EAAE,CAAC;IAC/E,OAAO,UAAU;SACZ,MAAM,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,IAAI,EAAE,IAAI,KAAK,QAAQ,CAAC;SACvE,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SACpC,MAAM,CAAC,OAAO,CAAC,CAAC;AACzB,CAAC,CAAC;AAEF,MAAM,UAAU,wBAAwB,CAAC,IAAc,EAAE,UAAkB;IACvE,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;IACjC,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9C,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,OAAO,sBAAsB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,CAAC;AACjG,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAS;IACzC,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,OAAO,OAAO,EAAE,CAAC;QACb,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,iBAAiB,CAAC,OAAO,CAAC,IAAI,iBAAiB,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACvG,OAAO,OAA2B,CAAC;QACvC,CAAC;QACD,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;IACjC,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,YAAgC;IAClE,MAAM,KAAK,GAAG,YAAY,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;IAC/C,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC;IACpC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC;IACpC,OAAO,GAAG,CAAC;AACf,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,SAAiB,EAAE,UAAkB,EAAE,SAAoB;IACtF,MAAM,EAAE,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IACzC,OAAO,GAAG,EAAE,GAAG,SAAS,GAAG,UAAU,EAAE,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAS;IACnC,MAAM,KAAK,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAE7B,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACpB,MAAM,SAAS,GAAG,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7E,MAAM,UAAU,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;QACjD,OAAO,UAAU,IAAI,SAAS,CAAC;IACnC,CAAC;IAED,MAAM,IAAI,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACxC,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,MAAM,QAAQ,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAC/C,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,CAAC,SAAS,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAC1E,MAAM,SAAS,GAAG,qBAAqB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC5D,OAAO,cAAc,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;AAC/D,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAS;IACpC,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,OAAO,OAAO,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC;QAClD,IAAI,GAAG,EAAE,CAAC;YACN,OAAO,GAAG,CAAC;QACf,CAAC;QACD,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;IACjC,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC7B,IAAS,EACT,cAAiE,EACjE,kBAA2B;IAE3B,MAAM,MAAM,GAAG,qBAAqB,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC;IACjE,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAC9B,IAAI,CAAC,cAAc,IAAI,OAAO,cAAc,CAAC,cAAc,KAAK,UAAU;QAAE,OAAO,SAAS,CAAC;IAC7F,MAAM,OAAO,GAAG,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IACpD,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/B,OAAO,GAAG,MAAM,IAAI,OAAO,EAAE,CAAC;AAClC,CAAC"}
|
package/out/oml/oml-workspace.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// Copyright (c) 2026 Modelware. All rights reserved.
|
|
2
2
|
import { URI } from 'langium';
|
|
3
3
|
import { DefaultWorkspaceManager } from 'langium';
|
|
4
|
+
import { normalizeUriPath } from './oml-utils.js';
|
|
4
5
|
// LSP request name — must match the handler registered in node-client.ts
|
|
5
6
|
const GET_WORKSPACE_FOLDERS_REQUEST = 'oml/fs/getWorkspaceFolders';
|
|
6
7
|
/**
|
|
@@ -61,8 +62,4 @@ function isUriPathWithinWorkspace(candidate, workspace) {
|
|
|
61
62
|
const workspacePath = normalizeUriPath(workspace.path);
|
|
62
63
|
return candidatePath === workspacePath || candidatePath.startsWith(`${workspacePath}/`);
|
|
63
64
|
}
|
|
64
|
-
function normalizeUriPath(path) {
|
|
65
|
-
const normalized = path.replace(/\/+$/, '');
|
|
66
|
-
return normalized || '/';
|
|
67
|
-
}
|
|
68
65
|
//# sourceMappingURL=oml-workspace.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oml-workspace.js","sourceRoot":"","sources":["../../src/oml/oml-workspace.ts"],"names":[],"mappings":"AAAA,qDAAqD;AAErD,OAAO,EAAE,GAAG,EAAkC,MAAM,SAAS,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"oml-workspace.js","sourceRoot":"","sources":["../../src/oml/oml-workspace.ts"],"names":[],"mappings":"AAAA,qDAAqD;AAErD,OAAO,EAAE,GAAG,EAAkC,MAAM,SAAS,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAElD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,yEAAyE;AACzE,MAAM,6BAA6B,GAAG,4BAA4B,CAAC;AAEnE;;;;;GAKG;AACH,MAAM,OAAO,mBAAoB,SAAQ,uBAAuB;IAG5D,YAAY,QAAmC;QAC3C,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChB,IAAI,CAAC,UAAU,GAAI,QAAkD,CAAC,GAAG,EAAE,UAAU,CAAC;IAC1F,CAAC;IAED;;;;OAIG;IACM,KAAK,CAAC,mBAAmB,CAAC,OAAc,EAAE,WAAiB;QAChE,IAAI,eAAe,GAAG,OAAO,CAAC;QAE9B,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,CAAC;gBACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAW,6BAA6B,EAAE,EAAE,CAAC,CAAC;gBAC5F,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC1B,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;wBACpC,GAAG;wBACH,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,IAAI,WAAW;qBAChF,CAAC,CAAC,CAAC;gBACR,CAAC;YACL,CAAC;YAAC,MAAM,CAAC;gBACL,0EAA0E;YAC9E,CAAC;QACL,CAAC;QAEA,IAAuC,CAAC,OAAO,GAAG,eAAe,CAAC;QACnE,MAAM,KAAK,CAAC,mBAAmB,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;IAClE,CAAC;CACJ;AAED,MAAM,UAAU,gCAAgC,CAC5C,gBAAmF,EACnF,GAAQ;IAER,KAAK,MAAM,MAAM,IAAI,gBAAgB,EAAE,gBAAgB,IAAI,EAAE,EAAE,CAAC;QAC5D,MAAM,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC3C,IAAI,CAAC,wBAAwB,CAAC,GAAG,EAAE,YAAY,CAAC,EAAE,CAAC;YAC/C,SAAS;QACb,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,KAAK,YAAY,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,CAAC;YACjG,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,YAAY,CAAC,IAAI,CAAC;YACrB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,KAAK,EAAE,EAAE;YACT,QAAQ,EAAE,EAAE;SACf,CAAC,CAAC;IACP,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AAED,SAAS,wBAAwB,CAAC,SAAc,EAAE,SAAc;IAC5D,MAAM,aAAa,GAAG,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACvD,MAAM,aAAa,GAAG,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACvD,OAAO,aAAa,KAAK,aAAa,IAAI,aAAa,CAAC,UAAU,CAAC,GAAG,aAAa,GAAG,CAAC,CAAC;AAC5F,CAAC"}
|
package/package.json
CHANGED
package/src/oml/generated/ast.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/******************************************************************************
|
|
2
|
-
* This file was generated by langium-cli 4.2.
|
|
2
|
+
* This file was generated by langium-cli 4.2.1.
|
|
3
3
|
* DO NOT EDIT MANUALLY!
|
|
4
4
|
******************************************************************************/
|
|
5
5
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/******************************************************************************
|
|
2
|
-
* This file was generated by langium-cli 4.2.
|
|
2
|
+
* This file was generated by langium-cli 4.2.1.
|
|
3
3
|
* DO NOT EDIT MANUALLY!
|
|
4
4
|
******************************************************************************/
|
|
5
5
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/******************************************************************************
|
|
2
|
-
* This file was generated by langium-cli 4.2.
|
|
2
|
+
* This file was generated by langium-cli 4.2.1.
|
|
3
3
|
* DO NOT EDIT MANUALLY!
|
|
4
4
|
******************************************************************************/
|
|
5
5
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Copyright (c) 2026 Modelware. All rights reserved.
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import { stream, type AstNodeDescription, type AstNodeLocator, type IndexManager, type LangiumDocuments, type Stream } from 'langium';
|
|
4
4
|
import {
|
|
5
5
|
isAspect,
|
|
6
6
|
isBooleanLiteral,
|
|
@@ -31,8 +31,6 @@ export interface OmlCompletionResult {
|
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
const MaxReferenceTypeCaches = 64;
|
|
34
|
-
const workspacePreloadState = new WeakMap<object, { completed: boolean; promise?: Promise<void> }>();
|
|
35
|
-
|
|
36
34
|
type ConnectionLike = {
|
|
37
35
|
onRequest: (type: string, handler: (params: OmlCompletionParams) => OmlCompletionResult | Promise<OmlCompletionResult>) => void;
|
|
38
36
|
};
|
|
@@ -249,49 +247,6 @@ export function registerOmlCandidatesRequests(connection: ConnectionLike, shared
|
|
|
249
247
|
shared.workspace.AstNodeLocator
|
|
250
248
|
);
|
|
251
249
|
connection.onRequest(OmlCompletionRequest, async (params: OmlCompletionParams): Promise<OmlCompletionResult> => {
|
|
252
|
-
await ensureWorkspaceIndexed(shared);
|
|
253
250
|
return { candidates: candidates.getCompletionCandidateIris(params) };
|
|
254
251
|
});
|
|
255
252
|
}
|
|
256
|
-
|
|
257
|
-
async function ensureWorkspaceIndexed(shared: any): Promise<void> {
|
|
258
|
-
const key = shared as object;
|
|
259
|
-
const existing = workspacePreloadState.get(key);
|
|
260
|
-
if (existing?.completed) {
|
|
261
|
-
return;
|
|
262
|
-
}
|
|
263
|
-
if (existing?.promise) {
|
|
264
|
-
await existing.promise;
|
|
265
|
-
return;
|
|
266
|
-
}
|
|
267
|
-
const state = existing ?? { completed: false };
|
|
268
|
-
const promise = (async () => {
|
|
269
|
-
const workspace = shared.workspace.WorkspaceManager;
|
|
270
|
-
const documents = shared.workspace.LangiumDocuments;
|
|
271
|
-
const builder = shared.workspace.DocumentBuilder;
|
|
272
|
-
await workspace.ready;
|
|
273
|
-
const folderUris = workspace.workspaceFolders ?? [];
|
|
274
|
-
const omlUris = new Set<string>();
|
|
275
|
-
for (const folder of folderUris) {
|
|
276
|
-
const entries = await workspace.searchFolder(URI.parse(folder.uri));
|
|
277
|
-
for (const entry of entries) {
|
|
278
|
-
const entryUri = entry.toString();
|
|
279
|
-
if (entryUri.toLowerCase().endsWith('.oml')) {
|
|
280
|
-
omlUris.add(entryUri);
|
|
281
|
-
}
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
if (omlUris.size > 0) {
|
|
285
|
-
const docs = await Promise.all(
|
|
286
|
-
[...omlUris].map((uri) => documents.getOrCreateDocument(URI.parse(uri)))
|
|
287
|
-
);
|
|
288
|
-
await builder.build(docs, { validation: { categories: ['built-in', 'fast'] } });
|
|
289
|
-
}
|
|
290
|
-
state.completed = true;
|
|
291
|
-
})().finally(() => {
|
|
292
|
-
state.promise = undefined;
|
|
293
|
-
});
|
|
294
|
-
state.promise = promise;
|
|
295
|
-
workspacePreloadState.set(key, state);
|
|
296
|
-
await promise;
|
|
297
|
-
}
|
package/src/oml/oml-document.ts
CHANGED
|
@@ -5,7 +5,7 @@ import { DefaultDocumentUpdateHandler } from 'langium/lsp';
|
|
|
5
5
|
import type { LangiumSharedServices } from 'langium/lsp';
|
|
6
6
|
import { FileChangeType, type DidChangeWatchedFilesParams } from 'vscode-languageserver';
|
|
7
7
|
import { getOntologyModelIndex } from './oml-index.js';
|
|
8
|
-
import { isIgnoredByOmlLsDocumentUri } from './oml-utils.js';
|
|
8
|
+
import { isIgnoredByOmlLsDocumentUri, normalizeUriPath } from './oml-utils.js';
|
|
9
9
|
|
|
10
10
|
export class OmlDocumentUpdateHandler extends DefaultDocumentUpdateHandler {
|
|
11
11
|
private readonly services: LangiumSharedServices;
|
|
@@ -70,7 +70,3 @@ function matchesDeletedUri(candidateUri: string, deletedUris: ReadonlySet<string
|
|
|
70
70
|
return false;
|
|
71
71
|
}
|
|
72
72
|
|
|
73
|
-
function normalizeUriPath(path: string): string {
|
|
74
|
-
const normalized = path.replace(/\/+$/, '');
|
|
75
|
-
return normalized || '/';
|
|
76
|
-
}
|
package/src/oml/oml-index.ts
CHANGED
|
@@ -31,6 +31,11 @@ export class OmlIndex {
|
|
|
31
31
|
private readonly typeSuperIrisByModelUri = new Map<string, Map<string, Set<string>>>();
|
|
32
32
|
|
|
33
33
|
constructor(private readonly shared: LangiumSharedServices) {
|
|
34
|
+
this.shared.workspace.DocumentBuilder.onUpdate((_changed, deleted) => {
|
|
35
|
+
for (const deletedUri of deleted) {
|
|
36
|
+
this.removeModelUri(deletedUri.toString());
|
|
37
|
+
}
|
|
38
|
+
});
|
|
34
39
|
this.shared.workspace.DocumentBuilder.onDocumentPhase(DocumentState.Parsed, (document) => {
|
|
35
40
|
this.indexDocument(document);
|
|
36
41
|
});
|
|
@@ -208,7 +213,10 @@ export class OmlIndex {
|
|
|
208
213
|
}
|
|
209
214
|
|
|
210
215
|
removeDocument(document: LangiumDocument): void {
|
|
211
|
-
|
|
216
|
+
this.removeModelUri(document.uri.toString());
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
private removeModelUri(modelUri: string): void {
|
|
212
220
|
this.removeLabelsForModelUri(modelUri);
|
|
213
221
|
this.removeTypesForModelUri(modelUri);
|
|
214
222
|
this.removeTypeHierarchyForModelUri(modelUri);
|
package/src/oml/oml-scope.ts
CHANGED
|
@@ -144,8 +144,8 @@ export class OmlScopeProvider extends DefaultScopeProvider {
|
|
|
144
144
|
const ontology = document?.parseResult?.value as Ontology | undefined;
|
|
145
145
|
|
|
146
146
|
if (ontology) {
|
|
147
|
-
result = this.addCurrentOntologyEntries(result, document, ontology);
|
|
148
|
-
result = this.addImportedOntologyEntries(result, ontology);
|
|
147
|
+
result = this.addCurrentOntologyEntries(result, document, ontology, referenceType);
|
|
148
|
+
result = this.addImportedOntologyEntries(result, ontology, referenceType);
|
|
149
149
|
}
|
|
150
150
|
|
|
151
151
|
return result;
|
|
@@ -242,10 +242,13 @@ export class OmlScopeProvider extends DefaultScopeProvider {
|
|
|
242
242
|
}
|
|
243
243
|
}
|
|
244
244
|
|
|
245
|
-
private addCurrentOntologyEntries(scope: Scope, document: LangiumDocument, ontology: Ontology): Scope {
|
|
245
|
+
private addCurrentOntologyEntries(scope: Scope, document: LangiumDocument, ontology: Ontology, referenceType: string): Scope {
|
|
246
246
|
let result = scope;
|
|
247
247
|
const prefix = (ontology as any).prefix as string | undefined;
|
|
248
248
|
for (const symbol of this.getExportedSymbols(ontology)) {
|
|
249
|
+
if (!this.reflection.isSubtype(symbol.node.$type, referenceType)) {
|
|
250
|
+
continue;
|
|
251
|
+
}
|
|
249
252
|
if (prefix) {
|
|
250
253
|
result = this.addDescription(result, symbol.node, `${prefix}:${symbol.name}`, document);
|
|
251
254
|
}
|
|
@@ -256,12 +259,15 @@ export class OmlScopeProvider extends DefaultScopeProvider {
|
|
|
256
259
|
return result;
|
|
257
260
|
}
|
|
258
261
|
|
|
259
|
-
private addImportedOntologyEntries(scope: Scope, current: Ontology): Scope {
|
|
262
|
+
private addImportedOntologyEntries(scope: Scope, current: Ontology, referenceType: string): Scope {
|
|
260
263
|
let result = scope;
|
|
261
264
|
for (const resolvedImport of this.resolveImports(current)) {
|
|
262
265
|
const imported = resolvedImport.target;
|
|
263
266
|
const importedSymbols = this.getExportedSymbols(imported.ontology);
|
|
264
267
|
for (const symbol of importedSymbols) {
|
|
268
|
+
if (!this.reflection.isSubtype(symbol.node.$type, referenceType)) {
|
|
269
|
+
continue;
|
|
270
|
+
}
|
|
265
271
|
if (resolvedImport.prefix) {
|
|
266
272
|
result = this.addDescription(result, symbol.node, `${resolvedImport.prefix}:${symbol.name}`, imported.document);
|
|
267
273
|
}
|