ttsc 0.31.1 → 0.31.2

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 (135) hide show
  1. package/lib/compiler/internal/build/BuildExecution.d.ts +4 -2
  2. package/lib/compiler/internal/build/BuildExecution.js +40 -12
  3. package/lib/compiler/internal/build/BuildExecution.js.map +1 -1
  4. package/lib/compiler/internal/startResidentTransform.js +5 -4
  5. package/lib/compiler/internal/startResidentTransform.js.map +1 -1
  6. package/lib/compiler/internal/transformProjectInMemory.js +9 -7
  7. package/lib/compiler/internal/transformProjectInMemory.js.map +1 -1
  8. package/lib/internal/javascriptRuntimeCapabilities.d.ts +13 -4
  9. package/lib/internal/javascriptRuntimeCapabilities.js +56 -6
  10. package/lib/internal/javascriptRuntimeCapabilities.js.map +1 -1
  11. package/lib/internal/pluginSource.d.ts +1 -0
  12. package/lib/internal/pluginSource.js +1 -0
  13. package/lib/internal/pluginSource.js.map +1 -1
  14. package/lib/internal/resolveNodeBinary.d.ts +6 -1
  15. package/lib/internal/resolveNodeBinary.js +6 -2
  16. package/lib/internal/resolveNodeBinary.js.map +1 -1
  17. package/lib/internal/runtimeExecutableIdentity.d.ts +22 -13
  18. package/lib/internal/runtimeExecutableIdentity.js +192 -102
  19. package/lib/internal/runtimeExecutableIdentity.js.map +1 -1
  20. package/lib/launcher/internal/runtime/installRuntimeHooks.js +58 -4
  21. package/lib/launcher/internal/runtime/installRuntimeHooks.js.map +1 -1
  22. package/lib/launcher/internal/ttscserver/captureLSPPluginSelectionInputs.d.ts +5 -1
  23. package/lib/launcher/internal/ttscserver/captureLSPPluginSelectionInputs.js +7 -2
  24. package/lib/launcher/internal/ttscserver/captureLSPPluginSelectionInputs.js.map +1 -1
  25. package/lib/launcher/internal/ttscserver/runTtscserver.js +8 -1
  26. package/lib/launcher/internal/ttscserver/runTtscserver.js.map +1 -1
  27. package/lib/plugin/internal/CapabilityResolutionFormat.d.ts +21 -62
  28. package/lib/plugin/internal/CapabilityResolutionFormat.js +15 -106
  29. package/lib/plugin/internal/CapabilityResolutionFormat.js.map +1 -1
  30. package/lib/plugin/internal/load/PluginDescriptorEvaluationCache.d.ts +6 -0
  31. package/lib/plugin/internal/load/PluginDescriptorEvaluationCache.js +4 -4
  32. package/lib/plugin/internal/load/PluginDescriptorEvaluationCache.js.map +1 -1
  33. package/lib/plugin/internal/load/loadProjectPlugins.d.ts +12 -1
  34. package/lib/plugin/internal/load/loadProjectPlugins.js +80 -20
  35. package/lib/plugin/internal/load/loadProjectPlugins.js.map +1 -1
  36. package/lib/plugin/internal/readCapabilityResolution.d.ts +6 -0
  37. package/lib/plugin/internal/readCapabilityResolution.js +8 -5
  38. package/lib/plugin/internal/readCapabilityResolution.js.map +1 -1
  39. package/lib/plugin/internal/source/GoEnvironmentReading.d.ts +9 -3
  40. package/lib/plugin/internal/source/GoEnvironmentReading.js +53 -7
  41. package/lib/plugin/internal/source/GoEnvironmentReading.js.map +1 -1
  42. package/lib/plugin/internal/source/NativeSourcePackages.d.ts +44 -6
  43. package/lib/plugin/internal/source/NativeSourcePackages.js +150 -8
  44. package/lib/plugin/internal/source/NativeSourcePackages.js.map +1 -1
  45. package/lib/plugin/internal/source/PluginBuildEnvironmentReadings.d.ts +21 -3
  46. package/lib/plugin/internal/source/PluginBuildEnvironmentReadings.js +32 -7
  47. package/lib/plugin/internal/source/PluginBuildEnvironmentReadings.js.map +1 -1
  48. package/lib/plugin/internal/source/PluginContentIdentities.d.ts +265 -0
  49. package/lib/plugin/internal/source/PluginContentIdentities.js +452 -0
  50. package/lib/plugin/internal/source/PluginContentIdentities.js.map +1 -0
  51. package/lib/plugin/internal/source/PluginLoadAnswers.d.ts +63 -0
  52. package/lib/plugin/internal/source/PluginLoadAnswers.js +128 -0
  53. package/lib/plugin/internal/source/PluginLoadAnswers.js.map +1 -0
  54. package/lib/plugin/internal/source/SourceBuildCacheLayout.d.ts +10 -0
  55. package/lib/plugin/internal/source/SourceBuildCacheLayout.js +12 -0
  56. package/lib/plugin/internal/source/SourceBuildCacheLayout.js.map +1 -1
  57. package/lib/plugin/internal/source/SourcePluginWorkspace.d.ts +5 -2
  58. package/lib/plugin/internal/source/SourcePluginWorkspace.js +5 -3
  59. package/lib/plugin/internal/source/SourcePluginWorkspace.js.map +1 -1
  60. package/lib/plugin/internal/source/buildSourcePlugin.d.ts +15 -2
  61. package/lib/plugin/internal/source/buildSourcePlugin.js +27 -4
  62. package/lib/plugin/internal/source/buildSourcePlugin.js.map +1 -1
  63. package/lib/plugin/internal/source/computeCacheKey.d.ts +21 -5
  64. package/lib/plugin/internal/source/computeCacheKey.js +71 -29
  65. package/lib/plugin/internal/source/computeCacheKey.js.map +1 -1
  66. package/lib/plugin/internal/source/hashPluginBuildEnvironment.d.ts +7 -3
  67. package/lib/plugin/internal/source/hashPluginBuildEnvironment.js +74 -35
  68. package/lib/plugin/internal/source/hashPluginBuildEnvironment.js.map +1 -1
  69. package/lib/plugin/internal/source/pluginBuildEnvironment.d.ts +8 -3
  70. package/lib/plugin/internal/source/pluginBuildEnvironment.js +8 -4
  71. package/lib/plugin/internal/source/pluginBuildEnvironment.js.map +1 -1
  72. package/lib/plugin/internal/source/pluginBuildEnvironmentWorker.js +12 -2
  73. package/lib/plugin/internal/source/pluginBuildEnvironmentWorker.js.map +1 -1
  74. package/lib/plugin/internal/source/pluginBuildVersions.d.ts +2 -2
  75. package/lib/plugin/internal/source/pluginBuildVersions.js +4 -17
  76. package/lib/plugin/internal/source/pluginBuildVersions.js.map +1 -1
  77. package/lib/plugin/internal/source/pluginSourceState.d.ts +6 -2
  78. package/lib/plugin/internal/source/pluginSourceState.js +20 -8
  79. package/lib/plugin/internal/source/pluginSourceState.js.map +1 -1
  80. package/lib/plugin/internal/source/pluginSourceStateHolds.d.ts +7 -2
  81. package/lib/plugin/internal/source/pluginSourceStateHolds.js +12 -7
  82. package/lib/plugin/internal/source/pluginSourceStateHolds.js.map +1 -1
  83. package/lib/plugin/internal/source/processPluginBuildEnvironment.d.ts +7 -2
  84. package/lib/plugin/internal/source/processPluginBuildEnvironment.js +8 -3
  85. package/lib/plugin/internal/source/processPluginBuildEnvironment.js.map +1 -1
  86. package/lib/plugin/internal/source/provenPluginSourceDigest.d.ts +28 -0
  87. package/lib/plugin/internal/source/provenPluginSourceDigest.js +41 -0
  88. package/lib/plugin/internal/source/provenPluginSourceDigest.js.map +1 -0
  89. package/lib/plugin/internal/source/pruneCacheFileRoot.d.ts +3 -2
  90. package/lib/plugin/internal/source/pruneCacheFileRoot.js +3 -2
  91. package/lib/plugin/internal/source/pruneCacheFileRoot.js.map +1 -1
  92. package/lib/plugin/internal/source/ttscPackageVersion.d.ts +26 -0
  93. package/lib/plugin/internal/source/ttscPackageVersion.js +47 -0
  94. package/lib/plugin/internal/source/ttscPackageVersion.js.map +1 -0
  95. package/lib/plugin/internal/writeCapabilityResolution.d.ts +6 -0
  96. package/lib/plugin/internal/writeCapabilityResolution.js +11 -7
  97. package/lib/plugin/internal/writeCapabilityResolution.js.map +1 -1
  98. package/lib/plugin/resolveCapabilityPlugins.js +67 -15
  99. package/lib/plugin/resolveCapabilityPlugins.js.map +1 -1
  100. package/package.json +8 -8
  101. package/src/compiler/internal/build/BuildExecution.ts +46 -13
  102. package/src/compiler/internal/startResidentTransform.ts +12 -3
  103. package/src/compiler/internal/transformProjectInMemory.ts +10 -2
  104. package/src/internal/javascriptRuntimeCapabilities.ts +71 -5
  105. package/src/internal/pluginSource.ts +1 -0
  106. package/src/internal/resolveNodeBinary.ts +12 -1
  107. package/src/internal/runtimeExecutableIdentity.ts +227 -141
  108. package/src/launcher/internal/runtime/installRuntimeHooks.ts +68 -3
  109. package/src/launcher/internal/ttscserver/captureLSPPluginSelectionInputs.ts +11 -2
  110. package/src/launcher/internal/ttscserver/runTtscserver.ts +18 -1
  111. package/src/plugin/internal/CapabilityResolutionFormat.ts +23 -107
  112. package/src/plugin/internal/load/PluginDescriptorEvaluationCache.ts +14 -4
  113. package/src/plugin/internal/load/loadProjectPlugins.ts +212 -94
  114. package/src/plugin/internal/readCapabilityResolution.ts +17 -6
  115. package/src/plugin/internal/source/GoEnvironmentReading.ts +74 -5
  116. package/src/plugin/internal/source/NativeSourcePackages.ts +262 -5
  117. package/src/plugin/internal/source/PluginBuildEnvironmentReadings.ts +41 -5
  118. package/src/plugin/internal/source/PluginContentIdentities.ts +563 -0
  119. package/src/plugin/internal/source/PluginLoadAnswers.ts +151 -0
  120. package/src/plugin/internal/source/SourceBuildCacheLayout.ts +14 -0
  121. package/src/plugin/internal/source/SourcePluginWorkspace.ts +6 -1
  122. package/src/plugin/internal/source/buildSourcePlugin.ts +43 -3
  123. package/src/plugin/internal/source/computeCacheKey.ts +103 -47
  124. package/src/plugin/internal/source/hashPluginBuildEnvironment.ts +144 -29
  125. package/src/plugin/internal/source/pluginBuildEnvironment.ts +9 -2
  126. package/src/plugin/internal/source/pluginBuildEnvironmentWorker.ts +18 -2
  127. package/src/plugin/internal/source/pluginBuildVersions.ts +5 -26
  128. package/src/plugin/internal/source/pluginSourceState.ts +28 -12
  129. package/src/plugin/internal/source/pluginSourceStateHolds.ts +15 -8
  130. package/src/plugin/internal/source/processPluginBuildEnvironment.ts +8 -2
  131. package/src/plugin/internal/source/provenPluginSourceDigest.ts +45 -0
  132. package/src/plugin/internal/source/pruneCacheFileRoot.ts +3 -2
  133. package/src/plugin/internal/source/ttscPackageVersion.ts +45 -0
  134. package/src/plugin/internal/writeCapabilityResolution.ts +29 -8
  135. package/src/plugin/resolveCapabilityPlugins.ts +87 -13
