@drawcall/market 0.1.5 → 0.1.7
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.
- package/dist/asset-implementation.d.ts +88 -0
- package/dist/asset-implementation.d.ts.map +1 -0
- package/dist/asset-implementation.js +2 -0
- package/dist/asset-implementation.js.map +1 -0
- package/dist/cli-client.d.ts +2 -2
- package/dist/cli-client.d.ts.map +1 -1
- package/dist/cli-client.js +4 -4
- package/dist/cli-client.js.map +1 -1
- package/dist/cli.js +106 -22
- package/dist/cli.js.map +1 -1
- package/dist/client.d.ts +1 -3
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +4 -12
- package/dist/client.js.map +1 -1
- package/dist/commands/generate.d.ts.map +1 -1
- package/dist/commands/generate.js +9 -4
- package/dist/commands/generate.js.map +1 -1
- package/dist/commands/install.d.ts.map +1 -1
- package/dist/commands/install.js +30 -28
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/logout.js +3 -3
- package/dist/commands/logout.js.map +1 -1
- package/dist/commands/preview.d.ts +9 -0
- package/dist/commands/preview.d.ts.map +1 -0
- package/dist/commands/preview.js +50 -0
- package/dist/commands/preview.js.map +1 -0
- package/dist/commands/search.d.ts +4 -1
- package/dist/commands/search.d.ts.map +1 -1
- package/dist/commands/search.js +20 -10
- package/dist/commands/search.js.map +1 -1
- package/dist/commands/upload.d.ts +9 -0
- package/dist/commands/upload.d.ts.map +1 -0
- package/dist/commands/upload.js +220 -0
- package/dist/commands/upload.js.map +1 -0
- package/dist/config.d.ts +4 -7
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +8 -4
- package/dist/config.js.map +1 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +2 -10
- package/dist/constants.js.map +1 -1
- package/dist/contract.d.ts +37 -134
- package/dist/contract.d.ts.map +1 -1
- package/dist/contract.js +10 -48
- package/dist/contract.js.map +1 -1
- package/dist/generate.d.ts +0 -2
- package/dist/generate.d.ts.map +1 -1
- package/dist/generate.js +5 -22
- package/dist/generate.js.map +1 -1
- package/dist/index.d.ts +5 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -3
- package/dist/index.js.map +1 -1
- package/dist/install.d.ts +1 -1
- package/dist/install.d.ts.map +1 -1
- package/dist/install.js +14 -11
- package/dist/install.js.map +1 -1
- package/dist/output.d.ts +26 -0
- package/dist/output.d.ts.map +1 -0
- package/dist/output.js +52 -0
- package/dist/output.js.map +1 -0
- package/dist/resolve.d.ts.map +1 -1
- package/dist/resolve.js +15 -26
- package/dist/resolve.js.map +1 -1
- package/dist/schemas.d.ts +31 -39
- package/dist/schemas.d.ts.map +1 -1
- package/dist/schemas.js +23 -25
- package/dist/schemas.js.map +1 -1
- package/package.json +13 -4
- package/src/asset-implementation.ts +114 -0
- package/src/cli-client.ts +7 -6
- package/src/cli.ts +146 -29
- package/src/client.ts +5 -15
- package/src/commands/generate.ts +9 -6
- package/src/commands/install.ts +34 -31
- package/src/commands/logout.ts +3 -3
- package/src/commands/preview.ts +69 -0
- package/src/commands/search.ts +27 -11
- package/src/commands/upload.ts +262 -0
- package/src/config.ts +11 -5
- package/src/constants.ts +2 -10
- package/src/contract.ts +22 -120
- package/src/generate.ts +5 -29
- package/src/index.ts +23 -14
- package/src/install.ts +24 -14
- package/src/output.ts +76 -0
- package/src/resolve.ts +22 -38
- package/src/schemas.ts +26 -27
- package/tsconfig.json +2 -1
- package/dist/commands/login.d.ts +0 -10
- package/dist/commands/login.d.ts.map +0 -1
- package/dist/commands/login.js +0 -92
- package/dist/commands/login.js.map +0 -1
- package/dist/internal-contract.d.ts +0 -19
- package/dist/internal-contract.d.ts.map +0 -1
- package/dist/internal-contract.js +0 -19
- package/dist/internal-contract.js.map +0 -1
- package/src/commands/login.ts +0 -113
- package/src/internal-contract.ts +0 -26
package/dist/output.js
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
export function assetVersionRef(name, version) {
|
|
2
|
+
return version ? `${name}@${version}` : name;
|
|
3
|
+
}
|
|
4
|
+
export function assetApproval(approved) {
|
|
5
|
+
return approved ? 'approved' : 'unapproved';
|
|
6
|
+
}
|
|
7
|
+
export function searchSummary(input) {
|
|
8
|
+
const approval = input.includeUnapproved ? 'approved+unapproved' : 'approved';
|
|
9
|
+
const scope = `query="${input.query}" type=${input.type} approval=${approval}`;
|
|
10
|
+
if (input.count === 0) {
|
|
11
|
+
return `No results: ${scope}`;
|
|
12
|
+
}
|
|
13
|
+
return `Results: ${input.count}/${input.total} ${scope}`;
|
|
14
|
+
}
|
|
15
|
+
export function assetSearchResultLine(item, opts = {}) {
|
|
16
|
+
const description = item.description
|
|
17
|
+
? ` | ${compact(item.description, opts.verbose ? 160 : 80)}`
|
|
18
|
+
: '';
|
|
19
|
+
return `- ${assetVersionRef(item.name, item.latestVersion)} | ${item.type} | ${assetApproval(item.approved)}${description}`;
|
|
20
|
+
}
|
|
21
|
+
export function installResult(assetVersions) {
|
|
22
|
+
const label = assetVersions.length === 1 ? 'asset' : 'assets';
|
|
23
|
+
return `Installed ${assetVersions.length} ${label}: ${assetVersions
|
|
24
|
+
.map((asset) => assetVersionRef(asset.name, asset.version))
|
|
25
|
+
.join(', ')}`;
|
|
26
|
+
}
|
|
27
|
+
export function generatedInstallResult(name, version) {
|
|
28
|
+
return `Generated and installed ${assetVersionRef(name, version)}`;
|
|
29
|
+
}
|
|
30
|
+
export function uploadResult(name, version) {
|
|
31
|
+
return `Uploaded ${assetVersionRef(name, version)}`;
|
|
32
|
+
}
|
|
33
|
+
export function unchangedUploadResult(name, version) {
|
|
34
|
+
return `No upload needed: ${assetVersionRef(name, version)} is unchanged`;
|
|
35
|
+
}
|
|
36
|
+
export function previewResult(name, version, out) {
|
|
37
|
+
return `Saved preview for ${assetVersionRef(name, version)}: ${out}`;
|
|
38
|
+
}
|
|
39
|
+
export function loginResult(email, configPath) {
|
|
40
|
+
return `Logged in as ${email} (config: ${configPath})`;
|
|
41
|
+
}
|
|
42
|
+
export function logoutResult(configPath) {
|
|
43
|
+
return configPath ? `Logged out (removed ${configPath})` : 'Already logged out';
|
|
44
|
+
}
|
|
45
|
+
export function errorResult(message) {
|
|
46
|
+
return `Error: ${message}`;
|
|
47
|
+
}
|
|
48
|
+
export function compact(value, max = 96) {
|
|
49
|
+
const normalized = value.replace(/\s+/g, ' ').trim();
|
|
50
|
+
return normalized.length > max ? normalized.slice(0, max - 3) + '...' : normalized;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=output.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,OAAgB;IAC5D,OAAO,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;AAC9C,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,QAAiB;IAC7C,OAAO,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAA;AAC7C,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAM7B;IACC,MAAM,QAAQ,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,UAAU,CAAA;IAC7E,MAAM,KAAK,GAAG,UAAU,KAAK,CAAC,KAAK,UAAU,KAAK,CAAC,IAAI,aAAa,QAAQ,EAAE,CAAA;IAC9E,IAAI,KAAK,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,eAAe,KAAK,EAAE,CAAA;IAC/B,CAAC;IACD,OAAO,YAAY,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,EAAE,CAAA;AAC1D,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,IAAuB,EACvB,OAA8B,EAAE;IAEhC,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW;QAClC,CAAC,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;QAC5D,CAAC,CAAC,EAAE,CAAA;IACN,OAAO,KAAK,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC,IAAI,MAAM,aAAa,CAC1F,IAAI,CAAC,QAAQ,CACd,GAAG,WAAW,EAAE,CAAA;AACnB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,aAAuD;IACnF,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAA;IAC7D,OAAO,aAAa,aAAa,CAAC,MAAM,IAAI,KAAK,KAAK,aAAa;SAChE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;SAC1D,IAAI,CAAC,IAAI,CAAC,EAAE,CAAA;AACjB,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAAY,EAAE,OAAe;IAClE,OAAO,2BAA2B,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAA;AACpE,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,OAAe;IACxD,OAAO,YAAY,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAA;AACrD,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,IAAY,EAAE,OAAe;IACjE,OAAO,qBAAqB,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,eAAe,CAAA;AAC3E,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,OAAe,EAAE,GAAW;IACtE,OAAO,qBAAqB,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,GAAG,EAAE,CAAA;AACtE,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAa,EAAE,UAAkB;IAC3D,OAAO,gBAAgB,KAAK,aAAa,UAAU,GAAG,CAAA;AACxD,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,UAAmB;IAC9C,OAAO,UAAU,CAAC,CAAC,CAAC,uBAAuB,UAAU,GAAG,CAAC,CAAC,CAAC,oBAAoB,CAAA;AACjF,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,OAAe;IACzC,OAAO,UAAU,OAAO,EAAE,CAAA;AAC5B,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,KAAa,EAAE,GAAG,GAAG,EAAE;IAC7C,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;IACpD,OAAO,UAAU,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,UAAU,CAAA;AACpF,CAAC"}
|
package/dist/resolve.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAG/C,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACvC,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC1C;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,aAAa,EAAE,CAAA;IACvB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACxC;AAED,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;CACd;AAED,qBAAa,eAAgB,SAAQ,KAAK;gBAC5B,OAAO,EAAE,MAAM;CAI5B;AAED,wBAAsB,OAAO,CAC3B,MAAM,EAAE,YAAY,CAAC,OAAO,CAAC,EAC7B,QAAQ,EAAE,YAAY,EAAE,EACxB,IAAI,GAAE;IAAE,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAAO,GACzC,OAAO,CAAC,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAG/C,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACvC,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC1C;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,aAAa,EAAE,CAAA;IACvB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACxC;AAED,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;CACd;AAED,qBAAa,eAAgB,SAAQ,KAAK;gBAC5B,OAAO,EAAE,MAAM;CAI5B;AAED,wBAAsB,OAAO,CAC3B,MAAM,EAAE,YAAY,CAAC,OAAO,CAAC,EAC7B,QAAQ,EAAE,YAAY,EAAE,EACxB,IAAI,GAAE;IAAE,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAAO,GACzC,OAAO,CAAC,aAAa,CAAC,CAyExB"}
|
package/dist/resolve.js
CHANGED
|
@@ -15,54 +15,40 @@ export class ResolutionError extends Error {
|
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
17
|
export async function resolve(client, requests, opts = {}) {
|
|
18
|
-
// constraints[assetName] = list of { range, from } constraints
|
|
19
18
|
const constraints = new Map();
|
|
20
|
-
// resolved[assetName] = ResolvedAsset
|
|
21
19
|
const resolved = new Map();
|
|
22
|
-
// cache of fetched metadata
|
|
23
20
|
const metaCache = new Map();
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
addConstraint(constraints, req.name, req.range, '<root>');
|
|
21
|
+
for (const request of requests) {
|
|
22
|
+
addConstraint(constraints, request.name, request.range, '<root>');
|
|
27
23
|
}
|
|
28
|
-
// Iteratively resolve until stable
|
|
29
24
|
let unresolved = getUnresolved(constraints, resolved);
|
|
30
25
|
while (unresolved.length > 0) {
|
|
31
26
|
for (const assetName of unresolved) {
|
|
32
|
-
const meta = await fetchMeta(client, metaCache, assetName);
|
|
27
|
+
const meta = await fetchMeta(client, metaCache, assetName, opts.includeUnapproved ?? false);
|
|
33
28
|
if (!meta) {
|
|
34
29
|
throw new ResolutionError(`Asset "${assetName}" not found.`);
|
|
35
30
|
}
|
|
36
|
-
|
|
37
|
-
const candidates = meta.versions.filter((v) => opts.includeUnapproved || v.approved);
|
|
38
|
-
if (candidates.length === 0) {
|
|
31
|
+
if (!opts.includeUnapproved && !meta.approved) {
|
|
39
32
|
throw new ResolutionError(`Asset "${assetName}" has no ${opts.includeUnapproved ? '' : 'approved '}versions.`);
|
|
40
33
|
}
|
|
41
|
-
// Collect all constraints for this asset
|
|
42
34
|
const assetConstraints = constraints.get(assetName) ?? [];
|
|
43
|
-
|
|
44
|
-
const candidateVersions = candidates.map((c) => c.version);
|
|
45
|
-
const satisfying = candidateVersions.filter((v) => assetConstraints.every((c) => semver.satisfies(v, c.range)));
|
|
46
|
-
if (satisfying.length === 0) {
|
|
35
|
+
if (!assetConstraints.every((c) => semver.satisfies(meta.latestVersion, c.range))) {
|
|
47
36
|
const constraintDesc = assetConstraints
|
|
48
37
|
.map((c) => ` ${c.range} (from ${c.from})`)
|
|
49
38
|
.join('\n');
|
|
50
39
|
throw new ResolutionError(`No version of "${assetName}" satisfies all constraints:\n${constraintDesc}\n` +
|
|
51
|
-
`Available${opts.includeUnapproved ? '' : ' approved'}: ${
|
|
40
|
+
`Available${opts.includeUnapproved ? '' : ' approved'}: ${meta.latestVersion}`);
|
|
52
41
|
}
|
|
53
|
-
const
|
|
54
|
-
const
|
|
55
|
-
const npmDeps = JSON.parse(versionMeta.npmDependencies);
|
|
56
|
-
const assetDeps = JSON.parse(versionMeta.assetDependencies);
|
|
42
|
+
const npmDeps = JSON.parse(meta.npmDependencies);
|
|
43
|
+
const assetDeps = JSON.parse(meta.assetDependencies);
|
|
57
44
|
resolved.set(assetName, {
|
|
58
45
|
name: assetName,
|
|
59
|
-
version:
|
|
46
|
+
version: meta.latestVersion,
|
|
60
47
|
npmDependencies: npmDeps,
|
|
61
48
|
assetDependencies: assetDeps,
|
|
62
49
|
});
|
|
63
|
-
// Add transitive asset dependency constraints
|
|
64
50
|
for (const [depName, depRange] of Object.entries(assetDeps)) {
|
|
65
|
-
addConstraint(constraints, depName, depRange, `${assetName}@${
|
|
51
|
+
addConstraint(constraints, depName, depRange, `${assetName}@${meta.latestVersion}`);
|
|
66
52
|
}
|
|
67
53
|
}
|
|
68
54
|
unresolved = getUnresolved(constraints, resolved);
|
|
@@ -93,10 +79,13 @@ function addConstraint(constraints, name, range, from) {
|
|
|
93
79
|
function getUnresolved(constraints, resolved) {
|
|
94
80
|
return Array.from(constraints.keys()).filter((name) => !resolved.has(name));
|
|
95
81
|
}
|
|
96
|
-
async function fetchMeta(client, cache, name) {
|
|
82
|
+
async function fetchMeta(client, cache, name, includeUnapproved) {
|
|
97
83
|
if (cache.has(name))
|
|
98
84
|
return cache.get(name);
|
|
99
|
-
const meta = await client.
|
|
85
|
+
const meta = await client.exact({
|
|
86
|
+
name,
|
|
87
|
+
includeUnapproved,
|
|
88
|
+
});
|
|
100
89
|
if (meta)
|
|
101
90
|
cache.set(name, meta);
|
|
102
91
|
return meta;
|
package/dist/resolve.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAA;AAqBhC,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACxC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAA;IAC/B,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,MAA6B,EAC7B,QAAwB,EACxB,OAAwC,EAAE;IAE1C
|
|
1
|
+
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"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"}
|
package/dist/schemas.d.ts
CHANGED
|
@@ -1,45 +1,13 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
export declare const ASSET_TYPES: readonly ["
|
|
2
|
+
export declare const ASSET_TYPES: readonly ["model"];
|
|
3
3
|
export type AssetType = (typeof ASSET_TYPES)[number];
|
|
4
4
|
export declare const assetTypeSchema: z.ZodEnum<{
|
|
5
|
-
generic: "generic";
|
|
6
5
|
model: "model";
|
|
7
|
-
hdri: "hdri";
|
|
8
|
-
material: "material";
|
|
9
|
-
music: "music";
|
|
10
6
|
}>;
|
|
11
7
|
export declare const semverSchema: z.ZodString;
|
|
12
8
|
export declare const assetNameSchema: z.ZodString;
|
|
13
9
|
export declare const npmDependenciesSchema: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
14
10
|
export declare const assetDependenciesSchema: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
15
|
-
export declare const uploadGenericSchema: z.ZodObject<{
|
|
16
|
-
name: z.ZodString;
|
|
17
|
-
version: z.ZodString;
|
|
18
|
-
description: z.ZodOptional<z.ZodString>;
|
|
19
|
-
npmDependencies: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
20
|
-
assetDependencies: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
21
|
-
tags: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
22
|
-
}, z.core.$strip>;
|
|
23
|
-
export declare const uploadTypedSchema: z.ZodObject<{
|
|
24
|
-
name: z.ZodString;
|
|
25
|
-
version: z.ZodString;
|
|
26
|
-
description: z.ZodOptional<z.ZodString>;
|
|
27
|
-
tags: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
28
|
-
}, z.core.$strip>;
|
|
29
|
-
export declare const uploadMaterialSchema: z.ZodObject<{
|
|
30
|
-
name: z.ZodString;
|
|
31
|
-
version: z.ZodString;
|
|
32
|
-
description: z.ZodOptional<z.ZodString>;
|
|
33
|
-
tags: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
34
|
-
properties: z.ZodObject<{
|
|
35
|
-
color: z.ZodDefault<z.ZodString>;
|
|
36
|
-
roughness: z.ZodDefault<z.ZodNumber>;
|
|
37
|
-
metalness: z.ZodDefault<z.ZodNumber>;
|
|
38
|
-
normalScale: z.ZodDefault<z.ZodNumber>;
|
|
39
|
-
emissive: z.ZodDefault<z.ZodString>;
|
|
40
|
-
emissiveIntensity: z.ZodDefault<z.ZodNumber>;
|
|
41
|
-
}, z.core.$strip>;
|
|
42
|
-
}, z.core.$strip>;
|
|
43
11
|
export declare const updateProfileSchema: z.ZodObject<{
|
|
44
12
|
name: z.ZodOptional<z.ZodString>;
|
|
45
13
|
image: z.ZodOptional<z.ZodString>;
|
|
@@ -48,18 +16,42 @@ export declare const listAssetsSchema: z.ZodObject<{
|
|
|
48
16
|
page: z.ZodDefault<z.ZodNumber>;
|
|
49
17
|
limit: z.ZodDefault<z.ZodNumber>;
|
|
50
18
|
type: z.ZodOptional<z.ZodEnum<{
|
|
51
|
-
generic: "generic";
|
|
52
19
|
model: "model";
|
|
53
|
-
hdri: "hdri";
|
|
54
|
-
material: "material";
|
|
55
|
-
music: "music";
|
|
56
20
|
}>>;
|
|
57
|
-
|
|
58
|
-
|
|
21
|
+
query: z.ZodOptional<z.ZodString>;
|
|
22
|
+
includeUnapproved: z.ZodDefault<z.ZodBoolean>;
|
|
59
23
|
sort: z.ZodDefault<z.ZodEnum<{
|
|
60
24
|
newest: "newest";
|
|
61
25
|
alphabetical: "alphabetical";
|
|
62
26
|
relevance: "relevance";
|
|
63
27
|
}>>;
|
|
64
28
|
}, z.core.$strip>;
|
|
29
|
+
export declare const exactAssetSchema: z.ZodObject<{
|
|
30
|
+
name: z.ZodString;
|
|
31
|
+
type: z.ZodOptional<z.ZodEnum<{
|
|
32
|
+
model: "model";
|
|
33
|
+
}>>;
|
|
34
|
+
includeUnapproved: z.ZodDefault<z.ZodBoolean>;
|
|
35
|
+
}, z.core.$strip>;
|
|
36
|
+
export declare const uploadZipSchema: z.ZodObject<{
|
|
37
|
+
name: z.ZodString;
|
|
38
|
+
type: z.ZodEnum<{
|
|
39
|
+
model: "model";
|
|
40
|
+
}>;
|
|
41
|
+
version: z.ZodString;
|
|
42
|
+
description: z.ZodOptional<z.ZodString>;
|
|
43
|
+
npmDependencies: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
44
|
+
assetDependencies: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
45
|
+
tags: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
46
|
+
}, z.core.$strip>;
|
|
47
|
+
export declare const downloadZipSchema: z.ZodObject<{
|
|
48
|
+
name: z.ZodString;
|
|
49
|
+
version: z.ZodString;
|
|
50
|
+
}, z.core.$strip>;
|
|
51
|
+
export declare const generateAssetSchema: z.ZodObject<{
|
|
52
|
+
description: z.ZodString;
|
|
53
|
+
type: z.ZodOptional<z.ZodEnum<{
|
|
54
|
+
model: "model";
|
|
55
|
+
}>>;
|
|
56
|
+
}, z.core.$strip>;
|
|
65
57
|
//# sourceMappingURL=schemas.d.ts.map
|
package/dist/schemas.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,eAAO,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,eAAO,MAAM,WAAW,oBAAqB,CAAA;AAC7C,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAA;AAEpD,eAAO,MAAM,eAAe;;EAAsB,CAAA;AAElD,eAAO,MAAM,YAAY,aAKtB,CAAA;AAEH,eAAO,MAAM,eAAe,aAUxB,CAAA;AAEJ,eAAO,MAAM,qBAAqB,qDAA+C,CAAA;AAEjF,eAAO,MAAM,uBAAuB,qDAA+C,CAAA;AAEnF,eAAO,MAAM,mBAAmB;;;iBAG9B,CAAA;AAEF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;iBAO3B,CAAA;AAEF,eAAO,MAAM,gBAAgB;;;;;;iBAI3B,CAAA;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;iBAQ1B,CAAA;AAEF,eAAO,MAAM,iBAAiB;;;iBAG5B,CAAA;AAEF,eAAO,MAAM,mBAAmB;;;;;iBAG9B,CAAA"}
|
package/dist/schemas.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
export const ASSET_TYPES = ['
|
|
2
|
+
export const ASSET_TYPES = ['model'];
|
|
3
3
|
export const assetTypeSchema = z.enum(ASSET_TYPES);
|
|
4
4
|
export const semverSchema = z
|
|
5
5
|
.string()
|
|
@@ -14,40 +14,38 @@ export const assetNameSchema = z
|
|
|
14
14
|
});
|
|
15
15
|
export const npmDependenciesSchema = z.record(z.string(), z.string()).default({});
|
|
16
16
|
export const assetDependenciesSchema = z.record(z.string(), z.string()).default({});
|
|
17
|
-
export const
|
|
17
|
+
export const updateProfileSchema = z.object({
|
|
18
|
+
name: z.string().min(1).max(100).optional(),
|
|
19
|
+
image: z.string().url().optional(),
|
|
20
|
+
});
|
|
21
|
+
export const listAssetsSchema = z.object({
|
|
22
|
+
page: z.number().int().min(1).default(1),
|
|
23
|
+
limit: z.number().int().min(1).max(100).default(20),
|
|
24
|
+
type: assetTypeSchema.optional(),
|
|
25
|
+
query: z.string().max(200).optional(),
|
|
26
|
+
includeUnapproved: z.boolean().default(false),
|
|
27
|
+
sort: z.enum(['newest', 'alphabetical', 'relevance']).default('newest'),
|
|
28
|
+
});
|
|
29
|
+
export const exactAssetSchema = z.object({
|
|
30
|
+
name: assetNameSchema,
|
|
31
|
+
type: assetTypeSchema.optional(),
|
|
32
|
+
includeUnapproved: z.boolean().default(false),
|
|
33
|
+
});
|
|
34
|
+
export const uploadZipSchema = z.object({
|
|
18
35
|
name: assetNameSchema,
|
|
36
|
+
type: assetTypeSchema,
|
|
19
37
|
version: semverSchema,
|
|
20
38
|
description: z.string().max(1000).optional(),
|
|
21
39
|
npmDependencies: npmDependenciesSchema,
|
|
22
40
|
assetDependencies: assetDependenciesSchema,
|
|
23
41
|
tags: z.array(z.string()).default([]),
|
|
24
42
|
});
|
|
25
|
-
export const
|
|
43
|
+
export const downloadZipSchema = z.object({
|
|
26
44
|
name: assetNameSchema,
|
|
27
45
|
version: semverSchema,
|
|
28
|
-
description: z.string().max(1000).optional(),
|
|
29
|
-
tags: z.array(z.string()).default([]),
|
|
30
|
-
});
|
|
31
|
-
export const uploadMaterialSchema = uploadTypedSchema.extend({
|
|
32
|
-
properties: z.object({
|
|
33
|
-
color: z.string().default('#ffffff'),
|
|
34
|
-
roughness: z.number().min(0).max(1).default(0.5),
|
|
35
|
-
metalness: z.number().min(0).max(1).default(0),
|
|
36
|
-
normalScale: z.number().min(0).max(2).default(1),
|
|
37
|
-
emissive: z.string().default('#000000'),
|
|
38
|
-
emissiveIntensity: z.number().min(0).max(10).default(0),
|
|
39
|
-
}),
|
|
40
|
-
});
|
|
41
|
-
export const updateProfileSchema = z.object({
|
|
42
|
-
name: z.string().min(1).max(100).optional(),
|
|
43
|
-
image: z.string().url().optional(),
|
|
44
46
|
});
|
|
45
|
-
export const
|
|
46
|
-
|
|
47
|
-
limit: z.number().int().min(1).max(100).default(20),
|
|
47
|
+
export const generateAssetSchema = z.object({
|
|
48
|
+
description: z.string().min(3).max(1000),
|
|
48
49
|
type: assetTypeSchema.optional(),
|
|
49
|
-
tag: z.string().optional(),
|
|
50
|
-
search: z.string().max(200).optional(),
|
|
51
|
-
sort: z.enum(['newest', 'alphabetical', 'relevance']).default('newest'),
|
|
52
50
|
});
|
|
53
51
|
//# sourceMappingURL=schemas.js.map
|
package/dist/schemas.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,26 +1,35 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@drawcall/market",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.7",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/drawcall-ai/market",
|
|
7
7
|
"directory": "packages/market"
|
|
8
8
|
},
|
|
9
9
|
"type": "module",
|
|
10
|
+
"types": "dist/index.d.ts",
|
|
10
11
|
"exports": {
|
|
11
|
-
".":
|
|
12
|
-
|
|
12
|
+
".": {
|
|
13
|
+
"types": "./dist/index.d.ts",
|
|
14
|
+
"import": "./dist/index.js"
|
|
15
|
+
},
|
|
16
|
+
"./install": {
|
|
17
|
+
"types": "./dist/install-entry.d.ts",
|
|
18
|
+
"import": "./dist/install-entry.js"
|
|
19
|
+
}
|
|
13
20
|
},
|
|
14
21
|
"bin": {
|
|
15
22
|
"market": "./dist/cli.js"
|
|
16
23
|
},
|
|
17
24
|
"dependencies": {
|
|
18
|
-
"@orpc/contract": "^1.0.0",
|
|
19
25
|
"@orpc/client": "^1.0.0",
|
|
26
|
+
"@orpc/contract": "^1.0.0",
|
|
20
27
|
"chalk": "^5.6.2",
|
|
21
28
|
"commander": "^14.0.3",
|
|
29
|
+
"fflate": "^0.8.2",
|
|
22
30
|
"nypm": "^0.6.0",
|
|
23
31
|
"open": "^10.1.0",
|
|
32
|
+
"openid-client": "^6.8.4",
|
|
24
33
|
"ora": "^8.1.1",
|
|
25
34
|
"semver": "^7.7.0",
|
|
26
35
|
"zod": "^4.3.6"
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
AssetSearchResult,
|
|
3
|
+
AssetVersion,
|
|
4
|
+
GenerateAssetResult,
|
|
5
|
+
PaginatedList,
|
|
6
|
+
} from './contract.js'
|
|
7
|
+
import type { AssetType } from './schemas.js'
|
|
8
|
+
|
|
9
|
+
export interface AssetSearchInput {
|
|
10
|
+
page: number
|
|
11
|
+
limit: number
|
|
12
|
+
type?: AssetType
|
|
13
|
+
query?: string
|
|
14
|
+
includeUnapproved: boolean
|
|
15
|
+
sort: 'newest' | 'alphabetical' | 'relevance'
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export interface AssetExactInput {
|
|
19
|
+
name: string
|
|
20
|
+
type?: AssetType
|
|
21
|
+
includeUnapproved: boolean
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export interface AssetUploadZipInput {
|
|
25
|
+
name: string
|
|
26
|
+
type: AssetType
|
|
27
|
+
version: string
|
|
28
|
+
description?: string
|
|
29
|
+
npmDependencies: Record<string, string>
|
|
30
|
+
assetDependencies: Record<string, string>
|
|
31
|
+
tags: string[]
|
|
32
|
+
zip: File
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export interface AssetDownloadZipInput {
|
|
36
|
+
name: string
|
|
37
|
+
version: string
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export interface AssetGenerateInput {
|
|
41
|
+
description: string
|
|
42
|
+
type?: AssetType
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export interface AssetImplementationContext {
|
|
46
|
+
catalog: AssetCatalog
|
|
47
|
+
blobs: BlobStore
|
|
48
|
+
searchIndex?: AssetSearchIndex
|
|
49
|
+
renderModelPreview?: (
|
|
50
|
+
files: Record<string, Uint8Array>,
|
|
51
|
+
model: { path: string; bytes: Uint8Array },
|
|
52
|
+
) => Promise<{ bytes: Uint8Array; contentType: string }>
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export interface AssetCatalog {
|
|
56
|
+
search(input: AssetSearchInput): Promise<PaginatedList<AssetSearchResult>>
|
|
57
|
+
exact(input: AssetExactInput): Promise<AssetSearchResult | null>
|
|
58
|
+
saveVersion(input: SaveAssetVersionInput): Promise<AssetVersion>
|
|
59
|
+
getVersion(input: AssetDownloadZipInput): Promise<AssetVersion | null>
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export interface SaveAssetVersionInput {
|
|
63
|
+
name: string
|
|
64
|
+
type: AssetType
|
|
65
|
+
version: string
|
|
66
|
+
description?: string
|
|
67
|
+
ownerId: string
|
|
68
|
+
approved: boolean
|
|
69
|
+
npmDependencies: Record<string, string>
|
|
70
|
+
assetDependencies: Record<string, string>
|
|
71
|
+
sourceKey: string
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
export interface BlobStore {
|
|
75
|
+
put(key: string, data: ArrayBuffer, contentType?: string): Promise<void>
|
|
76
|
+
get(key: string): Promise<Blob | null>
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
export interface AssetSearchIndexEntry {
|
|
80
|
+
name: string
|
|
81
|
+
description: string
|
|
82
|
+
vector: number[]
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export interface AssetSearchIndex {
|
|
86
|
+
list(type: AssetType): Promise<AssetSearchIndexEntry[]>
|
|
87
|
+
upsert(type: AssetType, entry: AssetSearchIndexEntry): Promise<void>
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
export interface AssetImplementation {
|
|
91
|
+
type: AssetType
|
|
92
|
+
search(
|
|
93
|
+
context: AssetImplementationContext,
|
|
94
|
+
input: AssetSearchInput,
|
|
95
|
+
): Promise<PaginatedList<AssetSearchResult>>
|
|
96
|
+
exact(
|
|
97
|
+
context: AssetImplementationContext,
|
|
98
|
+
input: AssetExactInput,
|
|
99
|
+
): Promise<AssetSearchResult | null>
|
|
100
|
+
uploadZip(
|
|
101
|
+
context: AssetImplementationContext,
|
|
102
|
+
input: AssetUploadZipInput,
|
|
103
|
+
owner: { id: string; role: string },
|
|
104
|
+
): Promise<AssetVersion>
|
|
105
|
+
downloadZip(context: AssetImplementationContext, input: AssetDownloadZipInput): Promise<Blob>
|
|
106
|
+
downloadPreviewImage?(
|
|
107
|
+
context: AssetImplementationContext,
|
|
108
|
+
input: AssetDownloadZipInput,
|
|
109
|
+
): Promise<Blob>
|
|
110
|
+
generate(
|
|
111
|
+
context: AssetImplementationContext,
|
|
112
|
+
input: AssetGenerateInput,
|
|
113
|
+
): Promise<GenerateAssetResult>
|
|
114
|
+
}
|
package/src/cli-client.ts
CHANGED
|
@@ -13,28 +13,29 @@ export class NotLoggedInError extends Error {
|
|
|
13
13
|
export interface CliClientOptions {
|
|
14
14
|
/** Override the API base URL. Takes precedence over config and defaults. */
|
|
15
15
|
baseUrl?: string
|
|
16
|
-
/** Require authentication. When true, throws NotLoggedInError if no
|
|
16
|
+
/** Require authentication. When true, throws NotLoggedInError if no token is available. */
|
|
17
17
|
requireAuth?: boolean
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
export interface CliClient {
|
|
21
21
|
client: MarketClient
|
|
22
22
|
baseUrl: string
|
|
23
|
-
|
|
23
|
+
authToken: string | undefined
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
export async function getCliClient(opts: CliClientOptions = {}): Promise<CliClient> {
|
|
27
27
|
const config = await loadConfig()
|
|
28
|
-
const
|
|
28
|
+
const authToken =
|
|
29
|
+
process.env.DRAWCALL_AUTH_TOKEN ?? process.env.MARKET_API_KEY ?? config?.authToken
|
|
29
30
|
const baseUrl = opts.baseUrl ?? process.env.MARKET_API_URL ?? config?.baseUrl ?? DEFAULT_BASE_URL
|
|
30
31
|
|
|
31
|
-
if (opts.requireAuth && !
|
|
32
|
+
if (opts.requireAuth && !authToken) {
|
|
32
33
|
throw new NotLoggedInError()
|
|
33
34
|
}
|
|
34
35
|
|
|
35
36
|
return {
|
|
36
|
-
client: createMarketClient({ baseUrl,
|
|
37
|
+
client: createMarketClient({ baseUrl, authToken }),
|
|
37
38
|
baseUrl,
|
|
38
|
-
|
|
39
|
+
authToken,
|
|
39
40
|
}
|
|
40
41
|
}
|