@drawcall/market 0.1.98 → 0.2.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 (104) hide show
  1. package/README.md +7 -4
  2. package/dist/asset-implementation.d.ts +3 -3
  3. package/dist/asset-implementation.d.ts.map +1 -1
  4. package/dist/cli.js +15 -3
  5. package/dist/cli.js.map +1 -1
  6. package/dist/client.d.ts +14 -0
  7. package/dist/client.d.ts.map +1 -1
  8. package/dist/client.js +18 -0
  9. package/dist/client.js.map +1 -1
  10. package/dist/commands/install.js +10 -7
  11. package/dist/commands/install.js.map +1 -1
  12. package/dist/commands/list.d.ts +5 -5
  13. package/dist/commands/list.d.ts.map +1 -1
  14. package/dist/commands/list.js +22 -9
  15. package/dist/commands/list.js.map +1 -1
  16. package/dist/commands/pack.d.ts.map +1 -1
  17. package/dist/commands/pack.js +2 -2
  18. package/dist/commands/pack.js.map +1 -1
  19. package/dist/commands/search.d.ts +2 -0
  20. package/dist/commands/search.d.ts.map +1 -1
  21. package/dist/commands/search.js +14 -2
  22. package/dist/commands/search.js.map +1 -1
  23. package/dist/commands/sync.d.ts +6 -0
  24. package/dist/commands/sync.d.ts.map +1 -0
  25. package/dist/commands/sync.js +22 -0
  26. package/dist/commands/sync.js.map +1 -0
  27. package/dist/commands/upload.d.ts.map +1 -1
  28. package/dist/commands/upload.js +20 -10
  29. package/dist/commands/upload.js.map +1 -1
  30. package/dist/contract.d.ts +4 -6
  31. package/dist/contract.d.ts.map +1 -1
  32. package/dist/contract.js +1 -2
  33. package/dist/contract.js.map +1 -1
  34. package/dist/index.d.ts +5 -4
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +5 -2
  37. package/dist/index.js.map +1 -1
  38. package/dist/install.d.ts.map +1 -1
  39. package/dist/install.js +69 -27
  40. package/dist/install.js.map +1 -1
  41. package/dist/output.d.ts +3 -4
  42. package/dist/output.d.ts.map +1 -1
  43. package/dist/output.js +40 -7
  44. package/dist/output.js.map +1 -1
  45. package/dist/pack.d.ts +36 -6
  46. package/dist/pack.d.ts.map +1 -1
  47. package/dist/pack.js +230 -57
  48. package/dist/pack.js.map +1 -1
  49. package/dist/package-json.d.ts +4 -3
  50. package/dist/package-json.d.ts.map +1 -1
  51. package/dist/package-json.js +3 -1
  52. package/dist/package-json.js.map +1 -1
  53. package/dist/resolve.d.ts +8 -1
  54. package/dist/resolve.d.ts.map +1 -1
  55. package/dist/resolve.js +35 -3
  56. package/dist/resolve.js.map +1 -1
  57. package/dist/schemas.d.ts +19 -7
  58. package/dist/schemas.d.ts.map +1 -1
  59. package/dist/schemas.js +22 -7
  60. package/dist/schemas.js.map +1 -1
  61. package/dist/skill.d.ts +1 -1
  62. package/dist/skill.d.ts.map +1 -1
  63. package/dist/skill.js +4 -2
  64. package/dist/skill.js.map +1 -1
  65. package/dist/v1/client.d.ts +15 -0
  66. package/dist/v1/client.d.ts.map +1 -0
  67. package/dist/v1/client.js +18 -0
  68. package/dist/v1/client.js.map +1 -0
  69. package/dist/v1/contract.d.ts +206 -0
  70. package/dist/v1/contract.d.ts.map +1 -0
  71. package/dist/v1/contract.js +77 -0
  72. package/dist/v1/contract.js.map +1 -0
  73. package/dist/v1/index.d.ts +3 -0
  74. package/dist/v1/index.d.ts.map +1 -0
  75. package/dist/v1/index.js +3 -0
  76. package/dist/v1/index.js.map +1 -0
  77. package/package.json +2 -1
  78. package/skills/market/SKILL.md +4 -2
  79. package/src/asset-implementation.ts +3 -3
  80. package/src/cli.ts +20 -4
  81. package/src/client.ts +26 -0
  82. package/src/commands/install.ts +11 -8
  83. package/src/commands/list.ts +28 -14
  84. package/src/commands/pack.ts +7 -2
  85. package/src/commands/search.ts +21 -2
  86. package/src/commands/sync.ts +30 -0
  87. package/src/commands/upload.ts +26 -11
  88. package/src/contract.ts +0 -3
  89. package/src/index.ts +13 -3
  90. package/src/install.ts +89 -35
  91. package/src/output.ts +52 -11
  92. package/src/pack.ts +317 -70
  93. package/src/package-json.ts +7 -4
  94. package/src/resolve.ts +47 -4
  95. package/src/schemas.ts +32 -8
  96. package/src/skill.ts +4 -2
  97. package/src/v1/client.ts +28 -0
  98. package/src/v1/contract.ts +140 -0
  99. package/src/v1/index.ts +2 -0
  100. package/dist/market-lock.d.ts +0 -16
  101. package/dist/market-lock.d.ts.map +0 -1
  102. package/dist/market-lock.js +0 -48
  103. package/dist/market-lock.js.map +0 -1
  104. package/src/market-lock.ts +0 -68
