@memberjunction/video-studio-render-worker 0.0.0 → 6.2.0-edge.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.
Files changed (59) hide show
  1. package/LICENSE +183 -0
  2. package/README.md +139 -45
  3. package/assets/fonts/Inter-OFL.txt +93 -0
  4. package/assets/fonts/Inter-Regular.ttf +0 -0
  5. package/assets/fonts/JetBrainsMono-OFL.txt +93 -0
  6. package/assets/fonts/JetBrainsMono-Regular.ttf +0 -0
  7. package/dist/backend.d.ts +201 -0
  8. package/dist/backend.d.ts.map +1 -0
  9. package/dist/backend.js +205 -0
  10. package/dist/backend.js.map +1 -0
  11. package/dist/bundle.d.ts +112 -0
  12. package/dist/bundle.d.ts.map +1 -0
  13. package/dist/bundle.js +433 -0
  14. package/dist/bundle.js.map +1 -0
  15. package/dist/checks/dom-rules.d.ts +57 -0
  16. package/dist/checks/dom-rules.d.ts.map +1 -0
  17. package/dist/checks/dom-rules.js +205 -0
  18. package/dist/checks/dom-rules.js.map +1 -0
  19. package/dist/checks/hyperframes-check.d.ts +37 -0
  20. package/dist/checks/hyperframes-check.d.ts.map +1 -0
  21. package/dist/checks/hyperframes-check.js +161 -0
  22. package/dist/checks/hyperframes-check.js.map +1 -0
  23. package/dist/checks/static-checks.d.ts +46 -0
  24. package/dist/checks/static-checks.d.ts.map +1 -0
  25. package/dist/checks/static-checks.js +681 -0
  26. package/dist/checks/static-checks.js.map +1 -0
  27. package/dist/hyperframes-backend.d.ts +53 -0
  28. package/dist/hyperframes-backend.d.ts.map +1 -0
  29. package/dist/hyperframes-backend.js +733 -0
  30. package/dist/hyperframes-backend.js.map +1 -0
  31. package/dist/index.d.ts +20 -0
  32. package/dist/index.d.ts.map +1 -0
  33. package/dist/index.js +20 -0
  34. package/dist/index.js.map +1 -0
  35. package/dist/jobs.d.ts +88 -0
  36. package/dist/jobs.d.ts.map +1 -0
  37. package/dist/jobs.js +650 -0
  38. package/dist/jobs.js.map +1 -0
  39. package/dist/lint-gate.d.ts +21 -0
  40. package/dist/lint-gate.d.ts.map +1 -0
  41. package/dist/lint-gate.js +528 -0
  42. package/dist/lint-gate.js.map +1 -0
  43. package/dist/main.d.ts +47 -0
  44. package/dist/main.d.ts.map +1 -0
  45. package/dist/main.js +195 -0
  46. package/dist/main.js.map +1 -0
  47. package/dist/one-shot.d.ts +37 -0
  48. package/dist/one-shot.d.ts.map +1 -0
  49. package/dist/one-shot.js +228 -0
  50. package/dist/one-shot.js.map +1 -0
  51. package/dist/preamble.d.ts +69 -0
  52. package/dist/preamble.d.ts.map +1 -0
  53. package/dist/preamble.js +331 -0
  54. package/dist/preamble.js.map +1 -0
  55. package/dist/server.d.ts +75 -0
  56. package/dist/server.d.ts.map +1 -0
  57. package/dist/server.js +526 -0
  58. package/dist/server.js.map +1 -0
  59. package/package.json +46 -8
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jobs.js","sourceRoot":"","sources":["../src/jobs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EACH,aAAa,GAmBhB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACH,iBAAiB,GAGpB,MAAM,cAAc,CAAC;AACtB,OAAO,EACH,0BAA0B,EAC1B,qBAAqB,EACrB,iBAAiB,EACjB,gCAAgC,EAChC,sBAAsB,EACtB,oBAAoB,GACvB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAE9D,oFAAoF;AACpF,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAEnC,2FAA2F;AAC3F,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC;AAEzC,sDAAsD;AACtD,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAE1C,4DAA4D;AAC5D,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC;AAExC,4EAA4E;AAC5E,MAAM,CAAC,MAAM,2BAA2B,GAAG,wBAAwB,CAAC;AAUpE;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC7B,GAAiB,EACjB,OAAsB,EACtB,MAAoB,EACpB,OAA6B;IAE7B,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QACjD,MAAM,IAAI,iBAAiB,CAAC,gBAAgB,EAAE,kCAAkC,CAAC,CAAC;IACtF,CAAC;IACD,sBAAsB,CAAC,GAAG,CAAC,uBAAuB,EAAE,sCAAsC,CAAC,CAAC;IAC5F,sBAAsB,CAAC,GAAG,CAAC,uBAAuB,EAAE,sCAAsC,CAAC,CAAC;IAC5F,IAAI,GAAG,CAAC,mBAAmB,KAAK,SAAS,EAAE,CAAC;QACxC,IACI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;YACvC,GAAG,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,EAChE,CAAC;YACC,MAAM,IAAI,iBAAiB,CACvB,gBAAgB,EAChB,+DAA+D,CAClE,CAAC;QACN,CAAC;IACL,CAAC;IACD,IAAI,GAAG,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;QACtC,IACI,OAAO,GAAG,CAAC,iBAAiB,KAAK,QAAQ;YACzC,GAAG,CAAC,iBAAiB,KAAK,IAAI;YAC9B,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,EACtC,CAAC;YACC,MAAM,IAAI,iBAAiB,CACvB,gBAAgB,EAChB,uFAAuF,CAC1F,CAAC;QACN,CAAC;QACD,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAChE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,EAAE,CAAC;gBAC1E,MAAM,IAAI,iBAAiB,CACvB,gBAAgB,EAChB,mCAAmC,GAAG,iCAAiC,CAC1E,CAAC;YACN,CAAC;QACL,CAAC;IACL,CAAC;IACD,IAAI,GAAG,CAAC,sBAAsB,KAAK,SAAS,EAAE,CAAC;QAC3C,IACI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC;YAC1C,GAAG,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,EACrE,CAAC;YACC,MAAM,IAAI,iBAAiB,CACvB,gBAAgB,EAChB,kEAAkE,CACrE,CAAC;QACN,CAAC;IACL,CAAC;IACD,sBAAsB,CAAC;QACnB,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM;QACzB,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,MAAM,EAAE,GAAG,CAAC,MAAM;KACrB,CAAC,CAAC;IACH,gCAAgC,CAAC,GAAG,CAAC,MAAM,EAAE;QACzC,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,MAAM,EAAE,GAAG,CAAC,MAAM;KACrB,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,qBAAqB,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC1D,MAAM,yBAAyB,GAAG,CAAC,GAAG,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAC,IAAI,CACrE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CACnC,CAAC;IACF,MAAM,gBAAgB,GAAG,yBAAyB;QAC9C,CAAC,CAAC,0BAA0B,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QAC3C,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,YAAY,GACd,gBAAgB,KAAK,SAAS;QAC1B,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,gBAAgB,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,CAAC,CAAC,SAAS,CAAC;IAEpB,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE;QAC/C,QAAQ,EAAE,OAAO,EAAE,QAAQ;QAC3B,QAAQ,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE;KACvE,CAAC,CAAC;IACH,IAAI,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC1E,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC;YACzB,OAAO,UAAU,CAAC;QACtB,CAAC;QAED,MAAM,YAAY,GAAG,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE;YAC7C,mBAAmB,EAAE,GAAG,CAAC,mBAAmB;SAC/C,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAoB;YAC9B,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS;YAC/B,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,GAAG,EAAE,WAAW;SACnB,CAAC;QAEF,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QACrE,MAAM,WAAW,GACb,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,IAAI,GAAG,CAAC,uBAAuB,CAAC,MAAM,GAAG,CAAC;YAChF,CAAC,CAAC,GAAG,CAAC,uBAAuB;YAC7B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACd,MAAM,gBAAgB,GAAG,uBAAuB,CAAC;YAC7C,GAAG,WAAW;YACd,GAAG,CAAC,GAAG,CAAC,uBAAuB,IAAI,EAAE,CAAC;YACtC,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SACxD,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,kBAAkB,CACtC,GAAG,EACH,OAAO,EACP,QAAQ,EACR,gBAAgB,EAChB,YAAY,EACZ,MAAM,CACT,CAAC;QAEF,MAAM,MAAM,GAAG,eAAe,CAC1B,iBAAiB,CAAC,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,GAAG,YAAY,EAAE,GAAG,SAAS,EAAE,GAAG,SAAS,CAAC,CAAC,CACzF,CAAC;QACF,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC;QACnE,OAAO;YACH,MAAM,EAAE,MAAM;YACd,WAAW,EAAE,CAAC,MAAM;YACpB,MAAM,EAAE,MAAM;SACjB,CAAC;IACN,CAAC;YAAS,CAAC;QACP,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;AACL,CAAC;AAED,SAAS,sBAAsB,CAAC,UAAmB,EAAE,SAAiB;IAClE,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO;IACX,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,iBAAiB,CACvB,gBAAgB,EAChB,GAAG,SAAS,mDAAmD,CAClE,CAAC;IACN,CAAC;IACD,IAAI,UAAU,CAAC,MAAM,GAAG,gBAAgB,EAAE,CAAC;QACvC,MAAM,IAAI,iBAAiB,CACvB,gBAAgB,EAChB,GAAG,SAAS,WAAW,UAAU,CAAC,MAAM,8BAA8B,gBAAgB,IAAI,CAC7F,CAAC;IACN,CAAC;IACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QACzB,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;YAC3D,MAAM,IAAI,iBAAiB,CACvB,gBAAgB,EAChB,GAAG,SAAS,IAAI,CAAC,iCAAiC,CACrD,CAAC;QACN,CAAC;IACL,CAAC;AACL,CAAC;AAED,SAAS,uBAAuB,CAAC,UAA6B;IAC1D,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;QAC1B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC;YAC3D,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAA6B;IAC3D,MAAM,KAAK,GAAG,IAAI,GAAG,EAAsB,CAAC;IAC5C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC,IAAI,SAAS,KAAK,CAAC,QAAQ,IAAI,EAAE,SAAS,KAAK,CAAC,IAAI,IAAI,EAAE,SAAS,KAAK,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;QAC3G,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;YAC7B,SAAS;QACb,CAAC;QACD,MAAM,YAAY,GAAG,QAAQ,CAAC,gBAAgB,CAAC;QAC/C,MAAM,aAAa,GAAG,KAAK,CAAC,gBAAgB,CAAC;QAC7C,IACI,aAAa,KAAK,SAAS;YAC3B,CAAC,YAAY,KAAK,SAAS,IAAI,aAAa,GAAG,YAAY,CAAC,EAC9D,CAAC;YACC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;gBACX,GAAG,KAAK;gBACR,QAAQ,EACJ,QAAQ,CAAC,QAAQ,KAAK,OAAO,IAAI,KAAK,CAAC,QAAQ,KAAK,OAAO;oBACvD,CAAC,CAAC,OAAO;oBACT,CAAC,CAAC,KAAK,CAAC,QAAQ;aAC3B,CAAC,CAAC;QACP,CAAC;aAAM,IAAI,QAAQ,CAAC,QAAQ,KAAK,OAAO,IAAI,KAAK,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YACrE,QAAQ,CAAC,QAAQ,GAAG,OAAO,CAAC;QAChC,CAAC;IACL,CAAC;IACD,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;AAC/B,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC5B,OAAsB,EACtB,GAAoB,EACpB,MAAoB;IAEpB,IAAI,CAAC;QACD,OAAO,MAAM,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,iBAAiB,CAAC,WAAW,EAAE,0BAA0B,CAAC,CAAC;QACzE,CAAC;QACD,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACtE,OAAO,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9C,CAAC;AACL,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC7B,GAAiB,EACjB,OAAsB,EACtB,GAAoB,EACpB,gBAAmC,EACnC,0BAA8C,EAC9C,MAAoB;IAEpB,IAAI,CAAC;QACD,MAAM,mBAAmB,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,gBAAgB,EAAE,MAAM,CAAC,CAAC;QACrF,MAAM,YAAY,GAAG,mBAAmB,CAAC,IAAI,EAAE,CAAC;QAChD,OAAO,gBAAgB,CAAC,YAAY,EAAE;YAClC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM;YACzB,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,mBAAmB,EAAE,GAAG,CAAC,mBAAmB;YAC5C,iBAAiB,EAAE,GAAG,CAAC,iBAAiB;YACxC,uBAAuB,EAAE,GAAG,CAAC,uBAAuB;YACpD,sBAAsB,EAAE,GAAG,CAAC,sBAAsB;YAClD,0BAA0B,EAAE,0BAA0B;SACzD,CAAC,CAAC;IACP,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,iBAAiB,CAAC,WAAW,EAAE,0BAA0B,CAAC,CAAC;QACzE,CAAC;QACD,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACtE,OAAO;YACH;gBACI,IAAI,EAAE,2BAA2B;gBACjC,QAAQ,EAAE,MAAM;gBAChB,QAAQ,EAAE,SAAS;gBACnB,OAAO,EAAE,gCAAgC,MAAM,EAAE;aACpD;SACJ,CAAC;IACN,CAAC;AACL,CAAC;AAYD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAC9B,GAAkB,EAClB,OAAsB,EACtB,UAA8C,EAC9C,MAAoB,EACpB,OAA6B;IAE7B,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QACjD,MAAM,IAAI,iBAAiB,CAAC,gBAAgB,EAAE,mCAAmC,CAAC,CAAC;IACvF,CAAC;IACD,sBAAsB,CAAC;QACnB,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM;QACzB,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,GAAG,EAAE,GAAG,CAAC,GAAG;QACZ,eAAe,EAAE,GAAG,CAAC,eAAe;KACvC,CAAC,CAAC;IACH,gCAAgC,CAAC,GAAG,CAAC,MAAM,EAAE;QACzC,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,eAAe,EAAE,GAAG,CAAC,eAAe;KACvC,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC3B,MAAM,MAAM,GAAG,OAAO,EAAE,aAAa;QACjC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,aAAa,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,SAAS,EAAE;QACpE,CAAC,CAAC,MAAM,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE;YAChC,QAAQ,EAAE,OAAO,EAAE,QAAQ;YAC3B,QAAQ,EAAE;gBACN,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,eAAe,EAAE,GAAG,CAAC,eAAe;aACvC;SACJ,CAAC,CAAC;IACT,IAAI,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,YAAY,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACrE,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;gBACpB,MAAM,IAAI,iBAAiB,CACvB,aAAa,EACb,4CAA4C,EAC5C,KAAK,CAAC,MAAM,CACf,CAAC;YACN,CAAC;QACL,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,MAAM,CACjC;YACI,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS;YAC/B,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,eAAe,EAAE,GAAG,CAAC,eAAe;YACpC,OAAO,EAAE,GAAG,CAAC,OAAO;SACvB,EACD,UAAU,EACV,MAAM,CACT,CAAC;QAEF,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC1D,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACvD,MAAM,eAAe,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAErD,OAAO;YACH,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM;YACzB,KAAK,EAAE,IAAI,UAAU,CAAC,UAAU,CAAC;YACjC,QAAQ,EAAE,WAAW;YACrB,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK;YAC/B,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM;YAClC,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,eAAe,EAAE,KAAK,CAAC,eAAe,IAAI,GAAG,CAAC,eAAe;YAC7D,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,eAAe,EAAE,eAAe;YAChC,gBAAgB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC;SACtD,CAAC;IACN,CAAC;YAAS,CAAC;QACP,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAC9B,GAAkB,EAClB,OAAsB,EACtB,MAAoB,EACpB,OAA6B;IAE7B,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QACjD,MAAM,IAAI,iBAAiB,CAAC,gBAAgB,EAAE,mCAAmC,CAAC,CAAC;IACvF,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxD,MAAM,IAAI,iBAAiB,CAAC,gBAAgB,EAAE,iDAAiD,CAAC,CAAC;IACrG,CAAC;IACD,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,gBAAgB,EAAE,CAAC;QACvC,MAAM,IAAI,iBAAiB,CACvB,eAAe,EACf,yBAAyB,GAAG,CAAC,MAAM,CAAC,MAAM,sBAAsB,gBAAgB,IAAI,CACvF,CAAC;IACN,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QAC7B,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;YAC/D,MAAM,IAAI,iBAAiB,CAAC,gBAAgB,EAAE,kDAAkD,CAAC,CAAC;QACtG,CAAC;QACD,IAAI,OAAO,KAAK,CAAC,gBAAgB,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC,gBAAgB,GAAG,CAAC,EAAE,CAAC;YACvH,MAAM,IAAI,iBAAiB,CAAC,gBAAgB,EAAE,sCAAsC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;QACvG,CAAC;IACL,CAAC;IAED,sBAAsB,CAAC;QACnB,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM;QACzB,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,MAAM,EAAE,GAAG,CAAC,MAAM;KACrB,CAAC,CAAC;IACH,gCAAgC,CAAC,GAAG,CAAC,MAAM,EAAE;QACzC,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,MAAM,EAAE,GAAG,CAAC,MAAM;KACrB,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,GAAG,CAAC,WAAW,IAAI,KAAK,CAAC;IAC7C,MAAM,QAAQ,GAAG,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC;IAErE,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE;QAC/C,QAAQ,EAAE,OAAO,EAAE,QAAQ;QAC3B,QAAQ,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE;KAC9D,CAAC,CAAC;IACH,IAAI,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACrE,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;YACpB,MAAM,IAAI,iBAAiB,CACvB,aAAa,EACb,4CAA4C,EAC5C,KAAK,CAAC,MAAM,CACf,CAAC;QACN,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,aAAa,CACvC;YACI,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS;YAC/B,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,GAAG,EAAE,EAAE;YACP,iBAAiB,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC;YAC5D,WAAW,EAAE,WAAW;SAC3B,EACD,MAAM,CACT,CAAC;QAEF,MAAM,MAAM,GAAoB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAwB,EAAE,GAAW,EAAE,EAAE;YACrF,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,UAAU,EAAE,CAAC;YAC/C,OAAO;gBACH,GAAG,EAAE,KAAK,CAAC,GAAG;gBACd,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;gBACxC,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,QAAQ,EAAE,QAAQ;gBAClB,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;aACrD,CAAC;QACN,CAAC,CAAC,CAAC;QACH,MAAM,eAAe,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAErD,OAAO;YACH,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM;YACzB,MAAM,EAAE,MAAM;YACd,eAAe,EAAE,eAAe;SACnC,CAAC;IACN,CAAC;YAAS,CAAC;QACP,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACpC,GAAwB,EACxB,OAAsB,EACtB,MAAoB,EACpB,OAA6B;IAE7B,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QACzE,MAAM,IAAI,iBAAiB,CAAC,gBAAgB,EAAE,yDAAyD,CAAC,CAAC;IAC7G,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxD,MAAM,IAAI,iBAAiB,CAAC,gBAAgB,EAAE,uDAAuD,CAAC,CAAC;IAC3G,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,uBAAuB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACnE,MAAM,gBAAgB,GAAG,GAAG,CAAC,gBAAgB,IAAI,uBAAuB,CAAC;IACzE,IACI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC;QAC1B,OAAO,GAAG,CAAC;QACX,OAAO,GAAG,EAAE;QACZ,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC;QACnC,gBAAgB,GAAG,CAAC,EACtB,CAAC;QACC,MAAM,IAAI,iBAAiB,CAAC,gBAAgB,EAAE,sCAAsC,CAAC,CAAC;IAC1F,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QAC7B,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;YAC5F,MAAM,IAAI,iBAAiB,CAAC,gBAAgB,EAAE,8CAA8C,CAAC,CAAC;QAClG,CAAC;QACD,IAAI,KAAK,CAAC,QAAQ,KAAK,WAAW,IAAI,KAAK,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;YACpE,MAAM,IAAI,iBAAiB,CACvB,gBAAgB,EAChB,UAAU,KAAK,CAAC,GAAG,2BAA2B,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,yCAAyC,CAChH,CAAC;QACN,CAAC;QACD,oBAAoB,CAAC,KAAK,CAAC,WAAW,EAAE,UAAU,KAAK,CAAC,GAAG,eAAe,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC;IACzG,CAAC;IAED,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC5D,IAAI,UAAU,CAAC,MAAM,GAAG,uBAAuB,EAAE,CAAC;QAC9C,MAAM,IAAI,iBAAiB,CACvB,eAAe,EACf,gCAAgC,UAAU,CAAC,MAAM,oCAAoC,uBAAuB,IAAI,CACnH,CAAC;IACN,CAAC;IAED,MAAM,MAAM,GAAwB,EAAE,CAAC;IACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,MAAM,6BAA6B,CAC7C;YACI,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,KAAK,EAAE,CAAC;YACR,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,OAAO;YAChB,MAAM,EAAE,KAAK;SAChB,EACD,OAAO,EACP,MAAM,EACN,OAAO,EAAE,QAAQ,CACpB,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAED,IAAI,GAAG,CAAC,sBAAsB,EAAE,CAAC;QAC7B,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3D,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,UAAU,GAAG,MAAM,6BAA6B,CAClD;gBACI,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,KAAK,EAAE,MAAM,CAAC,MAAM;gBACpB,IAAI,EAAE,iBAAiB;gBACvB,OAAO,EAAE,CAAC;gBACV,MAAM,EAAE,gBAAgB;aAC3B,EACD,OAAO,EACP,MAAM,EACN,OAAO,EAAE,QAAQ,CACpB,CAAC;YACF,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5B,CAAC;IACL,CAAC;IAED,OAAO;QACH,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,MAAM,EAAE,MAAM;KACjB,CAAC;AACN,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACjC,GAAoB,EACpB,OAAsB,EACtB,MAAoB,EACpB,OAA6B;IAE7B,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,CAAC,WAAW,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;QACpG,MAAM,IAAI,iBAAiB,CAAC,gBAAgB,EAAE,0CAA0C,CAAC,CAAC;IAC9F,CAAC;IACD,MAAM,UAAU,GAAG,oBAAoB,CAAC,GAAG,CAAC,WAAW,EAAE,6BAA6B,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC;IACjH,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC;IACtC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,CAAC,IAAI,SAAS,GAAG,EAAE,EAAE,CAAC;QAClE,MAAM,IAAI,iBAAiB,CAAC,gBAAgB,EAAE,wDAAwD,CAAC,CAAC;IAC5G,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;IAClD,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,qBAAqB,CAAC,CAAC,CAAC;IAC7E,IAAI,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAClD,MAAM,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAE1C,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,gBAAgB,CACzC,SAAS,EACT,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,EAC5B,SAAS,EACT,MAAM,CACT,CAAC;QAEF,IAAI,MAAuC,CAAC;QAC5C,IAAI,GAAG,CAAC,iBAAiB,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC;YACzB,MAAM,cAAc,GAAG,yBAAyB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;YAC5E,MAAM,eAAe,GAAoB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACxD,GAAG,EAAE,MAAM,CAAC,CAAC,KAAK,EAAE;gBACpB,gBAAgB,EAAE,CAAC,CAAC,gBAAgB;gBACpC,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,CAAC,CAAC,MAAM;gBACf,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,WAAW,EAAE,CAAC,CAAC,WAAW;aAC7B,CAAC,CAAC,CAAC;YACJ,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CACrC,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,eAAe,EAAE,EACnD,OAAO,EACP,MAAM,EACN,OAAO,CACV,CAAC;YACF,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;QAC7B,CAAC;QAED,OAAO;YACH,eAAe,EAAE,KAAK,CAAC,eAAe;YACtC,MAAM,EAAE,MAAM;YACd,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxC,CAAC;IACN,CAAC;YAAS,CAAC;QACP,MAAM,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAClF,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAAsB;IACxD,IAAI,CAAC;QACD,OAAO,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC;IAClC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO;YACH,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,OAAO,CAAC,OAAO;YAC5B,kBAAkB,EAAE,EAAE;YACtB,MAAM,EAAE,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SACnE,CAAC;IACN,CAAC;AACL,CAAC;AAUD,KAAK,UAAU,6BAA6B,CACxC,IAA4B,EAC5B,OAAsB,EACtB,MAAoB,EACpB,QAAiB;IAEjB,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,6BAA6B,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACvG,MAAM,IAAI,GAAG,qBAAqB,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAExD,MAAM,eAAe,GAAwB;QACzC,MAAM,EAAE,MAAM;QACd,SAAS,EAAE,YAAY;QACvB,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC9C,MAAM,EAAE,EAAE;QACV,YAAY,EAAE,EAAE;QAChB,IAAI,EAAE,CAAC;KACV,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,eAAe,EAAE;QACpD,QAAQ,EAAE,QAAQ;QAClB,QAAQ,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,eAAe,EAAE,CAAC,EAAE;KAC1E,CAAC,CAAC;IACH,IAAI,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,aAAa,CACvC;YACI,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,SAAS,EAAE,YAAY;YACvB,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,EAAE;YACP,iBAAiB,EAAE,CAAC,CAAC,CAAC;YACtB,WAAW,EAAE,KAAK;SACrB,EACD,MAAM,CACT,CAAC;QACF,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,UAAU,EAAE,CAAC;QAChD,OAAO;YACH,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,QAAQ,EAAE,WAAW;YACrB,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,MAAM;YACd,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;YACxC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;SACxD,CAAC;IACN,CAAC;YAAS,CAAC;QACP,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;AACL,CAAC;AAED,SAAS,6BAA6B,CAClC,MAAmB,EACnB,OAAe,EACf,UAAkB;IAElB,MAAM,KAAK,GAAG,mBAAmB,CAAC;IAClC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC;IAC1D,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC;IACrE,MAAM,MAAM,GAAG,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC1E,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,CAAC;IACvD,MAAM,eAAe,GAAG,eAAe,GAAG,EAAE,CAAC;IAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,GAAG,eAAe,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IAC5E,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC7B,CAAC;AAED,SAAS,qBAAqB,CAAC,IAA4B,EAAE,KAAa,EAAE,MAAc;IACtF,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACxC,MAAM,OAAO,GAAG,mBAAmB,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAC5D,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7E,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAChD,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,MAAM,OAAO,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,QAAQ,GAAG,QAAQ,MAAM,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,SAAS,EAAE,CAAC;QACxG,MAAM,OAAO,GAAG,QAAQ,KAAK,CAAC,QAAQ,WAAW,KAAK,CAAC,WAAW,EAAE,CAAC;QACrE,OAAO;YACH,qCAAqC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI;YAC9D,eAAe,OAAO,UAAU,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM;YAC3D,0BAA0B,OAAO,QAAQ;YACzC,QAAQ;SACX,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,OAAO;QACH,iBAAiB;QACjB,QAAQ;QACR,QAAQ;QACR,0BAA0B;QAC1B,SAAS;QACT,wDAAwD;QACxD,mBAAmB,KAAK,eAAe,MAAM,mFAAmF;QAChI,uFAAuF;QACvF,0DAA0D,IAAI,CAAC,OAAO,sBAAsB;QAC5F,mGAAmG;QACnG,4DAA4D;QAC5D,sJAAsJ;QACtJ,UAAU;QACV,SAAS;QACT,QAAQ;QACR,oGAAoG,KAAK,kBAAkB,MAAM,qBAAqB;QACtJ,2BAA2B,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,GAAG,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS;QACxG,yBAAyB,SAAS,QAAQ;QAC1C,UAAU;QACV,SAAS;QACT,SAAS;KACZ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjB,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAgC;IAC3D,MAAM,MAAM,GAAoB,EAAE,CAAC;IACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC;QAC3B,IAAI,OAAO,CAAC,IAAI,KAAK,iBAAiB,IAAI,OAAO,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;YACzE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,SAAS,uBAAuB,CAAC,MAAmB;IAChD,QAAQ,MAAM,EAAE,CAAC;QACb,KAAK,MAAM;YACP,OAAO,CAAC,CAAC;QACb,KAAK,KAAK;YACN,OAAO,CAAC,CAAC;QACb,KAAK,MAAM,CAAC;QACZ;YACI,OAAO,CAAC,CAAC;IACjB,CAAC;AACL,CAAC;AAED,SAAS,yBAAyB,CAAC,KAAa,EAAE,MAAc;IAC5D,IAAI,MAAM,GAAG,KAAK,GAAG,GAAG,EAAE,CAAC;QACvB,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,GAAG,EAAE,CAAC;QAC5D,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAe;IACxC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;IACnC,MAAM,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;IAC9B,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;AAClF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC3C,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,UAAU,CAAC,IAAY;IAC5B,OAAO,IAAI;SACN,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;SACvB,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,UAAU,CAAI,KAAmB,EAAE,SAAiB;IACzD,MAAM,MAAM,GAAU,EAAE,CAAC;IACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC;QAC/C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC"}
@@ -0,0 +1,21 @@
1
+ import type { CheckIssue, CheckResult, RenderProjectBundle } from '@memberjunction/video-studio-core';
2
+ import type { RenderBackend } from './backend.js';
3
+ /** Issue code emitted when a composition references a non-bundle URL or path escaping the bundle. */
4
+ export declare const MJ_NON_BUNDLE_URL_CODE = "MJ_NON_BUNDLE_URL";
5
+ /** Issue code emitted when a composition invokes a forbidden browser network or navigation API. */
6
+ export declare const MJ_NETWORK_API_CODE = "MJ_NETWORK_API";
7
+ /**
8
+ * Runs the static authored-file lint gate (`MJ_NON_BUNDLE_URL`, `MJ_NETWORK_API`) plus `backend.Lint`,
9
+ * returning a deterministically sorted `CheckResult`.
10
+ */
11
+ export declare function RunLintGate(bundle: RenderProjectBundle, stagedDir: string, backend: RenderBackend): Promise<CheckResult>;
12
+ /**
13
+ * Scans authored files in `bundle.Files` (prior to preamble injection) for `MJ_NON_BUNDLE_URL`
14
+ * and `MJ_NETWORK_API` violations.
15
+ */
16
+ export declare function ScanAuthoredFilesForLintIssues(bundle: RenderProjectBundle): CheckIssue[];
17
+ /**
18
+ * Deterministically sorts `CheckIssue` items by `Category`, `File`, `Line`, `Code`, then `Selector` / `TimestampSeconds`.
19
+ */
20
+ export declare function SortCheckIssues(issues: readonly CheckIssue[]): CheckIssue[];
21
+ //# sourceMappingURL=lint-gate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lint-gate.d.ts","sourceRoot":"","sources":["../src/lint-gate.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACR,UAAU,EACV,WAAW,EAEX,mBAAmB,EACtB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,qGAAqG;AACrG,eAAO,MAAM,sBAAsB,sBAAsB,CAAC;AAE1D,mGAAmG;AACnG,eAAO,MAAM,mBAAmB,mBAAmB,CAAC;AAoDpD;;;GAGG;AACH,wBAAsB,WAAW,CAC7B,MAAM,EAAE,mBAAmB,EAC3B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,aAAa,GACvB,OAAO,CAAC,WAAW,CAAC,CAYtB;AAED;;;GAGG;AACH,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,mBAAmB,GAAG,UAAU,EAAE,CAexF;AAaD;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,GAAG,UAAU,EAAE,CAwB3E"}
@@ -0,0 +1,528 @@
1
+ import * as path from 'node:path';
2
+ /** Issue code emitted when a composition references a non-bundle URL or path escaping the bundle. */
3
+ export const MJ_NON_BUNDLE_URL_CODE = 'MJ_NON_BUNDLE_URL';
4
+ /** Issue code emitted when a composition invokes a forbidden browser network or navigation API. */
5
+ export const MJ_NETWORK_API_CODE = 'MJ_NETWORK_API';
6
+ const HTML_URL_ATTR_REGEX = /\b(src|href|poster|data|xlink:href|action|formaction|background|ping)\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s>"']+))/gi;
7
+ const HTML_SRCSET_ATTR_REGEX = /\bsrcset\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s>"']+))/gi;
8
+ const HTML_STYLE_ATTR_REGEX = /\bstyle\s*=\s*(?:"([^"]*)"|'([^']*)')/gi;
9
+ const HTML_EVENT_HANDLER_ATTR_REGEX = /\bon[a-z]+\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s>"']+))/gi;
10
+ const CSS_URL_REGEX = /\burl\(\s*(?:"([^"]*)"|'([^']*)'|([^)\s"']+))\s*\)/gi;
11
+ const CSS_IMPORT_REGEX = /@import\s+(?:url\(\s*)?(?:"([^"]*)"|'([^']*)'|([^)\s"';]+))/gi;
12
+ const JS_IMPORT_FROM_REGEX = /\b(?:import|export)\b[\s\S]*?\bfrom\s*(?:"([^"]*)"|'([^']*)')/g;
13
+ const JS_SIDE_EFFECT_IMPORT_REGEX = /\bimport\s*(?:"([^"]*)"|'([^']*)')/g;
14
+ const JS_DYNAMIC_IMPORT_REGEX = /\bimport\s*\(\s*(?:"([^"]*)"|'([^']*)'|`([^`$]*)`)\s*\)/g;
15
+ const HTML_NETWORK_TAG_RULES = [
16
+ {
17
+ Regex: /<meta\b[^>]*\bhttp-equiv\s*=\s*(?:"\s*refresh\s*"|'\s*refresh\s*'|refresh\b)[^>]*>/gi,
18
+ Label: '<meta http-equiv="refresh">',
19
+ },
20
+ {
21
+ Regex: /<base\b[^>]*>/gi,
22
+ Label: '<base>',
23
+ },
24
+ {
25
+ Regex: /<link\b[^>]*\brel\s*=\s*(?:"[^"]*\b(?:prefetch|preconnect|dns-prefetch|prerender)\b[^"]*"|'[^']*\b(?:prefetch|preconnect|dns-prefetch|prerender)\b[^']*'|\b(?:prefetch|preconnect|dns-prefetch|prerender)\b)[^>]*>/gi,
26
+ Label: '<link rel="prefetch|preconnect|dns-prefetch|prerender">',
27
+ },
28
+ ];
29
+ const JS_NETWORK_API_RULES = [
30
+ { Regex: /\bfetch\s*\(/g, Label: 'fetch(' },
31
+ { Regex: /\bXMLHttpRequest\b/g, Label: 'XMLHttpRequest' },
32
+ { Regex: /\bWebSocket\b/g, Label: 'WebSocket' },
33
+ { Regex: /\bEventSource\b/g, Label: 'EventSource' },
34
+ { Regex: /\bsendBeacon\b/g, Label: 'sendBeacon' },
35
+ { Regex: /\b(?:webkit|moz)?RTCPeerConnection\b/g, Label: 'RTCPeerConnection' },
36
+ { Regex: /\bimportScripts\b/g, Label: 'importScripts' },
37
+ { Regex: /\bserviceWorker\b/g, Label: 'serviceWorker' },
38
+ { Regex: /\bwindow\s*\.\s*open\s*\(/g, Label: 'window.open' },
39
+ {
40
+ Regex: /\b(?:(?:window|document|self|top|parent|frames)\s*\.\s*)*location\s*(?:=[^=]|\.\s*(?:assign|replace|reload)\s*\(|\.\s*[a-zA-Z_$][a-zA-Z0-9_$]*\s*=|\[\s*["'`][^"'`]+["'`]\s*\]\s*=)/g,
41
+ Label: 'location navigation',
42
+ },
43
+ ];
44
+ /**
45
+ * Runs the static authored-file lint gate (`MJ_NON_BUNDLE_URL`, `MJ_NETWORK_API`) plus `backend.Lint`,
46
+ * returning a deterministically sorted `CheckResult`.
47
+ */
48
+ export async function RunLintGate(bundle, stagedDir, backend) {
49
+ const authoredIssues = ScanAuthoredFilesForLintIssues(bundle);
50
+ const backendLint = await backend.Lint(stagedDir, bundle.EntryFile);
51
+ const merged = SortCheckIssues(deduplicateIssues([...authoredIssues, ...backendLint.Issues]));
52
+ const hasError = merged.some((issue) => issue.Severity === 'Error');
53
+ const blockRender = backendLint.Block || hasError;
54
+ return {
55
+ Passed: !blockRender,
56
+ BlockRender: blockRender,
57
+ Issues: merged,
58
+ };
59
+ }
60
+ /**
61
+ * Scans authored files in `bundle.Files` (prior to preamble injection) for `MJ_NON_BUNDLE_URL`
62
+ * and `MJ_NETWORK_API` violations.
63
+ */
64
+ export function ScanAuthoredFilesForLintIssues(bundle) {
65
+ const authoredFilePaths = buildAuthoredFilePathSet(bundle);
66
+ const issues = [];
67
+ for (const file of bundle.Files) {
68
+ const lower = file.Path.toLowerCase();
69
+ if (lower.endsWith('.html') || lower.endsWith('.htm') || lower.endsWith('.svg')) {
70
+ issues.push(...scanHtmlFile(file, authoredFilePaths));
71
+ }
72
+ else if (lower.endsWith('.css')) {
73
+ issues.push(...scanCssBlock(file.Content, file.Path, 1));
74
+ issues.push(...scanJsBlock(file.Content, file.Path, 1, authoredFilePaths));
75
+ }
76
+ else {
77
+ issues.push(...scanJsBlock(file.Content, file.Path, 1, authoredFilePaths));
78
+ }
79
+ }
80
+ return SortCheckIssues(deduplicateIssues(issues));
81
+ }
82
+ function buildAuthoredFilePathSet(bundle) {
83
+ const paths = new Set();
84
+ for (const file of bundle.Files) {
85
+ const resolved = resolveBundleRelativePath('', file.Path);
86
+ if (resolved) {
87
+ paths.add(resolved);
88
+ }
89
+ }
90
+ return paths;
91
+ }
92
+ /**
93
+ * Deterministically sorts `CheckIssue` items by `Category`, `File`, `Line`, `Code`, then `Selector` / `TimestampSeconds`.
94
+ */
95
+ export function SortCheckIssues(issues) {
96
+ return [...issues].sort((a, b) => {
97
+ const catCmp = a.Category.localeCompare(b.Category);
98
+ if (catCmp !== 0) {
99
+ return catCmp;
100
+ }
101
+ const fileCmp = (a.File ?? '').localeCompare(b.File ?? '');
102
+ if (fileCmp !== 0) {
103
+ return fileCmp;
104
+ }
105
+ const lineCmp = (a.Line ?? 0) - (b.Line ?? 0);
106
+ if (lineCmp !== 0) {
107
+ return lineCmp;
108
+ }
109
+ const codeCmp = a.Code.localeCompare(b.Code);
110
+ if (codeCmp !== 0) {
111
+ return codeCmp;
112
+ }
113
+ const selectorCmp = (a.Selector ?? '').localeCompare(b.Selector ?? '');
114
+ if (selectorCmp !== 0) {
115
+ return selectorCmp;
116
+ }
117
+ return (a.TimestampSeconds ?? 0) - (b.TimestampSeconds ?? 0);
118
+ });
119
+ }
120
+ const HTML_SCRIPT_OPEN_TAG_REGEX = /<script\b([^>]*)>/gi;
121
+ const HTML_SCRIPT_TAG_ATTRS_SYNTAX_REGEX = /^(?:\s+[^\s"'<>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s"'=<>`]+))?)*\s*\/?$/;
122
+ const HTML_SCRIPT_TAG_ATTR_REGEX = /\b(src|href|xlink:href)\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s>"']+))/gi;
123
+ const SCRIPT_OR_IMPORT_RAW_ALLOWLIST_REGEX = /^[A-Za-z0-9._@/-]+$/;
124
+ function isWordBoundaryChar(ch) {
125
+ if (ch === undefined) {
126
+ return false;
127
+ }
128
+ return ((ch >= 'a' && ch <= 'z') ||
129
+ (ch >= 'A' && ch <= 'Z') ||
130
+ (ch >= '0' && ch <= '9') ||
131
+ ch === '_');
132
+ }
133
+ function toAsciiLowerCase(s) {
134
+ return s.replace(/[A-Z]/g, (c) => c.toLowerCase());
135
+ }
136
+ function isHtmlCloseTagDelimiter(ch) {
137
+ return (ch === ' ' ||
138
+ ch === '\t' ||
139
+ ch === '\n' ||
140
+ ch === '\f' ||
141
+ ch === '\r' ||
142
+ ch === '/' ||
143
+ ch === '>');
144
+ }
145
+ function findHtmlTagBlocks(html, tagLower) {
146
+ const blocks = [];
147
+ const lowerHtml = toAsciiLowerCase(html);
148
+ const openNeedle = `<${tagLower}`;
149
+ const closeNeedle = `</${tagLower}`;
150
+ let pos = 0;
151
+ while (pos < html.length) {
152
+ const openIdx = lowerHtml.indexOf(openNeedle, pos);
153
+ if (openIdx === -1) {
154
+ break;
155
+ }
156
+ const afterOpenName = openIdx + openNeedle.length;
157
+ if (afterOpenName >= html.length || isWordBoundaryChar(html[afterOpenName])) {
158
+ pos = afterOpenName;
159
+ continue;
160
+ }
161
+ const openGt = html.indexOf('>', afterOpenName);
162
+ if (openGt === -1) {
163
+ break;
164
+ }
165
+ const bodyStart = openGt + 1;
166
+ let closeSearch = bodyStart;
167
+ let matchedClose = false;
168
+ while (closeSearch < html.length) {
169
+ const closeIdx = lowerHtml.indexOf(closeNeedle, closeSearch);
170
+ if (closeIdx === -1) {
171
+ return blocks;
172
+ }
173
+ const afterCloseName = closeIdx + closeNeedle.length;
174
+ if (afterCloseName >= html.length || !isHtmlCloseTagDelimiter(html[afterCloseName])) {
175
+ closeSearch = afterCloseName;
176
+ continue;
177
+ }
178
+ const closeGt = html.indexOf('>', afterCloseName);
179
+ if (closeGt === -1) {
180
+ return blocks;
181
+ }
182
+ blocks.push({
183
+ fullStart: openIdx,
184
+ body: html.slice(bodyStart, closeIdx),
185
+ });
186
+ pos = closeGt + 1;
187
+ matchedClose = true;
188
+ break;
189
+ }
190
+ if (!matchedClose) {
191
+ break;
192
+ }
193
+ }
194
+ return blocks;
195
+ }
196
+ function scanHtmlFile(file, authoredFilePaths) {
197
+ const issues = [];
198
+ const html = file.Content;
199
+ for (const rule of HTML_NETWORK_TAG_RULES) {
200
+ for (const match of html.matchAll(rule.Regex)) {
201
+ const line = computeLineNumber(html, match.index ?? 0);
202
+ issues.push(buildNetworkApiIssue(file.Path, line, rule.Label));
203
+ }
204
+ }
205
+ for (const match of html.matchAll(HTML_URL_ATTR_REGEX)) {
206
+ const attrName = match[1] ?? 'attr';
207
+ const rawUrl = decodeHtmlEntities((match[2] ?? match[3] ?? match[4] ?? '').trim());
208
+ const line = computeLineNumber(html, match.index ?? 0);
209
+ const issue = checkUrlReference(rawUrl, file.Path, line, `HTML attribute "${attrName}"`);
210
+ if (issue) {
211
+ issues.push(issue);
212
+ }
213
+ }
214
+ for (const scriptTagMatch of html.matchAll(HTML_SCRIPT_OPEN_TAG_REGEX)) {
215
+ const attrs = scriptTagMatch[1] ?? '';
216
+ const tagLine = computeLineNumber(html, scriptTagMatch.index ?? 0);
217
+ if (!HTML_SCRIPT_TAG_ATTRS_SYNTAX_REGEX.test(attrs)) {
218
+ issues.push({
219
+ Code: MJ_NON_BUNDLE_URL_CODE,
220
+ Category: 'RemoteUrl',
221
+ Severity: 'Error',
222
+ Message: 'Malformed or ambiguous <script> opening tag attributes are forbidden.',
223
+ File: file.Path,
224
+ Line: tagLine,
225
+ });
226
+ continue;
227
+ }
228
+ for (const attrMatch of attrs.matchAll(HTML_SCRIPT_TAG_ATTR_REGEX)) {
229
+ const attrName = attrMatch[1] ?? 'src';
230
+ const rawAttr = attrMatch[2] ?? attrMatch[3] ?? attrMatch[4] ?? '';
231
+ const decodedUrl = decodeHtmlEntities(rawAttr.trim());
232
+ if (!checkUrlReference(decodedUrl, file.Path, tagLine, `HTML attribute "${attrName}"`)) {
233
+ const targetIssue = checkScriptOrImportTarget(rawAttr, file.Path, tagLine, `HTML <script ${attrName}>`, authoredFilePaths);
234
+ if (targetIssue) {
235
+ issues.push(targetIssue);
236
+ }
237
+ }
238
+ }
239
+ }
240
+ for (const match of html.matchAll(HTML_SRCSET_ATTR_REGEX)) {
241
+ const rawSrcset = decodeHtmlEntities((match[1] ?? match[2] ?? match[3] ?? '').trim());
242
+ const line = computeLineNumber(html, match.index ?? 0);
243
+ for (const candidate of rawSrcset.split(',')) {
244
+ const urlPart = candidate.trim().split(/\s+/)[0] ?? '';
245
+ const issue = checkUrlReference(urlPart, file.Path, line, 'HTML attribute "srcset"');
246
+ if (issue) {
247
+ issues.push(issue);
248
+ }
249
+ }
250
+ }
251
+ for (const match of html.matchAll(HTML_STYLE_ATTR_REGEX)) {
252
+ const styleContent = decodeHtmlEntities(match[1] ?? match[2] ?? '');
253
+ const line = computeLineNumber(html, match.index ?? 0);
254
+ issues.push(...scanCssBlock(styleContent, file.Path, line));
255
+ }
256
+ for (const match of html.matchAll(HTML_EVENT_HANDLER_ATTR_REGEX)) {
257
+ const handlerJs = decodeHtmlEntities(match[1] ?? match[2] ?? match[3] ?? '');
258
+ const line = computeLineNumber(html, match.index ?? 0);
259
+ issues.push(...scanJsBlock(handlerJs, file.Path, line, authoredFilePaths));
260
+ }
261
+ for (const styleBlock of findHtmlTagBlocks(html, 'style')) {
262
+ const line = computeLineNumber(html, styleBlock.fullStart);
263
+ issues.push(...scanCssBlock(styleBlock.body, file.Path, line));
264
+ }
265
+ for (const scriptBlock of findHtmlTagBlocks(html, 'script')) {
266
+ const line = computeLineNumber(html, scriptBlock.fullStart);
267
+ issues.push(...scanJsBlock(scriptBlock.body, file.Path, line, authoredFilePaths));
268
+ }
269
+ return issues;
270
+ }
271
+ function decodeHtmlEntities(value) {
272
+ return value
273
+ .replace(/&#x([0-9a-fA-F]+);?/g, (_, hex) => {
274
+ const code = Number.parseInt(hex, 16);
275
+ return Number.isFinite(code) && code > 0 && code <= 0x10ffff ? String.fromCodePoint(code) : '';
276
+ })
277
+ .replace(/&#([0-9]+);?/g, (_, dec) => {
278
+ const code = Number.parseInt(dec, 10);
279
+ return Number.isFinite(code) && code > 0 && code <= 0x10ffff ? String.fromCodePoint(code) : '';
280
+ })
281
+ .replace(/&quot;/gi, '"')
282
+ .replace(/&apos;/gi, "'")
283
+ .replace(/&#39;/g, "'")
284
+ .replace(/&lt;/gi, '<')
285
+ .replace(/&gt;/gi, '>')
286
+ .replace(/&amp;/gi, '&');
287
+ }
288
+ function scanCssBlock(css, filePath, baseLine) {
289
+ const issues = [];
290
+ for (const match of css.matchAll(CSS_IMPORT_REGEX)) {
291
+ const rawUrl = (match[1] ?? match[2] ?? match[3] ?? '').trim();
292
+ const line = baseLine + computeLineNumber(css, match.index ?? 0) - 1;
293
+ const issue = checkUrlReference(rawUrl, filePath, line, 'CSS @import');
294
+ if (issue) {
295
+ issues.push(issue);
296
+ }
297
+ }
298
+ for (const match of css.matchAll(CSS_URL_REGEX)) {
299
+ const rawUrl = (match[1] ?? match[2] ?? match[3] ?? '').trim();
300
+ const line = baseLine + computeLineNumber(css, match.index ?? 0) - 1;
301
+ const issue = checkUrlReference(rawUrl, filePath, line, 'CSS url()');
302
+ if (issue) {
303
+ issues.push(issue);
304
+ }
305
+ }
306
+ return issues;
307
+ }
308
+ function extractJsStringLiterals(js) {
309
+ const literals = [];
310
+ const failedUntil = { '"': -1, "'": -1, '`': -1 };
311
+ let i = 0;
312
+ while (i < js.length) {
313
+ const ch = js[i];
314
+ if ((ch === '"' || ch === "'" || ch === '`') && i >= failedUntil[ch]) {
315
+ const quote = ch;
316
+ const startIdx = i;
317
+ let j = i + 1;
318
+ let closed = false;
319
+ while (j < js.length) {
320
+ const c = js[j];
321
+ if (c === '\\') {
322
+ if (j + 1 >= js.length) {
323
+ break;
324
+ }
325
+ const nextCh = js[j + 1];
326
+ if (nextCh === '\n' || nextCh === '\r' || nextCh === '\u2028' || nextCh === '\u2029') {
327
+ break;
328
+ }
329
+ j += 2;
330
+ continue;
331
+ }
332
+ if (c === quote) {
333
+ literals.push({ value: js.slice(startIdx + 1, j), index: startIdx });
334
+ i = j + 1;
335
+ closed = true;
336
+ break;
337
+ }
338
+ if (quote !== '`' && (c === '\r' || c === '\n')) {
339
+ break;
340
+ }
341
+ j++;
342
+ }
343
+ if (!closed) {
344
+ failedUntil[quote] = j;
345
+ i++;
346
+ }
347
+ continue;
348
+ }
349
+ i++;
350
+ }
351
+ return literals;
352
+ }
353
+ function scanJsBlock(js, filePath, baseLine, authoredFilePaths) {
354
+ const issues = [];
355
+ for (const rule of JS_NETWORK_API_RULES) {
356
+ for (const match of js.matchAll(rule.Regex)) {
357
+ const line = baseLine + computeLineNumber(js, match.index ?? 0) - 1;
358
+ issues.push(buildNetworkApiIssue(filePath, line, rule.Label));
359
+ }
360
+ }
361
+ for (const regex of [JS_IMPORT_FROM_REGEX, JS_SIDE_EFFECT_IMPORT_REGEX, JS_DYNAMIC_IMPORT_REGEX]) {
362
+ for (const match of js.matchAll(regex)) {
363
+ const specifier = match[1] ?? match[2] ?? match[3] ?? '';
364
+ const line = baseLine + computeLineNumber(js, match.index ?? 0) - 1;
365
+ const issue = checkScriptOrImportTarget(specifier, filePath, line, 'JS import specifier', authoredFilePaths);
366
+ if (issue) {
367
+ issues.push(issue);
368
+ }
369
+ }
370
+ }
371
+ for (const match of extractJsStringLiterals(js)) {
372
+ const literal = match.value.trim();
373
+ if (!looksLikeUrlOrTraversalInLiteral(literal)) {
374
+ continue;
375
+ }
376
+ const line = baseLine + computeLineNumber(js, match.index) - 1;
377
+ const issue = checkUrlReference(literal, filePath, line, 'JS string literal');
378
+ if (issue) {
379
+ issues.push(issue);
380
+ }
381
+ }
382
+ return issues;
383
+ }
384
+ function checkScriptOrImportTarget(rawUrl, filePath, line, contextLabel, authoredFilePaths) {
385
+ const urlIssue = checkUrlReference(rawUrl, filePath, line, contextLabel);
386
+ if (urlIssue) {
387
+ return urlIssue;
388
+ }
389
+ if (!SCRIPT_OR_IMPORT_RAW_ALLOWLIST_REGEX.test(rawUrl) || rawUrl.startsWith('/')) {
390
+ return {
391
+ Code: MJ_NON_BUNDLE_URL_CODE,
392
+ Category: 'RemoteUrl',
393
+ Severity: 'Error',
394
+ Message: `Script or module reference "${rawUrl}" in ${contextLabel} must match ^[A-Za-z0-9._@/-]+$ with no leading "/" and resolve to an entry in bundle.Files.`,
395
+ File: filePath,
396
+ Line: line,
397
+ };
398
+ }
399
+ const resolved = resolveBundleRelativePath(filePath, rawUrl);
400
+ if (!resolved || !authoredFilePaths.has(resolved)) {
401
+ return {
402
+ Code: MJ_NON_BUNDLE_URL_CODE,
403
+ Category: 'RemoteUrl',
404
+ Severity: 'Error',
405
+ Message: `Script or module reference "${rawUrl}" in ${contextLabel} must resolve to an entry in bundle.Files.`,
406
+ File: filePath,
407
+ Line: line,
408
+ };
409
+ }
410
+ return null;
411
+ }
412
+ function looksLikeUrlOrTraversalInLiteral(literal) {
413
+ if (!literal || literal.includes(' ') || literal.includes('\n')) {
414
+ return false;
415
+ }
416
+ if (/^[a-zA-Z][a-zA-Z0-9+.-]*:/.test(literal)) {
417
+ return true;
418
+ }
419
+ if (/^\/\/[a-zA-Z0-9._-]+/.test(literal)) {
420
+ return true;
421
+ }
422
+ if (/(?:^|\/)\.\.(?:\/|$)/.test(literal)) {
423
+ return true;
424
+ }
425
+ return false;
426
+ }
427
+ function checkUrlReference(rawUrl, filePath, line, contextLabel) {
428
+ const trimmed = rawUrl.trim();
429
+ if (!trimmed || trimmed.startsWith('#')) {
430
+ return null;
431
+ }
432
+ if (/^(?:data|blob):/i.test(trimmed)) {
433
+ return null;
434
+ }
435
+ if (/^[a-zA-Z][a-zA-Z0-9+.-]*:/.test(trimmed) || trimmed.startsWith('//')) {
436
+ return {
437
+ Code: MJ_NON_BUNDLE_URL_CODE,
438
+ Category: 'RemoteUrl',
439
+ Severity: 'Error',
440
+ Message: `Forbidden non-bundle URL "${trimmed}" in ${contextLabel}; only bundle-relative paths, data:, and blob: are allowed.`,
441
+ File: filePath,
442
+ Line: line,
443
+ };
444
+ }
445
+ if (escapesBundleRoot(filePath, trimmed)) {
446
+ return {
447
+ Code: MJ_NON_BUNDLE_URL_CODE,
448
+ Category: 'RemoteUrl',
449
+ Severity: 'Error',
450
+ Message: `Relative path "${trimmed}" in ${contextLabel} resolves outside the bundle root.`,
451
+ File: filePath,
452
+ Line: line,
453
+ };
454
+ }
455
+ return null;
456
+ }
457
+ function escapesBundleRoot(fromFilePath, referenceUrl) {
458
+ const cleanRef = (referenceUrl.split(/[?#]/)[0] ?? '').replace(/\\/g, '/');
459
+ if (!cleanRef) {
460
+ return false;
461
+ }
462
+ return resolveBundleRelativePath(fromFilePath, referenceUrl) === null;
463
+ }
464
+ function resolveBundleRelativePath(fromFilePath, referenceUrl) {
465
+ const trimmed = referenceUrl.trim();
466
+ if (!trimmed ||
467
+ trimmed.startsWith('#') ||
468
+ /^[a-zA-Z][a-zA-Z0-9+.-]*:/.test(trimmed) ||
469
+ trimmed.startsWith('//')) {
470
+ return null;
471
+ }
472
+ const cleanRef = (trimmed.split(/[?#]/)[0] ?? '').replace(/\\/g, '/');
473
+ if (!cleanRef) {
474
+ return null;
475
+ }
476
+ const dirNormalized = path.posix.dirname(fromFilePath.replace(/\\/g, '/'));
477
+ const stack = cleanRef.startsWith('/') || dirNormalized === '.' || dirNormalized === ''
478
+ ? []
479
+ : dirNormalized.split('/').filter((seg) => seg.length > 0 && seg !== '.');
480
+ const segments = (cleanRef.startsWith('/') ? cleanRef.slice(1) : cleanRef).split('/');
481
+ for (const seg of segments) {
482
+ if (seg === '' || seg === '.') {
483
+ continue;
484
+ }
485
+ if (seg === '..') {
486
+ if (stack.length === 0) {
487
+ return null;
488
+ }
489
+ stack.pop();
490
+ }
491
+ else {
492
+ stack.push(seg);
493
+ }
494
+ }
495
+ return stack.length > 0 ? stack.join('/') : null;
496
+ }
497
+ function buildNetworkApiIssue(filePath, line, label) {
498
+ return {
499
+ Code: MJ_NETWORK_API_CODE,
500
+ Category: 'RemoteUrl',
501
+ Severity: 'Error',
502
+ Message: `Forbidden network or navigation API (${label}) detected in "${filePath}".`,
503
+ File: filePath,
504
+ Line: line,
505
+ };
506
+ }
507
+ function computeLineNumber(content, charIndex) {
508
+ let line = 1;
509
+ for (let i = 0; i < charIndex && i < content.length; i++) {
510
+ if (content.charCodeAt(i) === 10) {
511
+ line++;
512
+ }
513
+ }
514
+ return line;
515
+ }
516
+ function deduplicateIssues(issues) {
517
+ const seen = new Set();
518
+ const result = [];
519
+ for (const issue of issues) {
520
+ const key = `${issue.Code}|${issue.Category}|${issue.File ?? ''}|${issue.Line ?? 0}|${issue.Message}`;
521
+ if (!seen.has(key)) {
522
+ seen.add(key);
523
+ result.push(issue);
524
+ }
525
+ }
526
+ return result;
527
+ }
528
+ //# sourceMappingURL=lint-gate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lint-gate.js","sourceRoot":"","sources":["../src/lint-gate.ts"],"names":[],"mappings":"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"}