adjacent-cli 0.1.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/CHANGELOG.md +15 -0
- package/LICENSE +21 -0
- package/README.md +48 -0
- package/dist/arguments.d.ts +54 -0
- package/dist/arguments.d.ts.map +1 -0
- package/dist/arguments.js +68 -0
- package/dist/arguments.js.map +1 -0
- package/dist/bin.d.ts +3 -0
- package/dist/bin.d.ts.map +1 -0
- package/dist/bin.js +140 -0
- package/dist/bin.js.map +1 -0
- package/dist/checks.d.ts +35 -0
- package/dist/checks.d.ts.map +1 -0
- package/dist/checks.js +206 -0
- package/dist/checks.js.map +1 -0
- package/dist/create.d.ts +42 -0
- package/dist/create.d.ts.map +1 -0
- package/dist/create.js +82 -0
- package/dist/create.js.map +1 -0
- package/dist/dependencies.d.ts +59 -0
- package/dist/dependencies.d.ts.map +1 -0
- package/dist/dependencies.js +100 -0
- package/dist/dependencies.js.map +1 -0
- package/dist/destination.d.ts +16 -0
- package/dist/destination.d.ts.map +1 -0
- package/dist/destination.js +39 -0
- package/dist/destination.js.map +1 -0
- package/dist/dev-channel.d.ts +40 -0
- package/dist/dev-channel.d.ts.map +1 -0
- package/dist/dev-channel.js +192 -0
- package/dist/dev-channel.js.map +1 -0
- package/dist/dev.d.ts +3 -0
- package/dist/dev.d.ts.map +1 -0
- package/dist/dev.js +12 -0
- package/dist/dev.js.map +1 -0
- package/dist/doctor.d.ts +46 -0
- package/dist/doctor.d.ts.map +1 -0
- package/dist/doctor.js +52 -0
- package/dist/doctor.js.map +1 -0
- package/dist/edits.d.ts +26 -0
- package/dist/edits.d.ts.map +1 -0
- package/dist/edits.js +101 -0
- package/dist/edits.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -0
- package/dist/init.d.ts +62 -0
- package/dist/init.d.ts.map +1 -0
- package/dist/init.js +275 -0
- package/dist/init.js.map +1 -0
- package/dist/keys.d.ts +14 -0
- package/dist/keys.d.ts.map +1 -0
- package/dist/keys.js +66 -0
- package/dist/keys.js.map +1 -0
- package/dist/package-manager.d.ts +40 -0
- package/dist/package-manager.d.ts.map +1 -0
- package/dist/package-manager.js +98 -0
- package/dist/package-manager.js.map +1 -0
- package/dist/process.d.ts +33 -0
- package/dist/process.d.ts.map +1 -0
- package/dist/process.js +95 -0
- package/dist/process.js.map +1 -0
- package/dist/project-name.d.ts +30 -0
- package/dist/project-name.d.ts.map +1 -0
- package/dist/project-name.js +73 -0
- package/dist/project-name.js.map +1 -0
- package/dist/reporter.d.ts +12 -0
- package/dist/reporter.d.ts.map +1 -0
- package/dist/reporter.js +11 -0
- package/dist/reporter.js.map +1 -0
- package/dist/rewrite.d.ts +54 -0
- package/dist/rewrite.d.ts.map +1 -0
- package/dist/rewrite.js +262 -0
- package/dist/rewrite.js.map +1 -0
- package/dist/shutdown.d.ts +24 -0
- package/dist/shutdown.d.ts.map +1 -0
- package/dist/shutdown.js +67 -0
- package/dist/shutdown.js.map +1 -0
- package/dist/survey.d.ts +33 -0
- package/dist/survey.d.ts.map +1 -0
- package/dist/survey.js +94 -0
- package/dist/survey.js.map +1 -0
- package/dist/template.d.ts +29 -0
- package/dist/template.d.ts.map +1 -0
- package/dist/template.js +77 -0
- package/dist/template.js.map +1 -0
- package/dist/ui.d.ts +14 -0
- package/dist/ui.d.ts.map +1 -0
- package/dist/ui.js +50 -0
- package/dist/ui.js.map +1 -0
- package/package.json +65 -0
- package/templates/adjacent/app/manifest.ts +5 -0
- package/templates/adjacent/app/sw.js/route.ts +5 -0
- package/templates/adjacent/app.config.ts +21 -0
- package/templates/adjacent/components/navigation.tsx +46 -0
- package/templates/adjacent/public/apple-touch-icon.png +0 -0
- package/templates/adjacent/public/favicon-96x96.png +0 -0
- package/templates/adjacent/public/favicon.ico +0 -0
- package/templates/adjacent/public/favicon.svg +4 -0
- package/templates/adjacent/public/web-app-manifest-192x192.png +0 -0
- package/templates/adjacent/public/web-app-manifest-512x512.png +0 -0
- package/templates/adjacent/public/web-app-manifest-maskable-192x192.png +0 -0
- package/templates/adjacent/public/web-app-manifest-maskable-512x512.png +0 -0
- package/templates/starter/app/(app)/layout.tsx +12 -0
- package/templates/starter/app/(app)/page.tsx +75 -0
- package/templates/starter/app/(app)/settings/page.tsx +24 -0
- package/templates/starter/app/(app)/settings/settings-panel.tsx +54 -0
package/dist/dev.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { resolve } from "node:path";
|
|
2
|
+
import { sendDevCommand } from "./dev-channel.js";
|
|
3
|
+
import { step, success } from "./ui.js";
|
|
4
|
+
export async function runDevCommand(projectRoot, command) {
|
|
5
|
+
const clients = await sendDevCommand(resolve(projectRoot), command);
|
|
6
|
+
if (clients === 0) {
|
|
7
|
+
step("No open app is connected. Open the app on the device and try again.");
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
success(`Sent ${command.type} to ${clients} connected app${clients === 1 ? "" : "s"}.`);
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=dev.js.map
|
package/dist/dev.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../src/dev.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,cAAc,EAAmB,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAExC,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,WAAmB,EACnB,OAAmB;IAEnB,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,CAAC;IACpE,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;QAClB,IAAI,CAAC,qEAAqE,CAAC,CAAC;QAC5E,OAAO;IACT,CAAC;IACD,OAAO,CAAC,QAAQ,OAAO,CAAC,IAAI,OAAO,OAAO,iBAAiB,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;AAC1F,CAAC"}
|
package/dist/doctor.d.ts
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { type ProjectSurvey } from "./survey.js";
|
|
2
|
+
/**
|
|
3
|
+
* What every check is given. Read once here rather than by each check, so a
|
|
4
|
+
* dozen checks do not each stat the same files.
|
|
5
|
+
*/
|
|
6
|
+
export interface CheckContext {
|
|
7
|
+
readonly projectRoot: string;
|
|
8
|
+
readonly read: (relativePath: string) => Promise<string | undefined>;
|
|
9
|
+
readonly survey: ProjectSurvey;
|
|
10
|
+
/** Only present when a deployed URL was passed, which few checks want. */
|
|
11
|
+
readonly url?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface CheckResult {
|
|
14
|
+
/** What to do about it. Printed under the issues, once. */
|
|
15
|
+
readonly advice?: string;
|
|
16
|
+
readonly issues: readonly string[];
|
|
17
|
+
readonly ok: boolean;
|
|
18
|
+
}
|
|
19
|
+
export interface DoctorCheck {
|
|
20
|
+
/** Shown as the check runs, so a slow one says what it is waiting on. */
|
|
21
|
+
readonly description: string;
|
|
22
|
+
readonly run: (context: CheckContext) => Promise<CheckResult>;
|
|
23
|
+
}
|
|
24
|
+
export declare const passed: CheckResult;
|
|
25
|
+
export declare function failed(issues: readonly string[], advice?: string): CheckResult;
|
|
26
|
+
export interface DoctorReport {
|
|
27
|
+
readonly failures: number;
|
|
28
|
+
readonly ran: number;
|
|
29
|
+
}
|
|
30
|
+
export interface RunChecksOptions {
|
|
31
|
+
readonly checks: readonly DoctorCheck[];
|
|
32
|
+
readonly projectRoot: string;
|
|
33
|
+
readonly url?: string;
|
|
34
|
+
}
|
|
35
|
+
/** Runs every check against one project and reports what failed. */
|
|
36
|
+
export declare function runChecks({ checks, projectRoot, url, }: RunChecksOptions): Promise<DoctorReport>;
|
|
37
|
+
export interface DoctorOptions {
|
|
38
|
+
/** Checks contributed by the development client, when it is installed. */
|
|
39
|
+
readonly androidChecks?: readonly DoctorCheck[];
|
|
40
|
+
readonly checks: readonly DoctorCheck[];
|
|
41
|
+
readonly projectRoot: string;
|
|
42
|
+
/** Public URL to check against the Trusted Web Activity quality criteria. */
|
|
43
|
+
readonly url?: string;
|
|
44
|
+
}
|
|
45
|
+
export declare function runDoctor({ androidChecks, checks, projectRoot, url, }: DoctorOptions): Promise<DoctorReport>;
|
|
46
|
+
//# sourceMappingURL=doctor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"AAGA,OAAO,EAAiB,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAGhE;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACrE,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,0EAA0E;IAC1E,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,2DAA2D;IAC3D,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,yEAAyE;IACzE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;CAC/D;AAED,eAAO,MAAM,MAAM,EAAE,WAAsC,CAAC;AAE5D,wBAAgB,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,WAAW,CAE9E;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,EAAE,SAAS,WAAW,EAAE,CAAC;IACxC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,oEAAoE;AACpE,wBAAsB,SAAS,CAAC,EAC9B,MAAM,EACN,WAAW,EACX,GAAG,GACJ,EAAE,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC,CA6B1C;AAED,MAAM,WAAW,aAAa;IAC5B,0EAA0E;IAC1E,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,WAAW,EAAE,CAAC;IAChD,QAAQ,CAAC,MAAM,EAAE,SAAS,WAAW,EAAE,CAAC;IACxC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,6EAA6E;IAC7E,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAsB,SAAS,CAAC,EAC9B,aAAkB,EAClB,MAAM,EACN,WAAW,EACX,GAAG,GACJ,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAwBvC"}
|
package/dist/doctor.js
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { readFile } from "node:fs/promises";
|
|
2
|
+
import { join, resolve } from "node:path";
|
|
3
|
+
import { surveyProject } from "./survey.js";
|
|
4
|
+
import { intro, outro, step, success } from "./ui.js";
|
|
5
|
+
export const passed = { issues: [], ok: true };
|
|
6
|
+
export function failed(issues, advice) {
|
|
7
|
+
return { ...(advice === undefined ? null : { advice }), issues, ok: false };
|
|
8
|
+
}
|
|
9
|
+
/** Runs every check against one project and reports what failed. */
|
|
10
|
+
export async function runChecks({ checks, projectRoot, url, }) {
|
|
11
|
+
const root = resolve(projectRoot);
|
|
12
|
+
const survey = await surveyProject(root);
|
|
13
|
+
const context = {
|
|
14
|
+
projectRoot: root,
|
|
15
|
+
read: (relativePath) => readFile(join(root, relativePath), "utf8").catch(() => undefined),
|
|
16
|
+
survey,
|
|
17
|
+
...(url === undefined ? null : { url }),
|
|
18
|
+
};
|
|
19
|
+
let failures = 0;
|
|
20
|
+
for (const check of checks) {
|
|
21
|
+
const result = await check.run(context);
|
|
22
|
+
if (result.ok) {
|
|
23
|
+
success(check.description);
|
|
24
|
+
continue;
|
|
25
|
+
}
|
|
26
|
+
failures += 1;
|
|
27
|
+
step([
|
|
28
|
+
check.description,
|
|
29
|
+
...result.issues.map((issue) => ` - ${issue}`),
|
|
30
|
+
...(result.advice === undefined ? [] : ["", ` ${result.advice}`]),
|
|
31
|
+
].join("\n"));
|
|
32
|
+
}
|
|
33
|
+
return { failures, ran: checks.length };
|
|
34
|
+
}
|
|
35
|
+
export async function runDoctor({ androidChecks = [], checks, projectRoot, url, }) {
|
|
36
|
+
intro("Adjacent doctor");
|
|
37
|
+
const report = await runChecks({
|
|
38
|
+
checks: [...checks, ...androidChecks],
|
|
39
|
+
projectRoot,
|
|
40
|
+
...(url === undefined ? null : { url }),
|
|
41
|
+
});
|
|
42
|
+
if (androidChecks.length === 0) {
|
|
43
|
+
step("Android was not checked. Install adjacent-dev-client to include the " +
|
|
44
|
+
"toolchain a device needs.");
|
|
45
|
+
}
|
|
46
|
+
if (report.failures === 0) {
|
|
47
|
+
outro(`${report.ran} checks passed.`);
|
|
48
|
+
return report;
|
|
49
|
+
}
|
|
50
|
+
throw new Error(`${report.failures} of ${report.ran} checks failed. Each one above says what to do.`);
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=doctor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"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"}
|
package/dist/edits.d.ts
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export interface EditSummary {
|
|
2
|
+
/** Paths this run created, relative to the project root. */
|
|
3
|
+
readonly added: readonly string[];
|
|
4
|
+
/** Paths this run changed in place, relative to the project root. */
|
|
5
|
+
readonly rewritten: readonly string[];
|
|
6
|
+
/** Paths that already held what Adjacent needed. */
|
|
7
|
+
readonly skipped: readonly string[];
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Applies changes to a project that may already contain the user's own work.
|
|
11
|
+
* Everything created and everything overwritten is recorded, so a failure part
|
|
12
|
+
* way through restores the project rather than leaving it half converted.
|
|
13
|
+
*/
|
|
14
|
+
export interface ProjectEdits {
|
|
15
|
+
/** Writes a file only when it is absent. Returns false when one was there. */
|
|
16
|
+
readonly addFile: (relativePath: string, contents: Buffer | string) => Promise<boolean>;
|
|
17
|
+
readonly readFile: (relativePath: string) => Promise<string | undefined>;
|
|
18
|
+
readonly removeFile: (relativePath: string) => Promise<void>;
|
|
19
|
+
/** Overwrites an existing file, keeping the original for a rollback. */
|
|
20
|
+
readonly rewriteFile: (relativePath: string, contents: string) => Promise<void>;
|
|
21
|
+
readonly rollback: () => Promise<void>;
|
|
22
|
+
readonly root: string;
|
|
23
|
+
readonly summary: () => EditSummary;
|
|
24
|
+
}
|
|
25
|
+
export declare function createProjectEdits(root: string): ProjectEdits;
|
|
26
|
+
//# sourceMappingURL=edits.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"edits.d.ts","sourceRoot":"","sources":["../src/edits.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,WAAW;IAC1B,4DAA4D;IAC5D,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,qEAAqE;IACrE,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,oDAAoD;IACpD,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,8EAA8E;IAC9E,QAAQ,CAAC,OAAO,EAAE,CAChB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,GAAG,MAAM,KACtB,OAAO,CAAC,OAAO,CAAC,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACzE,QAAQ,CAAC,UAAU,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,wEAAwE;IACxE,QAAQ,CAAC,WAAW,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChF,QAAQ,CAAC,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,WAAW,CAAC;CACrC;AAsBD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAgG7D"}
|
package/dist/edits.js
ADDED
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { mkdir, readFile, rmdir, stat, unlink, writeFile } from "node:fs/promises";
|
|
2
|
+
import { dirname, relative, resolve, sep } from "node:path";
|
|
3
|
+
async function exists(path) {
|
|
4
|
+
return stat(path).then(() => true, () => false);
|
|
5
|
+
}
|
|
6
|
+
/** Every write and every removal is checked to be inside the project. */
|
|
7
|
+
function assertInsideProject(root, path) {
|
|
8
|
+
const relation = relative(root, path);
|
|
9
|
+
if (relation === "" || relation.startsWith("..") || relation.startsWith(sep)) {
|
|
10
|
+
throw new Error(`Refusing to touch a path outside the project: ${path}`);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
export function createProjectEdits(root) {
|
|
14
|
+
const projectRoot = resolve(root);
|
|
15
|
+
const added = [];
|
|
16
|
+
const rewritten = [];
|
|
17
|
+
const skipped = [];
|
|
18
|
+
const createdDirectories = [];
|
|
19
|
+
const restores = [];
|
|
20
|
+
async function ensureDirectory(path) {
|
|
21
|
+
if (await exists(path))
|
|
22
|
+
return;
|
|
23
|
+
if (!path.startsWith(projectRoot))
|
|
24
|
+
return;
|
|
25
|
+
await ensureDirectory(dirname(path));
|
|
26
|
+
if (await exists(path))
|
|
27
|
+
return;
|
|
28
|
+
await mkdir(path);
|
|
29
|
+
createdDirectories.push(path);
|
|
30
|
+
}
|
|
31
|
+
function target(relativePath) {
|
|
32
|
+
const path = resolve(projectRoot, relativePath);
|
|
33
|
+
assertInsideProject(projectRoot, path);
|
|
34
|
+
return path;
|
|
35
|
+
}
|
|
36
|
+
return {
|
|
37
|
+
root: projectRoot,
|
|
38
|
+
async addFile(relativePath, contents) {
|
|
39
|
+
const path = target(relativePath);
|
|
40
|
+
if (await exists(path)) {
|
|
41
|
+
skipped.push(relativePath);
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
44
|
+
await ensureDirectory(dirname(path));
|
|
45
|
+
await writeFile(path, contents);
|
|
46
|
+
restores.push({ contents: undefined, path });
|
|
47
|
+
added.push(relativePath);
|
|
48
|
+
return true;
|
|
49
|
+
},
|
|
50
|
+
readFile: (relativePath) => readFile(target(relativePath), "utf8").catch(() => undefined),
|
|
51
|
+
async removeFile(relativePath) {
|
|
52
|
+
const path = target(relativePath);
|
|
53
|
+
const original = await readFile(path).catch(() => undefined);
|
|
54
|
+
if (original === undefined)
|
|
55
|
+
return;
|
|
56
|
+
restores.push({ contents: original, path });
|
|
57
|
+
await unlink(path);
|
|
58
|
+
},
|
|
59
|
+
async rewriteFile(relativePath, contents) {
|
|
60
|
+
const path = target(relativePath);
|
|
61
|
+
const original = await readFile(path).catch(() => undefined);
|
|
62
|
+
await ensureDirectory(dirname(path));
|
|
63
|
+
await writeFile(path, contents);
|
|
64
|
+
if (original === undefined) {
|
|
65
|
+
restores.push({ contents: undefined, path });
|
|
66
|
+
added.push(relativePath);
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
restores.push({ contents: original, path });
|
|
70
|
+
rewritten.push(relativePath);
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
async rollback() {
|
|
74
|
+
// Reverse order, so a file created inside a created directory is gone
|
|
75
|
+
// before the directory it lives in is removed.
|
|
76
|
+
for (const restore of [...restores].reverse()) {
|
|
77
|
+
assertInsideProject(projectRoot, restore.path);
|
|
78
|
+
if (restore.contents === undefined) {
|
|
79
|
+
await unlink(restore.path).catch(() => undefined);
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
await writeFile(restore.path, restore.contents).catch(() => undefined);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
for (const directory of [...createdDirectories].reverse()) {
|
|
86
|
+
assertInsideProject(projectRoot, directory);
|
|
87
|
+
await rmdir(directory).catch(() => undefined);
|
|
88
|
+
}
|
|
89
|
+
restores.length = 0;
|
|
90
|
+
createdDirectories.length = 0;
|
|
91
|
+
added.length = 0;
|
|
92
|
+
rewritten.length = 0;
|
|
93
|
+
},
|
|
94
|
+
summary: () => ({
|
|
95
|
+
added: [...added],
|
|
96
|
+
rewritten: [...rewritten],
|
|
97
|
+
skipped: [...skipped],
|
|
98
|
+
}),
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=edits.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"edits.js","sourceRoot":"","sources":["../src/edits.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export { resolveAndroidDevOptions, resolveAndroidInstallOptions, resolveCreateOptions, resolveDevCommandProject, resolveInitOptions, resolveNavigatePath, type AndroidCliOptions, type AndroidDevOptions, type AndroidInstallOptions, type CreateCliOptions, type CreateOptionsInput, type InitCliOptions, type InitOptionsInput, } from "./arguments.js";
|
|
2
|
+
export { runCreate, type CreateOptions, type CreatePorts, type CreateResult, } from "./create.js";
|
|
3
|
+
export { runInit, runInitCommand, type InitOptions, type InitPorts, type InitResult, } from "./init.js";
|
|
4
|
+
export { runDevCommand } from "./dev.js";
|
|
5
|
+
export { PROJECT_CHECKS } from "./checks.js";
|
|
6
|
+
export { failed, passed, runChecks, runDoctor, type CheckContext, type CheckResult, type DoctorCheck, type DoctorOptions, type DoctorReport, } from "./doctor.js";
|
|
7
|
+
export { clearDevChannelState, DEV_COMMAND, readDevChannelState, sendDevCommand, startDevChannel, writeDevChannelState, type DevChannel, type DevChannelState, type DevCommand, } from "./dev-channel.js";
|
|
8
|
+
export { KEY_HELP, watchKeys, type KeyHandlers } from "./keys.js";
|
|
9
|
+
export { resolvePackageManager, type PackageManager, } from "./package-manager.js";
|
|
10
|
+
export { killProcessTree, runCommand, runInheritedCommand, startCommand, terminateProcessTree, type CommandOptions, type CommandResult, } from "./process.js";
|
|
11
|
+
export { createShutdown, type Shutdown, type ShutdownOptions } from "./shutdown.js";
|
|
12
|
+
export { intro, outro, selectItem, step, success, task } from "./ui.js";
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,4BAA4B,EAC5B,oBAAoB,EACpB,wBAAwB,EACxB,kBAAkB,EAClB,mBAAmB,EACnB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,gBAAgB,GACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,SAAS,EACT,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,YAAY,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,OAAO,EACP,cAAc,EACd,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,UAAU,GAChB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EACL,MAAM,EACN,MAAM,EACN,SAAS,EACT,SAAS,EACT,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,YAAY,GAClB,MAAM,aAAa,CAAC;AAOrB,OAAO,EACL,oBAAoB,EACpB,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,oBAAoB,EACpB,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,UAAU,GAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAClE,OAAO,EACL,qBAAqB,EACrB,KAAK,cAAc,GACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,eAAe,EACf,UAAU,EACV,mBAAmB,EACnB,YAAY,EACZ,oBAAoB,EACpB,KAAK,cAAc,EACnB,KAAK,aAAa,GACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,cAAc,EAAE,KAAK,QAAQ,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AACpF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export { resolveAndroidDevOptions, resolveAndroidInstallOptions, resolveCreateOptions, resolveDevCommandProject, resolveInitOptions, resolveNavigatePath, } from "./arguments.js";
|
|
2
|
+
export { runCreate, } from "./create.js";
|
|
3
|
+
export { runInit, runInitCommand, } from "./init.js";
|
|
4
|
+
export { runDevCommand } from "./dev.js";
|
|
5
|
+
export { PROJECT_CHECKS } from "./checks.js";
|
|
6
|
+
export { failed, passed, runChecks, runDoctor, } from "./doctor.js";
|
|
7
|
+
/*
|
|
8
|
+
* The development harness. A device is reached through a package that is not
|
|
9
|
+
* installed unless someone wants one, so these are exported rather than kept
|
|
10
|
+
* private: `adjacent-dev-client` is built on them.
|
|
11
|
+
*/
|
|
12
|
+
export { clearDevChannelState, DEV_COMMAND, readDevChannelState, sendDevCommand, startDevChannel, writeDevChannelState, } from "./dev-channel.js";
|
|
13
|
+
export { KEY_HELP, watchKeys } from "./keys.js";
|
|
14
|
+
export { resolvePackageManager, } from "./package-manager.js";
|
|
15
|
+
export { killProcessTree, runCommand, runInheritedCommand, startCommand, terminateProcessTree, } from "./process.js";
|
|
16
|
+
export { createShutdown } from "./shutdown.js";
|
|
17
|
+
export { intro, outro, selectItem, step, success, task } from "./ui.js";
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,4BAA4B,EAC5B,oBAAoB,EACpB,wBAAwB,EACxB,kBAAkB,EAClB,mBAAmB,GAQpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,SAAS,GAIV,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,OAAO,EACP,cAAc,GAIf,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EACL,MAAM,EACN,MAAM,EACN,SAAS,EACT,SAAS,GAMV,MAAM,aAAa,CAAC;AAErB;;;;GAIG;AACH,OAAO,EACL,oBAAoB,EACpB,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,oBAAoB,GAIrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAoB,MAAM,WAAW,CAAC;AAClE,OAAO,EACL,qBAAqB,GAEtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,eAAe,EACf,UAAU,EACV,mBAAmB,EACnB,YAAY,EACZ,oBAAoB,GAGrB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,cAAc,EAAuC,MAAM,eAAe,CAAC;AACpF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC"}
|
package/dist/init.d.ts
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { ADJACENT_PACKAGES, type AdjacentDependencies } from "./dependencies.js";
|
|
2
|
+
import { type InstallOptions, type PackageManager } from "./package-manager.js";
|
|
3
|
+
import { type Reporter } from "./reporter.js";
|
|
4
|
+
import { type ProjectSurvey } from "./survey.js";
|
|
5
|
+
export interface InitOptions {
|
|
6
|
+
readonly install: boolean;
|
|
7
|
+
readonly projectRoot: string;
|
|
8
|
+
/** Adds the starter route group. Only `adj create` asks for this. */
|
|
9
|
+
readonly scaffold?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export interface InitPorts {
|
|
12
|
+
readonly dependencies?: AdjacentDependencies;
|
|
13
|
+
readonly install?: (root: string, options?: InstallOptions) => Promise<void>;
|
|
14
|
+
readonly reporter?: Reporter;
|
|
15
|
+
readonly templatesRoot?: string;
|
|
16
|
+
}
|
|
17
|
+
/** An edit Adjacent would not make on its own, described for the author. */
|
|
18
|
+
export interface ManualStep {
|
|
19
|
+
readonly file: string;
|
|
20
|
+
readonly instruction: string;
|
|
21
|
+
}
|
|
22
|
+
export interface InitResult {
|
|
23
|
+
readonly added: readonly string[];
|
|
24
|
+
readonly installed: boolean;
|
|
25
|
+
/** What this project installs with, so a caller can name it in its own output. */
|
|
26
|
+
readonly packageManager: PackageManager;
|
|
27
|
+
/** How to install: `file:`-linked projects need Bun's isolated linker. */
|
|
28
|
+
readonly installOptions: InstallOptions;
|
|
29
|
+
readonly manual: readonly ManualStep[];
|
|
30
|
+
readonly rewritten: readonly string[];
|
|
31
|
+
readonly root: string;
|
|
32
|
+
readonly survey: ProjectSurvey;
|
|
33
|
+
}
|
|
34
|
+
export declare function defaultTemplatesRoot(from?: string): string;
|
|
35
|
+
/**
|
|
36
|
+
* Finds the framework's `packages/` directory when this CLI runs from a
|
|
37
|
+
* checkout, so a generated application can depend on the local sources. Returns
|
|
38
|
+
* nothing once the CLI is installed from a registry.
|
|
39
|
+
*/
|
|
40
|
+
export declare function findWorkspacePackagesRoot(from?: string): Promise<string | undefined>;
|
|
41
|
+
/**
|
|
42
|
+
* Whether a project sits inside the framework's own Bun workspace. A member is
|
|
43
|
+
* linked with `workspace:*`, which is the only form that survives a clean
|
|
44
|
+
* checkout: Bun resolves it, so the framework's packages find each other
|
|
45
|
+
* wherever they are installed from.
|
|
46
|
+
*/
|
|
47
|
+
export declare function isWorkspaceMember(workspaceRoot: string, projectRoot: string): Promise<boolean>;
|
|
48
|
+
/**
|
|
49
|
+
* Adds the Adjacent packages to an existing manifest, leaving every other field
|
|
50
|
+
* alone. A `typecheck` script is added only when the project has none.
|
|
51
|
+
*/
|
|
52
|
+
export declare function addAdjacentDependencies(manifest: Record<string, unknown>, dependencies: AdjacentDependencies): Record<string, unknown>;
|
|
53
|
+
/**
|
|
54
|
+
* Adds Adjacent to an existing Next.js App Router application: the files it
|
|
55
|
+
* needs, the wrapping of the two files the application owns, and the packages
|
|
56
|
+
* it depends on. Anything that cannot be rewritten safely is reported instead.
|
|
57
|
+
*/
|
|
58
|
+
export declare function runInit(options: InitOptions, ports?: InitPorts): Promise<InitResult>;
|
|
59
|
+
/** `adj init` as a command: the injection, framed with progress and next steps. */
|
|
60
|
+
export declare function runInitCommand(options: InitOptions, ports?: InitPorts): Promise<InitResult>;
|
|
61
|
+
export { ADJACENT_PACKAGES };
|
|
62
|
+
//# sourceMappingURL=init.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,iBAAiB,EAGjB,KAAK,oBAAoB,EAC1B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAqB,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AASjE,OAAO,EAAiB,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAEhE,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,qEAAqE;IACrE,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,YAAY,CAAC,EAAE,oBAAoB,CAAC;IAC7C,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7E,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAC7B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,4EAA4E;AAC5E,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,kFAAkF;IAClF,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,0EAA0E;IAC1E,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC;IACvC,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;CAChC;AAMD,wBAAgB,oBAAoB,CAAC,IAAI,SAAoB,GAAG,MAAM,CAErE;AAED;;;;GAIG;AACH,wBAAsB,yBAAyB,CAC7C,IAAI,SAAoB,GACvB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAiB7B;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,OAAO,CAAC,CAsBlB;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,YAAY,EAAE,oBAAoB,GACjC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAmCzB;AAwCD;;;;GAIG;AACH,wBAAsB,OAAO,CAC3B,OAAO,EAAE,WAAW,EACpB,KAAK,GAAE,SAAc,GACpB,OAAO,CAAC,UAAU,CAAC,CA8JrB;AAED,mFAAmF;AACnF,wBAAsB,cAAc,CAClC,OAAO,EAAE,WAAW,EACpB,KAAK,GAAE,SAAc,GACpB,OAAO,CAAC,UAAU,CAAC,CAqBrB;AAED,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
|