@osmix/vt 0.0.2 → 0.0.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.
@@ -1 +1 @@
1
- {"version":3,"file":"encode.js","sourceRoot":"","sources":["../src/encode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"encode.js","sourceRoot":"","sources":["../src/encode.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAA;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAClE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAE3D,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAMrD,OAAO,UAAU,MAAM,gBAAgB,CAAA;AAEvC,mDAAmD;AACnD,MAAM,cAAc,GAAG,IAAI,CAAA;AAC3B,kDAAkD;AAClD,MAAM,cAAc,GAAG,EAAE,CAAA;AAEzB,MAAM,OAAO,GAAwB;IACpC,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,OAAO,EAAE,CAAC;CACV,CAAA;AAED,MAAM,KAAK,GAAG,CAAC,KAAa,EAAE,GAAW,EAAE,GAAW,EAAE,EAAE,CACzD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAA;AAEpC,SAAS,YAAY,CAAC,MAAY;IACjC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,MAAM,CAAA;IACpC,MAAM,MAAM,GAAS,EAAE,CAAA;IACvB,IAAI,SAAS,GAAO,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAA;IAC5C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC5B,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC;YAAE,SAAQ;QACpE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAClB,SAAS,GAAG,KAAK,CAAA;IAClB,CAAC;IACD,OAAO,MAAM,CAAA;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAC5B,IAAU,EACV,MAAM,GAAG,cAAc;IAEvB,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;AACpD,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,cAAc;IACjB,aAAa,CAAQ;IACrB,YAAY,CAAQ;IACpB,iBAAiB,CAAQ;IACjB,GAAG,CAAK;IACR,MAAM,CAAQ;IACd,UAAU,CAAkC;IAE7D,MAAM,CAAC,UAAU,CAAC,EAAU;QAC3B,OAAO;YACN,aAAa,EAAE,UAAU,EAAE,QAAQ;YACnC,YAAY,EAAE,UAAU,EAAE,OAAO;YACjC,iBAAiB,EAAE,UAAU,EAAE,YAAY;SAC3C,CAAA;IACF,CAAC;IAED,YAAY,GAAQ,EAAE,MAAM,GAAG,cAAc,EAAE,MAAM,GAAG,cAAc;QACrE,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QAEd,MAAM,GAAG,GAAG,CAAC,MAAM,CAAA;QACnB,MAAM,GAAG,GAAG,MAAM,GAAG,MAAM,CAAA;QAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,UAAU,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;QAEtC,MAAM,SAAS,GAAG,UAAU,GAAG,CAAC,EAAE,EAAE,CAAA;QACpC,IAAI,CAAC,aAAa,GAAG,GAAG,SAAS,QAAQ,CAAA;QACzC,IAAI,CAAC,YAAY,GAAG,GAAG,SAAS,OAAO,CAAA;QACvC,IAAI,CAAC,iBAAiB,GAAG,GAAG,SAAS,YAAY,CAAA;IAClD,CAAC;IAED;;;OAGG;IACH,OAAO,CAAC,IAAU;QACjB,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;QAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;QAC/B,IAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;YAC9C,OAAO,IAAI,WAAW,CAAC,CAAC,CAAC,CAAA;QAC1B,CAAC;QACD,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;IAC5E,CAAC;IAED;;;;OAIG;IACH,cAAc,CAAC,IAAe,EAAE,IAAwB;QACvD,gFAAgF;QAChF,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,CAAA;QAE3D,MAAM,MAAM,GAAG;YACd;gBACC,IAAI,EAAE,IAAI,CAAC,YAAY;gBACvB,OAAO,EAAE,CAAC;gBACV,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC;aACtD;YACD;gBACC,IAAI,EAAE,IAAI,CAAC,aAAa;gBACxB,OAAO,EAAE,CAAC;gBACV,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC;aACvC;YACD;gBACC,IAAI,EAAE,IAAI,CAAC,iBAAiB;gBAC5B,OAAO,EAAE,CAAC;gBACV,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC;aAC3C;SACD,CAAA;QACD,OAAO,UAAU,CAAC,MAAM,CAAC,CAAA;IAC1B,CAAC;IAED,CAAC,YAAY,CACZ,IAAe,EACf,IAAwB;QAExB,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAA;QAC9D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7C,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;YAChC,IAAI,SAAS,KAAK,SAAS;gBAAE,SAAQ;YACrC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;YACnD,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAQ;YACrD,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,CAAA;YAC3C,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;YAC7D,MAAM;gBACL,EAAE;gBACF,IAAI,EAAE,OAAO,CAAC,KAAK;gBACnB,UAAU,EAAE,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;gBACrC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;aACtB,CAAA;QACF,CAAC;IACF,CAAC;IAED,CAAC,WAAW,CACX,IAAe,EACf,IAAwB,EACxB,cAA4B;QAE5B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5C,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,CAAA;YAC9B,IAAI,QAAQ,KAAK,SAAS;gBAAE,SAAQ;YACpC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAA;YACzC,6EAA6E;YAC7E,IAAI,EAAE,KAAK,SAAS,IAAI,cAAc,EAAE,GAAG,CAAC,EAAE,CAAC;gBAAE,SAAQ;YACzD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;YACjD,8DAA8D;YAC9D,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAQ;YACrD,MAAM,eAAe,GAAG,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;YAC1E,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAA;YACtD,MAAM,MAAM,GAAS,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;YAElD,MAAM,MAAM,GAAG,SAAS,CAAC;gBACxB,EAAE;gBACF,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;gBACvC,IAAI;aACJ,CAAC,CAAA;YACF,MAAM,QAAQ,GAA4B,EAAE,CAAA;YAC5C,IAAI,MAAM,EAAE,CAAC;gBACZ,0DAA0D;gBAC1D,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAA;gBAEtD,+EAA+E;gBAC/E,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC;oBACtE,MAAM,WAAW,GAAG,YAAY,CAAC,SAAS,CAAC,CAAA;oBAC3C,IAAI,CAAC,WAAW;wBAAE,SAAQ;oBAE1B,yDAAyD;oBACzD,mDAAmD;oBACnD,+CAA+C;oBAC/C,MAAM,OAAO,GAAG,SAAS,KAAK,CAAC,CAAA;oBAC/B,MAAM,aAAa,GAAG,IAAI,CAAC,yBAAyB,CACnD,WAAW,EACX,OAAO,CACP,CAAA;oBAED,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC9B,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;oBAC7B,CAAC;gBACF,CAAC;YACF,CAAC;iBAAM,CAAC;gBACP,MAAM,kBAAkB,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAA;gBAC7D,KAAK,MAAM,OAAO,IAAI,kBAAkB,EAAE,CAAC;oBAC1C,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAA;oBAChE,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;oBACrC,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;wBACzB,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;oBACvB,CAAC;gBACF,CAAC;YACF,CAAC;YACD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAQ;YACnC,MAAM;gBACL,EAAE;gBACF,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI;gBAC7C,UAAU,EAAE;oBACX,GAAG,IAAI;oBACP,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACtD,IAAI,EAAE,KAAK;iBACX;gBACD,QAAQ;aACR,CAAA;QACF,CAAC;IACF,CAAC;IAED,qBAAqB,CAAC,MAAY;QACjC,OAAO,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;IAC7C,CAAC;IAED,oBAAoB,CAAC,MAAY;QAChC,4EAA4E;QAC5E,iDAAiD;QACjD,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;QACpD,OAAO,CAAC,OAAO,CAAC,CAAA;IACjB,CAAC;IAED,yBAAyB,CAAC,OAAa,EAAE,OAAgB;QACxD,+BAA+B;QAC/B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAA;QAEhE,yCAAyC;QACzC,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,CAAA;QAClC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAA;QAEnC,yCAAyC;QACzC,8BAA8B;QAC9B,6CAA6C;QAC7C,MAAM,QAAQ,GAAG,OAAO;YACvB,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC;YAC1B,CAAC,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAA;QAElC,OAAO,QAAQ,CAAA;IAChB,CAAC;IAED;;OAEG;IACH,CAAC,gBAAgB,CAChB,IAAe,EACf,IAAwB;QAExB,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QAE3D,KAAK,MAAM,QAAQ,IAAI,eAAe,EAAE,CAAC;YACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;YACxD,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAA;YACzE,IACC,CAAC,QAAQ;gBACT,CAAC,CAAC,gBAAgB,CAAC,WAAW;oBAC7B,CAAC,gBAAgB,CAAC,KAAK;oBACvB,CAAC,gBAAgB,CAAC,MAAM,CAAC;gBAE1B,SAAQ;YAET,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAA;YAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;YAEtD,IAAI,gBAAgB,CAAC,KAAK,EAAE,CAAC;gBAC5B,0CAA0C;gBAC1C,MAAM,EAAE,KAAK,EAAE,GAAG,gBAAgB,CAAA;gBAClC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;oBAAE,SAAQ;gBAEhC,uCAAuC;gBACvC,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE,CAAC;oBAC7B,MAAM,QAAQ,GAA4B,EAAE,CAAA;oBAE5C,6CAA6C;oBAC7C,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC;wBACjE,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;wBAC/B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;4BAAE,SAAQ;wBAEtC,mCAAmC;wBACnC,MAAM,aAAa,GAAS,IAAI,CAAC,GAAG,CAAC,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;wBAE9D,oBAAoB;wBACpB,MAAM,OAAO,GAAG,WAAW,CAAC,aAAa,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;wBAC3D,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;4BAAE,SAAQ;wBAEhC,oDAAoD;wBACpD,MAAM,OAAO,GAAG,SAAS,KAAK,CAAC,CAAA;wBAC/B,MAAM,aAAa,GAAG,IAAI,CAAC,yBAAyB,CACnD,OAAO,EACP,OAAO,CACP,CAAA;wBAED,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BAC9B,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;wBAC7B,CAAC;oBACF,CAAC;oBAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;wBAAE,SAAQ;oBAEnC,MAAM;wBACL,EAAE,EAAE,EAAE,IAAI,CAAC;wBACX,IAAI,EAAE,OAAO,CAAC,OAAO;wBACrB,UAAU,EAAE,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE;wBACzC,QAAQ;qBACR,CAAA;gBACF,CAAC;YACF,CAAC;iBAAM,IAAI,gBAAgB,CAAC,WAAW,EAAE,CAAC;gBACzC,0CAA0C;gBAC1C,MAAM,EAAE,WAAW,EAAE,GAAG,gBAAgB,CAAA;gBACxC,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;oBAAE,SAAQ;gBAEtC,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;oBACtC,MAAM,QAAQ,GAA4B,EAAE,CAAA;oBAC5C,MAAM,MAAM,GAAS,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;oBACrD,MAAM,kBAAkB,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAA;oBAC7D,KAAK,MAAM,OAAO,IAAI,kBAAkB,EAAE,CAAC;wBAC1C,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAA;wBAChE,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;wBACrC,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;4BACzB,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;wBACvB,CAAC;oBACF,CAAC;oBACD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;wBAAE,SAAQ;oBAEnC,MAAM;wBACL,EAAE,EAAE,EAAE,IAAI,CAAC;wBACX,IAAI,EAAE,OAAO,CAAC,IAAI;wBAClB,UAAU,EAAE,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE;wBACzC,QAAQ;qBACR,CAAA;gBACF,CAAC;YACF,CAAC;iBAAM,IAAI,gBAAgB,CAAC,MAAM,EAAE,CAAC;gBACpC,+BAA+B;gBAC/B,MAAM,EAAE,MAAM,EAAE,GAAG,gBAAgB,CAAA;gBACnC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;oBAAE,SAAQ;gBAEjC,MAAM,QAAQ,GAA4B,EAAE,CAAA;gBAC5C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;oBAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAA;oBAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAA;oBAClD,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA;gBACzB,CAAC;gBAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;oBAAE,SAAQ;gBAEnC,MAAM;oBACL,EAAE,EAAE,EAAE,IAAI,CAAC;oBACX,IAAI,EAAE,OAAO,CAAC,KAAK;oBACnB,UAAU,EAAE,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE;oBACzC,QAAQ;iBACR,CAAA;YACF,CAAC;QACF,CAAC;IACF,CAAC;IAED,kBAAkB,CAAC,EAAM;QACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAC1B,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CACpD,CAAA;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAC1B,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CACpD,CAAA;QACD,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAO,CAAA;IAClC,CAAC;CACD;AAED;;;GAGG;AACH,SAAS,SAAS,CAAC,IAAU;IAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;IACrB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAClC,IAAI,KAAK,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAA;IAC1D,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,OAAO,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,CAAA;IACxB,CAAC;IACD,OAAO,IAAI,CAAA;AACZ,CAAC;AAED;;;GAGG;AACH,SAAS,QAAQ,CAAC,IAAU;IAC3B,IAAI,GAAG,GAAG,CAAC,CAAA;IACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAE,CAAA;QACzB,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAE,CAAA;QAC7B,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;IACzB,CAAC;IACD,OAAO,GAAG,GAAG,CAAC,CAAA;AACf,CAAC;AAED,SAAS,eAAe,CAAC,IAAU;IAClC,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,EAAE,CAAA;AACvD,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAU;IACzC,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,EAAE,CAAA;AACvD,CAAC;AAED;;;GAGG;AACH,SAAS,SAAS,CAAC,IAAU;IAC5B,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;IAClC,4DAA4D;IAC5D,0CAA0C;IAC1C,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,CAAA;IACjC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,CAAA;IAChC,OAAO,MAAM,CAAA;AACd,CAAC"}
@@ -1,10 +1,12 @@
1
+ import { describe, expect, it } from "bun:test";
2
+ import { pointToTile } from "@mapbox/tilebelt";
1
3
  import { VectorTile } from "@mapbox/vector-tile";
2
- import { Osmix } from "@osmix/core";
3
- import SphericalMercatorTile from "@osmix/shared/spherical-mercator";
4
+ import { Osm } from "@osmix/core";
5
+ import { llToTilePx } from "@osmix/shared/tile";
6
+ import { decodeZigzag } from "@osmix/shared/zigzag";
4
7
  import Protobuf from "pbf";
5
- import { assert, describe, expect, it } from "vitest";
6
8
  import { OsmixVtEncoder } from "./encode";
7
- const osm = new Osmix();
9
+ const osm = new Osm();
8
10
  osm.nodes.addNode({
9
11
  id: 1,
10
12
  lat: 40,
@@ -32,6 +34,7 @@ osm.nodes.addNode({
32
34
  osm.ways.addWay({
33
35
  id: 5,
34
36
  refs: [1, 2],
37
+ tags: { highway: "primary", color: "ff0000" },
35
38
  });
36
39
  osm.buildIndexes();
37
40
  osm.buildSpatialIndexes();
@@ -42,13 +45,6 @@ function decodeTile(data) {
42
45
  return tile.layers;
43
46
  }
44
47
  const extent = 4096;
45
- const merc = new SphericalMercatorTile({ size: extent });
46
- function pointToTile(lon, lat, z) {
47
- const [px, py] = merc.px([lon, lat], z);
48
- const x = Math.floor(px / extent);
49
- const y = Math.floor(py / extent);
50
- return [x, y, z];
51
- }
52
48
  function bboxToTile(bbox, z = 8) {
53
49
  const [minX, minY, maxX, maxY] = bbox;
54
50
  const centerLon = (minX + maxX) / 2;
@@ -63,25 +59,373 @@ describe("OsmixVtEncoder", () => {
63
59
  const result = encoder.getTile(tile);
64
60
  expect(result.byteLength).toBeGreaterThan(0);
65
61
  const layers = decodeTile(result);
66
- assert.isDefined(layers[NODE_LAYER_ID]);
67
- expect(layers[NODE_LAYER_ID].length).toBe(1);
68
- assert.isDefined(layers[WAY_LAYER_ID]);
69
- expect(layers[WAY_LAYER_ID].length).toBe(1);
70
- const features = [
71
- layers[NODE_LAYER_ID].feature(0),
72
- layers[WAY_LAYER_ID].feature(0),
73
- ];
62
+ expect(layers[NODE_LAYER_ID]).toBeDefined();
63
+ expect(layers[NODE_LAYER_ID]?.length).toBe(1);
64
+ expect(layers[WAY_LAYER_ID]).toBeDefined();
65
+ expect(layers[WAY_LAYER_ID]?.length).toBe(1);
66
+ const nodeLayer = layers[NODE_LAYER_ID];
67
+ const wayLayer = layers[WAY_LAYER_ID];
68
+ if (!nodeLayer || !wayLayer)
69
+ throw new Error("Layers not found");
70
+ const features = [nodeLayer.feature(0), wayLayer.feature(0)];
74
71
  const node = features.find((feature) => feature.properties["type"] === "node");
75
- expect(node?.id).toBe(1);
72
+ // IDs are zigzag-encoded, so decode them
73
+ if (node?.id !== undefined) {
74
+ const decodedId = decodeZigzag(node.id);
75
+ expect(decodedId).toBe(1);
76
+ }
76
77
  expect(node?.type).toBe(1);
77
78
  const nodeGeom = node?.loadGeometry();
78
79
  expect(nodeGeom?.[0]?.[0]?.x).toBeTypeOf("number");
79
80
  expect(nodeGeom?.[0]?.[0]?.y).toBeTypeOf("number");
80
81
  const way = features.find((feature) => feature.properties["type"] === "way");
81
- expect(way?.id).toBe(5);
82
+ // IDs are zigzag-encoded, so decode them
83
+ if (way?.id !== undefined) {
84
+ const decodedId = decodeZigzag(way.id);
85
+ expect(decodedId).toBe(5);
86
+ }
82
87
  expect(way?.type).toBe(2);
88
+ expect(way?.properties["color"]).toBe("#FF0000");
83
89
  const wayGeom = way?.loadGeometry();
84
90
  expect(wayGeom?.[0]?.length).toBeGreaterThanOrEqual(2);
85
91
  });
92
+ it("encodes area ways as polygons with proper winding order", () => {
93
+ const testOsm = new Osm();
94
+ // Create a closed way that should be treated as an area
95
+ testOsm.nodes.addNode({ id: 10, lat: 40.7, lon: -74.0 });
96
+ testOsm.nodes.addNode({ id: 11, lat: 40.71, lon: -74.0 });
97
+ testOsm.nodes.addNode({ id: 12, lat: 40.71, lon: -74.01 });
98
+ testOsm.nodes.addNode({ id: 13, lat: 40.7, lon: -74.01 });
99
+ testOsm.ways.addWay({
100
+ id: 20,
101
+ refs: [10, 11, 12, 13, 10], // Closed ring
102
+ tags: { building: "yes", area: "yes" },
103
+ });
104
+ testOsm.buildIndexes();
105
+ testOsm.buildSpatialIndexes();
106
+ const bbox = testOsm.bbox();
107
+ const tile = bboxToTile(bbox);
108
+ const encoder = new OsmixVtEncoder(testOsm);
109
+ const result = encoder.getTile(tile);
110
+ const layers = decodeTile(result);
111
+ const wayLayer = layers[`@osmix:${testOsm.id}:ways`];
112
+ expect(wayLayer?.length).toBe(1);
113
+ const feature = wayLayer?.feature(0);
114
+ if (!feature)
115
+ throw new Error("Feature not found");
116
+ expect(feature.type).toBe(3); // POLYGON type
117
+ expect(feature.properties["type"]).toBe("way");
118
+ expect(feature.properties["building"]).toBe("yes");
119
+ const geometry = feature.loadGeometry();
120
+ expect(geometry.length).toBeGreaterThan(0);
121
+ // Should have at least one ring (outer ring)
122
+ expect(geometry[0]?.length).toBeGreaterThanOrEqual(4); // At least 4 points for a polygon
123
+ });
124
+ it("handles multiple rings for polygons (infrastructure for holes)", () => {
125
+ const testOsm = new Osm();
126
+ // Create an area way
127
+ testOsm.nodes.addNode({ id: 20, lat: 40.7, lon: -74.0 });
128
+ testOsm.nodes.addNode({ id: 21, lat: 40.71, lon: -74.0 });
129
+ testOsm.nodes.addNode({ id: 22, lat: 40.71, lon: -74.01 });
130
+ testOsm.nodes.addNode({ id: 23, lat: 40.7, lon: -74.01 });
131
+ testOsm.ways.addWay({
132
+ id: 30,
133
+ refs: [20, 21, 22, 23, 20],
134
+ tags: { building: "yes", area: "yes" },
135
+ });
136
+ testOsm.buildIndexes();
137
+ testOsm.buildSpatialIndexes();
138
+ const bbox = testOsm.bbox();
139
+ const tile = bboxToTile(bbox);
140
+ const encoder = new OsmixVtEncoder(testOsm);
141
+ // Test that clipProjectedPolygon returns array of rings
142
+ const way = testOsm.ways.getById(30);
143
+ expect(way).toBeDefined();
144
+ const points = way.refs.map((ref) => {
145
+ const node = testOsm.nodes.getById(ref);
146
+ return llToTilePx([node.lon, node.lat], tile, extent);
147
+ });
148
+ const clippedRings = encoder["clipProjectedPolygon"](points);
149
+ expect(Array.isArray(clippedRings)).toBe(true);
150
+ expect(clippedRings.length).toBeGreaterThan(0);
151
+ expect(Array.isArray(clippedRings[0])).toBe(true);
152
+ });
153
+ it("processes polygon rings with correct winding order (outer clockwise, inner counterclockwise)", () => {
154
+ const testOsm = new Osm();
155
+ testOsm.nodes.addNode({ id: 30, lat: 40.7, lon: -74.0 });
156
+ testOsm.nodes.addNode({ id: 31, lat: 40.71, lon: -74.0 });
157
+ testOsm.nodes.addNode({ id: 32, lat: 40.71, lon: -74.01 });
158
+ testOsm.nodes.addNode({ id: 33, lat: 40.7, lon: -74.01 });
159
+ testOsm.ways.addWay({
160
+ id: 40,
161
+ refs: [30, 31, 32, 33, 30],
162
+ tags: { building: "yes", area: "yes" },
163
+ });
164
+ testOsm.buildIndexes();
165
+ testOsm.buildSpatialIndexes();
166
+ const bbox = testOsm.bbox();
167
+ const tile = bboxToTile(bbox);
168
+ const encoder = new OsmixVtEncoder(testOsm);
169
+ const way = testOsm.ways.getById(40);
170
+ const points = way.refs.map((ref) => {
171
+ const node = testOsm.nodes.getById(ref);
172
+ return llToTilePx([node.lon, node.lat], tile, extent);
173
+ });
174
+ const clippedRings = encoder["clipProjectedPolygon"](points);
175
+ const outerRing = clippedRings[0];
176
+ expect(outerRing).toBeDefined();
177
+ // Process as outer ring (should be clockwise)
178
+ const processedOuter = encoder["processClippedPolygonRing"](outerRing, true);
179
+ expect(processedOuter.length).toBeGreaterThan(0);
180
+ // Process as inner ring (should be counterclockwise)
181
+ const processedInner = encoder["processClippedPolygonRing"](outerRing, false);
182
+ expect(processedInner.length).toBeGreaterThan(0);
183
+ // Verify they have opposite winding (area should have opposite signs)
184
+ const outerArea = processedOuter.reduce((sum, p, i) => {
185
+ const next = processedOuter[(i + 1) % processedOuter.length];
186
+ if (!next)
187
+ return sum;
188
+ return sum + (p[0] * next[1] - next[0] * p[1]);
189
+ }, 0);
190
+ const innerArea = processedInner.reduce((sum, p, i) => {
191
+ const next = processedInner[(i + 1) % processedInner.length];
192
+ if (!next)
193
+ return sum;
194
+ return sum + (p[0] * next[1] - next[0] * p[1]);
195
+ }, 0);
196
+ // Outer should be clockwise (negative area), inner should be counterclockwise (positive area)
197
+ expect(outerArea).toBeLessThan(0);
198
+ expect(innerArea).toBeGreaterThan(0);
199
+ });
200
+ it("encodes multipolygon relation with correct winding order", () => {
201
+ const testOsm = new Osm();
202
+ // Create nodes for outer square
203
+ testOsm.nodes.addNode({ id: 1, lat: -1.0, lon: -1.0 });
204
+ testOsm.nodes.addNode({ id: 2, lat: -1.0, lon: 1.0 });
205
+ testOsm.nodes.addNode({ id: 3, lat: 1.0, lon: 1.0 });
206
+ testOsm.nodes.addNode({ id: 4, lat: 1.0, lon: -1.0 });
207
+ // Create nodes for inner triangle
208
+ testOsm.nodes.addNode({ id: 5, lat: -0.5, lon: 0.0 });
209
+ testOsm.nodes.addNode({ id: 6, lat: 0.5, lon: 0.0 });
210
+ testOsm.nodes.addNode({ id: 7, lat: 0.0, lon: 0.5 });
211
+ // Create outer way
212
+ testOsm.ways.addWay({
213
+ id: 10,
214
+ refs: [1, 2, 3, 4, 1],
215
+ tags: {},
216
+ });
217
+ // Create inner way
218
+ testOsm.ways.addWay({
219
+ id: 11,
220
+ refs: [5, 6, 7, 5],
221
+ tags: {},
222
+ });
223
+ // Create multipolygon relation
224
+ testOsm.relations.addRelation({
225
+ id: 20,
226
+ tags: { type: "multipolygon", name: "test" },
227
+ members: [
228
+ { type: "way", ref: 10, role: "outer" },
229
+ { type: "way", ref: 11, role: "inner" },
230
+ ],
231
+ });
232
+ testOsm.buildIndexes();
233
+ testOsm.buildSpatialIndexes();
234
+ const bbox = [-2, -2, 2, 2];
235
+ const tile = bboxToTile(bbox);
236
+ const encoder = new OsmixVtEncoder(testOsm);
237
+ const features = Array.from(encoder.relationFeatures(bbox, (ll) => llToTilePx(ll, tile, extent)));
238
+ expect(features.length).toBeGreaterThan(0);
239
+ const relationFeature = features[0];
240
+ expect(relationFeature).toBeDefined();
241
+ expect(relationFeature?.type).toBe(3); // POLYGON
242
+ const geometry = relationFeature?.geometry;
243
+ expect(geometry).toBeDefined();
244
+ expect(Array.isArray(geometry)).toBe(true);
245
+ if (geometry && Array.isArray(geometry) && geometry.length > 0) {
246
+ const outerRing = geometry[0];
247
+ expect(outerRing).toBeDefined();
248
+ if (outerRing && Array.isArray(outerRing) && outerRing.length > 0) {
249
+ // Verify outer ring is clockwise (negative signed area)
250
+ const outerArea = outerRing.reduce((sum, p, i) => {
251
+ const next = outerRing[(i + 1) % outerRing.length];
252
+ if (!next)
253
+ return sum;
254
+ return sum + (p[0] * next[1] - next[0] * p[1]);
255
+ }, 0);
256
+ expect(outerArea).toBeLessThan(0); // Clockwise
257
+ // If there's an inner ring, verify it's counterclockwise
258
+ if (geometry.length > 1) {
259
+ const innerRing = geometry[1];
260
+ if (innerRing && Array.isArray(innerRing) && innerRing.length > 0) {
261
+ const innerArea = innerRing.reduce((sum, p, i) => {
262
+ const next = innerRing[(i + 1) % innerRing.length];
263
+ if (!next)
264
+ return sum;
265
+ return sum + (p[0] * next[1] - next[0] * p[1]);
266
+ }, 0);
267
+ expect(innerArea).toBeGreaterThan(0); // Counterclockwise
268
+ }
269
+ }
270
+ }
271
+ }
272
+ });
273
+ it("encodes area way as polygon with correct winding order", () => {
274
+ const testOsm = new Osm();
275
+ // Create a square polygon
276
+ testOsm.nodes.addNode({ id: 1, lat: 40.7, lon: -74.0 });
277
+ testOsm.nodes.addNode({ id: 2, lat: 40.71, lon: -74.0 });
278
+ testOsm.nodes.addNode({ id: 3, lat: 40.71, lon: -74.01 });
279
+ testOsm.nodes.addNode({ id: 4, lat: 40.7, lon: -74.01 });
280
+ testOsm.ways.addWay({
281
+ id: 10,
282
+ refs: [1, 2, 3, 4, 1],
283
+ tags: { area: "yes", building: "yes" },
284
+ });
285
+ testOsm.buildIndexes();
286
+ testOsm.buildSpatialIndexes();
287
+ const bbox = testOsm.bbox();
288
+ const tile = bboxToTile(bbox);
289
+ const encoder = new OsmixVtEncoder(testOsm);
290
+ const features = Array.from(encoder.wayFeatures(bbox, (ll) => llToTilePx(ll, tile, extent)));
291
+ const polygonFeature = features.find((f) => f.type === 3); // POLYGON
292
+ expect(polygonFeature).toBeDefined();
293
+ if (polygonFeature?.geometry) {
294
+ const geometry = polygonFeature.geometry;
295
+ if (Array.isArray(geometry) && geometry.length > 0) {
296
+ const ring = geometry[0];
297
+ if (ring && Array.isArray(ring) && ring.length > 0) {
298
+ // Verify clockwise winding (negative area)
299
+ const area = ring.reduce((sum, p, i) => {
300
+ const next = ring[(i + 1) % ring.length];
301
+ if (!next)
302
+ return sum;
303
+ return sum + (p[0] * next[1] - next[0] * p[1]);
304
+ }, 0);
305
+ expect(area).toBeLessThan(0); // Should be clockwise for MVT
306
+ }
307
+ }
308
+ }
309
+ });
310
+ it("encodes negative IDs correctly", () => {
311
+ const testOsm = new Osm();
312
+ // Create nodes with negative IDs (like from GeoJSON import)
313
+ testOsm.nodes.addNode({
314
+ id: -1,
315
+ lat: 40.7,
316
+ lon: -74.0,
317
+ tags: { name: "Negative Node" },
318
+ });
319
+ testOsm.nodes.addNode({
320
+ id: -2,
321
+ lat: 40.71,
322
+ lon: -74.01,
323
+ tags: { name: "Another Negative Node" },
324
+ });
325
+ testOsm.ways.addWay({
326
+ id: -10,
327
+ refs: [-1, -2],
328
+ tags: { highway: "primary" },
329
+ });
330
+ testOsm.buildIndexes();
331
+ testOsm.buildSpatialIndexes();
332
+ const bbox = testOsm.bbox();
333
+ const tile = bboxToTile(bbox);
334
+ const encoder = new OsmixVtEncoder(testOsm);
335
+ const result = encoder.getTile(tile);
336
+ expect(result.byteLength).toBeGreaterThan(0);
337
+ const layers = decodeTile(result);
338
+ const nodeLayer = layers[NODE_LAYER_ID];
339
+ const wayLayer = layers[WAY_LAYER_ID];
340
+ expect(nodeLayer).toBeDefined();
341
+ expect(wayLayer).toBeDefined();
342
+ // Check that negative IDs are zigzag-encoded and can be decoded back
343
+ if (nodeLayer && nodeLayer.length > 0) {
344
+ const nodeFeature = nodeLayer.feature(0);
345
+ // IDs are zigzag-encoded, so decode them
346
+ if (nodeFeature.id !== undefined) {
347
+ const decodedId = decodeZigzag(nodeFeature.id);
348
+ expect(decodedId).toBe(-1);
349
+ }
350
+ }
351
+ if (wayLayer && wayLayer.length > 0) {
352
+ const wayFeature = wayLayer.feature(0);
353
+ // IDs are zigzag-encoded, so decode them
354
+ if (wayFeature.id !== undefined) {
355
+ const decodedId = decodeZigzag(wayFeature.id);
356
+ expect(decodedId).toBe(-10);
357
+ }
358
+ }
359
+ });
360
+ it("accepts IDs at the boundaries of safe integer range", () => {
361
+ const testOsm = new Osm();
362
+ // Add nodes for ways to reference
363
+ testOsm.nodes.addNode({ id: 1, lat: 40.7, lon: -74.0 });
364
+ testOsm.nodes.addNode({ id: 2, lat: 40.71, lon: -74.01 });
365
+ // Test minimum valid ID (way)
366
+ testOsm.ways.addWay({
367
+ id: -Number.MAX_SAFE_INTEGER,
368
+ refs: [1, 2],
369
+ tags: { highway: "primary" },
370
+ });
371
+ // Test maximum valid ID (node with tags)
372
+ testOsm.nodes.addNode({
373
+ id: Number.MAX_SAFE_INTEGER,
374
+ lat: 40.72,
375
+ lon: -74.02,
376
+ tags: { name: "Max ID" },
377
+ });
378
+ testOsm.buildIndexes();
379
+ testOsm.buildSpatialIndexes();
380
+ const bbox = testOsm.bbox();
381
+ const tile = bboxToTile(bbox);
382
+ const encoder = new OsmixVtEncoder(testOsm);
383
+ // Should not throw - this verifies the IDs are within the valid range
384
+ const result = encoder.getTile(tile);
385
+ expect(result.byteLength).toBeGreaterThan(0);
386
+ });
387
+ it("encodes and decodes large negative IDs correctly", () => {
388
+ const testOsm = new Osm();
389
+ // Test with a large negative ID (much larger than 32-bit range)
390
+ const largeNegativeId = -1000000000; // -1 billion
391
+ // Add a node for the way to reference
392
+ testOsm.nodes.addNode({ id: 1, lat: 40.71, lon: -74.01 });
393
+ testOsm.nodes.addNode({
394
+ id: largeNegativeId,
395
+ lat: 40.7,
396
+ lon: -74.0,
397
+ tags: { name: "Large Negative ID" },
398
+ });
399
+ // Add a dummy way so way spatial index can be built
400
+ testOsm.ways.addWay({
401
+ id: 100,
402
+ refs: [1],
403
+ tags: {},
404
+ });
405
+ testOsm.buildIndexes();
406
+ testOsm.buildSpatialIndexes();
407
+ const bbox = testOsm.bbox();
408
+ const tile = bboxToTile(bbox);
409
+ const encoder = new OsmixVtEncoder(testOsm);
410
+ const result = encoder.getTile(tile);
411
+ const layers = decodeTile(result);
412
+ const nodeLayer = layers[NODE_LAYER_ID];
413
+ expect(nodeLayer).toBeDefined();
414
+ if (nodeLayer && nodeLayer.length > 0) {
415
+ // Find the node with the large negative ID
416
+ let found = false;
417
+ for (let i = 0; i < nodeLayer.length; i++) {
418
+ const nodeFeature = nodeLayer.feature(i);
419
+ if (nodeFeature.id !== undefined) {
420
+ const decodedId = decodeZigzag(nodeFeature.id);
421
+ if (decodedId === largeNegativeId) {
422
+ found = true;
423
+ break;
424
+ }
425
+ }
426
+ }
427
+ expect(found).toBe(true);
428
+ }
429
+ });
86
430
  });
87
431
  //# sourceMappingURL=encode.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"encode.test.js","sourceRoot":"","sources":["../src/encode.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"encode.test.js","sourceRoot":"","sources":["../src/encode.test.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,2 +1,33 @@
1
- export { OsmixVtEncoder } from "./encode";
1
+ /**
2
+ * @osmix/vt - Mapbox Vector Tile encoding for OSM data.
3
+ *
4
+ * Converts `@osmix/core` OSM datasets into Mapbox Vector Tiles (MVT) format.
5
+ * Generates PBF-encoded tiles with separate layers for nodes, ways, and relations.
6
+ *
7
+ * Key features:
8
+ * - **Per-entity layers**: Separate layers for nodes, ways, and relations.
9
+ * - **Geometry conversion**: Ways become lines or polygons based on area heuristics.
10
+ * - **Multipolygon support**: Renders multipolygon relations as proper polygons with holes.
11
+ * - **Clipping**: Geometry is clipped to tile bounds with configurable buffer.
12
+ * - **Winding order**: Automatically enforces MVT spec (CW outer, CCW inner rings).
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * import { OsmixVtEncoder } from "@osmix/vt"
17
+ *
18
+ * const encoder = new OsmixVtEncoder(osm)
19
+ * const pbfBuffer = encoder.getTile([9372, 12535, 15])
20
+ *
21
+ * // Use with MapLibre or other vector tile renderers
22
+ * map.addSource("osmix", {
23
+ * type: "vector",
24
+ * tiles: [/* ... generate tile URLs ... *\/]
25
+ * })
26
+ * ```
27
+ *
28
+ * @module @osmix/vt
29
+ */
30
+ export { OsmixVtEncoder, projectToTile } from "./encode";
31
+ export * from "./types";
32
+ export { default as writeVtPbf } from "./write-vt-pbf";
2
33
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxD,cAAc,SAAS,CAAA;AACvB,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAA"}
package/dist/index.js CHANGED
@@ -1,2 +1,33 @@
1
- export { OsmixVtEncoder } from "./encode";
1
+ /**
2
+ * @osmix/vt - Mapbox Vector Tile encoding for OSM data.
3
+ *
4
+ * Converts `@osmix/core` OSM datasets into Mapbox Vector Tiles (MVT) format.
5
+ * Generates PBF-encoded tiles with separate layers for nodes, ways, and relations.
6
+ *
7
+ * Key features:
8
+ * - **Per-entity layers**: Separate layers for nodes, ways, and relations.
9
+ * - **Geometry conversion**: Ways become lines or polygons based on area heuristics.
10
+ * - **Multipolygon support**: Renders multipolygon relations as proper polygons with holes.
11
+ * - **Clipping**: Geometry is clipped to tile bounds with configurable buffer.
12
+ * - **Winding order**: Automatically enforces MVT spec (CW outer, CCW inner rings).
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * import { OsmixVtEncoder } from "@osmix/vt"
17
+ *
18
+ * const encoder = new OsmixVtEncoder(osm)
19
+ * const pbfBuffer = encoder.getTile([9372, 12535, 15])
20
+ *
21
+ * // Use with MapLibre or other vector tile renderers
22
+ * map.addSource("osmix", {
23
+ * type: "vector",
24
+ * tiles: [/* ... generate tile URLs ... *\/]
25
+ * })
26
+ * ```
27
+ *
28
+ * @module @osmix/vt
29
+ */
30
+ export { OsmixVtEncoder, projectToTile } from "./encode";
31
+ export * from "./types";
32
+ export { default as writeVtPbf } from "./write-vt-pbf";
2
33
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxD,cAAc,SAAS,CAAA;AACvB,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAA"}
package/dist/types.d.ts CHANGED
@@ -1,22 +1,48 @@
1
- import type { OsmEntityType, OsmTags } from "@osmix/json";
2
- import type { XY } from "@osmix/shared/types";
1
+ /**
2
+ * Type definitions for vector tile encoding.
3
+ *
4
+ * These types represent the intermediate format used when converting
5
+ * OSM entities to Mapbox Vector Tile features.
6
+ *
7
+ * @module
8
+ */
9
+ import type { OsmTags, XY } from "@osmix/shared/types";
10
+ /**
11
+ * Geometry for a vector tile feature.
12
+ * Array of rings/segments, where each ring/segment is an array of [x, y] coordinates.
13
+ */
3
14
  export type VtSimpleFeatureGeometry = XY[][];
15
+ /**
16
+ * Properties attached to a vector tile feature.
17
+ * Includes OSM tags plus optional source metadata.
18
+ */
4
19
  export type VtSimpleFeatureProperties = {
5
20
  sourceId?: string;
6
- type: OsmEntityType;
7
21
  tileKey?: string;
8
22
  } & OsmTags;
23
+ /**
24
+ * MVT geometry type constants.
25
+ * Point = 1, Line = 2, Polygon = 3.
26
+ */
9
27
  export type VtSimpleFeatureType = {
10
28
  POINT: 1;
11
29
  LINE: 2;
12
30
  POLYGON: 3;
13
31
  };
32
+ /**
33
+ * A simplified vector tile feature ready for encoding.
34
+ * Geometry coordinates are in tile extent units (typically 0-4096).
35
+ */
14
36
  export interface VtSimpleFeature {
15
37
  id: number;
16
38
  type: VtSimpleFeatureType[keyof VtSimpleFeatureType];
17
39
  properties: VtSimpleFeatureProperties;
18
40
  geometry: VtSimpleFeatureGeometry;
19
41
  }
42
+ /**
43
+ * A layer to be written to the vector tile PBF.
44
+ * Features are provided via a generator to support lazy evaluation.
45
+ */
20
46
  export type VtPbfLayer = {
21
47
  name: string;
22
48
  version: number;