ezjww 0.2.10 → 0.3.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.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 k-tanaka
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,33 +1,100 @@
1
- # ezjww
1
+ # ezjww for TypeScript
2
2
 
3
- TypeScript bindings for the Rust `ezjww` JWW parser and DXF converter.
3
+ Read JWW and supported JWC drawings, inspect source records, and export DXF
4
+ with a Rust parser compiled to WebAssembly.
4
5
 
5
- ```ts
6
- import { readFileSync } from "node:fs";
7
- import { readDocument, toDxfString } from "ezjww";
6
+ ## Installation
8
7
 
9
- const data = readFileSync("sample.jww");
10
- const document = readDocument(data);
11
- for (const diagnostic of document.diagnostics) {
12
- console.log(diagnostic.code, diagnostic.details);
8
+ Node.js 18 or later:
9
+
10
+ ```bash
11
+ npm install ezjww
12
+ ```
13
+
14
+ ## Read and convert a drawing
15
+
16
+ ```typescript
17
+ import { readFileSync, writeFileSync } from "node:fs";
18
+ import { detectFileFormat, readCadDocument, readDxfDocument, readDxfString } from "ezjww";
19
+
20
+ const data = readFileSync("drawing.jwc"); // also accepts JWW
21
+ console.log(detectFileFormat(data)); // "jww", "jwc", or null
22
+
23
+ const cad = readCadDocument(data);
24
+ if (cad.format === "jwc") {
25
+ console.log(cad.document.header.paper, cad.document.header.source_version);
26
+ } else {
27
+ console.log(cad.document.header.version);
13
28
  }
14
- const dxf = toDxfString(data, { explodeInserts: true });
29
+
30
+ const options = { jwcCoordinates: "model_millimeters" as const };
31
+ const dxf = readDxfDocument(data, options);
32
+ console.log(dxf.entities.length, dxf.jwc_conversion_report?.notices);
33
+ writeFileSync("drawing.dxf", readDxfString(data, {
34
+ ...options,
35
+ targetVersion: "AC1024",
36
+ }));
15
37
  ```
16
38
 
17
- `isJwwFile(data)` checks the exact eight-byte `JwwData.` signature at offset 0;
18
- it does not use a filename extension. `readDocument(data).diagnostics` reports
19
- structured CP932 replacement events, including absolute byte offsets.
39
+ All readers accept `Uint8Array`, `ArrayBuffer`, and `ArrayBufferView`, respecting
40
+ view offsets and lengths. Detection uses file contents, not the filename.
41
+ A matching signature does not validate the complete file.
42
+
43
+ | Purpose | API |
44
+ | --- | --- |
45
+ | Detect either format | `detectFileFormat` |
46
+ | Read either source document | `readCadDocument` |
47
+ | Read JWW only | `isJwwFile`, `readHeader`, `readDocument` |
48
+ | Read JWC only | `isJwcFile`, `readJwcHeader`, `readJwcDocument` |
49
+ | Convert either format | `readDxfDocument`, `readDxfString` (`toDxfString` alias) |
20
50
 
21
- The repository documents the stable audit issue-code catalog in
22
- `docs/DIAGNOSTICS.md` and the signature contract in `docs/JWW_SIGNATURE.md`.
51
+ `DxfOptions` accepts `targetVersion` (`"AC1015"` by default or `"AC1024"`) for
52
+ string output, `explodeInserts` (default `false`), `maxBlockNesting` (default `32`,
53
+ minimum `1`), and `jwcCoordinates` (`"paper_millimeters"` by default or
54
+ `"model_millimeters"`). The JWC coordinate option does not change JWW conversion.
55
+
56
+ ## JWC support
57
+
58
+ The supported binary document profile is `fixed2421_basic_v1`. It covers lines,
59
+ circles, circular arcs, full rotated ellipses, CP932 text, points, and auxiliary
60
+ points. Some curve sequences are represented as line segments. Old DOS generations
61
+ and other JWC layouts are not covered by a general compatibility guarantee.
62
+
63
+ The source document retains original coordinates, names, attributes, and byte
64
+ spans. `header.source_version` is currently `null`. DXF defaults to paper
65
+ millimeters centered on the sheet with +Y up; `model_millimeters` applies each
66
+ entity's own layer-group scale once.
67
+
68
+ DXF output preserves millimeter units and TEXT width factors. Rendering defaults
69
+ for the palette, dashes, and font, along with text-spacing limits, are reported in
70
+ `jwc_conversion_report.notices`. Unknown layouts or attributes, partial ellipses,
71
+ and inconsistent string pools throw errors with byte offsets. Malformed JWC does
72
+ not return a partial document; CP932 replacement decoding produces diagnostics.
73
+
74
+ See the [API reference](https://github.com/monozukuri-ai/ezjww/blob/main/docs/JWC_API.md),
75
+ [JWC support and limits](https://github.com/monozukuri-ai/ezjww/blob/main/docs/JWC_FORMAT.md),
76
+ and [diagnostic codes](https://github.com/monozukuri-ai/ezjww/blob/main/docs/DIAGNOSTICS.md).
77
+ Repository documentation describes the source version; use documentation at your
78
+ installed package's release tag when working with an older release.
23
79
 
24
80
  ## Browser example
25
81
 
82
+ The npm entry point targets Node.js. The repository includes a browser example
83
+ that builds the Rust WASM module for the web and parses selected files locally.
84
+ For the browser build, use Node.js 22.12+ (or 20.19+ on the 20.x line), Rust, and
85
+ pnpm. From a checkout:
86
+
26
87
  ```bash
