@ankhorage/studio 2.2.3 → 2.3.1
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 +8 -20
- 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 +43 -49
- 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
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { resolveExpoRuntimeDependencyMap, resolveExpoRuntimeNativeOutput, resolveExpoRuntimeNativeSchemeMap, } from '@ankhorage/expo-runtime/planning';
|
|
2
2
|
import { EXPO_PLATFORM } from '@ankhorage/expo-runtime/platform';
|
|
3
3
|
const CONTRACTS_VERSION = '^11.0.0';
|
|
4
|
-
const CONTRACTS_OVERRIDE_VERSION = '11.0.0';
|
|
5
4
|
const DATA_SOURCES_VERSION = '^2.0.0';
|
|
6
5
|
const RUNTIME_VERSION = '^2.2.0';
|
|
7
6
|
const NAVIGATOR_VERSION = '^2.0.2';
|
|
@@ -11,7 +10,8 @@ const SUPABASE_AUTH_VERSION = '^1.2.5';
|
|
|
11
10
|
const SUPABASE_STORAGE_VERSION = '^0.2.0';
|
|
12
11
|
const ZORA_VERSION = '^4.0.0';
|
|
13
12
|
const EXPO_RUNTIME_VERSION = '^3.2.4';
|
|
14
|
-
const
|
|
13
|
+
const ANKH_VERSION = '^0.8.11';
|
|
14
|
+
const DEVTOOLS_VERSION = '^1.12.0';
|
|
15
15
|
function serializeStringLiteral(value) {
|
|
16
16
|
return `'${value
|
|
17
17
|
.replaceAll('\\', '\\\\')
|
|
@@ -789,11 +789,12 @@ export function getPackageJson(args) {
|
|
|
789
789
|
const runtimeDependencies = resolveExpoRuntimeDependencyMap(runtimePlan);
|
|
790
790
|
const pkgJson = {
|
|
791
791
|
name,
|
|
792
|
+
private: true,
|
|
792
793
|
main: `${EXPO_PLATFORM.navigation.expoRouter.name}/entry`,
|
|
793
794
|
engines: {
|
|
794
795
|
node: EXPO_PLATFORM.tooling.node.version,
|
|
795
796
|
},
|
|
796
|
-
packageManager: 'bun@1.
|
|
797
|
+
packageManager: 'bun@1.4.2',
|
|
797
798
|
version: '1.0.0',
|
|
798
799
|
scripts: {
|
|
799
800
|
start: 'expo start',
|
|
@@ -804,11 +805,12 @@ export function getPackageJson(args) {
|
|
|
804
805
|
? { 'export:web': 'expo export --platform web --output-dir dist-web' }
|
|
805
806
|
: {}),
|
|
806
807
|
doctor: 'expo-doctor',
|
|
807
|
-
typecheck: 'tsc --noEmit',
|
|
808
|
+
typecheck: 'tsc --noEmit -p tsconfig.json',
|
|
808
809
|
lint: 'ankhorage-eslint . --max-warnings=0',
|
|
809
810
|
'lint:fix': 'ankhorage-eslint . --fix --max-warnings=0',
|
|
810
811
|
format: 'ankhorage-prettier --write .',
|
|
811
812
|
'format:check': 'ankhorage-prettier --check .',
|
|
813
|
+
'knip:check': 'ankhorage-knip',
|
|
812
814
|
},
|
|
813
815
|
dependencies: {
|
|
814
816
|
'@ankhorage/contracts': CONTRACTS_VERSION,
|
|
@@ -846,6 +848,7 @@ export function getPackageJson(args) {
|
|
|
846
848
|
])
|
|
847
849
|
: {}),
|
|
848
850
|
...createPlatformDependencyMap([
|
|
851
|
+
EXPO_PLATFORM.packages.metroRuntime,
|
|
849
852
|
EXPO_PLATFORM.packages.font,
|
|
850
853
|
EXPO_PLATFORM.runtime.expo,
|
|
851
854
|
EXPO_PLATFORM.runtime.react,
|
|
@@ -866,12 +869,14 @@ export function getPackageJson(args) {
|
|
|
866
869
|
]),
|
|
867
870
|
},
|
|
868
871
|
overrides: {
|
|
869
|
-
'@ankhorage/contracts':
|
|
872
|
+
'@ankhorage/contracts': '$@ankhorage/contracts',
|
|
870
873
|
},
|
|
871
874
|
devDependencies: {
|
|
875
|
+
'@ankhorage/ankh': ANKH_VERSION,
|
|
872
876
|
'@ankhorage/devtools': DEVTOOLS_VERSION,
|
|
873
877
|
[EXPO_PLATFORM.tooling.expoDoctor.name]: EXPO_PLATFORM.tooling.expoDoctor.version,
|
|
874
878
|
[EXPO_PLATFORM.tooling.nodeTypes.name]: EXPO_PLATFORM.tooling.nodeTypes.version,
|
|
879
|
+
'@types/bun': '^1.4.1',
|
|
875
880
|
'@types/react': '~19.2.2',
|
|
876
881
|
'@types/culori': '^4.0.1',
|
|
877
882
|
[EXPO_PLATFORM.tooling.typescript.name]: EXPO_PLATFORM.tooling.typescript.version,
|
|
@@ -879,55 +884,44 @@ export function getPackageJson(args) {
|
|
|
879
884
|
};
|
|
880
885
|
return pkgJson;
|
|
881
886
|
}
|
|
882
|
-
export function
|
|
883
|
-
return
|
|
884
|
-
|
|
887
|
+
export function getEasJson() {
|
|
888
|
+
return `${JSON.stringify({
|
|
889
|
+
cli: { appVersionSource: 'remote' },
|
|
890
|
+
build: {
|
|
891
|
+
development: { developmentClient: true, distribution: 'internal' },
|
|
892
|
+
preview: { distribution: 'internal' },
|
|
893
|
+
production: { autoIncrement: true },
|
|
894
|
+
},
|
|
895
|
+
submit: { production: {} },
|
|
896
|
+
}, null, 2)}\n`;
|
|
897
|
+
}
|
|
898
|
+
export function getMetroConfigJs() {
|
|
899
|
+
return `const path = require('node:path');
|
|
900
|
+
const { getDefaultConfig } = require('expo/metro-config');
|
|
901
|
+
|
|
902
|
+
const config = getDefaultConfig(__dirname);
|
|
903
|
+
config.resolver.emptyModulePath = path.resolve(__dirname, 'metro.empty-module.js');
|
|
904
|
+
const projectRootPrefix = escapeRegExp(path.resolve(__dirname)) + '[\\\\/]';
|
|
905
|
+
const ancestorNodeModules = new RegExp('^(?!' + projectRootPrefix + ').*[\\\\/]node_modules[\\\\/]');
|
|
906
|
+
const defaultBlockList = config.resolver.blockList;
|
|
907
|
+
config.resolver.blockList = [
|
|
908
|
+
...(Array.isArray(defaultBlockList)
|
|
909
|
+
? defaultBlockList
|
|
910
|
+
: defaultBlockList
|
|
911
|
+
? [defaultBlockList]
|
|
912
|
+
: []),
|
|
913
|
+
ancestorNodeModules,
|
|
914
|
+
];
|
|
885
915
|
|
|
886
|
-
|
|
916
|
+
module.exports = config;
|
|
887
917
|
|
|
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
|
-
`;
|
|
918
|
+
function escapeRegExp(value) {
|
|
919
|
+
return value.replace(/[|\\\\{}()[\\]\\^$+*?.-]/g, '\\\\$&');
|
|
911
920
|
}
|
|
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
921
|
`;
|
|
922
922
|
}
|
|
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
|
-
`;
|
|
923
|
+
export function getMetroEmptyModuleJs() {
|
|
924
|
+
return 'module.exports = {};\n';
|
|
931
925
|
}
|
|
932
926
|
export function getTsConfigJson() {
|
|
933
927
|
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,
|
|
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.1",
|
|
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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"}
|