xtalforge-wasm 1.0.0-rc.1 → 1.1.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/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "Jose Ivan Gonzalez <jigonzalez930209@gmail.com>"
6
6
  ],
7
7
  "description": "WebAssembly bindings for xtalforge.",
8
- "version": "1.0.0-rc.1",
8
+ "version": "1.1.0",
9
9
  "license": "MIT OR Apache-2.0",
10
10
  "repository": {
11
11
  "type": "git",
@@ -147,6 +147,15 @@ export function angle(text: string, i: number, j: number, k: number): number;
147
147
  */
148
148
  export function asymmetrize_info(text: string, symprec: number): any;
149
149
 
150
+ /**
151
+ * Detects the symmetry and returns the asymmetric unit as CIF.
152
+ *
153
+ * # Errors
154
+ *
155
+ * Returns a JavaScript `Error` for invalid text or a failed search.
156
+ */
157
+ export function asymmetrize_text(text: string, symprec: number): string;
158
+
150
159
  /**
151
160
  * Perceives the bonds of a structure.
152
161
  *
@@ -177,6 +186,15 @@ export function brillouin_zone(text: string): any;
177
186
  */
178
187
  export function build_c20_info(): any;
179
188
 
189
+ /**
190
+ * Builds C20 and returns it as CIF.
191
+ *
192
+ * # Errors
193
+ *
194
+ * Returns a JavaScript `Error` when the embedded data is invalid.
195
+ */
196
+ export function build_c20_text(): string;
197
+
180
198
  /**
181
199
  * Builds C60 and returns its summary.
182
200
  *
@@ -186,6 +204,15 @@ export function build_c20_info(): any;
186
204
  */
187
205
  export function build_c60_info(): any;
188
206
 
207
+ /**
208
+ * Builds C60 and returns it as CIF.
209
+ *
210
+ * # Errors
211
+ *
212
+ * Returns a JavaScript `Error` when the embedded data is invalid.
213
+ */
214
+ export function build_c60_text(): string;
215
+
189
216
  /**
190
217
  * Builds a disordered carbon from a recipe.
191
218
  *
@@ -196,6 +223,18 @@ export function build_c60_info(): any;
196
223
  */
197
224
  export function build_carbon_recipe_info(net: string, repeat_x: number, repeat_y: number, repeat_z: number, density: number, radius_ratio: number, coverage: number, seed: number, hydrogen: number, fluorine: number, oxygen: number): any;
198
225
 
226
+ /**
227
+ * Builds a disordered carbon from a net recipe and returns it as CIF.
228
+ *
229
+ * The other recipe fields keep their defaults; `build_carbon_recipe_info`
230
+ * exposes the full recipe and its statistics.
231
+ *
232
+ * # Errors
233
+ *
234
+ * Returns a JavaScript `Error` for an unknown net or invalid options.
235
+ */
236
+ export function build_carbon_text(net: string, repeat: number, density: number, seed: number): string;
237
+
199
238
  /**
200
239
  * Builds a graphene sheet and returns its summary.
201
240
  *
@@ -205,6 +244,15 @@ export function build_carbon_recipe_info(net: string, repeat_x: number, repeat_y
205
244
  */
206
245
  export function build_graphene_info(nx: number, ny: number, layers: number, interlayer: number, vacuum: number): any;
207
246
 
247
+ /**
248
+ * Builds a graphene sheet and returns it as CIF.
249
+ *
250
+ * # Errors
251
+ *
252
+ * Returns a JavaScript `Error` for invalid repeats or spacing.
253
+ */
254
+ export function build_graphene_text(nx: number, ny: number, layers: number, interlayer: number, vacuum: number): string;
255
+
208
256
  /**
209
257
  * Builds a framework and returns its summary and warnings.
210
258
  *
@@ -214,6 +262,15 @@ export function build_graphene_info(nx: number, ny: number, layers: number, inte
214
262
  */
215
263
  export function build_mof_info(topology: string, node: string, linker: string): any;
216
264
 
265
+ /**
266
+ * Builds a MOF and returns it as CIF.
267
+ *
268
+ * # Errors
269
+ *
270
+ * Returns a JavaScript `Error` for an unknown topology or block.
271
+ */
272
+ export function build_mof_text(topology: string, node: string, linker: string): string;
273
+
217
274
  /**
218
275
  * Builds a nanotube and returns its summary.
219
276
  *
@@ -223,6 +280,60 @@ export function build_mof_info(topology: string, node: string, linker: string):
223
280
  */
224
281
  export function build_nanotube_info(n: number, m: number, length: number, vacuum: number): any;
225
282
 
283
+ /**
284
+ * Builds a nanotube and returns it as CIF.
285
+ *
286
+ * # Errors
287
+ *
288
+ * Returns a JavaScript `Error` for a bad chiral vector or length.
289
+ */
290
+ export function build_nanotube_text(n: number, m: number, length: number, vacuum: number): string;
291
+
292
+ /**
293
+ * Builds a polymer chain and returns it as CIF.
294
+ *
295
+ * # Errors
296
+ *
297
+ * Returns a JavaScript `Error` for an invalid SMILES or density.
298
+ */
299
+ export function build_polymer_text(smiles: string, monomers: number, density: number): string;
300
+
301
+ /**
302
+ * Builds a honeycomb nanoribbon and returns it as CIF.
303
+ *
304
+ * # Errors
305
+ *
306
+ * Returns a JavaScript `Error` for invalid dimensions.
307
+ */
308
+ export function build_ribbon_text(width: number, length: number, vacuum: number): string;
309
+
310
+ /**
311
+ * Builds a Schwarz P carbon model and returns it as CIF.
312
+ *
313
+ * # Errors
314
+ *
315
+ * Returns a JavaScript `Error` for invalid options.
316
+ */
317
+ export function build_schwarzite_text(samples: number, cell: number, isovalue: number): string;
318
+
319
+ /**
320
+ * Builds two twisted graphene layers and returns them as CIF.
321
+ *
322
+ * # Errors
323
+ *
324
+ * Returns a JavaScript `Error` for invalid repeats or angle.
325
+ */
326
+ export function build_twist_text(n: number, m: number, theta: number, layers: number): string;
327
+
328
+ /**
329
+ * Builds a gyroid ZTC carbon model and returns it as CIF.
330
+ *
331
+ * # Errors
332
+ *
333
+ * Returns a JavaScript `Error` for invalid options.
334
+ */
335
+ export function build_ztc_text(samples: number, cell: number, isovalue: number): string;
336
+
226
337
  /**
227
338
  * Volume of a cell in cubic Angstrom.
228
339
  *
@@ -242,6 +353,15 @@ export function cell_volume(a: number, b: number, c: number, alpha: number, beta
242
353
  */
243
354
  export function change_setting_info(text: string, hall_number: number): any;
244
355
 
356
+ /**
357
+ * Changes the space-group setting and returns the result as CIF.
358
+ *
359
+ * # Errors
360
+ *
361
+ * Returns a JavaScript `Error` for invalid text or a Hall number out of range.
362
+ */
363
+ export function change_setting_text(text: string, hall_number: number): string;
364
+
245
365
  /**
246
366
  * Converts structure text to another format and returns the file contents.
247
367
  *
@@ -298,7 +418,7 @@ export function distance(text: string, i: number, j: number): number;
298
418
  export function element_info(input: string): any;
299
419
 
300
420
  /**
301
- * Returns QEq or EQeq charges.
421
+ * Returns QEq, EQeq or EEQ2019 charges (`qeq`, `eqeq`, `eeq`).
302
422
  *
303
423
  * # Errors
304
424
  *
@@ -333,6 +453,15 @@ export function ff_ir_info(text: string, fwhm: number): any;
333
453
  */
334
454
  export function ff_optimize_info(text: string, minimizer: string, max_steps: number, force_tolerance: number, cell: boolean): any;
335
455
 
456
+ /**
457
+ * Relaxes a structure and returns the result as CIF.
458
+ *
459
+ * # Errors
460
+ *
461
+ * Returns a JavaScript `Error` for invalid text or an unknown minimizer.
462
+ */
463
+ export function ff_optimize_text(text: string, minimizer: string, max_steps: number, force_tolerance: number, cell: boolean): string;
464
+
336
465
  /**
337
466
  * Runs the preparation pipeline and returns its report.
338
467
  *
@@ -390,6 +519,15 @@ export function groups(text: string): Array<any>;
390
519
  */
391
520
  export function hydrogens_info(text: string, distance: number): any;
392
521
 
522
+ /**
523
+ * Adds hydrogens at the missing valences and returns the result as CIF.
524
+ *
525
+ * # Errors
526
+ *
527
+ * Returns a JavaScript `Error` for invalid text or a bad distance.
528
+ */
529
+ export function hydrogens_text(text: string, distance: number): string;
530
+
393
531
  /**
394
532
  * Returns the Bravais type and band path of a structure.
395
533
  *
@@ -456,6 +594,15 @@ export function limits_check(profile: string, budget: string, estimate: number):
456
594
  */
457
595
  export function lower_to_subgroup_info(text: string, subgroup: number, tolerance: number): any;
458
596
 
597
+ /**
598
+ * Lowers a structure to a subgroup and returns it as CIF.
599
+ *
600
+ * # Errors
601
+ *
602
+ * Returns a JavaScript `Error` for invalid text or an unknown subgroup.
603
+ */
604
+ export function lower_to_subgroup_text(text: string, subgroup_number: number, tolerance: number): string;
605
+
459
606
  /**
460
607
  * Detects the collinear magnetic space group (experimental).
461
608
  *
@@ -579,6 +726,18 @@ export function powder_cells_info(number: number): any;
579
726
  */
580
727
  export function powder_index_info(pattern_text: string, wavelength: number, max_index: number, tolerance: number): any;
581
728
 
729
+ /**
730
+ * Le Bail extraction with the default options.
731
+ *
732
+ * Returns `{ positions, intensities, intensity_esds, r_factor, rwp,
733
+ * chi_squared }`, the same fields as `xtalforge --json powder lebail`.
734
+ *
735
+ * # Errors
736
+ *
737
+ * Returns a JavaScript `Error` for invalid structure or pattern text.
738
+ */
739
+ export function powder_lebail_info(text: string, pattern_text: string): any;
740
+
582
741
  /**
583
742
  * Fits a Pawley model: free intensities, cell, zero shift and width model.
584
743
  *
@@ -588,6 +747,17 @@ export function powder_index_info(pattern_text: string, wavelength: number, max_
588
747
  */
589
748
  export function powder_pawley_info(text: string, pattern_text: string, profile: string): any;
590
749
 
750
+ /**
751
+ * Pawley fit that can also refine the size (constant) and strain
752
+ * (`tan theta`) width terms, like Python `powder_pawley(refine_size=...,
753
+ * refine_strain=...)`.
754
+ *
755
+ * # Errors
756
+ *
757
+ * Returns a JavaScript `Error` for invalid text or a failed fit.
758
+ */
759
+ export function powder_pawley_width_info(text: string, pattern_text: string, profile: string, refine_size: boolean, refine_strain: boolean): any;
760
+
591
761
  /**
592
762
  * Refines a phase with the McCusker stages.
593
763
  *
@@ -609,6 +779,15 @@ export function powder_refine_info(text: string, pattern_text: string, refine_po
609
779
  */
610
780
  export function primitive_info(text: string, symprec: number): any;
611
781
 
782
+ /**
783
+ * Builds the primitive cell and returns it as CIF.
784
+ *
785
+ * # Errors
786
+ *
787
+ * Returns a JavaScript `Error` for invalid text or a failed search.
788
+ */
789
+ export function primitive_text(text: string, symprec: number): string;
790
+
612
791
  /**
613
792
  * Reads `.xtalproj` bytes and returns the structure summary.
614
793
  *
@@ -673,6 +852,15 @@ export function read_structure(text: string, format_hint: string): any;
673
852
  */
674
853
  export function reduce_info(text: string, algorithm: string): any;
675
854
 
855
+ /**
856
+ * Reduces a structure and returns it as CIF.
857
+ *
858
+ * # Errors
859
+ *
860
+ * Returns a JavaScript `Error` for invalid text or an unknown algorithm.
861
+ */
862
+ export function reduce_text(text: string, algorithm: string): string;
863
+
676
864
  /**
677
865
  * Builds a honeycomb nanoribbon with vacuum.
678
866
  *
@@ -698,6 +886,26 @@ export function rietx_inventory_info(): any;
698
886
  */
699
887
  export function rings(text: string, max_size: number): Array<any>;
700
888
 
889
+ /**
890
+ * Builds the full scene geometry for a structure.
891
+ *
892
+ * The object has three arrays:
893
+ *
894
+ * - `atoms`: `element`, `position` (Cartesian Angstrom), `radius`, `color`
895
+ * (0-255 RGB), `index` in the P1 cell and `hidden`.
896
+ * - `bonds`: `i`, `j`, `start`, `end`, `radius`, `color` and `order`.
897
+ * - `cell_edges`: pairs of Cartesian endpoints.
898
+ *
899
+ * `settings` repeats the sanitized style, atom scale, bond radius, cell and
900
+ * axes flags and background colour used to build the frame.
901
+ *
902
+ * # Errors
903
+ *
904
+ * Returns a JavaScript `Error` with a stable `code` property for invalid
905
+ * structure text or an unknown draw style.
906
+ */
907
+ export function scene_data(text: string, style: string, scale: number): any;
908
+
701
909
  /**
702
910
  * Summarizes a scene for the given draw style.
703
911
  *
@@ -728,6 +936,15 @@ export function schwarzite_info(samples: number, cell: number, isovalue: number)
728
936
  */
729
937
  export function set_space_group_info(text: string, symbol: string, mode: string): any;
730
938
 
939
+ /**
940
+ * Applies a space group and returns the result as CIF.
941
+ *
942
+ * # Errors
943
+ *
944
+ * Returns a JavaScript `Error` for invalid text, an unknown symbol or mode.
945
+ */
946
+ export function set_space_group_text(text: string, symbol: string, mode: string): string;
947
+
731
948
  /**
732
949
  * Cuts a slab and returns its summary object.
733
950
  *
@@ -760,6 +977,15 @@ export function slab_text(text: string, h: number, k: number, l: number, layers:
760
977
  */
761
978
  export function standardize_info(text: string, symprec: number): any;
762
979
 
980
+ /**
981
+ * Standardizes a structure and returns it as CIF.
982
+ *
983
+ * # Errors
984
+ *
985
+ * Returns a JavaScript `Error` for invalid text or a failed search.
986
+ */
987
+ export function standardize_text(text: string, symprec: number): string;
988
+
763
989
  /**
764
990
  * Summary of a structure JSON document.
765
991
  *
@@ -811,6 +1037,15 @@ export function supercell_text(text: string, na: number, nb: number, nc: number)
811
1037
  */
812
1038
  export function to_p1_info(text: string): any;
813
1039
 
1040
+ /**
1041
+ * Expands a structure to P1 and returns it as CIF.
1042
+ *
1043
+ * # Errors
1044
+ *
1045
+ * Returns a JavaScript `Error` for invalid text or an empty structure.
1046
+ */
1047
+ export function to_p1_text(text: string): string;
1048
+
814
1049
  /**
815
1050
  * Detects across the default tolerance ladder.
816
1051
  *
package/xtalforge_wasm.js CHANGED
@@ -5,5 +5,5 @@ import { __wbg_set_wasm } from "./xtalforge_wasm_bg.js";
5
5
  __wbg_set_wasm(wasm);
6
6
  wasm.__wbindgen_start();
7
7
  export {
8
- AgentSession, WasmDocument, agent_capabilities, agent_run, agent_verbs, angle, asymmetrize_info, bonds, brillouin_zone, build_c20_info, build_c60_info, build_carbon_recipe_info, build_graphene_info, build_mof_info, build_nanotube_info, cell_volume, change_setting_info, convert_structure, detect_symmetry, diagnose_info, distance, element_info, ff_charges_info, ff_energy, ff_ir_info, ff_optimize_info, ff_prepare_info, ff_thermo_info, ff_types_info, ff_vibrations_info, groups, hydrogens_info, kpath_info, lattice_info, lattice_minimum_image, layer_group_info, limits_bounds, limits_check, lower_to_subgroup_info, magnetic_group_info, mesh_stl, mof_blocks_info, mof_topologies_info, neighbors, net_invariants_info, param_schema, pointgroup_info, polymer_info, porosity_info, powder_automatic_info, powder_cells_info, powder_index_info, powder_pawley_info, powder_refine_info, primitive_info, project_info, project_pack, pxrd_info, read_cif, read_structure, reduce_info, ribbon_info, rietx_inventory_info, rings, scene_summary, schwarzite_info, set_space_group_info, slab_info, slab_text, standardize_info, structure_info, subgroups_info, supercell_info, supercell_text, to_p1_info, tolerance_ladder_info, torsion, twist_info, version, workspace_archive, workspace_read_archive, wyckoff_info, zeo_parse_info, ztc_info
8
+ AgentSession, WasmDocument, agent_capabilities, agent_run, agent_verbs, angle, asymmetrize_info, asymmetrize_text, bonds, brillouin_zone, build_c20_info, build_c20_text, build_c60_info, build_c60_text, build_carbon_recipe_info, build_carbon_text, build_graphene_info, build_graphene_text, build_mof_info, build_mof_text, build_nanotube_info, build_nanotube_text, build_polymer_text, build_ribbon_text, build_schwarzite_text, build_twist_text, build_ztc_text, cell_volume, change_setting_info, change_setting_text, convert_structure, detect_symmetry, diagnose_info, distance, element_info, ff_charges_info, ff_energy, ff_ir_info, ff_optimize_info, ff_optimize_text, ff_prepare_info, ff_thermo_info, ff_types_info, ff_vibrations_info, groups, hydrogens_info, hydrogens_text, kpath_info, lattice_info, lattice_minimum_image, layer_group_info, limits_bounds, limits_check, lower_to_subgroup_info, lower_to_subgroup_text, magnetic_group_info, mesh_stl, mof_blocks_info, mof_topologies_info, neighbors, net_invariants_info, param_schema, pointgroup_info, polymer_info, porosity_info, powder_automatic_info, powder_cells_info, powder_index_info, powder_lebail_info, powder_pawley_info, powder_pawley_width_info, powder_refine_info, primitive_info, primitive_text, project_info, project_pack, pxrd_info, read_cif, read_structure, reduce_info, reduce_text, ribbon_info, rietx_inventory_info, rings, scene_data, scene_summary, schwarzite_info, set_space_group_info, set_space_group_text, slab_info, slab_text, standardize_info, standardize_text, structure_info, subgroups_info, supercell_info, supercell_text, to_p1_info, to_p1_text, tolerance_ladder_info, torsion, twist_info, version, workspace_archive, workspace_read_archive, wyckoff_info, zeo_parse_info, ztc_info
9
9
  } from "./xtalforge_wasm_bg.js";
@@ -397,6 +397,38 @@ export function asymmetrize_info(text, symprec) {
397
397
  return takeFromExternrefTable0(ret[0]);
398
398
  }
399
399
 
400
+ /**
401
+ * Detects the symmetry and returns the asymmetric unit as CIF.
402
+ *
403
+ * # Errors
404
+ *
405
+ * Returns a JavaScript `Error` for invalid text or a failed search.
406
+ * @param {string} text
407
+ * @param {number} symprec
408
+ * @returns {string}
409
+ */
410
+ export function asymmetrize_text(text, symprec) {
411
+ let deferred4_0;
412
+ let deferred4_1;
413
+ try {
414
+ const val2 = +symprec;
415
+ const ptr0 = passStringToWasm0(text, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
416
+ const len0 = WASM_VECTOR_LEN;
417
+ const ret = wasm.asymmetrize_text(ptr0, len0, val2);
418
+ var ptr3 = ret[0];
419
+ var len3 = ret[1];
420
+ if (ret[3]) {
421
+ ptr3 = 0; len3 = 0;
422
+ throw takeFromExternrefTable0(ret[2]);
423
+ }
424
+ deferred4_0 = ptr3;
425
+ deferred4_1 = len3;
426
+ return getStringFromWasm0(ptr3, len3);
427
+ } finally {
428
+ wasm.__wbindgen_free(deferred4_0, deferred4_1, 1);
429
+ }
430
+ }
431
+
400
432
  /**
401
433
  * Perceives the bonds of a structure.
402
434
  *
@@ -454,6 +486,33 @@ export function build_c20_info() {
454
486
  return takeFromExternrefTable0(ret[0]);
455
487
  }
456
488
 
489
+ /**
490
+ * Builds C20 and returns it as CIF.
491
+ *
492
+ * # Errors
493
+ *
494
+ * Returns a JavaScript `Error` when the embedded data is invalid.
495
+ * @returns {string}
496
+ */
497
+ export function build_c20_text() {
498
+ let deferred2_0;
499
+ let deferred2_1;
500
+ try {
501
+ const ret = wasm.build_c20_text();
502
+ var ptr1 = ret[0];
503
+ var len1 = ret[1];
504
+ if (ret[3]) {
505
+ ptr1 = 0; len1 = 0;
506
+ throw takeFromExternrefTable0(ret[2]);
507
+ }
508
+ deferred2_0 = ptr1;
509
+ deferred2_1 = len1;
510
+ return getStringFromWasm0(ptr1, len1);
511
+ } finally {
512
+ wasm.__wbindgen_free(deferred2_0, deferred2_1, 1);
513
+ }
514
+ }
515
+
457
516
  /**
458
517
  * Builds C60 and returns its summary.
459
518
  *
@@ -470,6 +529,33 @@ export function build_c60_info() {
470
529
  return takeFromExternrefTable0(ret[0]);
471
530
  }
472
531
 
532
+ /**
533
+ * Builds C60 and returns it as CIF.
534
+ *
535
+ * # Errors
536
+ *
537
+ * Returns a JavaScript `Error` when the embedded data is invalid.
538
+ * @returns {string}
539
+ */
540
+ export function build_c60_text() {
541
+ let deferred2_0;
542
+ let deferred2_1;
543
+ try {
544
+ const ret = wasm.build_c60_text();
545
+ var ptr1 = ret[0];
546
+ var len1 = ret[1];
547
+ if (ret[3]) {
548
+ ptr1 = 0; len1 = 0;
549
+ throw takeFromExternrefTable0(ret[2]);
550
+ }
551
+ deferred2_0 = ptr1;
552
+ deferred2_1 = len1;
553
+ return getStringFromWasm0(ptr1, len1);
554
+ } finally {
555
+ wasm.__wbindgen_free(deferred2_0, deferred2_1, 1);
556
+ }
557
+ }
558
+
473
559
  /**
474
560
  * Builds a disordered carbon from a recipe.
475
561
  *
@@ -510,6 +596,45 @@ export function build_carbon_recipe_info(net, repeat_x, repeat_y, repeat_z, dens
510
596
  return takeFromExternrefTable0(ret[0]);
511
597
  }
512
598
 
599
+ /**
600
+ * Builds a disordered carbon from a net recipe and returns it as CIF.
601
+ *
602
+ * The other recipe fields keep their defaults; `build_carbon_recipe_info`
603
+ * exposes the full recipe and its statistics.
604
+ *
605
+ * # Errors
606
+ *
607
+ * Returns a JavaScript `Error` for an unknown net or invalid options.
608
+ * @param {string} net
609
+ * @param {number} repeat
610
+ * @param {number} density
611
+ * @param {number} seed
612
+ * @returns {string}
613
+ */
614
+ export function build_carbon_text(net, repeat, density, seed) {
615
+ let deferred6_0;
616
+ let deferred6_1;
617
+ try {
618
+ const val2 = +repeat;
619
+ const val3 = +density;
620
+ const val4 = +seed;
621
+ const ptr0 = passStringToWasm0(net, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
622
+ const len0 = WASM_VECTOR_LEN;
623
+ const ret = wasm.build_carbon_text(ptr0, len0, val2, val3, val4);
624
+ var ptr5 = ret[0];
625
+ var len5 = ret[1];
626
+ if (ret[3]) {
627
+ ptr5 = 0; len5 = 0;
628
+ throw takeFromExternrefTable0(ret[2]);
629
+ }
630
+ deferred6_0 = ptr5;
631
+ deferred6_1 = len5;
632
+ return getStringFromWasm0(ptr5, len5);
633
+ } finally {
634
+ wasm.__wbindgen_free(deferred6_0, deferred6_1, 1);
635
+ }
636
+ }
637
+
513
638
  /**
514
639
  * Builds a graphene sheet and returns its summary.
515
640
  *
@@ -531,6 +656,38 @@ export function build_graphene_info(nx, ny, layers, interlayer, vacuum) {
531
656
  return takeFromExternrefTable0(ret[0]);
532
657
  }
533
658
 
659
+ /**
660
+ * Builds a graphene sheet and returns it as CIF.
661
+ *
662
+ * # Errors
663
+ *
664
+ * Returns a JavaScript `Error` for invalid repeats or spacing.
665
+ * @param {number} nx
666
+ * @param {number} ny
667
+ * @param {number} layers
668
+ * @param {number} interlayer
669
+ * @param {number} vacuum
670
+ * @returns {string}
671
+ */
672
+ export function build_graphene_text(nx, ny, layers, interlayer, vacuum) {
673
+ let deferred2_0;
674
+ let deferred2_1;
675
+ try {
676
+ const ret = wasm.build_graphene_text(nx, ny, layers, interlayer, vacuum);
677
+ var ptr1 = ret[0];
678
+ var len1 = ret[1];
679
+ if (ret[3]) {
680
+ ptr1 = 0; len1 = 0;
681
+ throw takeFromExternrefTable0(ret[2]);
682
+ }
683
+ deferred2_0 = ptr1;
684
+ deferred2_1 = len1;
685
+ return getStringFromWasm0(ptr1, len1);
686
+ } finally {
687
+ wasm.__wbindgen_free(deferred2_0, deferred2_1, 1);
688
+ }
689
+ }
690
+
534
691
  /**
535
692
  * Builds a framework and returns its summary and warnings.
536
693
  *
@@ -564,6 +721,50 @@ export function build_mof_info(topology, node, linker) {
564
721
  return takeFromExternrefTable0(ret[0]);
565
722
  }
566
723
 
724
+ /**
725
+ * Builds a MOF and returns it as CIF.
726
+ *
727
+ * # Errors
728
+ *
729
+ * Returns a JavaScript `Error` for an unknown topology or block.
730
+ * @param {string} topology
731
+ * @param {string} node
732
+ * @param {string} linker
733
+ * @returns {string}
734
+ */
735
+ export function build_mof_text(topology, node, linker) {
736
+ let deferred5_0;
737
+ let deferred5_1;
738
+ try {
739
+ let ptr0, len0, ptr1, len1, ptr2, len2;
740
+ try {
741
+ ptr0 = passStringToWasm0(topology, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
742
+ len0 = WASM_VECTOR_LEN;
743
+ ptr1 = passStringToWasm0(node, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
744
+ len1 = WASM_VECTOR_LEN;
745
+ ptr2 = passStringToWasm0(linker, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
746
+ len2 = WASM_VECTOR_LEN;
747
+ } catch (e) {
748
+ if (ptr2) { wasm.__wbindgen_free(ptr2, len2 * 1, 1); }
749
+ if (ptr1) { wasm.__wbindgen_free(ptr1, len1 * 1, 1); }
750
+ if (ptr0) { wasm.__wbindgen_free(ptr0, len0 * 1, 1); }
751
+ throw e;
752
+ }
753
+ const ret = wasm.build_mof_text(ptr0, len0, ptr1, len1, ptr2, len2);
754
+ var ptr4 = ret[0];
755
+ var len4 = ret[1];
756
+ if (ret[3]) {
757
+ ptr4 = 0; len4 = 0;
758
+ throw takeFromExternrefTable0(ret[2]);
759
+ }
760
+ deferred5_0 = ptr4;
761
+ deferred5_1 = len4;
762
+ return getStringFromWasm0(ptr4, len4);
763
+ } finally {
764
+ wasm.__wbindgen_free(deferred5_0, deferred5_1, 1);
765
+ }
766
+ }
767
+
567
768
  /**
568
769
  * Builds a nanotube and returns its summary.
569
770
  *
@@ -584,6 +785,192 @@ export function build_nanotube_info(n, m, length, vacuum) {
584
785
  return takeFromExternrefTable0(ret[0]);
585
786
  }
586
787
 
788
+ /**
789
+ * Builds a nanotube and returns it as CIF.
790
+ *
791
+ * # Errors
792
+ *
793
+ * Returns a JavaScript `Error` for a bad chiral vector or length.
794
+ * @param {number} n
795
+ * @param {number} m
796
+ * @param {number} length
797
+ * @param {number} vacuum
798
+ * @returns {string}
799
+ */
800
+ export function build_nanotube_text(n, m, length, vacuum) {
801
+ let deferred2_0;
802
+ let deferred2_1;
803
+ try {
804
+ const ret = wasm.build_nanotube_text(n, m, length, vacuum);
805
+ var ptr1 = ret[0];
806
+ var len1 = ret[1];
807
+ if (ret[3]) {
808
+ ptr1 = 0; len1 = 0;
809
+ throw takeFromExternrefTable0(ret[2]);
810
+ }
811
+ deferred2_0 = ptr1;
812
+ deferred2_1 = len1;
813
+ return getStringFromWasm0(ptr1, len1);
814
+ } finally {
815
+ wasm.__wbindgen_free(deferred2_0, deferred2_1, 1);
816
+ }
817
+ }
818
+
819
+ /**
820
+ * Builds a polymer chain and returns it as CIF.
821
+ *
822
+ * # Errors
823
+ *
824
+ * Returns a JavaScript `Error` for an invalid SMILES or density.
825
+ * @param {string} smiles
826
+ * @param {number} monomers
827
+ * @param {number} density
828
+ * @returns {string}
829
+ */
830
+ export function build_polymer_text(smiles, monomers, density) {
831
+ let deferred5_0;
832
+ let deferred5_1;
833
+ try {
834
+ const val2 = +monomers;
835
+ const val3 = +density;
836
+ const ptr0 = passStringToWasm0(smiles, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
837
+ const len0 = WASM_VECTOR_LEN;
838
+ const ret = wasm.build_polymer_text(ptr0, len0, val2, val3);
839
+ var ptr4 = ret[0];
840
+ var len4 = ret[1];
841
+ if (ret[3]) {
842
+ ptr4 = 0; len4 = 0;
843
+ throw takeFromExternrefTable0(ret[2]);
844
+ }
845
+ deferred5_0 = ptr4;
846
+ deferred5_1 = len4;
847
+ return getStringFromWasm0(ptr4, len4);
848
+ } finally {
849
+ wasm.__wbindgen_free(deferred5_0, deferred5_1, 1);
850
+ }
851
+ }
852
+
853
+ /**
854
+ * Builds a honeycomb nanoribbon and returns it as CIF.
855
+ *
856
+ * # Errors
857
+ *
858
+ * Returns a JavaScript `Error` for invalid dimensions.
859
+ * @param {number} width
860
+ * @param {number} length
861
+ * @param {number} vacuum
862
+ * @returns {string}
863
+ */
864
+ export function build_ribbon_text(width, length, vacuum) {
865
+ let deferred2_0;
866
+ let deferred2_1;
867
+ try {
868
+ const ret = wasm.build_ribbon_text(width, length, vacuum);
869
+ var ptr1 = ret[0];
870
+ var len1 = ret[1];
871
+ if (ret[3]) {
872
+ ptr1 = 0; len1 = 0;
873
+ throw takeFromExternrefTable0(ret[2]);
874
+ }
875
+ deferred2_0 = ptr1;
876
+ deferred2_1 = len1;
877
+ return getStringFromWasm0(ptr1, len1);
878
+ } finally {
879
+ wasm.__wbindgen_free(deferred2_0, deferred2_1, 1);
880
+ }
881
+ }
882
+
883
+ /**
884
+ * Builds a Schwarz P carbon model and returns it as CIF.
885
+ *
886
+ * # Errors
887
+ *
888
+ * Returns a JavaScript `Error` for invalid options.
889
+ * @param {number} samples
890
+ * @param {number} cell
891
+ * @param {number} isovalue
892
+ * @returns {string}
893
+ */
894
+ export function build_schwarzite_text(samples, cell, isovalue) {
895
+ let deferred2_0;
896
+ let deferred2_1;
897
+ try {
898
+ const ret = wasm.build_schwarzite_text(samples, cell, isovalue);
899
+ var ptr1 = ret[0];
900
+ var len1 = ret[1];
901
+ if (ret[3]) {
902
+ ptr1 = 0; len1 = 0;
903
+ throw takeFromExternrefTable0(ret[2]);
904
+ }
905
+ deferred2_0 = ptr1;
906
+ deferred2_1 = len1;
907
+ return getStringFromWasm0(ptr1, len1);
908
+ } finally {
909
+ wasm.__wbindgen_free(deferred2_0, deferred2_1, 1);
910
+ }
911
+ }
912
+
913
+ /**
914
+ * Builds two twisted graphene layers and returns them as CIF.
915
+ *
916
+ * # Errors
917
+ *
918
+ * Returns a JavaScript `Error` for invalid repeats or angle.
919
+ * @param {number} n
920
+ * @param {number} m
921
+ * @param {number} theta
922
+ * @param {number} layers
923
+ * @returns {string}
924
+ */
925
+ export function build_twist_text(n, m, theta, layers) {
926
+ let deferred2_0;
927
+ let deferred2_1;
928
+ try {
929
+ const ret = wasm.build_twist_text(n, m, theta, layers);
930
+ var ptr1 = ret[0];
931
+ var len1 = ret[1];
932
+ if (ret[3]) {
933
+ ptr1 = 0; len1 = 0;
934
+ throw takeFromExternrefTable0(ret[2]);
935
+ }
936
+ deferred2_0 = ptr1;
937
+ deferred2_1 = len1;
938
+ return getStringFromWasm0(ptr1, len1);
939
+ } finally {
940
+ wasm.__wbindgen_free(deferred2_0, deferred2_1, 1);
941
+ }
942
+ }
943
+
944
+ /**
945
+ * Builds a gyroid ZTC carbon model and returns it as CIF.
946
+ *
947
+ * # Errors
948
+ *
949
+ * Returns a JavaScript `Error` for invalid options.
950
+ * @param {number} samples
951
+ * @param {number} cell
952
+ * @param {number} isovalue
953
+ * @returns {string}
954
+ */
955
+ export function build_ztc_text(samples, cell, isovalue) {
956
+ let deferred2_0;
957
+ let deferred2_1;
958
+ try {
959
+ const ret = wasm.build_ztc_text(samples, cell, isovalue);
960
+ var ptr1 = ret[0];
961
+ var len1 = ret[1];
962
+ if (ret[3]) {
963
+ ptr1 = 0; len1 = 0;
964
+ throw takeFromExternrefTable0(ret[2]);
965
+ }
966
+ deferred2_0 = ptr1;
967
+ deferred2_1 = len1;
968
+ return getStringFromWasm0(ptr1, len1);
969
+ } finally {
970
+ wasm.__wbindgen_free(deferred2_0, deferred2_1, 1);
971
+ }
972
+ }
973
+
587
974
  /**
588
975
  * Volume of a cell in cubic Angstrom.
589
976
  *
@@ -628,6 +1015,38 @@ export function change_setting_info(text, hall_number) {
628
1015
  return takeFromExternrefTable0(ret[0]);
629
1016
  }
630
1017
 
1018
+ /**
1019
+ * Changes the space-group setting and returns the result as CIF.
1020
+ *
1021
+ * # Errors
1022
+ *
1023
+ * Returns a JavaScript `Error` for invalid text or a Hall number out of range.
1024
+ * @param {string} text
1025
+ * @param {number} hall_number
1026
+ * @returns {string}
1027
+ */
1028
+ export function change_setting_text(text, hall_number) {
1029
+ let deferred4_0;
1030
+ let deferred4_1;
1031
+ try {
1032
+ const val2 = +hall_number;
1033
+ const ptr0 = passStringToWasm0(text, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
1034
+ const len0 = WASM_VECTOR_LEN;
1035
+ const ret = wasm.change_setting_text(ptr0, len0, val2);
1036
+ var ptr3 = ret[0];
1037
+ var len3 = ret[1];
1038
+ if (ret[3]) {
1039
+ ptr3 = 0; len3 = 0;
1040
+ throw takeFromExternrefTable0(ret[2]);
1041
+ }
1042
+ deferred4_0 = ptr3;
1043
+ deferred4_1 = len3;
1044
+ return getStringFromWasm0(ptr3, len3);
1045
+ } finally {
1046
+ wasm.__wbindgen_free(deferred4_0, deferred4_1, 1);
1047
+ }
1048
+ }
1049
+
631
1050
  /**
632
1051
  * Converts structure text to another format and returns the file contents.
633
1052
  *
@@ -775,7 +1194,7 @@ export function element_info(input) {
775
1194
  }
776
1195
 
777
1196
  /**
778
- * Returns QEq or EQeq charges.
1197
+ * Returns QEq, EQeq or EEQ2019 charges (`qeq`, `eqeq`, `eeq`).
779
1198
  *
780
1199
  * # Errors
781
1200
  *
@@ -880,6 +1299,52 @@ export function ff_optimize_info(text, minimizer, max_steps, force_tolerance, ce
880
1299
  return takeFromExternrefTable0(ret[0]);
881
1300
  }
882
1301
 
1302
+ /**
1303
+ * Relaxes a structure and returns the result as CIF.
1304
+ *
1305
+ * # Errors
1306
+ *
1307
+ * Returns a JavaScript `Error` for invalid text or an unknown minimizer.
1308
+ * @param {string} text
1309
+ * @param {string} minimizer
1310
+ * @param {number} max_steps
1311
+ * @param {number} force_tolerance
1312
+ * @param {boolean} cell
1313
+ * @returns {string}
1314
+ */
1315
+ export function ff_optimize_text(text, minimizer, max_steps, force_tolerance, cell) {
1316
+ let deferred7_0;
1317
+ let deferred7_1;
1318
+ try {
1319
+ const val3 = +max_steps;
1320
+ const val4 = +force_tolerance;
1321
+ const val5 = +cell;
1322
+ let ptr0, len0, ptr1, len1;
1323
+ try {
1324
+ ptr0 = passStringToWasm0(text, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
1325
+ len0 = WASM_VECTOR_LEN;
1326
+ ptr1 = passStringToWasm0(minimizer, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
1327
+ len1 = WASM_VECTOR_LEN;
1328
+ } catch (e) {
1329
+ if (ptr1) { wasm.__wbindgen_free(ptr1, len1 * 1, 1); }
1330
+ if (ptr0) { wasm.__wbindgen_free(ptr0, len0 * 1, 1); }
1331
+ throw e;
1332
+ }
1333
+ const ret = wasm.ff_optimize_text(ptr0, len0, ptr1, len1, val3, val4, val5);
1334
+ var ptr6 = ret[0];
1335
+ var len6 = ret[1];
1336
+ if (ret[3]) {
1337
+ ptr6 = 0; len6 = 0;
1338
+ throw takeFromExternrefTable0(ret[2]);
1339
+ }
1340
+ deferred7_0 = ptr6;
1341
+ deferred7_1 = len6;
1342
+ return getStringFromWasm0(ptr6, len6);
1343
+ } finally {
1344
+ wasm.__wbindgen_free(deferred7_0, deferred7_1, 1);
1345
+ }
1346
+ }
1347
+
883
1348
  /**
884
1349
  * Runs the preparation pipeline and returns its report.
885
1350
  *
@@ -1016,7 +1481,39 @@ export function hydrogens_info(text, distance) {
1016
1481
  if (ret[2]) {
1017
1482
  throw takeFromExternrefTable0(ret[1]);
1018
1483
  }
1019
- return takeFromExternrefTable0(ret[0]);
1484
+ return takeFromExternrefTable0(ret[0]);
1485
+ }
1486
+
1487
+ /**
1488
+ * Adds hydrogens at the missing valences and returns the result as CIF.
1489
+ *
1490
+ * # Errors
1491
+ *
1492
+ * Returns a JavaScript `Error` for invalid text or a bad distance.
1493
+ * @param {string} text
1494
+ * @param {number} distance
1495
+ * @returns {string}
1496
+ */
1497
+ export function hydrogens_text(text, distance) {
1498
+ let deferred4_0;
1499
+ let deferred4_1;
1500
+ try {
1501
+ const val2 = +distance;
1502
+ const ptr0 = passStringToWasm0(text, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
1503
+ const len0 = WASM_VECTOR_LEN;
1504
+ const ret = wasm.hydrogens_text(ptr0, len0, val2);
1505
+ var ptr3 = ret[0];
1506
+ var len3 = ret[1];
1507
+ if (ret[3]) {
1508
+ ptr3 = 0; len3 = 0;
1509
+ throw takeFromExternrefTable0(ret[2]);
1510
+ }
1511
+ deferred4_0 = ptr3;
1512
+ deferred4_1 = len3;
1513
+ return getStringFromWasm0(ptr3, len3);
1514
+ } finally {
1515
+ wasm.__wbindgen_free(deferred4_0, deferred4_1, 1);
1516
+ }
1020
1517
  }
1021
1518
 
1022
1519
  /**
@@ -1198,6 +1695,40 @@ export function lower_to_subgroup_info(text, subgroup, tolerance) {
1198
1695
  return takeFromExternrefTable0(ret[0]);
1199
1696
  }
1200
1697
 
1698
+ /**
1699
+ * Lowers a structure to a subgroup and returns it as CIF.
1700
+ *
1701
+ * # Errors
1702
+ *
1703
+ * Returns a JavaScript `Error` for invalid text or an unknown subgroup.
1704
+ * @param {string} text
1705
+ * @param {number} subgroup_number
1706
+ * @param {number} tolerance
1707
+ * @returns {string}
1708
+ */
1709
+ export function lower_to_subgroup_text(text, subgroup_number, tolerance) {
1710
+ let deferred5_0;
1711
+ let deferred5_1;
1712
+ try {
1713
+ const val2 = +subgroup_number;
1714
+ const val3 = +tolerance;
1715
+ const ptr0 = passStringToWasm0(text, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
1716
+ const len0 = WASM_VECTOR_LEN;
1717
+ const ret = wasm.lower_to_subgroup_text(ptr0, len0, val2, val3);
1718
+ var ptr4 = ret[0];
1719
+ var len4 = ret[1];
1720
+ if (ret[3]) {
1721
+ ptr4 = 0; len4 = 0;
1722
+ throw takeFromExternrefTable0(ret[2]);
1723
+ }
1724
+ deferred5_0 = ptr4;
1725
+ deferred5_1 = len4;
1726
+ return getStringFromWasm0(ptr4, len4);
1727
+ } finally {
1728
+ wasm.__wbindgen_free(deferred5_0, deferred5_1, 1);
1729
+ }
1730
+ }
1731
+
1201
1732
  /**
1202
1733
  * Detects the collinear magnetic space group (experimental).
1203
1734
  *
@@ -1498,6 +2029,38 @@ export function powder_index_info(pattern_text, wavelength, max_index, tolerance
1498
2029
  return takeFromExternrefTable0(ret[0]);
1499
2030
  }
1500
2031
 
2032
+ /**
2033
+ * Le Bail extraction with the default options.
2034
+ *
2035
+ * Returns `{ positions, intensities, intensity_esds, r_factor, rwp,
2036
+ * chi_squared }`, the same fields as `xtalforge --json powder lebail`.
2037
+ *
2038
+ * # Errors
2039
+ *
2040
+ * Returns a JavaScript `Error` for invalid structure or pattern text.
2041
+ * @param {string} text
2042
+ * @param {string} pattern_text
2043
+ * @returns {any}
2044
+ */
2045
+ export function powder_lebail_info(text, pattern_text) {
2046
+ let ptr0, len0, ptr1, len1;
2047
+ try {
2048
+ ptr0 = passStringToWasm0(text, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
2049
+ len0 = WASM_VECTOR_LEN;
2050
+ ptr1 = passStringToWasm0(pattern_text, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
2051
+ len1 = WASM_VECTOR_LEN;
2052
+ } catch (e) {
2053
+ if (ptr1) { wasm.__wbindgen_free(ptr1, len1 * 1, 1); }
2054
+ if (ptr0) { wasm.__wbindgen_free(ptr0, len0 * 1, 1); }
2055
+ throw e;
2056
+ }
2057
+ const ret = wasm.powder_lebail_info(ptr0, len0, ptr1, len1);
2058
+ if (ret[2]) {
2059
+ throw takeFromExternrefTable0(ret[1]);
2060
+ }
2061
+ return takeFromExternrefTable0(ret[0]);
2062
+ }
2063
+
1501
2064
  /**
1502
2065
  * Fits a Pawley model: free intensities, cell, zero shift and width model.
1503
2066
  *
@@ -1531,6 +2094,45 @@ export function powder_pawley_info(text, pattern_text, profile) {
1531
2094
  return takeFromExternrefTable0(ret[0]);
1532
2095
  }
1533
2096
 
2097
+ /**
2098
+ * Pawley fit that can also refine the size (constant) and strain
2099
+ * (`tan theta`) width terms, like Python `powder_pawley(refine_size=...,
2100
+ * refine_strain=...)`.
2101
+ *
2102
+ * # Errors
2103
+ *
2104
+ * Returns a JavaScript `Error` for invalid text or a failed fit.
2105
+ * @param {string} text
2106
+ * @param {string} pattern_text
2107
+ * @param {string} profile
2108
+ * @param {boolean} refine_size
2109
+ * @param {boolean} refine_strain
2110
+ * @returns {any}
2111
+ */
2112
+ export function powder_pawley_width_info(text, pattern_text, profile, refine_size, refine_strain) {
2113
+ const val4 = +refine_size;
2114
+ const val5 = +refine_strain;
2115
+ let ptr0, len0, ptr1, len1, ptr2, len2;
2116
+ try {
2117
+ ptr0 = passStringToWasm0(text, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
2118
+ len0 = WASM_VECTOR_LEN;
2119
+ ptr1 = passStringToWasm0(pattern_text, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
2120
+ len1 = WASM_VECTOR_LEN;
2121
+ ptr2 = passStringToWasm0(profile, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
2122
+ len2 = WASM_VECTOR_LEN;
2123
+ } catch (e) {
2124
+ if (ptr2) { wasm.__wbindgen_free(ptr2, len2 * 1, 1); }
2125
+ if (ptr1) { wasm.__wbindgen_free(ptr1, len1 * 1, 1); }
2126
+ if (ptr0) { wasm.__wbindgen_free(ptr0, len0 * 1, 1); }
2127
+ throw e;
2128
+ }
2129
+ const ret = wasm.powder_pawley_width_info(ptr0, len0, ptr1, len1, ptr2, len2, val4, val5);
2130
+ if (ret[2]) {
2131
+ throw takeFromExternrefTable0(ret[1]);
2132
+ }
2133
+ return takeFromExternrefTable0(ret[0]);
2134
+ }
2135
+
1534
2136
  /**
1535
2137
  * Refines a phase with the McCusker stages.
1536
2138
  *
@@ -1600,6 +2202,38 @@ export function primitive_info(text, symprec) {
1600
2202
  return takeFromExternrefTable0(ret[0]);
1601
2203
  }
1602
2204
 
2205
+ /**
2206
+ * Builds the primitive cell and returns it as CIF.
2207
+ *
2208
+ * # Errors
2209
+ *
2210
+ * Returns a JavaScript `Error` for invalid text or a failed search.
2211
+ * @param {string} text
2212
+ * @param {number} symprec
2213
+ * @returns {string}
2214
+ */
2215
+ export function primitive_text(text, symprec) {
2216
+ let deferred4_0;
2217
+ let deferred4_1;
2218
+ try {
2219
+ const val2 = +symprec;
2220
+ const ptr0 = passStringToWasm0(text, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
2221
+ const len0 = WASM_VECTOR_LEN;
2222
+ const ret = wasm.primitive_text(ptr0, len0, val2);
2223
+ var ptr3 = ret[0];
2224
+ var len3 = ret[1];
2225
+ if (ret[3]) {
2226
+ ptr3 = 0; len3 = 0;
2227
+ throw takeFromExternrefTable0(ret[2]);
2228
+ }
2229
+ deferred4_0 = ptr3;
2230
+ deferred4_1 = len3;
2231
+ return getStringFromWasm0(ptr3, len3);
2232
+ } finally {
2233
+ wasm.__wbindgen_free(deferred4_0, deferred4_1, 1);
2234
+ }
2235
+ }
2236
+
1603
2237
  /**
1604
2238
  * Reads `.xtalproj` bytes and returns the structure summary.
1605
2239
  *
@@ -1760,6 +2394,46 @@ export function reduce_info(text, algorithm) {
1760
2394
  return takeFromExternrefTable0(ret[0]);
1761
2395
  }
1762
2396
 
2397
+ /**
2398
+ * Reduces a structure and returns it as CIF.
2399
+ *
2400
+ * # Errors
2401
+ *
2402
+ * Returns a JavaScript `Error` for invalid text or an unknown algorithm.
2403
+ * @param {string} text
2404
+ * @param {string} algorithm
2405
+ * @returns {string}
2406
+ */
2407
+ export function reduce_text(text, algorithm) {
2408
+ let deferred4_0;
2409
+ let deferred4_1;
2410
+ try {
2411
+ let ptr0, len0, ptr1, len1;
2412
+ try {
2413
+ ptr0 = passStringToWasm0(text, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
2414
+ len0 = WASM_VECTOR_LEN;
2415
+ ptr1 = passStringToWasm0(algorithm, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
2416
+ len1 = WASM_VECTOR_LEN;
2417
+ } catch (e) {
2418
+ if (ptr1) { wasm.__wbindgen_free(ptr1, len1 * 1, 1); }
2419
+ if (ptr0) { wasm.__wbindgen_free(ptr0, len0 * 1, 1); }
2420
+ throw e;
2421
+ }
2422
+ const ret = wasm.reduce_text(ptr0, len0, ptr1, len1);
2423
+ var ptr3 = ret[0];
2424
+ var len3 = ret[1];
2425
+ if (ret[3]) {
2426
+ ptr3 = 0; len3 = 0;
2427
+ throw takeFromExternrefTable0(ret[2]);
2428
+ }
2429
+ deferred4_0 = ptr3;
2430
+ deferred4_1 = len3;
2431
+ return getStringFromWasm0(ptr3, len3);
2432
+ } finally {
2433
+ wasm.__wbindgen_free(deferred4_0, deferred4_1, 1);
2434
+ }
2435
+ }
2436
+
1763
2437
  /**
1764
2438
  * Builds a honeycomb nanoribbon with vacuum.
1765
2439
  *
@@ -1814,6 +2488,48 @@ export function rings(text, max_size) {
1814
2488
  return takeFromExternrefTable0(ret[0]);
1815
2489
  }
1816
2490
 
2491
+ /**
2492
+ * Builds the full scene geometry for a structure.
2493
+ *
2494
+ * The object has three arrays:
2495
+ *
2496
+ * - `atoms`: `element`, `position` (Cartesian Angstrom), `radius`, `color`
2497
+ * (0-255 RGB), `index` in the P1 cell and `hidden`.
2498
+ * - `bonds`: `i`, `j`, `start`, `end`, `radius`, `color` and `order`.
2499
+ * - `cell_edges`: pairs of Cartesian endpoints.
2500
+ *
2501
+ * `settings` repeats the sanitized style, atom scale, bond radius, cell and
2502
+ * axes flags and background colour used to build the frame.
2503
+ *
2504
+ * # Errors
2505
+ *
2506
+ * Returns a JavaScript `Error` with a stable `code` property for invalid
2507
+ * structure text or an unknown draw style.
2508
+ * @param {string} text
2509
+ * @param {string} style
2510
+ * @param {number} scale
2511
+ * @returns {any}
2512
+ */
2513
+ export function scene_data(text, style, scale) {
2514
+ const val3 = +scale;
2515
+ let ptr0, len0, ptr1, len1;
2516
+ try {
2517
+ ptr0 = passStringToWasm0(text, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
2518
+ len0 = WASM_VECTOR_LEN;
2519
+ ptr1 = passStringToWasm0(style, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
2520
+ len1 = WASM_VECTOR_LEN;
2521
+ } catch (e) {
2522
+ if (ptr1) { wasm.__wbindgen_free(ptr1, len1 * 1, 1); }
2523
+ if (ptr0) { wasm.__wbindgen_free(ptr0, len0 * 1, 1); }
2524
+ throw e;
2525
+ }
2526
+ const ret = wasm.scene_data(ptr0, len0, ptr1, len1, val3);
2527
+ if (ret[2]) {
2528
+ throw takeFromExternrefTable0(ret[1]);
2529
+ }
2530
+ return takeFromExternrefTable0(ret[0]);
2531
+ }
2532
+
1817
2533
  /**
1818
2534
  * Summarizes a scene for the given draw style.
1819
2535
  *
@@ -1900,6 +2616,50 @@ export function set_space_group_info(text, symbol, mode) {
1900
2616
  return takeFromExternrefTable0(ret[0]);
1901
2617
  }
1902
2618
 
2619
+ /**
2620
+ * Applies a space group and returns the result as CIF.
2621
+ *
2622
+ * # Errors
2623
+ *
2624
+ * Returns a JavaScript `Error` for invalid text, an unknown symbol or mode.
2625
+ * @param {string} text
2626
+ * @param {string} symbol
2627
+ * @param {string} mode
2628
+ * @returns {string}
2629
+ */
2630
+ export function set_space_group_text(text, symbol, mode) {
2631
+ let deferred5_0;
2632
+ let deferred5_1;
2633
+ try {
2634
+ let ptr0, len0, ptr1, len1, ptr2, len2;
2635
+ try {
2636
+ ptr0 = passStringToWasm0(text, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
2637
+ len0 = WASM_VECTOR_LEN;
2638
+ ptr1 = passStringToWasm0(symbol, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
2639
+ len1 = WASM_VECTOR_LEN;
2640
+ ptr2 = passStringToWasm0(mode, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
2641
+ len2 = WASM_VECTOR_LEN;
2642
+ } catch (e) {
2643
+ if (ptr2) { wasm.__wbindgen_free(ptr2, len2 * 1, 1); }
2644
+ if (ptr1) { wasm.__wbindgen_free(ptr1, len1 * 1, 1); }
2645
+ if (ptr0) { wasm.__wbindgen_free(ptr0, len0 * 1, 1); }
2646
+ throw e;
2647
+ }
2648
+ const ret = wasm.set_space_group_text(ptr0, len0, ptr1, len1, ptr2, len2);
2649
+ var ptr4 = ret[0];
2650
+ var len4 = ret[1];
2651
+ if (ret[3]) {
2652
+ ptr4 = 0; len4 = 0;
2653
+ throw takeFromExternrefTable0(ret[2]);
2654
+ }
2655
+ deferred5_0 = ptr4;
2656
+ deferred5_1 = len4;
2657
+ return getStringFromWasm0(ptr4, len4);
2658
+ } finally {
2659
+ wasm.__wbindgen_free(deferred5_0, deferred5_1, 1);
2660
+ }
2661
+ }
2662
+
1903
2663
  /**
1904
2664
  * Cuts a slab and returns its summary object.
1905
2665
  *
@@ -1995,6 +2755,38 @@ export function standardize_info(text, symprec) {
1995
2755
  return takeFromExternrefTable0(ret[0]);
1996
2756
  }
1997
2757
 
2758
+ /**
2759
+ * Standardizes a structure and returns it as CIF.
2760
+ *
2761
+ * # Errors
2762
+ *
2763
+ * Returns a JavaScript `Error` for invalid text or a failed search.
2764
+ * @param {string} text
2765
+ * @param {number} symprec
2766
+ * @returns {string}
2767
+ */
2768
+ export function standardize_text(text, symprec) {
2769
+ let deferred4_0;
2770
+ let deferred4_1;
2771
+ try {
2772
+ const val2 = +symprec;
2773
+ const ptr0 = passStringToWasm0(text, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
2774
+ const len0 = WASM_VECTOR_LEN;
2775
+ const ret = wasm.standardize_text(ptr0, len0, val2);
2776
+ var ptr3 = ret[0];
2777
+ var len3 = ret[1];
2778
+ if (ret[3]) {
2779
+ ptr3 = 0; len3 = 0;
2780
+ throw takeFromExternrefTable0(ret[2]);
2781
+ }
2782
+ deferred4_0 = ptr3;
2783
+ deferred4_1 = len3;
2784
+ return getStringFromWasm0(ptr3, len3);
2785
+ } finally {
2786
+ wasm.__wbindgen_free(deferred4_0, deferred4_1, 1);
2787
+ }
2788
+ }
2789
+
1998
2790
  /**
1999
2791
  * Summary of a structure JSON document.
2000
2792
  *
@@ -2118,6 +2910,36 @@ export function to_p1_info(text) {
2118
2910
  return takeFromExternrefTable0(ret[0]);
2119
2911
  }
2120
2912
 
2913
+ /**
2914
+ * Expands a structure to P1 and returns it as CIF.
2915
+ *
2916
+ * # Errors
2917
+ *
2918
+ * Returns a JavaScript `Error` for invalid text or an empty structure.
2919
+ * @param {string} text
2920
+ * @returns {string}
2921
+ */
2922
+ export function to_p1_text(text) {
2923
+ let deferred3_0;
2924
+ let deferred3_1;
2925
+ try {
2926
+ const ptr0 = passStringToWasm0(text, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
2927
+ const len0 = WASM_VECTOR_LEN;
2928
+ const ret = wasm.to_p1_text(ptr0, len0);
2929
+ var ptr2 = ret[0];
2930
+ var len2 = ret[1];
2931
+ if (ret[3]) {
2932
+ ptr2 = 0; len2 = 0;
2933
+ throw takeFromExternrefTable0(ret[2]);
2934
+ }
2935
+ deferred3_0 = ptr2;
2936
+ deferred3_1 = len2;
2937
+ return getStringFromWasm0(ptr2, len2);
2938
+ } finally {
2939
+ wasm.__wbindgen_free(deferred3_0, deferred3_1, 1);
2940
+ }
2941
+ }
2942
+
2121
2943
  /**
2122
2944
  * Detects across the default tolerance ladder.
2123
2945
  *
@@ -2313,6 +3135,10 @@ export function __wbg___wbindgen_throw_4c88d8bf264fd984(arg0, arg1) {
2313
3135
  export function __wbg_getRandomValues_8b6f1f663e6f188d() { return handleError(function (arg0, arg1) {
2314
3136
  globalThis.crypto.getRandomValues(getArrayU8FromWasm0(arg0, arg1));
2315
3137
  }, arguments); }
3138
+ export function __wbg_length_b03a0fabb109b1e9(arg0) {
3139
+ const ret = arg0.length;
3140
+ return ret;
3141
+ }
2316
3142
  export function __wbg_new_37eb45aaf5eeb820() {
2317
3143
  const ret = new Array();
2318
3144
  return ret;
Binary file