@orkestrel/scaffold 0.0.26 → 0.0.27

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.
@@ -2836,10 +2836,18 @@ var Materializer = class Materializer {
2836
2836
  transaction.copy(artifact.path, source, entry?.executable === true);
2837
2837
  }
2838
2838
  #recatalog(entries) {
2839
+ const layers = (0, _src_core.catalogToLayers)(entries);
2840
+ const placed = /* @__PURE__ */ new Map();
2841
+ for (const [index, layer] of layers.entries()) for (const name of layer) placed.set(name, index);
2839
2842
  const table = [
2840
- "| Package | Version |",
2841
- "| --- | --- |",
2842
- ...entries.map((entry) => `| \`${entry.name}\` | ${entry.lookup === "found" ? `\`${entry.version}\`` : this.#cell(entry.note)} |`)
2843
+ "| Package | Version | Layer | Runtime dependencies |",
2844
+ "| --- | --- | --- | --- |",
2845
+ ...entries.map((entry) => {
2846
+ if (entry.lookup !== "found") return `| \`${entry.name}\` | ${this.#cell(entry.note)} | | |`;
2847
+ const layer = placed.get(entry.name);
2848
+ const edges = entry.dependencies.map((dependency) => `\`${dependency.name}\` \`${dependency.range}\``).join(", ");
2849
+ return `| \`${entry.name}\` | \`${entry.version}\` | ${layer === void 0 ? "" : `L${String(layer)}`} | ${edges} |`;
2850
+ })
2843
2851
  ].join("\n");
2844
2852
  return (text) => {
2845
2853
  const opening = text.indexOf(Materializer.#opening);
@@ -3194,7 +3202,8 @@ var Upstream = class Upstream {
3194
3202
  if (version !== void 0) return {
3195
3203
  name,
3196
3204
  lookup: "found",
3197
- version
3205
+ version,
3206
+ dependencies: this.#edges(outcome.content, version)
3198
3207
  };
3199
3208
  return {
3200
3209
  name,
@@ -3202,6 +3211,28 @@ var Upstream = class Upstream {
3202
3211
  note: outcome.lookup === "found" ? Upstream.#unreadable : outcome.note
3203
3212
  };
3204
3213
  }
3214
+ #edges(content, version) {
3215
+ const parsed = (0, _orkestrel_contract.parseJSON)(content);
3216
+ if (!(0, _orkestrel_contract.isRecord)(parsed)) return [];
3217
+ const versions = parsed.versions;
3218
+ if (!(0, _orkestrel_contract.isRecord)(versions)) return [];
3219
+ const manifest = versions[version];
3220
+ if (!(0, _orkestrel_contract.isRecord)(manifest)) return [];
3221
+ const declared = manifest.dependencies;
3222
+ if (!(0, _orkestrel_contract.isRecord)(declared)) return [];
3223
+ const edges = [];
3224
+ for (const [name, range] of Object.entries(declared)) {
3225
+ if (edges.length >= _src_core.MAX_COLLECTION_ITEMS) break;
3226
+ if (typeof range !== "string" || range.length === 0 || range.length > _src_core.MAX_RANGE_LENGTH) continue;
3227
+ if (_src_core.CONTROL_CHARACTER_PATTERN.test(name) || _src_core.CONTROL_CHARACTER_PATTERN.test(range)) continue;
3228
+ if (name.length === 0 || name.length > _src_core.MAX_DEPENDENCY_NAME_LENGTH) continue;
3229
+ edges.push({
3230
+ name,
3231
+ range
3232
+ });
3233
+ }
3234
+ return edges;
3235
+ }
3205
3236
  async #packages(allowance) {
3206
3237
  const url = `${this.#registryBase}/-/org/${Upstream.#scope}/package`;
3207
3238
  const outcome = await this.#read(url, this.#registryTimeout, allowance);