package/dist/pack.d.ts CHANGED
@@ -1,5 +1,6 @@
1
+ import type { MarketClient } from './client.js';
1
2
  import type { AssetInstallMetadata } from './contract.js';
2
- import { type AssetType } from './schemas.js';
3
+ import { type AssetDependencies, type AssetType } from './schemas.js';
3
4
  export interface PackDependencySpecs {
4
5
  npm?: string[];
5
6
  asset?: string[];
@@ -14,15 +15,16 @@ export interface PackPolicy {
14
15
  readPackageJsonDependencies: boolean;
15
16
  omitUnchangedInstalledFiles: boolean;
16
17
  }
17
- export type FetchFileManifest = (name: string, version: string) => Promise<Record<string, string>>;
18
+ export type FetchFileManifest = (name: string, range: string) => Promise<Record<string, string>>;
18
19
  export interface PackAssetOptions {
19
20
  cwd?: string;
20
21
  dependencies: ParsedPackDependencies;
21
22
  policy?: PackPolicy;
22
23
  /**
23
- * Fetch the server's content hashes for an installed dependency version (see `asset.fileManifest`),
24
- * so a template omits its unchanged installed dependency files. Content hashes are no longer stored
25
- * locally, so omitting needs the API omit this (or a failing fetch) and those files are kept.
24
+ * Fetch the server's content hashes for a dependency's files (see `asset.fileManifest`), given
25
+ * the declared range. Pack matches local files against these hashes by content independent of
26
+ * path, so renamed installed files are omitted too and recorded as aliases. Omit this (or a
27
+ * failing fetch) and the dependency's files are kept.
26
28
  */
27
29
  fetchFileManifest?: FetchFileManifest;
28
30
  }
@@ -30,12 +32,20 @@ export interface PackedAsset {
30
32
  sourcePath: string;
31
33
  zip: Uint8Array;
32
34
  npmDependencies: Record<string, string>;
33
- assetDependencies: Record<string, string>;
35
+ assetDependencies: AssetDependencies;
34
36
  skillDependencies: Record<string, string>;
35
37
  omittedUnchangedInstalledFiles: boolean;
36
38
  /** Number of zip entries dropped because a `.gitignore` inside the zip excluded them. */
37
39
  gitignoredFiles: number;
38
40
  }
41
+ export declare function sha256(bytes: Uint8Array): string;
42
+ /**
43
+ * A `FetchFileManifest` backed by the Market API. The manifest endpoint needs an exact version, so
44
+ * an exact declared range is used directly and any other range resolves to the latest version —
45
+ * without a local lockfile the installed version is not recorded, and content addressing keeps a
46
+ * mismatch safe: a stale hash simply fails to match and the file is kept.
47
+ */
48
+ export declare function fileManifestForRange(asset: MarketClient['asset']): FetchFileManifest;
39
49
  export declare function packAsset(zipFilter: string, opts: PackAssetOptions): Promise<PackedAsset>;
40
50
  export declare function parsePackDependencies(specs: PackDependencySpecs): ParsedPackDependencies;
41
51
  export declare function packPolicyForType(type: AssetType | undefined): PackPolicy | undefined;
@@ -52,4 +62,24 @@ export declare function parseVersionedDeps(specs: string[], kind: 'npm' | 'asset
52
62
  * first `=` is treated as the separator.
53
63
  */
54
64
  export declare function parseSkillDeps(specs: string[]): Record<string, string>;
65
+ export interface AssetDependencySync {
66
+ projectRoot: string;
67
+ /** Whether package.json was rewritten. */
68
+ changed: boolean;
69
+ assetDependencies: AssetDependencies;
70
+ /** Dependency files whose canonical bytes were found nowhere (locally modified or deleted). */
71
+ missing: Array<{
72
+ name: string;
73
+ path: string;
74
+ }>;
75
+ /** Dependencies left untouched because their manifest could not be fetched. */
76
+ skipped: string[];
77
+ }
78
+ /**
79
+ * Update the aliases in package.json `assetDependencies` to match where each dependency's files
80
+ * currently live — the standalone form of what pack does before omitting (`market sync`). Renamed
81
+ * files gain an alias, files back at their canonical path lose theirs, and dependencies whose
82
+ * manifest cannot be fetched are reported as skipped rather than blindly rewritten.
83
+ */
84
+ export declare function syncAssetDependencies(cwd: string, fetchFileManifest: FetchFileManifest): Promise<AssetDependencySync>;
55
85
  //# sourceMappingURL=pack.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pack.d.ts","sourceRoot":"","sources":["../src/pack.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AAOzD,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,cAAc,CAAA;AAExE,MAAM,WAAW,mBAAmB;IAClC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;CACjB;AAED,MAAM,WAAW,sBAAsB;IACrC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACvC,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACzC,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC1C;AAED,MAAM,WAAW,UAAU;IACzB,2BAA2B,EAAE,OAAO,CAAA;IACpC,2BAA2B,EAAE,OAAO,CAAA;CACrC;AAED,MAAM,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;AAElG,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,YAAY,EAAE,sBAAsB,CAAA;IACpC,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;CACtC;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAA;IAClB,GAAG,EAAE,UAAU,CAAA;IACf,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACvC,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACzC,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACzC,8BAA8B,EAAE,OAAO,CAAA;IACvC,yFAAyF;IACzF,eAAe,EAAE,MAAM,CAAA;CACxB;AAED,wBAAsB,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC,CAyD/F;AAuKD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,mBAAmB,GAAG,sBAAsB,CAMxF;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAMrF;AAED,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,oBAAoB,GAAG,SAAS,GACzC,UAAU,CAKZ;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAgBjG;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAiBtE"}
1
+ {"version":3,"file":"pack.d.ts","sourceRoot":"","sources":["../src/pack.ts"],"names":[],"mappings":"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"}
package/dist/pack.js CHANGED
@@ -1,11 +1,37 @@
1
+ import { createHash } from 'crypto';
1
2
  import * as fs from 'fs/promises';
2
3
  import * as path from 'path';
3
4
  import { unzipSync, zipSync } from 'fflate';
4
5
  import ignore from 'ignore';
5
6
  import { findInstallRoot } from './install.js';
6
- import { readMarketLock, sha256 } from './market-lock.js';
7
- import { packageJsonAssetDependenciesFromFiles, packageJsonNpmDependenciesFromFiles, } from './package-json.js';
8
- import { MAX_UPLOAD_ZIP_SIZE_BYTES } from './schemas.js';
7
+ import { packageJsonAssetDependencies, packageJsonAssetDependenciesFromFiles, packageJsonNpmDependenciesFromFiles, parsePackageJson, } from './package-json.js';
8
+ import { MAX_UPLOAD_ZIP_SIZE_BYTES, assetDependencyAlias, assetDependencyRange, assetDependencyValue, semverSchema, } from './schemas.js';
9
+ export function sha256(bytes) {
10
+ return createHash('sha256').update(bytes).digest('hex');
11
+ }
12
+ /**
13
+ * A `FetchFileManifest` backed by the Market API. The manifest endpoint needs an exact version, so
14
+ * an exact declared range is used directly and any other range resolves to the latest version —
15
+ * without a local lockfile the installed version is not recorded, and content addressing keeps a
16
+ * mismatch safe: a stale hash simply fails to match and the file is kept.
17
+ */
18
+ export function fileManifestForRange(asset) {
19
+ return async (name, range) => {
20
+ const exact = exactRangeVersion(range);
21
+ const meta = await asset.exact({
22
+ name,
23
+ ...(exact ? { version: exact } : {}),
24
+ includeUnapproved: true,
25
+ });
26
+ if (!meta)
27
+ return {};
28
+ return asset.fileManifest({ name, version: meta.version ?? meta.latestVersion });
29
+ };
30
+ }
31
+ function exactRangeVersion(range) {
32
+ const candidate = range.trim().replace(/^=/u, '');
33
+ return semverSchema.safeParse(candidate).success ? candidate : null;
34
+ }
9
35
  export async function packAsset(zipFilter, opts) {
10
36
  const cwd = opts.cwd ?? process.cwd();
11
37
  // A directory packs without ever zipping the full app first: gitignored trees are never read,
@@ -31,12 +57,17 @@ export async function packAsset(zipFilter, opts) {
31
57
  : {};
32
58
  const npmDependencies = { ...packageJsonNpmDependencies, ...opts.dependencies.npmDependencies };
33
59
  // Drop anything the zip's own .gitignore excludes (node_modules, build output, secrets…), then —
34
- // for templates — omit unchanged installed dependency files. Only removals happen, so a smaller
35
- // count means something was dropped; re-zip only then.
60
+ // for templates — omit each installed dependency file at its resolved location (matched by
61
+ // content hash, so renamed copies are dropped too and recorded as aliases; duplicates ship).
62
+ // Only removals happen, so a smaller count means something was dropped; re-zip only then.
36
63
  const { kept: withoutIgnored, gitignored } = applyGitignore(sourceFiles);
37
- const files = policy.omitUnchangedInstalledFiles
38
- ? await withoutUnchangedInstalledFiles(withoutIgnored, assetDependencies, cwd, opts.fetchFileManifest)
39
- : withoutIgnored;
64
+ let files = withoutIgnored;
65
+ let finalAssetDependencies = assetDependencies;
66
+ if (policy.omitUnchangedInstalledFiles) {
67
+ const omitted = await withoutInstalledDependencyFiles(withoutIgnored, assetDependencies, opts.fetchFileManifest);
68
+ files = omitted.kept;
69
+ finalAssetDependencies = omitted.assetDependencies;
70
+ }
40
71
  const originalCount = Object.keys(sourceFiles).length;
41
72
  const afterIgnoreCount = Object.keys(withoutIgnored).length;
42
73
  const finalCount = Object.keys(files).length;
@@ -44,15 +75,18 @@ export async function packAsset(zipFilter, opts) {
44
75
  sourcePath: zipFile,
45
76
  zip: finalCount < originalCount ? zipSync(files) : sourceZip,
46
77
  npmDependencies,
47
- assetDependencies,
78
+ assetDependencies: finalAssetDependencies,
48
79
  skillDependencies: opts.dependencies.skillDependencies,
49
80
  omittedUnchangedInstalledFiles: finalCount < afterIgnoreCount,
50
81
  gitignoredFiles: gitignored,
51
82
  };
52
83
  }
53
84
  // Pack straight from a project directory. Walk order matters for speed: `.gitignore` rules prune
54
- // whole subtrees before anything is read, lock-hash checks read only files a dependency owns, and
55
- // only the survivors are ever held in memory / compressed.
85
+ // whole subtrees before anything is read, and only the survivors are ever held in memory /
86
+ // compressed. Installed dependency files are matched by content hash independent of their path —
87
+ // so renamed copies are omitted too (exactly one per dependency file; duplicates ship). The
88
+ // resolved location is recorded as an alias on the dependency entry and written back to
89
+ // package.json, which is how a later install restores the renamed layout.
56
90
  async function packDirectory(dir, opts) {
57
91
  const hasRootPackageJson = Boolean(await maybeStat(path.join(dir, 'package.json')));
58
92
  const policy = opts.policy ?? {
@@ -73,22 +107,41 @@ async function packDirectory(dir, opts) {
73
107
  : {}),
74
108
  ...opts.dependencies.npmDependencies,
75
109
  };
76
- // Content hashes of installed dependency files (from the server), so an unchanged one is dropped
77
- // after a single read.
78
- const hashesByPath = policy.omitUnchangedInstalledFiles
79
- ? await installedDependencyHashes(dir, assetDependencies, opts.fetchFileManifest)
80
- : new Map();
110
+ const index = policy.omitUnchangedInstalledFiles
111
+ ? await dependencyFileIndex(assetDependencies, opts.fetchFileManifest)
112
+ : emptyDependencyFileIndex();
113
+ const dependencyHashes = new Set(index.files.map((file) => file.hash));
114
+ // Files whose bytes match a dependency file are deferred: whether one is omitted or ships (a
115
+ // duplicate copy) is only known once the whole tree is hashed, and deferring keeps dependency
116
+ // bytes out of memory during the walk.
81
117
  const files = {};
82
- let omittedInstalled = 0;
118
+ const hashesByPath = new Map();
119
+ const deferred = [];
83
120
  for (const relative of walk.kept) {
84
121
  const content = new Uint8Array(await fs.readFile(path.join(dir, relative)));
85
- const lockedHash = hashesByPath.get(relative);
86
- if (lockedHash && lockedHash === sha256(content)) {
87
- omittedInstalled += 1;
122
+ if (dependencyHashes.size === 0) {
123
+ files[relative] = content;
124
+ continue;
125
+ }
126
+ const hash = sha256(content);
127
+ hashesByPath.set(relative, hash);
128
+ if (dependencyHashes.has(hash)) {
129
+ deferred.push(relative);
88
130
  continue;
89
131
  }
90
132
  files[relative] = content;
91
133
  }
134
+ const layout = resolveDependencyLayout(assetDependencies, index, hashesByPath);
135
+ for (const relative of deferred) {
136
+ if (layout.omit.has(relative))
137
+ continue;
138
+ files[relative] = new Uint8Array(await fs.readFile(path.join(dir, relative)));
139
+ }
140
+ if (policy.readPackageJsonDependencies && hasRootPackageJson) {
141
+ const rewritten = await writeBackAssetDependencies(dir, layout.assetDependencies);
142
+ if (rewritten && files['package.json'])
143
+ files['package.json'] = rewritten;
144
+ }
92
145
  const zip = zipSync(files);
93
146
  if (zip.byteLength >= MAX_UPLOAD_ZIP_SIZE_BYTES) {
94
147
  throw new Error('Packed zip must be smaller than 1 GB');
@@ -97,9 +150,9 @@ async function packDirectory(dir, opts) {
97
150
  sourcePath: dir,
98
151
  zip,
99
152
  npmDependencies,
100
- assetDependencies,
153
+ assetDependencies: layout.assetDependencies,
101
154
  skillDependencies: opts.dependencies.skillDependencies,
102
- omittedUnchangedInstalledFiles: omittedInstalled > 0,
155
+ omittedUnchangedInstalledFiles: layout.omit.size > 0,
103
156
  gitignoredFiles: walk.ignored,
104
157
  };
105
158
  }
@@ -143,8 +196,9 @@ function toPosix(p) {
143
196
  }
144
197
  const GITIGNORE_FILENAME = '.gitignore';
145
198
  // Directories that never belong in a published asset — VCS/tooling metadata, reinstallable
146
- // dependencies, and the market's own lock dir (`.drawcall/market-lock.json`). Excluded structurally
147
- // in every pack path, regardless of any `.gitignore`, so a re-uploaded asset never ships them.
199
+ // dependencies, and the market's own state dir (`.drawcall`, holding the install mutex). Excluded
200
+ // structurally in every pack path, regardless of any `.gitignore`, so a re-uploaded asset never
201
+ // ships them.
148
202
  const ALWAYS_IGNORED_DIRS = new Set(['.git', 'node_modules', '.drawcall']);
149
203
  function hasAlwaysIgnoredSegment(posixPath) {
150
204
  return posixPath.split('/').some((segment) => ALWAYS_IGNORED_DIRS.has(segment));
@@ -256,10 +310,13 @@ export function parseSkillDeps(specs) {
256
310
  function mergeAssetDependencies(fromPackageJson, explicit) {
257
311
  const merged = { ...fromPackageJson };
258
312
  for (const [name, range] of Object.entries(explicit)) {
259
- if (name in merged && merged[name] !== range) {
260
- throw new Error(`Conflicting asset dependency "${name}": package.json has ${merged[name]}, --asset has ${range}`);
313
+ const existing = merged[name];
314
+ if (existing !== undefined && assetDependencyRange(existing) !== range) {
315
+ throw new Error(`Conflicting asset dependency "${name}": package.json has ${assetDependencyRange(existing)}, --asset has ${range}`);
261
316
  }
262
- merged[name] = range;
317
+ // A matching package.json entry wins: it may carry aliases the flag form cannot express.
318
+ if (existing === undefined)
319
+ merged[name] = range;
263
320
  }
264
321
  return merged;
265
322
  }
@@ -270,51 +327,167 @@ function inferPackPolicy(files) {
270
327
  omitUnchangedInstalledFiles: hasRootPackageJson,
271
328
  };
272
329
  }
273
- // Drop dependency files whose bytes still match the installed asset's canonical content, so a
274
- // template ships only its own (edited or new) files. Returns the surviving entries.
275
- async function withoutUnchangedInstalledFiles(files, assetDependencies, cwd, fetchFileManifest) {
276
- const hashesByPath = await installedDependencyHashes(cwd, assetDependencies, fetchFileManifest);
277
- if (hashesByPath.size === 0)
278
- return files;
279
- const kept = {};
330
+ // Drop each dependency file at its resolved location (one copy per file duplicates ship as the
331
+ // user's own content) so a template ships only its own (edited or new) files. Returns the
332
+ // surviving entries plus the dependencies with freshly resolved aliases applied.
333
+ async function withoutInstalledDependencyFiles(files, assetDependencies, fetchFileManifest) {
334
+ const index = await dependencyFileIndex(assetDependencies, fetchFileManifest);
335
+ if (index.files.length === 0)
336
+ return { kept: files, assetDependencies };
337
+ const hashesByPath = new Map();
338
+ const entryByNormalized = new Map();
280
339
  for (const [file, content] of Object.entries(files)) {
281
340
  const normalizedPath = normalizedZipPath(file);
282
- const canonicalHash = normalizedPath ? hashesByPath.get(normalizedPath) : undefined;
283
- if (canonicalHash && canonicalHash === sha256(content))
341
+ if (!normalizedPath || normalizedPath.endsWith('/'))
284
342
  continue;
285
- kept[file] = content;
343
+ hashesByPath.set(normalizedPath, sha256(content));
344
+ entryByNormalized.set(normalizedPath, file);
286
345
  }
287
- return kept;
346
+ const layout = resolveDependencyLayout(assetDependencies, index, hashesByPath);
347
+ const omittedEntries = new Set([...layout.omit].flatMap((omitted) => entryByNormalized.get(omitted) ?? []));
348
+ const kept = Object.fromEntries(Object.entries(files).filter(([file]) => !omittedEntries.has(file)));
349
+ return { kept, assetDependencies: layout.assetDependencies };
350
+ }
351
+ function emptyDependencyFileIndex() {
352
+ return { files: [], fetched: new Set() };
288
353
  }
289
354
  /**
290
- * The canonical content hash of every file belonging to a declared asset dependency, keyed by install
291
- * path. Read the installed version of each dependency from the lock, then fetch that version's hashes
292
- * from the server (`asset.fileManifest`). Returns an empty map when there's nothing to omit or no way
355
+ * The canonical content hash of every file belonging to a declared asset dependency, fetched from
356
+ * the server (`asset.fileManifest`). Returns an empty index when there's nothing to omit or no way
293
357
  * to fetch (offline / no client) — pack then keeps all files rather than guessing.
294
358
  */
295
- async function installedDependencyHashes(root, assetDependencies, fetchFileManifest) {
296
- const hashesByPath = new Map();
297
- const dependencyNames = Object.keys(assetDependencies);
298
- if (!fetchFileManifest || dependencyNames.length === 0)
299
- return hashesByPath;
300
- const lock = await readMarketLock(await findInstallRoot(root));
301
- const manifests = await Promise.all(dependencyNames.map(async (name) => {
302
- const installed = lock.assets[name];
303
- if (!installed)
304
- return {};
359
+ async function dependencyFileIndex(assetDependencies, fetchFileManifest) {
360
+ const index = emptyDependencyFileIndex();
361
+ const entries = Object.entries(assetDependencies);
362
+ if (!fetchFileManifest || entries.length === 0)
363
+ return index;
364
+ const manifests = await Promise.all(entries.map(async ([name, value]) => {
305
365
  try {
306
- return await fetchFileManifest(name, installed.version);
366
+ return { name, manifest: await fetchFileManifest(name, assetDependencyRange(value)) };
307
367
  }
308
368
  catch {
309
369
  // Can't reach the server for this dependency — keep its files rather than wrongly omitting them.
310
- return {};
370
+ return null;
311
371
  }
312
372
  }));
313
- for (const manifest of manifests) {
314
- for (const [file, hash] of Object.entries(manifest))
315
- hashesByPath.set(file, hash);
373
+ for (const result of manifests) {
374
+ // An empty manifest is "unavailable", not "zero files": a real version always has files, but
375
+ // the server returns {} for an unresolvable asset (deleted / private without access) or one
376
+ // too large for manifest computation. Treating it as fetched would wipe the dep's aliases.
377
+ if (!result || Object.keys(result.manifest).length === 0)
378
+ continue;
379
+ index.fetched.add(result.name);
380
+ for (const [file, hash] of Object.entries(result.manifest)) {
381
+ index.files.push({ name: result.name, canonicalPath: file, hash });
382
+ }
316
383
  }
317
- return hashesByPath;
384
+ return index;
385
+ }
386
+ /**
387
+ * Resolve where each dependency file lives in the project, by content hash. Exactly one project
388
+ * copy is claimed per dependency file: the already-recorded alias target if its bytes still match
389
+ * (stable across runs), else the canonical path, else the lexicographically first matching copy —
390
+ * that copy is omitted from packs and recorded as the alias; further identical copies are the
391
+ * user's own content. Stale aliases drop: a renamed file that was since modified ships as user
392
+ * content and reinstall restores the canonical path.
393
+ */
394
+ function resolveDependencyLayout(declared, index, hashesByPath) {
395
+ const pathsByHash = new Map();
396
+ for (const [filePath, hash] of hashesByPath) {
397
+ pathsByHash.set(hash, [...(pathsByHash.get(hash) ?? []), filePath]);
398
+ }
399
+ for (const paths of pathsByHash.values())
400
+ paths.sort();
401
+ const omit = new Set();
402
+ const missing = [];
403
+ const aliases = {};
404
+ for (const file of index.files) {
405
+ const declaredValue = declared[file.name];
406
+ const declaredAlias = declaredValue === undefined
407
+ ? undefined
408
+ : assetDependencyAlias(declaredValue)[file.canonicalPath];
409
+ const candidates = (pathsByHash.get(file.hash) ?? []).filter((p) => !omit.has(p));
410
+ if (candidates.length === 0) {
411
+ missing.push({ name: file.name, canonicalPath: file.canonicalPath });
412
+ continue;
413
+ }
414
+ const target = declaredAlias !== undefined && candidates.includes(declaredAlias)
415
+ ? declaredAlias
416
+ : candidates.includes(file.canonicalPath)
417
+ ? file.canonicalPath
418
+ : candidates[0];
419
+ omit.add(target);
420
+ if (target !== file.canonicalPath) {
421
+ aliases[file.name] = { ...(aliases[file.name] ?? {}), [file.canonicalPath]: target };
422
+ }
423
+ }
424
+ const assetDependencies = {};
425
+ for (const [name, value] of Object.entries(declared)) {
426
+ assetDependencies[name] = index.fetched.has(name)
427
+ ? assetDependencyValue(assetDependencyRange(value), aliases[name] ?? {})
428
+ : value;
429
+ }
430
+ return { omit, assetDependencies, missing };
431
+ }
432
+ /**
433
+ * Update the aliases in package.json `assetDependencies` to match where each dependency's files
434
+ * currently live — the standalone form of what pack does before omitting (`market sync`). Renamed
435
+ * files gain an alias, files back at their canonical path lose theirs, and dependencies whose
436
+ * manifest cannot be fetched are reported as skipped rather than blindly rewritten.
437
+ */
438
+ export async function syncAssetDependencies(cwd, fetchFileManifest) {
439
+ const projectRoot = await findInstallRoot(cwd);
440
+ const pkgPath = path.join(projectRoot, 'package.json');
441
+ if (!(await maybeStat(pkgPath))?.isFile()) {
442
+ throw new Error(`No package.json found at ${projectRoot}. Run sync inside a project.`);
443
+ }
444
+ const declared = packageJsonAssetDependencies(await fs.readFile(pkgPath, 'utf-8'), pkgPath);
445
+ const names = Object.keys(declared);
446
+ if (names.length === 0) {
447
+ return { projectRoot, changed: false, assetDependencies: {}, missing: [], skipped: [] };
448
+ }
449
+ const index = await dependencyFileIndex(declared, fetchFileManifest);
450
+ const walk = await walkWithGitignore(projectRoot);
451
+ const hashesByPath = new Map();
452
+ for (const relative of walk.kept) {
453
+ hashesByPath.set(relative, sha256(new Uint8Array(await fs.readFile(path.join(projectRoot, relative)))));
454
+ }
455
+ const layout = resolveDependencyLayout(declared, index, hashesByPath);
456
+ const rewritten = await writeBackAssetDependencies(projectRoot, layout.assetDependencies);
457
+ return {
458
+ projectRoot,
459
+ changed: rewritten !== null,
460
+ assetDependencies: layout.assetDependencies,
461
+ missing: layout.missing.map((file) => ({ name: file.name, path: file.canonicalPath })),
462
+ skipped: names.filter((name) => !index.fetched.has(name)),
463
+ };
464
+ }
465
+ /**
466
+ * Persist detected aliases into the project's package.json (only for dependencies it already
467
+ * declares — flag-only deps stay out of the file). Returns the serialized bytes when something
468
+ * changed so the packed zip can carry the same content.
469
+ */
470
+ async function writeBackAssetDependencies(dir, assetDependencies) {
471
+ const pkgPath = path.join(dir, 'package.json');
472
+ const pkg = parsePackageJson(await fs.readFile(pkgPath, 'utf-8'), pkgPath);
473
+ const declared = pkg.assetDependencies;
474
+ if (!declared)
475
+ return null;
476
+ let changed = false;
477
+ for (const name of Object.keys(declared)) {
478
+ const next = assetDependencies[name];
479
+ if (next === undefined)
480
+ continue;
481
+ if (JSON.stringify(declared[name]) === JSON.stringify(next))
482
+ continue;
483
+ declared[name] = next;
484
+ changed = true;
485
+ }
486
+ if (!changed)
487
+ return null;
488
+ const serialized = JSON.stringify(pkg, null, 2) + '\n';
489
+ await fs.writeFile(pkgPath, serialized);
490
+ return new TextEncoder().encode(serialized);
318
491
  }
319
492
  function normalizedZipPath(file) {
320
493
  const zipPath = file.replace(/\\/g, '/');
package/dist/pack.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"pack.js","sourceRoot":"","sources":["../src/pack.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pack.js","sourceRoot":"","sources":["../src/pack.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,13 @@
1
+ import { type AssetDependencies } from './schemas.js';
1
2
  export interface PackageJson {
2
3
  name?: string;
3
4
  private?: boolean;
4
5
  dependencies?: Record<string, string>;
5
- assetDependencies?: Record<string, string>;
6
+ assetDependencies?: AssetDependencies;
6
7
  [key: string]: unknown;
7
8
  }
8
- export declare function packageJsonAssetDependenciesFromFiles(files: Record<string, Uint8Array>): Record<string, string>;
9
- export declare function packageJsonAssetDependencies(json: string, source: string): Record<string, string>;
9
+ export declare function packageJsonAssetDependenciesFromFiles(files: Record<string, Uint8Array>): AssetDependencies;
10
+ export declare function packageJsonAssetDependencies(json: string, source: string): AssetDependencies;
10
11
  export declare function packageJsonNpmDependenciesFromFiles(files: Record<string, Uint8Array>): Record<string, string>;
11
12
  export declare function parsePackageJson(json: string, source: string): PackageJson;
12
13
  //# sourceMappingURL=package-json.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"package-json.d.ts","sourceRoot":"","sources":["../src/package-json.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACrC,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC1C,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAID,wBAAgB,qCAAqC,CACnD,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAChC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAKxB;AAED,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAMjG;AAMD,wBAAgB,mCAAmC,CACjD,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAChC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CASxB;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW,CAO1E"}
1
+ {"version":3,"file":"package-json.d.ts","sourceRoot":"","sources":["../src/package-json.ts"],"names":[],"mappings":"AACA,OAAO,EAA8B,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAEjF,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACrC,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;IACrC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAMD,wBAAgB,qCAAqC,CACnD,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAChC,iBAAiB,CAKnB;AAED,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,iBAAiB,CAM5F;AAMD,wBAAgB,mCAAmC,CACjD,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAChC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CASxB;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW,CAO1E"}
@@ -1,5 +1,7 @@
1
1
  import { z } from 'zod';
2
+ import { assetDependencyValueSchema } from './schemas.js';
2
3
  const stringRecordSchema = z.record(z.string(), z.string());
4
+ const assetDependenciesRecordSchema = z.record(z.string(), assetDependencyValueSchema);
3
5
  export function packageJsonAssetDependenciesFromFiles(files) {
4
6
  const bytes = files['package.json'];
5
7
  if (!bytes)
@@ -11,7 +13,7 @@ export function packageJsonAssetDependencies(json, source) {
11
13
  const dependencies = parsed.assetDependencies;
12
14
  if (dependencies === undefined)
13
15
  return {};
14
- return stringRecordSchema.parse(dependencies);
16
+ return assetDependenciesRecordSchema.parse(dependencies);
15
17
  }
16
18
  // A template ships a full app, so its package.json `dependencies` ARE its npm dependencies: capture
17
19
  // them on upload (like assetDependencies above) so installing the template into an existing project
@@ -1 +1 @@
1
- {"version":3,"file":"package-json.js","sourceRoot":"","sources":["../src/package-json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAUvB,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAA;AAE3D,MAAM,UAAU,qCAAqC,CACnD,KAAiC;IAEjC,MAAM,KAAK,GAAG,KAAK,CAAC,cAAc,CAAC,CAAA;IACnC,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAA;IAErB,OAAO,4BAA4B,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,cAAc,CAAC,CAAA;AACtF,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,IAAY,EAAE,MAAc;IACvE,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAC7C,MAAM,YAAY,GAAG,MAAM,CAAC,iBAAiB,CAAA;IAC7C,IAAI,YAAY,KAAK,SAAS;QAAE,OAAO,EAAE,CAAA;IAEzC,OAAO,kBAAkB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;AAC/C,CAAC;AAED,oGAAoG;AACpG,oGAAoG;AACpG,qGAAqG;AACrG,sGAAsG;AACtG,MAAM,UAAU,mCAAmC,CACjD,KAAiC;IAEjC,MAAM,KAAK,GAAG,KAAK,CAAC,cAAc,CAAC,CAAA;IACnC,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAA;IAErB,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,cAAc,CAAC,CAAA;IAChF,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAA;IACxC,IAAI,YAAY,KAAK,SAAS;QAAE,OAAO,EAAE,CAAA;IAEzC,OAAO,kBAAkB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;AAC/C,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,MAAc;IAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAA;IAC1C,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACnE,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,6BAA6B,CAAC,CAAA;IACzD,CAAC;IAED,OAAO,MAAqB,CAAA;AAC9B,CAAC"}
1
+ {"version":3,"file":"package-json.js","sourceRoot":"","sources":["../src/package-json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,0BAA0B,EAA0B,MAAM,cAAc,CAAA;AAUjF,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAA;AAE3D,MAAM,6BAA6B,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,0BAA0B,CAAC,CAAA;AAEtF,MAAM,UAAU,qCAAqC,CACnD,KAAiC;IAEjC,MAAM,KAAK,GAAG,KAAK,CAAC,cAAc,CAAC,CAAA;IACnC,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAA;IAErB,OAAO,4BAA4B,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,cAAc,CAAC,CAAA;AACtF,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,IAAY,EAAE,MAAc;IACvE,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAC7C,MAAM,YAAY,GAAG,MAAM,CAAC,iBAAiB,CAAA;IAC7C,IAAI,YAAY,KAAK,SAAS;QAAE,OAAO,EAAE,CAAA;IAEzC,OAAO,6BAA6B,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;AAC1D,CAAC;AAED,oGAAoG;AACpG,oGAAoG;AACpG,qGAAqG;AACrG,sGAAsG;AACtG,MAAM,UAAU,mCAAmC,CACjD,KAAiC;IAEjC,MAAM,KAAK,GAAG,KAAK,CAAC,cAAc,CAAC,CAAA;IACnC,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAA;IAErB,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,cAAc,CAAC,CAAA;IAChF,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAA;IACxC,IAAI,YAAY,KAAK,SAAS;QAAE,OAAO,EAAE,CAAA;IAEzC,OAAO,kBAAkB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;AAC/C,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,MAAc;IAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAA;IAC1C,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACnE,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,6BAA6B,CAAC,CAAA;IACzD,CAAC;IAED,OAAO,MAAqB,CAAA;AAC9B,CAAC"}
package/dist/resolve.d.ts CHANGED
@@ -9,19 +9,26 @@
9
9
  * that they are compatible.
10
10
  */
11
11
  import type { MarketClient } from './client.js';
12
+ import { type AssetDependencies } from './schemas.js';
12
13
  export interface ResolvedAsset {
13
14
  name: string;
14
15
  type: string;
15
16
  version: string;
16
17
  description: string | null;
17
18
  npmDependencies: Record<string, string>;
18
- assetDependencies: Record<string, string>;
19
+ assetDependencies: AssetDependencies;
19
20
  skillDependencies: Record<string, string>;
20
21
  }
21
22
  export interface ResolveResult {
22
23
  assets: ResolvedAsset[];
23
24
  npmDependencies: Record<string, string>;
24
25
  skillDependencies: Record<string, string>;
26
+ /**
27
+ * File aliases declared by dependents, keyed by dependency name: canonical install path → the
28
+ * path the dependent's project keeps the file at. Install writes files through this map (a
29
+ * template whose author renamed a dependency's files reinstalls them at the renamed locations).
30
+ */
31
+ assetAliases?: Record<string, Record<string, string>>;
25
32
  }
26
33
  interface AssetRequest {
27
34
  name: string;