@beignet/cli 0.0.3 → 0.0.5
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 +219 -0
- package/README.md +379 -61
- package/dist/ansi.d.ts +10 -0
- package/dist/ansi.d.ts.map +1 -0
- package/dist/ansi.js +20 -0
- package/dist/ansi.js.map +1 -0
- package/dist/choices.d.ts +49 -0
- package/dist/choices.d.ts.map +1 -0
- package/dist/choices.js +53 -0
- package/dist/choices.js.map +1 -0
- package/dist/completion.d.ts +47 -0
- package/dist/completion.d.ts.map +1 -0
- package/dist/completion.js +123 -0
- package/dist/completion.js.map +1 -0
- package/dist/config.d.ts +8 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +8 -0
- package/dist/config.js.map +1 -1
- package/dist/create-prompts.d.ts +41 -0
- package/dist/create-prompts.d.ts.map +1 -0
- package/dist/create-prompts.js +78 -0
- package/dist/create-prompts.js.map +1 -0
- package/dist/create.d.ts +10 -5
- package/dist/create.d.ts.map +1 -1
- package/dist/create.js +28 -47
- package/dist/create.js.map +1 -1
- package/dist/db.d.ts +1 -0
- package/dist/db.d.ts.map +1 -1
- package/dist/db.js +37 -2
- package/dist/db.js.map +1 -1
- package/dist/github-annotations.d.ts +18 -0
- package/dist/github-annotations.d.ts.map +1 -0
- package/dist/github-annotations.js +22 -0
- package/dist/github-annotations.js.map +1 -0
- package/dist/index.d.ts +1 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +665 -603
- package/dist/index.js.map +1 -1
- package/dist/inspect.d.ts +21 -2
- package/dist/inspect.d.ts.map +1 -1
- package/dist/inspect.js +1938 -131
- package/dist/inspect.js.map +1 -1
- package/dist/lib.d.ts +20 -0
- package/dist/lib.d.ts.map +1 -0
- package/dist/lib.js +17 -0
- package/dist/lib.js.map +1 -0
- package/dist/lint.d.ts +10 -1
- package/dist/lint.d.ts.map +1 -1
- package/dist/lint.js +340 -33
- package/dist/lint.js.map +1 -1
- package/dist/make.d.ts +20 -3
- package/dist/make.d.ts.map +1 -1
- package/dist/make.js +1896 -382
- package/dist/make.js.map +1 -1
- package/dist/outbox.d.ts +24 -0
- package/dist/outbox.d.ts.map +1 -0
- package/dist/outbox.js +138 -0
- package/dist/outbox.js.map +1 -0
- package/dist/schedule.d.ts +36 -0
- package/dist/schedule.d.ts.map +1 -0
- package/dist/schedule.js +155 -0
- package/dist/schedule.js.map +1 -0
- package/dist/task.d.ts +26 -0
- package/dist/task.d.ts.map +1 -0
- package/dist/task.js +106 -0
- package/dist/task.js.map +1 -0
- package/dist/templates/base.d.ts +13 -0
- package/dist/templates/base.d.ts.map +1 -0
- package/dist/templates/base.js +300 -0
- package/dist/templates/base.js.map +1 -0
- package/dist/templates/db.d.ts +14 -0
- package/dist/templates/db.d.ts.map +1 -0
- package/dist/templates/db.js +962 -0
- package/dist/templates/db.js.map +1 -0
- package/dist/templates/index.d.ts +14 -0
- package/dist/templates/index.d.ts.map +1 -0
- package/dist/templates/index.js +123 -0
- package/dist/templates/index.js.map +1 -0
- package/dist/templates/server.d.ts +26 -0
- package/dist/templates/server.d.ts.map +1 -0
- package/dist/templates/server.js +520 -0
- package/dist/templates/server.js.map +1 -0
- package/dist/templates/shadcn.d.ts +5 -0
- package/dist/templates/shadcn.d.ts.map +1 -0
- package/dist/templates/shadcn.js +555 -0
- package/dist/templates/shadcn.js.map +1 -0
- package/dist/templates/shared.d.ts +49 -0
- package/dist/templates/shared.d.ts.map +1 -0
- package/dist/templates/shared.js +57 -0
- package/dist/templates/shared.js.map +1 -0
- package/dist/templates/shell.d.ts +5 -0
- package/dist/templates/shell.d.ts.map +1 -0
- package/dist/templates/shell.js +1190 -0
- package/dist/templates/shell.js.map +1 -0
- package/dist/templates/todos.d.ts +17 -0
- package/dist/templates/todos.d.ts.map +1 -0
- package/dist/templates/todos.js +607 -0
- package/dist/templates/todos.js.map +1 -0
- package/dist/version.d.ts +8 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +18 -0
- package/dist/version.js.map +1 -0
- package/package.json +9 -8
- package/src/ansi.ts +30 -0
- package/src/choices.ts +83 -0
- package/src/completion.ts +169 -0
- package/src/config.ts +16 -0
- package/src/create-prompts.ts +114 -0
- package/src/create.ts +40 -64
- package/src/db.ts +60 -4
- package/src/github-annotations.ts +37 -0
- package/src/index.ts +1075 -817
- package/src/inspect.ts +2859 -115
- package/src/lib.ts +45 -0
- package/src/lint.ts +493 -39
- package/src/make.ts +2389 -406
- package/src/outbox.ts +249 -0
- package/src/schedule.ts +272 -0
- package/src/task.ts +169 -0
- package/src/templates/base.ts +377 -0
- package/src/templates/db.ts +963 -0
- package/src/templates/index.ts +148 -0
- package/src/templates/server.ts +528 -0
- package/src/templates/shadcn.ts +570 -0
- package/src/templates/shared.ts +90 -0
- package/src/templates/shell.ts +1219 -0
- package/src/templates/todos.ts +607 -0
- package/src/version.ts +20 -0
- package/dist/create-bin.d.ts +0 -3
- package/dist/create-bin.d.ts.map +0 -1
- package/dist/create-bin.js +0 -9
- package/dist/create-bin.js.map +0 -1
- package/dist/templates.d.ts +0 -55
- package/dist/templates.d.ts.map +0 -1
- package/dist/templates.js +0 -3520
- package/dist/templates.js.map +0 -1
- package/src/create-bin.ts +0 -11
- package/src/templates.ts +0 -3774
package/dist/ansi.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Minimal ANSI color helpers for human-readable CLI output.
|
|
3
|
+
*/
|
|
4
|
+
export type AnsiColor = "red" | "yellow" | "cyan" | "green" | "bold";
|
|
5
|
+
/**
|
|
6
|
+
* Create a paint function that wraps text in ANSI codes when enabled and
|
|
7
|
+
* returns the text unchanged otherwise.
|
|
8
|
+
*/
|
|
9
|
+
export declare function createPainter(enabled: boolean | undefined): (text: string, color: AnsiColor) => string;
|
|
10
|
+
//# sourceMappingURL=ansi.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ansi.d.ts","sourceRoot":"","sources":["../src/ansi.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAcrE;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,OAAO,GAAG,SAAS,GAC3B,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,KAAK,MAAM,CAM5C"}
|
package/dist/ansi.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
const ansiEscape = String.fromCharCode(27);
|
|
2
|
+
const ansiCodes = {
|
|
3
|
+
red: `${ansiEscape}[31m`,
|
|
4
|
+
yellow: `${ansiEscape}[33m`,
|
|
5
|
+
cyan: `${ansiEscape}[36m`,
|
|
6
|
+
green: `${ansiEscape}[32m`,
|
|
7
|
+
bold: `${ansiEscape}[1m`,
|
|
8
|
+
};
|
|
9
|
+
const ansiReset = `${ansiEscape}[0m`;
|
|
10
|
+
/**
|
|
11
|
+
* Create a paint function that wraps text in ANSI codes when enabled and
|
|
12
|
+
* returns the text unchanged otherwise.
|
|
13
|
+
*/
|
|
14
|
+
export function createPainter(enabled) {
|
|
15
|
+
if (!enabled) {
|
|
16
|
+
return (text) => text;
|
|
17
|
+
}
|
|
18
|
+
return (text, color) => `${ansiCodes[color]}${text}${ansiReset}`;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=ansi.js.map
|
package/dist/ansi.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ansi.js","sourceRoot":"","sources":["../src/ansi.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;AAE3C,MAAM,SAAS,GAA8B;IAC3C,GAAG,EAAE,GAAG,UAAU,MAAM;IACxB,MAAM,EAAE,GAAG,UAAU,MAAM;IAC3B,IAAI,EAAE,GAAG,UAAU,MAAM;IACzB,KAAK,EAAE,GAAG,UAAU,MAAM;IAC1B,IAAI,EAAE,GAAG,UAAU,KAAK;CACzB,CAAC;AAEF,MAAM,SAAS,GAAG,GAAG,UAAU,KAAK,CAAC;AAErC;;;GAGG;AACH,MAAM,UAAU,aAAa,CAC3B,OAA4B;IAE5B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC;IACxB,CAAC;IAED,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,SAAS,EAAE,CAAC;AACnE,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Choice lists and string-literal types shared by the CLI entrypoint and the
|
|
3
|
+
* heavier scaffold/generator modules. Keeping them here lets the bin define
|
|
4
|
+
* flag enums without loading templates or generators at startup.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Package managers supported by the app template generator.
|
|
8
|
+
*/
|
|
9
|
+
export type PackageManager = "bun" | "npm" | "pnpm" | "yarn";
|
|
10
|
+
/**
|
|
11
|
+
* Application templates supported by the app template generator.
|
|
12
|
+
*/
|
|
13
|
+
export type TemplateName = "next";
|
|
14
|
+
/**
|
|
15
|
+
* Optional provider integrations that can be scaffolded into a new app.
|
|
16
|
+
*
|
|
17
|
+
* Better Auth, Drizzle/libSQL, and pino ship in every starter, so only
|
|
18
|
+
* integrations that add an external service remain selectable.
|
|
19
|
+
*/
|
|
20
|
+
export type IntegrationName = "inngest" | "resend" | "upstash-rate-limit";
|
|
21
|
+
/**
|
|
22
|
+
* Supported scaffold template choices.
|
|
23
|
+
*/
|
|
24
|
+
export declare const templateChoices: readonly ["next"];
|
|
25
|
+
/**
|
|
26
|
+
* Supported scaffold package manager choices.
|
|
27
|
+
*/
|
|
28
|
+
export declare const packageManagerChoices: readonly ["bun", "npm", "pnpm", "yarn"];
|
|
29
|
+
/**
|
|
30
|
+
* Supported scaffold integration choices.
|
|
31
|
+
*/
|
|
32
|
+
export declare const integrationChoices: readonly ["inngest", "resend", "upstash-rate-limit"];
|
|
33
|
+
/**
|
|
34
|
+
* Shells supported by `beignet completion install` and `uninstall`.
|
|
35
|
+
*/
|
|
36
|
+
export type CompletionShell = "bash" | "zsh";
|
|
37
|
+
/**
|
|
38
|
+
* Supported completion shell choices.
|
|
39
|
+
*/
|
|
40
|
+
export declare const completionShellChoices: readonly ["bash", "zsh"];
|
|
41
|
+
/**
|
|
42
|
+
* Optional artifacts supported by `beignet make feature --with`.
|
|
43
|
+
*/
|
|
44
|
+
export declare const makeFeatureAddonChoices: readonly ["policy", "event", "events", "job", "jobs", "notification", "notifications", "task", "tasks", "ui", "upload", "uploads"];
|
|
45
|
+
/**
|
|
46
|
+
* Optional artifact accepted by `beignet make feature --with`.
|
|
47
|
+
*/
|
|
48
|
+
export type MakeFeatureAddon = (typeof makeFeatureAddonChoices)[number];
|
|
49
|
+
//# sourceMappingURL=choices.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"choices.d.ts","sourceRoot":"","sources":["../src/choices.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;AAC7D;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC;AAClC;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,QAAQ,GAAG,oBAAoB,CAAC;AAE1E;;GAEG;AACH,eAAO,MAAM,eAAe,mBAEgB,CAAC;AAE7C;;GAEG;AACH,eAAO,MAAM,qBAAqB,yCAKY,CAAC;AAE/C;;GAEG;AACH,eAAO,MAAM,kBAAkB,sDAIgB,CAAC;AAEhD;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,KAAK,CAAC;AAE7C;;GAEG;AACH,eAAO,MAAM,sBAAsB,0BAGY,CAAC;AAEhD;;GAEG;AACH,eAAO,MAAM,uBAAuB,oIAa1B,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC"}
|
package/dist/choices.js
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Choice lists and string-literal types shared by the CLI entrypoint and the
|
|
3
|
+
* heavier scaffold/generator modules. Keeping them here lets the bin define
|
|
4
|
+
* flag enums without loading templates or generators at startup.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Supported scaffold template choices.
|
|
8
|
+
*/
|
|
9
|
+
export const templateChoices = [
|
|
10
|
+
"next",
|
|
11
|
+
];
|
|
12
|
+
/**
|
|
13
|
+
* Supported scaffold package manager choices.
|
|
14
|
+
*/
|
|
15
|
+
export const packageManagerChoices = [
|
|
16
|
+
"bun",
|
|
17
|
+
"npm",
|
|
18
|
+
"pnpm",
|
|
19
|
+
"yarn",
|
|
20
|
+
];
|
|
21
|
+
/**
|
|
22
|
+
* Supported scaffold integration choices.
|
|
23
|
+
*/
|
|
24
|
+
export const integrationChoices = [
|
|
25
|
+
"inngest",
|
|
26
|
+
"resend",
|
|
27
|
+
"upstash-rate-limit",
|
|
28
|
+
];
|
|
29
|
+
/**
|
|
30
|
+
* Supported completion shell choices.
|
|
31
|
+
*/
|
|
32
|
+
export const completionShellChoices = [
|
|
33
|
+
"bash",
|
|
34
|
+
"zsh",
|
|
35
|
+
];
|
|
36
|
+
/**
|
|
37
|
+
* Optional artifacts supported by `beignet make feature --with`.
|
|
38
|
+
*/
|
|
39
|
+
export const makeFeatureAddonChoices = [
|
|
40
|
+
"policy",
|
|
41
|
+
"event",
|
|
42
|
+
"events",
|
|
43
|
+
"job",
|
|
44
|
+
"jobs",
|
|
45
|
+
"notification",
|
|
46
|
+
"notifications",
|
|
47
|
+
"task",
|
|
48
|
+
"tasks",
|
|
49
|
+
"ui",
|
|
50
|
+
"upload",
|
|
51
|
+
"uploads",
|
|
52
|
+
];
|
|
53
|
+
//# sourceMappingURL=choices.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"choices.js","sourceRoot":"","sources":["../src/choices.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAkBH;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,MAAM;CACoC,CAAC;AAE7C;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;CACsC,CAAC;AAE/C;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,SAAS;IACT,QAAQ;IACR,oBAAoB;CACyB,CAAC;AAOhD;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,MAAM;IACN,KAAK;CACwC,CAAC;AAEhD;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,KAAK;IACL,MAAM;IACN,cAAc;IACd,eAAe;IACf,MAAM;IACN,OAAO;IACP,IAAI;IACJ,QAAQ;IACR,SAAS;CACD,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shell completion install/uninstall for the `beignet` bin.
|
|
3
|
+
*
|
|
4
|
+
* The shell scripts call the hidden `beignet completion propose` entrypoint,
|
|
5
|
+
* which prints one proposal per line through stricli's completion engine. The
|
|
6
|
+
* route map and flag definitions live eagerly in index.ts, so proposals work
|
|
7
|
+
* without loading any lazy command module.
|
|
8
|
+
*/
|
|
9
|
+
import type { CompletionShell } from "./choices.js";
|
|
10
|
+
/**
|
|
11
|
+
* Result of installing or uninstalling shell completions.
|
|
12
|
+
*/
|
|
13
|
+
export type CompletionResult = {
|
|
14
|
+
schemaVersion: 1;
|
|
15
|
+
shell: CompletionShell;
|
|
16
|
+
file: string;
|
|
17
|
+
status: "installed" | "updated" | "removed" | "not-installed";
|
|
18
|
+
};
|
|
19
|
+
type CompletionOptions = {
|
|
20
|
+
shell?: CompletionShell;
|
|
21
|
+
/**
|
|
22
|
+
* Home directory override for tests.
|
|
23
|
+
*/
|
|
24
|
+
home?: string;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Detect the completion shell from a `$SHELL`-style path.
|
|
28
|
+
*/
|
|
29
|
+
export declare function detectCompletionShell(shellPath?: string | undefined): CompletionShell | undefined;
|
|
30
|
+
/**
|
|
31
|
+
* The completion script block written to the shell rc file.
|
|
32
|
+
*/
|
|
33
|
+
export declare function completionScript(shell: CompletionShell): string;
|
|
34
|
+
/**
|
|
35
|
+
* The rc file that owns completions for the given shell.
|
|
36
|
+
*/
|
|
37
|
+
export declare function completionRcFile(shell: CompletionShell, home?: string): string;
|
|
38
|
+
/**
|
|
39
|
+
* Install (or refresh) `beignet` completions in the shell rc file.
|
|
40
|
+
*/
|
|
41
|
+
export declare function installCompletions(options?: CompletionOptions): Promise<CompletionResult>;
|
|
42
|
+
/**
|
|
43
|
+
* Remove `beignet` completions from the shell rc file.
|
|
44
|
+
*/
|
|
45
|
+
export declare function uninstallCompletions(options?: CompletionOptions): Promise<CompletionResult>;
|
|
46
|
+
export {};
|
|
47
|
+
//# sourceMappingURL=completion.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"completion.d.ts","sourceRoot":"","sources":["../src/completion.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAqBpD;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,aAAa,EAAE,CAAC,CAAC;IACjB,KAAK,EAAE,eAAe,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,eAAe,CAAC;CAC/D,CAAC;AAEF,KAAK,iBAAiB,GAAG;IACvB,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,qBAAoB,GAC5B,eAAe,GAAG,SAAS,CAK7B;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CAE/D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,eAAe,EACtB,IAAI,SAAY,GACf,MAAM,CAER;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,gBAAgB,CAAC,CAiB3B;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,gBAAgB,CAAC,CAY3B"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shell completion install/uninstall for the `beignet` bin.
|
|
3
|
+
*
|
|
4
|
+
* The shell scripts call the hidden `beignet completion propose` entrypoint,
|
|
5
|
+
* which prints one proposal per line through stricli's completion engine. The
|
|
6
|
+
* route map and flag definitions live eagerly in index.ts, so proposals work
|
|
7
|
+
* without loading any lazy command module.
|
|
8
|
+
*/
|
|
9
|
+
import { readFile, writeFile } from "node:fs/promises";
|
|
10
|
+
import { homedir } from "node:os";
|
|
11
|
+
import path from "node:path";
|
|
12
|
+
const beginMarker = "# >>> beignet completions >>>";
|
|
13
|
+
const endMarker = "# <<< beignet completions <<<";
|
|
14
|
+
const bashScript = `_beignet_completions() {
|
|
15
|
+
local -a completions
|
|
16
|
+
while IFS= read -r line; do
|
|
17
|
+
[ -n "$line" ] && completions+=("$line")
|
|
18
|
+
done < <(beignet completion propose "\${COMP_WORDS[@]:1:COMP_CWORD}" 2>/dev/null)
|
|
19
|
+
COMPREPLY=("\${completions[@]}")
|
|
20
|
+
}
|
|
21
|
+
complete -F _beignet_completions beignet`;
|
|
22
|
+
const zshScript = `_beignet_completions() {
|
|
23
|
+
local -a completions
|
|
24
|
+
completions=("\${(@f)$(beignet completion propose "\${(@)words[2,CURRENT]}" 2>/dev/null)}")
|
|
25
|
+
compadd -- "\${completions[@]}"
|
|
26
|
+
}
|
|
27
|
+
compdef _beignet_completions beignet`;
|
|
28
|
+
/**
|
|
29
|
+
* Detect the completion shell from a `$SHELL`-style path.
|
|
30
|
+
*/
|
|
31
|
+
export function detectCompletionShell(shellPath = process.env.SHELL) {
|
|
32
|
+
const shellName = shellPath ? path.basename(shellPath) : "";
|
|
33
|
+
if (shellName === "bash")
|
|
34
|
+
return "bash";
|
|
35
|
+
if (shellName === "zsh")
|
|
36
|
+
return "zsh";
|
|
37
|
+
return undefined;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* The completion script block written to the shell rc file.
|
|
41
|
+
*/
|
|
42
|
+
export function completionScript(shell) {
|
|
43
|
+
return shell === "bash" ? bashScript : zshScript;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* The rc file that owns completions for the given shell.
|
|
47
|
+
*/
|
|
48
|
+
export function completionRcFile(shell, home = homedir()) {
|
|
49
|
+
return path.join(home, shell === "bash" ? ".bashrc" : ".zshrc");
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Install (or refresh) `beignet` completions in the shell rc file.
|
|
53
|
+
*/
|
|
54
|
+
export async function installCompletions(options = {}) {
|
|
55
|
+
const shell = resolveShell(options.shell);
|
|
56
|
+
const file = completionRcFile(shell, options.home);
|
|
57
|
+
const source = await readRcFile(file);
|
|
58
|
+
const stripped = removeCompletionBlock(source);
|
|
59
|
+
const block = `${beginMarker}\n${completionScript(shell)}\n${endMarker}`;
|
|
60
|
+
const next = stripped === "" ? `${block}\n` : `${trimEnd(stripped)}\n\n${block}\n`;
|
|
61
|
+
await writeFile(file, next);
|
|
62
|
+
return {
|
|
63
|
+
schemaVersion: 1,
|
|
64
|
+
shell,
|
|
65
|
+
file,
|
|
66
|
+
status: stripped === source ? "installed" : "updated",
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Remove `beignet` completions from the shell rc file.
|
|
71
|
+
*/
|
|
72
|
+
export async function uninstallCompletions(options = {}) {
|
|
73
|
+
const shell = resolveShell(options.shell);
|
|
74
|
+
const file = completionRcFile(shell, options.home);
|
|
75
|
+
const source = await readRcFile(file);
|
|
76
|
+
const stripped = removeCompletionBlock(source);
|
|
77
|
+
if (stripped === source) {
|
|
78
|
+
return { schemaVersion: 1, shell, file, status: "not-installed" };
|
|
79
|
+
}
|
|
80
|
+
await writeFile(file, stripped === "" ? "" : `${trimEnd(stripped)}\n`);
|
|
81
|
+
return { schemaVersion: 1, shell, file, status: "removed" };
|
|
82
|
+
}
|
|
83
|
+
function resolveShell(shell) {
|
|
84
|
+
if (shell)
|
|
85
|
+
return shell;
|
|
86
|
+
const detected = detectCompletionShell();
|
|
87
|
+
if (!detected) {
|
|
88
|
+
throw new Error(`Could not detect a supported shell from $SHELL (${process.env.SHELL ?? "unset"}). Pass --shell bash or --shell zsh.`);
|
|
89
|
+
}
|
|
90
|
+
return detected;
|
|
91
|
+
}
|
|
92
|
+
async function readRcFile(file) {
|
|
93
|
+
try {
|
|
94
|
+
return await readFile(file, "utf8");
|
|
95
|
+
}
|
|
96
|
+
catch (error) {
|
|
97
|
+
if (error instanceof Error &&
|
|
98
|
+
"code" in error &&
|
|
99
|
+
error.code === "ENOENT") {
|
|
100
|
+
return "";
|
|
101
|
+
}
|
|
102
|
+
throw error;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
function removeCompletionBlock(source) {
|
|
106
|
+
const beginIndex = source.indexOf(beginMarker);
|
|
107
|
+
if (beginIndex === -1)
|
|
108
|
+
return source;
|
|
109
|
+
const endIndex = source.indexOf(endMarker, beginIndex);
|
|
110
|
+
if (endIndex === -1)
|
|
111
|
+
return source;
|
|
112
|
+
const before = trimEnd(source.slice(0, beginIndex));
|
|
113
|
+
const after = source.slice(endIndex + endMarker.length).replace(/^\n+/, "");
|
|
114
|
+
if (before === "")
|
|
115
|
+
return after;
|
|
116
|
+
if (after === "")
|
|
117
|
+
return `${before}\n`;
|
|
118
|
+
return `${before}\n\n${after}`;
|
|
119
|
+
}
|
|
120
|
+
function trimEnd(source) {
|
|
121
|
+
return source.replace(/\s+$/, "");
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=completion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"completion.js","sourceRoot":"","sources":["../src/completion.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -11,6 +11,9 @@ export type BeignetPaths = {
|
|
|
11
11
|
routes: string;
|
|
12
12
|
server: string;
|
|
13
13
|
openapiRoute: string;
|
|
14
|
+
tasks: string;
|
|
15
|
+
outbox: string;
|
|
16
|
+
schedules: string;
|
|
14
17
|
appContext: string;
|
|
15
18
|
ports: string;
|
|
16
19
|
infrastructurePorts: string;
|
|
@@ -18,6 +21,11 @@ export type BeignetPaths = {
|
|
|
18
21
|
policies: string;
|
|
19
22
|
useCases: string;
|
|
20
23
|
useCaseBuilder: string;
|
|
24
|
+
listenersBuilder: string;
|
|
25
|
+
jobsBuilder: string;
|
|
26
|
+
schedulesBuilder: string;
|
|
27
|
+
notificationsBuilder: string;
|
|
28
|
+
tasksBuilder: string;
|
|
21
29
|
tests: string;
|
|
22
30
|
};
|
|
23
31
|
/**
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAEtC;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,mBAAmB,EAAE,MAAM,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,KAAK,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;CAC/B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,SAAS,EAAE,gBAAgB,CAAC;IAC5B,KAAK,EAAE,YAAY,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAEtC;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,mBAAmB,EAAE,MAAM,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,KAAK,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;CAC/B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,SAAS,EAAE,gBAAgB,CAAC;IAC5B,KAAK,EAAE,YAAY,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,qBAwBlC,CAAC;AAEF;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa,CAEjE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,MAAM,GAAE,aAAkB,EAC1B,UAAU,CAAC,EAAE,MAAM,GAClB,qBAAqB,CAWvB;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,MAAM,EACjB,KAAK,CAAC,EAAE,MAAM,EAAE,GACf,OAAO,CAAC,qBAAqB,CAAC,CA+ChC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEtD"}
|
package/dist/config.js
CHANGED
|
@@ -12,6 +12,9 @@ export const defaultBeignetConfig = {
|
|
|
12
12
|
routes: "app/api",
|
|
13
13
|
server: "server/index.ts",
|
|
14
14
|
openapiRoute: "app/api/openapi/route.ts",
|
|
15
|
+
tasks: "server/tasks.ts",
|
|
16
|
+
outbox: "server/outbox.ts",
|
|
17
|
+
schedules: "server/schedules.ts",
|
|
15
18
|
appContext: "app-context.ts",
|
|
16
19
|
ports: "ports/index.ts",
|
|
17
20
|
infrastructurePorts: "infra/app-ports.ts",
|
|
@@ -19,6 +22,11 @@ export const defaultBeignetConfig = {
|
|
|
19
22
|
policies: "features",
|
|
20
23
|
useCases: "features",
|
|
21
24
|
useCaseBuilder: "lib/use-case.ts",
|
|
25
|
+
listenersBuilder: "lib/listeners.ts",
|
|
26
|
+
jobsBuilder: "lib/jobs.ts",
|
|
27
|
+
schedulesBuilder: "lib/schedules.ts",
|
|
28
|
+
notificationsBuilder: "lib/notifications.ts",
|
|
29
|
+
tasksBuilder: "lib/tasks.ts",
|
|
22
30
|
tests: "tests",
|
|
23
31
|
},
|
|
24
32
|
};
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Interactive selection flow for `beignet create`.
|
|
3
|
+
*
|
|
4
|
+
* The decision helper is pure so the TTY gating stays unit-testable, and
|
|
5
|
+
* `@clack/prompts` is loaded lazily inside the prompt flow so non-interactive
|
|
6
|
+
* runs and CLI startup never pay for it.
|
|
7
|
+
*/
|
|
8
|
+
import { type IntegrationName, type PackageManager } from "./choices.js";
|
|
9
|
+
/**
|
|
10
|
+
* Selections shared by create flags and interactive prompt answers.
|
|
11
|
+
*/
|
|
12
|
+
export type CreateSelections = {
|
|
13
|
+
directory?: string;
|
|
14
|
+
api?: boolean;
|
|
15
|
+
integrations?: readonly IntegrationName[];
|
|
16
|
+
packageManager?: PackageManager;
|
|
17
|
+
};
|
|
18
|
+
type CreatePromptFlags = CreateSelections & {
|
|
19
|
+
yes?: boolean;
|
|
20
|
+
};
|
|
21
|
+
type CreatePromptTty = {
|
|
22
|
+
stdin: boolean;
|
|
23
|
+
stdout: boolean;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Decide whether `beignet create` should run the interactive prompt flow.
|
|
27
|
+
*
|
|
28
|
+
* Prompts run only on a full TTY, only when `--yes` is absent, and only when
|
|
29
|
+
* no selection flag was passed. Any explicit api, integration, or package
|
|
30
|
+
* manager selection means the invocation is scripted, so the non-interactive
|
|
31
|
+
* path stays byte-identical for agents and CI.
|
|
32
|
+
*/
|
|
33
|
+
export declare function shouldPromptInteractively(flags: CreatePromptFlags, tty: CreatePromptTty): boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Run the interactive `beignet create` prompt flow.
|
|
36
|
+
*
|
|
37
|
+
* Returns the completed selections, or undefined when the user cancels.
|
|
38
|
+
*/
|
|
39
|
+
export declare function promptCreateSelections(initial: CreateSelections): Promise<CreateSelections | undefined>;
|
|
40
|
+
export {};
|
|
41
|
+
//# sourceMappingURL=create-prompts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-prompts.d.ts","sourceRoot":"","sources":["../src/create-prompts.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,KAAK,eAAe,EAEpB,KAAK,cAAc,EACpB,MAAM,cAAc,CAAC;AAEtB;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,YAAY,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;IAC1C,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC,CAAC;AAEF,KAAK,iBAAiB,GAAG,gBAAgB,GAAG;IAC1C,GAAG,CAAC,EAAE,OAAO,CAAC;CACf,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,iBAAiB,EACxB,GAAG,EAAE,eAAe,GACnB,OAAO,CAUT;AAQD;;;;GAIG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CA4CvC"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Interactive selection flow for `beignet create`.
|
|
3
|
+
*
|
|
4
|
+
* The decision helper is pure so the TTY gating stays unit-testable, and
|
|
5
|
+
* `@clack/prompts` is loaded lazily inside the prompt flow so non-interactive
|
|
6
|
+
* runs and CLI startup never pay for it.
|
|
7
|
+
*/
|
|
8
|
+
import { integrationChoices, } from "./choices.js";
|
|
9
|
+
/**
|
|
10
|
+
* Decide whether `beignet create` should run the interactive prompt flow.
|
|
11
|
+
*
|
|
12
|
+
* Prompts run only on a full TTY, only when `--yes` is absent, and only when
|
|
13
|
+
* no selection flag was passed. Any explicit api, integration, or package
|
|
14
|
+
* manager selection means the invocation is scripted, so the non-interactive
|
|
15
|
+
* path stays byte-identical for agents and CI.
|
|
16
|
+
*/
|
|
17
|
+
export function shouldPromptInteractively(flags, tty) {
|
|
18
|
+
if (!tty.stdin || !tty.stdout)
|
|
19
|
+
return false;
|
|
20
|
+
if (flags.yes)
|
|
21
|
+
return false;
|
|
22
|
+
const selectionFlagPassed = flags.api !== undefined ||
|
|
23
|
+
(flags.integrations?.length ?? 0) > 0 ||
|
|
24
|
+
flags.packageManager !== undefined;
|
|
25
|
+
return !selectionFlagPassed;
|
|
26
|
+
}
|
|
27
|
+
const integrationHints = {
|
|
28
|
+
inngest: "Inngest-backed background jobs",
|
|
29
|
+
resend: "Resend-backed mail provider",
|
|
30
|
+
"upstash-rate-limit": "Upstash-backed rate limiting",
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Run the interactive `beignet create` prompt flow.
|
|
34
|
+
*
|
|
35
|
+
* Returns the completed selections, or undefined when the user cancels.
|
|
36
|
+
*/
|
|
37
|
+
export async function promptCreateSelections(initial) {
|
|
38
|
+
const prompts = await import("@clack/prompts");
|
|
39
|
+
prompts.intro("beignet create");
|
|
40
|
+
let directory = initial.directory;
|
|
41
|
+
if (directory === undefined) {
|
|
42
|
+
const answer = await prompts.text({
|
|
43
|
+
message: "Where should the app be created?",
|
|
44
|
+
placeholder: "my-app",
|
|
45
|
+
validate: (value) => value === undefined || value.trim() === ""
|
|
46
|
+
? "Enter a project directory."
|
|
47
|
+
: undefined,
|
|
48
|
+
});
|
|
49
|
+
if (prompts.isCancel(answer))
|
|
50
|
+
return undefined;
|
|
51
|
+
directory = answer;
|
|
52
|
+
}
|
|
53
|
+
const api = await prompts.confirm({
|
|
54
|
+
message: "API-only app (no UI shell)?",
|
|
55
|
+
initialValue: false,
|
|
56
|
+
});
|
|
57
|
+
if (prompts.isCancel(api))
|
|
58
|
+
return undefined;
|
|
59
|
+
const integrations = await prompts.multiselect({
|
|
60
|
+
message: "Add provider integrations? (press enter to skip)",
|
|
61
|
+
options: integrationChoices.map((integration) => ({
|
|
62
|
+
value: integration,
|
|
63
|
+
label: integration,
|
|
64
|
+
hint: integrationHints[integration],
|
|
65
|
+
})),
|
|
66
|
+
required: false,
|
|
67
|
+
});
|
|
68
|
+
if (prompts.isCancel(integrations))
|
|
69
|
+
return undefined;
|
|
70
|
+
prompts.outro(`Creating ${directory}`);
|
|
71
|
+
return {
|
|
72
|
+
directory,
|
|
73
|
+
api,
|
|
74
|
+
integrations,
|
|
75
|
+
packageManager: initial.packageManager,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=create-prompts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-prompts.js","sourceRoot":"","sources":["../src/create-prompts.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAEL,kBAAkB,GAEnB,MAAM,cAAc,CAAC;AAqBtB;;;;;;;GAOG;AACH,MAAM,UAAU,yBAAyB,CACvC,KAAwB,EACxB,GAAoB;IAEpB,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,KAAK,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IAE5B,MAAM,mBAAmB,GACvB,KAAK,CAAC,GAAG,KAAK,SAAS;QACvB,CAAC,KAAK,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;QACrC,KAAK,CAAC,cAAc,KAAK,SAAS,CAAC;IAErC,OAAO,CAAC,mBAAmB,CAAC;AAC9B,CAAC;AAED,MAAM,gBAAgB,GAAoC;IACxD,OAAO,EAAE,gCAAgC;IACzC,MAAM,EAAE,6BAA6B;IACrC,oBAAoB,EAAE,8BAA8B;CACrD,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,OAAyB;IAEzB,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAE/C,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAEhC,IAAI,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IAClC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;YAChC,OAAO,EAAE,kCAAkC;YAC3C,WAAW,EAAE,QAAQ;YACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAClB,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;gBACxC,CAAC,CAAC,4BAA4B;gBAC9B,CAAC,CAAC,SAAS;SAChB,CAAC,CAAC;QACH,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,OAAO,SAAS,CAAC;QAC/C,SAAS,GAAG,MAAM,CAAC;IACrB,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC;QAChC,OAAO,EAAE,6BAA6B;QACtC,YAAY,EAAE,KAAK;KACpB,CAAC,CAAC;IACH,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAE5C,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,WAAW,CAAkB;QAC9D,OAAO,EAAE,kDAAkD;QAC3D,OAAO,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YAChD,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,WAAW;YAClB,IAAI,EAAE,gBAAgB,CAAC,WAAW,CAAC;SACpC,CAAC,CAAC;QACH,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IACH,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;QAAE,OAAO,SAAS,CAAC;IAErD,OAAO,CAAC,KAAK,CAAC,YAAY,SAAS,EAAE,CAAC,CAAC;IAEvC,OAAO;QACL,SAAS;QACT,GAAG;QACH,YAAY;QACZ,cAAc,EAAE,OAAO,CAAC,cAAc;KACvC,CAAC;AACJ,CAAC"}
|
package/dist/create.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type IntegrationName, type PackageManager, type TemplateName } from "./templates/index.js";
|
|
2
2
|
/**
|
|
3
3
|
* Options for creating a new Beignet app.
|
|
4
4
|
*/
|
|
@@ -6,24 +6,29 @@ export type CreateOptions = {
|
|
|
6
6
|
name: string;
|
|
7
7
|
cwd?: string;
|
|
8
8
|
template?: TemplateName;
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
/**
|
|
10
|
+
* Scaffold an API-only app without the UI shell.
|
|
11
|
+
*/
|
|
12
|
+
api?: boolean;
|
|
11
13
|
packageManager?: PackageManager;
|
|
12
14
|
integrations?: IntegrationName[];
|
|
13
15
|
force?: boolean;
|
|
16
|
+
dryRun?: boolean;
|
|
14
17
|
beignetVersion?: string;
|
|
15
18
|
};
|
|
16
19
|
/**
|
|
17
|
-
* Result returned after a new app is scaffolded.
|
|
20
|
+
* Result returned after a new app is scaffolded or previewed.
|
|
18
21
|
*/
|
|
19
22
|
export type CreateResult = {
|
|
23
|
+
schemaVersion: 1;
|
|
20
24
|
name: string;
|
|
21
25
|
targetDir: string;
|
|
26
|
+
dryRun: boolean;
|
|
22
27
|
files: string[];
|
|
23
28
|
packageManager: PackageManager;
|
|
24
29
|
};
|
|
25
30
|
/**
|
|
26
|
-
* Create a Beignet app from
|
|
31
|
+
* Create a Beignet app from the starter template.
|
|
27
32
|
*/
|
|
28
33
|
export declare function createProject(options: CreateOptions): Promise<CreateResult>;
|
|
29
34
|
//# sourceMappingURL=create.d.ts.map
|
package/dist/create.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,eAAe,EAEpB,KAAK,cAAc,EACnB,KAAK,YAAY,EAClB,MAAM,sBAAsB,CAAC;AAG9B;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB;;OAEG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,YAAY,CAAC,EAAE,eAAe,EAAE,CAAC;IACjC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,aAAa,EAAE,CAAC,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,cAAc,EAAE,cAAc,CAAC;CAChC,CAAC;AAEF;;GAEG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,YAAY,CAAC,CA6CvB"}
|