@microwiseai/snapshot 0.5.2 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (159) hide show
  1. package/dist/commands/current.d.ts +5 -1
  2. package/dist/commands/current.d.ts.map +1 -1
  3. package/dist/commands/current.js +89 -2
  4. package/dist/commands/current.js.map +1 -1
  5. package/dist/commands/doctor.d.ts +2 -0
  6. package/dist/commands/doctor.d.ts.map +1 -0
  7. package/dist/commands/doctor.js +83 -0
  8. package/dist/commands/doctor.js.map +1 -0
  9. package/dist/commands/install.d.ts +41 -0
  10. package/dist/commands/install.d.ts.map +1 -1
  11. package/dist/commands/install.js +396 -216
  12. package/dist/commands/install.js.map +1 -1
  13. package/dist/commands/publish.d.ts +0 -4
  14. package/dist/commands/publish.d.ts.map +1 -1
  15. package/dist/commands/publish.js +44 -58
  16. package/dist/commands/publish.js.map +1 -1
  17. package/dist/commands/setup.d.ts +5 -0
  18. package/dist/commands/setup.d.ts.map +1 -0
  19. package/dist/commands/setup.js +52 -0
  20. package/dist/commands/setup.js.map +1 -0
  21. package/dist/index.js +22 -28
  22. package/dist/index.js.map +1 -1
  23. package/dist/lib/config.js +1 -1
  24. package/dist/lib/config.js.map +1 -1
  25. package/dist/lib/core-floor.d.ts +49 -0
  26. package/dist/lib/core-floor.d.ts.map +1 -0
  27. package/dist/lib/core-floor.js +78 -0
  28. package/dist/lib/core-floor.js.map +1 -0
  29. package/dist/lib/gitlab.d.ts.map +1 -1
  30. package/dist/lib/gitlab.js +8 -6
  31. package/dist/lib/gitlab.js.map +1 -1
  32. package/dist/lib/install-verify.d.ts +101 -0
  33. package/dist/lib/install-verify.d.ts.map +1 -0
  34. package/dist/lib/install-verify.js +143 -0
  35. package/dist/lib/install-verify.js.map +1 -0
  36. package/dist/lib/ledger.d.ts +212 -0
  37. package/dist/lib/ledger.d.ts.map +1 -0
  38. package/dist/lib/ledger.js +266 -0
  39. package/dist/lib/ledger.js.map +1 -0
  40. package/dist/lib/pin-override.d.ts +53 -0
  41. package/dist/lib/pin-override.d.ts.map +1 -0
  42. package/dist/lib/pin-override.js +77 -0
  43. package/dist/lib/pin-override.js.map +1 -0
  44. package/dist/lib/prerequisites.d.ts +33 -0
  45. package/dist/lib/prerequisites.d.ts.map +1 -0
  46. package/dist/lib/prerequisites.js +123 -0
  47. package/dist/lib/prerequisites.js.map +1 -0
  48. package/dist/lib/transitive-resolver.d.ts +0 -121
  49. package/dist/lib/transitive-resolver.d.ts.map +1 -1
  50. package/dist/lib/transitive-resolver.js +0 -190
  51. package/dist/lib/transitive-resolver.js.map +1 -1
  52. package/dist/lib/version-validator.d.ts +9 -0
  53. package/dist/lib/version-validator.d.ts.map +1 -1
  54. package/dist/lib/version-validator.js +69 -0
  55. package/dist/lib/version-validator.js.map +1 -1
  56. package/package.json +9 -19
  57. package/dist/commands/clone-all.d.ts +0 -21
  58. package/dist/commands/clone-all.d.ts.map +0 -1
  59. package/dist/commands/clone-all.js +0 -57
  60. package/dist/commands/clone-all.js.map +0 -1
  61. package/dist/commands/preflight.d.ts +0 -31
  62. package/dist/commands/preflight.d.ts.map +0 -1
  63. package/dist/commands/preflight.js +0 -83
  64. package/dist/commands/preflight.js.map +0 -1
  65. package/dist/lib/distkit-closure-bridge.d.ts +0 -102
  66. package/dist/lib/distkit-closure-bridge.d.ts.map +0 -1
  67. package/dist/lib/distkit-closure-bridge.js +0 -177
  68. package/dist/lib/distkit-closure-bridge.js.map +0 -1
  69. package/dist/lib/distkit-closure-parity.d.ts +0 -110
  70. package/dist/lib/distkit-closure-parity.d.ts.map +0 -1
  71. package/dist/lib/distkit-closure-parity.js +0 -134
  72. package/dist/lib/distkit-closure-parity.js.map +0 -1
  73. package/dist/lib/distkit-routing-port.d.ts +0 -37
  74. package/dist/lib/distkit-routing-port.d.ts.map +0 -1
  75. package/dist/lib/distkit-routing-port.js +0 -72
  76. package/dist/lib/distkit-routing-port.js.map +0 -1
  77. package/dist/lib/install-timeline.d.ts +0 -81
  78. package/dist/lib/install-timeline.d.ts.map +0 -1
  79. package/dist/lib/install-timeline.js +0 -243
  80. package/dist/lib/install-timeline.js.map +0 -1
  81. package/dist/lib/preflight-adapter.d.ts +0 -52
  82. package/dist/lib/preflight-adapter.d.ts.map +0 -1
  83. package/dist/lib/preflight-adapter.js +0 -224
  84. package/dist/lib/preflight-adapter.js.map +0 -1
  85. package/node_modules/@gitdot/clone-lib/README.md +0 -117
  86. package/node_modules/@gitdot/clone-lib/dist/bin/gitdot-resolve.d.ts +0 -9
  87. package/node_modules/@gitdot/clone-lib/dist/bin/gitdot-resolve.d.ts.map +0 -1
  88. package/node_modules/@gitdot/clone-lib/dist/bin/gitdot-resolve.js +0 -154
  89. package/node_modules/@gitdot/clone-lib/dist/bin/gitdot-resolve.js.map +0 -1
  90. package/node_modules/@gitdot/clone-lib/dist/clone.d.ts +0 -21
  91. package/node_modules/@gitdot/clone-lib/dist/clone.d.ts.map +0 -1
  92. package/node_modules/@gitdot/clone-lib/dist/clone.js +0 -228
  93. package/node_modules/@gitdot/clone-lib/dist/clone.js.map +0 -1
  94. package/node_modules/@gitdot/clone-lib/dist/dotpath.d.ts +0 -10
  95. package/node_modules/@gitdot/clone-lib/dist/dotpath.d.ts.map +0 -1
  96. package/node_modules/@gitdot/clone-lib/dist/dotpath.js +0 -27
  97. package/node_modules/@gitdot/clone-lib/dist/dotpath.js.map +0 -1
  98. package/node_modules/@gitdot/clone-lib/dist/git.d.ts +0 -23
  99. package/node_modules/@gitdot/clone-lib/dist/git.d.ts.map +0 -1
  100. package/node_modules/@gitdot/clone-lib/dist/git.js +0 -134
  101. package/node_modules/@gitdot/clone-lib/dist/git.js.map +0 -1
  102. package/node_modules/@gitdot/clone-lib/dist/index.d.ts +0 -17
  103. package/node_modules/@gitdot/clone-lib/dist/index.d.ts.map +0 -1
  104. package/node_modules/@gitdot/clone-lib/dist/index.js +0 -35
  105. package/node_modules/@gitdot/clone-lib/dist/index.js.map +0 -1
  106. package/node_modules/@gitdot/clone-lib/dist/lock.d.ts +0 -24
  107. package/node_modules/@gitdot/clone-lib/dist/lock.d.ts.map +0 -1
  108. package/node_modules/@gitdot/clone-lib/dist/lock.js +0 -97
  109. package/node_modules/@gitdot/clone-lib/dist/lock.js.map +0 -1
  110. package/node_modules/@gitdot/clone-lib/dist/resolve/gitlab.d.ts +0 -15
  111. package/node_modules/@gitdot/clone-lib/dist/resolve/gitlab.d.ts.map +0 -1
  112. package/node_modules/@gitdot/clone-lib/dist/resolve/gitlab.js +0 -124
  113. package/node_modules/@gitdot/clone-lib/dist/resolve/gitlab.js.map +0 -1
  114. package/node_modules/@gitdot/clone-lib/dist/resolve/index.d.ts +0 -12
  115. package/node_modules/@gitdot/clone-lib/dist/resolve/index.d.ts.map +0 -1
  116. package/node_modules/@gitdot/clone-lib/dist/resolve/index.js +0 -31
  117. package/node_modules/@gitdot/clone-lib/dist/resolve/index.js.map +0 -1
  118. package/node_modules/@gitdot/clone-lib/dist/resolve/manifest.d.ts +0 -32
  119. package/node_modules/@gitdot/clone-lib/dist/resolve/manifest.d.ts.map +0 -1
  120. package/node_modules/@gitdot/clone-lib/dist/resolve/manifest.js +0 -159
  121. package/node_modules/@gitdot/clone-lib/dist/resolve/manifest.js.map +0 -1
  122. package/node_modules/@gitdot/clone-lib/dist/resolve/member.d.ts +0 -44
  123. package/node_modules/@gitdot/clone-lib/dist/resolve/member.d.ts.map +0 -1
  124. package/node_modules/@gitdot/clone-lib/dist/resolve/member.js +0 -163
  125. package/node_modules/@gitdot/clone-lib/dist/resolve/member.js.map +0 -1
  126. package/node_modules/@gitdot/clone-lib/dist/resolve/resolve.d.ts +0 -18
  127. package/node_modules/@gitdot/clone-lib/dist/resolve/resolve.d.ts.map +0 -1
  128. package/node_modules/@gitdot/clone-lib/dist/resolve/resolve.js +0 -155
  129. package/node_modules/@gitdot/clone-lib/dist/resolve/resolve.js.map +0 -1
  130. package/node_modules/@gitdot/clone-lib/dist/types.d.ts +0 -225
  131. package/node_modules/@gitdot/clone-lib/dist/types.d.ts.map +0 -1
  132. package/node_modules/@gitdot/clone-lib/dist/types.js +0 -9
  133. package/node_modules/@gitdot/clone-lib/dist/types.js.map +0 -1
  134. package/node_modules/@gitdot/clone-lib/package.json +0 -53
  135. package/node_modules/@microwiseai/install-preflight/dist/index.d.ts +0 -27
  136. package/node_modules/@microwiseai/install-preflight/dist/index.d.ts.map +0 -1
  137. package/node_modules/@microwiseai/install-preflight/dist/index.js +0 -26
  138. package/node_modules/@microwiseai/install-preflight/dist/index.js.map +0 -1
  139. package/node_modules/@microwiseai/install-preflight/dist/policy.d.ts +0 -42
  140. package/node_modules/@microwiseai/install-preflight/dist/policy.d.ts.map +0 -1
  141. package/node_modules/@microwiseai/install-preflight/dist/policy.js +0 -79
  142. package/node_modules/@microwiseai/install-preflight/dist/policy.js.map +0 -1
  143. package/node_modules/@microwiseai/install-preflight/dist/preflight.d.ts +0 -18
  144. package/node_modules/@microwiseai/install-preflight/dist/preflight.d.ts.map +0 -1
  145. package/node_modules/@microwiseai/install-preflight/dist/preflight.js +0 -0
  146. package/node_modules/@microwiseai/install-preflight/dist/preflight.js.map +0 -1
  147. package/node_modules/@microwiseai/install-preflight/dist/resolvers.d.ts +0 -26
  148. package/node_modules/@microwiseai/install-preflight/dist/resolvers.d.ts.map +0 -1
  149. package/node_modules/@microwiseai/install-preflight/dist/resolvers.js +0 -63
  150. package/node_modules/@microwiseai/install-preflight/dist/resolvers.js.map +0 -1
  151. package/node_modules/@microwiseai/install-preflight/dist/semver.d.ts +0 -45
  152. package/node_modules/@microwiseai/install-preflight/dist/semver.d.ts.map +0 -1
  153. package/node_modules/@microwiseai/install-preflight/dist/semver.js +0 -195
  154. package/node_modules/@microwiseai/install-preflight/dist/semver.js.map +0 -1
  155. package/node_modules/@microwiseai/install-preflight/dist/types.d.ts +0 -136
  156. package/node_modules/@microwiseai/install-preflight/dist/types.d.ts.map +0 -1
  157. package/node_modules/@microwiseai/install-preflight/dist/types.js +0 -11
  158. package/node_modules/@microwiseai/install-preflight/dist/types.js.map +0 -1
  159. package/node_modules/@microwiseai/install-preflight/package.json +0 -49
