@aiti-ai/aiti-editor 1.0.9 → 1.0.11

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 (162) hide show
  1. package/README.md +14 -22
  2. package/README.zh-CN.md +31 -0
  3. package/client/src/disk-refresh.test.mjs +69 -0
  4. package/client/src/disk-refresh.ts +64 -0
  5. package/client/src/editor-app.tsx +117 -16
  6. package/client/src/file-toolbar.tsx +5 -1
  7. package/dist/aiti-editor-client.mjs +3243 -3163
  8. package/index.ts +0 -1
  9. package/monaco/.version +1 -0
  10. package/monaco/vs/abap-D-t0cyap.js +1 -0
  11. package/monaco/vs/apex-CcIm7xu6.js +1 -0
  12. package/monaco/vs/assets/css.worker-URu8fCFR.js +97 -0
  13. package/monaco/vs/assets/editor.worker-lj3bdIIn.js +30 -0
  14. package/monaco/vs/assets/editorWebWorkerMain-CA_vMoUU.js +30 -0
  15. package/monaco/vs/assets/html.worker-D1SL3iM8.js +474 -0
  16. package/monaco/vs/assets/json.worker-CoJx_OPf.js +62 -0
  17. package/monaco/vs/assets/ts.worker-BWKtMYOk.js +67722 -0
  18. package/monaco/vs/azcli-BA0tQDCg.js +1 -0
  19. package/monaco/vs/basic-languages/monaco.contribution.js +1 -0
  20. package/monaco/vs/bat-C397hTD6.js +1 -0
  21. package/monaco/vs/bicep-DF5aW17k.js +2 -0
  22. package/monaco/vs/cameligo-plsz8qhj.js +1 -0
  23. package/monaco/vs/clojure-Y2auQMzK.js +1 -0
  24. package/monaco/vs/coffee-Bu45yuWE.js +1 -0
  25. package/monaco/vs/cpp-CkKPQIni.js +1 -0
  26. package/monaco/vs/csharp-CX28MZyh.js +1 -0
  27. package/monaco/vs/csp-D8uWnyxW.js +1 -0
  28. package/monaco/vs/css-CaeNmE3S.js +3 -0
  29. package/monaco/vs/css.worker-CyhWkhHo.js +1 -0
  30. package/monaco/vs/cssMode-CV6Ay48H.js +1 -0
  31. package/monaco/vs/cypher-DVThT8BS.js +1 -0
  32. package/monaco/vs/dart-CmGfCvrO.js +1 -0
  33. package/monaco/vs/dockerfile-CZqqYdch.js +1 -0
  34. package/monaco/vs/ecl-30fUercY.js +1 -0
  35. package/monaco/vs/editor/editor.main.css +1 -0
  36. package/monaco/vs/editor/editor.main.js +1 -0
  37. package/monaco/vs/editor/editor.worker.js +1 -0
  38. package/monaco/vs/editor-KLE6jdfb.js +831 -0
  39. package/monaco/vs/editor.js +1 -0
  40. package/monaco/vs/editorWorkerHost-fVE1cjcC.js +35 -0
  41. package/monaco/vs/elixir-xjPaIfzF.js +1 -0
  42. package/monaco/vs/flow9-DqtmStfK.js +1 -0
  43. package/monaco/vs/freemarker2-FWreY7v7.js +3 -0
  44. package/monaco/vs/fsharp-BOMdg4U1.js +1 -0
  45. package/monaco/vs/go-D_hbi-Jt.js +1 -0
  46. package/monaco/vs/graphql-CKUU4kLG.js +1 -0
  47. package/monaco/vs/handlebars-CZi4pHCH.js +1 -0
  48. package/monaco/vs/hcl-DTaboeZW.js +1 -0
  49. package/monaco/vs/html-j_7ZTNRU.js +1 -0
  50. package/monaco/vs/html.worker-CA3iAimZ.js +1 -0
  51. package/monaco/vs/htmlMode-27by_KM4.js +1 -0
  52. package/monaco/vs/index-049xrXrp.js +1 -0
  53. package/monaco/vs/index-CBVt3dzv.js +5 -0
  54. package/monaco/vs/index.js +1 -0
  55. package/monaco/vs/ini-CsNwO04R.js +1 -0
  56. package/monaco/vs/initialize-DL0l1TGY.js +1 -0
  57. package/monaco/vs/java-CI4ZMsH9.js +1 -0
  58. package/monaco/vs/javascript-DTJl4Jn1.js +1 -0
  59. package/monaco/vs/json.worker-BizpAl9O.js +1 -0
  60. package/monaco/vs/jsonMode-DLUiMUrI.js +1 -0
  61. package/monaco/vs/julia-BwzEvaQw.js +1 -0
  62. package/monaco/vs/kotlin-IUYPiTV8.js +1 -0
  63. package/monaco/vs/language/css/css.worker.js +66 -0
  64. package/monaco/vs/language/css/monaco.contribution.js +1 -0
  65. package/monaco/vs/language/html/html.worker.js +443 -0
  66. package/monaco/vs/language/html/monaco.contribution.js +1 -0
  67. package/monaco/vs/language/json/json.worker.js +17 -0
  68. package/monaco/vs/language/json/monaco.contribution.js +1 -0
  69. package/monaco/vs/language/typescript/monaco.contribution.js +1 -0
  70. package/monaco/vs/language/typescript/ts.worker.js +67693 -0
  71. package/monaco/vs/less-C0eDYdqa.js +2 -0
  72. package/monaco/vs/lexon-iON-Kj97.js +1 -0
  73. package/monaco/vs/liquid-CLJYelW6.js +1 -0
  74. package/monaco/vs/loader.js +1368 -0
  75. package/monaco/vs/lspLanguageFeatures-BIkJOWLw.js +2 -0
  76. package/monaco/vs/lua-DtygF91M.js +1 -0
  77. package/monaco/vs/m3-CsR4AuFi.js +1 -0
  78. package/monaco/vs/main-BEx-Fmlo.js +15 -0
  79. package/monaco/vs/main-DsK8pnKg.js +3 -0
  80. package/monaco/vs/markdown-C_rD0bIw.js +1 -0
  81. package/monaco/vs/mdx-CpzZIPHF.js +1 -0
  82. package/monaco/vs/mips-CiYP61RB.js +1 -0
  83. package/monaco/vs/monaco.contribution-9cKT3C7t.js +1 -0
  84. package/monaco/vs/monaco.contribution-BE88ZNGY.js +1 -0
  85. package/monaco/vs/monaco.contribution-BPhsneLd.js +1 -0
  86. package/monaco/vs/monaco.contribution-BgRy6xDf.js +1 -0
  87. package/monaco/vs/msdax-C38-sJlp.js +1 -0
  88. package/monaco/vs/mysql-CdtbpvbG.js +1 -0
  89. package/monaco/vs/nls/lang/cs.d.ts +1 -0
  90. package/monaco/vs/nls/lang/cs.js +9 -0
  91. package/monaco/vs/nls/lang/de.d.ts +1 -0
  92. package/monaco/vs/nls/lang/de.js +9 -0
  93. package/monaco/vs/nls/lang/es.d.ts +1 -0
  94. package/monaco/vs/nls/lang/es.js +9 -0
  95. package/monaco/vs/nls/lang/fr.d.ts +1 -0
  96. package/monaco/vs/nls/lang/fr.js +9 -0
  97. package/monaco/vs/nls/lang/it.d.ts +1 -0
  98. package/monaco/vs/nls/lang/it.js +9 -0
  99. package/monaco/vs/nls/lang/ja.d.ts +1 -0
  100. package/monaco/vs/nls/lang/ja.js +9 -0
  101. package/monaco/vs/nls/lang/ko.d.ts +1 -0
  102. package/monaco/vs/nls/lang/ko.js +9 -0
  103. package/monaco/vs/nls/lang/pl.d.ts +1 -0
  104. package/monaco/vs/nls/lang/pl.js +9 -0
  105. package/monaco/vs/nls/lang/pt-br.d.ts +1 -0
  106. package/monaco/vs/nls/lang/pt-br.js +9 -0
  107. package/monaco/vs/nls/lang/ru.d.ts +1 -0
  108. package/monaco/vs/nls/lang/ru.js +9 -0
  109. package/monaco/vs/nls/lang/tr.d.ts +1 -0
  110. package/monaco/vs/nls/lang/tr.js +9 -0
  111. package/monaco/vs/nls/lang/zh-cn.d.ts +1 -0
  112. package/monaco/vs/nls/lang/zh-cn.js +9 -0
  113. package/monaco/vs/nls/lang/zh-tw.d.ts +1 -0
  114. package/monaco/vs/nls/lang/zh-tw.js +9 -0
  115. package/monaco/vs/nls.messages-loader.js +1 -0
  116. package/monaco/vs/objective-c-CntZFaHX.js +1 -0
  117. package/monaco/vs/pascal-r6kuqfl_.js +1 -0
  118. package/monaco/vs/pascaligo-BiXoTmXh.js +1 -0
  119. package/monaco/vs/perl-DABw_TcH.js +1 -0
  120. package/monaco/vs/pgsql-me_jFXeX.js +1 -0
  121. package/monaco/vs/php-D_kh-9LK.js +1 -0
  122. package/monaco/vs/pla-VfZjczW0.js +1 -0
  123. package/monaco/vs/postiats-BBSzz8Pk.js +1 -0
  124. package/monaco/vs/powerquery-Dt-g_2cc.js +1 -0
  125. package/monaco/vs/powershell-B-7ap1zc.js +1 -0
  126. package/monaco/vs/protobuf-BmtuEB1A.js +2 -0
  127. package/monaco/vs/pug-BRpRNeEb.js +1 -0
  128. package/monaco/vs/python-CqWUUgfu.js +1 -0
  129. package/monaco/vs/qsharp-BzsFaUU9.js +1 -0
  130. package/monaco/vs/r-f8dDdrp4.js +1 -0
  131. package/monaco/vs/razor-hok5y9Km.js +1 -0
  132. package/monaco/vs/redis-fvZQY4PI.js +1 -0
  133. package/monaco/vs/redshift-45Et0LQi.js +1 -0
  134. package/monaco/vs/restructuredtext-C7UUFKFD.js +1 -0
  135. package/monaco/vs/ruby-CZO8zYTz.js +1 -0
  136. package/monaco/vs/rust-Bfetafyc.js +1 -0
  137. package/monaco/vs/sb-3GYllVck.js +1 -0
  138. package/monaco/vs/scala-foMgrKo1.js +1 -0
  139. package/monaco/vs/scheme-CHdMtr7p.js +1 -0
  140. package/monaco/vs/scss-C1cmLt9V.js +3 -0
  141. package/monaco/vs/shell-ClXCKCEW.js +1 -0
  142. package/monaco/vs/solidity-MZ6ExpPy.js +1 -0
  143. package/monaco/vs/sophia-DWkuSsPQ.js +1 -0
  144. package/monaco/vs/sparql-AUGFYSyk.js +1 -0
  145. package/monaco/vs/sql-32GpJSV2.js +1 -0
  146. package/monaco/vs/st-CuDFIVZ_.js +1 -0
  147. package/monaco/vs/swift-t-PfMj7W.js +1 -0
  148. package/monaco/vs/systemverilog-Ch4vA8Yt.js +1 -0
  149. package/monaco/vs/tcl-D74tq1nH.js +1 -0
  150. package/monaco/vs/toggleHighContrast-qGX7E9o7.js +61 -0
  151. package/monaco/vs/ts.worker-2QLmBukE.js +1 -0
  152. package/monaco/vs/tsMode-B0S_kp2q.js +11 -0
  153. package/monaco/vs/twig-C6taOxMV.js +1 -0
  154. package/monaco/vs/typescript-_2t_511t.js +1 -0
  155. package/monaco/vs/typespec-8OfoLt6R.js +1 -0
  156. package/monaco/vs/vb-Dyb2648j.js +1 -0
  157. package/monaco/vs/wgsl-BhLXMOR0.js +298 -0
  158. package/monaco/vs/workers-BBttULjf.js +1 -0
  159. package/monaco/vs/xml-cZjNDqDT.js +1 -0
  160. package/monaco/vs/yaml-A1fOIdH6.js +1 -0
  161. package/package.json +6 -5
  162. package/tools/materialize-monaco.mjs +126 -0