27
88
  cd packages/ezjww
28
89
  pnpm install
29
90
  pnpm run example:browser:dev
30
91
  ```
31
92
 
32
- The example app parses a dropped `.jww` file in the browser and shows summary
33
- counts, layers, a simple drawing preview, and JSON output.
93
+ The app displays layers, source JSON, diagnostics, and previews, and can download
94
+ converted DXF. For JWC, it offers paper/model coordinates and conversion notices.
95
+ Invisible JWC layers are hidden; fonts are substituted.
96
+ See the [browser guide](https://github.com/monozukuri-ai/ezjww/blob/main/packages/ezjww/examples/browser/README.md).
97
+
98
+ ## License
99
+
100
+ [MIT](https://github.com/monozukuri-ai/ezjww/blob/main/LICENSE)
package/dist/index.d.ts CHANGED
@@ -11,12 +11,17 @@ export interface LayerGroupHeader {
11
11
  name: string;
12
12
  layers: LayerHeader[];
13
13
  }
14
+ export interface JwwPalette {
15
+ pen_colors: number[];
16
+ extended_colors: number[] | null;
17
+ }
14
18
  export interface JwwHeader {
15
19
  version: number;
16
20
  memo: string;
17
21
  paper_size: number;
18
22
  write_layer_group: number;
19
23
  layer_groups: LayerGroupHeader[];
24
+ palette: JwwPalette | null;
20
25
  }
21
26
  export interface EntityBase {
22
27
  group: number;
@@ -174,6 +179,7 @@ export interface DxfEntity {
174
179
  x?: number;
175
180
  y?: number;
176
181
  height?: number;
182
+ width_factor?: number;
177
183
  rotation?: number;
178
184
  content?: string;
179
185
  style?: string;
@@ -196,16 +202,194 @@ export interface DxfDocument {
196
202
  entities: DxfEntity[];
197
203
  blocks: DxfBlock[];
198
204
  unsupported_entities: string[];
205
+ jwc_conversion_report?: JwcConversionReport;
206
+ text_width_factors?: number[];
199
207
  }
200
208
  export interface DxfOptions {
201
209
  explodeInserts?: boolean;
202
210
  maxBlockNesting?: number;
211
+ textEmScale?: number;
212
+ jwcCoordinates?: JwcCoordinateSpace;
213
+ targetVersion?: "AC1015" | "AC1024";
203
214
  }
204
215
  export type JwwInput = Uint8Array | ArrayBuffer | ArrayBufferView;
205
216
  export declare function isJwwFile(input: JwwInput): boolean;
206
217
  export declare function readHeader(input: JwwInput): JwwHeader;
207
218
  export declare function readDocument(input: JwwInput): JwwDocument;
219
+ export type CadInput = JwwInput;
220
+ export declare function isJwcFile(input: CadInput): boolean;
221
+ export declare function detectFileFormat(input: CadInput): "jww" | "jwc" | null;
222
+ export declare function readJwcHeader(input: CadInput): JwcHeader;
223
+ export declare function readJwcDocument(input: CadInput): JwcDocument;
224
+ export declare function readCadDocument(input: CadInput): CadDocument;
208
225
  export declare function readDxfDocument(input: JwwInput, options?: DxfOptions): DxfDocument;
209
226
  export declare function readDxfString(input: JwwInput, options?: DxfOptions): string;
210
227
  export declare const toDxfString: typeof readDxfString;
228
+ export type JwcCoordinateSpace = "paper_millimeters" | "model_millimeters";
229
+ export interface JwcSection {
230
+ byte_offset: number;
231
+ byte_length: number;
232
+ }
233
+ export interface JwcLayout {
234
+ lines: JwcSection;
235
+ arcs: JwcSection;
236
+ text_records: JwcSection;
237
+ string_pool: JwcSection;
238
+ points: JwcSection;
239
+ names: JwcSection;
240
+ }
241
+ export interface JwcName {
242
+ text: string;
243
+ raw_bytes: number[];
244
+ byte_offset: number;
245
+ }
246
+ export interface JwcLayerState {
247
+ editable: boolean;
248
+ visible: boolean;
249
+ protected: boolean;
250
+ }
251
+ export interface JwcLayer {
252
+ state: JwcLayerState;
253
+ name: JwcName;
254
+ }
255
+ export interface JwcLayerGroup {
256
+ state: JwcLayerState;
257
+ scale: number;
258
+ write_layer: number;
259
+ name: JwcName;
260
+ layers: JwcLayer[];
261
+ }
262
+ export interface JwcTextPreset {
263
+ pen_color: number;
264
+ width_tenths: number;
265
+ height_tenths: number;
266
+ spacing_tenths: number;
267
+ }
268
+ export interface JwcTemporaryPoint {
269
+ array_index: number;
270
+ raw_x: number;
271
+ raw_y: number;
272
+ layer_group: number;
273
+ layer: number;
274
+ }
275
+ export interface JwcEntityCounts {
276
+ lines: number;
277
+ arcs: number;
278
+ texts: number;
279
+ points: number;
280
+ temporary_points: number;
281
+ }
282
+ export interface JwcHeader {
283
+ profile_id: "fixed2421_csv32_v1";
284
+ source_version: string | null;
285
+ counts: JwcEntityCounts;
286
+ paper: "A0" | "A1" | "A2" | "A3" | "A4";
287
+ coordinate_extent: number;
288
+ write_layer_group: number;
289
+ layer_groups: JwcLayerGroup[];
290
+ text_presets: JwcTextPreset[];
291
+ temporary_points: JwcTemporaryPoint[];
292
+ layout: JwcLayout;
293
+ raw_fixed_header: number[];
294
+ diagnostics: DecodeDiagnostic[];
295
+ }
296
+ export interface JwcLayerAddress {
297
+ group: number;
298
+ layer: number;
299
+ }
300
+ export interface JwcCoord {
301
+ x: number;
302
+ y: number;
303
+ }
304
+ export interface JwcEntitySource {
305
+ spans: JwcSection[];
306
+ raw_bytes: number[];
307
+ }
308
+ export interface JwcStrokeAttributes {
309
+ pen_style: number;
310
+ pen_color: number;
311
+ layer: JwcLayerAddress;
312
+ flags_raw: number;
313
+ }
314
+ export interface JwcLine {
315
+ type: "line";
316
+ source: JwcEntitySource;
317
+ start: JwcCoord;
318
+ end: JwcCoord;
319
+ attributes: JwcStrokeAttributes;
320
+ }
321
+ export interface JwcArc {
322
+ type: "arc";
323
+ source: JwcEntitySource;
324
+ center: JwcCoord;
325
+ radius: number;
326
+ flatness: number;
327
+ start_angle_degrees: number;
328
+ end_angle_degrees: number;
329
+ tilt_angle_degrees: number;
330
+ is_full_circle: boolean;
331
+ attributes: JwcStrokeAttributes;
332
+ }
333
+ export interface JwcPoint {
334
+ type: "point";
335
+ source: JwcEntitySource;
336
+ position: JwcCoord;
337
+ layer: JwcLayerAddress;
338
+ pen_color: number;
339
+ flags_raw: number;
340
+ }
341
+ export interface JwcTemporaryPointEntity {
342
+ type: "temporary_point";
343
+ source: JwcEntitySource;
344
+ position: JwcCoord;
345
+ layer: JwcLayerAddress;
346
+ array_index: number;
347
+ }
348
+ export interface JwcText {
349
+ type: "text";
350
+ source: JwcEntitySource;
351
+ start: JwcCoord;
352
+ end: JwcCoord;
353
+ layer: JwcLayerAddress;
354
+ text_preset: number;
355
+ content: string;
356
+ raw_content: number[];
357
+ string_source: JwcSection;
358
+ }
359
+ export type JwcEntity = JwcLine | JwcArc | JwcPoint | JwcTemporaryPointEntity | JwcText;
360
+ export interface JwcDocument {
361
+ profile_id: "fixed2421_basic_v1";
362
+ header: JwcHeader;
363
+ entities: JwcEntity[];
364
+ diagnostics: DecodeDiagnostic[];
365
+ entity_counts: Record<string, number>;
366
+ }
367
+ export interface JwcEntityMapping {
368
+ source_entity_index: number;
369
+ source_spans: JwcSection[];
370
+ applied_group_scale: number;
371
+ }
372
+ export interface JwcConversionNotice {
373
+ entity_index: number | null;
374
+ field: string;
375
+ kind: "default" | "derived" | "dxf_limitation";
376
+ detail: string;
377
+ }
378
+ export interface JwcConversionReport {
379
+ coordinate_space: JwcCoordinateSpace;
380
+ rendering_policy: string;
381
+ aci_colors: number[];
382
+ mappings: JwcEntityMapping[];
383
+ notices: JwcConversionNotice[];
384
+ diagnostics: DecodeDiagnostic[];
385
+ }
386
+ export interface JwwCadDocument {
387
+ format: "jww";
388
+ document: JwwDocument;
389
+ }
390
+ export interface JwcCadDocument {
391
+ format: "jwc";
392
+ document: JwcDocument;
393
+ }
394
+ export type CadDocument = JwwCadDocument | JwcCadDocument;
211
395
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -37,6 +37,11 @@ exports.toDxfString = void 0;
37
37
  exports.isJwwFile = isJwwFile;
38
38
  exports.readHeader = readHeader;
39
39
  exports.readDocument = readDocument;
40
+ exports.isJwcFile = isJwcFile;
41
+ exports.detectFileFormat = detectFileFormat;
42
+ exports.readJwcHeader = readJwcHeader;
43
+ exports.readJwcDocument = readJwcDocument;
44
+ exports.readCadDocument = readCadDocument;
40
45
  exports.readDxfDocument = readDxfDocument;
41
46
  exports.readDxfString = readDxfString;
42
47
  const wasm = __importStar(require("../wasm/ezjww_wasm.js"));
@@ -49,13 +54,28 @@ function readHeader(input) {
49
54
  function readDocument(input) {
50
55
  return wasm.readDocument(toUint8Array(input));
51
56
  }
57
+ function isJwcFile(input) {
58
+ return wasm.isJwcFile(toUint8Array(input));
59
+ }
60
+ function detectFileFormat(input) {
61
+ return wasm.detectFileFormat(toUint8Array(input));
62
+ }
63
+ function readJwcHeader(input) {
64
+ return wasm.readJwcHeader(toUint8Array(input));
65
+ }
66
+ function readJwcDocument(input) {
67
+ return wasm.readJwcDocument(toUint8Array(input));
68
+ }
69
+ function readCadDocument(input) {
70
+ return wasm.readCadDocument(toUint8Array(input));
71
+ }
52
72
  function readDxfDocument(input, options = {}) {
53
73
  const normalized = normalizeDxfOptions(options);
54
- return wasm.readDxfDocument(toUint8Array(input), normalized.explodeInserts, normalized.maxBlockNesting);
74
+ return wasm.readDxfDocument(toUint8Array(input), normalized.explodeInserts, normalized.maxBlockNesting, normalized.jwcCoordinates, normalized.textEmScale);
55
75
  }
56
76
  function readDxfString(input, options = {}) {
57
77
  const normalized = normalizeDxfOptions(options);
58
- return wasm.readDxfString(toUint8Array(input), normalized.explodeInserts, normalized.maxBlockNesting);
78
+ return wasm.readDxfString(toUint8Array(input), normalized.explodeInserts, normalized.maxBlockNesting, normalized.jwcCoordinates, normalized.targetVersion, normalized.textEmScale);
59
79
  }
60
80
  exports.toDxfString = readDxfString;
61
81
  function normalizeDxfOptions(options) {
@@ -63,9 +83,24 @@ function normalizeDxfOptions(options) {
63
83
  if (!Number.isInteger(maxBlockNesting) || maxBlockNesting < 1) {
64
84
  throw new RangeError("maxBlockNesting must be an integer >= 1");
65
85
  }
86
+ const textEmScale = options.textEmScale ?? 1;
87
+ if (!Number.isFinite(textEmScale) || textEmScale <= 0) {
88
+ throw new RangeError("textEmScale must be a positive finite number");
89
+ }
90
+ const jwcCoordinates = options.jwcCoordinates ?? "paper_millimeters";
91
+ if (!["paper_millimeters", "model_millimeters"].includes(jwcCoordinates)) {
92
+ throw new RangeError("jwcCoordinates must be paper_millimeters or model_millimeters");
93
+ }
94
+ const targetVersion = options.targetVersion ?? "AC1015";
95
+ if (!["AC1015", "AC1024"].includes(targetVersion)) {
96
+ throw new RangeError("targetVersion must be AC1015 or AC1024");
97
+ }
66
98
  return {
67
99
  explodeInserts: options.explodeInserts ?? false,
68
100
  maxBlockNesting,
101
+ textEmScale,
102
+ jwcCoordinates,
103
+ targetVersion,
69
104
  };
70
105
  }
71
106
  function toUint8Array(input) {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "ezjww",
3
- "version": "0.2.10",
4
- "description": "JWW parser and DXF converter for TypeScript, powered by Rust WebAssembly.",
3
+ "version": "0.3.0",
4
+ "description": "JWW/JWC parser and DXF converter for TypeScript, powered by Rust WebAssembly.",
5
5
  "license": "MIT",
6
6
  "repository": {
7
7
  "type": "git",
@@ -26,12 +26,12 @@
26
26
  "build": "pnpm run build:wasm && pnpm run build:ts",
27
27
  "example:browser:sample": "node -e \"const fs=require('node:fs'); fs.mkdirSync('examples/browser/public/samples', { recursive: true }); fs.copyFileSync('../../jww_samples/Test1.jww', 'examples/browser/public/samples/Test1.jww')\"",
28
28
  "example:browser:wasm": "wasm-pack build ../../crates/ezjww-wasm --target web --out-dir ../../packages/ezjww/examples/browser/src/wasm --out-name ezjww_wasm --release && node -e \"require('node:fs').rmSync('examples/browser/src/wasm/.gitignore', { force: true })\"",
29
- "example:browser:build": "pnpm run example:browser:sample && pnpm run example:browser:wasm && vite build examples/browser",
29
+ "example:browser:build": "pnpm run example:browser:sample && pnpm run example:browser:wasm && tsc -p examples/browser/tsconfig.json && vite build examples/browser",
30
30
  "example:browser:dev": "pnpm run example:browser:sample && pnpm run example:browser:wasm && vite --host 127.0.0.1 examples/browser",
31
31
  "example:browser:preview": "vite preview --host 127.0.0.1 examples/browser",
32
32
  "test": "pnpm run build && vitest run",
33
33
  "test:parity": "node ../../scripts/check-python-ts-parity.mjs",
34
- "typecheck": "tsc -p tsconfig.json --noEmit",
34
+ "typecheck": "tsc -p tsconfig.json --noEmit && tsc -p tsconfig.tests.json",
35
35
  "prepack": "pnpm run build"
36
36
  },
37
37
  "keywords": [
@@ -1,12 +1,22 @@
1
1
  /* tslint:disable */
2
2
  /* eslint-disable */
3
3
 
4
+ export function detectFileFormat(data: Uint8Array): any;
5
+
6
+ export function isJwcFile(data: Uint8Array): boolean;
7
+
4
8
  export function isJwwFile(data: Uint8Array): boolean;
5
9
 
10
+ export function readCadDocument(data: Uint8Array): any;
11
+
6
12
  export function readDocument(data: Uint8Array): any;
7
13
 
8
- export function readDxfDocument(data: Uint8Array, explode_inserts: boolean, max_block_nesting: number): any;
14
+ export function readDxfDocument(data: Uint8Array, explode_inserts: boolean, max_block_nesting: number, jwc_coordinates?: string | null, text_em_scale?: number | null): any;
9
15
 
10
- export function readDxfString(data: Uint8Array, explode_inserts: boolean, max_block_nesting: number): string;
16
+ export function readDxfString(data: Uint8Array, explode_inserts: boolean, max_block_nesting: number, jwc_coordinates?: string | null, target_version?: string | null, text_em_scale?: number | null): string;
11
17
 
12
18
  export function readHeader(data: Uint8Array): any;
19
+
20
+ export function readJwcDocument(data: Uint8Array): any;
21
+
22
+ export function readJwcHeader(data: Uint8Array): any;
@@ -1,5 +1,32 @@
1
1
  /* @ts-self-types="./ezjww_wasm.d.ts" */
2
2
 
3
+ /**
4
+ * @param {Uint8Array} data
5
+ * @returns {any}
6
+ */
7
+ function detectFileFormat(data) {
8
+ const ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_malloc);
9
+ const len0 = WASM_VECTOR_LEN;
10
+ const ret = wasm.detectFileFormat(ptr0, len0);
11
+ if (ret[2]) {
12
+ throw takeFromExternrefTable0(ret[1]);
13
+ }
14
+ return takeFromExternrefTable0(ret[0]);
15
+ }
16
+ exports.detectFileFormat = detectFileFormat;
17
+
18
+ /**
19
+ * @param {Uint8Array} data
20
+ * @returns {boolean}
21
+ */
22
+ function isJwcFile(data) {
23
+ const ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_malloc);
24
+ const len0 = WASM_VECTOR_LEN;
25
+ const ret = wasm.isJwcFile(ptr0, len0);
26
+ return ret !== 0;
27
+ }
28
+ exports.isJwcFile = isJwcFile;
29
+
3
30
  /**
4
31
  * @param {Uint8Array} data
5
32
  * @returns {boolean}
@@ -12,6 +39,21 @@ function isJwwFile(data) {
12
39
  }
13
40
  exports.isJwwFile = isJwwFile;
14
41
 
42
+ /**
43
+ * @param {Uint8Array} data
44
+ * @returns {any}
45
+ */
46
+ function readCadDocument(data) {
47
+ const ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_malloc);
48
+ const len0 = WASM_VECTOR_LEN;
49
+ const ret = wasm.readCadDocument(ptr0, len0);
50
+ if (ret[2]) {
51
+ throw takeFromExternrefTable0(ret[1]);
52
+ }
53
+ return takeFromExternrefTable0(ret[0]);
54
+ }
55
+ exports.readCadDocument = readCadDocument;
56
+
15
57
  /**
16
58
  * @param {Uint8Array} data
17
59
  * @returns {any}
@@ -31,12 +73,16 @@ exports.readDocument = readDocument;
31
73
  * @param {Uint8Array} data
32
74
  * @param {boolean} explode_inserts
33
75
  * @param {number} max_block_nesting
76
+ * @param {string | null} [jwc_coordinates]
77
+ * @param {number | null} [text_em_scale]
34
78
  * @returns {any}
35
79
  */
36
- function readDxfDocument(data, explode_inserts, max_block_nesting) {
80
+ function readDxfDocument(data, explode_inserts, max_block_nesting, jwc_coordinates, text_em_scale) {
37
81
  const ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_malloc);
38
82
  const len0 = WASM_VECTOR_LEN;
39
- const ret = wasm.readDxfDocument(ptr0, len0, explode_inserts, max_block_nesting);
83
+ var ptr1 = isLikeNone(jwc_coordinates) ? 0 : passStringToWasm0(jwc_coordinates, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
84
+ var len1 = WASM_VECTOR_LEN;
85
+ const ret = wasm.readDxfDocument(ptr0, len0, explode_inserts, max_block_nesting, ptr1, len1, !isLikeNone(text_em_scale), isLikeNone(text_em_scale) ? 0 : text_em_scale);
40
86
  if (ret[2]) {
41
87
  throw takeFromExternrefTable0(ret[1]);
42
88
  }
@@ -48,26 +94,33 @@ exports.readDxfDocument = readDxfDocument;
48
94
  * @param {Uint8Array} data
49
95
  * @param {boolean} explode_inserts
50
96
  * @param {number} max_block_nesting
97
+ * @param {string | null} [jwc_coordinates]
98
+ * @param {string | null} [target_version]
99
+ * @param {number | null} [text_em_scale]
51
100
  * @returns {string}
52
101
  */
53
- function readDxfString(data, explode_inserts, max_block_nesting) {
54
- let deferred3_0;
55
- let deferred3_1;
102
+ function readDxfString(data, explode_inserts, max_block_nesting, jwc_coordinates, target_version, text_em_scale) {
103
+ let deferred5_0;
104
+ let deferred5_1;
56
105
  try {
57
106
  const ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_malloc);
58
107
  const len0 = WASM_VECTOR_LEN;
59
- const ret = wasm.readDxfString(ptr0, len0, explode_inserts, max_block_nesting);
60
- var ptr2 = ret[0];
61
- var len2 = ret[1];
108
+ var ptr1 = isLikeNone(jwc_coordinates) ? 0 : passStringToWasm0(jwc_coordinates, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
109
+ var len1 = WASM_VECTOR_LEN;
110
+ var ptr2 = isLikeNone(target_version) ? 0 : passStringToWasm0(target_version, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
111
+ var len2 = WASM_VECTOR_LEN;
112
+ const ret = wasm.readDxfString(ptr0, len0, explode_inserts, max_block_nesting, ptr1, len1, ptr2, len2, !isLikeNone(text_em_scale), isLikeNone(text_em_scale) ? 0 : text_em_scale);
113
+ var ptr4 = ret[0];
114
+ var len4 = ret[1];
62
115
  if (ret[3]) {
63
- ptr2 = 0; len2 = 0;
116
+ ptr4 = 0; len4 = 0;
64
117
  throw takeFromExternrefTable0(ret[2]);
65
118
  }
66
- deferred3_0 = ptr2;
67
- deferred3_1 = len2;
68
- return getStringFromWasm0(ptr2, len2);
119
+ deferred5_0 = ptr4;
120
+ deferred5_1 = len4;
121
+ return getStringFromWasm0(ptr4, len4);
69
122
  } finally {
70
- wasm.__wbindgen_free(deferred3_0, deferred3_1, 1);
123
+ wasm.__wbindgen_free(deferred5_0, deferred5_1, 1);
71
124
  }
72
125
  }
73
126
  exports.readDxfString = readDxfString;
@@ -86,6 +139,36 @@ function readHeader(data) {
86
139
  return takeFromExternrefTable0(ret[0]);
87
140
  }
88
141
  exports.readHeader = readHeader;
142
+
143
+ /**
144
+ * @param {Uint8Array} data
145
+ * @returns {any}
146
+ */
147
+ function readJwcDocument(data) {
148
+ const ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_malloc);
149
+ const len0 = WASM_VECTOR_LEN;
150
+ const ret = wasm.readJwcDocument(ptr0, len0);
151
+ if (ret[2]) {
152
+ throw takeFromExternrefTable0(ret[1]);
153
+ }
154
+ return takeFromExternrefTable0(ret[0]);
155
+ }
156
+ exports.readJwcDocument = readJwcDocument;
157
+
158
+ /**
159
+ * @param {Uint8Array} data
160
+ * @returns {any}
161
+ */
162
+ function readJwcHeader(data) {
163
+ const ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_malloc);
164
+ const len0 = WASM_VECTOR_LEN;
165
+ const ret = wasm.readJwcHeader(ptr0, len0);
166
+ if (ret[2]) {
167
+ throw takeFromExternrefTable0(ret[1]);
168
+ }
169
+ return takeFromExternrefTable0(ret[0]);
170
+ }
171
+ exports.readJwcHeader = readJwcHeader;
89
172
  function __wbg_get_imports() {
90
173
  const import0 = {
91
174
  __proto__: null,
@@ -180,6 +263,10 @@ function getUint8ArrayMemory0() {
180
263
  return cachedUint8ArrayMemory0;
181
264
  }
182
265
 
266
+ function isLikeNone(x) {
267
+ return x === undefined || x === null;
268
+ }
269
+
183
270
  function passArray8ToWasm0(arg, malloc) {
184
271
  const ptr = malloc(arg.length * 1, 1) >>> 0;
185
272
  getUint8ArrayMemory0().set(arg, ptr / 1);
Binary file
@@ -1,11 +1,16 @@
1
1
  /* tslint:disable */
2
2
  /* eslint-disable */
3
3
  export const memory: WebAssembly.Memory;
4
+ export const detectFileFormat: (a: number, b: number) => [number, number, number];
5
+ export const isJwcFile: (a: number, b: number) => number;
4
6
  export const isJwwFile: (a: number, b: number) => number;
7
+ export const readCadDocument: (a: number, b: number) => [number, number, number];
5
8
  export const readDocument: (a: number, b: number) => [number, number, number];
6
- export const readDxfDocument: (a: number, b: number, c: number, d: number) => [number, number, number];
7
- export const readDxfString: (a: number, b: number, c: number, d: number) => [number, number, number, number];
9
+ export const readDxfDocument: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number, number];
10
+ export const readDxfString: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => [number, number, number, number];
8
11
  export const readHeader: (a: number, b: number) => [number, number, number];
12
+ export const readJwcDocument: (a: number, b: number) => [number, number, number];
13
+ export const readJwcHeader: (a: number, b: number) => [number, number, number];
9
14
  export const __wbindgen_malloc: (a: number, b: number) => number;
10
15
  export const __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
11
16
  export const __wbindgen_externrefs: WebAssembly.Table;