edacation 0.1.2 → 0.1.4

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,292 @@
1
+ export interface Vendor {
2
+ name: string;
3
+ url?: string;
4
+ packages: Record<string, string>;
5
+ families: Record<string, Family>;
6
+ }
7
+ export type VendorId = keyof typeof VENDORS;
8
+ export interface Family {
9
+ name: string;
10
+ architecture: Architecture;
11
+ url?: string;
12
+ devices: Record<string, Device>;
13
+ }
14
+ export type Architecture = 'ecp5' | 'generic' | 'gowin' | 'ice40' | 'machxo2' | 'nexus';
15
+ export interface Device {
16
+ name: string;
17
+ device: string;
18
+ packages: string[];
19
+ }
20
+ export declare const VENDORS: {
21
+ generic: {
22
+ name: string;
23
+ url: string;
24
+ packages: {
25
+ generic: string;
26
+ };
27
+ families: {
28
+ generic: {
29
+ name: string;
30
+ architecture: "generic";
31
+ devices: {
32
+ generic: {
33
+ name: string;
34
+ device: string;
35
+ packages: string[];
36
+ };
37
+ };
38
+ };
39
+ };
40
+ };
41
+ gowin: {
42
+ name: string;
43
+ url: string;
44
+ packages: {
45
+ LQ144: string;
46
+ QFN48: string;
47
+ QN48: string;
48
+ QN48P: string;
49
+ QN88: string;
50
+ };
51
+ families: {
52
+ littlebee: {
53
+ name: string;
54
+ architecture: "gowin";
55
+ url: string;
56
+ devices: {
57
+ 'gw1n-1': {
58
+ name: string;
59
+ device: string;
60
+ packages: string[];
61
+ };
62
+ 'gw1n-4': {
63
+ name: string;
64
+ device: string;
65
+ packages: string[];
66
+ };
67
+ 'gw1nr-9': {
68
+ name: string;
69
+ device: string;
70
+ packages: string[];
71
+ };
72
+ 'gw1ns-2c': {
73
+ name: string;
74
+ device: string;
75
+ packages: string[];
76
+ };
77
+ 'gw1nz-1': {
78
+ name: string;
79
+ device: string;
80
+ packages: string[];
81
+ };
82
+ 'gw1nsr-4c': {
83
+ name: string;
84
+ device: string;
85
+ packages: string[];
86
+ };
87
+ };
88
+ };
89
+ };
90
+ };
91
+ lattice: {
92
+ name: string;
93
+ url: string;
94
+ packages: {
95
+ ASG256: string;
96
+ BBG484: string;
97
+ BFG484: string;
98
+ bg121: string;
99
+ 'bg121:4k': string;
100
+ caBGA256: string;
101
+ caBGA381: string;
102
+ caBGA400: string;
103
+ caBGA554: string;
104
+ caBGA756: string;
105
+ cb81: string;
106
+ cb121: string;
107
+ cb132: string;
108
+ 'cb132:4k': string;
109
+ CBG256: string;
110
+ cm36: string;
111
+ cm49: string;
112
+ cm81: string;
113
+ 'cm81:4k': string;
114
+ cm121: string;
115
+ 'cm121:4k': string;
116
+ cm225: string;
117
+ 'cm225:4k': string;
118
+ ct121: string;
119
+ ct256: string;
120
+ csfBGA121: string;
121
+ csfBGA285: string;
122
+ csfBGA289: string;
123
+ LFG672: string;
124
+ QFN32: string;
125
+ QFN48: string;
126
+ QFN72: string;
127
+ qn32: string;
128
+ qn84: string;
129
+ swg16tr: string;
130
+ tq144: string;
131
+ 'tq144:4k': string;
132
+ TQFP100: string;
133
+ TQFP144: string;
134
+ vq100: string;
135
+ };
136
+ families: {
137
+ 'crosslink-nx': {
138
+ name: string;
139
+ architecture: "nexus";
140
+ url: string;
141
+ devices: {
142
+ 'lifcl-17': {
143
+ name: string;
144
+ device: string;
145
+ packages: string[];
146
+ };
147
+ 'lifcl-40': {
148
+ name: string;
149
+ device: string;
150
+ packages: string[];
151
+ };
152
+ };
153
+ };
154
+ ecp5: {
155
+ name: string;
156
+ architecture: "ecp5";
157
+ url: string;
158
+ devices: {
159
+ 'lfe5u-12': {
160
+ name: string;
161
+ device: string;
162
+ packages: string[];
163
+ };
164
+ 'lfe5u-25': {
165
+ name: string;
166
+ device: string;
167
+ packages: string[];
168
+ };
169
+ 'lfe5u-45': {
170
+ name: string;
171
+ device: string;
172
+ packages: string[];
173
+ };
174
+ 'lfe5u-85': {
175
+ name: string;
176
+ device: string;
177
+ packages: string[];
178
+ };
179
+ 'lfe5um-25': {
180
+ name: string;
181
+ device: string;
182
+ packages: string[];
183
+ };
184
+ 'lfe5um-45': {
185
+ name: string;
186
+ device: string;
187
+ packages: string[];
188
+ };
189
+ 'lfe5um-85': {
190
+ name: string;
191
+ device: string;
192
+ packages: string[];
193
+ };
194
+ 'lfe5um5g-25': {
195
+ name: string;
196
+ device: string;
197
+ packages: string[];
198
+ };
199
+ 'lfe5um5g-45': {
200
+ name: string;
201
+ device: string;
202
+ packages: string[];
203
+ };
204
+ 'lfe5um5g-85': {
205
+ name: string;
206
+ device: string;
207
+ packages: string[];
208
+ };
209
+ };
210
+ };
211
+ ice40: {
212
+ name: string;
213
+ architecture: "ice40";
214
+ url: string;
215
+ devices: {
216
+ lp384: {
217
+ name: string;
218
+ device: string;
219
+ packages: string[];
220
+ };
221
+ lp1k: {
222
+ name: string;
223
+ device: string;
224
+ packages: string[];
225
+ };
226
+ lp4k: {
227
+ name: string;
228
+ device: string;
229
+ packages: string[];
230
+ };
231
+ lp8k: {
232
+ name: string;
233
+ device: string;
234
+ packages: string[];
235
+ };
236
+ hx1k: {
237
+ name: string;
238
+ device: string;
239
+ packages: string[];
240
+ };
241
+ hx4k: {
242
+ name: string;
243
+ device: string;
244
+ packages: string[];
245
+ };
246
+ hx8k: {
247
+ name: string;
248
+ device: string;
249
+ packages: string[];
250
+ };
251
+ };
252
+ };
253
+ machxo2: {
254
+ name: string;
255
+ architecture: "machxo2";
256
+ url: string;
257
+ devices: {
258
+ 'xo2-256': {
259
+ name: string;
260
+ device: string;
261
+ packages: string[];
262
+ };
263
+ 'xo2-640': {
264
+ name: string;
265
+ device: string;
266
+ packages: string[];
267
+ };
268
+ 'xo2-1200': {
269
+ name: string;
270
+ device: string;
271
+ packages: string[];
272
+ };
273
+ 'xo2-2000': {
274
+ name: string;
275
+ device: string;
276
+ packages: string[];
277
+ };
278
+ 'xo2-4000': {
279
+ name: string;
280
+ device: string;
281
+ packages: string[];
282
+ };
283
+ 'xo2-7000': {
284
+ name: string;
285
+ device: string;
286
+ packages: string[];
287
+ };
288
+ };
289
+ };
290
+ };
291
+ };
292
+ };
@@ -0,0 +1,5 @@
1
+ export * from './configuration.js';
2
+ export * from './devices.js';
3
+ export * from './nextpnr.js';
4
+ export * from './project.js';
5
+ export * from './yosys.js';
@@ -0,0 +1,7 @@
1
+ import { Project } from './project.js';
2
+ export declare const generateNextpnrWorker: (project: Project, targetId: string) => {
3
+ inputFiles: any[];
4
+ outputFiles: any[];
5
+ tool: string;
6
+ arguments: any[];
7
+ };
@@ -0,0 +1,120 @@
1
+ import { ProjectConfiguration } from './configuration.js';
2
+ export interface ProjectState {
3
+ name: string;
4
+ inputFiles: string[];
5
+ outputFiles: string[];
6
+ configuration: ProjectConfiguration;
7
+ }
8
+ export declare class Project {
9
+ private name;
10
+ private inputFiles;
11
+ private outputFiles;
12
+ private configuration;
13
+ constructor(name: string, inputFiles?: string[], outputFiles?: string[], configuration?: ProjectConfiguration);
14
+ getName(): string;
15
+ getInputFiles(): string[];
16
+ hasInputFile(filePath: string): boolean;
17
+ addInputFiles(filePaths: string[]): Promise<void>;
18
+ removeInputFiles(filePaths: string[]): Promise<void>;
19
+ getOutputFiles(): string[];
20
+ hasOutputFile(filePath: string): boolean;
21
+ addOutputFiles(filePaths: string[]): Promise<void>;
22
+ removeOutputFiles(filePaths: string[]): Promise<void>;
23
+ getConfiguration(): {
24
+ targets: {
25
+ id: string;
26
+ name: string;
27
+ vendor: string;
28
+ family: string;
29
+ device: string;
30
+ package: string;
31
+ directory?: string | undefined;
32
+ yosys?: {
33
+ inputFiles?: {
34
+ useGenerated: boolean;
35
+ values: string[];
36
+ useDefault: boolean;
37
+ } | undefined;
38
+ outputFiles?: {
39
+ useGenerated: boolean;
40
+ values: string[];
41
+ useDefault: boolean;
42
+ } | undefined;
43
+ commands?: {
44
+ useGenerated: boolean;
45
+ values: string[];
46
+ useDefault: boolean;
47
+ } | undefined;
48
+ options?: {
49
+ optimize?: boolean | undefined;
50
+ } | undefined;
51
+ } | undefined;
52
+ nextpnr?: {
53
+ inputFiles?: {
54
+ useGenerated: boolean;
55
+ values: string[];
56
+ useDefault: boolean;
57
+ } | undefined;
58
+ outputFiles?: {
59
+ useGenerated: boolean;
60
+ values: string[];
61
+ useDefault: boolean;
62
+ } | undefined;
63
+ arguments?: {
64
+ useGenerated: boolean;
65
+ values: string[];
66
+ useDefault: boolean;
67
+ } | undefined;
68
+ options?: {
69
+ placedSvg?: boolean | undefined;
70
+ routedSvg?: boolean | undefined;
71
+ routedJson?: boolean | undefined;
72
+ } | undefined;
73
+ } | undefined;
74
+ }[];
75
+ defaults?: {
76
+ yosys?: {
77
+ inputFiles?: {
78
+ useGenerated: boolean;
79
+ values: string[];
80
+ } | undefined;
81
+ outputFiles?: {
82
+ useGenerated: boolean;
83
+ values: string[];
84
+ } | undefined;
85
+ commands?: {
86
+ useGenerated: boolean;
87
+ values: string[];
88
+ } | undefined;
89
+ options?: {
90
+ optimize?: boolean | undefined;
91
+ } | undefined;
92
+ } | undefined;
93
+ nextpnr?: {
94
+ inputFiles?: {
95
+ useGenerated: boolean;
96
+ values: string[];
97
+ } | undefined;
98
+ outputFiles?: {
99
+ useGenerated: boolean;
100
+ values: string[];
101
+ } | undefined;
102
+ arguments?: {
103
+ useGenerated: boolean;
104
+ values: string[];
105
+ } | undefined;
106
+ options?: {
107
+ placedSvg?: boolean | undefined;
108
+ routedSvg?: boolean | undefined;
109
+ routedJson?: boolean | undefined;
110
+ } | undefined;
111
+ } | undefined;
112
+ } | undefined;
113
+ };
114
+ updateConfiguration(configuration: Partial<ProjectConfiguration>): void;
115
+ private save;
116
+ static serialize(project: Project): ProjectState;
117
+ static deserialize(data: ProjectState): Project;
118
+ static load(rawData: Uint8Array): Promise<Project>;
119
+ static store(project: Project): Promise<Uint8Array>;
120
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/project/project.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/project/project.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,UAAU,EAAC,MAAM,YAAY,CAAC;AAElD,OAAO,EAAC,qBAAqB,EAAwB,0BAA0B,EAAC,MAAM,oBAAoB,CAAC;AAS3G,MAAM,OAAO,OAAO;IAOhB,YACI,IAAY,EACZ,aAAuB,EAAE,EACzB,cAAwB,EAAE,EAC1B,gBAAsC,qBAAqB;QAG3D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAE/B,MAAM,MAAM,GAAG,0BAA0B,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QACnE,IAAI,MAAM,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC;SACpC;aAAM;YACH,MAAM,IAAI,KAAK,CAAC,0CAA0C,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;SAC7E;IACL,CAAC;IAED,OAAO;QACH,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,aAAa;QACT,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,YAAY,CAAC,QAAgB;QACzB,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,SAAmB;QACnC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;YAC9B,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE;gBAC9B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAClC;SACJ;QAED,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC1B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,SAAmB;QACtC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QAE9E,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;IAED,cAAc;QACV,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAED,aAAa,CAAC,QAAgB;QAC1B,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,SAAmB;QACpC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;YAC9B,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE;gBAC/B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aACnC;SACJ;QAED,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC3B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,SAAmB;QACvC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QAEhF,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;IAED,gBAAgB;QACZ,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IAED,mBAAmB,CAAC,aAA4C;QAC5D,IAAI,CAAC,aAAa,GAAG;YACjB,GAAG,IAAI,CAAC,aAAa;YACrB,GAAG,aAAa;SACnB,CAAC;IACN,CAAC;IAEO,KAAK,CAAC,IAAI;QACd,MAAM,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,OAAgB;QAC7B,OAAO;YACH,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,aAAa,EAAE,OAAO,CAAC,aAAa;SACvC,CAAC;IACN,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,IAAkB;QACjC,MAAM,IAAI,GAAW,IAAI,CAAC,IAAI,CAAC;QAC/B,MAAM,UAAU,GAAa,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;QACnD,MAAM,WAAW,GAAa,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;QACrD,MAAM,aAAa,GAAyB,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC;QAErE,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAmB;QACjC,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;QACjC,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC1C,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAgB;QAC/B,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACxC,OAAO,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;CACJ"}
@@ -0,0 +1,11 @@
1
+ import { NextpnrOptions, ProjectConfiguration, TargetConfiguration, TargetDefaultsConfiguration, WorkerId, YosysOptions } from './configuration.js';
2
+ export declare const getTargetDefaults: (configuration: ProjectConfiguration) => TargetDefaultsConfiguration;
3
+ export declare const getTarget: (configuration: ProjectConfiguration, targetId: string) => TargetConfiguration;
4
+ export declare const getTargetFile: (target: TargetConfiguration, file: string) => string;
5
+ type WorkerOptionTypes = {
6
+ yosys: YosysOptions;
7
+ nextpnr: NextpnrOptions;
8
+ };
9
+ export declare const getOptions: <W extends WorkerId>(configuration: ProjectConfiguration, targetId: string, workerId: W, defaultValues: WorkerOptionTypes[W]) => WorkerOptionTypes[W];
10
+ export declare const getCombined: (configuration: ProjectConfiguration, targetId: string, workerId: WorkerId, configId: string, generated: string[]) => any[];
11
+ export {};
@@ -0,0 +1,9 @@
1
+ import { Project } from './project.js';
2
+ export declare const generateYosysWorker: (project: Project, targetId: string) => {
3
+ inputFiles: any[];
4
+ outputFiles: any[];
5
+ tool: string;
6
+ commands: any[];
7
+ };
8
+ export declare const generateYosysRTLCommands: (inputFiles: string[]) => string[];
9
+ export declare const generateYosysSynthCommands: (inputFiles: string[]) => string[];
package/dist/util.d.ts ADDED
@@ -0,0 +1,12 @@
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ /// <reference types="node" resolution-mode="require"/>
3
+ /// <reference types="node" resolution-mode="require"/>
4
+ /// <reference types="node" resolution-mode="require"/>
5
+ export type ArrayElement<ArrayType extends readonly unknown[]> = ArrayType extends readonly (infer ElementType)[] ? ElementType : never;
6
+ export declare const encodeText: (input: string) => Uint8Array;
7
+ export declare const encodeJSON: (input: unknown, pretty?: boolean) => Uint8Array;
8
+ export declare const decodeText: (input: NodeJS.ArrayBufferView | ArrayBuffer) => string;
9
+ export declare const decodeJSON: (input: NodeJS.ArrayBufferView | ArrayBuffer) => any;
10
+ export declare const FILE_EXTENSIONS_VERILOG: string[];
11
+ export declare const FILE_EXTENSIONS_VHDL: string[];
12
+ export declare const FILE_EXTENSIONS_HDL: string[];
package/dist/util.js CHANGED
@@ -1,13 +1,3 @@
1
- import { access } from 'fs/promises';
2
- export const exists = async (...args) => {
3
- try {
4
- await access(...args);
5
- return true;
6
- }
7
- catch (err) {
8
- return false;
9
- }
10
- };
11
1
  const textEncoder = new TextEncoder();
12
2
  const textDecoder = new TextDecoder();
13
3
  export const encodeText = (input) => textEncoder.encode(input.endsWith('\n') ? input : `${input}\n`);
package/dist/util.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC;AAInC,MAAM,CAAC,MAAM,MAAM,GAAG,KAAK,EAAE,GAAG,IAA+B,EAAE,EAAE;IAC/D,IAAI;QACA,MAAM,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;QACtB,OAAO,IAAI,CAAC;KACf;IAAC,OAAO,GAAG,EAAE;QACV,OAAO,KAAK,CAAC;KAChB;AACL,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;AACtC,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;AAEtC,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;AAC7G,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAc,EAAE,SAAkB,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AAE5I,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAA2C,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACrG,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAA2C,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;AAEzG,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AAChE,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,KAAK,CAAC,CAAC;AAC5C,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,GAAG,uBAAuB,EAAE,GAAG,oBAAoB,CAAC,CAAC"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;AACtC,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;AAEtC,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;AAC7G,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAc,EAAE,SAAkB,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AAE5I,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAA2C,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACrG,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAA2C,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;AAEzG,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AAChE,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,KAAK,CAAC,CAAC;AAC5C,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,GAAG,uBAAuB,EAAE,GAAG,oBAAoB,CAAC,CAAC"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "edacation",
3
3
  "description": "Library and CLI for interacting with Yosys and nextpnr.",
4
4
  "license": "MIT",
5
- "version": "0.1.2",
5
+ "version": "0.1.4",
6
6
  "contributors": [
7
7
  "Danielle Huisman <danielle@huisman.me> (https://github.com/DanielleHuisman)"
8
8
  ],
package/dist/tool.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"tool.js","sourceRoot":"","sources":["../src/tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,eAAe,CAAC;AAEpC,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,IAAc,EAAE,GAAW,EAAE,EAAE,CAAC,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;IAC5G,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE;QACxB,GAAG;QACH,KAAK,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC;KACxC,CAAC,CAAC;IAEH,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;QAClB,MAAM,CAAC,GAAG,CAAC,CAAC;IAChB,CAAC,CAAC,CAAC;IAEH,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;QACd,OAAO,EAAE,CAAC;IACd,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
File without changes