@playdrop/playdrop-cli 0.3.8-build.2 → 0.3.9
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/config/client-meta.json +5 -5
- package/dist/apps/build.js +45 -39
- package/dist/catalogue-utils.js +23 -18
- package/dist/catalogue.d.ts +0 -2
- package/dist/catalogue.js +54 -41
- package/dist/clientInfo.js +16 -2
- package/dist/commands/browse.js +66 -23
- package/dist/commands/capture.js +3 -2
- package/dist/commands/create.js +49 -46
- package/dist/commands/createRemixContent.js +29 -44
- package/dist/commands/creations.js +51 -13
- package/dist/commands/devServer.d.ts +1 -1
- package/dist/commands/devShared.js +1 -1
- package/dist/commands/generation.js +91 -74
- package/dist/commands/gettingStarted.js +1 -1
- package/dist/commands/search.js +29 -1
- package/dist/commands/upload-content.d.ts +70 -0
- package/dist/commands/upload-content.js +627 -0
- package/dist/commands/upload-graph.d.ts +23 -0
- package/dist/commands/upload-graph.js +108 -0
- package/dist/commands/upload.js +264 -543
- package/dist/http.d.ts +1 -1
- package/dist/playwright.d.ts +12 -4
- package/dist/proxyFetch.js +3 -2
- package/node_modules/@playdrop/ai-client/dist/index.d.ts.map +1 -1
- package/node_modules/@playdrop/ai-client/dist/index.js +74 -54
- package/node_modules/@playdrop/api-client/dist/client.d.ts +34 -14
- package/node_modules/@playdrop/api-client/dist/client.d.ts.map +1 -1
- package/node_modules/@playdrop/api-client/dist/client.js +6 -8
- package/node_modules/@playdrop/api-client/dist/core/errors.js +11 -11
- package/node_modules/@playdrop/api-client/dist/core/request.d.ts +2 -0
- package/node_modules/@playdrop/api-client/dist/core/request.d.ts.map +1 -1
- package/node_modules/@playdrop/api-client/dist/core/request.js +10 -3
- package/node_modules/@playdrop/api-client/dist/domains/admin.d.ts +12 -10
- package/node_modules/@playdrop/api-client/dist/domains/admin.d.ts.map +1 -1
- package/node_modules/@playdrop/api-client/dist/domains/admin.js +33 -30
- package/node_modules/@playdrop/api-client/dist/domains/apps.d.ts +8 -1
- package/node_modules/@playdrop/api-client/dist/domains/apps.d.ts.map +1 -1
- package/node_modules/@playdrop/api-client/dist/domains/apps.js +140 -124
- package/node_modules/@playdrop/api-client/dist/domains/asset-packs.d.ts +9 -5
- package/node_modules/@playdrop/api-client/dist/domains/asset-packs.d.ts.map +1 -1
- package/node_modules/@playdrop/api-client/dist/domains/asset-packs.js +151 -88
- package/node_modules/@playdrop/api-client/dist/domains/assets.d.ts +4 -1
- package/node_modules/@playdrop/api-client/dist/domains/assets.d.ts.map +1 -1
- package/node_modules/@playdrop/api-client/dist/domains/assets.js +153 -112
- package/node_modules/@playdrop/api-client/dist/domains/auth.d.ts +3 -1
- package/node_modules/@playdrop/api-client/dist/domains/auth.d.ts.map +1 -1
- package/node_modules/@playdrop/api-client/dist/domains/auth.js +21 -0
- package/node_modules/@playdrop/api-client/dist/domains/me.d.ts +6 -2
- package/node_modules/@playdrop/api-client/dist/domains/me.d.ts.map +1 -1
- package/node_modules/@playdrop/api-client/dist/domains/me.js +13 -2
- package/node_modules/@playdrop/api-client/dist/domains/payments.d.ts +1 -0
- package/node_modules/@playdrop/api-client/dist/domains/payments.d.ts.map +1 -1
- package/node_modules/@playdrop/api-client/dist/domains/payments.js +10 -0
- package/node_modules/@playdrop/api-client/dist/index.d.ts +65 -24
- package/node_modules/@playdrop/api-client/dist/index.d.ts.map +1 -1
- package/node_modules/@playdrop/api-client/dist/index.js +38 -13
- package/node_modules/@playdrop/boxel-core/dist/src/entity-cleaner.js +2 -0
- package/node_modules/@playdrop/boxel-core/dist/src/entity-cleaner.js.map +1 -1
- package/node_modules/@playdrop/boxel-core/dist/src/humanoid/r15/textured-builder.js +1 -1
- package/node_modules/@playdrop/boxel-core/dist/src/humanoid/r15/textured-builder.js.map +1 -1
- package/node_modules/@playdrop/boxel-core/dist/src/humanoid/r15/voxel-builder.js +1 -1
- package/node_modules/@playdrop/boxel-core/dist/src/humanoid/r15/voxel-builder.js.map +1 -1
- package/node_modules/@playdrop/boxel-core/dist/src/humanoid/r6/builder.js +95 -75
- package/node_modules/@playdrop/boxel-core/dist/src/humanoid/r6/builder.js.map +1 -1
- package/node_modules/@playdrop/boxel-core/dist/src/humanoid/r6/scanner.d.ts +2 -3
- package/node_modules/@playdrop/boxel-core/dist/src/humanoid/r6/scanner.js.map +1 -1
- package/node_modules/@playdrop/boxel-core/dist/src/humanoid/r6/textures/face-map.js +4 -4
- package/node_modules/@playdrop/boxel-core/dist/src/humanoid/r6/textures/face-map.js.map +1 -1
- package/node_modules/@playdrop/boxel-core/dist/src/palette_tools.d.ts +2 -2
- package/node_modules/@playdrop/boxel-core/dist/src/transforms/textured-boxes/slice.d.ts +5 -5
- package/node_modules/@playdrop/boxel-core/dist/src/transforms/voxels/textured-to-voxel.d.ts +3 -3
- package/node_modules/@playdrop/boxel-core/dist/src/types.d.ts +25 -25
- package/node_modules/@playdrop/boxel-core/dist/src/validation.js +2 -1
- package/node_modules/@playdrop/boxel-core/dist/src/validation.js.map +1 -1
- package/node_modules/@playdrop/boxel-three/dist/src/exporters/glb.js +5 -0
- package/node_modules/@playdrop/boxel-three/package.json +3 -3
- package/node_modules/@playdrop/config/client-meta.json +5 -5
- package/node_modules/@playdrop/config/dist/src/index.js +6 -6
- package/node_modules/@playdrop/config/dist/test/validateClientEnvironment.test.js +2 -2
- package/node_modules/@playdrop/config/dist/tsconfig.tsbuildinfo +1 -1
- package/node_modules/@playdrop/types/dist/api.d.ts +33 -8
- package/node_modules/@playdrop/types/dist/api.d.ts.map +1 -1
- package/node_modules/@playdrop/types/dist/api.js +16 -8
- package/node_modules/@playdrop/types/dist/asset-pack.d.ts +107 -11
- package/node_modules/@playdrop/types/dist/asset-pack.d.ts.map +1 -1
- package/node_modules/@playdrop/types/dist/asset-pack.js +2 -0
- package/node_modules/@playdrop/types/dist/asset.d.ts +15 -0
- package/node_modules/@playdrop/types/dist/asset.d.ts.map +1 -1
- package/node_modules/@playdrop/types/dist/asset.js +1 -0
- package/node_modules/@playdrop/types/dist/ecs.d.ts.map +1 -1
- package/node_modules/@playdrop/types/dist/ecs.js +10 -6
- package/node_modules/@playdrop/types/dist/entity.d.ts +5 -10
- package/node_modules/@playdrop/types/dist/entity.d.ts.map +1 -1
- package/node_modules/@playdrop/types/dist/entity.js +40 -23
- package/node_modules/@playdrop/types/dist/graph.d.ts.map +1 -1
- package/node_modules/@playdrop/types/dist/graph.js +13 -5
- package/node_modules/@playdrop/types/dist/version.d.ts.map +1 -1
- package/node_modules/@playdrop/types/dist/version.js +7 -3
- package/node_modules/@playdrop/vox-three/dist/src/vox.d.ts +1 -0
- package/node_modules/@playdrop/vox-three/dist/src/vox.js +15 -6
- package/node_modules/@playdrop/vox-three/dist/src/vox.js.map +1 -1
- package/node_modules/@playdrop/vox-three/dist/test/vox.test.js +16 -0
- package/node_modules/@playdrop/vox-three/dist/test/vox.test.js.map +1 -1
- package/node_modules/@playdrop/vox-three/package.json +3 -3
- package/package.json +1 -1
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildEmptyGraphState = buildEmptyGraphState;
|
|
4
|
+
exports.registerLocalRef = registerLocalRef;
|
|
5
|
+
exports.registerCanonicalNode = registerCanonicalNode;
|
|
6
|
+
exports.appendPendingRelation = appendPendingRelation;
|
|
7
|
+
exports.applyGraphOperations = applyGraphOperations;
|
|
8
|
+
const RELATION_TYPES = new Set([
|
|
9
|
+
'USES',
|
|
10
|
+
'CONTAINS',
|
|
11
|
+
'REMIXES',
|
|
12
|
+
]);
|
|
13
|
+
function buildEmptyGraphState() {
|
|
14
|
+
return {
|
|
15
|
+
canonicalNodeByRef: new Map(),
|
|
16
|
+
localAppNodeByName: new Map(),
|
|
17
|
+
localAssetNodeByName: new Map(),
|
|
18
|
+
localPackNodeByNameVersion: new Map(),
|
|
19
|
+
ambiguousAppNames: new Set(),
|
|
20
|
+
ambiguousAssetNames: new Set(),
|
|
21
|
+
ambiguousPackNameVersions: new Set(),
|
|
22
|
+
pendingRelations: [],
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
function registerLocalRef(map, ambiguous, key, nodeId) {
|
|
26
|
+
const normalized = key.trim();
|
|
27
|
+
if (!normalized) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
const existing = map.get(normalized);
|
|
31
|
+
if (!existing) {
|
|
32
|
+
map.set(normalized, nodeId);
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
if (existing !== nodeId) {
|
|
36
|
+
ambiguous.add(normalized);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
function registerCanonicalNode(state, ref, nodeId) {
|
|
40
|
+
const normalized = ref.trim();
|
|
41
|
+
if (!normalized) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
state.canonicalNodeByRef.set(normalized, nodeId);
|
|
45
|
+
}
|
|
46
|
+
function appendPendingRelation(state, fromNodeId, type, toRef, context) {
|
|
47
|
+
state.pendingRelations.push({
|
|
48
|
+
fromNodeId,
|
|
49
|
+
type,
|
|
50
|
+
toRef,
|
|
51
|
+
context,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
function parseRelationType(raw, context) {
|
|
55
|
+
const normalized = raw.trim().toUpperCase();
|
|
56
|
+
if (!RELATION_TYPES.has(normalized)) {
|
|
57
|
+
throw new Error(`${context}: unsupported relation type "${raw}".`);
|
|
58
|
+
}
|
|
59
|
+
return normalized;
|
|
60
|
+
}
|
|
61
|
+
function resolveLocalRefNodeId(map, ambiguous, key, context, kindLabel) {
|
|
62
|
+
const normalized = key.trim();
|
|
63
|
+
if (!normalized) {
|
|
64
|
+
throw new Error(`${context}: empty local ${kindLabel} ref.`);
|
|
65
|
+
}
|
|
66
|
+
if (ambiguous.has(normalized)) {
|
|
67
|
+
throw new Error(`${context}: local ${kindLabel} ref "@${kindLabel}/${normalized}" is ambiguous in this upload run.`);
|
|
68
|
+
}
|
|
69
|
+
const nodeId = map.get(normalized);
|
|
70
|
+
if (!nodeId) {
|
|
71
|
+
throw new Error(`${context}: local ${kindLabel} ref "@${kindLabel}/${normalized}" was not produced in this upload run.`);
|
|
72
|
+
}
|
|
73
|
+
return nodeId;
|
|
74
|
+
}
|
|
75
|
+
function resolveRelationTargetNodeId(state, rawRef, context) {
|
|
76
|
+
const ref = rawRef.trim();
|
|
77
|
+
if (!ref) {
|
|
78
|
+
throw new Error(`${context}: empty relation target ref.`);
|
|
79
|
+
}
|
|
80
|
+
if (ref.startsWith('@app/')) {
|
|
81
|
+
return resolveLocalRefNodeId(state.localAppNodeByName, state.ambiguousAppNames, ref.slice(5), context, 'app');
|
|
82
|
+
}
|
|
83
|
+
if (ref.startsWith('@asset/')) {
|
|
84
|
+
return resolveLocalRefNodeId(state.localAssetNodeByName, state.ambiguousAssetNames, ref.slice(7), context, 'asset');
|
|
85
|
+
}
|
|
86
|
+
if (ref.startsWith('@pack/')) {
|
|
87
|
+
return resolveLocalRefNodeId(state.localPackNodeByNameVersion, state.ambiguousPackNameVersions, ref.slice(6), context, 'pack');
|
|
88
|
+
}
|
|
89
|
+
if (!/^(app|asset|pack):/i.test(ref)) {
|
|
90
|
+
throw new Error(`${context}: invalid relation target ref "${ref}". Use canonical refs (app:/asset:/pack:) or local refs (@app/@asset/@pack).`);
|
|
91
|
+
}
|
|
92
|
+
const nodeId = state.canonicalNodeByRef.get(ref);
|
|
93
|
+
if (!nodeId) {
|
|
94
|
+
throw new Error(`${context}: canonical ref "${ref}" was not resolved in this upload run.`);
|
|
95
|
+
}
|
|
96
|
+
return nodeId;
|
|
97
|
+
}
|
|
98
|
+
async function applyGraphOperations(client, state) {
|
|
99
|
+
if (state.pendingRelations.length === 0) {
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
const relations = state.pendingRelations.map((row) => ({
|
|
103
|
+
fromNodeId: row.fromNodeId,
|
|
104
|
+
toNodeId: resolveRelationTargetNodeId(state, row.toRef, row.context),
|
|
105
|
+
type: parseRelationType(row.type, row.context),
|
|
106
|
+
}));
|
|
107
|
+
await client.batchUpsertGraphRelations({ relations });
|
|
108
|
+
}
|