makefx 0.2.1 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/makefx.mjs +18 -12
- package/package.json +1 -1
package/README.md
CHANGED
package/makefx.mjs
CHANGED
|
@@ -5111,7 +5111,7 @@ async function executeUpload(parsed, deps = defaultDeps$11) {
|
|
|
5111
5111
|
const provider = parsed.options.provider;
|
|
5112
5112
|
const rawProviderMetadata = parsed.options["provider-metadata"] ?? parsed.options.providerMetadata ?? parsed.options.provider_metadata;
|
|
5113
5113
|
const rawGenerationProvenance = parsed.options["generation-provenance"] ?? parsed.options.generationProvenance ?? parsed.options.generation_provenance;
|
|
5114
|
-
const
|
|
5114
|
+
const rawSourceVariantIds = parsed.options["source-variants"] ?? parsed.options.sourceVariants ?? parsed.options.sourceVariantIds ?? parsed.options["source-variant"] ?? parsed.options.sourceVariantId ?? parsed.options.parentVariantId;
|
|
5115
5115
|
const rawRelationType = parsed.options["relation-type"] ?? parsed.options.relationType;
|
|
5116
5116
|
const rawActiveVariantBehavior = parsed.options["active-variant-behavior"] ?? parsed.options.activeVariantBehavior;
|
|
5117
5117
|
const rawCollectionIds = parsed.options.collection ?? parsed.options.collections;
|
|
@@ -5128,11 +5128,12 @@ async function executeUpload(parsed, deps = defaultDeps$11) {
|
|
|
5128
5128
|
if (parsed.options["dry-run"] === "true" || parsed.options.dryRun === "true") throw new UploadUsageError("--dry-run is not supported for direct file upload");
|
|
5129
5129
|
if (!spaceId) throw new UploadUsageError("--space is required, or run: makefx init --space <id>");
|
|
5130
5130
|
if (!assetId && !assetName) throw new UploadUsageError("Either --asset or --name is required");
|
|
5131
|
-
if (!sourceVariantId && (parsed.options["relation-type"] || parsed.options.relationType)) throw new UploadUsageError("--relation-type requires --source-variant");
|
|
5132
5131
|
const providerMetadata = parseJsonObjectOption(rawProviderMetadata, "--provider-metadata");
|
|
5133
5132
|
const generationProvenance = parseJsonObjectOption(rawGenerationProvenance, "--generation-provenance");
|
|
5133
|
+
const sourceVariantIds = parseCsvOption$1(rawSourceVariantIds, "--source-variant");
|
|
5134
5134
|
const relationType = normalizeRelationType(rawRelationType);
|
|
5135
5135
|
const activeVariantBehavior = normalizeActiveVariantBehavior(rawActiveVariantBehavior);
|
|
5136
|
+
if (sourceVariantIds.length === 0 && (parsed.options["relation-type"] || parsed.options.relationType)) throw new UploadUsageError("--relation-type requires --source-variant or --source-variants");
|
|
5136
5137
|
const collectionPlacements = parseCollectionPlacements({
|
|
5137
5138
|
collectionIds: rawCollectionIds,
|
|
5138
5139
|
collectionNames: rawCollectionNames,
|
|
@@ -5165,7 +5166,7 @@ async function executeUpload(parsed, deps = defaultDeps$11) {
|
|
|
5165
5166
|
if (fileStat.size > 10485760) throw new Error(`File too large (${(fileStat.size / 1024 / 1024).toFixed(2)}MB). Maximum size: 10MB`);
|
|
5166
5167
|
await preflightUploadOrganization(ctx, deps, {
|
|
5167
5168
|
assetId,
|
|
5168
|
-
|
|
5169
|
+
sourceVariantIds,
|
|
5169
5170
|
collectionPlacements,
|
|
5170
5171
|
manualRelations
|
|
5171
5172
|
});
|
|
@@ -5186,16 +5187,17 @@ async function executeUpload(parsed, deps = defaultDeps$11) {
|
|
|
5186
5187
|
if (provider) formData.append("provider", provider);
|
|
5187
5188
|
if (providerMetadata) formData.append("providerMetadata", JSON.stringify(providerMetadata));
|
|
5188
5189
|
if (generationProvenance) formData.append("generationProvenance", JSON.stringify(generationProvenance));
|
|
5189
|
-
if (
|
|
5190
|
-
parentVariantId
|
|
5190
|
+
if (sourceVariantIds.length > 0) formData.append("lineage", JSON.stringify(sourceVariantIds.map((parentVariantId) => ({
|
|
5191
|
+
parentVariantId,
|
|
5191
5192
|
relationType
|
|
5192
|
-
}
|
|
5193
|
+
}))));
|
|
5193
5194
|
if (!jsonOutput) {
|
|
5194
5195
|
deps.print(`\nUploading "${fileName}" to space ${spaceId}...`);
|
|
5195
5196
|
deps.print(` Media kind: ${mediaType.mediaKind}`);
|
|
5196
5197
|
if (assetId) deps.print(` Target asset: ${assetId}`);
|
|
5197
5198
|
else deps.print(` Creating asset: "${assetName}" (${assetType})`);
|
|
5198
|
-
if (
|
|
5199
|
+
if (sourceVariantIds.length === 1) deps.print(` Source variant: ${sourceVariantIds[0]} (${relationType})`);
|
|
5200
|
+
else if (sourceVariantIds.length > 1) deps.print(` Source variants: ${sourceVariantIds.join(", ")} (${relationType})`);
|
|
5199
5201
|
}
|
|
5200
5202
|
const response = await deps.fetch(`${baseUrl}/api/spaces/${spaceId}/upload`, {
|
|
5201
5203
|
method: "POST",
|
|
@@ -5372,7 +5374,7 @@ function parseManualRelations(input) {
|
|
|
5372
5374
|
}
|
|
5373
5375
|
async function preflightUploadOrganization(ctx, deps, options) {
|
|
5374
5376
|
const needsCollections = options.collectionPlacements.length > 0;
|
|
5375
|
-
const needsAssetState =
|
|
5377
|
+
const needsAssetState = options.sourceVariantIds.length > 0 || options.manualRelations.length > 0 || options.collectionPlacements.some((placement) => placement.pinnedVariantId);
|
|
5376
5378
|
const [collections, state] = await Promise.all([needsCollections ? fetchJson$1(ctx, deps, `/api/spaces/${ctx.spaceId}/collections`) : void 0, needsAssetState ? fetchAssetState(ctx, deps) : void 0]);
|
|
5377
5379
|
if (collections) {
|
|
5378
5380
|
const collectionList = collections.collections ?? [];
|
|
@@ -5387,7 +5389,7 @@ async function preflightUploadOrganization(ctx, deps, options) {
|
|
|
5387
5389
|
}
|
|
5388
5390
|
}
|
|
5389
5391
|
if (!state) return;
|
|
5390
|
-
|
|
5392
|
+
for (const sourceVariantId of options.sourceVariantIds) if (!state.variantsById.has(sourceVariantId)) throw new Error(`Source variant not found in space: ${sourceVariantId}`);
|
|
5391
5393
|
for (const placement of options.collectionPlacements) {
|
|
5392
5394
|
if (!placement.pinnedVariantId) continue;
|
|
5393
5395
|
const pinned = state.variantsById.get(placement.pinnedVariantId);
|
|
@@ -5500,7 +5502,8 @@ Options:
|
|
|
5500
5502
|
--provider <name> Provider provenance for uploaded media
|
|
5501
5503
|
--provider-metadata <json> Provider metadata JSON object
|
|
5502
5504
|
--generation-provenance <json> Extra provenance JSON object
|
|
5503
|
-
--source-variant <
|
|
5505
|
+
--source-variant <ids> Comma-separated source variants for upload lineage
|
|
5506
|
+
--source-variants <ids> Alias for --source-variant
|
|
5504
5507
|
--relation-type <type> Lineage type: derived, refined, or forked (default: derived)
|
|
5505
5508
|
--active-variant-behavior <b> if-missing, set-active, or keep
|
|
5506
5509
|
--collection <ids> Comma-separated collection IDs for the uploaded asset or variant
|
|
@@ -5525,6 +5528,7 @@ Examples:
|
|
|
5525
5528
|
makefx upload hero.png --space abc123 --name "Hero Character"
|
|
5526
5529
|
makefx upload hero.png --space abc123 --name "Hero" --prompt "external render" --provider blender
|
|
5527
5530
|
makefx upload paintover.png --space abc123 --asset def456 --source-variant var123 --relation-type refined
|
|
5531
|
+
makefx upload scene.png --space abc123 --name "Cocina" --type scene --source-variants anna,roman,bg
|
|
5528
5532
|
makefx upload hero.png --space abc123 --name "Hero" --collection collection_cast --collection-role character
|
|
5529
5533
|
makefx upload hero.png --space abc123 --name "Hero" --collection-name "Cast" --collection-role character
|
|
5530
5534
|
makefx upload thumbnail.png --space abc123 --asset asset_thumb --manual-relation thumbnail_for:asset:asset_target
|
|
@@ -19471,6 +19475,7 @@ var UserProfileSchema = object({
|
|
|
19471
19475
|
var SessionConfigSchema = object({
|
|
19472
19476
|
googleClientId: string$1(),
|
|
19473
19477
|
environment: string$1(),
|
|
19478
|
+
mediaCdnBaseUrl: string$1().nullable().optional(),
|
|
19474
19479
|
features: object({ rotation: boolean$1() })
|
|
19475
19480
|
}).openapi("SessionConfig");
|
|
19476
19481
|
var AuthSessionResponseSchema = object({
|
|
@@ -25717,7 +25722,7 @@ Options:
|
|
|
25717
25722
|
}
|
|
25718
25723
|
//#endregion
|
|
25719
25724
|
//#region src/cli/index.ts
|
|
25720
|
-
var CLI_VERSION = "0.2.
|
|
25725
|
+
var CLI_VERSION = "0.2.2+eac63fce1aba";
|
|
25721
25726
|
async function main() {
|
|
25722
25727
|
const argv = process$1.argv.slice(2);
|
|
25723
25728
|
if (argv[0] === "--") argv.shift();
|
|
@@ -26079,7 +26084,8 @@ Options:
|
|
|
26079
26084
|
--provider <name> Provider provenance for uploaded media
|
|
26080
26085
|
--provider-metadata <json> Provider metadata JSON object
|
|
26081
26086
|
--generation-provenance <json> Extra provenance JSON object
|
|
26082
|
-
--source-variant <
|
|
26087
|
+
--source-variant <ids> Comma-separated source variants for upload lineage
|
|
26088
|
+
--source-variants <ids> Alias for --source-variant
|
|
26083
26089
|
--relation-type <type> Lineage type: derived, refined, or forked (default: derived)
|
|
26084
26090
|
--active-variant-behavior <b> if-missing, set-active, or keep
|
|
26085
26091
|
--collection <ids> Comma-separated collection IDs for the uploaded asset or variant
|