@ebay-dt/bonfire-node 0.1.0-alpha.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.
Files changed (71) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +98 -0
  3. package/dist/duplicate.d.ts +24 -0
  4. package/dist/duplicate.d.ts.map +1 -0
  5. package/dist/duplicate.js +333 -0
  6. package/dist/duplicate.js.map +1 -0
  7. package/dist/git-repository.d.ts +73 -0
  8. package/dist/git-repository.d.ts.map +1 -0
  9. package/dist/git-repository.js +385 -0
  10. package/dist/git-repository.js.map +1 -0
  11. package/dist/github-cli.d.ts +27 -0
  12. package/dist/github-cli.d.ts.map +1 -0
  13. package/dist/github-cli.js +203 -0
  14. package/dist/github-cli.js.map +1 -0
  15. package/dist/index.d.ts +7 -0
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/index.js +4 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/internal/owned-destination.d.ts +24 -0
  20. package/dist/internal/owned-destination.d.ts.map +1 -0
  21. package/dist/internal/owned-destination.js +232 -0
  22. package/dist/internal/owned-destination.js.map +1 -0
  23. package/dist/internal/prototype-templates.d.ts +9 -0
  24. package/dist/internal/prototype-templates.d.ts.map +1 -0
  25. package/dist/internal/prototype-templates.js +78 -0
  26. package/dist/internal/prototype-templates.js.map +1 -0
  27. package/dist/internal/utils.d.ts +12 -0
  28. package/dist/internal/utils.d.ts.map +1 -0
  29. package/dist/internal/utils.js +13 -0
  30. package/dist/internal/utils.js.map +1 -0
  31. package/dist/lifecycle/dirty-state.d.ts +7 -0
  32. package/dist/lifecycle/dirty-state.d.ts.map +1 -0
  33. package/dist/lifecycle/dirty-state.js +10 -0
  34. package/dist/lifecycle/dirty-state.js.map +1 -0
  35. package/dist/lifecycle/local-prototype-lifecycle.d.ts +35 -0
  36. package/dist/lifecycle/local-prototype-lifecycle.d.ts.map +1 -0
  37. package/dist/lifecycle/local-prototype-lifecycle.js +265 -0
  38. package/dist/lifecycle/local-prototype-lifecycle.js.map +1 -0
  39. package/dist/lifecycle/operation-gate.d.ts +7 -0
  40. package/dist/lifecycle/operation-gate.d.ts.map +1 -0
  41. package/dist/lifecycle/operation-gate.js +31 -0
  42. package/dist/lifecycle/operation-gate.js.map +1 -0
  43. package/dist/lifecycle/runtime-context.d.ts +20 -0
  44. package/dist/lifecycle/runtime-context.d.ts.map +1 -0
  45. package/dist/lifecycle/runtime-context.js +41 -0
  46. package/dist/lifecycle/runtime-context.js.map +1 -0
  47. package/dist/prepare-prototype-files.d.ts +23 -0
  48. package/dist/prepare-prototype-files.d.ts.map +1 -0
  49. package/dist/prepare-prototype-files.js +2 -0
  50. package/dist/prepare-prototype-files.js.map +1 -0
  51. package/dist/process-runner.d.ts +27 -0
  52. package/dist/process-runner.d.ts.map +1 -0
  53. package/dist/process-runner.js +19 -0
  54. package/dist/process-runner.js.map +1 -0
  55. package/dist/prototype-catalog.d.ts +13 -0
  56. package/dist/prototype-catalog.d.ts.map +1 -0
  57. package/dist/prototype-catalog.js +124 -0
  58. package/dist/prototype-catalog.js.map +1 -0
  59. package/dist/prototype-paths.d.ts +14 -0
  60. package/dist/prototype-paths.d.ts.map +1 -0
  61. package/dist/prototype-paths.js +121 -0
  62. package/dist/prototype-paths.js.map +1 -0
  63. package/dist/scaffold.d.ts +24 -0
  64. package/dist/scaffold.d.ts.map +1 -0
  65. package/dist/scaffold.js +173 -0
  66. package/dist/scaffold.js.map +1 -0
  67. package/dist/watcher.d.ts +20 -0
  68. package/dist/watcher.d.ts.map +1 -0
  69. package/dist/watcher.js +182 -0
  70. package/dist/watcher.js.map +1 -0
  71. package/package.json +53 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,cAAc,EACd,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,GACvB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,gBAAgB,EAChB,KAAK,oBAAoB,GAC1B,MAAM,wBAAwB,CAAC;AAChC,YAAY,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACpE,YAAY,EACV,qBAAqB,EACrB,4BAA4B,GAC7B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,uBAAuB,EACvB,KAAK,8BAA8B,EACnC,KAAK,kBAAkB,GACxB,MAAM,0CAA0C,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,4 @@
