@ankhorage/studio 2.2.3 → 2.3.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.
- package/README.md +1 -1
- package/dist/app/ProjectDetailScreen.d.ts.map +1 -1
- package/dist/app/ProjectDetailScreen.js +6 -1
- package/dist/app/ProjectDetailScreen.js.map +1 -1
- package/dist/hooks/useProjects.d.ts +11 -0
- package/dist/hooks/useProjects.d.ts.map +1 -1
- package/dist/hooks/useProjects.js +35 -2
- package/dist/hooks/useProjects.js.map +1 -1
- package/dist/host/http/server.d.ts.map +1 -1
- package/dist/host/http/server.js +15 -0
- package/dist/host/http/server.js.map +1 -1
- package/dist/host/layout/layoutGenerator.d.ts.map +1 -1
- package/dist/host/layout/layoutGenerator.js +2 -18
- package/dist/host/layout/layoutGenerator.js.map +1 -1
- package/dist/host/orchestrator/projectManager.d.ts +6 -0
- package/dist/host/orchestrator/projectManager.d.ts.map +1 -1
- package/dist/host/orchestrator/projectManager.js +51 -2
- package/dist/host/orchestrator/projectManager.js.map +1 -1
- package/dist/host/orchestrator/reconcileProjectPackageRootAsync.d.ts +11 -0
- package/dist/host/orchestrator/reconcileProjectPackageRootAsync.d.ts.map +1 -0
- package/dist/host/orchestrator/reconcileProjectPackageRootAsync.js +98 -0
- package/dist/host/orchestrator/reconcileProjectPackageRootAsync.js.map +1 -0
- package/dist/host/orchestrator/scaffolder.d.ts +12 -9
- package/dist/host/orchestrator/scaffolder.d.ts.map +1 -1
- package/dist/host/orchestrator/scaffolder.js +99 -27
- package/dist/host/orchestrator/scaffolder.js.map +1 -1
- package/dist/host/orchestrator/templates.d.ts +7 -4
- package/dist/host/orchestrator/templates.d.ts.map +1 -1
- package/dist/host/orchestrator/templates.js +42 -47
- package/dist/host/orchestrator/templates.js.map +1 -1
- package/package.json +4 -8
- package/dist/host/orchestrator/workspaceRuntime.d.ts +0 -6
- package/dist/host/orchestrator/workspaceRuntime.d.ts.map +0 -1
- package/dist/host/orchestrator/workspaceRuntime.js +0 -92
- package/dist/host/orchestrator/workspaceRuntime.js.map +0 -1
|
@@ -11,7 +11,8 @@ const SUPABASE_AUTH_VERSION = '^1.2.5';
|
|
|
11
11
|
const SUPABASE_STORAGE_VERSION = '^0.2.0';
|
|
12
12
|
const ZORA_VERSION = '^4.0.0';
|
|
13
13
|
const EXPO_RUNTIME_VERSION = '^3.2.4';
|
|
14
|
-
const
|
|
14
|
+
const ANKH_VERSION = '^0.8.11';
|
|
15
|
+
const DEVTOOLS_VERSION = '^1.12.0';
|
|
15
16
|
function serializeStringLiteral(value) {
|
|
16
17
|
return `'${value
|
|
17
18
|
.replaceAll('\\', '\\\\')
|
|
@@ -789,11 +790,12 @@ export function getPackageJson(args) {
|
|
|
789
790
|
const runtimeDependencies = resolveExpoRuntimeDependencyMap(runtimePlan);
|
|
790
791
|
const pkgJson = {
|
|
791
792
|
name,
|
|
793
|
+
private: true,
|
|
792
794
|
main: `${EXPO_PLATFORM.navigation.expoRouter.name}/entry`,
|
|
793
795
|
engines: {
|
|
794
796
|
node: EXPO_PLATFORM.tooling.node.version,
|
|
795
797
|
},
|
|
796
|
-
packageManager: 'bun@1.
|
|
798
|
+
packageManager: 'bun@1.4.2',
|
|
797
799
|
version: '1.0.0',
|
|
798
800
|
scripts: {
|
|
799
801
|
start: 'expo start',
|
|
@@ -804,11 +806,12 @@ export function getPackageJson(args) {
|
|
|
804
806
|
? { 'export:web': 'expo export --platform web --output-dir dist-web' }
|
|
805
807
|
: {}),
|
|
806
808
|
doctor: 'expo-doctor',
|
|
807
|
-
typecheck: 'tsc --noEmit',
|
|
809
|
+
typecheck: 'tsc --noEmit -p tsconfig.json',
|
|
808
810
|
lint: 'ankhorage-eslint . --max-warnings=0',
|
|
809
811
|
'lint:fix': 'ankhorage-eslint . --fix --max-warnings=0',
|
|
810
812
|
format: 'ankhorage-prettier --write .',
|
|
811
813
|
'format:check': 'ankhorage-prettier --check .',
|
|
814
|
+
'knip:check': 'ankhorage-knip',
|
|
812
815
|
},
|
|
813
816
|
dependencies: {
|
|
814
817
|
'@ankhorage/contracts': CONTRACTS_VERSION,
|
|
@@ -846,6 +849,7 @@ export function getPackageJson(args) {
|
|
|
846
849
|
])
|
|
847
850
|
: {}),
|
|
848
851
|
...createPlatformDependencyMap([
|
|
852
|
+
EXPO_PLATFORM.packages.metroRuntime,
|
|
849
853
|
EXPO_PLATFORM.packages.font,
|
|
850
854
|
EXPO_PLATFORM.runtime.expo,
|
|
851
855
|
EXPO_PLATFORM.runtime.react,
|
|
@@ -869,9 +873,11 @@ export function getPackageJson(args) {
|
|
|
869
873
|
'@ankhorage/contracts': CONTRACTS_OVERRIDE_VERSION,
|
|
870
874
|
},
|
|
871
875
|
devDependencies: {
|
|
876
|
+
'@ankhorage/ankh': ANKH_VERSION,
|
|
872
877
|
'@ankhorage/devtools': DEVTOOLS_VERSION,
|
|
873
878
|
[EXPO_PLATFORM.tooling.expoDoctor.name]: EXPO_PLATFORM.tooling.expoDoctor.version,
|
|
874
879
|
[EXPO_PLATFORM.tooling.nodeTypes.name]: EXPO_PLATFORM.tooling.nodeTypes.version,
|
|
880
|
+
'@types/bun': '^1.4.1',
|
|
875
881
|
'@types/react': '~19.2.2',
|
|
876
882
|
'@types/culori': '^4.0.1',
|
|
877
883
|
[EXPO_PLATFORM.tooling.typescript.name]: EXPO_PLATFORM.tooling.typescript.version,
|
|
@@ -879,55 +885,44 @@ export function getPackageJson(args) {
|
|
|
879
885
|
};
|
|
880
886
|
return pkgJson;
|
|
881
887
|
}
|
|
882
|
-
export function
|
|
883
|
-
return
|
|
884
|
-
|
|
888
|
+
export function getEasJson() {
|
|
889
|
+
return `${JSON.stringify({
|
|
890
|
+
cli: { appVersionSource: 'remote' },
|
|
891
|
+
build: {
|
|
892
|
+
development: { developmentClient: true, distribution: 'internal' },
|
|
893
|
+
preview: { distribution: 'internal' },
|
|
894
|
+
production: { autoIncrement: true },
|
|
895
|
+
},
|
|
896
|
+
submit: { production: {} },
|
|
897
|
+
}, null, 2)}\n`;
|
|
898
|
+
}
|
|
899
|
+
export function getMetroConfigJs() {
|
|
900
|
+
return `const path = require('node:path');
|
|
901
|
+
const { getDefaultConfig } = require('expo/metro-config');
|
|
902
|
+
|
|
903
|
+
const config = getDefaultConfig(__dirname);
|
|
904
|
+
config.resolver.emptyModulePath = path.resolve(__dirname, 'metro.empty-module.js');
|
|
905
|
+
const projectRootPrefix = escapeRegExp(path.resolve(__dirname)) + '[\\\\/]';
|
|
906
|
+
const ancestorNodeModules = new RegExp('^(?!' + projectRootPrefix + ').*[\\\\/]node_modules[\\\\/]');
|
|
907
|
+
const defaultBlockList = config.resolver.blockList;
|
|
908
|
+
config.resolver.blockList = [
|
|
909
|
+
...(Array.isArray(defaultBlockList)
|
|
910
|
+
? defaultBlockList
|
|
911
|
+
: defaultBlockList
|
|
912
|
+
? [defaultBlockList]
|
|
913
|
+
: []),
|
|
914
|
+
ancestorNodeModules,
|
|
915
|
+
];
|
|
885
916
|
|
|
886
|
-
|
|
917
|
+
module.exports = config;
|
|
887
918
|
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
files: ['src/**/*.{ts,tsx}'],
|
|
891
|
-
project: ['./tsconfig.json'],
|
|
892
|
-
tsconfigRootDir: import.meta.dirname,
|
|
893
|
-
}),
|
|
894
|
-
...localEntries,
|
|
895
|
-
];
|
|
896
|
-
`;
|
|
897
|
-
}
|
|
898
|
-
export function getEslintLocalConfigMjs() {
|
|
899
|
-
return `export default [
|
|
900
|
-
{
|
|
901
|
-
ignores: ['**/*.js', '**/*.cjs', '**/*.mjs', 'dist/**', '.expo/**'],
|
|
902
|
-
},
|
|
903
|
-
{
|
|
904
|
-
files: ['src/app/_layout.tsx'],
|
|
905
|
-
rules: {
|
|
906
|
-
'@typescript-eslint/no-unnecessary-type-assertion': ['error', { typesToIgnore: ['Href'] }],
|
|
907
|
-
},
|
|
908
|
-
},
|
|
909
|
-
];
|
|
910
|
-
`;
|
|
919
|
+
function escapeRegExp(value) {
|
|
920
|
+
return value.replace(/[|\\\\{}()[\\]\\^$+*?.-]/g, '\\\\$&');
|
|
911
921
|
}
|
|
912
|
-
export function getPrettierRcJs() {
|
|
913
|
-
return `const sharedConfig = require('@ankhorage/devtools/prettier');
|
|
914
|
-
const localConfig = require('./prettier.local.config.js');
|
|
915
|
-
|
|
916
|
-
module.exports = {
|
|
917
|
-
...sharedConfig,
|
|
918
|
-
...localConfig,
|
|
919
|
-
overrides: [...(sharedConfig.overrides ?? []), ...(localConfig.overrides ?? [])],
|
|
920
|
-
};
|
|
921
922
|
`;
|
|
922
923
|
}
|
|
923
|
-
export function
|
|
924
|
-
return
|
|
925
|
-
overrides: [
|
|
926
|
-
{ files: ['ankh.config.json', 'tsconfig.json'], options: { printWidth: 1 } },
|
|
927
|
-
{ files: 'infra/**/*.{yaml,yml}', options: { singleQuote: false } },
|
|
928
|
-
],
|
|
929
|
-
};
|
|
930
|
-
`;
|
|
924
|
+
export function getMetroEmptyModuleJs() {
|
|
925
|
+
return 'module.exports = {};\n';
|
|
931
926
|
}
|
|
932
927
|
export function getTsConfigJson() {
|
|
933
928
|
const tsConfigJson = `{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../../src/host/orchestrator/templates.ts"],"names":[],"mappings":"AAMA,OAAO,EAGL,+BAA+B,EAC/B,8BAA8B,EAC9B,iCAAiC,GAClC,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,aAAa,EAA4B,MAAM,kCAAkC,CAAC;AAI3F,MAAM,iBAAiB,GAAG,SAAS,CAAC;AACpC,MAAM,0BAA0B,GAAG,QAAQ,CAAC;AAC5C,MAAM,oBAAoB,GAAG,QAAQ,CAAC;AACtC,MAAM,eAAe,GAAG,QAAQ,CAAC;AACjC,MAAM,iBAAiB,GAAG,QAAQ,CAAC;AACnC,MAAM,cAAc,GAAG,SAAS,CAAC;AACjC,MAAM,eAAe,GAAG,QAAQ,CAAC;AACjC,MAAM,qBAAqB,GAAG,QAAQ,CAAC;AACvC,MAAM,wBAAwB,GAAG,QAAQ,CAAC;AAC1C,MAAM,YAAY,GAAG,QAAQ,CAAC;AAC9B,MAAM,oBAAoB,GAAG,QAAQ,CAAC;AACtC,MAAM,gBAAgB,GAAG,
|
|
1
|
+
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../../src/host/orchestrator/templates.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ankhorage/studio",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.3.0",
|
|
4
4
|
"description": "Studio authoring package for Ankhorage apps",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://github.com/ankhorage/studio#readme",
|
|
@@ -18,10 +18,6 @@
|
|
|
18
18
|
"main": "./dist/root.js",
|
|
19
19
|
"types": "./dist/root.d.ts",
|
|
20
20
|
"sideEffects": false,
|
|
21
|
-
"workspaces": [
|
|
22
|
-
".",
|
|
23
|
-
"apps/studio"
|
|
24
|
-
],
|
|
25
21
|
"files": [
|
|
26
22
|
"dist",
|
|
27
23
|
"README.md",
|
|
@@ -169,10 +165,9 @@
|
|
|
169
165
|
"scripts": {
|
|
170
166
|
"build": "tsc -p tsconfig.build.json",
|
|
171
167
|
"typecheck": "tsc --noEmit -p tsconfig.json",
|
|
172
|
-
"type-check": "bun run typecheck",
|
|
173
168
|
"dev": "bun run dev:host & bun run dev:studio",
|
|
174
|
-
"dev:studio": "bun run --cwd apps/studio web",
|
|
175
|
-
"
|
|
169
|
+
"dev:studio": "bun install --cwd apps/studio --frozen-lockfile && bun run --cwd apps/studio web",
|
|
170
|
+
"typecheck:studio": "bun install --cwd apps/studio --frozen-lockfile && bun run --cwd apps/studio typecheck",
|
|
176
171
|
"lint": "ankhorage-eslint . --max-warnings=0",
|
|
177
172
|
"lint:fix": "ankhorage-eslint . --fix --max-warnings=0",
|
|
178
173
|
"format": "ankhorage-prettier --write .",
|
|
@@ -223,6 +218,7 @@
|
|
|
223
218
|
"@ankhorage/orchestrator-module-expo-localization": "^0.6.0",
|
|
224
219
|
"@ankhorage/permissions": "^0.2.3",
|
|
225
220
|
"@ankhorage/react-native-reanimated-dnd-web": "^0.4.0",
|
|
221
|
+
"@ankhorage/repository": "^0.4.1",
|
|
226
222
|
"@ankhorage/runtime": "^2.2.1",
|
|
227
223
|
"@ankhorage/supabase-auth": "^1.2.7",
|
|
228
224
|
"@ankhorage/supabase-storage": "^0.2.0",
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
/***
|
|
2
|
-
* Run `bun install` inside an independent generated-project package root with bounded lifecycle safeguards.
|
|
3
|
-
* @utility @ankhorage/utility/node/process
|
|
4
|
-
*/
|
|
5
|
-
export declare function runWorkspaceInstall(rootPath: string): Promise<void>;
|
|
6
|
-
//# sourceMappingURL=workspaceRuntime.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"workspaceRuntime.d.ts","sourceRoot":"","sources":["../../../src/host/orchestrator/workspaceRuntime.ts"],"names":[],"mappings":"AAOA;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgGzE"}
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
import { spawn } from 'child_process';
|
|
2
|
-
const BUN_INSTALL_SPAWN_TIMEOUT_MS = 30_000;
|
|
3
|
-
const BUN_INSTALL_HARD_TIMEOUT_MS = 10 * 60_000;
|
|
4
|
-
const BUN_INSTALL_KILL_GRACE_MS = 5_000;
|
|
5
|
-
/***
|
|
6
|
-
* Run `bun install` inside an independent generated-project package root with bounded lifecycle safeguards.
|
|
7
|
-
* @utility @ankhorage/utility/node/process
|
|
8
|
-
*/
|
|
9
|
-
export async function runWorkspaceInstall(rootPath) {
|
|
10
|
-
const command = 'bun install';
|
|
11
|
-
await new Promise((resolve, reject) => {
|
|
12
|
-
const child = spawn('bun', ['install'], {
|
|
13
|
-
cwd: rootPath,
|
|
14
|
-
stdio: 'inherit',
|
|
15
|
-
env: process.env,
|
|
16
|
-
});
|
|
17
|
-
const spawnTimeout = setTimeout(() => {
|
|
18
|
-
rejectWithTimeout(`bun install did not start within ${BUN_INSTALL_SPAWN_TIMEOUT_MS}ms`);
|
|
19
|
-
}, BUN_INSTALL_SPAWN_TIMEOUT_MS);
|
|
20
|
-
let hardTimeout;
|
|
21
|
-
let killTimeout;
|
|
22
|
-
let settled = false;
|
|
23
|
-
/*** Clear all lifecycle timeout handles associated with the spawned process. */
|
|
24
|
-
const clearTimers = () => {
|
|
25
|
-
clearTimeout(spawnTimeout);
|
|
26
|
-
if (hardTimeout)
|
|
27
|
-
clearTimeout(hardTimeout);
|
|
28
|
-
if (killTimeout)
|
|
29
|
-
clearTimeout(killTimeout);
|
|
30
|
-
};
|
|
31
|
-
/*** Reject the process lifecycle exactly once while clearing pending timeout work. */
|
|
32
|
-
const rejectOnce = (error) => {
|
|
33
|
-
if (settled)
|
|
34
|
-
return;
|
|
35
|
-
settled = true;
|
|
36
|
-
clearTimers();
|
|
37
|
-
reject(error);
|
|
38
|
-
};
|
|
39
|
-
/***
|
|
40
|
-
* Terminate an overdue process with SIGTERM/SIGKILL escalation and reject the lifecycle once.
|
|
41
|
-
* @utility @ankhorage/utility/node/process
|
|
42
|
-
*/
|
|
43
|
-
const rejectWithTimeout = (reason) => {
|
|
44
|
-
if (settled)
|
|
45
|
-
return;
|
|
46
|
-
if (child.exitCode === null) {
|
|
47
|
-
child.kill('SIGTERM');
|
|
48
|
-
killTimeout = setTimeout(() => {
|
|
49
|
-
if (child.exitCode === null) {
|
|
50
|
-
child.kill('SIGKILL');
|
|
51
|
-
}
|
|
52
|
-
}, BUN_INSTALL_KILL_GRACE_MS);
|
|
53
|
-
}
|
|
54
|
-
settled = true;
|
|
55
|
-
clearTimers();
|
|
56
|
-
reject(new Error(`${reason} (${command}) in ${rootPath}. The process was terminated after timeout safeguards.`));
|
|
57
|
-
};
|
|
58
|
-
child.once('spawn', () => {
|
|
59
|
-
if (settled)
|
|
60
|
-
return;
|
|
61
|
-
clearTimeout(spawnTimeout);
|
|
62
|
-
hardTimeout = setTimeout(() => {
|
|
63
|
-
rejectWithTimeout(`bun install exceeded ${BUN_INSTALL_HARD_TIMEOUT_MS}ms`);
|
|
64
|
-
}, BUN_INSTALL_HARD_TIMEOUT_MS);
|
|
65
|
-
});
|
|
66
|
-
child.once('error', (error) => {
|
|
67
|
-
const spawnError = error;
|
|
68
|
-
const message = spawnError.code === 'ENOENT'
|
|
69
|
-
? `bun executable was not found in PATH while running '${command}' in ${rootPath}. Install Bun and retry.`
|
|
70
|
-
: `Failed to start '${command}' in ${rootPath}: ${spawnError.message}`;
|
|
71
|
-
rejectOnce(new Error(message));
|
|
72
|
-
});
|
|
73
|
-
child.once('close', (code, signal) => {
|
|
74
|
-
if (settled) {
|
|
75
|
-
clearTimers();
|
|
76
|
-
return;
|
|
77
|
-
}
|
|
78
|
-
settled = true;
|
|
79
|
-
clearTimers();
|
|
80
|
-
if (code === 0) {
|
|
81
|
-
resolve();
|
|
82
|
-
return;
|
|
83
|
-
}
|
|
84
|
-
if (code !== null) {
|
|
85
|
-
reject(new Error(`bun install failed with code ${code} in ${rootPath}.`));
|
|
86
|
-
return;
|
|
87
|
-
}
|
|
88
|
-
reject(new Error(`bun install terminated by signal ${signal ?? 'unknown'} in ${rootPath}.`));
|
|
89
|
-
});
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
//# sourceMappingURL=workspaceRuntime.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"workspaceRuntime.js","sourceRoot":"","sources":["../../../src/host/orchestrator/workspaceRuntime.ts"],"names":[],"mappings":"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"}
|