@@ -1 +1 @@
1
- {"version":3,"file":"hashPluginBuildEnvironment.js","sourceRoot":"","sources":["../../../../src/plugin/internal/source/hashPluginBuildEnvironment.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hashPluginBuildEnvironment.js","sourceRoot":"","sources":["../../../../src/plugin/internal/source/hashPluginBuildEnvironment.ts"],"names":[],"mappings":";;;;;;AAAA,8DAAiC;AACjC,sDAAyB;AACzB,0DAA6B;AAE7B,iEAA8D;AAC9D,qDAAkD;AAClD,yDAAsD;AACtD,mFAAgF;AAChF,uEAAoE;AAEpE,+CAA4C;AAE5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,oCACE,IAAuC,EACvC,QAA4B,EAC5B,SAAiB,EACjB,GAAsB,EACtB,UAA2C,EAC3C,OAA8C,EAC9C,UAA0C;IAE1C,4EAA4E;IAC5E,yEAAyE;IACzE,IAAI,CAAC,MAAM,CACT,IAAI,CAAC,SAAS,CAAC,CAAC,oBAAoB,EAAE,+BAAc,CAAC,WAAW,CAAC,CAAC,CACnE,CAAC;IACF,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,IAAI,CAAC,MAAM,CACT,IAAI,CAAC,SAAS,CAAC;YACb,IAAI;YACJ,yBAAyB,CACvB,QAAQ,EACR,GAAG,EACH,SAAS,EACT,OAAO,EACP,UAAU,CACX;SACF,CAAC,CACH,CAAC;IACJ,CAAC;IACD,sBAAsB,CACpB,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,GAAG,EACH,UAAU,EACV,OAAO,EACP,UAAU,CACX,CAAC;IACF,8BAA8B,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAC5C,CAAC;AAED,4EAA4E;AAC5E,2EAA2E;AAC3E,kEAAkE;AAClE,MAAM,iBAAiB,GAAsB;IAC3C,MAAM;IACN,QAAQ;IACR,SAAS;IACT,OAAO;IACP,SAAS;IACT,OAAO;IACP,QAAQ;IACR,UAAU;IACV,SAAS;IACT,WAAW;IACX,QAAQ;IACR,SAAS;IACT,cAAc;IACd,WAAW;IACX,oBAAoB;IACpB,OAAO;IACP,cAAc;IACd,aAAa;IACb,IAAI;IACJ,IAAI;IACJ,KAAK;IACL,IAAI;IACJ,YAAY;IACZ,YAAY;IACZ,kBAAkB;IAClB,qBAAqB;IACrB,cAAc;IACd,oBAAoB;IACpB,uBAAuB;IACvB,cAAc;IACd,oBAAoB;IACpB,uBAAuB;IACvB,YAAY;IACZ,kBAAkB;IAClB,qBAAqB;IACrB,aAAa;IACb,mBAAmB;IACnB,sBAAsB;IACtB,aAAa;IACb,QAAQ;CACT,CAAC;AAEF,MAAM,yBAAyB,GAAG,IAAI,GAAG,CAAC;IACxC,IAAI;IACJ,IAAI;IACJ,KAAK;IACL,IAAI;IACJ,OAAO;IACP,YAAY;CACb,CAAC,CAAC;AAEH,MAAM,0BAA0B,GAAsB;IACpD,OAAO;IACP,gBAAgB;IAChB,oBAAoB;IACpB,mBAAmB;IACnB,SAAS;IACT,iBAAiB;IACjB,KAAK;IACL,cAAc;IACd,SAAS;IACT,0BAA0B;IAC1B,mBAAmB;IACnB,gCAAgC;IAChC,8BAA8B;IAC9B,mBAAmB;IACnB,iBAAiB;IACjB,wBAAwB;IACxB,0BAA0B;IAC1B,SAAS;CACV,CAAC;AAEF,6EAA6E;AAC7E,4EAA4E;AAC5E,yEAAyE;AACzE,6EAA6E;AAC7E,qEAAqE;AACrE,0EAA0E;AAC1E,6EAA6E;AAC7E,8EAA8E;AAC9E,yEAAyE;AACzE,6DAA6D;AAC7D,oEAAoE;AACpE,8EAA8E;AAC9E,4EAA4E;AAC5E,0DAA0D;AAC1D,MAAM,uBAAuB,GAAG,IAAI,GAAG,EAAkB,CAAC;AAE1D,SAAS,yBAAyB,CAChC,QAAgB,EAChB,GAAG,GAAsB,OAAO,CAAC,GAAG,EACpC,GAAG,GAAW,OAAO,CAAC,GAAG,EAAE,EAC3B,OAA8C,EAC9C,UAA0C;IAE1C,MAAM,QAAQ,GAAG,mCAAgB,CAAC,qBAAqB,CACrD,QAAQ,EACR,GAAG,EACH,GAAG,EACH,OAAO,CACR,CAAC;IACF,MAAM,QAAQ,GACZ,OAAO,CAAC,QAAQ,KAAK,OAAO;QAC1B,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC;QAC3B,CAAC,CAAC,6BAA6B,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG,+BAAc,CAAC,UAAU,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;IACxE,MAAM,gBAAgB,GAAyC,IAAI,GAAG,EAAE,CAAC;IACzE,6DAA6B,CAAC,GAAG,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;IAC9D,MAAM,YAAY,GAAG,yBAAyB,CAC5C,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,GAAG,CACJ,CAAC;IACF,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,uBAAuB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACzD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,KAAK,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,gBAAgB;gBAC9C,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;oBAC7C,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YACjC,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;IACD,yEAAyE;IACzE,6EAA6E;IAC7E,uEAAuE;IACvE,yEAAyE;IACzE,wEAAwE;IACxE,IAAI,QAAQ,GAAG,SAAS,CAAC;IACzB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC;QAChD,MAAM,QAAQ,GAAyC,IAAI,GAAG,EAAE,CAAC;QACjE,6DAA6B,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,yBAAyB,CACvC,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,GAAG,CACJ,CAAC;QACF,QAAQ,GAAG,yBAAyB,CAClC,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,GAAG,EACH,UAAU,CACX,CAAC;QACF,IAAI,CAAC,6DAA6B,CAAC,KAAK,CAAC,QAAQ,CAAC;YAAE,SAAS;QAC7D,KAAK,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,QAAQ;YACtC,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;gBAC7C,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACjC,IAAI,OAAO,KAAK,IAAI;YAAE,uBAAuB,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACrE,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,6DAA6B,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACxD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,+EAA+E;AAC/E,6EAA6E;AAC7E,wBAAwB;AACxB,SAAS,yBAAyB,CAChC,QAAgB,EAChB,QAAgB,EAChB,GAAsB,EACtB,GAAW;IAEX,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,iBAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,qBAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC5C,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACpB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CACtE,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAC3C,EAAE,CAAC;YACF,IAAI,KAAK,KAAK,SAAS;gBAAE,SAAS;YAClC,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,MAAM,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC,CAAC;QACnE,CAAC;QACD,OAAO;YACL,QAAQ;YACR,QAAQ;YACR,IAAI,CAAC,GAAG;YACR,IAAI,CAAC,GAAG;YACR,IAAI,CAAC,IAAI;YACT,IAAI,CAAC,IAAI;YACT,IAAI,CAAC,OAAO;YACZ,IAAI,CAAC,OAAO;YACZ,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;SACtB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,yBAAyB,CAChC,QAAgB,EAChB,QAAgB,EAChB,GAAsB,EACtB,GAAW,EACX,UAAqD;IAErD,IAAI,CAAC,iBAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,4EAA4E;IAC5E,2EAA2E;IAC3E,MAAM,OAAO,GAAG,IAAA,yBAAW,EAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE;QACjD,GAAG;QACH,QAAQ,EAAE,MAAM;QAChB,GAAG;QACH,WAAW,EAAE,IAAI;KAClB,CAAC,CAAC;IACH,MAAM,WAAW,GACf,OAAO,CAAC,KAAK,KAAK,SAAS;QACzB,CAAC,CAAC,CAAE,OAAO,CAAC,KAA+B,CAAC,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;QAC1E,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAClE,MAAM,UAAU,GAAG,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACxD,OAAO,UAAU,UAAU,IAAI,WAAW,EAAE,CAAC;AAC/C,CAAC;AAED;;;GAGG;AACH,SAAS,cAAc,CACrB,IAAY,EACZ,UAAqD;IAErD,OAAO,iDAAuB,CAAC,MAAM,CACnC,UAAU,EACV,YAAY,EACZ,IAAI,EACJ,CAAC,UAAU,EAAE,EAAE,CAAC,iDAAuB,CAAC,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,EACzE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CACrB,CAAC;AACJ,CAAC;AAED,SAAS,6BAA6B,CACpC,MAAc,EACd,GAAG,GAAsB,OAAO,CAAC,GAAG,EACpC,GAAG,GAAW,OAAO,CAAC,GAAG,EAAE,EAC3B,OAA8C;IAE9C,MAAM,QAAQ,GAAG,kBAAkB,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IAC/D,OAAO,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,kBAAkB,CACzB,MAAc,EACd,GAAsB,EACtB,GAAW,EACX,OAA8C;IAE9C,KAAK,MAAM,SAAS,IAAI,mCAAgB,CAAC,qBAAqB,CAC5D,MAAM,EACN,GAAG,EACH,GAAG,EACH,OAAO,CACR,EAAE,CAAC;QACF,MAAM,QAAQ,GAAG,uBAAuB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QACzD,IAAI,QAAQ,KAAK,IAAI;YAAE,OAAO,QAAQ,CAAC;IACzC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,uBAAuB,CAC9B,SAAiB,EACjB,GAAsB;IAEtB,IAAI,mCAAgB,CAAC,gBAAgB,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC;IACnE,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC;IAC9C,4EAA4E;IAC5E,6EAA6E;IAC7E,4EAA4E;IAC5E,4BAA4B;IAC5B,KAAK,MAAM,GAAG,IAAI,mCAAgB,CAAC,2BAA2B,CAAC,GAAG,CAAC,EAAE,CAAC;QACpE,MAAM,UAAU,GAAG,GAAG,SAAS,GAAG,GAAG,EAAE,CAAC;QACxC,IAAI,mCAAgB,CAAC,gBAAgB,CAAC,UAAU,CAAC;YAAE,OAAO,UAAU,CAAC;IACvE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,eAAe,CAAC,QAAgB;IACvC,IAAI,CAAC;QACH,OAAO,iBAAE,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY;IAC5B,MAAM,IAAI,GAAG,qBAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACzC,IAAI,CAAC,MAAM,CAAC,iBAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;IACnC,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,sBAAsB,CAC7B,IAAuC,EACvC,QAA4B,EAC5B,GAAW,EACX,GAAsB,EACtB,UAA2C,EAC3C,OAAyD,EACzD,UAAqD;IAErD,MAAM,MAAM,GAAG,yBAAyB,CACtC,QAAQ,EACR,GAAG,EACH,GAAG,EACH,UAAU,EACV,OAAO,EACP,UAAU,CACX,CAAC;IACF,KAAK,MAAM,GAAG,IAAI,iBAAiB,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;YACxC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,yBAAyB,CAChC,QAA4B,EAC5B,GAAW,EACX,GAAsB,EACtB,UAA2C,EAC3C,OAAyD,EACzD,UAAqD;IAErD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,2CAAoB,CAAC,IAAI,CACtC,QAAQ,EACR,GAAG,EACH,GAAG,EACH,iBAAiB,EACjB,OAAO,EACP,UAAU,CACX,CAAC;QACF,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,IAAI,CAAC;gBACH,KAAK,MAAM,GAAG,IAAI,iBAAiB,EAAE,CAAC;oBACpC,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;oBACxB,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;wBAC1C,MAAM,CAAC,GAAG,CACR,GAAG,EACH,wBAAwB,CACtB,GAAG,EACH,GAAG,EACH,GAAG,EACH,UAAU,EACV,OAAO,EACP,UAAU,CACX,CACF,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,oEAAoE;gBACpE,mEAAmE;YACrE,CAAC;QACH,CAAC;IACH,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,iBAAiB,EAAE,CAAC;QACpC,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QAC9B,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;YACxC,MAAM,CAAC,GAAG,CACR,GAAG,EACH,wBAAwB,CACtB,GAAG,EACH,KAAK,EACL,GAAG,EACH,UAAU,EACV,OAAO,EACP,UAAU,CACX,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,wBAAwB,CAC/B,GAAW,EACX,KAAa,EACb,GAAsB,EACtB,UAA2C,EAC3C,OAAyD,EACzD,UAAqD;IAErD,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;QACrB,uEAAuE;QACvE,yEAAyE;QACzE,wEAAwE;QACxE,6DAA6B,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAClD,6DAA6B,CAAC,GAAG,CAAC,OAAO,EAAE,mBAAI,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;QACxE,OAAO,0BAA0B,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;IAC5E,CAAC;IACD,IAAI,yBAAyB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QACvC,OAAO,GAAG,KAAK,KAAK,2BAA2B,CAC7C,KAAK,EACL,GAAG,EACH,OAAO,EACP,UAAU,CACX,EAAE,CAAC;IACN,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,2BAA2B,CAClC,OAAe,EACf,GAAsB,EACtB,OAAyD,EACzD,UAAqD;IAErD,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IACvC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,OAAO,wBAAwB,OAAO,EAAE,CAAC;IAC3C,CAAC;IACD,MAAM,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC;IACrC,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,eAAe,CAAC;IACzB,CAAC;IACD,MAAM,QAAQ,GAAG,6BAA6B,CAC5C,UAAU,EACV,GAAG,EACH,OAAO,CAAC,GAAG,EAAE,EACb,OAAO,CACR,CAAC;IACF,6DAA6B,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACrD,IAAI,CAAC,iBAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,OAAO,mBAAmB,UAAU,EAAE,CAAC;IACzC,CAAC;IACD,IAAI,QAAgB,CAAC;IACrB,IAAI,CAAC;QACH,QAAQ,GAAG,kBAAkB,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,CAAC;IACtE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,sBAAsB,QAAQ,EAAE,CAAC;IAC1C,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QAC1B,MAAM,OAAO,GAAG,6BAA6B,CAC3C,GAAG,EACH,GAAG,EACH,OAAO,CAAC,GAAG,EAAE,EACb,OAAO,CACR,CAAC;QACF,IAAI,CAAC,mCAAgB,CAAC,gBAAgB,CAAC,OAAO,CAAC;YAAE,OAAO;QACxD,6DAA6B,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACpD,IAAI,CAAC;YACH,QAAQ,IAAI,IAAI,KAAK,GAAG,CAAC,WAAW,cAAc,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,CAAC;QAC5E,CAAC;QAAC,MAAM,CAAC;YACP,QAAQ,IAAI,IAAI,KAAK,GAAG,CAAC,eAAe,OAAO,EAAE,CAAC;QACpD,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;GAKG;AACH,SAAS,cAAc,CAAC,OAAe;IACrC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,IAAI,GAAG,OAAO,CAAC;IACnB,MAAM,KAAK,GAAG,CAAC,IAAwB,EAAW,EAAE,CAClD,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC;IAClE,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,OAAO,KAAK,GAAG,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAAE,KAAK,IAAI,CAAC,CAAC;QAC7D,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACzB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YACnC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACnC,IAAI,GAAG,KAAK,CAAC,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YAChC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;YAC3B,SAAS;QACX,CAAC;QACD,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,OAAO,GAAG,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAAE,GAAG,IAAI,CAAC,CAAC;QACxD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QAChC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,8BAA8B,CACrC,IAAuC,EACvC,GAAsB;IAEtB,KAAK,MAAM,GAAG,IAAI,0BAA0B,EAAE,CAAC;QAC7C,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;YACxC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;AACH,CAAC;AAiBD,+EAA+E;AAC/E,oDAAoD;AACpD,2EAA2E;AAC3E,8EAA8E;AAC9E,qBAAqB;AACrB,EAAE;AACF,4EAA4E;AAC5E,gFAAgF;AAChF,8EAA8E;AAC9E,8EAA8E;AAC9E,sBAAsB;AACtB,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAoC,CAAC;AAExE,SAAS,0BAA0B,CACjC,MAAc,EACd,UAA2C,EAC3C,OAAyD,EACzD,UAAqD;IAErD,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACzC,IAAI,CAAC,iBAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,OAAO,WAAW,MAAM,EAAE,CAAC;IAC7B,CAAC;IACD,MAAM,QAAQ,GAAG,6BAA6B,CAC5C,QAAQ,EACR,OAAO,EACP,UAAU,EAAE,UAAU,CACvB,CAAC;IACF,IAAI,CAAC,QAAQ,CAAC,QAAQ;QACpB,6DAA6B,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC1D,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACjD,IAAI,MAAM,EAAE,SAAS,KAAK,QAAQ,CAAC,SAAS,EAAE,CAAC;YAC7C,OAAO,MAAM,CAAC,QAAQ,CAAC;QACzB,CAAC;IACH,CAAC;IACD,4EAA4E;IAC5E,mEAAmE;IACnE,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,MAAM,QAAQ,GAAG,iDAAuB,CAAC,MAAM,CAC7C,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,EAC1C,QAAQ,EACR,QAAQ,EACR,CAAC,UAAU,EAAE,EAAE;QACb,MAAM,OAAO,GACX,QAAQ,EAAE,KAAK,CAAC;YACd,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,6BAA6B,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;QACrE,OAAO,OAAO,CAAC,QAAQ;YACrB,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE;YAChE,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC,EACD,GAAG,EAAE;QACH,MAAM,IAAI,GAAG,qBAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC/C,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YAClC,MAAM,QAAQ,GAAG,mBAAI;iBAClB,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC;iBACxB,KAAK,CAAC,mBAAI,CAAC,GAAG,CAAC;iBACf,IAAI,CAAC,GAAG,CAAC,CAAC;YACb,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC3C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACzD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACxB,CAAC;QACD,OAAO,UAAU,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;IACxC,CAAC,CACF,CAAC;IACF,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACtB,mBAAmB,CAAC,GAAG,CAAC,QAAQ,EAAE;YAChC,QAAQ;YACR,SAAS,EAAE,QAAQ,CAAC,SAAS;SAC9B,CAAC,CAAC;IACL,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,6BAA6B,CACpC,IAAY,EACZ,OAA8C,EAC9C,UAAwC;IAExC,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,MAAM,KAAK,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,KAAK,SAAS,EAAE,CAAC;IACtE,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,kBAAkB,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACxD,GAAG,CAAC,IAAI,EAAE,CAAC;IACX,MAAM,SAAS,GAAG,qBAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC9C,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3C,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAG,mBAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,mBAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrE,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,iBAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YAClD,6DAA6B,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YACxD,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;gBACpB,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACvB,SAAS;YACX,CAAC;YACD,IACE,UAAU,KAAK,SAAS;gBACxB,CAAC,iDAAuB,CAAC,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC;gBAErD,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;YAC1B,SAAS,CAAC,MAAM,CACd;gBACE,QAAQ;gBACR,KAAK,CAAC,GAAG;gBACT,KAAK,CAAC,GAAG;gBACT,KAAK,CAAC,IAAI;gBACV,KAAK,CAAC,IAAI;gBACV,KAAK,CAAC,OAAO;gBACb,KAAK,CAAC,OAAO;aACd,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;YACF,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;QAAC,MAAM,CAAC;YACP,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC;QACzB,CAAC;IACH,CAAC;IACD,OAAO;QACL,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,KAAK,EAAE,GAAG;QACV,QAAQ;QACR,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;QAClC,SAAS,EAAE,KAAK,CAAC,SAAS;KAC3B,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CACzB,IAAY,EACZ,GAAa,EACb,QAAkB,EAClB,KAA4B,EAC5B,OAA8C;IAE9C,8EAA8E;IAC9E,0EAA0E;IAC1E,uEAAuE;IACvE,wEAAwE;IACxE,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC;IACvB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAG,CAAC;QAC3B,MAAM,QAAQ,GAAG,mBAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,mBAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpE,6DAA6B,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAChD,IAAI,OAAoB,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,iBAAE,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7C,MAAM,MAAM,GAAG,mBAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,mBAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACvE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;YAClD,oEAAoE;YACpE,yEAAyE;YACzE,yEAAyE;YACzE,MAAM,MAAM,GAAG,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC;YAC7D,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;YAC/C,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,SAAS;YAC/B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACjB,OAAO,GAAG,iBAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YACvD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3E,CAAC;QAAC,MAAM,CAAC;YACP,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC;YACvB,SAAS;QACX,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,mBAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACxC,MAAM,GAAG,GAAG,mBAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,mBAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAChE,IAAI,SAAS,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YACpC,IAAI,OAAO,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YAC7B,IAAI,KAAK,CAAC,cAAc,EAAE,EAAE,CAAC;gBAC3B,IACE,CAAC,oBAAoB,CAAC,GAAG,EAAE,IAAI,CAAC;oBAChC,CAAC,oBAAoB,CAAC,GAAG,EAAE,KAAK,CAAC;oBAEjC,SAAS;gBACX,6DAA6B,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBACrD,6DAA6B,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBACjD,IAAI,CAAC;oBACH,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,iBAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;oBACpE,MAAM,KAAK,GAAG,iBAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;oBAClD,SAAS,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;oBAChC,OAAO,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;oBACzB,QAAQ,CAAC,IAAI,CACX,IAAI,CAAC,SAAS,CAAC;wBACb,GAAG;wBACH,mBAAI;6BACD,QAAQ,CAAC,IAAI,EAAE,iBAAE,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;6BAC5C,KAAK,CAAC,mBAAI,CAAC,GAAG,CAAC;6BACf,IAAI,CAAC,GAAG,CAAC;qBACb,CAAC,CACH,CAAC;gBACJ,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,IAAI,GAAI,KAA+B,CAAC,IAAI,CAAC;oBACnD,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS;wBAAE,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC;yBAC/D,CAAC;wBACJ,kEAAkE;wBAClE,+DAA+D;wBAC/D,+DAA+D;wBAC/D,2DAA2D;wBAC3D,IAAI,CAAC;4BACH,IAAI,CAAC,iBAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE;gCAAE,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC;;gCAC5D,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;wBAC9D,CAAC;wBAAC,MAAM,CAAC;4BACP,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC;wBACzB,CAAC;oBACH,CAAC;oBACD,SAAS;gBACX,CAAC;YACH,CAAC;YACD,IAAI,SAAS,IAAI,oBAAoB,CAAC,GAAG,EAAE,IAAI,CAAC;gBAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBAChE,IAAI,OAAO,IAAI,oBAAoB,CAAC,GAAG,EAAE,KAAK,CAAC;gBAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,GAAW,EAAE,KAAc;IACvD,IAAI,GAAG,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IAC5B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;IACxB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,IAAI,KAAK;YAAE,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC/D,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACtD,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { PluginBuildEnvironmentWitness } from "./PluginBuildEnvironmentWitness";
2
+ import type { PluginContentIdentities } from "./PluginContentIdentities";
2
3
  /**
3
4
  * The digest of the environment a plugin build in `directory` is keyed on: the
4
5
  * Go compiler the build resolves there, the Go build environment `go env`
@@ -12,12 +13,16 @@ import type { PluginBuildEnvironmentWitness } from "./PluginBuildEnvironmentWitn
12
13
  * GOROOT metadata. Witnessing a newly selected environment file can repeat the
13
14
  * probe to observe it before reading. Compiler identity reuses a
14
15
  * metadata-and-context memo; a changed SDK manifest rehashes all contributing
15
- * content rather than only edited files.
16
+ * content rather than only edited files. A supplied record store lets a new
17
+ * process take the SDK and executable digests from records instead of their
18
+ * bytes, while `go env` and `go version` still run.
16
19
  *
17
20
  * @param directory The directory a build runs `go` in.
18
21
  * @param env The effective environment, `process.env` by default.
19
22
  * @param witness Receives the paths the reading depends on and no variable
20
23
  * carries (`hashPluginBuildEnvironment`).
24
+ * @param identities Record store that lets a new process prove the SDK and
25
+ * executables from metadata (#1722).
21
26
  * @evidence contracts/common.md#principled-implementation The digest uses the same resolved compiler and environment serializer as the binary key, so reported toolchain state denotes the inputs actually used by the build.
22
27
  * @evidence contracts/common.md#clear-and-simple-design Compiler selection, executable resolution and hashing each stay with their owning helper; this function only composes one environment reading.
23
28
  * @evidence contracts/common.md#prohibited-implementation-shortcuts The result comes from real Go/environment inputs, not a fixed compiler version or a caller-specific substitute.
@@ -25,7 +30,7 @@ import type { PluginBuildEnvironmentWitness } from "./PluginBuildEnvironmentWitn
25
30
  * @evidence contracts/portability.md#os-neutral-implementation Executable identity is resolved before probing, and Node filesystem/process boundaries implement native spelling rather than assuming Windows or POSIX paths are interchangeable.
26
31
  * @evidence contracts/performance.md#efficient-algorithms The wrapper resolves the compiler/tool under the supplied environment before delegating full environment hashing. Native resolution/probes, SDK metadata/name/path sorting and changed-manifest full content reads contribute cost; the final hash output is fixed-width but streamed identity/input text and full-file buffers are not. No independent duplicate source-directory digest scan is added here.
27
32
  *
28
- * @evidenceExclude contracts/performance.md#reuse-equivalent-work This is the fresh-reading boundary required by builds; processPluginBuildEnvironment owns reuse when a consumer permits it.
33
+ * @evidence contracts/performance.md#reuse-equivalent-work This is the fresh-reading boundary required by builds: the Go probes run on every call. Content digests of the SDK and executables are shared across processes only through the supplied record store's separable-signature proof; processPluginBuildEnvironment owns reuse of the whole reading when a consumer permits it.
29
34
  * @evidenceExclude contracts/performance.md#bound-retention-and-release-resources Its digest and filesystem adapter are call-local; retained compiler/content memo ownership belongs to the hasher.
30
35
  */
31
- export declare function pluginBuildEnvironment(directory: string, env?: NodeJS.ProcessEnv, witness?: PluginBuildEnvironmentWitness.Record): string;
36
+ export declare function pluginBuildEnvironment(directory: string, env?: NodeJS.ProcessEnv, witness?: PluginBuildEnvironmentWitness.Record, identities?: PluginContentIdentities.Store): string;
@@ -22,12 +22,16 @@ const resolveGoCompiler_1 = require("./resolveGoCompiler");
22
22
  * GOROOT metadata. Witnessing a newly selected environment file can repeat the
23
23
  * probe to observe it before reading. Compiler identity reuses a
24
24
  * metadata-and-context memo; a changed SDK manifest rehashes all contributing
25
- * content rather than only edited files.
25
+ * content rather than only edited files. A supplied record store lets a new
26
+ * process take the SDK and executable digests from records instead of their
27
+ * bytes, while `go env` and `go version` still run.
26
28
  *
27
29
  * @param directory The directory a build runs `go` in.
28
30
  * @param env The effective environment, `process.env` by default.
29
31
  * @param witness Receives the paths the reading depends on and no variable
30
32
  * carries (`hashPluginBuildEnvironment`).
33
+ * @param identities Record store that lets a new process prove the SDK and
34
+ * executables from metadata (#1722).
31
35
  * @evidence contracts/common.md#principled-implementation The digest uses the same resolved compiler and environment serializer as the binary key, so reported toolchain state denotes the inputs actually used by the build.
32
36
  * @evidence contracts/common.md#clear-and-simple-design Compiler selection, executable resolution and hashing each stay with their owning helper; this function only composes one environment reading.
33
37
  * @evidence contracts/common.md#prohibited-implementation-shortcuts The result comes from real Go/environment inputs, not a fixed compiler version or a caller-specific substitute.
@@ -35,13 +39,13 @@ const resolveGoCompiler_1 = require("./resolveGoCompiler");
35
39
  * @evidence contracts/portability.md#os-neutral-implementation Executable identity is resolved before probing, and Node filesystem/process boundaries implement native spelling rather than assuming Windows or POSIX paths are interchangeable.
36
40
  * @evidence contracts/performance.md#efficient-algorithms The wrapper resolves the compiler/tool under the supplied environment before delegating full environment hashing. Native resolution/probes, SDK metadata/name/path sorting and changed-manifest full content reads contribute cost; the final hash output is fixed-width but streamed identity/input text and full-file buffers are not. No independent duplicate source-directory digest scan is added here.
37
41
  *
38
- * @evidenceExclude contracts/performance.md#reuse-equivalent-work This is the fresh-reading boundary required by builds; processPluginBuildEnvironment owns reuse when a consumer permits it.
42
+ * @evidence contracts/performance.md#reuse-equivalent-work This is the fresh-reading boundary required by builds: the Go probes run on every call. Content digests of the SDK and executables are shared across processes only through the supplied record store's separable-signature proof; processPluginBuildEnvironment owns reuse of the whole reading when a consumer permits it.
39
43
  * @evidenceExclude contracts/performance.md#bound-retention-and-release-resources Its digest and filesystem adapter are call-local; retained compiler/content memo ownership belongs to the hasher.
40
44
  */
41
- function pluginBuildEnvironment(directory, env = process.env, witness) {
45
+ function pluginBuildEnvironment(directory, env = process.env, witness, identities) {
42
46
  const goBinary = GoToolResolution_1.GoToolResolution.resolveGoToolForBuild((0, resolveGoCompiler_1.resolveGoCompiler)(env).binary, env, directory, witness);
43
47
  const hash = node_crypto_1.default.createHash("sha256");
44
- (0, hashPluginBuildEnvironment_1.hashPluginBuildEnvironment)(hash, goBinary, directory, env, { readFile: (location) => node_fs_1.default.readFileSync(location) }, witness);
48
+ (0, hashPluginBuildEnvironment_1.hashPluginBuildEnvironment)(hash, goBinary, directory, env, { readFile: (location) => node_fs_1.default.readFileSync(location) }, witness, identities);
45
49
  return hash.digest("hex");
46
50
  }
47
51
  //# sourceMappingURL=pluginBuildEnvironment.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pluginBuildEnvironment.js","sourceRoot":"","sources":["../../../../src/plugin/internal/source/pluginBuildEnvironment.ts"],"names":[],"mappings":";;;;;;AAAA,8DAAiC;AACjC,sDAAyB;AAEzB,yDAAsD;AAEtD,6EAA0E;AAC1E,2DAAwD;AAExD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,gCACE,SAAiB,EACjB,GAAG,GAAsB,OAAO,CAAC,GAAG,EACpC,OAA8C;IAE9C,MAAM,QAAQ,GAAG,mCAAgB,CAAC,qBAAqB,CACrD,IAAA,qCAAiB,EAAC,GAAG,CAAC,CAAC,MAAM,EAC7B,GAAG,EACH,SAAS,EACT,OAAO,CACR,CAAC;IACF,MAAM,IAAI,GAAG,qBAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACzC,IAAA,uDAA0B,EACxB,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,GAAG,EACH,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,iBAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,EACrD,OAAO,CACR,CAAC;IACF,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5B,CAAC"}
1
+ {"version":3,"file":"pluginBuildEnvironment.js","sourceRoot":"","sources":["../../../../src/plugin/internal/source/pluginBuildEnvironment.ts"],"names":[],"mappings":";;;;;;AAAA,8DAAiC;AACjC,sDAAyB;AAEzB,yDAAsD;AAGtD,6EAA0E;AAC1E,2DAAwD;AAExD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,gCACE,SAAiB,EACjB,GAAG,GAAsB,OAAO,CAAC,GAAG,EACpC,OAA8C,EAC9C,UAA0C;IAE1C,MAAM,QAAQ,GAAG,mCAAgB,CAAC,qBAAqB,CACrD,IAAA,qCAAiB,EAAC,GAAG,CAAC,CAAC,MAAM,EAC7B,GAAG,EACH,SAAS,EACT,OAAO,CACR,CAAC;IACF,MAAM,IAAI,GAAG,qBAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACzC,IAAA,uDAA0B,EACxB,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,GAAG,EACH,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,iBAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,EACrD,OAAO,EACP,UAAU,CACX,CAAC;IACF,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5B,CAAC"}
@@ -2,18 +2,28 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const node_worker_threads_1 = require("node:worker_threads");
4
4
  const serializeCompilerError_1 = require("../../../internal/serializeCompilerError");
5
+ const PluginContentIdentities_1 = require("./PluginContentIdentities");
5
6
  const pluginBuildEnvironment_1 = require("./pluginBuildEnvironment");
6
7
  /**
7
8
  * Observe one requested native toolchain environment on the exclusive worker.
8
9
  * Explicit environment values reach every Go/toolchain reader; no caller
9
10
  * process globals are written. Only actual readings and pre-read witnesses
10
- * cross the worker boundary, and failures retain their real error details.
11
+ * cross the worker boundary, and failures retain their real error details. A
12
+ * request that names its project lets this isolate prove the SDK and the
13
+ * executables from the plugin cache's records instead of their bytes (#1722).
11
14
  */
12
15
  node_worker_threads_1.parentPort?.on("message", (request) => {
13
16
  try {
14
17
  const witness = new Map();
18
+ const identities = request.projectRoot === undefined
19
+ ? undefined
20
+ : PluginContentIdentities_1.PluginContentIdentities.open({
21
+ projectRoot: request.projectRoot,
22
+ env: request.env,
23
+ sources: [request.directory],
24
+ });
15
25
  node_worker_threads_1.parentPort.postMessage({
16
- environment: (0, pluginBuildEnvironment_1.pluginBuildEnvironment)(request.directory, request.env, witness),
26
+ environment: (0, pluginBuildEnvironment_1.pluginBuildEnvironment)(request.directory, request.env, witness, identities),
17
27
  witness,
18
28
  });
19
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pluginBuildEnvironmentWorker.js","sourceRoot":"","sources":["../../../../src/plugin/internal/source/pluginBuildEnvironmentWorker.ts"],"names":[],"mappings":";;AAAA,6DAAiD;AAEjD,qFAAkF;AAElF,qEAAkE;AAElE;;;;;GAKG;AACH,gCAAU,EAAE,EAAE,CACZ,SAAS,EACT,CAAC,OAAsD,EAAE,EAAE;IACzD,IAAI,CAAC;QACH,MAAM,OAAO,GAAyC,IAAI,GAAG,EAAE,CAAC;QAChE,gCAAW,CAAC,WAAW,CAAC;YACtB,WAAW,EAAE,IAAA,+CAAsB,EACjC,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,GAAG,EACX,OAAO,CACR;YACD,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,gCAAW,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,IAAA,+CAAsB,EAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACrE,CAAC;AACH,CAAC,CACF,CAAC"}
1
+ {"version":3,"file":"pluginBuildEnvironmentWorker.js","sourceRoot":"","sources":["../../../../src/plugin/internal/source/pluginBuildEnvironmentWorker.ts"],"names":[],"mappings":";;AAAA,6DAAiD;AAEjD,qFAAkF;AAElF,uEAAoE;AACpE,qEAAkE;AAElE;;;;;;;GAOG;AACH,gCAAU,EAAE,EAAE,CACZ,SAAS,EACT,CAAC,OAIA,EAAE,EAAE;IACH,IAAI,CAAC;QACH,MAAM,OAAO,GAAyC,IAAI,GAAG,EAAE,CAAC;QAChE,MAAM,UAAU,GACd,OAAO,CAAC,WAAW,KAAK,SAAS;YAC/B,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,iDAAuB,CAAC,IAAI,CAAC;gBAC3B,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,OAAO,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC;aAC7B,CAAC,CAAC;QACT,gCAAW,CAAC,WAAW,CAAC;YACtB,WAAW,EAAE,IAAA,+CAAsB,EACjC,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,GAAG,EACX,OAAO,EACP,UAAU,CACX;YACD,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,gCAAW,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,IAAA,+CAAsB,EAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACrE,CAAC;AACH,CAAC,CACF,CAAC"}
@@ -17,13 +17,13 @@
17
17
  * @param projectRoot The project base used to resolve
18
18
  * `typescript/package.json`.
19
19
  * @evidence contracts/common.md#principled-implementation Package-version labels supply the same metadata tuple used by plugin keys; absent/unreadable metadata receives the documented unknown/default label rather than an executable identity certificate.
20
- * @evidence contracts/common.md#clear-and-simple-design Host-version and project-version readers are separate because one installation is stable within the process while project resolution varies per call.
20
+ * @evidence contracts/common.md#clear-and-simple-design The host label comes from its own owner (`ttscPackageVersion`), which a reader needing only that label calls without this function's project resolution; the project-version reader is separate because project resolution varies per call.
21
21
  * @evidence contracts/common.md#prohibited-implementation-shortcuts Node package resolution determines the actual project dependency; no particular project or fixture version is embedded.
22
22
  * @evidence contracts/common.md#meaningful-documentation Native prose explains persisted-output consumers, metadata fallbacks and the process-stable host premise without claiming that version labels establish executable or output equivalence.
23
23
  * @evidence contracts/portability.md#os-neutral-implementation Node createRequire and path APIs locate package metadata using native module resolution without manual separator or case normalization.
24
24
  * @evidence contracts/performance.md#efficient-algorithms Each call performs project package resolution and, when successful, reads/parses its manifest bytes; module search/path work and metadata size are not fixed by one logical manifest lookup. The host manifest is attempted only on the first invocation, including native path and JSON costs.
25
25
  * @evidence contracts/performance.md#reuse-equivalent-work All callers share the host installation's process-stable version; the project compiler version is resolved afresh so different project roots do not share a false identity.
26
- * @evidence contracts/performance.md#bound-retention-and-release-resources This helper retains one host-version label for the process lifetime, whose text follows its manifest value rather than a fixed byte limit; the helper's retained label count is independent of project count. Native module-resolution caches belong to Node, and synchronous file reads leave no persistent descriptor here.
26
+ * @evidence contracts/performance.md#bound-retention-and-release-resources The host-version owner retains one label for the process lifetime, whose text follows its manifest value rather than a fixed byte limit; the retained label count is independent of project count. Native module-resolution caches belong to Node, and synchronous file reads leave no persistent descriptor here.
27
27
  */
28
28
  export declare function pluginBuildVersions(projectRoot: string): {
29
29
  tsgo: string;
@@ -7,6 +7,7 @@ exports.pluginBuildVersions = pluginBuildVersions;
7
7
  const node_fs_1 = __importDefault(require("node:fs"));
8
8
  const node_module_1 = require("node:module");
9
9
  const node_path_1 = __importDefault(require("node:path"));
10
+ const ttscPackageVersion_1 = require("./ttscPackageVersion");
10
11
  /**
11
12
  * Package-version labels used by plugin build keys (`computeCacheKey`) and
12
13
  * persisted transform identities. These are metadata inputs, not a measurement
@@ -26,30 +27,16 @@ const node_path_1 = __importDefault(require("node:path"));
26
27
  * @param projectRoot The project base used to resolve
27
28
  * `typescript/package.json`.
28
29
  * @evidence contracts/common.md#principled-implementation Package-version labels supply the same metadata tuple used by plugin keys; absent/unreadable metadata receives the documented unknown/default label rather than an executable identity certificate.
29
- * @evidence contracts/common.md#clear-and-simple-design Host-version and project-version readers are separate because one installation is stable within the process while project resolution varies per call.
30
+ * @evidence contracts/common.md#clear-and-simple-design The host label comes from its own owner (`ttscPackageVersion`), which a reader needing only that label calls without this function's project resolution; the project-version reader is separate because project resolution varies per call.
30
31
  * @evidence contracts/common.md#prohibited-implementation-shortcuts Node package resolution determines the actual project dependency; no particular project or fixture version is embedded.
31
32
  * @evidence contracts/common.md#meaningful-documentation Native prose explains persisted-output consumers, metadata fallbacks and the process-stable host premise without claiming that version labels establish executable or output equivalence.
32
33
  * @evidence contracts/portability.md#os-neutral-implementation Node createRequire and path APIs locate package metadata using native module resolution without manual separator or case normalization.
33
34
  * @evidence contracts/performance.md#efficient-algorithms Each call performs project package resolution and, when successful, reads/parses its manifest bytes; module search/path work and metadata size are not fixed by one logical manifest lookup. The host manifest is attempted only on the first invocation, including native path and JSON costs.
34
35
  * @evidence contracts/performance.md#reuse-equivalent-work All callers share the host installation's process-stable version; the project compiler version is resolved afresh so different project roots do not share a false identity.
35
- * @evidence contracts/performance.md#bound-retention-and-release-resources This helper retains one host-version label for the process lifetime, whose text follows its manifest value rather than a fixed byte limit; the helper's retained label count is independent of project count. Native module-resolution caches belong to Node, and synchronous file reads leave no persistent descriptor here.
36
+ * @evidence contracts/performance.md#bound-retention-and-release-resources The host-version owner retains one label for the process lifetime, whose text follows its manifest value rather than a fixed byte limit; the retained label count is independent of project count. Native module-resolution caches belong to Node, and synchronous file reads leave no persistent descriptor here.
36
37
  */
37
38
  function pluginBuildVersions(projectRoot) {
38
- return { tsgo: readTsgoVersion(projectRoot), ttsc: readTtscVersion() };
39
- }
40
- let cachedTtscVersion = null;
41
- function readTtscVersion() {
42
- if (cachedTtscVersion !== null)
43
- return cachedTtscVersion;
44
- try {
45
- const file = node_path_1.default.resolve(__dirname, "..", "..", "..", "..", "package.json");
46
- const pkg = JSON.parse(node_fs_1.default.readFileSync(file, "utf8"));
47
- cachedTtscVersion = pkg.version ?? "0.0.0";
48
- }
49
- catch {
50
- cachedTtscVersion = "0.0.0";
51
- }
52
- return cachedTtscVersion;
39
+ return { tsgo: readTsgoVersion(projectRoot), ttsc: (0, ttscPackageVersion_1.ttscPackageVersion)() };
53
40
  }
54
41
  function readTsgoVersion(projectRoot) {
55
42
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"pluginBuildVersions.js","sourceRoot":"","sources":["../../../../src/plugin/internal/source/pluginBuildVersions.ts"],"names":[],"mappings":";;;;;;AAAA,sDAAyB;AACzB,6CAA4C;AAC5C,0DAA6B;AAE7B;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,6BAAoC,WAAmB;IAIrD,OAAO,EAAE,IAAI,EAAE,eAAe,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,CAAC;AACzE,CAAC;AAED,IAAI,iBAAiB,GAAkB,IAAI,CAAC;AAE5C,SAAS,eAAe;IACtB,IAAI,iBAAiB,KAAK,IAAI;QAAE,OAAO,iBAAiB,CAAC;IACzD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,mBAAI,CAAC,OAAO,CACvB,SAAS,EACT,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,cAAc,CACf,CAAC;QACF,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAEnD,CAAC;QACF,iBAAiB,GAAG,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,iBAAiB,GAAG,OAAO,CAAC;IAC9B,CAAC;IACD,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED,SAAS,eAAe,CAAC,WAAmB;IAC1C,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,IAAA,2BAAa,EAClC,mBAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CACvC,CAAC;QACF,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;QAClE,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAEtD,CAAC;QACF,OAAO,GAAG,CAAC,OAAO,IAAI,SAAS,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"pluginBuildVersions.js","sourceRoot":"","sources":["../../../../src/plugin/internal/source/pluginBuildVersions.ts"],"names":[],"mappings":";;;;;;AAAA,sDAAyB;AACzB,6CAA4C;AAC5C,0DAA6B;AAE7B,6DAA0D;AAE1D;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,6BAAoC,WAAmB;IAIrD,OAAO,EAAE,IAAI,EAAE,eAAe,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,IAAA,uCAAkB,GAAE,EAAE,CAAC;AAC5E,CAAC;AAED,SAAS,eAAe,CAAC,WAAmB;IAC1C,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,IAAA,2BAAa,EAClC,mBAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CACvC,CAAC;QACF,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;QAClE,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAEtD,CAAC;QACF,OAAO,GAAG,CAAC,OAAO,IAAI,SAAS,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
@@ -19,7 +19,9 @@
19
19
  * process's own environment the environment is read once per directory and set
20
20
  * of variables (`processPluginBuildEnvironment`), and a proof that must not
21
21
  * accept a stale one compares through `pluginSourceStateHolds`, which reads it
22
- * again before it refutes a state.
22
+ * again before it refutes a state. A caller that names its project proves the
23
+ * sources and the SDK from that project's plugin cache records instead of
24
+ * reading them in every new process (#1725).
23
25
  *
24
26
  * @param directory The source directory.
25
27
  * @param options.env An effective environment other than this process's, which
@@ -28,6 +30,7 @@
28
30
  * caller already read it.
29
31
  * @param options.environment The directory's `pluginBuildEnvironment`, when the
30
32
  * caller already read it, as a plugin build's key does.
33
+ * @param options.projectRoot Project whose plugin cache root holds the records.
31
34
  * @returns The state, as lowercase hex.
32
35
  * @throws When a listed source file cannot be read, as the build itself would.
33
36
  * @evidence contracts/common.md#principled-implementation The state combines source and environment digests because both affect compiled plugin behavior; supplied readings preserve the exact inputs a build already keyed on.
@@ -36,12 +39,13 @@
36
39
  * @evidence contracts/common.md#meaningful-documentation Native paragraphs explain module-root versus overlay environment meaning and the provenance required for supplied digests.
37
40
  * @evidence contracts/portability.md#os-neutral-implementation Native source and toolchain identity are delegated to the shared filesystem/process readers; the final digest is platform-independent serialized text.
38
41
  * @evidence contracts/performance.md#efficient-algorithms Composition serializes/hashes supplied digest strings whose public inputs are not length-validated; owning generated digests are fixed-width hex. Missing readings delegate native source enumeration/full reads and environment variable/witness/tool/SDK work, without establishing an unmeasured dominant cost ranking.
39
- * @evidence contracts/performance.md#reuse-equivalent-work Supplied source/environment strings are trusted producer readings, not independently revalidated here. Process-environment memos require their owner's variable/path witness checks; explicit injected environments are read fresh. Equality inherits the selected-source and native metadata premises.
42
+ * @evidence contracts/performance.md#reuse-equivalent-work Supplied source/environment strings are trusted producer readings, not independently revalidated here. Process-environment memos require their owner's variable/path witness checks; explicit injected environments are read fresh. A named project lets missing source and SDK readings come from its record store across processes. Equality inherits the selected-source and native metadata premises.
40
43
  *
41
44
  * @evidenceExclude contracts/performance.md#bound-retention-and-release-resources This function retains no resource or state after returning; process-environment memo lifetime belongs to its separate owner.
42
45
  */
43
46
  export declare function pluginSourceState(directory: string, options?: {
44
47
  env?: NodeJS.ProcessEnv;
45
48
  environment?: string;
49
+ projectRoot?: string;
46
50
  sourceDigest?: string;
47
51
  }): string;
@@ -5,9 +5,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.pluginSourceState = pluginSourceState;
7
7
  const node_crypto_1 = __importDefault(require("node:crypto"));
8
+ const PluginContentIdentities_1 = require("./PluginContentIdentities");
8
9
  const pluginBuildEnvironment_1 = require("./pluginBuildEnvironment");
9
- const pluginSourceDigest_1 = require("./pluginSourceDigest");
10
10
  const processPluginBuildEnvironment_1 = require("./processPluginBuildEnvironment");
11
+ const provenPluginSourceDigest_1 = require("./provenPluginSourceDigest");
11
12
  /**
12
13
  * The state of one plugin source directory as a plugin binary is built from it:
13
14
  * the digest of its sources (`pluginSourceDigest`) together with the
@@ -29,7 +30,9 @@ const processPluginBuildEnvironment_1 = require("./processPluginBuildEnvironment
29
30
  * process's own environment the environment is read once per directory and set
30
31
  * of variables (`processPluginBuildEnvironment`), and a proof that must not
31
32
  * accept a stale one compares through `pluginSourceStateHolds`, which reads it
32
- * again before it refutes a state.
33
+ * again before it refutes a state. A caller that names its project proves the
34
+ * sources and the SDK from that project's plugin cache records instead of
35
+ * reading them in every new process (#1725).
33
36
  *
34
37
  * @param directory The source directory.
35
38
  * @param options.env An effective environment other than this process's, which
@@ -38,6 +41,7 @@ const processPluginBuildEnvironment_1 = require("./processPluginBuildEnvironment
38
41
  * caller already read it.
39
42
  * @param options.environment The directory's `pluginBuildEnvironment`, when the
40
43
  * caller already read it, as a plugin build's key does.
44
+ * @param options.projectRoot Project whose plugin cache root holds the records.
41
45
  * @returns The state, as lowercase hex.
42
46
  * @throws When a listed source file cannot be read, as the build itself would.
43
47
  * @evidence contracts/common.md#principled-implementation The state combines source and environment digests because both affect compiled plugin behavior; supplied readings preserve the exact inputs a build already keyed on.
@@ -46,18 +50,26 @@ const processPluginBuildEnvironment_1 = require("./processPluginBuildEnvironment
46
50
  * @evidence contracts/common.md#meaningful-documentation Native paragraphs explain module-root versus overlay environment meaning and the provenance required for supplied digests.
47
51
  * @evidence contracts/portability.md#os-neutral-implementation Native source and toolchain identity are delegated to the shared filesystem/process readers; the final digest is platform-independent serialized text.
48
52
  * @evidence contracts/performance.md#efficient-algorithms Composition serializes/hashes supplied digest strings whose public inputs are not length-validated; owning generated digests are fixed-width hex. Missing readings delegate native source enumeration/full reads and environment variable/witness/tool/SDK work, without establishing an unmeasured dominant cost ranking.
49
- * @evidence contracts/performance.md#reuse-equivalent-work Supplied source/environment strings are trusted producer readings, not independently revalidated here. Process-environment memos require their owner's variable/path witness checks; explicit injected environments are read fresh. Equality inherits the selected-source and native metadata premises.
53
+ * @evidence contracts/performance.md#reuse-equivalent-work Supplied source/environment strings are trusted producer readings, not independently revalidated here. Process-environment memos require their owner's variable/path witness checks; explicit injected environments are read fresh. A named project lets missing source and SDK readings come from its record store across processes. Equality inherits the selected-source and native metadata premises.
50
54
  *
51
55
  * @evidenceExclude contracts/performance.md#bound-retention-and-release-resources This function retains no resource or state after returning; process-environment memo lifetime belongs to its separate owner.
52
56
  */
53
57
  function pluginSourceState(directory, options = {}) {
58
+ const sourceDigest = options.sourceDigest ??
59
+ (0, provenPluginSourceDigest_1.provenPluginSourceDigest)(directory, options.projectRoot, options.env);
60
+ const environment = options.environment ??
61
+ (options.env === undefined
62
+ ? (0, processPluginBuildEnvironment_1.processPluginBuildEnvironment)(directory, false, options.projectRoot)
63
+ : (0, pluginBuildEnvironment_1.pluginBuildEnvironment)(directory, options.env, undefined, options.projectRoot === undefined
64
+ ? undefined
65
+ : PluginContentIdentities_1.PluginContentIdentities.open({
66
+ projectRoot: options.projectRoot,
67
+ env: options.env,
68
+ sources: [directory],
69
+ })));
54
70
  return node_crypto_1.default
55
71
  .createHash("sha256")
56
- .update(`source=${options.sourceDigest ?? (0, pluginSourceDigest_1.pluginSourceDigest)(directory)}\n` +
57
- `environment=${options.environment ??
58
- (options.env === undefined
59
- ? (0, processPluginBuildEnvironment_1.processPluginBuildEnvironment)(directory)
60
- : (0, pluginBuildEnvironment_1.pluginBuildEnvironment)(directory, options.env))}\n`)
72
+ .update(`source=${sourceDigest}\nenvironment=${environment}\n`)
61
73
  .digest("hex");
62
74
  }
63
75
  //# sourceMappingURL=pluginSourceState.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pluginSourceState.js","sourceRoot":"","sources":["../../../../src/plugin/internal/source/pluginSourceState.ts"],"names":[],"mappings":";;;;;;AAAA,8DAAiC;AAEjC,qEAAkE;AAClE,6DAA0D;AAC1D,mFAAgF;AAEhF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,2BACE,SAAiB,EACjB,OAAO,GAIH,EAAE;IAEN,OAAO,qBAAM;SACV,UAAU,CAAC,QAAQ,CAAC;SACpB,MAAM,CACL,UAAU,OAAO,CAAC,YAAY,IAAI,IAAA,uCAAkB,EAAC,SAAS,CAAC,IAAI;QACjE,eACE,OAAO,CAAC,WAAW;YACnB,CAAC,OAAO,CAAC,GAAG,KAAK,SAAS;gBACxB,CAAC,CAAC,IAAA,6DAA6B,EAAC,SAAS,CAAC;gBAC1C,CAAC,CAAC,IAAA,+CAAsB,EAAC,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,CACpD,IAAI,CACP;SACA,MAAM,CAAC,KAAK,CAAC,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"pluginSourceState.js","sourceRoot":"","sources":["../../../../src/plugin/internal/source/pluginSourceState.ts"],"names":[],"mappings":";;;;;;AAAA,8DAAiC;AAEjC,uEAAoE;AACpE,qEAAkE;AAClE,mFAAgF;AAChF,yEAAsE;AAEtE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,2BACE,SAAiB,EACjB,OAAO,GAKH,EAAE;IAEN,MAAM,YAAY,GAChB,OAAO,CAAC,YAAY;QACpB,IAAA,mDAAwB,EAAC,SAAS,EAAE,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IACxE,MAAM,WAAW,GACf,OAAO,CAAC,WAAW;QACnB,CAAC,OAAO,CAAC,GAAG,KAAK,SAAS;YACxB,CAAC,CAAC,IAAA,6DAA6B,EAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC;YACtE,CAAC,CAAC,IAAA,+CAAsB,EACpB,SAAS,EACT,OAAO,CAAC,GAAG,EACX,SAAS,EACT,OAAO,CAAC,WAAW,KAAK,SAAS;gBAC/B,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,iDAAuB,CAAC,IAAI,CAAC;oBAC3B,WAAW,EAAE,OAAO,CAAC,WAAW;oBAChC,GAAG,EAAE,OAAO,CAAC,GAAG;oBAChB,OAAO,EAAE,CAAC,SAAS,CAAC;iBACrB,CAAC,CACP,CAAC,CAAC;IACT,OAAO,qBAAM;SACV,UAAU,CAAC,QAAQ,CAAC;SACpB,MAAM,CAAC,UAAU,YAAY,iBAAiB,WAAW,IAAI,CAAC;SAC9D,MAAM,CAAC,KAAK,CAAC,CAAC;AACnB,CAAC"}
@@ -12,12 +12,16 @@
12
12
  * is refuted. A compile keys its binaries on a fresh read, so a state it
13
13
  * reported after a change gets one comparison with a refreshed environment.
14
14
  * That retry does not guarantee equality for a changing or differently keyed
15
- * environment, and a supplied source digest remains the caller's premise.
15
+ * environment, and a supplied source digest remains the caller's premise. A
16
+ * caller that names its project proves the sources and the SDK from that
17
+ * project's plugin cache records instead of reading them in every new process
18
+ * (#1725).
16
19
  *
17
20
  * @param directory The source directory, as the envelope names it.
18
21
  * @param state The state the envelope reported.
19
22
  * @param options.sourceDigest The directory's `pluginSourceDigest`, when the
20
23
  * caller holds one it can vouch for.
24
+ * @param options.projectRoot Project whose plugin cache root holds the records.
21
25
  * @throws When a listed source file cannot be read, as the build itself would.
22
26
  * @evidence contracts/common.md#principled-implementation Equality uses shared state composition and one real environment refresh after mismatch. This allows changed observations to be reconsidered without certifying the second comparison must match; supplied digest validity and native witness premises remain with their owners.
23
27
  * @evidence contracts/common.md#clear-and-simple-design One source reading is passed through both attempts and only the environment owner performs the refresh.
@@ -25,10 +29,11 @@
25
29
  * @evidence contracts/common.md#meaningful-documentation The prose states source-digest provenance, environment invalidation and the reason a mismatching state gets a fresh comparison.
26
30
  * @evidence contracts/portability.md#os-neutral-implementation Source reads and Go/environment witnesses use the same native boundary implementations as builds, rather than comparing OS names or guessed installation paths.
27
31
  * @evidence contracts/performance.md#efficient-algorithms At most one source digest computation is requested and reused by both comparisons; supplied strings bypass it. Native enumeration/file bytes, full environment identity/witness checks, optional tool/SDK refresh and digest-string hashing contribute work; mismatch repeats environment resolution once rather than bounding total cost by comparison count.
28
- * @evidence contracts/performance.md#reuse-equivalent-work A caller's proven source digest and the process owner's still-valid environment are reused; a mismatch forces the owning environment refresh before returning false.
32
+ * @evidence contracts/performance.md#reuse-equivalent-work A caller's proven source digest and the process owner's still-valid environment are reused; a mismatch forces the owning environment refresh before returning false. A named project lets the source and SDK readings come from its record store across processes.
29
33
  *
30
34
  * @evidenceExclude contracts/performance.md#bound-retention-and-release-resources The proof owns no retained source buffer, process or watcher; its caller owns any saved source digest.
31
35
  */
32
36
  export declare function pluginSourceStateHolds(directory: string, state: string, options?: {
37
+ projectRoot?: string;
33
38
  sourceDigest?: string;
34
39
  }): boolean;
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.pluginSourceStateHolds = pluginSourceStateHolds;
4
- const pluginSourceDigest_1 = require("./pluginSourceDigest");
5
4
  const pluginSourceState_1 = require("./pluginSourceState");
6
5
  const processPluginBuildEnvironment_1 = require("./processPluginBuildEnvironment");
6
+ const provenPluginSourceDigest_1 = require("./provenPluginSourceDigest");
7
7
  /**
8
8
  * Whether one plugin source directory still holds the state a transform
9
9
  * reported for it (`pluginSourceState`), under this process's environment.
@@ -18,12 +18,16 @@ const processPluginBuildEnvironment_1 = require("./processPluginBuildEnvironment
18
18
  * is refuted. A compile keys its binaries on a fresh read, so a state it
19
19
  * reported after a change gets one comparison with a refreshed environment.
20
20
  * That retry does not guarantee equality for a changing or differently keyed
21
- * environment, and a supplied source digest remains the caller's premise.
21
+ * environment, and a supplied source digest remains the caller's premise. A
22
+ * caller that names its project proves the sources and the SDK from that
23
+ * project's plugin cache records instead of reading them in every new process
24
+ * (#1725).
22
25
  *
23
26
  * @param directory The source directory, as the envelope names it.
24
27
  * @param state The state the envelope reported.
25
28
  * @param options.sourceDigest The directory's `pluginSourceDigest`, when the
26
29
  * caller holds one it can vouch for.
30
+ * @param options.projectRoot Project whose plugin cache root holds the records.
27
31
  * @throws When a listed source file cannot be read, as the build itself would.
28
32
  * @evidence contracts/common.md#principled-implementation Equality uses shared state composition and one real environment refresh after mismatch. This allows changed observations to be reconsidered without certifying the second comparison must match; supplied digest validity and native witness premises remain with their owners.
29
33
  * @evidence contracts/common.md#clear-and-simple-design One source reading is passed through both attempts and only the environment owner performs the refresh.
@@ -31,15 +35,16 @@ const processPluginBuildEnvironment_1 = require("./processPluginBuildEnvironment
31
35
  * @evidence contracts/common.md#meaningful-documentation The prose states source-digest provenance, environment invalidation and the reason a mismatching state gets a fresh comparison.
32
36
  * @evidence contracts/portability.md#os-neutral-implementation Source reads and Go/environment witnesses use the same native boundary implementations as builds, rather than comparing OS names or guessed installation paths.
33
37
  * @evidence contracts/performance.md#efficient-algorithms At most one source digest computation is requested and reused by both comparisons; supplied strings bypass it. Native enumeration/file bytes, full environment identity/witness checks, optional tool/SDK refresh and digest-string hashing contribute work; mismatch repeats environment resolution once rather than bounding total cost by comparison count.
34
- * @evidence contracts/performance.md#reuse-equivalent-work A caller's proven source digest and the process owner's still-valid environment are reused; a mismatch forces the owning environment refresh before returning false.
38
+ * @evidence contracts/performance.md#reuse-equivalent-work A caller's proven source digest and the process owner's still-valid environment are reused; a mismatch forces the owning environment refresh before returning false. A named project lets the source and SDK readings come from its record store across processes.
35
39
  *
36
40
  * @evidenceExclude contracts/performance.md#bound-retention-and-release-resources The proof owns no retained source buffer, process or watcher; its caller owns any saved source digest.
37
41
  */
38
42
  function pluginSourceStateHolds(directory, state, options = {}) {
39
- const sourceDigest = options.sourceDigest ?? (0, pluginSourceDigest_1.pluginSourceDigest)(directory);
40
- if ((0, pluginSourceState_1.pluginSourceState)(directory, { sourceDigest }) === state)
43
+ const projectRoot = options.projectRoot;
44
+ const sourceDigest = options.sourceDigest ?? (0, provenPluginSourceDigest_1.provenPluginSourceDigest)(directory, projectRoot);
45
+ if ((0, pluginSourceState_1.pluginSourceState)(directory, { projectRoot, sourceDigest }) === state)
41
46
  return true;
42
- (0, processPluginBuildEnvironment_1.processPluginBuildEnvironment)(directory, true);
43
- return (0, pluginSourceState_1.pluginSourceState)(directory, { sourceDigest }) === state;
47
+ (0, processPluginBuildEnvironment_1.processPluginBuildEnvironment)(directory, true, projectRoot);
48
+ return (0, pluginSourceState_1.pluginSourceState)(directory, { projectRoot, sourceDigest }) === state;
44
49
  }
45
50
  //# sourceMappingURL=pluginSourceStateHolds.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pluginSourceStateHolds.js","sourceRoot":"","sources":["../../../../src/plugin/internal/source/pluginSourceStateHolds.ts"],"names":[],"mappings":";;;AAAA,6DAA0D;AAC1D,2DAAwD;AACxD,mFAAgF;AAEhF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,gCACE,SAAiB,EACjB,KAAa,EACb,OAAO,GAA8B,EAAE;IAEvC,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,IAAA,uCAAkB,EAAC,SAAS,CAAC,CAAC;IAC3E,IAAI,IAAA,qCAAiB,EAAC,SAAS,EAAE,EAAE,YAAY,EAAE,CAAC,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC;IAC1E,IAAA,6DAA6B,EAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC/C,OAAO,IAAA,qCAAiB,EAAC,SAAS,EAAE,EAAE,YAAY,EAAE,CAAC,KAAK,KAAK,CAAC;AAClE,CAAC"}
1
+ {"version":3,"file":"pluginSourceStateHolds.js","sourceRoot":"","sources":["../../../../src/plugin/internal/source/pluginSourceStateHolds.ts"],"names":[],"mappings":";;;AAAA,2DAAwD;AACxD,mFAAgF;AAChF,yEAAsE;AAEtE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,gCACE,SAAiB,EACjB,KAAa,EACb,OAAO,GAAoD,EAAE;IAE7D,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IACxC,MAAM,YAAY,GAChB,OAAO,CAAC,YAAY,IAAI,IAAA,mDAAwB,EAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAC3E,IAAI,IAAA,qCAAiB,EAAC,SAAS,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,KAAK,KAAK;QACvE,OAAO,IAAI,CAAC;IACd,IAAA,6DAA6B,EAAC,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IAC5D,OAAO,IAAA,qCAAiB,EAAC,SAAS,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,KAAK,KAAK,CAAC;AAC/E,CAAC"}
@@ -19,15 +19,20 @@
19
19
  * possible metadata-restored change. The build itself never reads through here:
20
20
  * it keys each binary on a fresh read.
21
21
  *
22
+ * A caller that names its project lets a reading this process does not hold
23
+ * prove the SDK and executables from that project's plugin cache records
24
+ * (#1725) instead of reading the whole GOROOT in every new process.
25
+ *
22
26
  * @param directory The directory a build runs `go` in.
23
27
  * @param refresh Whether to read the environment again rather than reuse it.
28
+ * @param projectRoot Project whose plugin cache root holds the records.
24
29
  * @evidence contracts/common.md#principled-implementation Variable serialization is sorted and length-delimited; reuse additionally requires unchanged pre-read metadata for every external dependency, including all contributing GOROOT directories and files, under the witness's documented metadata-distinguishability premise.
25
30
  * @evidence contracts/common.md#clear-and-simple-design One process-local map owns environment memoization; fresh construction and witness validation remain separate operations shared with build verification.
26
31
  * @evidence contracts/common.md#prohibited-implementation-shortcuts Refresh performs the real environment read rather than assuming that a stable compiler path or quiet source tree implies a stable toolchain.
27
32
  * @evidence contracts/common.md#meaningful-documentation Native paragraphs explain why environment probing is retained, its variable/path invalidation, and why builds still read fresh; descriptive prose and tags are separated.
28
33
  * @evidence contracts/portability.md#os-neutral-implementation Native environment and filesystem identity are delegated to the shared platform-aware probe and metadata witness rather than inferred from an OS name.
29
34
  * @evidence contracts/performance.md#efficient-algorithms The delegated owner serializes/hashes variable names/values after text-sensitive sorting and validates witnessed native paths. A qualified hit avoids cold tool/content preparation but not native lookup/path/link/text costs. Misses/refresh delegate actual Go/toolchain/SDK readings; V/P counts alone do not bound all bytes or native work.
30
- * @evidence contracts/performance.md#reuse-equivalent-work Directory and all effective variables identify a candidate reading; the complete external-path witness must hold, otherwise the environment is read and its record replaced.
35
+ * @evidence contracts/performance.md#reuse-equivalent-work Directory and all effective variables identify a candidate reading; the complete external-path witness must hold, otherwise the environment is read and its record replaced. A miss naming a project proves the SDK and executables from that project's record store across processes.
31
36
  * @evidence contracts/performance.md#bound-retention-and-release-resources PluginBuildEnvironmentReadings owns the process-shared map and asynchronous worker/request lifetimes, not this forwarding call. Existing keys are replaced, but distinct directory/variable combinations retain historical witnesses without an eviction bound; consumers and the owner govern that retention.
32
37
  */
33
- export declare function processPluginBuildEnvironment(directory: string, refresh?: boolean): string;
38
+ export declare function processPluginBuildEnvironment(directory: string, refresh?: boolean, projectRoot?: string): string;
@@ -23,18 +23,23 @@ const PluginBuildEnvironmentReadings_1 = require("./PluginBuildEnvironmentReadin
23
23
  * possible metadata-restored change. The build itself never reads through here:
24
24
  * it keys each binary on a fresh read.
25
25
  *
26
+ * A caller that names its project lets a reading this process does not hold
27
+ * prove the SDK and executables from that project's plugin cache records
28
+ * (#1725) instead of reading the whole GOROOT in every new process.
29
+ *
26
30
  * @param directory The directory a build runs `go` in.
27
31
  * @param refresh Whether to read the environment again rather than reuse it.
32
+ * @param projectRoot Project whose plugin cache root holds the records.
28
33
  * @evidence contracts/common.md#principled-implementation Variable serialization is sorted and length-delimited; reuse additionally requires unchanged pre-read metadata for every external dependency, including all contributing GOROOT directories and files, under the witness's documented metadata-distinguishability premise.
29
34
  * @evidence contracts/common.md#clear-and-simple-design One process-local map owns environment memoization; fresh construction and witness validation remain separate operations shared with build verification.
30
35
  * @evidence contracts/common.md#prohibited-implementation-shortcuts Refresh performs the real environment read rather than assuming that a stable compiler path or quiet source tree implies a stable toolchain.
31
36
  * @evidence contracts/common.md#meaningful-documentation Native paragraphs explain why environment probing is retained, its variable/path invalidation, and why builds still read fresh; descriptive prose and tags are separated.
32
37
  * @evidence contracts/portability.md#os-neutral-implementation Native environment and filesystem identity are delegated to the shared platform-aware probe and metadata witness rather than inferred from an OS name.
33
38
  * @evidence contracts/performance.md#efficient-algorithms The delegated owner serializes/hashes variable names/values after text-sensitive sorting and validates witnessed native paths. A qualified hit avoids cold tool/content preparation but not native lookup/path/link/text costs. Misses/refresh delegate actual Go/toolchain/SDK readings; V/P counts alone do not bound all bytes or native work.
34
- * @evidence contracts/performance.md#reuse-equivalent-work Directory and all effective variables identify a candidate reading; the complete external-path witness must hold, otherwise the environment is read and its record replaced.
39
+ * @evidence contracts/performance.md#reuse-equivalent-work Directory and all effective variables identify a candidate reading; the complete external-path witness must hold, otherwise the environment is read and its record replaced. A miss naming a project proves the SDK and executables from that project's record store across processes.
35
40
  * @evidence contracts/performance.md#bound-retention-and-release-resources PluginBuildEnvironmentReadings owns the process-shared map and asynchronous worker/request lifetimes, not this forwarding call. Existing keys are replaced, but distinct directory/variable combinations retain historical witnesses without an eviction bound; consumers and the owner govern that retention.
36
41
  */
37
- function processPluginBuildEnvironment(directory, refresh = false) {
38
- return PluginBuildEnvironmentReadings_1.PluginBuildEnvironmentReadings.read(directory, refresh);
42
+ function processPluginBuildEnvironment(directory, refresh = false, projectRoot) {
43
+ return PluginBuildEnvironmentReadings_1.PluginBuildEnvironmentReadings.read(directory, refresh, projectRoot);
39
44
  }
40
45
  //# sourceMappingURL=processPluginBuildEnvironment.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"processPluginBuildEnvironment.js","sourceRoot":"","sources":["../../../../src/plugin/internal/source/processPluginBuildEnvironment.ts"],"names":[],"mappings":";;;AAAA,qFAAkF;AAElF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,uCACE,SAAiB,EACjB,OAAO,GAAG,KAAK;IAEf,OAAO,+DAA8B,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AACjE,CAAC"}
1
+ {"version":3,"file":"processPluginBuildEnvironment.js","sourceRoot":"","sources":["../../../../src/plugin/internal/source/processPluginBuildEnvironment.ts"],"names":[],"mappings":";;;AAAA,qFAAkF;AAElF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,uCACE,SAAiB,EACjB,OAAO,GAAG,KAAK,EACf,WAAoB;IAEpB,OAAO,+DAA8B,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;AAC9E,CAAC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * The `pluginSourceDigest` of a plugin source directory, proven from the
3
+ * records of `projectRoot`'s plugin cache when the caller names its project.
4
+ *
5
+ * WARNING (#1725): a consumer that proves a reported plugin-source state in a
6
+ * new process, such as a bundler worker, a capability host or the language
7
+ * server, read every source byte again because its own memo starts empty. The
8
+ * load that reported the state already recorded this digest
9
+ * (`PluginContentIdentities`), so a process that names the same project reuses
10
+ * it while the files' metadata still holds. Without a project, or when no store
11
+ * can be opened, the bytes are read as before.
12
+ *
13
+ * @param directory The source directory.
14
+ * @param projectRoot Project whose plugin cache root holds the records.
15
+ * @param env Environment selecting that cache root; this process's by default.
16
+ * @returns The digest, as lowercase hex.
17
+ * @throws When a listed source file cannot be read, as `pluginSourceDigest`
18
+ * does.
19
+ * @evidence contracts/common.md#principled-implementation The record store applies its separable-signature rule to exactly the files the digest reads; every unproved premise falls back to the content reader.
20
+ * @evidence contracts/common.md#clear-and-simple-design Store opening and the population proof stay with PluginContentIdentities; this entry only names the project for consumers outside the loader.
21
+ * @evidence contracts/common.md#prohibited-implementation-shortcuts No path, timestamp or process memo stands for content; the store refuses a root inside the source.
22
+ * @evidence contracts/common.md#meaningful-documentation The paragraphs state the regression, the reuse premise and the fallback.
23
+ * @evidence contracts/portability.md#os-neutral-implementation Cache-root selection and device-keyed references are delegated to the shared owners.
24
+ * @evidence contracts/performance.md#efficient-algorithms A proven digest stats the selected files; an unproven one also reads their bytes once. Opening the store writes two reference probes.
25
+ * @evidence contracts/performance.md#reuse-equivalent-work The digest the load recorded is reused across processes under the same project's store.
26
+ * @evidence contracts/performance.md#bound-retention-and-release-resources The store lives for this call; records belong to the cache root's single-file pruning.
27
+ */
28
+ export declare function provenPluginSourceDigest(directory: string, projectRoot?: string, env?: NodeJS.ProcessEnv): string;