1
+ export { GitHubCliClient, GitHubCliError, } from "./github-cli.js";
2
+ export { PrototypeCatalog, } from "./prototype-catalog.js";
3
+ export { LocalPrototypeLifecycle, } from "./lifecycle/local-prototype-lifecycle.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,cAAc,GAKf,MAAM,iBAAiB,CAAC;AASzB,OAAO,EACL,gBAAgB,GAEjB,MAAM,wBAAwB,CAAC;AAMhC,OAAO,EACL,uBAAuB,GAGxB,MAAM,0CAA0C,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { type PrototypeMetadata, type PrototypeRef } from "@ebay-dt/bonfire-core";
2
+ export type OwnedDestinationReceipt = Readonly<{
3
+ path: string;
4
+ repositoryRoot: string;
5
+ prototypeRoot: string;
6
+ device: number;
7
+ inode: number;
8
+ }>;
9
+ export type OwnedDestinationResult = Readonly<{
10
+ destination: string;
11
+ receipt: OwnedDestinationReceipt;
12
+ expectedFiles: readonly string[];
13
+ }>;
14
+ export declare class OwnedDestinationError extends Error {
15
+ constructor();
16
+ }
17
+ export declare function captureOwnedDestination(options: {
18
+ path: string;
19
+ repositoryRoot: string;
20
+ prototypeRoot: string;
21
+ }): Promise<OwnedDestinationReceipt>;
22
+ export declare function cleanupOwnedDestination(receipt: OwnedDestinationReceipt): Promise<void>;
23
+ export declare function validateOwnedDestination(receipt: OwnedDestinationReceipt, expectedFiles: readonly string[], ref: PrototypeRef): Promise<PrototypeMetadata>;
24
+ //# sourceMappingURL=owned-destination.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"owned-destination.d.ts","sourceRoot":"","sources":["../../src/internal/owned-destination.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,YAAY,EAClB,MAAM,uBAAuB,CAAC;AAY/B,MAAM,MAAM,uBAAuB,GAAG,QAAQ,CAAC;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,CAAC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,QAAQ,CAAC;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,uBAAuB,CAAC;IACjC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;CAClC,CAAC,CAAC;AAEH,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,cAGC;CACF;AAkCD,wBAAsB,uBAAuB,CAAC,OAAO,EAAE;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;CACvB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAiBnC;AA6DD,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,IAAI,CAAC,CAOf;AAsCD,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,uBAAuB,EAChC,aAAa,EAAE,SAAS,MAAM,EAAE,EAChC,GAAG,EAAE,YAAY,GAChB,OAAO,CAAC,iBAAiB,CAAC,CAqF5B"}
@@ -0,0 +1,232 @@
1
+ import { constants } from "node:fs";
2
+ import { lstat, open, readdir, rm, rmdir } from "node:fs/promises";
3
+ import { isAbsolute, join, relative, sep } from "node:path";
4
+ import { parsePrototypeMetadata, } from "@ebay-dt/bonfire-core";
5
+ const FILE_OPEN_FLAGS = constants.O_RDONLY | (constants.O_NOFOLLOW ?? 0);
6
+ const BLOCKED_DIRECTORY_NAMES = new Set([
7
+ ".next",
8
+ ".turbo",
9
+ "build",
10
+ "coverage",
11
+ "dist",
12
+ "node_modules",
13
+ ]);
14
+ export class OwnedDestinationError extends Error {
15
+ constructor() {
16
+ super("Invalid owned prototype destination");
17
+ this.name = "OwnedDestinationError";
18
+ }
19
+ }
20
+ function isContained(root, path) {
21
+ const pathFromRoot = relative(root, path);
22
+ return (pathFromRoot.length > 0 &&
23
+ pathFromRoot !== ".." &&
24
+ !pathFromRoot.startsWith(`..${sep}`) &&
25
+ !isAbsolute(pathFromRoot));
26
+ }
27
+ function assertContainedDestination(path, repositoryRoot, prototypeRoot) {
28
+ if (!isAbsolute(path) ||
29
+ !isContained(repositoryRoot, path) ||
30
+ !isContained(prototypeRoot, path)) {
31
+ throw new OwnedDestinationError();
32
+ }
33
+ }
34
+ async function readStats(path) {
35
+ try {
36
+ return await lstat(path);
37
+ }
38
+ catch {
39
+ throw new OwnedDestinationError();
40
+ }
41
+ }
42
+ export async function captureOwnedDestination(options) {
43
+ assertContainedDestination(options.path, options.repositoryRoot, options.prototypeRoot);
44
+ const stats = await readStats(options.path);
45
+ if (!stats.isDirectory() || stats.isSymbolicLink()) {
46
+ throw new OwnedDestinationError();
47
+ }
48
+ return {
49
+ path: options.path,
50
+ repositoryRoot: options.repositoryRoot,
51
+ prototypeRoot: options.prototypeRoot,
52
+ device: stats.dev,
53
+ inode: stats.ino,
54
+ };
55
+ }
56
+ async function currentOwnedRoot(receipt) {
57
+ assertContainedDestination(receipt.path, receipt.repositoryRoot, receipt.prototypeRoot);
58
+ let stats;
59
+ try {
60
+ stats = await lstat(receipt.path);
61
+ }
62
+ catch (error) {
63
+ if (error !== null &&
64
+ typeof error === "object" &&
65
+ "code" in error &&
66
+ error.code === "ENOENT") {
67
+ return null;
68
+ }
69
+ throw new OwnedDestinationError();
70
+ }
71
+ if (!stats.isDirectory() ||
72
+ stats.isSymbolicLink() ||
73
+ stats.dev !== receipt.device ||
74
+ stats.ino !== receipt.inode) {
75
+ return null;
76
+ }
77
+ return stats;
78
+ }
79
+ async function removeTree(path) {
80
+ let stats;
81
+ try {
82
+ stats = await lstat(path);
83
+ }
84
+ catch (error) {
85
+ if (error !== null &&
86
+ typeof error === "object" &&
87
+ "code" in error &&
88
+ error.code === "ENOENT") {
89
+ return;
90
+ }
91
+ throw error;
92
+ }
93
+ if (stats.isSymbolicLink() || !stats.isDirectory()) {
94
+ await rm(path, { force: true });
95
+ return;
96
+ }
97
+ const entries = await readdir(path);
98
+ for (const entry of entries) {
99
+ await removeTree(join(path, entry));
100
+ }
101
+ await rmdir(path);
102
+ }
103
+ export async function cleanupOwnedDestination(receipt) {
104
+ if ((await currentOwnedRoot(receipt)) === null)
105
+ return;
106
+ try {
107
+ await removeTree(receipt.path);
108
+ }
109
+ catch {
110
+ throw new OwnedDestinationError();
111
+ }
112
+ }
113
+ async function readRegularFile(path) {
114
+ const stats = await readStats(path);
115
+ if (!stats.isFile() || stats.isSymbolicLink()) {
116
+ throw new OwnedDestinationError();
117
+ }
118
+ let file;
119
+ try {
120
+ file = await open(path, FILE_OPEN_FLAGS);
121
+ return await file.readFile("utf8");
122
+ }
123
+ catch {
124
+ throw new OwnedDestinationError();
125
+ }
126
+ finally {
127
+ await file?.close().catch(() => undefined);
128
+ }
129
+ }
130
+ async function validateTree(path) {
131
+ const stats = await readStats(path);
132
+ if (stats.isSymbolicLink())
133
+ throw new OwnedDestinationError();
134
+ if (stats.isFile())
135
+ return;
136
+ if (!stats.isDirectory())
137
+ throw new OwnedDestinationError();
138
+ let entries;
139
+ try {
140
+ entries = await readdir(path);
141
+ }
142
+ catch {
143
+ throw new OwnedDestinationError();
144
+ }
145
+ for (const name of entries) {
146
+ if (name.startsWith(".env") || BLOCKED_DIRECTORY_NAMES.has(name)) {
147
+ throw new OwnedDestinationError();
148
+ }
149
+ await validateTree(join(path, name));
150
+ }
151
+ }
152
+ export async function validateOwnedDestination(receipt, expectedFiles, ref) {
153
+ const root = await currentOwnedRoot(receipt);
154
+ if (root === null)
155
+ throw new OwnedDestinationError();
156
+ await validateTree(receipt.path);
157
+ if ((await currentOwnedRoot(receipt)) === null) {
158
+ throw new OwnedDestinationError();
159
+ }
160
+ const componentsPath = join(receipt.path, "components");
161
+ const componentsStats = await readStats(componentsPath);
162
+ if (!componentsStats.isDirectory() || componentsStats.isSymbolicLink()) {
163
+ throw new OwnedDestinationError();
164
+ }
165
+ for (const expectedFile of expectedFiles) {
166
+ if (expectedFile === "components/.gitkeep")
167
+ continue;
168
+ const path = join(receipt.path, expectedFile);
169
+ const stats = await readStats(path);
170
+ if (!stats.isFile() || stats.isSymbolicLink()) {
171
+ throw new OwnedDestinationError();
172
+ }
173
+ }
174
+ let componentEntries;
175
+ try {
176
+ componentEntries = await readdir(componentsPath);
177
+ }
178
+ catch {
179
+ throw new OwnedDestinationError();
180
+ }
181
+ const hasComponentFiles = componentEntries.some((name) => name !== ".gitkeep");
182
+ const markerPath = join(componentsPath, ".gitkeep");
183
+ let markerStats;
184
+ try {
185
+ markerStats = await lstat(markerPath);
186
+ }
187
+ catch (error) {
188
+ if (!hasComponentFiles &&
189
+ error !== null &&
190
+ typeof error === "object" &&
191
+ "code" in error &&
192
+ error.code === "ENOENT") {
193
+ throw new OwnedDestinationError();
194
+ }
195
+ if (hasComponentFiles &&
196
+ error !== null &&
197
+ typeof error === "object" &&
198
+ "code" in error &&
199
+ error.code === "ENOENT") {
200
+ markerStats = null;
201
+ }
202
+ else {
203
+ throw new OwnedDestinationError();
204
+ }
205
+ }
206
+ if (markerStats !== null &&
207
+ markerStats !== undefined &&
208
+ !markerStats.isFile()) {
209
+ throw new OwnedDestinationError();
210
+ }
211
+ let metadata;
212
+ try {
213
+ metadata = JSON.parse(await readRegularFile(join(receipt.path, "metadata.json")));
214
+ }
215
+ catch {
216
+ throw new OwnedDestinationError();
217
+ }
218
+ let parsed;
219
+ try {
220
+ parsed = parsePrototypeMetadata(metadata);
221
+ }
222
+ catch {
223
+ throw new OwnedDestinationError();
224
+ }
225
+ if (parsed.authorLogin !== ref.login)
226
+ throw new OwnedDestinationError();
227
+ if ((await currentOwnedRoot(receipt)) === null) {
228
+ throw new OwnedDestinationError();
229
+ }
230
+ return parsed;
231
+ }
232
+ //# sourceMappingURL=owned-destination.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"owned-destination.js","sourceRoot":"","sources":["../../src/internal/owned-destination.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export declare const GENERATED_FILES: readonly ["page.tsx", "app.tsx", "app.module.css", "components/.gitkeep", "metadata.json", "tsconfig.json", "css-modules.d.ts"];
2
+ export declare const COPYABLE_IMPLEMENTATION_FILES: readonly ["page.tsx", "app.tsx", "app.module.css"];
3
+ export declare function buildPageTsx(): string;
4
+ export declare function buildAppTsx(title: string, description: string | null): string;
5
+ export declare function buildAppCss(): string;
6
+ export declare function buildMetadataJson(title: string, description: string | null, authorLogin: string, authorName: string | null, timestamp: string): string;
7
+ export declare function buildTsConfig(repositoryRoot: string, destination: string): string;
8
+ export declare function buildCssModulesDeclaration(): string;
9
+ //# sourceMappingURL=prototype-templates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prototype-templates.d.ts","sourceRoot":"","sources":["../../src/internal/prototype-templates.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,eAAe,YAC1B,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,kBAAkB,CACV,CAAC;AAEX,eAAO,MAAM,6BAA6B,YACxC,UAAU,EACV,SAAS,EACT,gBAAgB,CACR,CAAC;AAEX,wBAAgB,YAAY,WAO3B;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,UAmBpE;AAED,wBAAgB,WAAW,WAS1B;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,GAAG,IAAI,EAC1B,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GAAG,IAAI,EACzB,SAAS,EAAE,MAAM,UAYlB;AAED,wBAAgB,aAAa,CAAC,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,UAMxE;AAED,wBAAgB,0BAA0B,WAMzC"}
@@ -0,0 +1,78 @@
1
+ import { join, relative, sep } from "node:path";
2
+ export const GENERATED_FILES = [
3
+ "page.tsx",
4
+ "app.tsx",
5
+ "app.module.css",
6
+ "components/.gitkeep",
7
+ "metadata.json",
8
+ "tsconfig.json",
9
+ "css-modules.d.ts",
10
+ ];
11
+ export const COPYABLE_IMPLEMENTATION_FILES = [
12
+ "page.tsx",
13
+ "app.tsx",
14
+ "app.module.css",
15
+ ];
16
+ export function buildPageTsx() {
17
+ return `import App from "./app";
18
+
19
+ export default function Page() {
20
+ return <App />;
21
+ }
22
+ `;
23
+ }
24
+ export function buildAppTsx(title, description) {
25
+ const descriptionMarkup = description === null
26
+ ? ""
27
+ : `
28
+ <p>{${JSON.stringify(description)}}</p>`;
29
+ return `"use client";
30
+
31
+ import styles from "./app.module.css";
32
+
33
+ export default function App() {
34
+ return (
35
+ <main className={styles.container}>
36
+ <h1>{${JSON.stringify(title)}}</h1>${descriptionMarkup}
37
+ </main>
38
+ );
39
+ }
40
+ `;
41
+ }
42
+ export function buildAppCss() {
43
+ return `.container {
44
+ display: grid;
45
+ gap: 1rem;
46
+ min-height: 100svh;
47
+ place-content: center;
48
+ padding: 2rem;
49
+ }
50
+ `;
51
+ }
52
+ export function buildMetadataJson(title, description, authorLogin, authorName, timestamp) {
53
+ const metadata = {
54
+ title,
55
+ description,
56
+ authorLogin,
57
+ authorName,
58
+ createdAt: timestamp,
59
+ updatedAt: timestamp,
60
+ previewUrl: null,
61
+ };
62
+ return `${JSON.stringify(metadata, null, 2)}\n`;
63
+ }
64
+ export function buildTsConfig(repositoryRoot, destination) {
65
+ const relativeRepositoryRoot = relative(destination, repositoryRoot);
66
+ const extension = join(relativeRepositoryRoot, "tsconfig.json")
67
+ .split(sep)
68
+ .join("/");
69
+ return `${JSON.stringify({ extends: extension }, null, 2)}\n`;
70
+ }
71
+ export function buildCssModulesDeclaration() {
72
+ return `declare module "*.module.css" {
73
+ const classes: Record<string, string>;
74
+ export default classes;
75
+ }
76
+ `;
77
+ }
78
+ //# sourceMappingURL=prototype-templates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prototype-templates.js","sourceRoot":"","sources":["../../src/internal/prototype-templates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAGhD,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,UAAU;IACV,SAAS;IACT,gBAAgB;IAChB,qBAAqB;IACrB,eAAe;IACf,eAAe;IACf,kBAAkB;CACV,CAAC;AAEX,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,UAAU;IACV,SAAS;IACT,gBAAgB;CACR,CAAC;AAEX,MAAM,UAAU,YAAY;IAC1B,OAAO;;;;;CAKR,CAAC;AACF,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAa,EAAE,WAA0B;IACnE,MAAM,iBAAiB,GACrB,WAAW,KAAK,IAAI;QAClB,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC;YACI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC;IAE7C,OAAO;;;;;;;aAOI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,iBAAiB;;;;CAI3D,CAAC;AACF,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO;;;;;;;CAOR,CAAC;AACF,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,KAAa,EACb,WAA0B,EAC1B,WAAmB,EACnB,UAAyB,EACzB,SAAiB;IAEjB,MAAM,QAAQ,GAAsB;QAClC,KAAK;QACL,WAAW;QACX,WAAW;QACX,UAAU;QACV,SAAS,EAAE,SAAS;QACpB,SAAS,EAAE,SAAS;QACpB,UAAU,EAAE,IAAI;KACjB,CAAC;IACF,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,cAAsB,EAAE,WAAmB;IACvE,MAAM,sBAAsB,GAAG,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IACrE,MAAM,SAAS,GAAG,IAAI,CAAC,sBAAsB,EAAE,eAAe,CAAC;SAC5D,KAAK,CAAC,GAAG,CAAC;SACV,IAAI,CAAC,GAAG,CAAC,CAAC;IACb,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,0BAA0B;IACxC,OAAO;;;;CAIR,CAAC;AACF,CAAC"}
@@ -0,0 +1,12 @@
1
+ export type UnknownRecord = Record<string, unknown>;
2
+ export type ProcessFailure = {
3
+ code?: unknown;
4
+ killed?: unknown;
5
+ signal?: unknown;
6
+ message?: unknown;
7
+ };
8
+ export declare function isRecord(value: unknown): value is UnknownRecord;
9
+ export declare function isNonEmptyString(value: unknown): value is string;
10
+ export declare function asFailure(value: unknown): ProcessFailure;
11
+ export declare function isPositiveInteger(value: number): boolean;
12
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/internal/utils.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEpD,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,aAAa,CAE/D;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAEhE;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc,CAExD;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAExD"}
@@ -0,0 +1,13 @@
1
+ export function isRecord(value) {
2
+ return typeof value === "object" && value !== null && !Array.isArray(value);
3
+ }
4
+ export function isNonEmptyString(value) {
5
+ return typeof value === "string" && value.length > 0;
6
+ }
7
+ export function asFailure(value) {
8
+ return isRecord(value) ? value : {};
9
+ }
10
+ export function isPositiveInteger(value) {
11
+ return Number.isInteger(value) && value > 0;
12
+ }
13
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/internal/utils.ts"],"names":[],"mappings":"AASA,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;AAC9C,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { DirtyObservationStatus, DirtyObservationValue } from "@ebay-dt/bonfire-core";
2
+ export type DirtyStateTransition = {
3
+ changed: boolean;
4
+ value: DirtyObservationValue;
5
+ };
6
+ export declare function applyDirtyObservation(previous: DirtyObservationStatus | undefined, currentDirty: boolean): DirtyStateTransition;
7
+ //# sourceMappingURL=dirty-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dirty-state.d.ts","sourceRoot":"","sources":["../../src/lifecycle/dirty-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,qBAAqB,CAAC;CAC9B,CAAC;AAEF,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,sBAAsB,GAAG,SAAS,EAC5C,YAAY,EAAE,OAAO,GACpB,oBAAoB,CAStB"}
@@ -0,0 +1,10 @@
1
+ export function applyDirtyObservation(previous, currentDirty) {
2
+ const value = {
3
+ status: currentDirty ? "dirty" : "clean",
4
+ };
5
+ return {
6
+ changed: previous === undefined || previous !== value.status,
7
+ value,
8
+ };
9
+ }
10
+ //# sourceMappingURL=dirty-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dirty-state.js","sourceRoot":"","sources":["../../src/lifecycle/dirty-state.ts"],"names":[],"mappings":"AAUA,MAAM,UAAU,qBAAqB,CACnC,QAA4C,EAC5C,YAAqB;IAErB,MAAM,KAAK,GAA0B;QACnC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO;KACzC,CAAC;IAEF,OAAO;QACL,OAAO,EAAE,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,KAAK,CAAC,MAAM;QAC5D,KAAK;KACN,CAAC;AACJ,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { type BranchPreparationValue, type CreatePrototypeInput, type CreatePrototypeValue, type DirtyObservationValue, type DiscardPrototypeInput, type DiscardPrototypeValue, type DuplicatePrototypeInput, type DuplicatePrototypeValue, type LifecycleResult, type BonfireIdentity, type PrototypeCommandInput, type SavePrototypeInput, type SavePrototypeValue } from "@ebay-dt/bonfire-core";
2
+ import { type PrototypeCatalogLike } from "../prototype-catalog.js";
3
+ import type { PreparePrototypeFiles } from "../prepare-prototype-files.js";
4
+ export interface PrototypeLifecycle {
5
+ prepareBranch(identity: BonfireIdentity): Promise<LifecycleResult<BranchPreparationValue>>;
6
+ create(identity: BonfireIdentity, input: CreatePrototypeInput): Promise<LifecycleResult<CreatePrototypeValue>>;
7
+ duplicate(identity: BonfireIdentity, input: DuplicatePrototypeInput): Promise<LifecycleResult<DuplicatePrototypeValue>>;
8
+ getDirtyState(identity: BonfireIdentity, input: PrototypeCommandInput): Promise<LifecycleResult<DirtyObservationValue>>;
9
+ save(identity: BonfireIdentity, input: SavePrototypeInput): Promise<LifecycleResult<SavePrototypeValue>>;
10
+ discard(identity: BonfireIdentity, input: DiscardPrototypeInput): Promise<LifecycleResult<DiscardPrototypeValue>>;
11
+ }
12
+ export type LocalPrototypeLifecycleOptions = {
13
+ repositoryRoot: string;
14
+ prototypeRoot?: string;
15
+ remote?: string;
16
+ primaryBranch?: string;
17
+ automaticBranchSwitch?: "enabled" | "disabled";
18
+ commitIdentity?: {
19
+ name: string;
20
+ email: string;
21
+ };
22
+ catalog?: PrototypeCatalogLike;
23
+ preparePrototypeFiles?: PreparePrototypeFiles;
24
+ };
25
+ export declare class LocalPrototypeLifecycle implements PrototypeLifecycle {
26
+ #private;
27
+ constructor(options: LocalPrototypeLifecycleOptions);
28
+ prepareBranch(identity: BonfireIdentity): Promise<LifecycleResult<BranchPreparationValue>>;
29
+ create(identity: BonfireIdentity, input: CreatePrototypeInput): Promise<LifecycleResult<CreatePrototypeValue>>;
30
+ getDirtyState(identity: BonfireIdentity, input: PrototypeCommandInput): Promise<LifecycleResult<DirtyObservationValue>>;
31
+ save(identity: BonfireIdentity, input: SavePrototypeInput): Promise<LifecycleResult<SavePrototypeValue>>;
32
+ discard(identity: BonfireIdentity, input: DiscardPrototypeInput): Promise<LifecycleResult<DiscardPrototypeValue>>;
33
+ duplicate(identity: BonfireIdentity, input: DuplicatePrototypeInput): Promise<LifecycleResult<DuplicatePrototypeValue>>;
34
+ }
35
+ //# sourceMappingURL=local-prototype-lifecycle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-prototype-lifecycle.d.ts","sourceRoot":"","sources":["../../src/lifecycle/local-prototype-lifecycle.ts"],"names":[],"mappings":"AACA,OAAO,EAYL,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAE5B,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACxB,MAAM,uBAAuB,CAAC;AAU/B,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,yBAAyB,CAAC;AAMjC,OAAO,KAAK,EACV,qBAAqB,EAEtB,MAAM,+BAA+B,CAAC;AAWvC,MAAM,WAAW,kBAAkB;IACjC,aAAa,CACX,QAAQ,EAAE,eAAe,GACxB,OAAO,CAAC,eAAe,CAAC,sBAAsB,CAAC,CAAC,CAAC;IACpD,MAAM,CACJ,QAAQ,EAAE,eAAe,EACzB,KAAK,EAAE,oBAAoB,GAC1B,OAAO,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAClD,SAAS,CACP,QAAQ,EAAE,eAAe,EACzB,KAAK,EAAE,uBAAuB,GAC7B,OAAO,CAAC,eAAe,CAAC,uBAAuB,CAAC,CAAC,CAAC;IACrD,aAAa,CACX,QAAQ,EAAE,eAAe,EACzB,KAAK,EAAE,qBAAqB,GAC3B,OAAO,CAAC,eAAe,CAAC,qBAAqB,CAAC,CAAC,CAAC;IACnD,IAAI,CACF,QAAQ,EAAE,eAAe,EACzB,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAChD,OAAO,CACL,QAAQ,EAAE,eAAe,EACzB,KAAK,EAAE,qBAAqB,GAC3B,OAAO,CAAC,eAAe,CAAC,qBAAqB,CAAC,CAAC,CAAC;CACpD;AAED,MAAM,MAAM,8BAA8B,GAAG;IAC3C,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qBAAqB,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;IAC/C,cAAc,CAAC,EAAE;QACf,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;CAC/C,CAAC;AA8DF,qBAAa,uBAAwB,YAAW,kBAAkB;;IAMhE,YAAY,OAAO,EAAE,8BAA8B,EAUlD;IAwEK,aAAa,CACjB,QAAQ,EAAE,eAAe,GACxB,OAAO,CAAC,eAAe,CAAC,sBAAsB,CAAC,CAAC,CAoBlD;IAEK,MAAM,CACV,QAAQ,EAAE,eAAe,EACzB,KAAK,EAAE,oBAAoB,GAC1B,OAAO,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAC,CAwDhD;IAEK,aAAa,CACjB,QAAQ,EAAE,eAAe,EACzB,KAAK,EAAE,qBAAqB,GAC3B,OAAO,CAAC,eAAe,CAAC,qBAAqB,CAAC,CAAC,CAQjD;IAEK,IAAI,CACR,QAAQ,EAAE,eAAe,EACzB,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC,CAW9C;IAEK,OAAO,CACX,QAAQ,EAAE,eAAe,EACzB,KAAK,EAAE,qBAAqB,GAC3B,OAAO,CAAC,eAAe,CAAC,qBAAqB,CAAC,CAAC,CAWjD;IAEK,SAAS,CACb,QAAQ,EAAE,eAAe,EACzB,KAAK,EAAE,uBAAuB,GAC7B,OAAO,CAAC,eAAe,CAAC,uBAAuB,CAAC,CAAC,CA6DnD;CACF"}