@baseplate-dev/project-builder-server 0.2.6 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/index.d.ts +3 -3
- package/dist/api/sync.d.ts +3 -3
- package/dist/compiler/app-entry-builder.d.ts.map +1 -1
- package/dist/compiler/app-entry-builder.js +3 -5
- package/dist/compiler/app-entry-builder.js.map +1 -1
- package/dist/compiler/web/index.d.ts.map +1 -1
- package/dist/compiler/web/index.js +2 -1
- package/dist/compiler/web/index.js.map +1 -1
- package/dist/diff/diff-project.d.ts.map +1 -1
- package/dist/diff/diff-project.js +22 -5
- package/dist/diff/diff-project.js.map +1 -1
- package/dist/diff/diff-utils.d.ts +7 -3
- package/dist/diff/diff-utils.d.ts.map +1 -1
- package/dist/diff/diff-utils.js +80 -22
- package/dist/diff/diff-utils.js.map +1 -1
- package/dist/diff/index.d.ts +1 -0
- package/dist/diff/index.d.ts.map +1 -1
- package/dist/diff/index.js +1 -0
- package/dist/diff/index.js.map +1 -1
- package/dist/diff/snapshot/apply-diff-to-file-contents.d.ts +3 -0
- package/dist/diff/snapshot/apply-diff-to-file-contents.d.ts.map +1 -0
- package/dist/diff/snapshot/apply-diff-to-file-contents.js +26 -0
- package/dist/diff/snapshot/apply-diff-to-file-contents.js.map +1 -0
- package/dist/diff/snapshot/apply-diff-to-generator-output.d.ts +4 -0
- package/dist/diff/snapshot/apply-diff-to-generator-output.d.ts.map +1 -0
- package/dist/diff/snapshot/apply-diff-to-generator-output.js +28 -0
- package/dist/diff/snapshot/apply-diff-to-generator-output.js.map +1 -0
- package/dist/diff/snapshot/create-snapshot-for-project.d.ts +41 -0
- package/dist/diff/snapshot/create-snapshot-for-project.d.ts.map +1 -0
- package/dist/diff/snapshot/create-snapshot-for-project.js +48 -0
- package/dist/diff/snapshot/create-snapshot-for-project.js.map +1 -0
- package/dist/diff/snapshot/index.d.ts +6 -0
- package/dist/diff/snapshot/index.d.ts.map +1 -0
- package/dist/diff/snapshot/index.js +5 -0
- package/dist/diff/snapshot/index.js.map +1 -0
- package/dist/diff/snapshot/save-snapshot.d.ts +25 -0
- package/dist/diff/snapshot/save-snapshot.d.ts.map +1 -0
- package/dist/diff/snapshot/save-snapshot.js +55 -0
- package/dist/diff/snapshot/save-snapshot.js.map +1 -0
- package/dist/diff/snapshot/snapshot-diff-utils.d.ts +7 -0
- package/dist/diff/snapshot/snapshot-diff-utils.d.ts.map +1 -0
- package/dist/diff/snapshot/snapshot-diff-utils.js +20 -0
- package/dist/diff/snapshot/snapshot-diff-utils.js.map +1 -0
- package/dist/diff/snapshot/snapshot-management.d.ts +31 -0
- package/dist/diff/snapshot/snapshot-management.d.ts.map +1 -0
- package/dist/diff/snapshot/snapshot-management.js +154 -0
- package/dist/diff/snapshot/snapshot-management.js.map +1 -0
- package/dist/diff/snapshot/snapshot-manifest.d.ts +40 -0
- package/dist/diff/snapshot/snapshot-manifest.d.ts.map +1 -0
- package/dist/diff/snapshot/snapshot-manifest.js +113 -0
- package/dist/diff/snapshot/snapshot-manifest.js.map +1 -0
- package/dist/diff/snapshot/snapshot-types.d.ts +165 -0
- package/dist/diff/snapshot/snapshot-types.d.ts.map +1 -0
- package/dist/diff/snapshot/snapshot-types.js +23 -0
- package/dist/diff/snapshot/snapshot-types.js.map +1 -0
- package/dist/diff/snapshot/snapshot-utils.d.ts +20 -0
- package/dist/diff/snapshot/snapshot-utils.d.ts.map +1 -0
- package/dist/diff/snapshot/snapshot-utils.js +51 -0
- package/dist/diff/snapshot/snapshot-utils.js.map +1 -0
- package/dist/diff/types.d.ts +38 -6
- package/dist/diff/types.d.ts.map +1 -1
- package/dist/project-definition/get-single-app-directory-for-project.d.ts +11 -0
- package/dist/project-definition/get-single-app-directory-for-project.d.ts.map +1 -0
- package/dist/project-definition/get-single-app-directory-for-project.js +18 -0
- package/dist/project-definition/get-single-app-directory-for-project.js.map +1 -0
- package/dist/project-definition/index.d.ts +2 -0
- package/dist/project-definition/index.d.ts.map +1 -0
- package/dist/project-definition/index.js +2 -0
- package/dist/project-definition/index.js.map +1 -0
- package/dist/project-definition/load-project-definition.d.ts +12 -0
- package/dist/project-definition/load-project-definition.d.ts.map +1 -0
- package/dist/project-definition/load-project-definition.js +34 -0
- package/dist/project-definition/load-project-definition.js.map +1 -0
- package/dist/server/plugin.js +6 -6
- package/dist/server/plugin.js.map +1 -1
- package/dist/sync/generate-for-directory.d.ts +5 -14
- package/dist/sync/generate-for-directory.d.ts.map +1 -1
- package/dist/sync/generate-for-directory.js +37 -30
- package/dist/sync/generate-for-directory.js.map +1 -1
- package/dist/sync/get-previous-generated-payload.d.ts +9 -0
- package/dist/sync/get-previous-generated-payload.d.ts.map +1 -0
- package/dist/sync/get-previous-generated-payload.js +23 -0
- package/dist/sync/get-previous-generated-payload.js.map +1 -0
- package/dist/sync/sync-project.d.ts +7 -3
- package/dist/sync/sync-project.d.ts.map +1 -1
- package/dist/sync/sync-project.js +5 -29
- package/dist/sync/sync-project.js.map +1 -1
- package/dist/sync/types.d.ts +14 -0
- package/dist/sync/types.d.ts.map +1 -0
- package/dist/sync/types.js +15 -0
- package/dist/sync/types.js.map +1 -0
- package/package.json +12 -11
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Types and interfaces for the structured directory snapshot system
|
|
3
|
+
*/
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
import type { FileDiff } from '../types.js';
|
|
6
|
+
export interface SnapshotManifest {
|
|
7
|
+
/** Version of the snapshot format */
|
|
8
|
+
version: string;
|
|
9
|
+
/** Categorized list of files in the snapshot */
|
|
10
|
+
files: SnapshotFiles;
|
|
11
|
+
}
|
|
12
|
+
export interface SnapshotFiles {
|
|
13
|
+
/** Files that were modified (have diffs stored) */
|
|
14
|
+
modified: ModifiedFileEntry[];
|
|
15
|
+
/** Files that were added (exist in generated but not working) */
|
|
16
|
+
added: string[];
|
|
17
|
+
/** Files that were deleted (exist in working but not generated) */
|
|
18
|
+
deleted: string[];
|
|
19
|
+
}
|
|
20
|
+
export interface ModifiedFileEntry {
|
|
21
|
+
/** Relative path to the file */
|
|
22
|
+
path: string;
|
|
23
|
+
/** Name of the diff file in the diffs/ directory */
|
|
24
|
+
diffFile: string;
|
|
25
|
+
}
|
|
26
|
+
export interface SnapshotDirectory {
|
|
27
|
+
/** Path to the snapshot directory */
|
|
28
|
+
path: string;
|
|
29
|
+
/** Path to the manifest.json file */
|
|
30
|
+
manifestPath: string;
|
|
31
|
+
/** Path to the diffs/ subdirectory */
|
|
32
|
+
diffsPath: string;
|
|
33
|
+
}
|
|
34
|
+
export interface SnapshotOptions {
|
|
35
|
+
/** Custom name for the snapshot directory (default: .baseplate-snapshot) */
|
|
36
|
+
snapshotDir?: string;
|
|
37
|
+
/** Whether to use strict comparison mode */
|
|
38
|
+
strict?: boolean;
|
|
39
|
+
}
|
|
40
|
+
export interface SnapshotComparison {
|
|
41
|
+
/** Files that have new differences not in the snapshot */
|
|
42
|
+
newDifferences: FileDiff[];
|
|
43
|
+
/** Files that match the expected snapshot */
|
|
44
|
+
expectedDifferences: FileDiff[];
|
|
45
|
+
/** Files that were expected in snapshot but are missing */
|
|
46
|
+
missingExpected: string[];
|
|
47
|
+
}
|
|
48
|
+
export interface CompareSnapshotResult {
|
|
49
|
+
/** Comparison results */
|
|
50
|
+
comparison: SnapshotComparison;
|
|
51
|
+
/** Whether the comparison passed (no new differences) */
|
|
52
|
+
passed: boolean;
|
|
53
|
+
/** Summary message describing the results */
|
|
54
|
+
summary: string;
|
|
55
|
+
}
|
|
56
|
+
export interface ApplySnapshotResult {
|
|
57
|
+
/** Number of patches successfully applied */
|
|
58
|
+
appliedPatches: number;
|
|
59
|
+
/** Number of patches that failed */
|
|
60
|
+
failedPatches: number;
|
|
61
|
+
/** Details of any failures */
|
|
62
|
+
failures: PatchFailure[];
|
|
63
|
+
}
|
|
64
|
+
export interface PatchFailure {
|
|
65
|
+
/** Path to the file that failed to patch */
|
|
66
|
+
filePath: string;
|
|
67
|
+
/** Error message describing the failure */
|
|
68
|
+
error: string;
|
|
69
|
+
/** The diff content that failed to apply */
|
|
70
|
+
diffContent: string;
|
|
71
|
+
}
|
|
72
|
+
export declare const SNAPSHOT_VERSION = "1";
|
|
73
|
+
export declare const DEFAULT_SNAPSHOT_DIR = ".baseplate-snapshot";
|
|
74
|
+
export declare const MANIFEST_FILENAME = "manifest.json";
|
|
75
|
+
export declare const DIFFS_DIRNAME = "diffs";
|
|
76
|
+
export declare const modifiedFileEntrySchema: z.ZodObject<{
|
|
77
|
+
path: z.ZodString;
|
|
78
|
+
diffFile: z.ZodString;
|
|
79
|
+
}, "strip", z.ZodTypeAny, {
|
|
80
|
+
path: string;
|
|
81
|
+
diffFile: string;
|
|
82
|
+
}, {
|
|
83
|
+
path: string;
|
|
84
|
+
diffFile: string;
|
|
85
|
+
}>;
|
|
86
|
+
export declare const snapshotFilesSchema: z.ZodObject<{
|
|
87
|
+
modified: z.ZodArray<z.ZodObject<{
|
|
88
|
+
path: z.ZodString;
|
|
89
|
+
diffFile: z.ZodString;
|
|
90
|
+
}, "strip", z.ZodTypeAny, {
|
|
91
|
+
path: string;
|
|
92
|
+
diffFile: string;
|
|
93
|
+
}, {
|
|
94
|
+
path: string;
|
|
95
|
+
diffFile: string;
|
|
96
|
+
}>, "many">;
|
|
97
|
+
added: z.ZodArray<z.ZodString, "many">;
|
|
98
|
+
deleted: z.ZodArray<z.ZodString, "many">;
|
|
99
|
+
}, "strip", z.ZodTypeAny, {
|
|
100
|
+
added: string[];
|
|
101
|
+
modified: {
|
|
102
|
+
path: string;
|
|
103
|
+
diffFile: string;
|
|
104
|
+
}[];
|
|
105
|
+
deleted: string[];
|
|
106
|
+
}, {
|
|
107
|
+
added: string[];
|
|
108
|
+
modified: {
|
|
109
|
+
path: string;
|
|
110
|
+
diffFile: string;
|
|
111
|
+
}[];
|
|
112
|
+
deleted: string[];
|
|
113
|
+
}>;
|
|
114
|
+
export declare const snapshotManifestSchema: z.ZodObject<{
|
|
115
|
+
version: z.ZodString;
|
|
116
|
+
files: z.ZodObject<{
|
|
117
|
+
modified: z.ZodArray<z.ZodObject<{
|
|
118
|
+
path: z.ZodString;
|
|
119
|
+
diffFile: z.ZodString;
|
|
120
|
+
}, "strip", z.ZodTypeAny, {
|
|
121
|
+
path: string;
|
|
122
|
+
diffFile: string;
|
|
123
|
+
}, {
|
|
124
|
+
path: string;
|
|
125
|
+
diffFile: string;
|
|
126
|
+
}>, "many">;
|
|
127
|
+
added: z.ZodArray<z.ZodString, "many">;
|
|
128
|
+
deleted: z.ZodArray<z.ZodString, "many">;
|
|
129
|
+
}, "strip", z.ZodTypeAny, {
|
|
130
|
+
added: string[];
|
|
131
|
+
modified: {
|
|
132
|
+
path: string;
|
|
133
|
+
diffFile: string;
|
|
134
|
+
}[];
|
|
135
|
+
deleted: string[];
|
|
136
|
+
}, {
|
|
137
|
+
added: string[];
|
|
138
|
+
modified: {
|
|
139
|
+
path: string;
|
|
140
|
+
diffFile: string;
|
|
141
|
+
}[];
|
|
142
|
+
deleted: string[];
|
|
143
|
+
}>;
|
|
144
|
+
}, "strip", z.ZodTypeAny, {
|
|
145
|
+
version: string;
|
|
146
|
+
files: {
|
|
147
|
+
added: string[];
|
|
148
|
+
modified: {
|
|
149
|
+
path: string;
|
|
150
|
+
diffFile: string;
|
|
151
|
+
}[];
|
|
152
|
+
deleted: string[];
|
|
153
|
+
};
|
|
154
|
+
}, {
|
|
155
|
+
version: string;
|
|
156
|
+
files: {
|
|
157
|
+
added: string[];
|
|
158
|
+
modified: {
|
|
159
|
+
path: string;
|
|
160
|
+
diffFile: string;
|
|
161
|
+
}[];
|
|
162
|
+
deleted: string[];
|
|
163
|
+
};
|
|
164
|
+
}>;
|
|
165
|
+
//# sourceMappingURL=snapshot-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshot-types.d.ts","sourceRoot":"","sources":["../../../src/diff/snapshot/snapshot-types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,WAAW,gBAAgB;IAC/B,qCAAqC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,gDAAgD;IAChD,KAAK,EAAE,aAAa,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,mDAAmD;IACnD,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,iEAAiE;IACjE,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,mEAAmE;IACnE,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,qCAAqC;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,sCAAsC;IACtC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,4EAA4E;IAC5E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,0DAA0D;IAC1D,cAAc,EAAE,QAAQ,EAAE,CAAC;IAC3B,6CAA6C;IAC7C,mBAAmB,EAAE,QAAQ,EAAE,CAAC;IAChC,2DAA2D;IAC3D,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,qBAAqB;IACpC,yBAAyB;IACzB,UAAU,EAAE,kBAAkB,CAAC;IAC/B,yDAAyD;IACzD,MAAM,EAAE,OAAO,CAAC;IAChB,6CAA6C;IAC7C,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,6CAA6C;IAC7C,cAAc,EAAE,MAAM,CAAC;IACvB,oCAAoC;IACpC,aAAa,EAAE,MAAM,CAAC;IACtB,8BAA8B;IAC9B,QAAQ,EAAE,YAAY,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY;IAC3B,4CAA4C;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,4CAA4C;IAC5C,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,gBAAgB,MAAM,CAAC;AACpC,eAAO,MAAM,oBAAoB,wBAAwB,CAAC;AAC1D,eAAO,MAAM,iBAAiB,kBAAkB,CAAC;AACjD,eAAO,MAAM,aAAa,UAAU,CAAC;AAGrC,eAAO,MAAM,uBAAuB;;;;;;;;;EAGlC,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;EAI9B,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGjC,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Types and interfaces for the structured directory snapshot system
|
|
3
|
+
*/
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
export const SNAPSHOT_VERSION = '1';
|
|
6
|
+
export const DEFAULT_SNAPSHOT_DIR = '.baseplate-snapshot';
|
|
7
|
+
export const MANIFEST_FILENAME = 'manifest.json';
|
|
8
|
+
export const DIFFS_DIRNAME = 'diffs';
|
|
9
|
+
// Zod schemas for validation
|
|
10
|
+
export const modifiedFileEntrySchema = z.object({
|
|
11
|
+
path: z.string(),
|
|
12
|
+
diffFile: z.string(),
|
|
13
|
+
});
|
|
14
|
+
export const snapshotFilesSchema = z.object({
|
|
15
|
+
modified: z.array(modifiedFileEntrySchema),
|
|
16
|
+
added: z.array(z.string()),
|
|
17
|
+
deleted: z.array(z.string()),
|
|
18
|
+
});
|
|
19
|
+
export const snapshotManifestSchema = z.object({
|
|
20
|
+
version: z.string(),
|
|
21
|
+
files: snapshotFilesSchema,
|
|
22
|
+
});
|
|
23
|
+
//# sourceMappingURL=snapshot-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshot-types.js","sourceRoot":"","sources":["../../../src/diff/snapshot/snapshot-types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA+ExB,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,CAAC;AACpC,MAAM,CAAC,MAAM,oBAAoB,GAAG,qBAAqB,CAAC;AAC1D,MAAM,CAAC,MAAM,iBAAiB,GAAG,eAAe,CAAC;AACjD,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAAC;AAErC,6BAA6B;AAC7B,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;CACrB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,uBAAuB,CAAC;IAC1C,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC1B,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;CAC7B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,KAAK,EAAE,mBAAmB;CAC3B,CAAC,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { SnapshotDirectory, SnapshotOptions } from './snapshot-types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Converts a file path to a safe filename for storing diffs
|
|
4
|
+
* Example: "src/components/button.tsx" -> "src_components_button.tsx.diff"
|
|
5
|
+
*/
|
|
6
|
+
export declare function pathToSafeDiffFilename(filePath: string): string;
|
|
7
|
+
/**
|
|
8
|
+
* Converts a safe diff filename back to the original file path
|
|
9
|
+
* Example: "src_components_button.tsx.diff" -> "src/components/button.tsx"
|
|
10
|
+
*/
|
|
11
|
+
export declare function safeDiffFilenameToPath(diffFilename: string): string;
|
|
12
|
+
/**
|
|
13
|
+
* Creates the snapshot directory structure
|
|
14
|
+
*/
|
|
15
|
+
export declare function createSnapshotDirectory(baseDirectory: string, snapshotDir?: string): Promise<SnapshotDirectory>;
|
|
16
|
+
/**
|
|
17
|
+
* Resolves the snapshot directory paths without creating them
|
|
18
|
+
*/
|
|
19
|
+
export declare function resolveSnapshotDirectory(baseDirectory: string, options?: SnapshotOptions): SnapshotDirectory;
|
|
20
|
+
//# sourceMappingURL=snapshot-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshot-utils.d.ts","sourceRoot":"","sources":["../../../src/diff/snapshot/snapshot-utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAQ9E;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAKnE;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,aAAa,EAAE,MAAM,EACrB,WAAW,GAAE,MAA6B,GACzC,OAAO,CAAC,iBAAiB,CAAC,CAc5B;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE,eAAoB,GAC5B,iBAAiB,CAWnB"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { mkdir } from 'node:fs/promises';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { DEFAULT_SNAPSHOT_DIR, DIFFS_DIRNAME, MANIFEST_FILENAME, } from './snapshot-types.js';
|
|
4
|
+
/**
|
|
5
|
+
* Converts a file path to a safe filename for storing diffs
|
|
6
|
+
* Example: "src/components/button.tsx" -> "src_components_button.tsx.diff"
|
|
7
|
+
*/
|
|
8
|
+
export function pathToSafeDiffFilename(filePath) {
|
|
9
|
+
return `${filePath.replaceAll(/[/\\]/g, '_')}.diff`;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Converts a safe diff filename back to the original file path
|
|
13
|
+
* Example: "src_components_button.tsx.diff" -> "src/components/button.tsx"
|
|
14
|
+
*/
|
|
15
|
+
export function safeDiffFilenameToPath(diffFilename) {
|
|
16
|
+
if (!diffFilename.endsWith('.diff')) {
|
|
17
|
+
throw new Error(`Invalid diff filename: ${diffFilename}`);
|
|
18
|
+
}
|
|
19
|
+
return diffFilename.slice(0, -5).replaceAll('_', '/');
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Creates the snapshot directory structure
|
|
23
|
+
*/
|
|
24
|
+
export async function createSnapshotDirectory(baseDirectory, snapshotDir = DEFAULT_SNAPSHOT_DIR) {
|
|
25
|
+
const snapshotPath = path.resolve(baseDirectory, snapshotDir);
|
|
26
|
+
const manifestPath = path.join(snapshotPath, MANIFEST_FILENAME);
|
|
27
|
+
const diffsPath = path.join(snapshotPath, DIFFS_DIRNAME);
|
|
28
|
+
// Create the directories
|
|
29
|
+
await mkdir(snapshotPath, { recursive: true });
|
|
30
|
+
await mkdir(diffsPath, { recursive: true });
|
|
31
|
+
return {
|
|
32
|
+
path: snapshotPath,
|
|
33
|
+
manifestPath,
|
|
34
|
+
diffsPath,
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Resolves the snapshot directory paths without creating them
|
|
39
|
+
*/
|
|
40
|
+
export function resolveSnapshotDirectory(baseDirectory, options = {}) {
|
|
41
|
+
const snapshotDirName = options.snapshotDir ?? DEFAULT_SNAPSHOT_DIR;
|
|
42
|
+
const snapshotPath = path.resolve(baseDirectory, snapshotDirName);
|
|
43
|
+
const manifestPath = path.join(snapshotPath, MANIFEST_FILENAME);
|
|
44
|
+
const diffsPath = path.join(snapshotPath, DIFFS_DIRNAME);
|
|
45
|
+
return {
|
|
46
|
+
path: snapshotPath,
|
|
47
|
+
manifestPath,
|
|
48
|
+
diffsPath,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=snapshot-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshot-utils.js","sourceRoot":"","sources":["../../../src/diff/snapshot/snapshot-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAI7B,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAE7B;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,QAAgB;IACrD,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;AACtD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,YAAoB;IACzD,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,0BAA0B,YAAY,EAAE,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AACxD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,aAAqB,EACrB,cAAsB,oBAAoB;IAE1C,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;IAC9D,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;IAChE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;IAEzD,yBAAyB;IACzB,MAAM,KAAK,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,MAAM,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE5C,OAAO;QACL,IAAI,EAAE,YAAY;QAClB,YAAY;QACZ,SAAS;KACV,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CACtC,aAAqB,EACrB,UAA2B,EAAE;IAE7B,MAAM,eAAe,GAAG,OAAO,CAAC,WAAW,IAAI,oBAAoB,CAAC;IACpE,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;IAClE,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;IAChE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;IAEzD,OAAO;QACL,IAAI,EAAE,YAAY;QAClB,YAAY;QACZ,SAAS;KACV,CAAC;AACJ,CAAC"}
|
package/dist/diff/types.d.ts
CHANGED
|
@@ -1,11 +1,42 @@
|
|
|
1
|
-
|
|
1
|
+
interface BaseFileDiff {
|
|
2
2
|
path: string;
|
|
3
|
-
type: 'added' | 'modified' | 'deleted';
|
|
4
|
-
generatedContent?: string | Buffer;
|
|
5
|
-
workingContent?: string | Buffer;
|
|
6
|
-
isBinary: boolean;
|
|
7
|
-
unifiedDiff?: string;
|
|
8
3
|
}
|
|
4
|
+
interface AddedFileDiff extends BaseFileDiff {
|
|
5
|
+
type: 'added';
|
|
6
|
+
isBinary: false;
|
|
7
|
+
workingContent: string;
|
|
8
|
+
unifiedDiff: string;
|
|
9
|
+
}
|
|
10
|
+
interface AddedFileBinaryDiff extends BaseFileDiff {
|
|
11
|
+
type: 'added';
|
|
12
|
+
isBinary: true;
|
|
13
|
+
workingContent: Buffer;
|
|
14
|
+
}
|
|
15
|
+
interface ModifiedFileDiff extends BaseFileDiff {
|
|
16
|
+
type: 'modified';
|
|
17
|
+
isBinary: false;
|
|
18
|
+
generatedContent: string;
|
|
19
|
+
workingContent: string;
|
|
20
|
+
unifiedDiff: string;
|
|
21
|
+
}
|
|
22
|
+
interface ModifiedFileBinaryDiff extends BaseFileDiff {
|
|
23
|
+
type: 'modified';
|
|
24
|
+
isBinary: true;
|
|
25
|
+
generatedContent: Buffer;
|
|
26
|
+
workingContent: Buffer;
|
|
27
|
+
}
|
|
28
|
+
interface DeletedFileDiff extends BaseFileDiff {
|
|
29
|
+
type: 'deleted';
|
|
30
|
+
isBinary: false;
|
|
31
|
+
generatedContent: string;
|
|
32
|
+
unifiedDiff: string;
|
|
33
|
+
}
|
|
34
|
+
interface DeletedFileBinaryDiff extends BaseFileDiff {
|
|
35
|
+
type: 'deleted';
|
|
36
|
+
isBinary: true;
|
|
37
|
+
generatedContent: Buffer;
|
|
38
|
+
}
|
|
39
|
+
export type FileDiff = AddedFileDiff | AddedFileBinaryDiff | ModifiedFileDiff | ModifiedFileBinaryDiff | DeletedFileDiff | DeletedFileBinaryDiff;
|
|
9
40
|
export interface DiffSummary {
|
|
10
41
|
totalFiles: number;
|
|
11
42
|
addedFiles: number;
|
|
@@ -19,4 +50,5 @@ export interface DiffOptions {
|
|
|
19
50
|
globPatterns?: string[];
|
|
20
51
|
useIgnoreFile?: boolean;
|
|
21
52
|
}
|
|
53
|
+
export {};
|
|
22
54
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/diff/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/diff/types.ts"],"names":[],"mappings":"AAAA,MAAM,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/diff/types.ts"],"names":[],"mappings":"AAAA,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,aAAc,SAAQ,YAAY;IAC1C,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,KAAK,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,mBAAoB,SAAQ,YAAY;IAChD,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,IAAI,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,UAAU,gBAAiB,SAAQ,YAAY;IAC7C,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,KAAK,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,sBAAuB,SAAQ,YAAY;IACnD,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,IAAI,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,UAAU,eAAgB,SAAQ,YAAY;IAC5C,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE,KAAK,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,qBAAsB,SAAQ,YAAY;IAClD,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE,IAAI,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,QAAQ,GAChB,aAAa,GACb,mBAAmB,GACnB,gBAAgB,GAChB,sBAAsB,GACtB,eAAe,GACf,qBAAqB,CAAC;AAE1B,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,QAAQ,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ProjectDefinition } from '@baseplate-dev/project-builder-lib';
|
|
2
|
+
/**
|
|
3
|
+
* Given a project directory, get the app directory for that project
|
|
4
|
+
*
|
|
5
|
+
* @param projectDirectory The absolute path to the project directory
|
|
6
|
+
* @param app The name of the app which will be matched
|
|
7
|
+
*
|
|
8
|
+
* @throws Error if there are more than one apps matching the name (or none)
|
|
9
|
+
*/
|
|
10
|
+
export declare function getSingleAppDirectoryForProject(projectDirectory: string, projectDefinition: ProjectDefinition, app: string): string;
|
|
11
|
+
//# sourceMappingURL=get-single-app-directory-for-project.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-single-app-directory-for-project.d.ts","sourceRoot":"","sources":["../../src/project-definition/get-single-app-directory-for-project.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAK5E;;;;;;;GAOG;AACH,wBAAgB,+BAA+B,CAC7C,gBAAgB,EAAE,MAAM,EACxB,iBAAiB,EAAE,iBAAiB,EACpC,GAAG,EAAE,MAAM,GACV,MAAM,CAUR"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { AppUtils } from '@baseplate-dev/project-builder-lib';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
/**
|
|
4
|
+
* Given a project directory, get the app directory for that project
|
|
5
|
+
*
|
|
6
|
+
* @param projectDirectory The absolute path to the project directory
|
|
7
|
+
* @param app The name of the app which will be matched
|
|
8
|
+
*
|
|
9
|
+
* @throws Error if there are more than one apps matching the name (or none)
|
|
10
|
+
*/
|
|
11
|
+
export function getSingleAppDirectoryForProject(projectDirectory, projectDefinition, app) {
|
|
12
|
+
const matchedApps = projectDefinition.apps.find((a) => a.name === app);
|
|
13
|
+
if (!matchedApps) {
|
|
14
|
+
throw new Error(`Unable to find app ${app} in project definition. Available apps: ${projectDefinition.apps.map((a) => a.name).join(', ')}`);
|
|
15
|
+
}
|
|
16
|
+
return path.join(projectDirectory, AppUtils.getAppDirectory(matchedApps));
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=get-single-app-directory-for-project.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-single-app-directory-for-project.js","sourceRoot":"","sources":["../../src/project-definition/get-single-app-directory-for-project.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAC9D,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B;;;;;;;GAOG;AACH,MAAM,UAAU,+BAA+B,CAC7C,gBAAwB,EACxB,iBAAoC,EACpC,GAAW;IAEX,MAAM,WAAW,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;IAEvE,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CACb,sBAAsB,GAAG,2CAA2C,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC3H,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC;AAC5E,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/project-definition/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/project-definition/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ProjectDefinition, SchemaParserContext } from '@baseplate-dev/project-builder-lib';
|
|
2
|
+
/**
|
|
3
|
+
* Loads the project definition from the given directory and runs migrations on it.
|
|
4
|
+
* @param directory - The directory to load the project definition from.
|
|
5
|
+
* @param context - The context to use for parsing the project.
|
|
6
|
+
* @returns The project definition and the hash of the project definition.
|
|
7
|
+
*/
|
|
8
|
+
export declare function loadProjectDefinition(directory: string, context: SchemaParserContext): Promise<{
|
|
9
|
+
definition: ProjectDefinition;
|
|
10
|
+
hash: string;
|
|
11
|
+
}>;
|
|
12
|
+
//# sourceMappingURL=load-project-definition.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"load-project-definition.d.ts","sourceRoot":"","sources":["../../src/project-definition/load-project-definition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,oCAAoC,CAAC;AAgB5C;;;;;GAKG;AACH,wBAAsB,qBAAqB,CACzC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC;IAAE,UAAU,EAAE,iBAAiB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CA6C1D"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { createPluginImplementationStore, runPluginMigrations, runSchemaMigrations, } from '@baseplate-dev/project-builder-lib';
|
|
2
|
+
import { enhanceErrorWithContext, hashWithSHA256, stringifyPrettyStable, } from '@baseplate-dev/utils';
|
|
3
|
+
import { fileExists } from '@baseplate-dev/utils/node';
|
|
4
|
+
import { readFile, writeFile } from 'node:fs/promises';
|
|
5
|
+
import path from 'node:path';
|
|
6
|
+
/**
|
|
7
|
+
* Loads the project definition from the given directory and runs migrations on it.
|
|
8
|
+
* @param directory - The directory to load the project definition from.
|
|
9
|
+
* @param context - The context to use for parsing the project.
|
|
10
|
+
* @returns The project definition and the hash of the project definition.
|
|
11
|
+
*/
|
|
12
|
+
export async function loadProjectDefinition(directory, context) {
|
|
13
|
+
const projectJsonPath = path.join(directory, 'baseplate/project-definition.json');
|
|
14
|
+
const projectJsonExists = await fileExists(projectJsonPath);
|
|
15
|
+
if (!projectJsonExists) {
|
|
16
|
+
throw new Error(`Could not find definition file at ${projectJsonPath}`);
|
|
17
|
+
}
|
|
18
|
+
try {
|
|
19
|
+
const projectJsonContents = await readFile(projectJsonPath, 'utf8');
|
|
20
|
+
const hash = await hashWithSHA256(projectJsonContents);
|
|
21
|
+
const projectJson = JSON.parse(projectJsonContents);
|
|
22
|
+
const { migratedDefinition, appliedMigrations } = runSchemaMigrations(projectJson);
|
|
23
|
+
if (appliedMigrations.length > 0) {
|
|
24
|
+
await writeFile(projectJsonPath, stringifyPrettyStable(migratedDefinition));
|
|
25
|
+
}
|
|
26
|
+
const pluginImplementationStore = createPluginImplementationStore(context.pluginStore, migratedDefinition);
|
|
27
|
+
const definitionWithPluginMigrations = runPluginMigrations(migratedDefinition, pluginImplementationStore);
|
|
28
|
+
return { definition: definitionWithPluginMigrations, hash };
|
|
29
|
+
}
|
|
30
|
+
catch (err) {
|
|
31
|
+
throw enhanceErrorWithContext(err, `Error parsing project definition at ${projectJsonPath}`);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=load-project-definition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"load-project-definition.js","sourceRoot":"","sources":["../../src/project-definition/load-project-definition.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,+BAA+B,EAC/B,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,uBAAuB,EACvB,cAAc,EACd,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,SAAiB,EACjB,OAA4B;IAE5B,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAC/B,SAAS,EACT,mCAAmC,CACpC,CAAC;IAEF,MAAM,iBAAiB,GAAG,MAAM,UAAU,CAAC,eAAe,CAAC,CAAC;IAE5D,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,qCAAqC,eAAe,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,CAAC;QACH,MAAM,mBAAmB,GAAG,MAAM,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;QACpE,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,mBAAmB,CAAC,CAAC;QAEvD,MAAM,WAAW,GAAY,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAE7D,MAAM,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,GAAG,mBAAmB,CACnE,WAAgC,CACjC,CAAC;QACF,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,MAAM,SAAS,CACb,eAAe,EACf,qBAAqB,CAAC,kBAAkB,CAAC,CAC1C,CAAC;QACJ,CAAC;QAED,MAAM,yBAAyB,GAAG,+BAA+B,CAC/D,OAAO,CAAC,WAAW,EACnB,kBAAkB,CACnB,CAAC;QAEF,MAAM,8BAA8B,GAAG,mBAAmB,CACxD,kBAAkB,EAClB,yBAAyB,CAC1B,CAAC;QAEF,OAAO,EAAE,UAAU,EAAE,8BAA8B,EAAE,IAAI,EAAE,CAAC;IAC9D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,uBAAuB,CAC3B,GAAG,EACH,uCAAuC,eAAe,EAAE,CACzD,CAAC;IACJ,CAAC;AACH,CAAC"}
|
package/dist/server/plugin.js
CHANGED
|
@@ -39,11 +39,11 @@ export const baseplatePlugin = async function (fastify, { cliVersion, featureFla
|
|
|
39
39
|
},
|
|
40
40
|
useWSS: true,
|
|
41
41
|
});
|
|
42
|
-
fastify.get('/api/plugins/:projectId/:
|
|
42
|
+
fastify.get('/api/plugins/:projectId/:pluginKey/static/*', {
|
|
43
43
|
schema: {
|
|
44
44
|
params: z.object({
|
|
45
45
|
projectId: z.string().min(1),
|
|
46
|
-
|
|
46
|
+
pluginKey: z.string().min(1),
|
|
47
47
|
'*': z.string(),
|
|
48
48
|
}),
|
|
49
49
|
},
|
|
@@ -55,7 +55,7 @@ export const baseplatePlugin = async function (fastify, { cliVersion, featureFla
|
|
|
55
55
|
return;
|
|
56
56
|
}
|
|
57
57
|
const plugins = await service.getAvailablePlugins();
|
|
58
|
-
const plugin = plugins.find((plugin) => plugin.
|
|
58
|
+
const plugin = plugins.find((plugin) => plugin.key === req.params.pluginKey);
|
|
59
59
|
if (!plugin) {
|
|
60
60
|
reply.status(404).send('No plugin with provided ID found');
|
|
61
61
|
return;
|
|
@@ -71,11 +71,11 @@ export const baseplatePlugin = async function (fastify, { cliVersion, featureFla
|
|
|
71
71
|
},
|
|
72
72
|
});
|
|
73
73
|
// serve remoteEntry.js for plugins
|
|
74
|
-
fastify.get('/api/plugins/:projectId/:
|
|
74
|
+
fastify.get('/api/plugins/:projectId/:pluginKey/web/*', {
|
|
75
75
|
schema: {
|
|
76
76
|
params: z.object({
|
|
77
77
|
projectId: z.string().min(1),
|
|
78
|
-
|
|
78
|
+
pluginKey: z.string().min(1),
|
|
79
79
|
'*': z.string(),
|
|
80
80
|
}),
|
|
81
81
|
},
|
|
@@ -87,7 +87,7 @@ export const baseplatePlugin = async function (fastify, { cliVersion, featureFla
|
|
|
87
87
|
return;
|
|
88
88
|
}
|
|
89
89
|
const plugins = await service.getAvailablePlugins();
|
|
90
|
-
const plugin = plugins.find((plugin) => plugin.
|
|
90
|
+
const plugin = plugins.find((plugin) => plugin.key === req.params.pluginKey);
|
|
91
91
|
if (!plugin) {
|
|
92
92
|
reply.status(404).send('No plugin with provided ID found');
|
|
93
93
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/server/plugin.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAInD,MAAM,CAAC,MAAM,eAAe,GAMvB,KAAK,WACR,OAAO,EACP,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU,EAAE;IAEpE,OAAO,CAAC,GAAG,CAAC,IAAI,CACd,qBAAqB,cAAc;SAChC,WAAW,EAAE;SACb,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,SAAS,KAAK,GAAG,CAAC,EAAE,EAAE,CAAC;SAC3C,IAAI,CAAC,IAAI,CAAC,EAAE,CAChB,CAAC;IAEF,MAAM,OAAO,CAAC,QAAQ,CAAC,iBAAiB,EAAE;QACxC,MAAM,EAAE,OAAO;QACf,WAAW,EAAE;YACX,MAAM,EAAE,SAAS;YACjB,aAAa,EAAE,oBAAoB,CAAC;gBAClC,cAAc;gBACd,UAAU;gBACV,MAAM,EAAE,OAAO,CAAC,GAAG;gBACnB,YAAY;gBACZ,UAAU;gBACV,UAAU;aACX,CAAC;YACF,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;gBACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC3B,CAAC;YACD,0CAA0C;YAC1C,GAAI;gBACF,SAAS,EAAE;oBACT,OAAO,EAAE,IAAI;oBACb,+CAA+C;oBAC/C,MAAM,EAAE,MAAM;oBACd,qFAAqF;oBACrF,UAAU,EAAE,IAAI;iBACjB;aAC0B;SAC9B;QACD,MAAM,EAAE,IAAI;KACiC,CAAC,CAAC;IAEjD,OAAO,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/server/plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import type { AppEntry } from '@baseplate-dev/project-builder-lib';
|
|
2
|
-
import type {
|
|
3
|
-
import { buildGeneratorEntry, executeGeneratorEntry, writeGeneratorOutput } from '@baseplate-dev/sync';
|
|
2
|
+
import type { Logger, TemplateMetadataOptions } from '@baseplate-dev/sync';
|
|
4
3
|
import type { BaseplateUserConfig } from '#src/user-config/user-config-schema.js';
|
|
5
4
|
import type { PackageSyncResult } from './sync-metadata.js';
|
|
6
|
-
import {
|
|
5
|
+
import type { GeneratorOperations } from './types.js';
|
|
7
6
|
interface GenerateForDirectoryOptions {
|
|
8
7
|
baseDirectory: string;
|
|
9
8
|
appEntry: AppEntry;
|
|
@@ -14,17 +13,9 @@ interface GenerateForDirectoryOptions {
|
|
|
14
13
|
operations?: GeneratorOperations;
|
|
15
14
|
abortSignal?: AbortSignal;
|
|
16
15
|
skipCommands?: boolean;
|
|
17
|
-
|
|
16
|
+
overwrite?: boolean;
|
|
17
|
+
snapshotDirectory?: string;
|
|
18
18
|
}
|
|
19
|
-
export
|
|
20
|
-
buildGeneratorEntry: typeof buildGeneratorEntry;
|
|
21
|
-
executeGeneratorEntry: typeof executeGeneratorEntry;
|
|
22
|
-
getPreviousGeneratedPayload: typeof getPreviousGeneratedPayload;
|
|
23
|
-
writeGeneratorOutput: typeof writeGeneratorOutput;
|
|
24
|
-
writeMetadata: (project: GeneratorEntry, output: GeneratorOutput, projectDirectory: string) => Promise<void>;
|
|
25
|
-
writeGeneratorSteps: typeof writeGeneratorSteps;
|
|
26
|
-
}
|
|
27
|
-
declare function getPreviousGeneratedPayload(projectDirectory: string): Promise<PreviousGeneratedPayload | undefined>;
|
|
28
|
-
export declare function generateForDirectory({ baseDirectory, appEntry, logger, writeTemplateMetadataOptions, userConfig, previousPackageSyncResult, operations, abortSignal, skipCommands, forceOverwrite, }: GenerateForDirectoryOptions): Promise<PackageSyncResult>;
|
|
19
|
+
export declare function generateForDirectory({ baseDirectory, appEntry, logger, writeTemplateMetadataOptions, userConfig, previousPackageSyncResult, operations, abortSignal, skipCommands, overwrite, snapshotDirectory, }: GenerateForDirectoryOptions): Promise<PackageSyncResult>;
|
|
29
20
|
export {};
|
|
30
21
|
//# sourceMappingURL=generate-for-directory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-for-directory.d.ts","sourceRoot":"","sources":["../../src/sync/generate-for-directory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,KAAK,EAEV,
|
|
1
|
+
{"version":3,"file":"generate-for-directory.d.ts","sourceRoot":"","sources":["../../src/sync/generate-for-directory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,KAAK,EAEV,MAAM,EAEN,uBAAuB,EACxB,MAAM,qBAAqB,CAAC;AAQ7B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAIlF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAQtD,UAAU,2BAA2B;IACnC,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,4BAA4B,CAAC,EAAE,uBAAuB,CAAC;IACvD,UAAU,EAAE,mBAAmB,CAAC;IAChC,yBAAyB,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACzD,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,wBAAsB,oBAAoB,CAAC,EACzC,aAAa,EACb,QAAQ,EACR,MAAM,EACN,4BAA4B,EAC5B,UAAU,EACV,yBAAyB,EACzB,UAAyC,EACzC,WAAW,EACX,YAAY,EACZ,SAAS,EACT,iBAAiB,GAClB,EAAE,2BAA2B,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAwK1D"}
|