ezjww 0.2.13 → 0.3.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.
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,103 @@
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 profiles are `fixed2421_basic_v1` and
59
+ `fixed2389_basic_v1` (two header layouts, one record layout). They cover lines,
60
+ circles, circular and elliptical arcs, rotated ellipses, CP932 text, points, and
61
+ auxiliary points. Some curve sequences are represented as line segments. Settings
62
+ and attribute bits outside the reference corpus are retained and reported as
63
+ `JWC_*` diagnostics. Other JWC layouts are not covered by a general compatibility
64
+ guarantee.
65
+
66
+ The source document retains original coordinates, names, attributes, and byte
67
+ spans. `header.source_version` is currently `null`. DXF defaults to paper
68
+ millimeters centered on the sheet with +Y up; `model_millimeters` applies each
69
+ entity's own layer-group scale once.
70
+
71
+ DXF output preserves millimeter units and TEXT width factors. Rendering defaults
72
+ for the palette, dashes, and font, along with text-spacing limits, are reported in
73
+ `jwc_conversion_report.notices`. Unknown layouts or attributes, partial ellipses,
74
+ and inconsistent string pools throw errors with byte offsets. Malformed JWC does
75
+ not return a partial document; CP932 replacement decoding produces diagnostics.
76
+
77
+ See the [API reference](https://github.com/monozukuri-ai/ezjww/blob/main/docs/JWC_API.md),
78
+ [JWC support and limits](https://github.com/monozukuri-ai/ezjww/blob/main/docs/JWC_FORMAT.md),
79
+ and [diagnostic codes](https://github.com/monozukuri-ai/ezjww/blob/main/docs/DIAGNOSTICS.md).
80
+ Repository documentation describes the source version; use documentation at your
81
+ installed package's release tag when working with an older release.
23
82
 
24
83
  ## Browser example
25
84
 
85
+ The npm entry point targets Node.js. The repository includes a browser example
86
+ that builds the Rust WASM module for the web and parses selected files locally.
87
+ For the browser build, use Node.js 22.12+ (or 20.19+ on the 20.x line), Rust, and
88
+ pnpm. From a checkout:
89
+
26
90
  ```bash
27
91
  cd packages/ezjww
28
92
  pnpm install
29
93
  pnpm run example:browser:dev
30
94
  ```
31
95
 
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.
96
+ The app displays layers, source JSON, diagnostics, and previews, and can download
97
+ converted DXF. For JWC, it offers paper/model coordinates and conversion notices.
98
+ Invisible JWC layers are hidden; fonts are substituted.
99
+ See the [browser guide](https://github.com/monozukuri-ai/ezjww/blob/main/packages/ezjww/examples/browser/README.md).
100
+
101
+ ## License
102
+
103
+ [MIT](https://github.com/monozukuri-ai/ezjww/blob/main/LICENSE)
package/dist/index.d.ts CHANGED
@@ -134,12 +134,19 @@ export interface TruncationDiagnosticDetails {
134
134
  parsed_entities: number;
135
135
  error: string;
136
136
  }
137
+ /** JWC values outside the verified reference corpus that were retained. */
138
+ export interface UnverifiedDiagnosticDetails {
139
+ field: string;
140
+ byte_offset: number;
141
+ count: number;
142
+ values: string[];
143
+ }
137
144
  export interface DecodeDiagnostic {
138
145
  code: string;
139
146
  severity: "info" | "warning" | "error";
140
147
  message: string;
141
148
  action: string;
142
- details: DecodeDiagnosticDetails | TruncationDiagnosticDetails;
149
+ details: DecodeDiagnosticDetails | TruncationDiagnosticDetails | UnverifiedDiagnosticDetails;
143
150
  }
144
151
  export interface JwwDocument {
145
152
  header: JwwHeader;
@@ -179,6 +186,7 @@ export interface DxfEntity {
179
186
  x?: number;
180
187
  y?: number;
181
188
  height?: number;
189
+ width_factor?: number;
182
190
  rotation?: number;
183
191
  content?: string;
184
192
  style?: string;
@@ -201,16 +209,198 @@ export interface DxfDocument {
201
209
  entities: DxfEntity[];
202
210
  blocks: DxfBlock[];
203
211
  unsupported_entities: string[];
212
+ jwc_conversion_report?: JwcConversionReport;
213
+ text_width_factors?: number[];
204
214
  }
205
215
  export interface DxfOptions {
206
216
  explodeInserts?: boolean;
207
217
  maxBlockNesting?: number;
218
+ textEmScale?: number;
219
+ jwcCoordinates?: JwcCoordinateSpace;
220
+ targetVersion?: "AC1015" | "AC1024";
208
221
  }
209
222
  export type JwwInput = Uint8Array | ArrayBuffer | ArrayBufferView;
210
223
  export declare function isJwwFile(input: JwwInput): boolean;
211
224
  export declare function readHeader(input: JwwInput): JwwHeader;
212
225
  export declare function readDocument(input: JwwInput): JwwDocument;
226
+ export type CadInput = JwwInput;
227
+ export declare function isJwcFile(input: CadInput): boolean;
228
+ export declare function detectFileFormat(input: CadInput): "jww" | "jwc" | null;
229
+ export declare function readJwcHeader(input: CadInput): JwcHeader;
230
+ export declare function readJwcDocument(input: CadInput): JwcDocument;
231
+ export declare function readCadDocument(input: CadInput): CadDocument;
213
232
  export declare function readDxfDocument(input: JwwInput, options?: DxfOptions): DxfDocument;
214
233
  export declare function readDxfString(input: JwwInput, options?: DxfOptions): string;
215
234
  export declare const toDxfString: typeof readDxfString;
235
+ export type JwcCoordinateSpace = "paper_millimeters" | "model_millimeters";
236
+ export interface JwcSection {
237
+ byte_offset: number;
238
+ byte_length: number;
239
+ }
240
+ export interface JwcLayout {
241
+ fixed_header: JwcSection;
242
+ string_pool_start: number;
243
+ lines: JwcSection;
244
+ arcs: JwcSection;
245
+ text_records: JwcSection;
246
+ string_pool: JwcSection;
247
+ points: JwcSection;
248
+ names: JwcSection;
249
+ }
250
+ export interface JwcName {
251
+ text: string;
252
+ raw_bytes: number[];
253
+ byte_offset: number;
254
+ }
255
+ export interface JwcLayerState {
256
+ editable: boolean;
257
+ visible: boolean;
258
+ protected: boolean;
259
+ }
260
+ export interface JwcLayer {
261
+ state: JwcLayerState;
262
+ name: JwcName;
263
+ }
264
+ export interface JwcLayerGroup {
265
+ state: JwcLayerState;
266
+ scale: number;
267
+ write_layer: number;
268
+ name: JwcName;
269
+ layers: JwcLayer[];
270
+ }
271
+ export interface JwcTextPreset {
272
+ pen_color: number;
273
+ width_tenths: number;
274
+ height_tenths: number;
275
+ spacing_tenths: number;
276
+ }
277
+ export interface JwcTemporaryPoint {
278
+ array_index: number;
279
+ raw_x: number;
280
+ raw_y: number;
281
+ layer_group: number;
282
+ layer: number;
283
+ }
284
+ export interface JwcEntityCounts {
285
+ lines: number;
286
+ arcs: number;
287
+ texts: number;
288
+ points: number;
289
+ temporary_points: number;
290
+ }
291
+ export interface JwcHeader {
292
+ profile_id: "fixed2421_csv32_v1" | "fixed2389_u16scale_v1";
293
+ fixed_header_size: number;
294
+ source_version: string | null;
295
+ counts: JwcEntityCounts;
296
+ paper: "A0" | "A1" | "A2" | "A3" | "A4";
297
+ coordinate_extent: number;
298
+ write_layer_group: number;
299
+ write_layer: number;
300
+ layer_groups: JwcLayerGroup[];
301
+ text_presets: JwcTextPreset[];
302
+ temporary_points: JwcTemporaryPoint[];
303
+ layout: JwcLayout;
304
+ raw_fixed_header: number[];
305
+ diagnostics: DecodeDiagnostic[];
306
+ }
307
+ export interface JwcLayerAddress {
308
+ group: number;
309
+ layer: number;
310
+ }
311
+ export interface JwcCoord {
312
+ x: number;
313
+ y: number;
314
+ }
315
+ export interface JwcEntitySource {
316
+ spans: JwcSection[];
317
+ raw_bytes: number[];
318
+ }
319
+ export interface JwcStrokeAttributes {
320
+ pen_style: number;
321
+ pen_color: number;
322
+ layer: JwcLayerAddress;
323
+ flags_raw: number;
324
+ }
325
+ export interface JwcLine {
326
+ type: "line";
327
+ source: JwcEntitySource;
328
+ start: JwcCoord;
329
+ end: JwcCoord;
330
+ attributes: JwcStrokeAttributes;
331
+ }
332
+ export interface JwcArc {
333
+ type: "arc";
334
+ source: JwcEntitySource;
335
+ center: JwcCoord;
336
+ radius: number;
337
+ flatness: number;
338
+ start_angle_degrees: number;
339
+ end_angle_degrees: number;
340
+ tilt_angle_degrees: number;
341
+ is_full_circle: boolean;
342
+ attributes: JwcStrokeAttributes;
343
+ }
344
+ export interface JwcPoint {
345
+ type: "point";
346
+ source: JwcEntitySource;
347
+ position: JwcCoord;
348
+ layer: JwcLayerAddress;
349
+ pen_color: number;
350
+ flags_raw: number;
351
+ }
352
+ export interface JwcTemporaryPointEntity {
353
+ type: "temporary_point";
354
+ source: JwcEntitySource;
355
+ position: JwcCoord;
356
+ layer: JwcLayerAddress;
357
+ array_index: number;
358
+ }
359
+ export interface JwcText {
360
+ type: "text";
361
+ source: JwcEntitySource;
362
+ start: JwcCoord;
363
+ end: JwcCoord;
364
+ layer: JwcLayerAddress;
365
+ text_preset: number;
366
+ content: string;
367
+ raw_content: number[];
368
+ string_source: JwcSection;
369
+ }
370
+ export type JwcEntity = JwcLine | JwcArc | JwcPoint | JwcTemporaryPointEntity | JwcText;
371
+ export interface JwcDocument {
372
+ profile_id: "fixed2421_basic_v1" | "fixed2389_basic_v1";
373
+ header: JwcHeader;
374
+ entities: JwcEntity[];
375
+ diagnostics: DecodeDiagnostic[];
376
+ entity_counts: Record<string, number>;
377
+ }
378
+ export interface JwcEntityMapping {
379
+ source_entity_index: number;
380
+ source_spans: JwcSection[];
381
+ applied_group_scale: number;
382
+ }
383
+ export interface JwcConversionNotice {
384
+ entity_index: number | null;
385
+ field: string;
386
+ kind: "default" | "derived" | "dxf_limitation";
387
+ detail: string;
388
+ }
389
+ export interface JwcConversionReport {
390
+ coordinate_space: JwcCoordinateSpace;
391
+ rendering_policy: string;
392
+ aci_colors: number[];
393
+ mappings: JwcEntityMapping[];
394
+ notices: JwcConversionNotice[];
395
+ diagnostics: DecodeDiagnostic[];
396
+ }
397
+ export interface JwwCadDocument {
398
+ format: "jww";
399
+ document: JwwDocument;
400
+ }
401
+ export interface JwcCadDocument {
402
+ format: "jwc";
403
+ document: JwcDocument;
404
+ }
405
+ export type CadDocument = JwwCadDocument | JwcCadDocument;
216
406
  //# 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.13",
4
- "description": "JWW parser and DXF converter for TypeScript, powered by Rust WebAssembly.",
3
+ "version": "0.3.1",
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;
package/wasm/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "ezjww-wasm",
3
3
  "description": "WebAssembly bindings for ezjww.",
4
- "version": "0.2.9",
4
+ "version": "0.2.10",
5
5
  "license": "MIT",
6
6
  "files": [
7
7
  "ezjww_wasm_bg.wasm",