edacation 0.5.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":"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"}
1
+ {"version":3,"file":"configuration.js","sourceRoot":"","sources":["../../src/project/configuration.ts"],"names":[],"mappings":"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"}
@@ -1,21 +1,27 @@
1
- import { type ProjectConfiguration } from './configuration.js';
2
- type ProjectTarget = ProjectConfiguration['targets'][number];
3
- export type ProjectEvent = 'inputFiles' | 'outputFiles' | 'configuration';
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';
4
9
  type EventCallback = (project: Project, events: ProjectEvent[]) => void;
5
10
  export interface ProjectInputFileState {
6
11
  path: string;
7
12
  type: 'design' | 'testbench';
8
13
  }
9
14
  export declare class ProjectInputFile {
15
+ private _project;
10
16
  private _path;
11
17
  private _type;
12
- constructor(_path: ProjectInputFileState['path'], _type: ProjectInputFileState['type']);
18
+ constructor(_project: Project, _path: ProjectInputFileState['path'], _type: ProjectInputFileState['type']);
13
19
  get path(): ProjectInputFileState['path'];
14
20
  get type(): ProjectInputFileState['type'];
15
21
  set type(type: ProjectInputFileState['type']);
16
22
  serialize(): ProjectInputFileState;
17
- static deserialize(data: ProjectInputFileState | string, ..._args: unknown[]): ProjectInputFile;
18
- copy(): ProjectInputFile;
23
+ static deserialize(project: Project, data: ProjectInputFileState | string, ..._args: unknown[]): ProjectInputFile;
24
+ copy(project: Project): ProjectInputFile;
19
25
  }