@@ -23,6 +23,75 @@ const EXACT_SEMVER = /^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d
23
23
  export function isExactSemver(v) {
24
24
  return typeof v === 'string' && EXACT_SEMVER.test(v);
25
25
  }
26
+ /**
27
+ * Parse an exact semver into its components (build metadata is ignored for
28
+ * precedence). Returns null when `v` is not a single exact semver. Reuses the
29
+ * module's canonical EXACT_SEMVER regex — no `semver` package dependency (see
30
+ * the file header for why this codebase stays zero-dependency on semver).
31
+ */
32
+ function parseSemver(v) {
33
+ if (typeof v !== 'string')
34
+ return null;
35
+ const m = EXACT_SEMVER.exec(v.trim());
36
+ if (!m)
37
+ return null;
38
+ const prerelease = [];
39
+ if (m[4]) {
40
+ for (const id of m[4].split('.')) {
41
+ prerelease.push(/^\d+$/.test(id) ? Number(id) : id);
42
+ }
43
+ }
44
+ return { major: Number(m[1]), minor: Number(m[2]), patch: Number(m[3]), prerelease };
45
+ }
46
+ /**
47
+ * Compare two exact semvers by SemVer-spec precedence.
48
+ * Returns -1 if a < b, 0 if equal precedence, 1 if a > b. Throws if either side
49
+ * is not an exact semver (callers that may see non-exact input should guard with
50
+ * isExactSemver first).
51
+ */
52
+ export function compareSemver(a, b) {
53
+ const pa = parseSemver(a);
54
+ const pb = parseSemver(b);
55
+ if (!pa || !pb)
56
+ throw new Error(`compareSemver: invalid semver "${!pa ? a : b}"`);
57
+ for (const k of ['major', 'minor', 'patch']) {
58
+ if (pa[k] !== pb[k])
59
+ return pa[k] < pb[k] ? -1 : 1;
60
+ }
61
+ // A version WITHOUT prerelease outranks one WITH (1.0.0 > 1.0.0-rc.1).
62
+ const aPre = pa.prerelease;
63
+ const bPre = pb.prerelease;
64
+ if (aPre.length === 0 && bPre.length === 0)
65
+ return 0;
66
+ if (aPre.length === 0)
67
+ return 1;
68
+ if (bPre.length === 0)
69
+ return -1;
70
+ const len = Math.min(aPre.length, bPre.length);
71
+ for (let i = 0; i < len; i++) {
72
+ const x = aPre[i];
73
+ const y = bPre[i];
74
+ if (x === y)
75
+ continue;
76
+ const xNum = typeof x === 'number';
77
+ const yNum = typeof y === 'number';
78
+ // Numeric identifiers always rank lower than alphanumeric ones.
79
+ if (xNum && !yNum)
80
+ return -1;
81
+ if (!xNum && yNum)
82
+ return 1;
83
+ if (xNum && yNum)
84
+ return x < y ? -1 : 1;
85
+ return x < y ? -1 : 1;
86
+ }
87
+ if (aPre.length === bPre.length)
88
+ return 0;
89
+ return aPre.length < bPre.length ? -1 : 1;
90
+ }
91
+ /** True iff exact semver `a` is strictly lower precedence than `b`. */
92
+ export function ltSemver(a, b) {
93
+ return compareSemver(a, b) < 0;
94
+ }
26
95
  /** Parse the version pin out of an extends spec like "@ist/minimal@0.6.11". */
