edacation 0.4.0 → 0.5.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.
@@ -1,17 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.schemaProjectConfiguration = exports.DEFAULT_CONFIGURATION = void 0;
3
+ exports.schemaProjectConfiguration = exports.DEFAULT_CONFIGURATION = exports.DEFAULT_TARGET = void 0;
4
4
  const zod_1 = require("zod");
5
+ exports.DEFAULT_TARGET = {
6
+ id: 'default',
7
+ name: 'ECP5 - LFE5U-25 - caBGA381',
8
+ vendor: 'lattice',
9
+ family: 'ecp5',
10
+ device: 'lfe5u-25',
11
+ package: 'caBGA381'
12
+ };
5
13
  exports.DEFAULT_CONFIGURATION = {
6
14
  targets: [
7
- {
8
- id: 'default',
9
- name: 'ECP5 - LFE5U-12 - caBGA381',
10
- vendor: 'lattice',
11
- family: 'ecp5',
12
- device: 'lfe5u-25',
13
- package: 'caBGA381'
14
- }
15
+ exports.DEFAULT_TARGET
15
16
  ]
16
17
  };
17
18
  const schemaValueList = zod_1.z.object({
@@ -1 +1 @@
1
- {"version":3,"file":"configuration.js","sourceRoot":"","sources":["../../src/project/configuration.ts"],"names":[],"mappings":";;;AAAA,6BAAsB;AAIT,QAAA,qBAAqB,GAAyB;IACvD,OAAO,EAAE;QACL;YACI,EAAE,EAAE,SAAS;YACb,IAAI,EAAE,4BAA4B;YAElC,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,UAAU;SACtB;KACJ;CACJ,CAAC;AAEF,MAAM,eAAe,GAAG,OAAC,CAAC,MAAM,CAAC;IAC7B,YAAY,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAClD,MAAM,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;CACrD,CAAC,CAAC;AACH,MAAM,qBAAqB,GAAG,eAAe,CAAC,MAAM,CAAC;IACjD,UAAU,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;CACnD,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,OAAC,CAAC,MAAM,CAAC;IAC1B,UAAU,EAAE,eAAe,CAAC,QAAQ,EAAE;IACtC,WAAW,EAAE,eAAe,CAAC,QAAQ,EAAE;CAC1C,CAAC,CAAC;AACH,MAAM,kBAAkB,GAAG,OAAC,CAAC,MAAM,CAAC;IAChC,UAAU,EAAE,qBAAqB,CAAC,QAAQ,EAAE;IAC5C,WAAW,EAAE,qBAAqB,CAAC,QAAQ,EAAE;CAChD,CAAC,CAAC;AAEH,MAAM,kBAAkB,GAAG,OAAC,CAAC,MAAM,CAAC;IAChC,QAAQ,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAChC,cAAc,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACxC,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG,OAAC,CAAC,MAAM,CAAC;IACzB,QAAQ,EAAE,eAAe,CAAC,QAAQ,EAAE;IACpC,OAAO,EAAE,kBAAkB,CAAC,QAAQ,EAAE;CACzC,CAAC,CAAC;AACH,MAAM,iBAAiB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC/B,QAAQ,EAAE,qBAAqB,CAAC,QAAQ,EAAE;IAC1C,OAAO,EAAE,kBAAkB,CAAC,QAAQ,EAAE;CACzC,CAAC,CAAC;AAEH,MAAM,oBAAoB,GAAG,OAAC,CAAC,MAAM,CAAC;IAClC,SAAS,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACjC,SAAS,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACjC,UAAU,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CACrC,CAAC,CAAC;AAEH,MAAM,aAAa,GAAG,OAAC,CAAC,MAAM,CAAC;IAC3B,SAAS,EAAE,eAAe,CAAC,QAAQ,EAAE;IACrC,OAAO,EAAE,oBAAoB,CAAC,QAAQ,EAAE;CAC3C,CAAC,CAAC;AACH,MAAM,mBAAmB,GAAG,OAAC,CAAC,MAAM,CAAC;IACjC,SAAS,EAAE,qBAAqB,CAAC,QAAQ,EAAE;IAC3C,OAAO,EAAE,oBAAoB,CAAC,QAAQ,EAAE;CAC3C,CAAC,CAAC;AAEH,MAAM,qBAAqB,GAAG,OAAC,CAAC,MAAM,CAAC;IACnC,aAAa,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACvC,CAAC,CAAC;AAEH,MAAM,cAAc,GAAG,OAAC,CAAC,MAAM,CAAC;IAC5B,SAAS,EAAE,eAAe,CAAC,QAAQ,EAAE;IACrC,OAAO,EAAE,qBAAqB,CAAC,QAAQ,EAAE;CAC5C,CAAC,CAAC;AACH,MAAM,oBAAoB,GAAG,OAAC,CAAC,MAAM,CAAC;IAClC,SAAS,EAAE,qBAAqB,CAAC,QAAQ,EAAE;IAC3C,OAAO,EAAE,qBAAqB,CAAC,QAAQ,EAAE;CAC5C,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAG,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AAC5D,MAAM,yBAAyB,GAAG,kBAAkB,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;AAC9E,MAAM,qBAAqB,GAAG,YAAY,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;AAChE,MAAM,2BAA2B,GAAG,kBAAkB,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;AAClF,MAAM,sBAAsB,GAAG,YAAY,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;AAClE,MAAM,4BAA4B,GAAG,kBAAkB,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;AAEpF,MAAM,oBAAoB,GAAG,OAAC,CAAC,MAAM,CAAC;IAClC,KAAK,EAAE,mBAAmB,CAAC,QAAQ,EAAE;IACrC,OAAO,EAAE,qBAAqB,CAAC,QAAQ,EAAE;IACzC,QAAQ,EAAE,sBAAsB,CAAC,QAAQ,EAAE;CAC9C,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,OAAC,CAAC,MAAM,CAAC;IAC1B,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;IAEhB,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE;IAClB,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE;IAClB,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE;IAClB,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE;IAEnB,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAEhC,KAAK,EAAE,yBAAyB,CAAC,QAAQ,EAAE;IAC3C,OAAO,EAAE,2BAA2B,CAAC,QAAQ,EAAE;IAC/C,QAAQ,EAAE,4BAA4B,CAAC,QAAQ,EAAE;CACpD,CAAC,CAAC;AAEU,QAAA,0BAA0B,GAAG,OAAC,CAAC,MAAM,CAAC;IAC/C,QAAQ,EAAE,oBAAoB,CAAC,QAAQ,EAAE;IACzC,OAAO,EAAE,OAAC,CAAC,KAAK,CAAC,YAAY,CAAC;CACjC,CAAC,CAAC"}
1
+ {"version":3,"file":"configuration.js","sourceRoot":"","sources":["../../src/project/configuration.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,27 @@
1
- import { type ProjectConfiguration } from './configuration.js';
2
- type ProjectTarget = ProjectConfiguration['targets'][number];
1
+ import { type ProjectConfiguration, TargetConfiguration, TargetOptionTypes, WorkerId } from './configuration.js';
2
+ import { Device, Family, Vendor } from './devices.js';
3
+ type Primitive = string | number | boolean | bigint | symbol | null | undefined | Date | RegExp | ((...args: unknown[]) => unknown);
4
+ type PathArray<T> = T extends Primitive ? never : {
5
+ [K in Extract<keyof T, string>]: T[K] extends Primitive | unknown[] ? [K] : [K] | [K, ...PathArray<T[K]>];
6
+ }[Extract<keyof T, string>];
7
+ type PathArrayValue<T, P extends readonly string[]> = P extends [] ? T : P extends [infer K extends string, ...infer R extends string[]] ? K extends keyof T ? PathArrayValue<T[K], R> : unknown : unknown;
8
+ export type ProjectEvent = 'meta' | 'inputFiles' | 'outputFiles' | 'configuration';
9
+ type EventCallback = (project: Project, events: ProjectEvent[]) => void;
3
10
  export interface ProjectInputFileState {
4
11
  path: string;
5
12
  type: 'design' | 'testbench';
6
13
  }
7
14
  export declare class ProjectInputFile {
15
+ private _project;
8
16
  private _path;
9
17
  private _type;
10
- constructor(_path: ProjectInputFileState['path'], _type: ProjectInputFileState['type']);
18
+ constructor(_project: Project, _path: ProjectInputFileState['path'], _type: ProjectInputFileState['type']);
11
19
  get path(): ProjectInputFileState['path'];
12
20
  get type(): ProjectInputFileState['type'];
13
21
  set type(type: ProjectInputFileState['type']);
14
- static serialize(file: ProjectInputFile): ProjectInputFileState;
15
- static deserialize(data: ProjectInputFileState | string, ..._args: unknown[]): ProjectInputFile;
22
+ serialize(): ProjectInputFileState;
23
+ static deserialize(project: Project, data: ProjectInputFileState | string, ..._args: unknown[]): ProjectInputFile;
24
+ copy(project: Project): ProjectInputFile;
16
25
  }
17
26
  export interface ProjectOutputFileState {
18
27
  path: string;
@@ -31,8 +40,40 @@ export declare class ProjectOutputFile {
31
40
  get target(): ProjectTarget | null;
32
41
  get stale(): ProjectOutputFileState['stale'];
33
42
  set stale(isStale: ProjectOutputFileState['stale']);
34
- static serialize(file: ProjectOutputFile): ProjectOutputFileState;
43
+ serialize(): ProjectOutputFileState;
35
44
  static deserialize(project: Project, data: ProjectOutputFileState | string, ..._args: unknown[]): ProjectOutputFile;
45
+ copy(project: Project): ProjectOutputFile;
46
+ }
47
+ export declare class ProjectTarget {
48
+ private _project;
49
+ private _data;
50
+ constructor(_project: Project, _data: TargetConfiguration);
51
+ get id(): string;
52
+ set id(newId: string);
53
+ get name(): string;
54
+ set name(newName: string);
55
+ get vendorId(): string;
56
+ get availableVendors(): Record<string, Vendor>;
57
+ get vendor(): Vendor | undefined;
58
+ setVendor(vendorId: string): void;
59
+ get familyId(): string;
60
+ get availableFamilies(): Record<string, Family>;
61
+ get family(): Family | undefined;
62
+ setFamily(familyId: string): void;
63
+ get deviceId(): string;
64
+ get availableDevices(): Record<string, Device>;
65
+ get device(): Device | undefined;
66
+ setDevice(deviceId: string): void;
67
+ get packageId(): string;
68
+ get availablePackages(): Record<string, string>;
69
+ get package(): string | undefined;
70
+ setPackage(packageId: string): void;
71
+ get config(): TargetConfiguration;
72
+ setConfig<P extends PathArray<TargetConfiguration>>(path: P, value: PathArrayValue<TargetConfiguration, P>): void;
73
+ getEffectiveOptions<W extends WorkerId>(workerId: WorkerId): TargetOptionTypes[W];
74
+ getEffectiveTextConfig(workerId: WorkerId, configId: string, generated: string[], parse?: (values: string[]) => string[]): string[];
75
+ update(updates: Partial<TargetConfiguration>): void;
76
+ serialize(): TargetConfiguration;
36
77
  }
37
78
  export interface ProjectState {
38
79
  name: string;
@@ -45,8 +86,12 @@ export declare class Project {
45
86
  private inputFiles;
46
87
  private outputFiles;
47
88
  private configuration;
48
- constructor(name: string, inputFiles?: ProjectInputFileState[] | string[], outputFiles?: ProjectOutputFileState[] | string[], configuration?: ProjectConfiguration);
89
+ private eventCallback?;
90
+ private batchedEvents;
91
+ private batchCounter;
92
+ constructor(name: string, inputFiles?: ProjectInputFileState[] | string[], outputFiles?: ProjectOutputFileState[] | string[], configuration?: ProjectConfiguration, eventCallback?: EventCallback);
49
93
  getName(): string;
94
+ setName(name: string): void;
50
95
  getInputFiles(): ProjectInputFile[];
51
96
  hasInputFile(filePath: string): boolean;
52
97
  getInputFile(filePath: string): ProjectInputFile | null;
@@ -64,6 +109,15 @@ export declare class Project {
64
109
  }[]): void;
65
110
  removeOutputFiles(filePaths: string[]): void;
66
111
  expireOutputFiles(): void;
112
+ setTopLevelModule(targetId: string, module: string): void;
113
+ setTestbenchPath(targetId: string, testbenchPath?: string): void;
114
+ setInputFileType(filePath: string, type: ProjectInputFile['type']): void;
115
+ getTargets(): ProjectTarget[];
116
+ hasTarget(id: string): boolean;
117
+ getTarget(id: string): ProjectTarget | null;
118
+ addTarget(id?: string, config?: Omit<TargetConfiguration, 'id'>): ProjectTarget;
119
+ removeTarget(id: string): void;
120
+ updateTarget(id: string, updates: Partial<TargetConfiguration>): void;
67
121
  getConfiguration(): {
68
122
  targets: {
69
123
  id: string;
@@ -72,11 +126,8 @@ export declare class Project {
72
126
  family: string;
73
127
  device: string;
74
128
  package: string;
129
+ directory?: string | undefined;
75
130
  yosys?: {
76
- options?: {
77
- optimize?: boolean | undefined;
78
- topLevelModule?: string | undefined;
79
- } | undefined;
80
131
  inputFiles?: {
81
132
  useGenerated: boolean;
82
133
  values: string[];
@@ -92,13 +143,12 @@ export declare class Project {
92
143
  values: string[];
93
144
  useDefault: boolean;
94
145
  } | undefined;
95
- } | undefined;
96
- nextpnr?: {
97
146
  options?: {
98
- placedSvg?: boolean | undefined;
99
- routedSvg?: boolean | undefined;
100
- routedJson?: boolean | undefined;
147
+ optimize?: boolean | undefined;
148
+ topLevelModule?: string | undefined;
101
149
  } | undefined;
150
+ } | undefined;
151
+ nextpnr?: {
102
152
  inputFiles?: {
103
153
  useGenerated: boolean;
104
154
  values: string[];
@@ -114,11 +164,13 @@ export declare class Project {
114
164
  values: string[];
115
165
  useDefault: boolean;
116
166
  } | undefined;
117
- } | undefined;
118
- iverilog?: {
119
167
  options?: {
120
- testbenchFile?: string | undefined;
168
+ placedSvg?: boolean | undefined;
169
+ routedSvg?: boolean | undefined;
170
+ routedJson?: boolean | undefined;
121
171
  } | undefined;
172
+ } | undefined;
173
+ iverilog?: {
122
174
  inputFiles?: {
123
175
  useGenerated: boolean;
124
176
  values: string[];
@@ -134,15 +186,13 @@ export declare class Project {
134
186
  values: string[];
135
187
  useDefault: boolean;
136
188
  } | undefined;
189
+ options?: {
190
+ testbenchFile?: string | undefined;
191
+ } | undefined;
137
192
  } | undefined;
138
- directory?: string | undefined;
139
193
  }[];
140
194
  defaults?: {
141
195
  yosys?: {
142
- options?: {
143
- optimize?: boolean | undefined;
144
- topLevelModule?: string | undefined;
145
- } | undefined;
146
196
  inputFiles?: {
147
197
  useGenerated: boolean;
148
198
  values: string[];
@@ -155,13 +205,12 @@ export declare class Project {
155
205
  useGenerated: boolean;
156
206
  values: string[];
157
207
  } | undefined;
158
- } | undefined;
159
- nextpnr?: {
160
208
  options?: {
161
- placedSvg?: boolean | undefined;
162
- routedSvg?: boolean | undefined;
163
- routedJson?: boolean | undefined;
209
+ optimize?: boolean | undefined;
210
+ topLevelModule?: string | undefined;
164
211
  } | undefined;
212
+ } | undefined;
213
+ nextpnr?: {
165
214
  inputFiles?: {
166
215
  useGenerated: boolean;
167
216
  values: string[];
@@ -174,11 +223,13 @@ export declare class Project {
174
223
  useGenerated: boolean;
175
224
  values: string[];
176
225
  } | undefined;
177
- } | undefined;
178
- iverilog?: {
179
226
  options?: {
180
- testbenchFile?: string | undefined;
227
+ placedSvg?: boolean | undefined;
228
+ routedSvg?: boolean | undefined;
229
+ routedJson?: boolean | undefined;
181
230
  } | undefined;
231
+ } | undefined;
232
+ iverilog?: {
182
233
  inputFiles?: {
183
234
  useGenerated: boolean;
184
235
  values: string[];
@@ -191,11 +242,20 @@ export declare class Project {
191
242
  useGenerated: boolean;
192
243
  values: string[];
193
244
  } | undefined;
245
+ options?: {
246
+ testbenchFile?: string | undefined;
247
+ } | undefined;
194
248
  } | undefined;
195
249
  } | undefined;
196
250
  };
197
251
  updateConfiguration(configuration: Partial<ProjectConfiguration>): void;
198
- getTarget(id: string): ProjectTarget | null;
252
+ protected importFromProject(other: Project, doTriggerEvent?: boolean): void;
253
+ triggerInputFilesChanged(): void;
254
+ triggerOutputFilesChanged(): void;
255
+ triggerConfigurationChanged(): void;
256
+ protected emitEvents(...events: ProjectEvent[]): void;
257
+ protected batchEvents<T>(func: () => T, ...events: ProjectEvent[]): T;
258
+ protected static emitsEvents(...events: ProjectEvent[]): <T>(_target: object, _propertyKey: string | symbol, descriptor: TypedPropertyDescriptor<T>) => TypedPropertyDescriptor<T> | void;
199
259
  static serialize(project: Project): ProjectState;
200
260
  static deserialize(data: ProjectState, ..._args: unknown[]): Project;
201
261
  static loadFromData(rawData: Uint8Array): Project;