@@ -0,0 +1 @@
1
+ define("vs/ts.worker-2QLmBukE", ["require", "exports"], (function(require, r){"use strict";const e=""+new URL(require.toUrl("./assets/ts.worker-BWKtMYOk.js"),document.baseURI).href;r.__worker_url_0__=e}));
@@ -0,0 +1,11 @@
1
+ define("vs/tsMode-B0S_kp2q",["exports","./ts.worker-2QLmBukE","./editor-KLE6jdfb","./workers-BBttULjf","./monaco.contribution-BE88ZNGY"],(function(b,z,r,J,G){"use strict";class I{constructor(e,t){this._modeId=e,this._defaults=t,this._worker=null,this._client=null,this._configChangeListener=this._defaults.onDidChange(()=>this._stopWorker()),this._updateExtraLibsToken=0,this._extraLibsChangeListener=this._defaults.onDidExtraLibsChange(()=>this._updateExtraLibs())}dispose(){this._configChangeListener.dispose(),this._extraLibsChangeListener.dispose(),this._stopWorker()}_stopWorker(){this._worker&&(this._worker.dispose(),this._worker=null),this._client=null}async _updateExtraLibs(){if(!this._worker)return;const e=++this._updateExtraLibsToken,t=await this._worker.getProxy();this._updateExtraLibsToken===e&&t.updateExtraLibs(this._defaults.getExtraLibs())}_getClient(){return this._client||(this._client=(async()=>(this._worker=J.createWebWorker({moduleId:"vs/language/typescript/tsWorker",createWorker:()=>new Worker(z.__worker_url_0__,{type:"module"}),label:this._modeId,keepIdleModels:!0,createData:{compilerOptions:this._defaults.getCompilerOptions(),extraLibs:this._defaults.getExtraLibs(),customWorkerPath:this._defaults.workerOptions.customWorkerPath,inlayHintsOptions:this._defaults.inlayHintsOptions}}),this._defaults.getEagerModelSync()?await this._worker.withSyncedResources(r.editor.getModels().filter(e=>e.getLanguageId()===this._modeId).map(e=>e.uri)):await this._worker.getProxy()))()),this._client}async getLanguageServiceWorker(...e){const t=await this._getClient();return this._worker&&await this._worker.withSyncedResources(e),t}}const s={};s["lib.d.ts"]=!0,s["lib.decorators.d.ts"]=!0,s["lib.decorators.legacy.d.ts"]=!0,s["lib.dom.asynciterable.d.ts"]=!0,s["lib.dom.d.ts"]=!0,s["lib.dom.iterable.d.ts"]=!0,s["lib.es2015.collection.d.ts"]=!0,s["lib.es2015.core.d.ts"]=!0,s["lib.es2015.d.ts"]=!0,s["lib.es2015.generator.d.ts"]=!0,s["lib.es2015.iterable.d.ts"]=!0,s["lib.es2015.promise.d.ts"]=!0,s["lib.es2015.proxy.d.ts"]=!0,s["lib.es2015.reflect.d.ts"]=!0,s["lib.es2015.symbol.d.ts"]=!0,s["lib.es2015.symbol.wellknown.d.ts"]=!0,s["lib.es2016.array.include.d.ts"]=!0,s["lib.es2016.d.ts"]=!0,s["lib.es2016.full.d.ts"]=!0,s["lib.es2016.intl.d.ts"]=!0,s["lib.es2017.arraybuffer.d.ts"]=!0,s["lib.es2017.d.ts"]=!0,s["lib.es2017.date.d.ts"]=!0,s["lib.es2017.full.d.ts"]=!0,s["lib.es2017.intl.d.ts"]=!0,s["lib.es2017.object.d.ts"]=!0,s["lib.es2017.sharedmemory.d.ts"]=!0,s["lib.es2017.string.d.ts"]=!0,s["lib.es2017.typedarrays.d.ts"]=!0,s["lib.es2018.asyncgenerator.d.ts"]=!0,s["lib.es2018.asynciterable.d.ts"]=!0,s["lib.es2018.d.ts"]=!0,s["lib.es2018.full.d.ts"]=!0,s["lib.es2018.intl.d.ts"]=!0,s["lib.es2018.promise.d.ts"]=!0,s["lib.es2018.regexp.d.ts"]=!0,s["lib.es2019.array.d.ts"]=!0,s["lib.es2019.d.ts"]=!0,s["lib.es2019.full.d.ts"]=!0,s["lib.es2019.intl.d.ts"]=!0,s["lib.es2019.object.d.ts"]=!0,s["lib.es2019.string.d.ts"]=!0,s["lib.es2019.symbol.d.ts"]=!0,s["lib.es2020.bigint.d.ts"]=!0,s["lib.es2020.d.ts"]=!0,s["lib.es2020.date.d.ts"]=!0,s["lib.es2020.full.d.ts"]=!0,s["lib.es2020.intl.d.ts"]=!0,s["lib.es2020.number.d.ts"]=!0,s["lib.es2020.promise.d.ts"]=!0,s["lib.es2020.sharedmemory.d.ts"]=!0,s["lib.es2020.string.d.ts"]=!0,s["lib.es2020.symbol.wellknown.d.ts"]=!0,s["lib.es2021.d.ts"]=!0,s["lib.es2021.full.d.ts"]=!0,s["lib.es2021.intl.d.ts"]=!0,s["lib.es2021.promise.d.ts"]=!0,s["lib.es2021.string.d.ts"]=!0,s["lib.es2021.weakref.d.ts"]=!0,s["lib.es2022.array.d.ts"]=!0,s["lib.es2022.d.ts"]=!0,s["lib.es2022.error.d.ts"]=!0,s["lib.es2022.full.d.ts"]=!0,s["lib.es2022.intl.d.ts"]=!0,s["lib.es2022.object.d.ts"]=!0,s["lib.es2022.regexp.d.ts"]=!0,s["lib.es2022.string.d.ts"]=!0,s["lib.es2023.array.d.ts"]=!0,s["lib.es2023.collection.d.ts"]=!0,s["lib.es2023.d.ts"]=!0,s["lib.es2023.full.d.ts"]=!0,s["lib.es2023.intl.d.ts"]=!0,s["lib.es2024.arraybuffer.d.ts"]=!0,s["lib.es2024.collection.d.ts"]=!0,s["lib.es2024.d.ts"]=!0,s["lib.es2024.full.d.ts"]=!0,s["lib.es2024.object.d.ts"]=!0,s["lib.es2024.promise.d.ts"]=!0,s["lib.es2024.regexp.d.ts"]=!0,s["lib.es2024.sharedmemory.d.ts"]=!0,s["lib.es2024.string.d.ts"]=!0,s["lib.es5.d.ts"]=!0,s["lib.es6.d.ts"]=!0,s["lib.esnext.array.d.ts"]=!0,s["lib.esnext.collection.d.ts"]=!0,s["lib.esnext.d.ts"]=!0,s["lib.esnext.decorators.d.ts"]=!0,s["lib.esnext.disposable.d.ts"]=!0,s["lib.esnext.error.d.ts"]=!0,s["lib.esnext.float16.d.ts"]=!0,s["lib.esnext.full.d.ts"]=!0,s["lib.esnext.intl.d.ts"]=!0,s["lib.esnext.iterator.d.ts"]=!0,s["lib.esnext.promise.d.ts"]=!0,s["lib.esnext.sharedmemory.d.ts"]=!0,s["lib.scripthost.d.ts"]=!0,s["lib.webworker.asynciterable.d.ts"]=!0,s["lib.webworker.d.ts"]=!0,s["lib.webworker.importscripts.d.ts"]=!0,s["lib.webworker.iterable.d.ts"]=!0;function x(g,e,t=0){if(typeof g=="string")return g;if(g===void 0)return"";let o="";if(t){o+=e;for(let n=0;n<t;n++)o+=" "}if(o+=g.messageText,t++,g.next)for(const n of g.next)o+=x(n,e,t);return o}function S(g){return g?g.map(e=>e.text).join(""):""}class k{constructor(e){this._worker=e}_textSpanToRange(e,t){let o=e.getPositionAt(t.start),n=e.getPositionAt(t.start+t.length),{lineNumber:l,column:p}=o,{lineNumber:a,column:i}=n;return{startLineNumber:l,startColumn:p,endLineNumber:a,endColumn:i}}}class P{constructor(e){this._worker=e,this._libFiles={},this._hasFetchedLibFiles=!1,this._fetchLibFilesPromise=null}isLibFile(e){return e&&e.path.indexOf("/lib.")===0?!!s[e.path.slice(1)]:!1}getOrCreateModel(e){const t=r.Uri.parse(e),o=r.editor.getModel(t);if(o)return o;if(this.isLibFile(t)&&this._hasFetchedLibFiles)return r.editor.createModel(this._libFiles[t.path.slice(1)],"typescript",t);const n=G.typescriptDefaults.getExtraLibs()[e];return n?r.editor.createModel(n.content,"typescript",t):null}_containsLibFile(e){for(let t of e)if(this.isLibFile(t))return!0;return!1}async fetchLibFilesIfNecessary(e){this._containsLibFile(e)&&await this._fetchLibFiles()}_fetchLibFiles(){return this._fetchLibFilesPromise||(this._fetchLibFilesPromise=this._worker().then(e=>e.getLibFiles()).then(e=>{this._hasFetchedLibFiles=!0,this._libFiles=e})),this._fetchLibFilesPromise}}class O extends k{constructor(e,t,o,n){super(n),this._libFiles=e,this._defaults=t,this._selector=o,this._disposables=[],this._listener=Object.create(null);const l=i=>{if(i.getLanguageId()!==o)return;const c=()=>{const{onlyVisible:w}=this._defaults.getDiagnosticsOptions();w?i.isAttachedToEditor()&&this._doValidate(i):this._doValidate(i)};let u;const d=i.onDidChangeContent(()=>{clearTimeout(u),u=window.setTimeout(c,500)}),m=i.onDidChangeAttached(()=>{const{onlyVisible:w}=this._defaults.getDiagnosticsOptions();w&&(i.isAttachedToEditor()?c():r.editor.setModelMarkers(i,this._selector,[]))});this._listener[i.uri.toString()]={dispose(){d.dispose(),m.dispose(),clearTimeout(u)}},c()},p=i=>{r.editor.setModelMarkers(i,this._selector,[]);const c=i.uri.toString();this._listener[c]&&(this._listener[c].dispose(),delete this._listener[c])};this._disposables.push(r.editor.onDidCreateModel(i=>l(i))),this._disposables.push(r.editor.onWillDisposeModel(p)),this._disposables.push(r.editor.onDidChangeModelLanguage(i=>{p(i.model),l(i.model)})),this._disposables.push({dispose(){for(const i of r.editor.getModels())p(i)}});const a=()=>{for(const i of r.editor.getModels())p(i),l(i)};this._disposables.push(this._defaults.onDidChange(a)),this._disposables.push(this._defaults.onDidExtraLibsChange(a)),r.editor.getModels().forEach(i=>l(i))}dispose(){this._disposables.forEach(e=>e&&e.dispose()),this._disposables=[]}async _doValidate(e){const t=await this._worker(e.uri);if(e.isDisposed())return;const o=[],{noSyntaxValidation:n,noSemanticValidation:l,noSuggestionDiagnostics:p}=this._defaults.getDiagnosticsOptions();n||o.push(t.getSyntacticDiagnostics(e.uri.toString())),l||o.push(t.getSemanticDiagnostics(e.uri.toString())),p||o.push(t.getSuggestionDiagnostics(e.uri.toString()));const a=await Promise.all(o);if(!a||e.isDisposed())return;const i=a.reduce((u,d)=>d.concat(u),[]).filter(u=>(this._defaults.getDiagnosticsOptions().diagnosticCodesToIgnore||[]).indexOf(u.code)===-1),c=i.map(u=>u.relatedInformation||[]).reduce((u,d)=>d.concat(u),[]).map(u=>u.file?r.Uri.parse(u.file.fileName):null);await this._libFiles.fetchLibFilesIfNecessary(c),!e.isDisposed()&&r.editor.setModelMarkers(e,this._selector,i.map(u=>this._convertDiagnostics(e,u)))}_convertDiagnostics(e,t){const o=t.start||0,n=t.length||1,{lineNumber:l,column:p}=e.getPositionAt(o),{lineNumber:a,column:i}=e.getPositionAt(o+n),c=[];return t.reportsUnnecessary&&c.push(r.MarkerTag.Unnecessary),t.reportsDeprecated&&c.push(r.MarkerTag.Deprecated),{severity:this._tsDiagnosticCategoryToMarkerSeverity(t.category),startLineNumber:l,startColumn:p,endLineNumber:a,endColumn:i,message:x(t.messageText,`
2
+ `),code:t.code.toString(),tags:c,relatedInformation:this._convertRelatedInformation(e,t.relatedInformation)}}_convertRelatedInformation(e,t){if(!t)return[];const o=[];return t.forEach(n=>{let l=e;if(n.file&&(l=this._libFiles.getOrCreateModel(n.file.fileName)),!l)return;const p=n.start||0,a=n.length||1,{lineNumber:i,column:c}=l.getPositionAt(p),{lineNumber:u,column:d}=l.getPositionAt(p+a);o.push({resource:l.uri,startLineNumber:i,startColumn:c,endLineNumber:u,endColumn:d,message:x(n.messageText,`
3
+ `)})}),o}_tsDiagnosticCategoryToMarkerSeverity(e){switch(e){case 1:return r.MarkerSeverity.Error;case 3:return r.MarkerSeverity.Info;case 0:return r.MarkerSeverity.Warning;case 2:return r.MarkerSeverity.Hint}return r.MarkerSeverity.Info}}class v extends k{get triggerCharacters(){return["."]}async provideCompletionItems(e,t,o,n){const l=e.getWordUntilPosition(t),p=new r.Range(t.lineNumber,l.startColumn,t.lineNumber,l.endColumn),a=e.uri,i=e.getOffsetAt(t),c=await this._worker(a);if(e.isDisposed())return;const u=await c.getCompletionsAtPosition(a.toString(),i);return!u||e.isDisposed()?void 0:{suggestions:u.entries.map(m=>{let w=p;if(m.replacementSpan){const A=e.getPositionAt(m.replacementSpan.start),F=e.getPositionAt(m.replacementSpan.start+m.replacementSpan.length);w=new r.Range(A.lineNumber,A.column,F.lineNumber,F.column)}const C=[];return m.kindModifiers!==void 0&&m.kindModifiers.indexOf("deprecated")!==-1&&C.push(r.languages.CompletionItemTag.Deprecated),{uri:a,position:t,offset:i,range:w,label:m.name,insertText:m.name,sortText:m.sortText,kind:v.convertKind(m.kind),tags:C}})}}async resolveCompletionItem(e,t){const o=e,n=o.uri,l=o.position,p=o.offset,i=await(await this._worker(n)).getCompletionEntryDetails(n.toString(),p,o.label);return i?{uri:n,position:l,label:i.name,kind:v.convertKind(i.kind),detail:S(i.displayParts),documentation:{value:v.createDocumentationString(i)}}:o}static convertKind(e){switch(e){case f.primitiveType:case f.keyword:return r.languages.CompletionItemKind.Keyword;case f.variable:case f.localVariable:return r.languages.CompletionItemKind.Variable;case f.memberVariable:case f.memberGetAccessor:case f.memberSetAccessor:return r.languages.CompletionItemKind.Field;case f.function:case f.memberFunction:case f.constructSignature:case f.callSignature:case f.indexSignature:return r.languages.CompletionItemKind.Function;case f.enum:return r.languages.CompletionItemKind.Enum;case f.module:return r.languages.CompletionItemKind.Module;case f.class:return r.languages.CompletionItemKind.Class;case f.interface:return r.languages.CompletionItemKind.Interface;case f.warning:return r.languages.CompletionItemKind.File}return r.languages.CompletionItemKind.Property}static createDocumentationString(e){let t=S(e.documentation);if(e.tags)for(const o of e.tags)t+=`
4
+
5
+ ${M(o)}`;return t}}function M(g){let e=`*@${g.name}*`;if(g.name==="param"&&g.text){const[t,...o]=g.text;e+=`\`${t.text}\``,o.length>0&&(e+=` — ${o.map(n=>n.text).join(" ")}`)}else Array.isArray(g.text)?e+=` — ${g.text.map(t=>t.text).join(" ")}`:g.text&&(e+=` — ${g.text}`);return e}class D extends k{constructor(){super(...arguments),this.signatureHelpTriggerCharacters=["(",","]}static _toSignatureHelpTriggerReason(e){switch(e.triggerKind){case r.languages.SignatureHelpTriggerKind.TriggerCharacter:return e.triggerCharacter?e.isRetrigger?{kind:"retrigger",triggerCharacter:e.triggerCharacter}:{kind:"characterTyped",triggerCharacter:e.triggerCharacter}:{kind:"invoked"};case r.languages.SignatureHelpTriggerKind.ContentChange:return e.isRetrigger?{kind:"retrigger"}:{kind:"invoked"};case r.languages.SignatureHelpTriggerKind.Invoke:default:return{kind:"invoked"}}}async provideSignatureHelp(e,t,o,n){const l=e.uri,p=e.getOffsetAt(t),a=await this._worker(l);if(e.isDisposed())return;const i=await a.getSignatureHelpItems(l.toString(),p,{triggerReason:D._toSignatureHelpTriggerReason(n)});if(!i||e.isDisposed())return;const c={activeSignature:i.selectedItemIndex,activeParameter:i.argumentIndex,signatures:[]};return i.items.forEach(u=>{const d={label:"",parameters:[]};d.documentation={value:S(u.documentation)},d.label+=S(u.prefixDisplayParts),u.parameters.forEach((m,w,C)=>{const A=S(m.displayParts),F={label:A,documentation:{value:S(m.documentation)}};d.label+=A,d.parameters.push(F),w<C.length-1&&(d.label+=S(u.separatorDisplayParts))}),d.label+=S(u.suffixDisplayParts),c.signatures.push(d)}),{value:c,dispose(){}}}}class N extends k{async provideHover(e,t,o){const n=e.uri,l=e.getOffsetAt(t),p=await this._worker(n);if(e.isDisposed())return;const a=await p.getQuickInfoAtPosition(n.toString(),l);if(!a||e.isDisposed())return;const i=S(a.documentation),c=a.tags?a.tags.map(d=>M(d)).join(`
6
+
7
+ `):"",u=S(a.displayParts);return{range:this._textSpanToRange(e,a.textSpan),contents:[{value:"```typescript\n"+u+"\n```\n"},{value:i+(c?`
8
+
9
+ `+c:"")}]}}}class R extends k{async provideDocumentHighlights(e,t,o){const n=e.uri,l=e.getOffsetAt(t),p=await this._worker(n);if(e.isDisposed())return;const a=await p.getDocumentHighlights(n.toString(),l,[n.toString()]);if(!(!a||e.isDisposed()))return a.flatMap(i=>i.highlightSpans.map(c=>({range:this._textSpanToRange(e,c.textSpan),kind:c.kind==="writtenReference"?r.languages.DocumentHighlightKind.Write:r.languages.DocumentHighlightKind.Text})))}}class H extends k{constructor(e,t){super(t),this._libFiles=e}async provideDefinition(e,t,o){const n=e.uri,l=e.getOffsetAt(t),p=await this._worker(n);if(e.isDisposed())return;const a=await p.getDefinitionAtPosition(n.toString(),l);if(!a||e.isDisposed()||(await this._libFiles.fetchLibFilesIfNecessary(a.map(c=>r.Uri.parse(c.fileName))),e.isDisposed()))return;const i=[];for(let c of a){const u=this._libFiles.getOrCreateModel(c.fileName);u&&i.push({uri:u.uri,range:this._textSpanToRange(u,c.textSpan)})}return i}}class E extends k{constructor(e,t){super(t),this._libFiles=e}async provideReferences(e,t,o,n){const l=e.uri,p=e.getOffsetAt(t),a=await this._worker(l);if(e.isDisposed())return;const i=await a.getReferencesAtPosition(l.toString(),p);if(!i||e.isDisposed()||(await this._libFiles.fetchLibFilesIfNecessary(i.map(u=>r.Uri.parse(u.fileName))),e.isDisposed()))return;const c=[];for(let u of i){const d=this._libFiles.getOrCreateModel(u.fileName);d&&c.push({uri:d.uri,range:this._textSpanToRange(d,u.textSpan)})}return c}}class W extends k{async provideDocumentSymbols(e,t){const o=e.uri,n=await this._worker(o);if(e.isDisposed())return;const l=await n.getNavigationTree(o.toString());if(!l||e.isDisposed())return;const p=(i,c)=>({name:i.text,detail:"",kind:y[i.kind]||r.languages.SymbolKind.Variable,range:this._textSpanToRange(e,i.spans[0]),selectionRange:this._textSpanToRange(e,i.spans[0]),tags:[],children:i.childItems?.map(d=>p(d,i.text)),containerName:c});return l.childItems?l.childItems.map(i=>p(i)):[]}}const h=class h{};h.unknown="",h.keyword="keyword",h.script="script",h.module="module",h.class="class",h.interface="interface",h.type="type",h.enum="enum",h.variable="var",h.localVariable="local var",h.function="function",h.localFunction="local function",h.memberFunction="method",h.memberGetAccessor="getter",h.memberSetAccessor="setter",h.memberVariable="property",h.constructorImplementation="constructor",h.callSignature="call",h.indexSignature="index",h.constructSignature="construct",h.parameter="parameter",h.typeParameter="type parameter",h.primitiveType="primitive type",h.label="label",h.alias="alias",h.const="const",h.let="let",h.warning="warning";let f=h,y=Object.create(null);y[f.module]=r.languages.SymbolKind.Module,y[f.class]=r.languages.SymbolKind.Class,y[f.enum]=r.languages.SymbolKind.Enum,y[f.interface]=r.languages.SymbolKind.Interface,y[f.memberFunction]=r.languages.SymbolKind.Method,y[f.memberVariable]=r.languages.SymbolKind.Property,y[f.memberGetAccessor]=r.languages.SymbolKind.Property,y[f.memberSetAccessor]=r.languages.SymbolKind.Property,y[f.variable]=r.languages.SymbolKind.Variable,y[f.const]=r.languages.SymbolKind.Variable,y[f.localVariable]=r.languages.SymbolKind.Variable,y[f.variable]=r.languages.SymbolKind.Variable,y[f.function]=r.languages.SymbolKind.Function,y[f.localFunction]=r.languages.SymbolKind.Function;class _ extends k{static _convertOptions(e){return{ConvertTabsToSpaces:e.insertSpaces,TabSize:e.tabSize,IndentSize:e.tabSize,IndentStyle:2,NewLineCharacter:`
10
+ `,InsertSpaceAfterCommaDelimiter:!0,InsertSpaceAfterSemicolonInForStatements:!0,InsertSpaceBeforeAndAfterBinaryOperators:!0,InsertSpaceAfterKeywordsInControlFlowStatements:!0,InsertSpaceAfterFunctionKeywordForAnonymousFunctions:!0,InsertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis:!1,InsertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets:!1,InsertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces:!1,PlaceOpenBraceOnNewLineForControlBlocks:!1,PlaceOpenBraceOnNewLineForFunctions:!1}}_convertTextChanges(e,t){return{text:t.newText,range:this._textSpanToRange(e,t.span)}}}class V extends _{constructor(){super(...arguments),this.canFormatMultipleRanges=!1}async provideDocumentRangeFormattingEdits(e,t,o,n){const l=e.uri,p=e.getOffsetAt({lineNumber:t.startLineNumber,column:t.startColumn}),a=e.getOffsetAt({lineNumber:t.endLineNumber,column:t.endColumn}),i=await this._worker(l);if(e.isDisposed())return;const c=await i.getFormattingEditsForRange(l.toString(),p,a,_._convertOptions(o));if(!(!c||e.isDisposed()))return c.map(u=>this._convertTextChanges(e,u))}}class K extends _{get autoFormatTriggerCharacters(){return[";","}",`
11
+ `]}async provideOnTypeFormattingEdits(e,t,o,n,l){const p=e.uri,a=e.getOffsetAt(t),i=await this._worker(p);if(e.isDisposed())return;const c=await i.getFormattingEditsAfterKeystroke(p.toString(),a,o,_._convertOptions(n));if(!(!c||e.isDisposed()))return c.map(u=>this._convertTextChanges(e,u))}}class j extends _{async provideCodeActions(e,t,o,n){const l=e.uri,p=e.getOffsetAt({lineNumber:t.startLineNumber,column:t.startColumn}),a=e.getOffsetAt({lineNumber:t.endLineNumber,column:t.endColumn}),i=_._convertOptions(e.getOptions()),c=o.markers.filter(w=>w.code).map(w=>w.code).map(Number),u=await this._worker(l);if(e.isDisposed())return;const d=await u.getCodeFixesAtPosition(l.toString(),p,a,c,i);return!d||e.isDisposed()?{actions:[],dispose:()=>{}}:{actions:d.filter(w=>w.changes.filter(C=>C.isNewFile).length===0).map(w=>this._tsCodeFixActionToMonacoCodeAction(e,o,w)),dispose:()=>{}}}_tsCodeFixActionToMonacoCodeAction(e,t,o){const n=[];for(const p of o.changes)for(const a of p.textChanges)n.push({resource:e.uri,versionId:void 0,textEdit:{range:this._textSpanToRange(e,a.span),text:a.newText}});return{title:o.description,edit:{edits:n},diagnostics:t.markers,kind:"quickfix"}}}class B extends k{constructor(e,t){super(t),this._libFiles=e}async provideRenameEdits(e,t,o,n){const l=e.uri,p=l.toString(),a=e.getOffsetAt(t),i=await this._worker(l);if(e.isDisposed())return;const c=await i.getRenameInfo(p,a,{allowRenameOfImportPath:!1});if(c.canRename===!1)return{edits:[],rejectReason:c.localizedErrorMessage};if(c.fileToRename!==void 0)throw new Error("Renaming files is not supported.");const u=await i.findRenameLocations(p,a,!1,!1,!1);if(!u||e.isDisposed())return;const d=[];for(const m of u){const w=this._libFiles.getOrCreateModel(m.fileName);if(w)d.push({resource:w.uri,versionId:void 0,textEdit:{range:this._textSpanToRange(w,m.textSpan),text:o}});else throw new Error(`Unknown file ${m.fileName}.`)}return{edits:d}}}class U extends k{async provideInlayHints(e,t,o){const n=e.uri,l=n.toString(),p=e.getOffsetAt({lineNumber:t.startLineNumber,column:t.startColumn}),a=e.getOffsetAt({lineNumber:t.endLineNumber,column:t.endColumn}),i=await this._worker(n);return e.isDisposed()?null:{hints:(await i.provideInlayHints(l,p,a)).map(d=>({...d,label:d.text,position:e.getPositionAt(d.position),kind:this._convertHintKind(d.kind)})),dispose:()=>{}}}_convertHintKind(e){switch(e){case"Parameter":return r.languages.InlayHintKind.Parameter;case"Type":return r.languages.InlayHintKind.Type;default:return r.languages.InlayHintKind.Type}}}let T,L;function Q(g){L=$(g,"typescript")}function q(g){T=$(g,"javascript")}function X(){return new Promise((g,e)=>{if(!T)return e("JavaScript not registered!");g(T)})}function Y(){return new Promise((g,e)=>{if(!L)return e("TypeScript not registered!");g(L)})}function $(g,e){const t=[],o=new I(e,g),n=(...a)=>o.getLanguageServiceWorker(...a),l=new P(n);function p(){const{modeConfiguration:a}=g;Z(t),a.completionItems&&t.push(r.languages.registerCompletionItemProvider(e,new v(n))),a.signatureHelp&&t.push(r.languages.registerSignatureHelpProvider(e,new D(n))),a.hovers&&t.push(r.languages.registerHoverProvider(e,new N(n))),a.documentHighlights&&t.push(r.languages.registerDocumentHighlightProvider(e,new R(n))),a.definitions&&t.push(r.languages.registerDefinitionProvider(e,new H(l,n))),a.references&&t.push(r.languages.registerReferenceProvider(e,new E(l,n))),a.documentSymbols&&t.push(r.languages.registerDocumentSymbolProvider(e,new W(n))),a.rename&&t.push(r.languages.registerRenameProvider(e,new B(l,n))),a.documentRangeFormattingEdits&&t.push(r.languages.registerDocumentRangeFormattingEditProvider(e,new V(n))),a.onTypeFormattingEdits&&t.push(r.languages.registerOnTypeFormattingEditProvider(e,new K(n))),a.codeActions&&t.push(r.languages.registerCodeActionProvider(e,new j(n))),a.inlayHints&&t.push(r.languages.registerInlayHintsProvider(e,new U(n))),a.diagnostics&&t.push(new O(l,g,e,n))}return p(),n}function Z(g){for(;g.length;)g.pop().dispose()}b.Adapter=k,b.CodeActionAdaptor=j,b.DefinitionAdapter=H,b.DiagnosticsAdapter=O,b.DocumentHighlightAdapter=R,b.FormatAdapter=V,b.FormatHelper=_,b.FormatOnTypeAdapter=K,b.InlayHintsAdapter=U,b.Kind=f,b.LibFiles=P,b.OutlineAdapter=W,b.QuickInfoAdapter=N,b.ReferenceAdapter=E,b.RenameAdapter=B,b.SignatureHelpAdapter=D,b.SuggestAdapter=v,b.WorkerManager=I,b.flattenDiagnosticMessageText=x,b.getJavaScriptWorker=X,b.getTypeScriptWorker=Y,b.setupJavaScript=q,b.setupTypeScript=Q,Object.defineProperty(b,Symbol.toStringTag,{value:"Module"})}));
@@ -0,0 +1 @@
1
+ define("vs/twig-C6taOxMV",["exports"],(function(t){"use strict";const e={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,comments:{blockComment:["{#","#}"]},brackets:[["{#","#}"],["{%","%}"],["{{","}}"],["(",")"],["[","]"],["<!--","-->"],["<",">"]],autoClosingPairs:[{open:"{# ",close:" #}"},{open:"{% ",close:" %}"},{open:"{{ ",close:" }}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:'"',close:'"'},{open:"'",close:"'"},{open:"<",close:">"}]},i={defaultToken:"",tokenPostfix:"",ignoreCase:!0,keywords:["apply","autoescape","block","deprecated","do","embed","extends","flush","for","from","if","import","include","macro","sandbox","set","use","verbatim","with","endapply","endautoescape","endblock","endembed","endfor","endif","endmacro","endsandbox","endset","endwith","true","false"],tokenizer:{root:[[/\s+/],[/{#/,"comment.twig","@commentState"],[/{%[-~]?/,"delimiter.twig","@blockState"],[/{{[-~]?/,"delimiter.twig","@variableState"],[/<!DOCTYPE/,"metatag.html","@doctype"],[/<!--/,"comment.html","@comment"],[/(<)((?:[\w\-]+:)?[\w\-]+)(\s*)(\/>)/,["delimiter.html","tag.html","","delimiter.html"]],[/(<)(script)/,["delimiter.html",{token:"tag.html",next:"@script"}]],[/(<)(style)/,["delimiter.html",{token:"tag.html",next:"@style"}]],[/(<)((?:[\w\-]+:)?[\w\-]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/(<\/)((?:[\w\-]+:)?[\w\-]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/</,"delimiter.html"],[/[^<{]+/]],commentState:[[/#}/,"comment.twig","@pop"],[/./,"comment.twig"]],blockState:[[/[-~]?%}/,"delimiter.twig","@pop"],[/\s+/],[/(verbatim)(\s*)([-~]?%})/,["keyword.twig","",{token:"delimiter.twig",next:"@rawDataState"}]],{include:"expression"}],rawDataState:[[/({%[-~]?)(\s*)(endverbatim)(\s*)([-~]?%})/,["delimiter.twig","","keyword.twig","",{token:"delimiter.twig",next:"@popall"}]],[/./,"string.twig"]],variableState:[[/[-~]?}}/,"delimiter.twig","@pop"],{include:"expression"}],stringState:[[/"/,"string.twig","@pop"],[/#{\s*/,"string.twig","@interpolationState"],[/[^#"\\]*(?:(?:\\.|#(?!\{))[^#"\\]*)*/,"string.twig"]],interpolationState:[[/}/,"string.twig","@pop"],{include:"expression"}],expression:[[/\s+/],[/\+|-|\/{1,2}|%|\*{1,2}/,"operators.twig"],[/(and|or|not|b-and|b-xor|b-or)(\s+)/,["operators.twig",""]],[/==|!=|<|>|>=|<=/,"operators.twig"],[/(starts with|ends with|matches)(\s+)/,["operators.twig",""]],[/(in)(\s+)/,["operators.twig",""]],[/(is)(\s+)/,["operators.twig",""]],[/\||~|:|\.{1,2}|\?{1,2}/,"operators.twig"],[/[^\W\d][\w]*/,{cases:{"@keywords":"keyword.twig","@default":"variable.twig"}}],[/\d+(\.\d+)?/,"number.twig"],[/\(|\)|\[|\]|{|}|,/,"delimiter.twig"],[/"([^#"\\]*(?:\\.[^#"\\]*)*)"|\'([^\'\\]*(?:\\.[^\'\\]*)*)\'/,"string.twig"],[/"/,"string.twig","@stringState"],[/=>/,"operators.twig"],[/=/,"operators.twig"]],doctype:[[/[^>]+/,"metatag.content.html"],[/>/,"metatag.html","@pop"]],comment:[[/-->/,"comment.html","@pop"],[/[^-]+/,"comment.content.html"],[/./,"comment.content.html"]],otherTag:[[/\/?>/,"delimiter.html","@pop"],[/"([^"]*)"/,"attribute.value.html"],[/'([^']*)'/,"attribute.value.html"],[/[\w\-]+/,"attribute.name.html"],[/=/,"delimiter.html"],[/[ \t\r\n]+/]],script:[[/type/,"attribute.name.html","@scriptAfterType"],[/"([^"]*)"/,"attribute.value.html"],[/'([^']*)'/,"attribute.value.html"],[/[\w\-]+/,"attribute.name.html"],[/=/,"delimiter.html"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/(<\/)(script\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],scriptAfterType:[[/=/,"delimiter.html","@scriptAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptAfterTypeEquals:[[/"([^"]*)"/,{token:"attribute.value.html",switchTo:"@scriptWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value.html",switchTo:"@scriptWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptWithCustomType:[[/>/,{token:"delimiter.html",next:"@scriptEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value.html"],[/'([^']*)'/,"attribute.value.html"],[/[\w\-]+/,"attribute.name.html"],[/=/,"delimiter.html"],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptEmbedded:[[/<\/script/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}],[/[^<]+/,""]],style:[[/type/,"attribute.name.html","@styleAfterType"],[/"([^"]*)"/,"attribute.value.html"],[/'([^']*)'/,"attribute.value.html"],[/[\w\-]+/,"attribute.name.html"],[/=/,"delimiter.html"],[/>/,{token:"delimiter.html",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/(<\/)(style\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],styleAfterType:[[/=/,"delimiter.html","@styleAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleAfterTypeEquals:[[/"([^"]*)"/,{token:"attribute.value.html",switchTo:"@styleWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value.html",switchTo:"@styleWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleWithCustomType:[[/>/,{token:"delimiter.html",next:"@styleEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value.html"],[/'([^']*)'/,"attribute.value.html"],[/[\w\-]+/,"attribute.name.html"],[/=/,"delimiter.html"],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleEmbedded:[[/<\/style/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}],[/[^<]+/,""]]}};t.conf=e,t.language=i,Object.defineProperty(t,Symbol.toStringTag,{value:"Module"})}));
@@ -0,0 +1 @@
1
+ define("vs/typescript-_2t_511t",["exports","./editor-KLE6jdfb"],(function(n,e){"use strict";const t={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],onEnterRules:[{beforeText:/^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/,afterText:/^\s*\*\/$/,action:{indentAction:e.languages.IndentAction.IndentOutdent,appendText:" * "}},{beforeText:/^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/,action:{indentAction:e.languages.IndentAction.None,appendText:" * "}},{beforeText:/^(\t|(\ \ ))*\ \*(\ ([^\*]|\*(?!\/))*)?$/,action:{indentAction:e.languages.IndentAction.None,appendText:"* "}},{beforeText:/^(\t|(\ \ ))*\ \*\/\s*$/,action:{indentAction:e.languages.IndentAction.None,removeText:1}}],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string","comment"]},{open:"`",close:"`",notIn:["string","comment"]},{open:"/**",close:" */",notIn:["string"]}],folding:{markers:{start:new RegExp("^\\s*//\\s*#?region\\b"),end:new RegExp("^\\s*//\\s*#?endregion\\b")}}},o={defaultToken:"invalid",tokenPostfix:".ts",keywords:["abstract","any","as","asserts","bigint","boolean","break","case","catch","class","continue","const","constructor","debugger","declare","default","delete","do","else","enum","export","extends","false","finally","for","from","function","get","if","implements","import","in","infer","instanceof","interface","is","keyof","let","module","namespace","never","new","null","number","object","out","package","private","protected","public","override","readonly","require","global","return","satisfies","set","static","string","super","switch","symbol","this","throw","true","try","type","typeof","undefined","unique","unknown","var","void","while","with","yield","async","await","of"],operators:["<=",">=","==","!=","===","!==","=>","+","-","**","*","/","%","++","--","<<","</",">>",">>>","&","|","^","!","~","&&","||","??","?",":","=","+=","-=","*=","**=","/=","%=","<<=",">>=",">>>=","&=","|=","^=","@"],symbols:/[=><!~?:&|+\-*\/\^%]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,digits:/\d+(_+\d+)*/,octaldigits:/[0-7]+(_+[0-7]+)*/,binarydigits:/[0-1]+(_+[0-1]+)*/,hexdigits:/[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/,regexpctl:/[(){}\[\]\$\^|\-*+?\.]/,regexpesc:/\\(?:[bBdDfnrstvwWn0\\\/]|@regexpctl|c[A-Z]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})/,tokenizer:{root:[[/[{}]/,"delimiter.bracket"],{include:"common"}],common:[[/#?[a-z_$][\w$]*/,{cases:{"@keywords":"keyword","@default":"identifier"}}],[/[A-Z][\w\$]*/,"type.identifier"],{include:"@whitespace"},[/\/(?=([^\\\/]|\\.)+\/([dgimsuy]*)(\s*)(\.|;|,|\)|\]|\}|$))/,{token:"regexp",bracket:"@open",next:"@regexp"}],[/[()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/!(?=([^=]|$))/,"delimiter"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/(@digits)[eE]([\-+]?(@digits))?/,"number.float"],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?/,"number.float"],[/0[xX](@hexdigits)n?/,"number.hex"],[/0[oO]?(@octaldigits)n?/,"number.octal"],[/0[bB](@binarydigits)n?/,"number.binary"],[/(@digits)n?/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string_double"],[/'/,"string","@string_single"],[/`/,"string","@string_backtick"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@jsdoc"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],jsdoc:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],regexp:[[/(\{)(\d+(?:,\d*)?)(\})/,["regexp.escape.control","regexp.escape.control","regexp.escape.control"]],[/(\[)(\^?)(?=(?:[^\]\\\/]|\\.)+)/,["regexp.escape.control",{token:"regexp.escape.control",next:"@regexrange"}]],[/(\()(\?:|\?=|\?!)/,["regexp.escape.control","regexp.escape.control"]],[/[()]/,"regexp.escape.control"],[/@regexpctl/,"regexp.escape.control"],[/[^\\\/]/,"regexp"],[/@regexpesc/,"regexp.escape"],[/\\\./,"regexp.invalid"],[/(\/)([dgimsuy]*)/,[{token:"regexp",bracket:"@close",next:"@pop"},"keyword.other"]]],regexrange:[[/-/,"regexp.escape.control"],[/\^/,"regexp.invalid"],[/@regexpesc/,"regexp.escape"],[/[^\]]/,"regexp"],[/\]/,{token:"regexp.escape.control",next:"@pop",bracket:"@close"}]],string_double:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],string_single:[[/[^\\']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/'/,"string","@pop"]],string_backtick:[[/\$\{/,{token:"delimiter.bracket",next:"@bracketCounting"}],[/[^\\`$]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/`/,"string","@pop"]],bracketCounting:[[/\{/,"delimiter.bracket","@bracketCounting"],[/\}/,"delimiter.bracket","@pop"],{include:"common"}]}};n.conf=t,n.language=o,Object.defineProperty(n,Symbol.toStringTag,{value:"Module"})}));
@@ -0,0 +1 @@
1
+ define("vs/typespec-8OfoLt6R",["exports"],(function(e){"use strict";const t=n=>`\\b${n}\\b`,o=n=>`(?!${n})`,i=t("[_a-zA-Z][_a-zA-Z0-9]*"),r=t("[_a-zA-Z-0-9]+"),s=["import","model","scalar","namespace","op","interface","union","using","is","extends","enum","alias","return","void","if","else","projection","dec","extern","fn"],c=["true","false","null","unknown","never"],a="[ \\t\\r\\n]",g="[0-9]+",l={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"/**",close:" */",notIn:["string"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}],indentationRules:{decreaseIndentPattern:new RegExp("^((?!.*?/\\*).*\\*/)?\\s*[\\}\\]].*$"),increaseIndentPattern:new RegExp("^((?!//).)*(\\{([^}\"'`/]*|(\\t|[ ])*//.*)|\\([^)\"'`/]*|\\[[^\\]\"'`/]*)$"),unIndentedLinePattern:new RegExp("^(\\t|[ ])*[ ]\\*[^/]*\\*/\\s*$|^(\\t|[ ])*[ ]\\*/\\s*$|^(\\t|[ ])*[ ]\\*([ ]([^\\*]|\\*(?!/))*)?$")}},k={defaultToken:"",tokenPostfix:".tsp",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"}],symbols:/[=:;<>]+/,keywords:s,namedLiterals:c,escapes:'\\\\(u{[0-9A-Fa-f]+}|n|r|t|\\\\|"|\\${)',tokenizer:{root:[{include:"@expression"},{include:"@whitespace"}],stringVerbatim:[{regex:'(|"|"")[^"]',action:{token:"string"}},{regex:`"""${o('"')}`,action:{token:"string",next:"@pop"}}],stringLiteral:[{regex:"\\${",action:{token:"delimiter.bracket",next:"@bracketCounting"}},{regex:'[^\\\\"$]+',action:{token:"string"}},{regex:"@escapes",action:{token:"string.escape"}},{regex:"\\\\.",action:{token:"string.escape.invalid"}},{regex:'"',action:{token:"string",next:"@pop"}}],bracketCounting:[{regex:"{",action:{token:"delimiter.bracket",next:"@bracketCounting"}},{regex:"}",action:{token:"delimiter.bracket",next:"@pop"}},{include:"@expression"}],comment:[{regex:"[^\\*]+",action:{token:"comment"}},{regex:"\\*\\/",action:{token:"comment",next:"@pop"}},{regex:"[\\/*]",action:{token:"comment"}}],whitespace:[{regex:a},{regex:"\\/\\*",action:{token:"comment",next:"@comment"}},{regex:"\\/\\/.*$",action:{token:"comment"}}],expression:[{regex:'"""',action:{token:"string",next:"@stringVerbatim"}},{regex:`"${o('""')}`,action:{token:"string",next:"@stringLiteral"}},{regex:g,action:{token:"number"}},{regex:i,action:{cases:{"@keywords":{token:"keyword"},"@namedLiterals":{token:"keyword"},"@default":{token:"identifier"}}}},{regex:`@${i}`,action:{token:"tag"}},{regex:`#${r}`,action:{token:"directive"}}]}};e.conf=l,e.language=k,Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})}));
@@ -0,0 +1 @@
1
+ define("vs/vb-Dyb2648j",["exports"],(function(e){"use strict";const n={comments:{lineComment:"'",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"],["<",">"],["addhandler","end addhandler"],["class","end class"],["enum","end enum"],["event","end event"],["function","end function"],["get","end get"],["if","end if"],["interface","end interface"],["module","end module"],["namespace","end namespace"],["operator","end operator"],["property","end property"],["raiseevent","end raiseevent"],["removehandler","end removehandler"],["select","end select"],["set","end set"],["structure","end structure"],["sub","end sub"],["synclock","end synclock"],["try","end try"],["while","end while"],["with","end with"],["using","end using"],["do","loop"],["for","next"]],autoClosingPairs:[{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]},{open:"<",close:">",notIn:["string","comment"]}],folding:{markers:{start:new RegExp("^\\s*#Region\\b"),end:new RegExp("^\\s*#End Region\\b")}}},t={defaultToken:"",tokenPostfix:".vb",ignoreCase:!0,brackets:[{token:"delimiter.bracket",open:"{",close:"}"},{token:"delimiter.array",open:"[",close:"]"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.angle",open:"<",close:">"},{token:"keyword.tag-addhandler",open:"addhandler",close:"end addhandler"},{token:"keyword.tag-class",open:"class",close:"end class"},{token:"keyword.tag-enum",open:"enum",close:"end enum"},{token:"keyword.tag-event",open:"event",close:"end event"},{token:"keyword.tag-function",open:"function",close:"end function"},{token:"keyword.tag-get",open:"get",close:"end get"},{token:"keyword.tag-if",open:"if",close:"end if"},{token:"keyword.tag-interface",open:"interface",close:"end interface"},{token:"keyword.tag-module",open:"module",close:"end module"},{token:"keyword.tag-namespace",open:"namespace",close:"end namespace"},{token:"keyword.tag-operator",open:"operator",close:"end operator"},{token:"keyword.tag-property",open:"property",close:"end property"},{token:"keyword.tag-raiseevent",open:"raiseevent",close:"end raiseevent"},{token:"keyword.tag-removehandler",open:"removehandler",close:"end removehandler"},{token:"keyword.tag-select",open:"select",close:"end select"},{token:"keyword.tag-set",open:"set",close:"end set"},{token:"keyword.tag-structure",open:"structure",close:"end structure"},{token:"keyword.tag-sub",open:"sub",close:"end sub"},{token:"keyword.tag-synclock",open:"synclock",close:"end synclock"},{token:"keyword.tag-try",open:"try",close:"end try"},{token:"keyword.tag-while",open:"while",close:"end while"},{token:"keyword.tag-with",open:"with",close:"end with"},{token:"keyword.tag-using",open:"using",close:"end using"},{token:"keyword.tag-do",open:"do",close:"loop"},{token:"keyword.tag-for",open:"for",close:"next"}],keywords:["AddHandler","AddressOf","Alias","And","AndAlso","As","Async","Boolean","ByRef","Byte","ByVal","Call","Case","Catch","CBool","CByte","CChar","CDate","CDbl","CDec","Char","CInt","Class","CLng","CObj","Const","Continue","CSByte","CShort","CSng","CStr","CType","CUInt","CULng","CUShort","Date","Decimal","Declare","Default","Delegate","Dim","DirectCast","Do","Double","Each","Else","ElseIf","End","EndIf","Enum","Erase","Error","Event","Exit","False","Finally","For","Friend","Function","Get","GetType","GetXMLNamespace","Global","GoSub","GoTo","Handles","If","Implements","Imports","In","Inherits","Integer","Interface","Is","IsNot","Let","Lib","Like","Long","Loop","Me","Mod","Module","MustInherit","MustOverride","MyBase","MyClass","NameOf","Namespace","Narrowing","New","Next","Not","Nothing","NotInheritable","NotOverridable","Object","Of","On","Operator","Option","Optional","Or","OrElse","Out","Overloads","Overridable","Overrides","ParamArray","Partial","Private","Property","Protected","Public","RaiseEvent","ReadOnly","ReDim","RemoveHandler","Resume","Return","SByte","Select","Set","Shadows","Shared","Short","Single","Static","Step","Stop","String","Structure","Sub","SyncLock","Then","Throw","To","True","Try","TryCast","TypeOf","UInteger","ULong","UShort","Using","Variant","Wend","When","While","Widening","With","WithEvents","WriteOnly","Xor"],tagwords:["If","Sub","Select","Try","Class","Enum","Function","Get","Interface","Module","Namespace","Operator","Set","Structure","Using","While","With","Do","Loop","For","Next","Property","Continue","AddHandler","RemoveHandler","Event","RaiseEvent","SyncLock"],symbols:/[=><!~?;\.,:&|+\-*\/\^%]+/,integersuffix:/U?[DI%L&S@]?/,floatsuffix:/[R#F!]?/,tokenizer:{root:[{include:"@whitespace"},[/next(?!\w)/,{token:"keyword.tag-for"}],[/loop(?!\w)/,{token:"keyword.tag-do"}],[/end\s+(?!for|do)(addhandler|class|enum|event|function|get|if|interface|module|namespace|operator|property|raiseevent|removehandler|select|set|structure|sub|synclock|try|while|with|using)/,{token:"keyword.tag-$1"}],[/[a-zA-Z_]\w*/,{cases:{"@tagwords":{token:"keyword.tag-$0"},"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],[/^\s*#\w+/,"keyword"],[/\d*\d+e([\-+]?\d+)?(@floatsuffix)/,"number.float"],[/\d*\.\d+(e[\-+]?\d+)?(@floatsuffix)/,"number.float"],[/&H[0-9a-f]+(@integersuffix)/,"number.hex"],[/&0[0-7]+(@integersuffix)/,"number.octal"],[/\d+(@integersuffix)/,"number"],[/#.*#/,"number"],[/[{}()\[\]]/,"@brackets"],[/@symbols/,"delimiter"],[/["\u201c\u201d]/,{token:"string.quote",next:"@string"}]],whitespace:[[/[ \t\r\n]+/,""],[/(\'|REM(?!\w)).*$/,"comment"]],string:[[/[^"\u201c\u201d]+/,"string"],[/["\u201c\u201d]{2}/,"string.escape"],[/["\u201c\u201d]C?/,{token:"string.quote",next:"@pop"}]]}};e.conf=n,e.language=t,Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})}));
@@ -0,0 +1,298 @@
1
+ define("vs/wgsl-BhLXMOR0",["exports"],(function(a){"use strict";const s={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"[",close:"]"},{open:"{",close:"}"},{open:"(",close:")"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"}]};function e(b){let i=[];const o=b.split(/\t+|\r+|\n+| +/);for(let r=0;r<o.length;++r)o[r].length>0&&i.push(o[r]);return i}const c=e("true false"),m=e(`
2
+ alias
3
+ break
4
+ case
5
+ const
6
+ const_assert
7
+ continue
8
+ continuing
9
+ default
10
+ diagnostic
11
+ discard
12
+ else
13
+ enable
14
+ fn
15
+ for
16
+ if
17
+ let
18
+ loop
19
+ override
20
+ requires
21
+ return
22
+ struct
23
+ switch
24
+ var
25
+ while
26
+ `),l=e(`
27
+ NULL
28
+ Self
29
+ abstract
30
+ active
31
+ alignas
32
+ alignof
33
+ as
34
+ asm
35
+ asm_fragment
36
+ async
37
+ attribute
38
+ auto
39
+ await
40
+ become
41
+ binding_array
42
+ cast
43
+ catch
44
+ class
45
+ co_await
46
+ co_return
47
+ co_yield
48
+ coherent
49
+ column_major
50
+ common
51
+ compile
52
+ compile_fragment
53
+ concept
54
+ const_cast
55
+ consteval
56
+ constexpr
57
+ constinit
58
+ crate
59
+ debugger
60
+ decltype
61
+ delete
62
+ demote
63
+ demote_to_helper
64
+ do
65
+ dynamic_cast
66
+ enum
67
+ explicit
68
+ export
69
+ extends
70
+ extern
71
+ external
72
+ fallthrough
73
+ filter
74
+ final
75
+ finally
76
+ friend
77
+ from
78
+ fxgroup
79
+ get
80
+ goto
81
+ groupshared
82
+ highp
83
+ impl
84
+ implements
85
+ import
86
+ inline
87
+ instanceof
88
+ interface
89
+ layout
90
+ lowp
91
+ macro
92
+ macro_rules
93
+ match
94
+ mediump
95
+ meta
96
+ mod
97
+ module
98
+ move
99
+ mut
100
+ mutable
101
+ namespace
102
+ new
103
+ nil
104
+ noexcept
105
+ noinline
106
+ nointerpolation
107
+ noperspective
108
+ null
109
+ nullptr
110
+ of
111
+ operator
112
+ package
113
+ packoffset
114
+ partition
115
+ pass
116
+ patch
117
+ pixelfragment
118
+ precise
119
+ precision
120
+ premerge
121
+ priv
122
+ protected
123
+ pub
124
+ public
125
+ readonly
126
+ ref
127
+ regardless
128
+ register
129
+ reinterpret_cast
130
+ require
131
+ resource
132
+ restrict
133
+ self
134
+ set
135
+ shared
136
+ sizeof
137
+ smooth
138
+ snorm
139
+ static
140
+ static_assert
141
+ static_cast
142
+ std
143
+ subroutine
144
+ super
145
+ target
146
+ template
147
+ this
148
+ thread_local
149
+ throw
150
+ trait
151
+ try
152
+ type
153
+ typedef
154
+ typeid
155
+ typename
156
+ typeof
157
+ union
158
+ unless
159
+ unorm
160
+ unsafe
161
+ unsized
162
+ use
163
+ using
164
+ varying
165
+ virtual
166
+ volatile
167
+ wgsl
168
+ where
169
+ with
170
+ writeonly
171
+ yield
172
+ `),u=e(`
173
+ read write read_write
174
+ function private workgroup uniform storage
175
+ perspective linear flat
176
+ center centroid sample
177
+ vertex_index instance_index position front_facing frag_depth
178
+ local_invocation_id local_invocation_index
179
+ global_invocation_id workgroup_id num_workgroups
180
+ sample_index sample_mask
181
+ rgba8unorm
182
+ rgba8snorm
183
+ rgba8uint
184
+ rgba8sint
185
+ rgba16uint
186
+ rgba16sint
187
+ rgba16float
188
+ r32uint
189
+ r32sint
190
+ r32float
191
+ rg32uint
192
+ rg32sint
193
+ rg32float
194
+ rgba32uint
195
+ rgba32sint
196
+ rgba32float
197
+ bgra8unorm
198
+ `),p=e(`
199
+ bool
200
+ f16
201
+ f32
202
+ i32
203
+ sampler sampler_comparison
204
+ texture_depth_2d
205
+ texture_depth_2d_array
206
+ texture_depth_cube
207
+ texture_depth_cube_array
208
+ texture_depth_multisampled_2d
209
+ texture_external
210
+ texture_external
211
+ u32
212
+ `),d=e(`
213
+ array
214
+ atomic
215
+ mat2x2
216
+ mat2x3
217
+ mat2x4
218
+ mat3x2
219
+ mat3x3
220
+ mat3x4
221
+ mat4x2
222
+ mat4x3
223
+ mat4x4
224
+ ptr
225
+ texture_1d
226
+ texture_2d
227
+ texture_2d_array
228
+ texture_3d
229
+ texture_cube
230
+ texture_cube_array
231
+ texture_multisampled_2d
232
+ texture_storage_1d
233
+ texture_storage_2d
234
+ texture_storage_2d_array
235
+ texture_storage_3d
236
+ vec2
237
+ vec3
238
+ vec4
239
+ `),x=e(`
240
+ vec2i vec3i vec4i
241
+ vec2u vec3u vec4u
242
+ vec2f vec3f vec4f
243
+ vec2h vec3h vec4h
244
+ mat2x2f mat2x3f mat2x4f
245
+ mat3x2f mat3x3f mat3x4f
246
+ mat4x2f mat4x3f mat4x4f
247
+ mat2x2h mat2x3h mat2x4h
248
+ mat3x2h mat3x3h mat3x4h
249
+ mat4x2h mat4x3h mat4x4h
250
+ `),f=e(`
251
+ bitcast all any select arrayLength abs acos acosh asin asinh atan atanh atan2
252
+ ceil clamp cos cosh countLeadingZeros countOneBits countTrailingZeros cross
253
+ degrees determinant distance dot exp exp2 extractBits faceForward firstLeadingBit
254
+ firstTrailingBit floor fma fract frexp inverseBits inverseSqrt ldexp length
255
+ log log2 max min mix modf normalize pow quantizeToF16 radians reflect refract
256
+ reverseBits round saturate sign sin sinh smoothstep sqrt step tan tanh transpose
257
+ trunc dpdx dpdxCoarse dpdxFine dpdy dpdyCoarse dpdyFine fwidth fwidthCoarse fwidthFine
258
+ textureDimensions textureGather textureGatherCompare textureLoad textureNumLayers
259
+ textureNumLevels textureNumSamples textureSample textureSampleBias textureSampleCompare
260
+ textureSampleCompareLevel textureSampleGrad textureSampleLevel textureSampleBaseClampToEdge
261
+ textureStore atomicLoad atomicStore atomicAdd atomicSub atomicMax atomicMin
262
+ atomicAnd atomicOr atomicXor atomicExchange atomicCompareExchangeWeak pack4x8snorm
263
+ pack4x8unorm pack2x16snorm pack2x16unorm pack2x16float unpack4x8snorm unpack4x8unorm
264
+ unpack2x16snorm unpack2x16unorm unpack2x16float storageBarrier workgroupBarrier
265
+ workgroupUniformLoad
266
+ `),_=e(`
267
+ &
268
+ &&
269
+ ->
270
+ /
271
+ =
272
+ ==
273
+ !=
274
+ >
275
+ >=
276
+ <
277
+ <=
278
+ %
279
+ -
280
+ --
281
+ +
282
+ ++
283
+ |
284
+ ||
285
+ *
286
+ <<
287
+ >>
288
+ +=
289
+ -=
290
+ *=
291
+ /=
292
+ %=
293
+ &=
294
+ |=
295
+ ^=
296
+ >>=
297
+ <<=
298
+ `),g=/enable|requires|diagnostic/,n=new RegExp("[_\\p{XID_Start}]\\p{XID_Continue}*","u"),t="variable.predefined",h={tokenPostfix:".wgsl",defaultToken:"invalid",unicode:!0,atoms:c,keywords:m,reserved:l,predeclared_enums:u,predeclared_types:p,predeclared_type_generators:d,predeclared_type_aliases:x,predeclared_intrinsics:f,operators:_,symbols:/[!%&*+\-\.\/:;<=>^|_~,]+/,tokenizer:{root:[[g,"keyword","@directive"],[n,{cases:{"@atoms":t,"@keywords":"keyword","@reserved":"invalid","@predeclared_enums":t,"@predeclared_types":t,"@predeclared_type_generators":t,"@predeclared_type_aliases":t,"@predeclared_intrinsics":t,"@default":"identifier"}}],{include:"@commentOrSpace"},{include:"@numbers"},[/[{}()\[\]]/,"@brackets"],["@","annotation","@attribute"],[/@symbols/,{cases:{"@operators":"operator","@default":"delimiter"}}],[/./,"invalid"]],commentOrSpace:[[/\s+/,"white"],[/\/\*/,"comment","@blockComment"],[/\/\/.*$/,"comment"]],blockComment:[[/[^\/*]+/,"comment"],[/\/\*/,"comment","@push"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],attribute:[{include:"@commentOrSpace"},[/\w+/,"annotation","@pop"]],directive:[{include:"@commentOrSpace"},[/[()]/,"@brackets"],[/,/,"delimiter"],[n,"meta.content"],[/;/,"delimiter","@pop"]],numbers:[[/0[fh]/,"number.float"],[/[1-9][0-9]*[fh]/,"number.float"],[/[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/,"number.float"],[/[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/,"number.float"],[/[0-9]+[eE][+-]?[0-9]+[fh]?/,"number.float"],[/0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+(?:[pP][+-]?[0-9]+[fh]?)?/,"number.hex"],[/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*(?:[pP][+-]?[0-9]+[fh]?)?/,"number.hex"],[/0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/,"number.hex"],[/0[xX][0-9a-fA-F]+[iu]?/,"number.hex"],[/[1-9][0-9]*[iu]?/,"number"],[/0[iu]?/,"number"]]}};a.conf=s,a.language=h,Object.defineProperty(a,Symbol.toStringTag,{value:"Module"})}));
@@ -0,0 +1 @@
1
+ define("vs/workers-BBttULjf",["exports","./editor-KLE6jdfb","./toggleHighContrast-qGX7E9o7"],(function(c,l,u){"use strict";function a(e,o){const r=globalThis.MonacoEnvironment;if(r?.createTrustedTypesPolicy)try{return r.createTrustedTypesPolicy(e,o)}catch(t){console.error(t);return}try{return globalThis.trustedTypes?.createPolicy(e,o)}catch(t){console.error(t);return}}let n;typeof self=="object"&&self.constructor&&self.constructor.name==="DedicatedWorkerGlobalScope"&&globalThis.workerttPolicy!==void 0?n=globalThis.workerttPolicy:n=a("defaultWorkerFactory",{createScriptURL:e=>e});function i(e){const o=e.label,r=globalThis.MonacoEnvironment;if(r){if(typeof r.getWorker=="function")return r.getWorker("workerMain.js",o);if(typeof r.getWorkerUrl=="function"){const t=r.getWorkerUrl("workerMain.js",o);return new Worker(n?n.createScriptURL(t):t,{name:o,type:"module"})}}if(e.createWorker)return e.createWorker();throw new Error("You must define a function MonacoEnvironment.getWorkerUrl or MonacoEnvironment.getWorker")}function s(e){const o=Promise.resolve(i({label:e.label??"monaco-editor-worker",moduleId:e.moduleId,createWorker:e.createWorker})).then(r=>(r.postMessage("ignore"),r.postMessage(e.createData),r));return l.editor.createWebWorker({worker:o,host:e.host,keepIdleModels:e.keepIdleModels})}c.createWebWorker=s}));
@@ -0,0 +1 @@
1
+ define("vs/xml-cZjNDqDT",["exports","./editor-KLE6jdfb"],(function(e,t){"use strict";const n={comments:{blockComment:["<!--","-->"]},brackets:[["<",">"]],autoClosingPairs:[{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'}],surroundingPairs:[{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'}],onEnterRules:[{beforeText:new RegExp("<([_:\\w][_:\\w-.\\d]*)([^/>]*(?!/)>)[^<]*$","i"),afterText:/^<\/([_:\w][_:\w-.\d]*)\s*>$/i,action:{indentAction:t.languages.IndentAction.IndentOutdent}},{beforeText:new RegExp("<(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$","i"),action:{indentAction:t.languages.IndentAction.Indent}}]},a={defaultToken:"",tokenPostfix:".xml",ignoreCase:!0,qualifiedName:/(?:[\w\.\-]+:)?[\w\.\-]+/,tokenizer:{root:[[/[^<&]+/,""],{include:"@whitespace"},[/(<)(@qualifiedName)/,[{token:"delimiter"},{token:"tag",next:"@tag"}]],[/(<\/)(@qualifiedName)(\s*)(>)/,[{token:"delimiter"},{token:"tag"},"",{token:"delimiter"}]],[/(<\?)(@qualifiedName)/,[{token:"delimiter"},{token:"metatag",next:"@tag"}]],[/(<\!)(@qualifiedName)/,[{token:"delimiter"},{token:"metatag",next:"@tag"}]],[/<\!\[CDATA\[/,{token:"delimiter.cdata",next:"@cdata"}],[/&\w+;/,"string.escape"]],cdata:[[/[^\]]+/,""],[/\]\]>/,{token:"delimiter.cdata",next:"@pop"}],[/\]/,""]],tag:[[/[ \t\r\n]+/,""],[/(@qualifiedName)(\s*=\s*)("[^"]*"|'[^']*')/,["attribute.name","","attribute.value"]],[/(@qualifiedName)(\s*=\s*)("[^">?\/]*|'[^'>?\/]*)(?=[\?\/]\>)/,["attribute.name","","attribute.value"]],[/(@qualifiedName)(\s*=\s*)("[^">]*|'[^'>]*)/,["attribute.name","","attribute.value"]],[/@qualifiedName/,"attribute.name"],[/\?>/,{token:"delimiter",next:"@pop"}],[/(\/)(>)/,[{token:"tag"},{token:"delimiter",next:"@pop"}]],[/>/,{token:"delimiter",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,""],[/<!--/,{token:"comment",next:"@comment"}]],comment:[[/[^<\-]+/,"comment.content"],[/-->/,{token:"comment",next:"@pop"}],[/<!--/,"comment.content.invalid"],[/[<\-]/,"comment.content"]]}};e.conf=n,e.language=a,Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})}));
@@ -0,0 +1 @@
1
+ define("vs/yaml-A1fOIdH6",["exports","./editor-KLE6jdfb"],(function(e,n){"use strict";const t={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{offSide:!0},onEnterRules:[{beforeText:/:\s*$/,action:{indentAction:n.languages.IndentAction.Indent}}]},o={tokenPostfix:".yaml",brackets:[{token:"delimiter.bracket",open:"{",close:"}"},{token:"delimiter.square",open:"[",close:"]"}],keywords:["true","True","TRUE","false","False","FALSE","null","Null","Null","~"],numberInteger:/(?:0|[+-]?[0-9]+)/,numberFloat:/(?:0|[+-]?[0-9]+)(?:\.[0-9]+)?(?:e[-+][1-9][0-9]*)?/,numberOctal:/0o[0-7]+/,numberHex:/0x[0-9a-fA-F]+/,numberInfinity:/[+-]?\.(?:inf|Inf|INF)/,numberNaN:/\.(?:nan|Nan|NAN)/,numberDate:/\d{4}-\d\d-\d\d([Tt ]\d\d:\d\d:\d\d(\.\d+)?(( ?[+-]\d\d?(:\d\d)?)|Z)?)?/,escapes:/\\(?:[btnfr\\"']|[0-7][0-7]?|[0-3][0-7]{2})/,tokenizer:{root:[{include:"@whitespace"},{include:"@comment"},[/%[^ ]+.*$/,"meta.directive"],[/---/,"operators.directivesEnd"],[/\.{3}/,"operators.documentEnd"],[/[-?:](?= )/,"operators"],{include:"@anchor"},{include:"@tagHandle"},{include:"@flowCollections"},{include:"@blockStyle"},[/@numberInteger(?![ \t]*\S+)/,"number"],[/@numberFloat(?![ \t]*\S+)/,"number.float"],[/@numberOctal(?![ \t]*\S+)/,"number.octal"],[/@numberHex(?![ \t]*\S+)/,"number.hex"],[/@numberInfinity(?![ \t]*\S+)/,"number.infinity"],[/@numberNaN(?![ \t]*\S+)/,"number.nan"],[/@numberDate(?![ \t]*\S+)/,"number.date"],[/(".*?"|'.*?'|[^#'"]*?)([ \t]*)(:)( |$)/,["type","white","operators","white"]],{include:"@flowScalars"},[/.+?(?=(\s+#|$))/,{cases:{"@keywords":"keyword","@default":"string"}}]],object:[{include:"@whitespace"},{include:"@comment"},[/\}/,"@brackets","@pop"],[/,/,"delimiter.comma"],[/:(?= )/,"operators"],[/(?:".*?"|'.*?'|[^,\{\[]+?)(?=: )/,"type"],{include:"@flowCollections"},{include:"@flowScalars"},{include:"@tagHandle"},{include:"@anchor"},{include:"@flowNumber"},[/[^\},]+/,{cases:{"@keywords":"keyword","@default":"string"}}]],array:[{include:"@whitespace"},{include:"@comment"},[/\]/,"@brackets","@pop"],[/,/,"delimiter.comma"],{include:"@flowCollections"},{include:"@flowScalars"},{include:"@tagHandle"},{include:"@anchor"},{include:"@flowNumber"},[/[^\],]+/,{cases:{"@keywords":"keyword","@default":"string"}}]],multiString:[[/^( +).+$/,"string","@multiStringContinued.$1"]],multiStringContinued:[[/^( *).+$/,{cases:{"$1==$S2":"string","@default":{token:"@rematch",next:"@popall"}}}]],whitespace:[[/[ \t\r\n]+/,"white"]],comment:[[/#.*$/,"comment"]],flowCollections:[[/\[/,"@brackets","@array"],[/\{/,"@brackets","@object"]],flowScalars:[[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/'[^']*'/,"string"],[/"/,"string","@doubleQuotedString"]],doubleQuotedString:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],blockStyle:[[/[>|][0-9]*[+-]?$/,"operators","@multiString"]],flowNumber:[[/@numberInteger(?=[ \t]*[,\]\}])/,"number"],[/@numberFloat(?=[ \t]*[,\]\}])/,"number.float"],[/@numberOctal(?=[ \t]*[,\]\}])/,"number.octal"],[/@numberHex(?=[ \t]*[,\]\}])/,"number.hex"],[/@numberInfinity(?=[ \t]*[,\]\}])/,"number.infinity"],[/@numberNaN(?=[ \t]*[,\]\}])/,"number.nan"],[/@numberDate(?=[ \t]*[,\]\}])/,"number.date"]],tagHandle:[[/\![^ ]*/,"tag"]],anchor:[[/[&*][^ ]+/,"namespace"]]}};e.conf=t,e.language=o,Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})}));
package/package.json CHANGED
@@ -1,20 +1,21 @@
1
1
  {
2
2
  "name": "@aiti-ai/aiti-editor",
3
- "version": "1.0.9",
4
- "description": "文件编辑器 —— 接管 fileViewer 插槽的可扩展编辑器(Monaco 编辑文本类文件,非文本交回核心查看器)+ 保存冲突 409 与白名单/大小校验",
3
+ "version": "1.0.11",
4
+ "description": "Extensible editor — Monaco editing take over + save (mtime conflict 409 + whitelist/size checks) + archive extraction + unified image viewer (message images and file images unified, zoom · pinch · info panel)",
5
5
  "main": "index.ts",
6
6
  "scripts": {
7
7
  "build:client": "vite build --config vite.config.ts",
8
8
  "watch": "vite build --watch --config vite.config.ts",
9
9
  "deploy": "node tools/deploy.mjs",
10
- "check:vendor": "node tools/check-vendor-version.mjs"
10
+ "check:vendor": "node tools/check-vendor-version.mjs",
11
+ "prepack": "node tools/materialize-monaco.mjs"
11
12
  },
12
13
  "keywords": [],
13
14
  "author": "",
14
15
  "license": "ISC",
15
16
  "type": "commonjs",
16
17
  "dependencies": {
17
- "@aiti-ai/ext-shared": "^0.1.3",
18
+ "@aiti-ai/ext-shared": "^0.1.12",
18
19
  "exifr": "^7.1.3",
19
20
  "js-yaml": "^5.3.0",
20
21
  "sql-formatter": "^15.8.2",
@@ -34,7 +35,7 @@
34
35
  ]
35
36
  },
36
37
  "aitiExtProtocol": "1.0",
37
- "contentHash": "3dc3e76027cde196",
38
+ "contentHash": "cd83601e92278e4f",
38
39
  "repository": {
39
40
  "type": "git",
40
41
  "url": "git+https://github.com/aiti-ai/aiti-ai.git",
@@ -0,0 +1,126 @@
1
+ #!/usr/bin/env node
2
+ // materialize-monaco.mjs — materialize Monaco Editor AMD assets (min/vs) into the
3
+ // extension directory so the browser can actually fetch /assets/monaco/vs/loader.js.
4
+ //
5
+ // Why: monaco-editor is a devDependency used ONLY as an asset source (its min/vs AMD
6
+ // bundle is served verbatim by the host registry); it never enters client bundles.
7
+ // tools/deploy.mjs copies it at deploy time (syncMonaco), but other distribution
8
+ // channels ship the extension tree without extension node_modules — and therefore
9
+ // without the assets:
10
+ // - bundled inside the @aiti-ai/pi-web npm package (files excludes */node_modules)
11
+ // - the standalone @aiti-ai/aiti-editor npm package (extman registry installs)
12
+ // - docker build staging (rsync excludes node_modules; deploy-extensions.sh installs
13
+ // on demand, but a silently failed install ships a broken editor)
14
+ // Without the assets the editor 404s: "Monaco loader.js fetch fail".
15
+ //
16
+ // Wired as this extension's package.json `prepack` (self-contained npm package) and
17
+ // re-invoked by the root package's tools/materialize-ext-assets.mjs (bundled tree).
18
+ //
19
+ // Usage:
20
+ // node tools/materialize-monaco.mjs [extDir] # default: this extension's source dir
21
+ // # (pass the runtime dir to repair an
22
+ // # installed copy in place)
23
+ //
24
+ // Source resolution (first hit wins):
25
+ // 1. <extDir>/node_modules/monaco-editor/min/vs (dev install — same version as local deploys)
26
+ // 2. node_modules/monaco-editor/min/vs walking up from <extDir> (hoisted install)
27
+ // 3. npm pack monaco-editor@<devDependencies spec> → temp dir (CI trees, bare checkouts)
28
+ //
29
+ // Idempotency mirrors deploy.mjs syncMonaco: fingerprint = md5(min/vs/editor/editor.main.js)[0:8]
30
+ // stamped at <extDir>/monaco/.version; a matching stamp (plus loader.js present) skips the
31
+ // copy, so a later deploy.mjs syncMonaco run stays a no-op. Output is gitignored and
32
+ // regenerable.
33
+
34
+ import { createHash } from "node:crypto";
35
+ import { spawnSync } from "node:child_process";
36
+ import { closeSync, cpSync, existsSync, mkdirSync, openSync, readFileSync, readdirSync, rmSync, writeFileSync } from "node:fs";
37
+ import { dirname, join, resolve } from "node:path";
38
+ import { fileURLToPath } from "node:url";
39
+ import { tmpdir } from "node:os";
40
+
41
+ const scriptDir = dirname(fileURLToPath(import.meta.url));
42
+ const extSrc = resolve(scriptDir, "..");
43
+ const extDir = resolve(process.argv[2] || extSrc);
44
+ const MONACO_DEP = "monaco-editor";
45
+
46
+ function monacoSpec() {
47
+ try {
48
+ const pj = JSON.parse(readFileSync(join(extDir, "package.json"), "utf8"));
49
+ return pj.devDependencies?.[MONACO_DEP] || pj.dependencies?.[MONACO_DEP] || "latest";
50
+ } catch {
51
+ return "latest";
52
+ }
53
+ }
54
+
55
+ function findLocalVs(startDir) {
56
+ let cur = startDir;
57
+ for (;;) {
58
+ const cand = join(cur, "node_modules", MONACO_DEP, "min", "vs");
59
+ if (existsSync(join(cand, "loader.js"))) return cand;
60
+ const parent = dirname(cur);
61
+ if (parent === cur) return null;
62
+ cur = parent;
63
+ }
64
+ }
65
+
66
+ function vsFromNpmPack(spec) {
67
+ const tmp = join(tmpdir(), `aiti-monaco-${process.pid}-${Date.now()}`);
68
+ mkdirSync(tmp, { recursive: true });
69
+ // npm is npm.cmd on Windows; spawnSync without shell can't exec .cmd directly.
70
+ // args array (no shell) keeps "^" ranges safe on every platform.
71
+ // npm lifecycle context: flags of the parent npm command leak in as npm_config_* env
72
+ // (e.g. `npm pack --dry-run` sets npm_config_dry_run=true, which would dry-run our
73
+ // nested pack too — no tarball). Strip those and force the flag off explicitly.
74
+ const env = { ...process.env };
75
+ delete env.npm_config_dry_run;
76
+ delete env.npm_config_json;
77
+ const npmBin = process.platform === "win32" ? "npm.cmd" : "npm";
78
+ const pack = spawnSync(npmBin, ["pack", `${MONACO_DEP}@${spec}`, "--pack-destination", tmp, "--no-dry-run", "--loglevel=error"], { encoding: "utf8", env });
79
+ if (pack.status !== 0) throw new Error(`npm pack ${MONACO_DEP}@${spec} failed: ${(pack.stderr || pack.stdout || "").slice(-300)}`);
80
+ const tgz = readdirSync(tmp).find((f) => f.endsWith(".tgz"));
81
+ if (!tgz) throw new Error("npm pack produced no tarball");
82
+ // Relative archive name + cwd=tmp: GNU tar parses the drive colon in `-f C:\...`
83
+ // as a remote host ("Cannot connect to C:", lessons §3, 2026-11-11)
84
+ const x = spawnSync("tar", ["xzf", tgz, "-C", "."], { encoding: "utf8", cwd: tmp });
85
+ if (x.status !== 0) throw new Error(`tar extract failed: ${(x.stderr || "").slice(-200)}`);
86
+ const vs = join(tmp, "package", "min", "vs");
87
+ if (!existsSync(join(vs, "loader.js"))) throw new Error("monaco tarball has no min/vs/loader.js");
88
+ return { vs, cleanup: () => rmSync(tmp, { recursive: true, force: true }) };
89
+ }
90
+
91
+ function monacoFingerprint(vsDir) {
92
+ const f = join(vsDir, "editor", "editor.main.js");
93
+ if (!existsSync(f)) throw new Error("monaco min/vs incomplete (no editor/editor.main.js)");
94
+ return createHash("md5").update(readFileSync(f)).digest("hex").slice(0, 8);
95
+ }
96
+
97
+ let cleanup = null;
98
+ try {
99
+ let srcVs = findLocalVs(extDir);
100
+ if (!srcVs) {
101
+ const r = vsFromNpmPack(monacoSpec());
102
+ srcVs = r.vs;
103
+ cleanup = r.cleanup;
104
+ }
105
+ const fp = monacoFingerprint(srcVs);
106
+ const stampFile = join(extDir, "monaco", ".version");
107
+ const outVs = join(extDir, "monaco", "vs");
108
+ if (existsSync(stampFile) && readFileSync(stampFile, "utf8") === fp && existsSync(join(outVs, "loader.js"))) {
109
+ console.log(`[materialize-monaco] assets up to date (${fp}) → skip`);
110
+ } else {
111
+ // plain rm+cp: materialization runs at pack/build time, offline from page traffic —
112
+ // deploy.mjs's atomic-rename dance is only needed for live runtime dirs.
113
+ rmSync(outVs, { recursive: true, force: true });
114
+ mkdirSync(dirname(outVs), { recursive: true });
115
+ cpSync(srcVs, outVs, { recursive: true });
116
+ const fd = openSync(stampFile, "w");
117
+ writeFileSync(fd, fp);
118
+ closeSync(fd);
119
+ console.log(`[materialize-monaco] monaco/vs → ${outVs} (${fp}${srcVs.startsWith(tmpdir()) ? " · via npm pack" : ""})`);
120
+ }
121
+ } catch (e) {
122
+ console.error(`[materialize-monaco] FAILED: ${String(e?.message || e)}`);
123
+ process.exitCode = 1;
124
+ } finally {
125
+ try { cleanup?.(); } catch { /* ignore */ }
126
+ }