27
96
  function extendsVersion(spec) {
28
97
  const atIdx = spec.lastIndexOf('@');
@@ -1 +1 @@
1
- {"version":3,"file":"version-validator.js","sourceRoot":"","sources":["../../src/lib/version-validator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"version-validator.js","sourceRoot":"","sources":["../../src/lib/version-validator.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,YAAY,GAChB,qLAAqL,CAAC;AAExL,kFAAkF;AAClF,MAAM,UAAU,aAAa,CAAC,CAAU;IACtC,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACvD,CAAC;AAUD;;;;;GAKG;AACH,SAAS,WAAW,CAAC,CAAU;IAC7B,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACvC,MAAM,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACtC,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpB,MAAM,UAAU,GAA2B,EAAE,CAAC;IAC9C,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACT,KAAK,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YACjC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC;AACvF,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,CAAS,EAAE,CAAS;IAChD,MAAM,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAC1B,MAAM,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAC1B,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAElF,KAAK,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAU,EAAE,CAAC;QACrD,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAAE,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrD,CAAC;IAED,uEAAuE;IACvE,MAAM,IAAI,GAAG,EAAE,CAAC,UAAU,CAAC;IAC3B,MAAM,IAAI,GAAG,EAAE,CAAC,UAAU,CAAC;IAC3B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IACrD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAChC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC,CAAC;IAEjC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,IAAI,CAAC,KAAK,CAAC;YAAE,SAAS;QACtB,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,QAAQ,CAAC;QACnC,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,QAAQ,CAAC;QACnC,gEAAgE;QAChE,IAAI,IAAI,IAAI,CAAC,IAAI;YAAE,OAAO,CAAC,CAAC,CAAC;QAC7B,IAAI,CAAC,IAAI,IAAI,IAAI;YAAE,OAAO,CAAC,CAAC;QAC5B,IAAI,IAAI,IAAI,IAAI;YAAE,OAAQ,CAAY,GAAI,CAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChE,OAAQ,CAAY,GAAI,CAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM;QAAE,OAAO,CAAC,CAAC;IAC1C,OAAO,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,QAAQ,CAAC,CAAS,EAAE,CAAS;IAC3C,OAAO,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;AACjC,CAAC;AAaD,+EAA+E;AAC/E,SAAS,cAAc,CAAC,IAAY;IAClC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACpC,uEAAuE;IACvE,iEAAiE;IACjE,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IACtC,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AACrC,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,qBAAqB,CAAC,QAAkB;IACtD,MAAM,UAAU,GAAuB,EAAE,CAAC;IAE1C,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAE,GAA4B,EAAQ,EAAE;QACrE,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC5B,UAAU,CAAC,IAAI,CAAC;oBACd,KAAK;oBACL,OAAO,EAAE,GAAG;oBACZ,OAAO,EAAE,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;oBAChE,MAAM,EAAE,OAAO,KAAK,EAAE,IAAI,OAAO,IAAI,IAAI;wBACvC,CAAC,CAAC,kBAAkB;wBACpB,CAAC,CAAC,IAAI,OAAO,wEAAwE;iBACxF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;IAElC,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QACrB,KAAK,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAChE,QAAQ,CAAC,WAAW,SAAS,EAAE,EAAE,GAAG,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC;QAC9B,MAAM,GAAG,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACjB,UAAU,CAAC,IAAI,CAAC;gBACd,KAAK,EAAE,SAAS;gBAChB,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,EAAE;gBACX,MAAM,EAAE,6GAA6G;aACtH,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/B,UAAU,CAAC,IAAI,CAAC;gBACd,KAAK,EAAE,SAAS;gBAChB,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,GAAG;gBACZ,MAAM,EAAE,oBAAoB,GAAG,0BAA0B;aAC1D,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,uBAAuB,CAAC,UAA8B;IACpE,MAAM,KAAK,GAAG;QACZ,+BAA+B,UAAU,CAAC,MAAM,iBAAiB;YAC/D,qEAAqE;KACxE,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,OAAO,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,WAAW,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5G,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,11 @@
1
1
  {
2
2
  "name": "@microwiseai/snapshot",
3
- "version": "0.5.2",
3
+ "version": "0.7.0",
4
4
  "description": "CLI for installing IST Snapshot packages",
5
+ "publishConfig": {
6
+ "registry": "https://registry.npmjs.org/",
7
+ "access": "public"
8
+ },
5
9
  "type": "module",
6
10
  "main": "./dist/lib.js",
7
11
  "types": "./dist/lib.d.ts",
@@ -27,13 +31,14 @@
27
31
  "test:run": "vitest run",
28
32
  "lint": "eslint src",
29
33
  "prepublishOnly": "npm run build",
30
- "publish:both": "node scripts/publish.mjs"
34
+ "publish:npm": "set -a; . ./.env; set +a; npm publish --access public",
35
+ "publish:glpkg": "glpkg publish --git-tag false --push false",
36
+ "publish:all": "npm run publish:npm && npm run publish:glpkg"
31
37
  },
32
38
  "files": [
33
39
  "dist",
34
40
  "node_modules/@microwiseai",
35
- "node_modules/@ist",
36
- "node_modules/@gitdot"
41
+ "node_modules/@ist"
37
42
  ],
38
43
  "keywords": [
39
44
  "snapshot",
@@ -44,11 +49,7 @@
44
49
  "author": "IST Team",
45
50
  "license": "MIT",
46
51
  "dependencies": {
47
- "@gitdot/clone-lib": "^0.2.0",
48
- "@microwiseai/distkit": "^0.4.0",
49
- "@microwiseai/distkit-schema": "^0.4.0",
50
52
  "@microwiseai/import-telemetry": "^0.1.0",
51
- "@microwiseai/install-preflight": "0.1.0",
52
53
  "@microwiseai/license": "^0.1.4",
53
54
  "@microwiseai/skit": "^0.1.19",
54
55
  "@microwiseai/snapshot-dedup": "0.2.0",
@@ -70,24 +71,13 @@
70
71
  "node": ">=18.0.0"
71
72
  },
72
73
  "bundleDependencies": [
73
- "@gitdot/clone-lib",
74
74
  "@microwiseai/import-telemetry",
75
- "@microwiseai/install-preflight",
76
75
  "@microwiseai/license",
77
76
  "@microwiseai/skit",
78
77
  "@microwiseai/snapshot-dedup",
79
78
  "@microwiseai/snapshot-parallel"
80
79
  ],
81
80
  "glpkg": {
82
- "groups": {
83
- "microwiseai": [
84
- "@gitdot/clone-lib"
85
- ]
86
- },
87
81
  "group": "microwiseai"
88
- },
89
- "repository": {
90
- "type": "git",
91
- "url": "git+https://gitlab.com/microwiseai/snapshot.git"
92
82
  }
93
83
  }
@@ -1,21 +0,0 @@
1
- /**
2
- * `snapshot clone-all` — clone the full SOURCE closure a snapshot declares.
3
- *
4
- * Thin adapter over the published, typed @gitdot/clone-lib@0.2.0: it loads
5
- * snapshot.json (the install set + registry scope→group), resolves it to a
6
- * resolved-lock (S2), writes snapshot.lock.json, and clones the closure. All
7
- * real logic — name→projectId resolution, coordinate/visibility/commitSha
8
- * pinning, closure cloning, structured reporting — lives in the library.
9
- *
10
- * The GitLab token is the caller's own (getGitlabToken → glpkg token /
11
- * GITLAB_TOKEN), decoupled from the install proxy: cloning is plain git, judged
12
- * by repo visibility + caller access.
13
- */
14
- export interface CloneAllOptions {
15
- manifest?: string;
16
- mode?: string;
17
- dest?: string;
18
- json?: boolean;
19
- }
20
- export declare function cloneAllCommand(options?: CloneAllOptions): Promise<void>;
21
- //# sourceMappingURL=clone-all.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"clone-all.d.ts","sourceRoot":"","sources":["../../src/commands/clone-all.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAsB,eAAe,CAAC,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6DlF"}
@@ -1,57 +0,0 @@
1
- import chalk from 'chalk';
2
- import { readFileSync, mkdirSync } from 'fs';
3
- import { join } from 'path';
4
- import { resolveFromManifest, cloneFromLock, writeLock, createGitLabApi } from '@gitdot/clone-lib';
5
- import { getGitlabToken } from '../lib/config.js';
6
- export async function cloneAllCommand(options = {}) {
7
- const manifestPath = options.manifest || 'snapshot.json';
8
- const mode = options.mode === 'pinned' ? 'pinned' : 'head';
9
- const dest = options.dest || process.cwd();
10
- const token = getGitlabToken();
11
- if (!token) {
12
- console.error(chalk.red('Error: no GitLab token. Set GITLAB_TOKEN or configure glpkg (glpkg config save <token>).'));
13
- process.exit(1);
14
- }
15
- let manifest;
16
- try {
17
- manifest = JSON.parse(readFileSync(manifestPath, 'utf8'));
18
- }
19
- catch (err) {
20
- console.error(chalk.red(`Error: could not read manifest "${manifestPath}": ${err.message}`));
21
- process.exit(1);
22
- return;
23
- }
24
- const registry = manifest.registry || {};
25
- const subset = manifest.name;
26
- const api = createGitLabApi({ token, host: 'gitlab.com' });
27
- const { lock, warnings } = await resolveFromManifest(manifest, {
28
- api,
29
- scopes: Object.keys(registry),
30
- subset,
31
- });
32
- mkdirSync(dest, { recursive: true });
33
- const lockPath = join(dest, 'snapshot.lock.json');
34
- writeLock(lockPath, lock);
35
- const report = await cloneFromLock(lockPath, { mode, dest });
36
- if (options.json) {
37
- // --json is the primary contract: emit the structured report verbatim.
38
- console.log(JSON.stringify({ report, lock: lockPath, warnings }, null, 2));
39
- }
40
- else {
41
- console.log(chalk.blue.bold('snapshot clone-all'));
42
- console.log(chalk.gray(`manifest: ${manifestPath} | mode: ${mode} | dest: ${dest}`));
43
- console.log(chalk.gray(`lock: ${lockPath}`));
44
- console.log(`cloned ${chalk.green(report.cloned.length)} | ` +
45
- `skipped ${report.skipped.length} | ` +
46
- `no-access ${report['skipped-no-access'].length} | ` +
47
- `not-found ${report['not-found'].length} | ` +
48
- `failed ${chalk.red(report.failed.length)}`);
49
- console.log(chalk.gray(`closureSize ${report.closureSize} | credentialsNeeded ${report.credentialsNeeded}`));
50
- for (const w of warnings)
51
- console.log(chalk.yellow(`⚠ ${w}`));
52
- }
53
- if (report.failed.length > 0 || report['not-found'].length > 0) {
54
- process.exitCode = 1;
55
- }
56
- }
57
- //# sourceMappingURL=clone-all.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"clone-all.js","sourceRoot":"","sources":["../../src/commands/clone-all.ts"],"names":[],"mappings":"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"}
@@ -1,31 +0,0 @@
1
- import type { Snapshot } from '../lib/types.js';
2
- import { type SnapshotPreflightResult } from '../lib/preflight-adapter.js';
3
- export interface PreflightOptions {
4
- /**
5
- * Transitive-closure discovery. Commander's `--no-transitive` sets this to
6
- * false; default (undefined/true) enables discovery.
7
- */
8
- transitive?: boolean;
9
- /** dist-tag this publish targets (default 'latest'). */
10
- tag?: string;
11
- verbose?: boolean;
12
- /** Emit the structured report as JSON. */
13
- json?: boolean;
14
- }
15
- /**
16
- * Resolve the preflight target into a snapshot: a snapshot spec is fetched from
17
- * the registry; anything else is read from the local filesystem. Defaults to
18
- * ./snapshot.json when no target is given.
19
- */
20
- export declare function resolvePreflightTarget(target?: string): Promise<Snapshot>;
21
- /**
22
- * Run preflight and return the result WITHOUT exiting. Reused by the publish
23
- * gate so it can decide how to abort.
24
- */
25
- export declare function runPreflight(snapshot: Snapshot, options?: PreflightOptions): Promise<SnapshotPreflightResult>;
26
- /**
27
- * `snapshot preflight <manifest|snapshot-name>` command handler.
28
- * Exits non-zero when the snapshot would fail for an anonymous end-user.
29
- */
30
- export declare function preflightCommand(target: string | undefined, options: PreflightOptions): Promise<void>;
31
- //# sourceMappingURL=preflight.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"preflight.d.ts","sourceRoot":"","sources":["../../src/commands/preflight.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAsC,KAAK,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAE/G,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,wDAAwD;IACxD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,0CAA0C;IAC1C,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAoBD;;;;GAIG;AACH,wBAAsB,sBAAsB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAI/E;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,QAAQ,EAClB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,uBAAuB,CAAC,CAMlC;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkC3G"}
@@ -1,83 +0,0 @@
1
- import { readFile, stat } from 'node:fs/promises';
2
- import { isAbsolute, join } from 'node:path';
3
- import chalk from 'chalk';
4
- import { fetchSnapshotFromRepo } from '../lib/gitlab.js';
5
- import { runSnapshotPreflight, formatReport } from '../lib/preflight-adapter.js';
6
- /** True when `target` looks like a snapshot spec (@scope/name[@version]) rather than a path. */
7
- function isSnapshotSpec(target) {
8
- return target.startsWith('@') && target.includes('/');
9
- }
10
- /** Load a snapshot.json from a file path or directory. */
11
- async function loadLocalSnapshot(target) {
12
- let path = isAbsolute(target) ? target : join(process.cwd(), target);
13
- try {
14
- const s = await stat(path);
15
- if (s.isDirectory())
16
- path = join(path, 'snapshot.json');
17
- }
18
- catch {
19
- throw new Error(`Path not found: ${target}`);
20
- }
21
- const content = await readFile(path, 'utf-8');
22
- return JSON.parse(content);
23
- }
24
- /**
25
- * Resolve the preflight target into a snapshot: a snapshot spec is fetched from
26
- * the registry; anything else is read from the local filesystem. Defaults to
27
- * ./snapshot.json when no target is given.
28
- */
29
- export async function resolvePreflightTarget(target) {
30
- if (!target)
31
- return loadLocalSnapshot('snapshot.json');
32
- if (isSnapshotSpec(target))
33
- return fetchSnapshotFromRepo(target);
34
- return loadLocalSnapshot(target);
35
- }
36
- /**
37
- * Run preflight and return the result WITHOUT exiting. Reused by the publish
38
- * gate so it can decide how to abort.
39
- */
40
- export async function runPreflight(snapshot, options = {}) {
41
- return runSnapshotPreflight(snapshot, {
42
- includeTransitive: options.transitive !== false,
43
- distTag: options.tag ?? 'latest',
44
- log: options.verbose ? (m) => console.log(chalk.dim(` ${m}`)) : undefined,
45
- });
46
- }
47
- /**
48
- * `snapshot preflight <manifest|snapshot-name>` command handler.
49
- * Exits non-zero when the snapshot would fail for an anonymous end-user.
50
- */
51
- export async function preflightCommand(target, options) {
52
- try {
53
- const snapshot = await resolvePreflightTarget(target);
54
- if (!options.json) {
55
- console.log();
56
- console.log(chalk.cyan(`Preflight: ${snapshot.name}@${snapshot.version}`));
57
- }
58
- const { report, warnings } = await runPreflight(snapshot, options);
59
- if (options.json) {
60
- console.log(JSON.stringify({ ...report, warnings }, null, 2));
61
- if (!report.ok)
62
- process.exit(1);
63
- return;
64
- }
65
- for (const w of warnings)
66
- console.warn(chalk.yellow(` ⚠ ${w}`));
67
- if (report.ok) {
68
- console.log(chalk.green(`✓ ${formatReport(report)}`));
69
- console.log();
70
- return;
71
- }
72
- console.error();
73
- console.error(chalk.red(formatReport(report)));
74
- console.error();
75
- process.exit(1);
76
- }
77
- catch (error) {
78
- console.error();
79
- console.error(chalk.red('Preflight error:'), error instanceof Error ? error.message : String(error));
80
- process.exit(1);
81
- }
82
- }
83
- //# sourceMappingURL=preflight.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"preflight.js","sourceRoot":"","sources":["../../src/commands/preflight.ts"],"names":[],"mappings":"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"}
@@ -1,102 +0,0 @@
1
- /**
2
- * ============================================================================
3
- * Phase-2b §1.2/§1.3/§1.4 — flag-on walkClosure → manifest → lock (ACTIVE)
4
- * ============================================================================
5
- *
6
- * distkit is linked into snapshot via local symlinks (workspace file:link):
7
- * node_modules/@microwiseai/distkit → distkit/packages/core (fresh dist)
8
- * node_modules/@microwiseai/distkit-schema → distkit/packages/schema (0.3.0)
9
- * so the §1.2 spec imports resolve to the REAL, distkit-owned algorithm.
10
- *
11
- * PIPELINE (SSOT §1.2b + §1.3 recommended path):
12
- *
13
- * collectNpmClosureRoots(snapshot) // §1.1 (shipped, unchanged)
14
- * → ClosureRoot[]
15
- * → resolveManifestToLock(DistkitManifest, roots, { npm }) // §1.3 (one call)
16
- * │ walkClosure (BFS, cycle-safe, multi-parent dedup, deterministic)
17
- * │ npm adapter over the SCOPE-ROUTING PackumentPort (decision A)
18
- * │ intent join: source/group/url/installTarget/accessTier
19
- * → LockfileV2 (digest-bound, full B2 closure incl. public deps — decision B)
20
- *
21
- * GATED behind SNAPSHOT_DISTKIT_CLOSURE (off by default). On NO live install path
22
- * yet — install-resolution CUTOVER (§5 step 6) is a separate, post-QA round.
23
- *
24
- * ★ DECISION A (routing): the npm adapter runs over
25
- * {@link createScopeRoutingPackumentPort} — PRIVATE scopes → proxy + token,
26
- * PUBLIC → npmjs token-less. Token can NOT leak to npmjs (see the port).
27
- * ★ DECISION B (scope): the lock is the FULL closure including public transitive
28
- * deps (materially larger than legacy /resolve-deps — owner-signed-off).
29
- * ★ GUARDRAILS: (1) private=token-in-port, fail-loud on unentitled read;
30
- * (2) public=token-less; (3) accessTier OBSERVATION-ONLY (no enforcement here);
31
- * (4) legacy /resolve-deps NOT called on this path.
32
- * ★ §1.4 FAIL-LOUD: a partial closure ⇒ a wrong lock. This path never degrades —
33
- * unresolved roots/domain errors from the collector are surfaced as a hard
34
- * error (see {@link buildNpmAdapterForSnapshot}); adapter/walker throws propagate.
35
- */
36
- import { type ResolvedPackageInput, type LockfileV2 } from '@microwiseai/distkit';
37
- /** Re-export distkit's real types for downstream (§1.3+) callers. */
38
- export type { ResolvedPackageInput, LockfileV2 };
39
- /** Options shared by the flag-on resolution entrypoints. */
40
- export interface ResolveViaDistkitOptions {
41
- /** restrict roots to these scopes (passthrough to the §1.1 collector). */
42
- scopes?: string[];
43
- /** proxy base url for the PRIVATE lane. Default {@link REGISTRY_PROXY_URL}. */
44
- proxyUrl?: string;
45
- /** npmjs base url for the PUBLIC lane. Default distkit's NPMJS_PUBLIC_REGISTRY_URL. */
46
- npmjsUrl?: string;
47
- /** session/PAT token for the PRIVATE lane. Default {@link getLicenseKey}. */
48
- token?: string;
49
- /** injectable fetch (tests). */
50
- fetchImpl?: typeof fetch;
51
- /**
52
- * `lock.generatedFor` label (e.g. "@ist/minimal@0.6.25"). When omitted for the
53
- * lock path, it is derived by fetching the snapshot's version.
54
- */
55
- generatedFor?: string;
56
- }
57
- /**
58
- * FLAG-ON closure candidate (§1.2b). Returns the walked `ResolvedPackageInput[]`
59
- * (full B2 closure incl. public deps) — used by the parity harness. For the
60
- * digest-bound lock, use {@link resolveSnapshotToLock}.
61
- *
62
- * @throws on flag-off, §1.4 partial closure, or any adapter/walker error (fail-loud).
63
- */
64
- export declare function resolveClosureViaDistkit(snapshotName: string, options?: ResolveViaDistkitOptions): Promise<ResolvedPackageInput[]>;
65
- /**
66
- * §5-step6 install-resolution path — resolve the transitive npm closure from an
67
- * EXPLICIT set of already-resolved pins (the roots the preflight adapter computed
68
- * from the snapshot's install/packages/skits maps), WITHOUT re-walking the
69
- * snapshot graph. This is the walkClosure replacement for the legacy
70
- * `/resolve-deps` call on the install-resolution path (behind the flag).
71
- *
72
- * Returns the FULL B2 closure (private + public transitive deps, roots excluded).
73
- * The install consumer (preflight) filters to the lane(s) it probes.
74
- *
75
- * @param pins already-resolved direct npm pins (name + exact version).
76
- * @param privateScopes the snapshot's registry scopes (drive the routing port +
77
- * source intent — PRIVATE→proxy+token, PUBLIC→npmjs token-less).
78
- * @throws on flag-off, §1.4 partial closure (an unfetchable root manifest), or any
79
- * adapter/walker error (fail-loud — a partial closure ⇒ a wrong result).
80
- */
81
- export declare function resolveTransitiveClosureFromPins(pins: ReadonlyArray<{
82
- name: string;
83
- version: string;
84
- }>, privateScopes: readonly string[], options?: ResolveViaDistkitOptions): Promise<ResolvedPackageInput[]>;
85
- /**
86
- * §1.3 + lock emit — resolve a snapshot to a deterministic, digest-bound
87
- * {@link LockfileV2} via distkit's `resolveManifestToLock`.
88
- *
89
- * Intent join (per closure node), decision A/B:
90
- * - source ← scope-based `ResolveFromFn` (PRIVATE→`proxy`⇒our-proxy;
91
- * PUBLIC→`native`⇒npmjs-public), via distkit `defaultResolvedFrom`.
92
- * - group/url← `resolveManifestToLock`'s router over the built `registry`
93
- * (private scope → group + proxy url; public → forced npmjs url).
94
- * - installer← ecosystem default (walker) — npm⇒npm.
95
- * - installTarget ← default `cli-global`.
96
- * - accessTier ← OBSERVATION-ONLY default `public` (guardrail 3; authority is
97
- * fetch/install, never this lock).
98
- *
99
- * @throws on flag-off, §1.4 partial closure, unresolved routing, or fail-loud walk.
100
- */
101
- export declare function resolveSnapshotToLock(snapshotName: string, options?: ResolveViaDistkitOptions): Promise<LockfileV2>;
102
- //# sourceMappingURL=distkit-closure-bridge.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"distkit-closure-bridge.d.ts","sourceRoot":"","sources":["../../src/lib/distkit-closure-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,EAIL,KAAK,oBAAoB,EAEzB,KAAK,UAAU,EAKhB,MAAM,sBAAsB,CAAC;AAa9B,qEAAqE;AACrE,YAAY,EAAE,oBAAoB,EAAE,UAAU,EAAE,CAAC;AAEjD,4DAA4D;AAC5D,MAAM,WAAW,wBAAwB;IACvC,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uFAAuF;IACvF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6EAA6E;IAC7E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gCAAgC;IAChC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAyDD;;;;;;GAMG;AACH,wBAAsB,wBAAwB,CAC5C,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAGjC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,gCAAgC,CACpD,IAAI,EAAE,aAAa,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,EACtD,aAAa,EAAE,SAAS,MAAM,EAAE,EAChC,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,oBAAoB,EAAE,CAAC,CA2BjC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,qBAAqB,CACzC,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,UAAU,CAAC,CAuCrB"}