@azizbekdevuz/gitguard-schema 1.0.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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
package/dist/api.js ADDED
@@ -0,0 +1,127 @@
1
+ import { z } from 'zod';
2
+ import { SnapshotV1Schema } from './snapshot.js';
3
+ import { PlanV1Schema, VerificationResultSchema } from './plan.js';
4
+ import { SignalsSchema } from './signals.js';
5
+ // ==========================================
6
+ // Session API Types
7
+ // ==========================================
8
+ // POST /api/sessions - Create new session
9
+ export const CreateSessionRequestSchema = z.object({
10
+ snapshot: SnapshotV1Schema,
11
+ });
12
+ export const CreateSessionResponseSchema = z.object({
13
+ sessionId: z.string(),
14
+ });
15
+ // GET /api/sessions/[id] - Get session details
16
+ export const TraceOutputSchema = z.object({
17
+ stage: z.string(),
18
+ output: z.unknown(),
19
+ createdAt: z.string(),
20
+ durationMs: z.number().nullable(),
21
+ });
22
+ export const SessionSummarySchema = z.object({
23
+ id: z.string(),
24
+ title: z.string().nullable(),
25
+ createdAt: z.string(),
26
+ });
27
+ export const GetSessionResponseSchema = z.object({
28
+ session: SessionSummarySchema,
29
+ snapshot: SnapshotV1Schema,
30
+ signals: SignalsSchema.nullable(),
31
+ plan: PlanV1Schema.nullable(),
32
+ traces: z.array(TraceOutputSchema),
33
+ });
34
+ // ==========================================
35
+ // Plan API Types
36
+ // ==========================================
37
+ // POST /api/sessions/[id]/plan - Generate plan
38
+ export const GeneratePlanRequestSchema = z.object({
39
+ dangerousAllowed: z.boolean().optional().default(false),
40
+ });
41
+ export const GeneratePlanResponseSchema = z.object({
42
+ plan: PlanV1Schema,
43
+ });
44
+ // ==========================================
45
+ // Verify API Types
46
+ // ==========================================
47
+ // POST /api/sessions/[id]/verify - Verify progress
48
+ export const VerifyProgressRequestSchema = z.object({
49
+ snapshot: SnapshotV1Schema,
50
+ });
51
+ export const VerifyProgressResponseSchema = VerificationResultSchema;
52
+ // ==========================================
53
+ // Explain API Types
54
+ // ==========================================
55
+ // POST /api/sessions/[id]/explain - Get AI explanation
56
+ export const ExplainConflictRequestSchema = z.object({
57
+ type: z.literal('conflict'),
58
+ fileIndex: z.number(),
59
+ blockIndex: z.number(),
60
+ });
61
+ export const ExplainStateRequestSchema = z.object({
62
+ type: z.literal('state'),
63
+ });
64
+ export const ExplainRequestSchema = z.discriminatedUnion('type', [
65
+ ExplainConflictRequestSchema,
66
+ ExplainStateRequestSchema,
67
+ ]);
68
+ // Conflict explanation response
69
+ export const ConflictExplanationSchema = z.object({
70
+ summary: z.string(),
71
+ oursInterpretation: z.string(),
72
+ theirsInterpretation: z.string(),
73
+ suggestedResolution: z.string(),
74
+ riskNotes: z.string().optional(),
75
+ });
76
+ // State explanation response
77
+ export const StateExplanationSchema = z.object({
78
+ summary: z.string(),
79
+ howItHappened: z.string(),
80
+ currentPosition: z.string(),
81
+ safeNextSteps: z.array(z.string()),
82
+ warnings: z.array(z.string()).optional(),
83
+ });
84
+ export const ExplainResponseSchema = z.object({
85
+ explanation: z.union([ConflictExplanationSchema, StateExplanationSchema]),
86
+ });
87
+ // ==========================================
88
+ // Auth API Types
89
+ // ==========================================
90
+ // POST /api/auth/register - Register new user
91
+ export const RegisterRequestSchema = z.object({
92
+ name: z.string().optional(),
93
+ email: z.string().email(),
94
+ password: z.string().min(8),
95
+ });
96
+ export const RegisterResponseSchema = z.object({
97
+ user: z.object({
98
+ id: z.string(),
99
+ name: z.string().nullable(),
100
+ email: z.string(),
101
+ }),
102
+ });
103
+ // ==========================================
104
+ // Error Response
105
+ // ==========================================
106
+ export const ApiErrorSchema = z.object({
107
+ error: z.string(),
108
+ });
109
+ // ==========================================
110
+ // History Types (for session list page)
111
+ // ==========================================
112
+ export const SessionListItemSchema = z.object({
113
+ id: z.string(),
114
+ title: z.string().nullable(),
115
+ createdAt: z.string(),
116
+ os: z.string().nullable(),
117
+ hasPlan: z.boolean(),
118
+ issueType: z.string().nullable(),
119
+ risk: z.string().nullable(),
120
+ });
121
+ export const SessionListResponseSchema = z.object({
122
+ sessions: z.array(SessionListItemSchema),
123
+ total: z.number(),
124
+ page: z.number(),
125
+ pageSize: z.number(),
126
+ });
127
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export * from './snapshot.js';
2
+ export * from './signals.js';
3
+ export * from './api.js';
4
+ export { RiskLevelSchema, RiskLevel, PlanV1Schema, PlanV1, VerificationResultSchema, VerificationResult, } from './plan.js';
5
+ export * from './analysis.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AAGzB,OAAO,EACL,eAAe,EACf,SAAS,EACT,YAAY,EACZ,MAAM,EACN,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,WAAW,CAAC;AAGnB,cAAc,eAAe,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,8 @@
1
+ export * from './snapshot.js';
2
+ export * from './signals.js';
3
+ export * from './api.js';
4
+ // Export from plan.js but exclude types that are redefined in analysis.js
5
+ export { RiskLevelSchema, PlanV1Schema, VerificationResultSchema, } from './plan.js';
6
+ // Export everything from analysis.js (has updated IssueType, PlanStep, etc.)
7
+ export * from './analysis.js';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AAEzB,0EAA0E;AAC1E,OAAO,EACL,eAAe,EAEf,YAAY,EAEZ,wBAAwB,GAEzB,MAAM,WAAW,CAAC;AAEnB,6EAA6E;AAC7E,cAAc,eAAe,CAAC"}
package/dist/plan.d.ts ADDED
@@ -0,0 +1,346 @@
1
+ import { z } from 'zod';
2
+ export declare const IssueTypeSchema: z.ZodEnum<["merge_conflict", "detached_head", "rebase_in_progress", "clean", "unknown"]>;
3
+ export type IssueType = z.infer<typeof IssueTypeSchema>;
4
+ export declare const RiskLevelSchema: z.ZodEnum<["low", "medium", "high"]>;
5
+ export type RiskLevel = z.infer<typeof RiskLevelSchema>;
6
+ export declare const PlanStepSchema: z.ZodObject<{
7
+ id: z.ZodString;
8
+ title: z.ZodString;
9
+ description: z.ZodString;
10
+ commands: z.ZodArray<z.ZodString, "many">;
11
+ expected: z.ZodString;
12
+ undo: z.ZodObject<{
13
+ possible: z.ZodBoolean;
14
+ commands: z.ZodArray<z.ZodString, "many">;
15
+ description: z.ZodString;
16
+ }, "strip", z.ZodTypeAny, {
17
+ commands: string[];
18
+ description: string;
19
+ possible: boolean;
20
+ }, {
21
+ commands: string[];
22
+ description: string;
23
+ possible: boolean;
24
+ }>;
25
+ dangerous: z.ZodBoolean;
26
+ warning: z.ZodOptional<z.ZodString>;
27
+ requiresUserInput: z.ZodDefault<z.ZodBoolean>;
28
+ userInputHint: z.ZodOptional<z.ZodString>;
29
+ }, "strip", z.ZodTypeAny, {
30
+ dangerous: boolean;
31
+ id: string;
32
+ expected: string;
33
+ title: string;
34
+ commands: string[];
35
+ undo: {
36
+ commands: string[];
37
+ description: string;
38
+ possible: boolean;
39
+ };
40
+ description: string;
41
+ requiresUserInput: boolean;
42
+ warning?: string | undefined;
43
+ userInputHint?: string | undefined;
44
+ }, {
45
+ dangerous: boolean;
46
+ id: string;
47
+ expected: string;
48
+ title: string;
49
+ commands: string[];
50
+ undo: {
51
+ commands: string[];
52
+ description: string;
53
+ possible: boolean;
54
+ };
55
+ description: string;
56
+ warning?: string | undefined;
57
+ requiresUserInput?: boolean | undefined;
58
+ userInputHint?: string | undefined;
59
+ }>;
60
+ export type PlanStep = z.infer<typeof PlanStepSchema>;
61
+ export declare const PlanV1Schema: z.ZodObject<{
62
+ version: z.ZodLiteral<1>;
63
+ timestamp: z.ZodString;
64
+ issueType: z.ZodEnum<["merge_conflict", "detached_head", "rebase_in_progress", "clean", "unknown"]>;
65
+ issueSummary: z.ZodString;
66
+ risk: z.ZodEnum<["low", "medium", "high"]>;
67
+ steps: z.ZodArray<z.ZodObject<{
68
+ id: z.ZodString;
69
+ title: z.ZodString;
70
+ description: z.ZodString;
71
+ commands: z.ZodArray<z.ZodString, "many">;
72
+ expected: z.ZodString;
73
+ undo: z.ZodObject<{
74
+ possible: z.ZodBoolean;
75
+ commands: z.ZodArray<z.ZodString, "many">;
76
+ description: z.ZodString;
77
+ }, "strip", z.ZodTypeAny, {
78
+ commands: string[];
79
+ description: string;
80
+ possible: boolean;
81
+ }, {
82
+ commands: string[];
83
+ description: string;
84
+ possible: boolean;
85
+ }>;
86
+ dangerous: z.ZodBoolean;
87
+ warning: z.ZodOptional<z.ZodString>;
88
+ requiresUserInput: z.ZodDefault<z.ZodBoolean>;
89
+ userInputHint: z.ZodOptional<z.ZodString>;
90
+ }, "strip", z.ZodTypeAny, {
91
+ dangerous: boolean;
92
+ id: string;
93
+ expected: string;
94
+ title: string;
95
+ commands: string[];
96
+ undo: {
97
+ commands: string[];
98
+ description: string;
99
+ possible: boolean;
100
+ };
101
+ description: string;
102
+ requiresUserInput: boolean;
103
+ warning?: string | undefined;
104
+ userInputHint?: string | undefined;
105
+ }, {
106
+ dangerous: boolean;
107
+ id: string;
108
+ expected: string;
109
+ title: string;
110
+ commands: string[];
111
+ undo: {
112
+ commands: string[];
113
+ description: string;
114
+ possible: boolean;
115
+ };
116
+ description: string;
117
+ warning?: string | undefined;
118
+ requiresUserInput?: boolean | undefined;
119
+ userInputHint?: string | undefined;
120
+ }>, "many">;
121
+ saferAlternatives: z.ZodOptional<z.ZodArray<z.ZodObject<{
122
+ description: z.ZodString;
123
+ tradeoff: z.ZodString;
124
+ steps: z.ZodArray<z.ZodObject<{
125
+ id: z.ZodString;
126
+ title: z.ZodString;
127
+ description: z.ZodString;
128
+ commands: z.ZodArray<z.ZodString, "many">;
129
+ expected: z.ZodString;
130
+ undo: z.ZodObject<{
131
+ possible: z.ZodBoolean;
132
+ commands: z.ZodArray<z.ZodString, "many">;
133
+ description: z.ZodString;
134
+ }, "strip", z.ZodTypeAny, {
135
+ commands: string[];
136
+ description: string;
137
+ possible: boolean;
138
+ }, {
139
+ commands: string[];
140
+ description: string;
141
+ possible: boolean;
142
+ }>;
143
+ dangerous: z.ZodBoolean;
144
+ warning: z.ZodOptional<z.ZodString>;
145
+ requiresUserInput: z.ZodDefault<z.ZodBoolean>;
146
+ userInputHint: z.ZodOptional<z.ZodString>;
147
+ }, "strip", z.ZodTypeAny, {
148
+ dangerous: boolean;
149
+ id: string;
150
+ expected: string;
151
+ title: string;
152
+ commands: string[];
153
+ undo: {
154
+ commands: string[];
155
+ description: string;
156
+ possible: boolean;
157
+ };
158
+ description: string;
159
+ requiresUserInput: boolean;
160
+ warning?: string | undefined;
161
+ userInputHint?: string | undefined;
162
+ }, {
163
+ dangerous: boolean;
164
+ id: string;
165
+ expected: string;
166
+ title: string;
167
+ commands: string[];
168
+ undo: {
169
+ commands: string[];
170
+ description: string;
171
+ possible: boolean;
172
+ };
173
+ description: string;
174
+ warning?: string | undefined;
175
+ requiresUserInput?: boolean | undefined;
176
+ userInputHint?: string | undefined;
177
+ }>, "many">;
178
+ }, "strip", z.ZodTypeAny, {
179
+ description: string;
180
+ steps: {
181
+ dangerous: boolean;
182
+ id: string;
183
+ expected: string;
184
+ title: string;
185
+ commands: string[];
186
+ undo: {
187
+ commands: string[];
188
+ description: string;
189
+ possible: boolean;
190
+ };
191
+ description: string;
192
+ requiresUserInput: boolean;
193
+ warning?: string | undefined;
194
+ userInputHint?: string | undefined;
195
+ }[];
196
+ tradeoff: string;
197
+ }, {
198
+ description: string;
199
+ steps: {
200
+ dangerous: boolean;
201
+ id: string;
202
+ expected: string;
203
+ title: string;
204
+ commands: string[];
205
+ undo: {
206
+ commands: string[];
207
+ description: string;
208
+ possible: boolean;
209
+ };
210
+ description: string;
211
+ warning?: string | undefined;
212
+ requiresUserInput?: boolean | undefined;
213
+ userInputHint?: string | undefined;
214
+ }[];
215
+ tradeoff: string;
216
+ }>, "many">>;
217
+ reflogRecovery: z.ZodOptional<z.ZodObject<{
218
+ description: z.ZodString;
219
+ relevantEntries: z.ZodArray<z.ZodString, "many">;
220
+ recoveryCommand: z.ZodString;
221
+ }, "strip", z.ZodTypeAny, {
222
+ description: string;
223
+ relevantEntries: string[];
224
+ recoveryCommand: string;
225
+ }, {
226
+ description: string;
227
+ relevantEntries: string[];
228
+ recoveryCommand: string;
229
+ }>>;
230
+ }, "strip", z.ZodTypeAny, {
231
+ issueType: "merge_conflict" | "detached_head" | "rebase_in_progress" | "clean" | "unknown";
232
+ version: 1;
233
+ timestamp: string;
234
+ issueSummary: string;
235
+ risk: "low" | "medium" | "high";
236
+ steps: {
237
+ dangerous: boolean;
238
+ id: string;
239
+ expected: string;
240
+ title: string;
241
+ commands: string[];
242
+ undo: {
243
+ commands: string[];
244
+ description: string;
245
+ possible: boolean;
246
+ };
247
+ description: string;
248
+ requiresUserInput: boolean;
249
+ warning?: string | undefined;
250
+ userInputHint?: string | undefined;
251
+ }[];
252
+ saferAlternatives?: {
253
+ description: string;
254
+ steps: {
255
+ dangerous: boolean;
256
+ id: string;
257
+ expected: string;
258
+ title: string;
259
+ commands: string[];
260
+ undo: {
261
+ commands: string[];
262
+ description: string;
263
+ possible: boolean;
264
+ };
265
+ description: string;
266
+ requiresUserInput: boolean;
267
+ warning?: string | undefined;
268
+ userInputHint?: string | undefined;
269
+ }[];
270
+ tradeoff: string;
271
+ }[] | undefined;
272
+ reflogRecovery?: {
273
+ description: string;
274
+ relevantEntries: string[];
275
+ recoveryCommand: string;
276
+ } | undefined;
277
+ }, {
278
+ issueType: "merge_conflict" | "detached_head" | "rebase_in_progress" | "clean" | "unknown";
279
+ version: 1;
280
+ timestamp: string;
281
+ issueSummary: string;
282
+ risk: "low" | "medium" | "high";
283
+ steps: {
284
+ dangerous: boolean;
285
+ id: string;
286
+ expected: string;
287
+ title: string;
288
+ commands: string[];
289
+ undo: {
290
+ commands: string[];
291
+ description: string;
292
+ possible: boolean;
293
+ };
294
+ description: string;
295
+ warning?: string | undefined;
296
+ requiresUserInput?: boolean | undefined;
297
+ userInputHint?: string | undefined;
298
+ }[];
299
+ saferAlternatives?: {
300
+ description: string;
301
+ steps: {
302
+ dangerous: boolean;
303
+ id: string;
304
+ expected: string;
305
+ title: string;
306
+ commands: string[];
307
+ undo: {
308
+ commands: string[];
309
+ description: string;
310
+ possible: boolean;
311
+ };
312
+ description: string;
313
+ warning?: string | undefined;
314
+ requiresUserInput?: boolean | undefined;
315
+ userInputHint?: string | undefined;
316
+ }[];
317
+ tradeoff: string;
318
+ }[] | undefined;
319
+ reflogRecovery?: {
320
+ description: string;
321
+ relevantEntries: string[];
322
+ recoveryCommand: string;
323
+ } | undefined;
324
+ }>;
325
+ export type PlanV1 = z.infer<typeof PlanV1Schema>;
326
+ export declare const VerificationResultSchema: z.ZodObject<{
327
+ stepsCompleted: z.ZodArray<z.ZodString, "many">;
328
+ issueResolved: z.ZodBoolean;
329
+ remainingIssues: z.ZodArray<z.ZodString, "many">;
330
+ nextStepId: z.ZodOptional<z.ZodString>;
331
+ guidance: z.ZodString;
332
+ }, "strip", z.ZodTypeAny, {
333
+ stepsCompleted: string[];
334
+ issueResolved: boolean;
335
+ remainingIssues: string[];
336
+ guidance: string;
337
+ nextStepId?: string | undefined;
338
+ }, {
339
+ stepsCompleted: string[];
340
+ issueResolved: boolean;
341
+ remainingIssues: string[];
342
+ guidance: string;
343
+ nextStepId?: string | undefined;
344
+ }>;
345
+ export type VerificationResult = z.infer<typeof VerificationResultSchema>;
346
+ //# sourceMappingURL=plan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../src/plan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,eAAe,0FAM1B,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAGxD,eAAO,MAAM,eAAe,sCAAoC,CAAC;AAEjE,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAGxD,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAezB,CAAC;AAEH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAGtD,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqBvB,CAAC;AAEH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAGlD,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;EAMnC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC"}
package/dist/plan.js ADDED
@@ -0,0 +1,58 @@
1
+ import { z } from 'zod';
2
+ // Issue types we handle
3
+ export const IssueTypeSchema = z.enum([
4
+ 'merge_conflict',
5
+ 'detached_head',
6
+ 'rebase_in_progress',
7
+ 'clean',
8
+ 'unknown',
9
+ ]);
10
+ // Risk levels
11
+ export const RiskLevelSchema = z.enum(['low', 'medium', 'high']);
12
+ // A single step in the recovery plan
13
+ export const PlanStepSchema = z.object({
14
+ id: z.string(),
15
+ title: z.string(),
16
+ description: z.string(),
17
+ commands: z.array(z.string()), // git commands to execute
18
+ expected: z.string(), // what should happen after running
19
+ undo: z.object({
20
+ possible: z.boolean(),
21
+ commands: z.array(z.string()), // commands to undo this step
22
+ description: z.string(),
23
+ }),
24
+ dangerous: z.boolean(), // requires explicit dangerous_allowed flag
25
+ warning: z.string().optional(), // warning text for dangerous operations
26
+ requiresUserInput: z.boolean().default(false), // e.g., editing conflict markers
27
+ userInputHint: z.string().optional(),
28
+ });
29
+ // Complete recovery plan
30
+ export const PlanV1Schema = z.object({
31
+ version: z.literal(1),
32
+ timestamp: z.string().datetime(),
33
+ issueType: IssueTypeSchema,
34
+ issueSummary: z.string(),
35
+ risk: RiskLevelSchema,
36
+ steps: z.array(PlanStepSchema),
37
+ // Alternative safer approaches if dangerous operations are suggested
38
+ saferAlternatives: z.array(z.object({
39
+ description: z.string(),
40
+ tradeoff: z.string(), // what you lose by using safer approach
41
+ steps: z.array(PlanStepSchema),
42
+ })).optional(),
43
+ // Reflog-based recovery path (always included for safety)
44
+ reflogRecovery: z.object({
45
+ description: z.string(),
46
+ relevantEntries: z.array(z.string()), // reflog selectors like HEAD@{2}
47
+ recoveryCommand: z.string(),
48
+ }).optional(),
49
+ });
50
+ // Verification result after user runs some steps
51
+ export const VerificationResultSchema = z.object({
52
+ stepsCompleted: z.array(z.string()), // step IDs
53
+ issueResolved: z.boolean(),
54
+ remainingIssues: z.array(z.string()),
55
+ nextStepId: z.string().optional(),
56
+ guidance: z.string(),
57
+ });
58
+ //# sourceMappingURL=plan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan.js","sourceRoot":"","sources":["../src/plan.ts"],"names":[],"mappings":"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"}