20
26
  export interface ProjectOutputFileState {
21
27
  path: string;
@@ -38,6 +44,37 @@ export declare class ProjectOutputFile {
38
44
  static deserialize(project: Project, data: ProjectOutputFileState | string, ..._args: unknown[]): ProjectOutputFile;
39
45
  copy(project: Project): ProjectOutputFile;
40
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;
77
+ }
41
78
  export interface ProjectState {
42
79
  name: string;
43
80
  inputFiles: ProjectInputFileState[] | string[];
@@ -54,6 +91,7 @@ export declare class Project {
54
91
  private batchCounter;
55
92
  constructor(name: string, inputFiles?: ProjectInputFileState[] | string[], outputFiles?: ProjectOutputFileState[] | string[], configuration?: ProjectConfiguration, eventCallback?: EventCallback);
56
93
  getName(): string;
94
+ setName(name: string): void;
57
95
  getInputFiles(): ProjectInputFile[];
58
96
  hasInputFile(filePath: string): boolean;
59
97
  getInputFile(filePath: string): ProjectInputFile | null;
@@ -74,7 +112,12 @@ export declare class Project {
74
112
  setTopLevelModule(targetId: string, module: string): void;
75
113
  setTestbenchPath(targetId: string, testbenchPath?: string): void;
76
114
  setInputFileType(filePath: string, type: ProjectInputFile['type']): void;
115
+ getTargets(): ProjectTarget[];
116
+ hasTarget(id: string): boolean;
77
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;
78
121
  getConfiguration(): {
79
122
  targets: {
80
123
  id: string;
@@ -83,11 +126,8 @@ export declare class Project {
83
126
  family: string;
84
127
  device: string;
85
128
  package: string;
129
+ directory?: string | undefined;
86
130
  yosys?: {
87
- options?: {
88
- optimize?: boolean | undefined;
89
- topLevelModule?: string | undefined;
90
- } | undefined;
91
131
  inputFiles?: {
92
132
  useGenerated: boolean;
93
133
  values: string[];
@@ -103,13 +143,12 @@ export declare class Project {
103
143
  values: string[];
104
144
  useDefault: boolean;
105
145
  } | undefined;
106
- } | undefined;
107
- nextpnr?: {
108
146
  options?: {
109
- placedSvg?: boolean | undefined;
110
- routedSvg?: boolean | undefined;
111
- routedJson?: boolean | undefined;
147
+ optimize?: boolean | undefined;
148
+ topLevelModule?: string | undefined;
112
149
  } | undefined;
150
+ } | undefined;
151
+ nextpnr?: {
113
152
  inputFiles?: {
114
153
  useGenerated: boolean;
115
154
  values: string[];
@@ -125,11 +164,13 @@ export declare class Project {
125
164
  values: string[];
126
165
  useDefault: boolean;
127
166
  } | undefined;
128
- } | undefined;
129
- iverilog?: {
130
167
  options?: {
131
- testbenchFile?: string | undefined;
168
+ placedSvg?: boolean | undefined;
169
+ routedSvg?: boolean | undefined;
170
+ routedJson?: boolean | undefined;
132
171
  } | undefined;
172
+ } | undefined;
173
+ iverilog?: {
133
174
  inputFiles?: {
134
175
  useGenerated: boolean;
135
176
  values: string[];
@@ -145,15 +186,13 @@ export declare class Project {
145
186
  values: string[];
146
187
  useDefault: boolean;
147
188
  } | undefined;
189
+ options?: {
190
+ testbenchFile?: string | undefined;
191
+ } | undefined;
148
192
  } | undefined;
149
- directory?: string | undefined;
150
193
  }[];
151
194
  defaults?: {
152
195
  yosys?: {
153
- options?: {
154
- optimize?: boolean | undefined;
155
- topLevelModule?: string | undefined;
156
- } | undefined;
157
196
  inputFiles?: {
158
197
  useGenerated: boolean;
159
198
  values: string[];
@@ -166,13 +205,12 @@ export declare class Project {
166
205
  useGenerated: boolean;
167
206
  values: string[];
168
207
  } | undefined;
169
- } | undefined;
170
- nextpnr?: {
171
208
  options?: {
172
- placedSvg?: boolean | undefined;
173
- routedSvg?: boolean | undefined;
174
- routedJson?: boolean | undefined;
209
+ optimize?: boolean | undefined;
210
+ topLevelModule?: string | undefined;
175
211
  } | undefined;
212
+ } | undefined;
213
+ nextpnr?: {
176
214
  inputFiles?: {
177
215
  useGenerated: boolean;
178
216
  values: string[];
@@ -185,11 +223,13 @@ export declare class Project {
185
223
  useGenerated: boolean;
186
224
  values: string[];
187
225
  } | undefined;
188
- } | undefined;
189
- iverilog?: {
190
226
  options?: {
191
- testbenchFile?: string | undefined;
227
+ placedSvg?: boolean | undefined;
228
+ routedSvg?: boolean | undefined;
229
+ routedJson?: boolean | undefined;
192
230
  } | undefined;
231
+ } | undefined;
232
+ iverilog?: {
193
233
  inputFiles?: {
194
234
  useGenerated: boolean;
195
235
  values: string[];
@@ -202,14 +242,20 @@ export declare class Project {
202
242
  useGenerated: boolean;
203
243
  values: string[];
204
244
  } | undefined;
245
+ options?: {
246
+ testbenchFile?: string | undefined;
247
+ } | undefined;
205
248
  } | undefined;
206
249
  } | undefined;
207
250
  };
208
251
  updateConfiguration(configuration: Partial<ProjectConfiguration>): void;
209
252
  protected importFromProject(other: Project, doTriggerEvent?: boolean): void;
253
+ triggerInputFilesChanged(): void;
254
+ triggerOutputFilesChanged(): void;
255
+ triggerConfigurationChanged(): void;
210
256
  protected emitEvents(...events: ProjectEvent[]): void;
211
257
  protected batchEvents<T>(func: () => T, ...events: ProjectEvent[]): T;
212
- protected static emitsEvents<T extends Project>(...events: ProjectEvent[]): (_target: object, _propertyKey: string, descriptor: TypedPropertyDescriptor<(...args: any[]) => unknown>) => TypedPropertyDescriptor<(...args: any[]) => unknown>;
258
+ protected static emitsEvents(...events: ProjectEvent[]): <T>(_target: object, _propertyKey: string | symbol, descriptor: TypedPropertyDescriptor<T>) => TypedPropertyDescriptor<T> | void;
213
259
  static serialize(project: Project): ProjectState;
214
260
  static deserialize(data: ProjectState, ..._args: unknown[]): Project;
215
261
  static loadFromData(rawData: Uint8Array): Project;