@ankhorage/studio 0.0.18 → 0.0.19
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/dist/cli/index.d.ts +59 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +166 -0
- package/dist/cli/index.js.map +1 -0
- package/package.json +18 -1
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
# @ankhorage/studio
|
|
5
5
|
|
|
6
|
-
         
|
|
7
7
|
|
|
8
8
|
Standalone Studio authoring package for Ankhorage apps.
|
|
9
9
|
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import type { AnkhCommandHandler } from '@ankhorage/ankh';
|
|
2
|
+
declare const provider: {
|
|
3
|
+
id: string;
|
|
4
|
+
category: string;
|
|
5
|
+
version: string;
|
|
6
|
+
capabilities: ("studio.dev" | "studio.projects.list" | "studio.projects.create" | "studio.projects.delete" | "studio.projects.sync" | "studio.workspace.install")[];
|
|
7
|
+
commands: readonly [{
|
|
8
|
+
readonly path: readonly ["dev"];
|
|
9
|
+
readonly capability: "studio.dev";
|
|
10
|
+
readonly summary: "Start the first-party Studio app workspace.";
|
|
11
|
+
readonly examples: readonly ["ankh studio dev"];
|
|
12
|
+
}, {
|
|
13
|
+
readonly path: readonly ["projects", "list"];
|
|
14
|
+
readonly capability: "studio.projects.list";
|
|
15
|
+
readonly summary: "List Studio projects from the Studio project API.";
|
|
16
|
+
readonly examples: readonly ["ankh studio projects list"];
|
|
17
|
+
}, {
|
|
18
|
+
readonly path: readonly ["projects", "create"];
|
|
19
|
+
readonly capability: "studio.projects.create";
|
|
20
|
+
readonly summary: "Create a Studio project from a template.";
|
|
21
|
+
readonly examples: readonly ["ankh studio projects create --name Shop --category commerce --template blank"];
|
|
22
|
+
}, {
|
|
23
|
+
readonly path: readonly ["projects", "delete"];
|
|
24
|
+
readonly capability: "studio.projects.delete";
|
|
25
|
+
readonly summary: "Delete a Studio project.";
|
|
26
|
+
readonly examples: readonly ["ankh studio projects delete shop"];
|
|
27
|
+
}, {
|
|
28
|
+
readonly path: readonly ["projects", "sync"];
|
|
29
|
+
readonly capability: "studio.projects.sync";
|
|
30
|
+
readonly summary: "Synchronize generated app host files for a Studio project.";
|
|
31
|
+
readonly examples: readonly ["ankh studio projects sync shop"];
|
|
32
|
+
}, {
|
|
33
|
+
readonly path: readonly ["workspace", "install"];
|
|
34
|
+
readonly capability: "studio.workspace.install";
|
|
35
|
+
readonly summary: "Install packages required by the current Studio workspace.";
|
|
36
|
+
readonly examples: readonly ["ankh studio workspace install"];
|
|
37
|
+
}];
|
|
38
|
+
handlers: readonly [{
|
|
39
|
+
path: readonly ["dev"] | readonly ["projects", "list"] | readonly ["projects", "create"] | readonly ["projects", "delete"] | readonly ["projects", "sync"] | readonly ["workspace", "install"];
|
|
40
|
+
handler: AnkhCommandHandler;
|
|
41
|
+
}, {
|
|
42
|
+
path: readonly ["dev"] | readonly ["projects", "list"] | readonly ["projects", "create"] | readonly ["projects", "delete"] | readonly ["projects", "sync"] | readonly ["workspace", "install"];
|
|
43
|
+
handler: AnkhCommandHandler;
|
|
44
|
+
}, {
|
|
45
|
+
path: readonly ["dev"] | readonly ["projects", "list"] | readonly ["projects", "create"] | readonly ["projects", "delete"] | readonly ["projects", "sync"] | readonly ["workspace", "install"];
|
|
46
|
+
handler: AnkhCommandHandler;
|
|
47
|
+
}, {
|
|
48
|
+
path: readonly ["dev"] | readonly ["projects", "list"] | readonly ["projects", "create"] | readonly ["projects", "delete"] | readonly ["projects", "sync"] | readonly ["workspace", "install"];
|
|
49
|
+
handler: AnkhCommandHandler;
|
|
50
|
+
}, {
|
|
51
|
+
path: readonly ["dev"] | readonly ["projects", "list"] | readonly ["projects", "create"] | readonly ["projects", "delete"] | readonly ["projects", "sync"] | readonly ["workspace", "install"];
|
|
52
|
+
handler: AnkhCommandHandler;
|
|
53
|
+
}, {
|
|
54
|
+
path: readonly ["dev"] | readonly ["projects", "list"] | readonly ["projects", "create"] | readonly ["projects", "delete"] | readonly ["projects", "sync"] | readonly ["workspace", "install"];
|
|
55
|
+
handler: AnkhCommandHandler;
|
|
56
|
+
}];
|
|
57
|
+
};
|
|
58
|
+
export default provider;
|
|
59
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAA8B,MAAM,iBAAiB,CAAC;AA4EtF,QAAA,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAOwB,CAAC;AAEvC,eAAe,QAAQ,CAAC"}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import { dirname, resolve } from 'node:path';
|
|
2
|
+
import { fileURLToPath } from 'node:url';
|
|
3
|
+
const STUDIO_PACKAGE_NAME = '@ankhorage/studio';
|
|
4
|
+
const STUDIO_COMMAND_CATEGORY = 'studio';
|
|
5
|
+
const STUDIO_PACKAGE_VERSION = '0.0.18';
|
|
6
|
+
const DEFAULT_STUDIO_API_BASE = 'http://localhost:3000/api';
|
|
7
|
+
const STUDIO_CAPABILITIES = [
|
|
8
|
+
'studio.dev',
|
|
9
|
+
'studio.projects.list',
|
|
10
|
+
'studio.projects.create',
|
|
11
|
+
'studio.projects.delete',
|
|
12
|
+
'studio.projects.sync',
|
|
13
|
+
'studio.workspace.install',
|
|
14
|
+
];
|
|
15
|
+
const COMMANDS = [
|
|
16
|
+
{
|
|
17
|
+
path: ['dev'],
|
|
18
|
+
capability: 'studio.dev',
|
|
19
|
+
summary: 'Start the first-party Studio app workspace.',
|
|
20
|
+
examples: ['ankh studio dev'],
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
path: ['projects', 'list'],
|
|
24
|
+
capability: 'studio.projects.list',
|
|
25
|
+
summary: 'List Studio projects from the Studio project API.',
|
|
26
|
+
examples: ['ankh studio projects list'],
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
path: ['projects', 'create'],
|
|
30
|
+
capability: 'studio.projects.create',
|
|
31
|
+
summary: 'Create a Studio project from a template.',
|
|
32
|
+
examples: ['ankh studio projects create --name Shop --category commerce --template blank'],
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
path: ['projects', 'delete'],
|
|
36
|
+
capability: 'studio.projects.delete',
|
|
37
|
+
summary: 'Delete a Studio project.',
|
|
38
|
+
examples: ['ankh studio projects delete shop'],
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
path: ['projects', 'sync'],
|
|
42
|
+
capability: 'studio.projects.sync',
|
|
43
|
+
summary: 'Synchronize generated app host files for a Studio project.',
|
|
44
|
+
examples: ['ankh studio projects sync shop'],
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
path: ['workspace', 'install'],
|
|
48
|
+
capability: 'studio.workspace.install',
|
|
49
|
+
summary: 'Install packages required by the current Studio workspace.',
|
|
50
|
+
examples: ['ankh studio workspace install'],
|
|
51
|
+
},
|
|
52
|
+
];
|
|
53
|
+
const handlers = [
|
|
54
|
+
createHandler(['dev'], runStudioDev),
|
|
55
|
+
createHandler(['projects', 'list'], listProjects),
|
|
56
|
+
createHandler(['projects', 'create'], createProject),
|
|
57
|
+
createHandler(['projects', 'delete'], deleteProject),
|
|
58
|
+
createHandler(['projects', 'sync'], syncProject),
|
|
59
|
+
createHandler(['workspace', 'install'], installWorkspacePackages),
|
|
60
|
+
];
|
|
61
|
+
function createHandler(path, handler) {
|
|
62
|
+
return { path, handler };
|
|
63
|
+
}
|
|
64
|
+
const provider = {
|
|
65
|
+
id: STUDIO_PACKAGE_NAME,
|
|
66
|
+
category: STUDIO_COMMAND_CATEGORY,
|
|
67
|
+
version: STUDIO_PACKAGE_VERSION,
|
|
68
|
+
capabilities: [...STUDIO_CAPABILITIES],
|
|
69
|
+
commands: COMMANDS,
|
|
70
|
+
handlers,
|
|
71
|
+
};
|
|
72
|
+
export default provider;
|
|
73
|
+
async function runStudioDev() {
|
|
74
|
+
const packageRoot = resolve(dirname(fileURLToPath(import.meta.url)), '../..');
|
|
75
|
+
const subprocess = Bun.spawn(['bun', 'run', 'dev:studio'], {
|
|
76
|
+
cwd: packageRoot,
|
|
77
|
+
stdin: 'inherit',
|
|
78
|
+
stdout: 'inherit',
|
|
79
|
+
stderr: 'inherit',
|
|
80
|
+
});
|
|
81
|
+
return { exitCode: await subprocess.exited };
|
|
82
|
+
}
|
|
83
|
+
async function listProjects(request) {
|
|
84
|
+
const projects = await requestStudioApi('/projects');
|
|
85
|
+
request.context.writeStdout(`${JSON.stringify(projects, null, 2)}\n`);
|
|
86
|
+
return { exitCode: 0 };
|
|
87
|
+
}
|
|
88
|
+
async function createProject(request) {
|
|
89
|
+
const input = parseCreateProjectArgs(request.argv);
|
|
90
|
+
const project = await requestStudioApi('/projects', {
|
|
91
|
+
method: 'POST',
|
|
92
|
+
body: input,
|
|
93
|
+
});
|
|
94
|
+
request.context.writeStdout(`${JSON.stringify(project, null, 2)}\n`);
|
|
95
|
+
return { exitCode: 0 };
|
|
96
|
+
}
|
|
97
|
+
async function deleteProject(request) {
|
|
98
|
+
const projectId = requireProjectId(request.argv, 'projects delete');
|
|
99
|
+
const result = await requestStudioApi(`/projects/${encodeURIComponent(projectId)}`, {
|
|
100
|
+
method: 'DELETE',
|
|
101
|
+
});
|
|
102
|
+
request.context.writeStdout(`${JSON.stringify(result ?? { success: true }, null, 2)}\n`);
|
|
103
|
+
return { exitCode: 0 };
|
|
104
|
+
}
|
|
105
|
+
async function syncProject(request) {
|
|
106
|
+
const projectId = requireProjectId(request.argv, 'projects sync');
|
|
107
|
+
const result = await requestStudioApi(`/projects/${encodeURIComponent(projectId)}/sync`, {
|
|
108
|
+
method: 'POST',
|
|
109
|
+
});
|
|
110
|
+
request.context.writeStdout(`${JSON.stringify(result, null, 2)}\n`);
|
|
111
|
+
return { exitCode: 0 };
|
|
112
|
+
}
|
|
113
|
+
async function installWorkspacePackages(request) {
|
|
114
|
+
const result = await requestStudioApi('/workspace/packages/install', { method: 'POST' });
|
|
115
|
+
request.context.writeStdout(`${JSON.stringify(result, null, 2)}\n`);
|
|
116
|
+
return { exitCode: 0 };
|
|
117
|
+
}
|
|
118
|
+
async function requestStudioApi(path, options = {}) {
|
|
119
|
+
const response = await fetch(`${resolveStudioApiBase()}${path}`, {
|
|
120
|
+
method: options.method ?? 'GET',
|
|
121
|
+
headers: options.body === undefined ? undefined : { 'Content-Type': 'application/json' },
|
|
122
|
+
body: options.body === undefined ? undefined : JSON.stringify(options.body),
|
|
123
|
+
});
|
|
124
|
+
const text = await response.text();
|
|
125
|
+
const body = text.length > 0 ? JSON.parse(text) : null;
|
|
126
|
+
if (!response.ok) {
|
|
127
|
+
throw new Error(getStudioApiErrorMessage(body, response.status));
|
|
128
|
+
}
|
|
129
|
+
return body;
|
|
130
|
+
}
|
|
131
|
+
function getStudioApiErrorMessage(body, status) {
|
|
132
|
+
if (isRecord(body) && typeof body.error === 'string') {
|
|
133
|
+
return body.error;
|
|
134
|
+
}
|
|
135
|
+
return `Studio API request failed: ${status}`;
|
|
136
|
+
}
|
|
137
|
+
function resolveStudioApiBase() {
|
|
138
|
+
return (process.env.ANKHORAGE_STUDIO_API_URL ??
|
|
139
|
+
process.env.EXPO_PUBLIC_API_URL ??
|
|
140
|
+
DEFAULT_STUDIO_API_BASE);
|
|
141
|
+
}
|
|
142
|
+
function requireProjectId(argv, command) {
|
|
143
|
+
const [projectId] = argv;
|
|
144
|
+
if (projectId === undefined || projectId.trim() === '') {
|
|
145
|
+
throw new Error(`Usage: ankh studio ${command} <projectId>`);
|
|
146
|
+
}
|
|
147
|
+
return projectId;
|
|
148
|
+
}
|
|
149
|
+
function parseCreateProjectArgs(argv) {
|
|
150
|
+
const name = readFlag(argv, '--name');
|
|
151
|
+
const category = readFlag(argv, '--category');
|
|
152
|
+
const templateId = readFlag(argv, '--template');
|
|
153
|
+
if (name === null || category === null || templateId === null) {
|
|
154
|
+
throw new Error('Usage: ankh studio projects create --name <name> --category <category> --template <templateId>');
|
|
155
|
+
}
|
|
156
|
+
return { name, category, templateId };
|
|
157
|
+
}
|
|
158
|
+
function readFlag(argv, flag) {
|
|
159
|
+
const index = argv.indexOf(flag);
|
|
160
|
+
const value = index === -1 ? undefined : argv[index + 1];
|
|
161
|
+
return value === undefined || value.trim() === '' ? null : value;
|
|
162
|
+
}
|
|
163
|
+
function isRecord(value) {
|
|
164
|
+
return typeof value === 'object' && value !== null;
|
|
165
|
+
}
|
|
166
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ankhorage/studio",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.19",
|
|
4
4
|
"description": "Studio authoring package for Ankhorage apps",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://github.com/ankhorage/studio#readme",
|
|
@@ -36,6 +36,10 @@
|
|
|
36
36
|
"types": "./dist/app/index.d.ts",
|
|
37
37
|
"import": "./dist/app/index.js"
|
|
38
38
|
},
|
|
39
|
+
"./cli": {
|
|
40
|
+
"types": "./dist/cli/index.d.ts",
|
|
41
|
+
"import": "./dist/cli/index.js"
|
|
42
|
+
},
|
|
39
43
|
"./dnd": {
|
|
40
44
|
"types": "./dist/dnd/index.d.ts",
|
|
41
45
|
"import": "./dist/dnd/index.js"
|
|
@@ -145,6 +149,18 @@
|
|
|
145
149
|
"import": "./dist/studioSelectionModel.js"
|
|
146
150
|
}
|
|
147
151
|
},
|
|
152
|
+
"ankh": {
|
|
153
|
+
"category": "studio",
|
|
154
|
+
"provider": "./dist/cli/index.js",
|
|
155
|
+
"capabilities": [
|
|
156
|
+
"studio.dev",
|
|
157
|
+
"studio.projects.list",
|
|
158
|
+
"studio.projects.create",
|
|
159
|
+
"studio.projects.delete",
|
|
160
|
+
"studio.projects.sync",
|
|
161
|
+
"studio.workspace.install"
|
|
162
|
+
]
|
|
163
|
+
},
|
|
148
164
|
"scripts": {
|
|
149
165
|
"build": "tsc -p tsconfig.build.json",
|
|
150
166
|
"typecheck": "tsc --noEmit -p tsconfig.json",
|
|
@@ -186,6 +202,7 @@
|
|
|
186
202
|
"react-native-safe-area-context": "~5.6.0"
|
|
187
203
|
},
|
|
188
204
|
"devDependencies": {
|
|
205
|
+
"@ankhorage/ankh": "^0.6.3",
|
|
189
206
|
"@ankhorage/devtools": "^1.1.0",
|
|
190
207
|
"@ankhorage/paradox": "^0.1.10",
|
|
191
208
|
"@changesets/cli": "^2.31.0",
|