test exports (#1139)

* test exports

* fmt

* tidy
This commit is contained in:
Kurt Hutten
2023-11-29 11:20:23 +11:00
committed by GitHub
parent 9f27f3c1ce
commit 7c11b7b739
10 changed files with 3303 additions and 2 deletions

View File

@ -7,6 +7,7 @@ coverage
target
src/wasm-lib/pkg
src/wasm-lib/kcl/bindings
e2e/playwright/export-snapshots
# XState generated files
src/machines/modelingMachine.typegen.ts

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

View File

@ -0,0 +1,189 @@
v 0 -4 0
v 0 0 0
v 0 -4 -1
v 0 0 -1
v 3.0950184 -4 -1
v 3.0950184 0 -1
v 5.9513144 -4 -3
v 5.9513144 0 -3
v 9.5 -4 -3
v 9.5 0 -3
v 9.5 -4 -2.5
v 9.5 0 -2.5
v 6.108964 -4 -2.5
v 6.108964 0 -2.5
v 3.4311862 -4 -0.625
v 4.323779 -4 -1.25
v 4.323779 -0 -1.25
v 3.4311862 -0 -0.625
v 2.5385938 0 0
v 2.5385938 -4 0
v 3.342784 -4 0.375
v 4.146974 -4 0.75
v 3.342784 -0 0.375
v 4.146974 -0 0.75
v 5.755354 0 1.5
v 5.755354 -4 1.5
v 9.5 -4 1.5
v 9.5 0 1.5
v 9.5 -4 2
v 9.5 0 2
v 5.644507 -4 2
v 5.644507 0 2
v 3.5 -4 1
v 3.5 0 1
v 0 -4 1
v 0 0 1
vt 0.0127 -0.0508
vt 0.0127 0.0508
vt -0.0127 -0.0508
vt -0.0127 0.0508
vt -0.039306734 0.0508
vt -0.039306734 -0.0508
vt 0.039306734 0.0508
vt 0.039306734 -0.0508
vt -0.04428355 0.0508
vt -0.04428355 -0.0508
vt 0.04428355 0.0508
vt 0.04428355 -0.0508
vt -0.045068305 0.0508
vt -0.045068305 -0.0508
vt 0.045068305 0.0508
vt 0.045068305 -0.0508
vt -0.00635 0.0508
vt -0.00635 -0.0508
vt 0.00635 0.0508
vt 0.00635 -0.0508
vt 0.04306616 -0.0508
vt 0.04306616 0.0508
vt -0.04306616 -0.0508
vt -0.04306616 0.0508
vt -0.027677217 -0.0508
vt 0.000000000000000048572257 -0.0508
vt 0.000000000000000048572257 0.0508
vt 0.055354435 -0.0508
vt 0.055354435 0.0508
vt -0.027677217 0.0508
vt -0.055354435 0.0508
vt -0.055354435 -0.0508
vt -0.02253807 0.0508
vt -0.04507614 0.0508
vt -0.04507614 -0.0508
vt 0.00000000000000005551115 0.0508
vt -0.02253807 -0.0508
vt 0.00000000000000005551115 -0.0508
vt 0.04507614 -0.0508
vt 0.04507614 0.0508
vt -0.047557 0.0508
vt -0.047557 -0.0508
vt 0.047557 0.0508
vt 0.047557 -0.0508
vt 0.04896476 -0.0508
vt 0.04896476 0.0508
vt -0.04896476 -0.0508
vt -0.04896476 0.0508
vt 0.03005076 -0.0508
vt 0.03005076 0.0508
vt -0.03005076 -0.0508
vt -0.03005076 0.0508
vt 0.04445 -0.0508
vt 0.04445 0.0508
vt -0.04445 -0.0508
vt -0.04445 0.0508
vt 0.08490671 0.009525
vt 0.06448028 0
vt 0.0889 0.0254
vt 0.08715213 -0.015875
vt 0.10982399 -0.03175
vt 0.07861347 -0.0254
vt 0.10533314 0.01905
vt 0.15116338 -0.0762
vt 0 -0.0254
vt 0 0
vt 0.2413 -0.0762
vt 0.15516768 -0.0635
vt 0.2413 -0.0635
vt 0.14337048 0.0508
vt 0.146186 0.0381
vt 0.2413 0.0381
vt 0.2413 0.0508
vt 0 0.0254
vn -1 -0 0
vn 0 -0 -1
vn -0.57357645 -0 -0.81915206
vn 1 -0 0
vn 0 -0 1
vn 0.57357645 -0 0.81915206
vn 0.42261827 -0 -0.9063078
vn -0.42261827 -0 0.9063078
vn -0 1 -0
vn 0 -1 0
o Unnamed-0
f 1/1/1 2/2/1 3/3/1
f 3/3/1 2/2/1 4/4/1
f 3/5/2 4/6/2 5/7/2
f 5/7/2 4/6/2 6/8/2
f 5/9/3 6/10/3 7/11/3
f 7/11/3 6/10/3 8/12/3
f 7/13/2 8/14/2 9/15/2
f 9/15/2 8/14/2 10/16/2
f 9/17/4 10/18/4 11/19/4
f 11/19/4 10/18/4 12/20/4
f 11/21/5 12/22/5 13/23/5
f 13/23/5 12/22/5 14/24/5
f 15/25/6 16/26/6 17/27/6
f 16/26/6 13/28/6 14/29/6
f 18/30/6 19/31/6 20/32/6
f 15/25/6 18/30/6 20/32/6
f 16/26/6 14/29/6 17/27/6
f 18/30/6 15/25/6 17/27/6
f 21/33/7 20/34/7 19/35/7
f 22/36/7 21/33/7 23/37/7
f 23/37/7 24/38/7 22/36/7
f 24/38/7 25/39/7 26/40/7
f 21/33/7 19/35/7 23/37/7
f 26/40/7 22/36/7 24/38/7
f 26/41/2 25/42/2 27/43/2
f 27/43/2 25/42/2 28/44/2
f 27/17/4 28/18/4 29/19/4
f 29/19/4 28/18/4 30/20/4
f 29/45/5 30/46/5 31/47/5
f 31/47/5 30/46/5 32/48/5
f 31/49/8 32/50/8 33/51/8
f 33/51/8 32/50/8 34/52/8
f 33/53/5 34/54/5 35/55/5
f 35/55/5 34/54/5 36/56/5
f 35/1/1 36/2/1 1/3/1
f 1/3/1 36/2/1 2/4/1
f 23/57/9 19/58/9 34/59/9
f 18/60/9 17/61/9 6/62/9
f 23/57/9 34/59/9 24/63/9
f 17/61/9 8/64/9 6/62/9
f 4/65/9 19/58/9 6/62/9
f 4/65/9 2/66/9 19/58/9
f 10/67/9 14/68/9 12/69/9
f 10/67/9 8/64/9 14/68/9
f 8/64/9 17/61/9 14/68/9
f 32/70/9 25/71/9 24/63/9
f 6/62/9 19/58/9 18/60/9
f 24/63/9 34/59/9 32/70/9
f 28/72/9 25/71/9 30/73/9
f 25/71/9 32/70/9 30/73/9
f 19/58/9 2/66/9 36/74/9
f 34/59/9 19/58/9 36/74/9
f 21/57/10 33/59/10 20/58/10
f 22/63/10 33/59/10 21/57/10
f 15/60/10 5/62/10 16/61/10
f 22/63/10 26/71/10 31/70/10
f 35/74/10 20/58/10 33/59/10
f 35/74/10 1/66/10 20/58/10
f 31/70/10 26/71/10 29/73/10
f 29/73/10 26/71/10 27/72/10
f 22/63/10 31/70/10 33/59/10
f 20/58/10 5/62/10 15/60/10
f 16/61/10 5/62/10 7/64/10
f 13/68/10 16/61/10 7/64/10
f 11/69/10 13/68/10 9/67/10
f 13/68/10 7/64/10 9/67/10
f 20/58/10 3/65/10 5/62/10
f 3/65/10 20/58/10 1/66/10

View File

@ -0,0 +1,494 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION((('kittycad.io export')), '2;1');
FILE_NAME('dump.step', '1970-01-01T00:00:00.0+00:00', ('Author unknown'), ('Organization unknown'), 'kittycad.io beta', 'kittycad.io', 'Authorization unknown');
FILE_SCHEMA(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF'));
ENDSEC;
DATA;
#1 = (
LENGTH_UNIT()
NAMED_UNIT(*)
SI_UNIT($, .METRE.)
);
#2 = UNCERTAINTY_MEASURE_WITH_UNIT(0.00001, #1, 'DISTANCE_ACCURACY_VALUE', $);
#3 = (
GEOMETRIC_REPRESENTATION_CONTEXT(3)
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#2))
GLOBAL_UNIT_ASSIGNED_CONTEXT((#1))
REPRESENTATION_CONTEXT('', '3D')
);
#4 = CARTESIAN_POINT('NONE', (0, 0, -0));
#5 = VERTEX_POINT('NONE', #4);
#6 = CARTESIAN_POINT('NONE', (0, -0.0254, -0));
#7 = VERTEX_POINT('NONE', #6);
#8 = CARTESIAN_POINT('NONE', (0, -0.0254, 0.1016));
#9 = VERTEX_POINT('NONE', #8);
#10 = CARTESIAN_POINT('NONE', (0, 0, 0.1016));
#11 = VERTEX_POINT('NONE', #10);
#12 = CARTESIAN_POINT('NONE', (0.07861346939195568, -0.0254, -0));
#13 = VERTEX_POINT('NONE', #12);
#14 = CARTESIAN_POINT('NONE', (0.07861346939195568, -0.0254, 0.1016));
#15 = VERTEX_POINT('NONE', #14);
#16 = CARTESIAN_POINT('NONE', (0.1511633881344551, -0.07619999999999998, -0));
#17 = VERTEX_POINT('NONE', #16);
#18 = CARTESIAN_POINT('NONE', (0.1511633881344551, -0.07619999999999998, 0.1016));
#19 = VERTEX_POINT('NONE', #18);
#20 = CARTESIAN_POINT('NONE', (0.2413, -0.0762, -0));
#21 = VERTEX_POINT('NONE', #20);
#22 = CARTESIAN_POINT('NONE', (0.2413, -0.0762, 0.1016));
#23 = VERTEX_POINT('NONE', #22);
#24 = CARTESIAN_POINT('NONE', (0.2413, -0.0635, -0));
#25 = VERTEX_POINT('NONE', #24);
#26 = CARTESIAN_POINT('NONE', (0.2413, -0.0635, 0.1016));
#27 = VERTEX_POINT('NONE', #26);
#28 = CARTESIAN_POINT('NONE', (0.1551676827532182, -0.0635, -0));
#29 = VERTEX_POINT('NONE', #28);
#30 = CARTESIAN_POINT('NONE', (0.1551676827532182, -0.0635, 0.1016));
#31 = VERTEX_POINT('NONE', #30);
#32 = CARTESIAN_POINT('NONE', (0.06448028432509392, 0, -0));
#33 = VERTEX_POINT('NONE', #32);
#34 = CARTESIAN_POINT('NONE', (0.06448028432509392, 0, 0.1016));
#35 = VERTEX_POINT('NONE', #34);
#36 = CARTESIAN_POINT('NONE', (0.14618599799650817, 0.03810000000000001, -0));
#37 = VERTEX_POINT('NONE', #36);
#38 = CARTESIAN_POINT('NONE', (0.14618599799650817, 0.03810000000000001, 0.1016));
#39 = VERTEX_POINT('NONE', #38);
#40 = CARTESIAN_POINT('NONE', (0.2413, 0.0381, -0));
#41 = VERTEX_POINT('NONE', #40);
#42 = CARTESIAN_POINT('NONE', (0.2413, 0.0381, 0.1016));
#43 = VERTEX_POINT('NONE', #42);
#44 = CARTESIAN_POINT('NONE', (0.2413, 0.0508, -0));
#45 = VERTEX_POINT('NONE', #44);
#46 = CARTESIAN_POINT('NONE', (0.2413, 0.0508, 0.1016));
#47 = VERTEX_POINT('NONE', #46);
#48 = CARTESIAN_POINT('NONE', (0.14337047578094278, 0.0508, -0));
#49 = VERTEX_POINT('NONE', #48);
#50 = CARTESIAN_POINT('NONE', (0.14337047578094278, 0.0508, 0.1016));
#51 = VERTEX_POINT('NONE', #50);
#52 = CARTESIAN_POINT('NONE', (0.08889999999999999, 0.0254, -0));
#53 = VERTEX_POINT('NONE', #52);
#54 = CARTESIAN_POINT('NONE', (0.08889999999999999, 0.0254, 0.1016));
#55 = VERTEX_POINT('NONE', #54);
#56 = CARTESIAN_POINT('NONE', (0, 0.0254, -0));
#57 = VERTEX_POINT('NONE', #56);
#58 = CARTESIAN_POINT('NONE', (0, 0.0254, 0.1016));
#59 = VERTEX_POINT('NONE', #58);
#60 = DIRECTION('NONE', (0, -1, 0));
#61 = VECTOR('NONE', #60, 0.0254);
#62 = CARTESIAN_POINT('NONE', (0, 0, -0));
#63 = LINE('NONE', #62, #61);
#64 = DIRECTION('NONE', (0, 0, 1));
#65 = VECTOR('NONE', #64, 0.1016);
#66 = CARTESIAN_POINT('NONE', (0, -0.0254, -0));
#67 = LINE('NONE', #66, #65);
#68 = DIRECTION('NONE', (0, -1, 0));
#69 = VECTOR('NONE', #68, 0.0254);
#70 = CARTESIAN_POINT('NONE', (0, 0, 0.1016));
#71 = LINE('NONE', #70, #69);
#72 = DIRECTION('NONE', (0, 0, 1));
#73 = VECTOR('NONE', #72, 0.1016);
#74 = CARTESIAN_POINT('NONE', (0, 0, -0));
#75 = LINE('NONE', #74, #73);
#76 = DIRECTION('NONE', (1, 0, 0));
#77 = VECTOR('NONE', #76, 0.07861346939195568);
#78 = CARTESIAN_POINT('NONE', (0, -0.0254, -0));
#79 = LINE('NONE', #78, #77);
#80 = DIRECTION('NONE', (0, 0, 1));
#81 = VECTOR('NONE', #80, 0.1016);
#82 = CARTESIAN_POINT('NONE', (0.07861346939195568, -0.0254, -0));
#83 = LINE('NONE', #82, #81);
#84 = DIRECTION('NONE', (1, 0, 0));
#85 = VECTOR('NONE', #84, 0.07861346939195568);
#86 = CARTESIAN_POINT('NONE', (0, -0.0254, 0.1016));
#87 = LINE('NONE', #86, #85);
#88 = DIRECTION('NONE', (0.8191520442889919, -0.5735764363510459, 0));
#89 = VECTOR('NONE', #88, 0.08856709721755177);
#90 = CARTESIAN_POINT('NONE', (0.07861346939195568, -0.0254, -0));
#91 = LINE('NONE', #90, #89);
#92 = DIRECTION('NONE', (0, 0, 1));
#93 = VECTOR('NONE', #92, 0.1016);
#94 = CARTESIAN_POINT('NONE', (0.1511633881344551, -0.07619999999999998, -0));
#95 = LINE('NONE', #94, #93);
#96 = DIRECTION('NONE', (0.8191520442889919, -0.5735764363510459, 0));
#97 = VECTOR('NONE', #96, 0.08856709721755177);
#98 = CARTESIAN_POINT('NONE', (0.07861346939195568, -0.0254, 0.1016));
#99 = LINE('NONE', #98, #97);
#100 = DIRECTION('NONE', (1, -0.0000000000000003079278779307945, 0));
#101 = VECTOR('NONE', #100, 0.09013661186554489);
#102 = CARTESIAN_POINT('NONE', (0.1511633881344551, -0.07619999999999998, -0));
#103 = LINE('NONE', #102, #101);
#104 = DIRECTION('NONE', (0, 0, 1));
#105 = VECTOR('NONE', #104, 0.1016);
#106 = CARTESIAN_POINT('NONE', (0.2413, -0.0762, -0));
#107 = LINE('NONE', #106, #105);
#108 = DIRECTION('NONE', (1, -0.0000000000000003079278779307945, 0));
#109 = VECTOR('NONE', #108, 0.09013661186554489);
#110 = CARTESIAN_POINT('NONE', (0.1511633881344551, -0.07619999999999998, 0.1016));
#111 = LINE('NONE', #110, #109);
#112 = DIRECTION('NONE', (0, 1, 0));
#113 = VECTOR('NONE', #112, 0.012700000000000003);
#114 = CARTESIAN_POINT('NONE', (0.2413, -0.0762, -0));
#115 = LINE('NONE', #114, #113);
#116 = DIRECTION('NONE', (0, 0, 1));
#117 = VECTOR('NONE', #116, 0.1016);
#118 = CARTESIAN_POINT('NONE', (0.2413, -0.0635, -0));
#119 = LINE('NONE', #118, #117);
#120 = DIRECTION('NONE', (0, 1, 0));
#121 = VECTOR('NONE', #120, 0.012700000000000003);
#122 = CARTESIAN_POINT('NONE', (0.2413, -0.0762, 0.1016));
#123 = LINE('NONE', #122, #121);
#124 = DIRECTION('NONE', (-1, 0, 0));
#125 = VECTOR('NONE', #124, 0.08613231724678178);
#126 = CARTESIAN_POINT('NONE', (0.2413, -0.0635, -0));
#127 = LINE('NONE', #126, #125);
#128 = DIRECTION('NONE', (0, 0, 1));
#129 = VECTOR('NONE', #128, 0.1016);
#130 = CARTESIAN_POINT('NONE', (0.1551676827532182, -0.0635, -0));
#131 = LINE('NONE', #130, #129);
#132 = DIRECTION('NONE', (-1, 0, 0));
#133 = VECTOR('NONE', #132, 0.08613231724678178);
#134 = CARTESIAN_POINT('NONE', (0.2413, -0.0635, 0.1016));
#135 = LINE('NONE', #134, #133);
#136 = DIRECTION('NONE', (-0.8191520442889918, 0.573576436351046, 0));
#137 = VECTOR('NONE', #136, 0.11070887152193974);
#138 = CARTESIAN_POINT('NONE', (0.1551676827532182, -0.0635, -0));
#139 = LINE('NONE', #138, #137);
#140 = DIRECTION('NONE', (0, 0, 1));
#141 = VECTOR('NONE', #140, 0.1016);
#142 = CARTESIAN_POINT('NONE', (0.06448028432509392, 0, -0));
#143 = LINE('NONE', #142, #141);
#144 = DIRECTION('NONE', (-0.8191520442889918, 0.573576436351046, 0));
#145 = VECTOR('NONE', #144, 0.11070887152193974);
#146 = CARTESIAN_POINT('NONE', (0.1551676827532182, -0.0635, 0.1016));
#147 = LINE('NONE', #146, #145);
#148 = DIRECTION('NONE', (0.90630778703665, 0.4226182617406993, 0));
#149 = VECTOR('NONE', #148, 0.09015228031811025);
#150 = CARTESIAN_POINT('NONE', (0.06448028432509392, 0, -0));
#151 = LINE('NONE', #150, #149);
#152 = DIRECTION('NONE', (0, 0, 1));
#153 = VECTOR('NONE', #152, 0.1016);
#154 = CARTESIAN_POINT('NONE', (0.14618599799650817, 0.03810000000000001, -0));
#155 = LINE('NONE', #154, #153);
#156 = DIRECTION('NONE', (0.90630778703665, 0.4226182617406993, 0));
#157 = VECTOR('NONE', #156, 0.09015228031811025);
#158 = CARTESIAN_POINT('NONE', (0.06448028432509392, 0, 0.1016));
#159 = LINE('NONE', #158, #157);
#160 = DIRECTION('NONE', (1, -0.00000000000000007295344279228718, 0));
#161 = VECTOR('NONE', #160, 0.09511400200349182);
#162 = CARTESIAN_POINT('NONE', (0.14618599799650817, 0.03810000000000001, -0));
#163 = LINE('NONE', #162, #161);
#164 = DIRECTION('NONE', (0, 0, 1));
#165 = VECTOR('NONE', #164, 0.1016);
#166 = CARTESIAN_POINT('NONE', (0.2413, 0.0381, -0));
#167 = LINE('NONE', #166, #165);
#168 = DIRECTION('NONE', (1, -0.00000000000000007295344279228718, 0));
#169 = VECTOR('NONE', #168, 0.09511400200349182);
#170 = CARTESIAN_POINT('NONE', (0.14618599799650817, 0.03810000000000001, 0.1016));
#171 = LINE('NONE', #170, #169);
#172 = DIRECTION('NONE', (0, 1, 0));
#173 = VECTOR('NONE', #172, 0.012699999999999996);
#174 = CARTESIAN_POINT('NONE', (0.2413, 0.0381, -0));
#175 = LINE('NONE', #174, #173);
#176 = DIRECTION('NONE', (0, 0, 1));
#177 = VECTOR('NONE', #176, 0.1016);
#178 = CARTESIAN_POINT('NONE', (0.2413, 0.0508, -0));
#179 = LINE('NONE', #178, #177);
#180 = DIRECTION('NONE', (0, 1, 0));
#181 = VECTOR('NONE', #180, 0.012699999999999996);
#182 = CARTESIAN_POINT('NONE', (0.2413, 0.0381, 0.1016));
#183 = LINE('NONE', #182, #181);
#184 = DIRECTION('NONE', (-1, 0, 0));
#185 = VECTOR('NONE', #184, 0.0979295242190572);
#186 = CARTESIAN_POINT('NONE', (0.2413, 0.0508, -0));
#187 = LINE('NONE', #186, #185);
#188 = DIRECTION('NONE', (0, 0, 1));
#189 = VECTOR('NONE', #188, 0.1016);
#190 = CARTESIAN_POINT('NONE', (0.14337047578094278, 0.0508, -0));
#191 = LINE('NONE', #190, #189);
#192 = DIRECTION('NONE', (-1, 0, 0));
#193 = VECTOR('NONE', #192, 0.0979295242190572);
#194 = CARTESIAN_POINT('NONE', (0.2413, 0.0508, 0.1016));
#195 = LINE('NONE', #194, #193);
#196 = DIRECTION('NONE', (-0.9063077870366499, -0.42261826174069944, 0));
#197 = VECTOR('NONE', #196, 0.06010152021207346);
#198 = CARTESIAN_POINT('NONE', (0.14337047578094278, 0.0508, -0));
#199 = LINE('NONE', #198, #197);
#200 = DIRECTION('NONE', (0, 0, 1));
#201 = VECTOR('NONE', #200, 0.1016);
#202 = CARTESIAN_POINT('NONE', (0.08889999999999999, 0.0254, -0));
#203 = LINE('NONE', #202, #201);
#204 = DIRECTION('NONE', (-0.9063077870366499, -0.42261826174069944, 0));
#205 = VECTOR('NONE', #204, 0.06010152021207346);
#206 = CARTESIAN_POINT('NONE', (0.14337047578094278, 0.0508, 0.1016));
#207 = LINE('NONE', #206, #205);
#208 = DIRECTION('NONE', (-1, 0, 0));
#209 = VECTOR('NONE', #208, 0.08889999999999999);
#210 = CARTESIAN_POINT('NONE', (0.08889999999999999, 0.0254, -0));
#211 = LINE('NONE', #210, #209);
#212 = DIRECTION('NONE', (0, 0, 1));
#213 = VECTOR('NONE', #212, 0.1016);
#214 = CARTESIAN_POINT('NONE', (0, 0.0254, -0));
#215 = LINE('NONE', #214, #213);
#216 = DIRECTION('NONE', (-1, 0, 0));
#217 = VECTOR('NONE', #216, 0.08889999999999999);
#218 = CARTESIAN_POINT('NONE', (0.08889999999999999, 0.0254, 0.1016));
#219 = LINE('NONE', #218, #217);
#220 = DIRECTION('NONE', (0, -1, 0));
#221 = VECTOR('NONE', #220, 0.0254);
#222 = CARTESIAN_POINT('NONE', (0, 0.0254, -0));
#223 = LINE('NONE', #222, #221);
#224 = DIRECTION('NONE', (0, -1, 0));
#225 = VECTOR('NONE', #224, 0.0254);
#226 = CARTESIAN_POINT('NONE', (0, 0.0254, 0.1016));
#227 = LINE('NONE', #226, #225);
#228 = EDGE_CURVE('NONE', #5, #7, #63, .T.);
#229 = EDGE_CURVE('NONE', #7, #9, #67, .T.);
#230 = EDGE_CURVE('NONE', #11, #9, #71, .T.);
#231 = EDGE_CURVE('NONE', #5, #11, #75, .T.);
#232 = EDGE_CURVE('NONE', #7, #13, #79, .T.);
#233 = EDGE_CURVE('NONE', #13, #15, #83, .T.);
#234 = EDGE_CURVE('NONE', #9, #15, #87, .T.);
#235 = EDGE_CURVE('NONE', #13, #17, #91, .T.);
#236 = EDGE_CURVE('NONE', #17, #19, #95, .T.);
#237 = EDGE_CURVE('NONE', #15, #19, #99, .T.);
#238 = EDGE_CURVE('NONE', #17, #21, #103, .T.);
#239 = EDGE_CURVE('NONE', #21, #23, #107, .T.);
#240 = EDGE_CURVE('NONE', #19, #23, #111, .T.);
#241 = EDGE_CURVE('NONE', #21, #25, #115, .T.);
#242 = EDGE_CURVE('NONE', #25, #27, #119, .T.);
#243 = EDGE_CURVE('NONE', #23, #27, #123, .T.);
#244 = EDGE_CURVE('NONE', #25, #29, #127, .T.);
#245 = EDGE_CURVE('NONE', #29, #31, #131, .T.);
#246 = EDGE_CURVE('NONE', #27, #31, #135, .T.);
#247 = EDGE_CURVE('NONE', #29, #33, #139, .T.);
#248 = EDGE_CURVE('NONE', #33, #35, #143, .T.);
#249 = EDGE_CURVE('NONE', #31, #35, #147, .T.);
#250 = EDGE_CURVE('NONE', #33, #37, #151, .T.);
#251 = EDGE_CURVE('NONE', #37, #39, #155, .T.);
#252 = EDGE_CURVE('NONE', #35, #39, #159, .T.);
#253 = EDGE_CURVE('NONE', #37, #41, #163, .T.);
#254 = EDGE_CURVE('NONE', #41, #43, #167, .T.);
#255 = EDGE_CURVE('NONE', #39, #43, #171, .T.);
#256 = EDGE_CURVE('NONE', #41, #45, #175, .T.);
#257 = EDGE_CURVE('NONE', #45, #47, #179, .T.);
#258 = EDGE_CURVE('NONE', #43, #47, #183, .T.);
#259 = EDGE_CURVE('NONE', #45, #49, #187, .T.);
#260 = EDGE_CURVE('NONE', #49, #51, #191, .T.);
#261 = EDGE_CURVE('NONE', #47, #51, #195, .T.);
#262 = EDGE_CURVE('NONE', #49, #53, #199, .T.);
#263 = EDGE_CURVE('NONE', #53, #55, #203, .T.);
#264 = EDGE_CURVE('NONE', #51, #55, #207, .T.);
#265 = EDGE_CURVE('NONE', #53, #57, #211, .T.);
#266 = EDGE_CURVE('NONE', #57, #59, #215, .T.);
#267 = EDGE_CURVE('NONE', #55, #59, #219, .T.);
#268 = EDGE_CURVE('NONE', #57, #5, #223, .T.);
#269 = EDGE_CURVE('NONE', #59, #11, #227, .T.);
#270 = ORIENTED_EDGE('NONE', *, *, #228, .T.);
#271 = ORIENTED_EDGE('NONE', *, *, #229, .T.);
#272 = ORIENTED_EDGE('NONE', *, *, #230, .F.);
#273 = ORIENTED_EDGE('NONE', *, *, #231, .F.);
#274 = EDGE_LOOP('NONE', (#270, #271, #272, #273));
#275 = ORIENTED_EDGE('NONE', *, *, #232, .T.);
#276 = ORIENTED_EDGE('NONE', *, *, #233, .T.);
#277 = ORIENTED_EDGE('NONE', *, *, #234, .F.);
#278 = ORIENTED_EDGE('NONE', *, *, #229, .F.);
#279 = EDGE_LOOP('NONE', (#275, #276, #277, #278));
#280 = ORIENTED_EDGE('NONE', *, *, #235, .T.);
#281 = ORIENTED_EDGE('NONE', *, *, #236, .T.);
#282 = ORIENTED_EDGE('NONE', *, *, #237, .F.);
#283 = ORIENTED_EDGE('NONE', *, *, #233, .F.);
#284 = EDGE_LOOP('NONE', (#280, #281, #282, #283));
#285 = ORIENTED_EDGE('NONE', *, *, #238, .T.);
#286 = ORIENTED_EDGE('NONE', *, *, #239, .T.);
#287 = ORIENTED_EDGE('NONE', *, *, #240, .F.);
#288 = ORIENTED_EDGE('NONE', *, *, #236, .F.);
#289 = EDGE_LOOP('NONE', (#285, #286, #287, #288));
#290 = ORIENTED_EDGE('NONE', *, *, #241, .T.);
#291 = ORIENTED_EDGE('NONE', *, *, #242, .T.);
#292 = ORIENTED_EDGE('NONE', *, *, #243, .F.);
#293 = ORIENTED_EDGE('NONE', *, *, #239, .F.);
#294 = EDGE_LOOP('NONE', (#290, #291, #292, #293));
#295 = ORIENTED_EDGE('NONE', *, *, #244, .T.);
#296 = ORIENTED_EDGE('NONE', *, *, #245, .T.);
#297 = ORIENTED_EDGE('NONE', *, *, #246, .F.);
#298 = ORIENTED_EDGE('NONE', *, *, #242, .F.);
#299 = EDGE_LOOP('NONE', (#295, #296, #297, #298));
#300 = ORIENTED_EDGE('NONE', *, *, #247, .T.);
#301 = ORIENTED_EDGE('NONE', *, *, #248, .T.);
#302 = ORIENTED_EDGE('NONE', *, *, #249, .F.);
#303 = ORIENTED_EDGE('NONE', *, *, #245, .F.);
#304 = EDGE_LOOP('NONE', (#300, #301, #302, #303));
#305 = ORIENTED_EDGE('NONE', *, *, #250, .T.);
#306 = ORIENTED_EDGE('NONE', *, *, #251, .T.);
#307 = ORIENTED_EDGE('NONE', *, *, #252, .F.);
#308 = ORIENTED_EDGE('NONE', *, *, #248, .F.);
#309 = EDGE_LOOP('NONE', (#305, #306, #307, #308));
#310 = ORIENTED_EDGE('NONE', *, *, #253, .T.);
#311 = ORIENTED_EDGE('NONE', *, *, #254, .T.);
#312 = ORIENTED_EDGE('NONE', *, *, #255, .F.);
#313 = ORIENTED_EDGE('NONE', *, *, #251, .F.);
#314 = EDGE_LOOP('NONE', (#310, #311, #312, #313));
#315 = ORIENTED_EDGE('NONE', *, *, #256, .T.);
#316 = ORIENTED_EDGE('NONE', *, *, #257, .T.);
#317 = ORIENTED_EDGE('NONE', *, *, #258, .F.);
#318 = ORIENTED_EDGE('NONE', *, *, #254, .F.);
#319 = EDGE_LOOP('NONE', (#315, #316, #317, #318));
#320 = ORIENTED_EDGE('NONE', *, *, #259, .T.);
#321 = ORIENTED_EDGE('NONE', *, *, #260, .T.);
#322 = ORIENTED_EDGE('NONE', *, *, #261, .F.);
#323 = ORIENTED_EDGE('NONE', *, *, #257, .F.);
#324 = EDGE_LOOP('NONE', (#320, #321, #322, #323));
#325 = ORIENTED_EDGE('NONE', *, *, #262, .T.);
#326 = ORIENTED_EDGE('NONE', *, *, #263, .T.);
#327 = ORIENTED_EDGE('NONE', *, *, #264, .F.);
#328 = ORIENTED_EDGE('NONE', *, *, #260, .F.);
#329 = EDGE_LOOP('NONE', (#325, #326, #327, #328));
#330 = ORIENTED_EDGE('NONE', *, *, #265, .T.);
#331 = ORIENTED_EDGE('NONE', *, *, #266, .T.);
#332 = ORIENTED_EDGE('NONE', *, *, #267, .F.);
#333 = ORIENTED_EDGE('NONE', *, *, #263, .F.);
#334 = EDGE_LOOP('NONE', (#330, #331, #332, #333));
#335 = ORIENTED_EDGE('NONE', *, *, #268, .T.);
#336 = ORIENTED_EDGE('NONE', *, *, #231, .T.);
#337 = ORIENTED_EDGE('NONE', *, *, #269, .F.);
#338 = ORIENTED_EDGE('NONE', *, *, #266, .F.);
#339 = EDGE_LOOP('NONE', (#335, #336, #337, #338));
#340 = ORIENTED_EDGE('NONE', *, *, #228, .T.);
#341 = ORIENTED_EDGE('NONE', *, *, #232, .T.);
#342 = ORIENTED_EDGE('NONE', *, *, #235, .T.);
#343 = ORIENTED_EDGE('NONE', *, *, #238, .T.);
#344 = ORIENTED_EDGE('NONE', *, *, #241, .T.);
#345 = ORIENTED_EDGE('NONE', *, *, #244, .T.);
#346 = ORIENTED_EDGE('NONE', *, *, #247, .T.);
#347 = ORIENTED_EDGE('NONE', *, *, #250, .T.);
#348 = ORIENTED_EDGE('NONE', *, *, #253, .T.);
#349 = ORIENTED_EDGE('NONE', *, *, #256, .T.);
#350 = ORIENTED_EDGE('NONE', *, *, #259, .T.);
#351 = ORIENTED_EDGE('NONE', *, *, #262, .T.);
#352 = ORIENTED_EDGE('NONE', *, *, #265, .T.);
#353 = ORIENTED_EDGE('NONE', *, *, #268, .T.);
#354 = EDGE_LOOP('NONE', (#340, #341, #342, #343, #344, #345, #346, #347, #348, #349, #350, #351, #352, #353));
#355 = ORIENTED_EDGE('NONE', *, *, #230, .T.);
#356 = ORIENTED_EDGE('NONE', *, *, #234, .T.);
#357 = ORIENTED_EDGE('NONE', *, *, #237, .T.);
#358 = ORIENTED_EDGE('NONE', *, *, #240, .T.);
#359 = ORIENTED_EDGE('NONE', *, *, #243, .T.);
#360 = ORIENTED_EDGE('NONE', *, *, #246, .T.);
#361 = ORIENTED_EDGE('NONE', *, *, #249, .T.);
#362 = ORIENTED_EDGE('NONE', *, *, #252, .T.);
#363 = ORIENTED_EDGE('NONE', *, *, #255, .T.);
#364 = ORIENTED_EDGE('NONE', *, *, #258, .T.);
#365 = ORIENTED_EDGE('NONE', *, *, #261, .T.);
#366 = ORIENTED_EDGE('NONE', *, *, #264, .T.);
#367 = ORIENTED_EDGE('NONE', *, *, #267, .T.);
#368 = ORIENTED_EDGE('NONE', *, *, #269, .T.);
#369 = EDGE_LOOP('NONE', (#355, #356, #357, #358, #359, #360, #361, #362, #363, #364, #365, #366, #367, #368));
#370 = CARTESIAN_POINT('NONE', (0, -0.0127, 0.0508));
#371 = DIRECTION('NONE', (-1, 0, -0));
#372 = AXIS2_PLACEMENT_3D('NONE', #370, #371, $);
#373 = PLANE('NONE', #372);
#374 = CARTESIAN_POINT('NONE', (0.039306734695977924, -0.025399999999999995, 0.0508));
#375 = DIRECTION('NONE', (0, -1, -0));
#376 = AXIS2_PLACEMENT_3D('NONE', #374, #375, $);
#377 = PLANE('NONE', #376);
#378 = CARTESIAN_POINT('NONE', (0.11488842876320533, -0.05079999999999996, 0.05079999999999999));
#379 = DIRECTION('NONE', (-0.5735764363510459, -0.819152044288992, 0));
#380 = AXIS2_PLACEMENT_3D('NONE', #378, #379, $);
#381 = PLANE('NONE', #380);
#382 = CARTESIAN_POINT('NONE', (0.19623169406722757, -0.07619999999999999, 0.0508));
#383 = DIRECTION('NONE', (0, -1, -0));
#384 = AXIS2_PLACEMENT_3D('NONE', #382, #383, $);
#385 = PLANE('NONE', #384);
#386 = CARTESIAN_POINT('NONE', (0.2413, -0.06985, 0.0508));
#387 = DIRECTION('NONE', (1, 0, -0));
#388 = AXIS2_PLACEMENT_3D('NONE', #386, #387, $);
#389 = PLANE('NONE', #388);
#390 = CARTESIAN_POINT('NONE', (0.19823384137660915, -0.0635, 0.0508));
#391 = DIRECTION('NONE', (0, 1, -0));
#392 = AXIS2_PLACEMENT_3D('NONE', #390, #391, $);
#393 = PLANE('NONE', #392);
#394 = CARTESIAN_POINT('NONE', (0.10982398353915601, -0.03174999999999997, 0.0508));
#395 = DIRECTION('NONE', (0.573576436351046, 0.8191520442889918, -0));
#396 = AXIS2_PLACEMENT_3D('NONE', #394, #395, $);
#397 = PLANE('NONE', #396);
#398 = CARTESIAN_POINT('NONE', (0.105333141160801, 0.019049999999999987, 0.0508));
#399 = DIRECTION('NONE', (0.4226182617406993, -0.90630778703665, -0));
#400 = AXIS2_PLACEMENT_3D('NONE', #398, #399, $);
#401 = PLANE('NONE', #400);
#402 = CARTESIAN_POINT('NONE', (0.19374299899825406, 0.0381, 0.0508));
#403 = DIRECTION('NONE', (0, -1, -0));
#404 = AXIS2_PLACEMENT_3D('NONE', #402, #403, $);
#405 = PLANE('NONE', #404);
#406 = CARTESIAN_POINT('NONE', (0.2413, 0.044449999999999996, 0.0508));
#407 = DIRECTION('NONE', (1, 0, -0));
#408 = AXIS2_PLACEMENT_3D('NONE', #406, #407, $);
#409 = PLANE('NONE', #408);
#410 = CARTESIAN_POINT('NONE', (0.19233523789047138, 0.0508, 0.0508));
#411 = DIRECTION('NONE', (0, 1, -0));
#412 = AXIS2_PLACEMENT_3D('NONE', #410, #411, $);
#413 = PLANE('NONE', #412);
#414 = CARTESIAN_POINT('NONE', (0.11613523789047137, 0.0381, 0.05079999999999999));
#415 = DIRECTION('NONE', (-0.42261826174069966, 0.90630778703665, -0));
#416 = AXIS2_PLACEMENT_3D('NONE', #414, #415, $);
#417 = PLANE('NONE', #416);
#418 = CARTESIAN_POINT('NONE', (0.044449999999999996, 0.0254, 0.0508));
#419 = DIRECTION('NONE', (0, 1, -0));
#420 = AXIS2_PLACEMENT_3D('NONE', #418, #419, $);
#421 = PLANE('NONE', #420);
#422 = CARTESIAN_POINT('NONE', (0, 0.0127, 0.0508));
#423 = DIRECTION('NONE', (-1, 0, -0));
#424 = AXIS2_PLACEMENT_3D('NONE', #422, #423, $);
#425 = PLANE('NONE', #424);
#426 = CARTESIAN_POINT('NONE', (0, 0, -0));
#427 = DIRECTION('NONE', (0, 0, 1));
#428 = AXIS2_PLACEMENT_3D('NONE', #426, #427, $);
#429 = PLANE('NONE', #428);
#430 = CARTESIAN_POINT('NONE', (0, 0, 0.1016));
#431 = DIRECTION('NONE', (0, 0, 1));
#432 = AXIS2_PLACEMENT_3D('NONE', #430, #431, $);
#433 = PLANE('NONE', #432);
#434 = FACE_OUTER_BOUND('NONE', #274, .T.);
#435 = ADVANCED_FACE('NONE', (#434), #373, .T.);
#436 = FACE_OUTER_BOUND('NONE', #279, .T.);
#437 = ADVANCED_FACE('NONE', (#436), #377, .T.);
#438 = FACE_OUTER_BOUND('NONE', #284, .T.);
#439 = ADVANCED_FACE('NONE', (#438), #381, .T.);
#440 = FACE_OUTER_BOUND('NONE', #289, .T.);
#441 = ADVANCED_FACE('NONE', (#440), #385, .T.);
#442 = FACE_OUTER_BOUND('NONE', #294, .T.);
#443 = ADVANCED_FACE('NONE', (#442), #389, .T.);
#444 = FACE_OUTER_BOUND('NONE', #299, .T.);
#445 = ADVANCED_FACE('NONE', (#444), #393, .T.);
#446 = FACE_OUTER_BOUND('NONE', #304, .T.);
#447 = ADVANCED_FACE('NONE', (#446), #397, .T.);
#448 = FACE_OUTER_BOUND('NONE', #309, .T.);
#449 = ADVANCED_FACE('NONE', (#448), #401, .T.);
#450 = FACE_OUTER_BOUND('NONE', #314, .T.);
#451 = ADVANCED_FACE('NONE', (#450), #405, .T.);
#452 = FACE_OUTER_BOUND('NONE', #319, .T.);
#453 = ADVANCED_FACE('NONE', (#452), #409, .T.);
#454 = FACE_OUTER_BOUND('NONE', #324, .T.);
#455 = ADVANCED_FACE('NONE', (#454), #413, .T.);
#456 = FACE_OUTER_BOUND('NONE', #329, .T.);
#457 = ADVANCED_FACE('NONE', (#456), #417, .T.);
#458 = FACE_OUTER_BOUND('NONE', #334, .T.);
#459 = ADVANCED_FACE('NONE', (#458), #421, .T.);
#460 = FACE_OUTER_BOUND('NONE', #339, .T.);
#461 = ADVANCED_FACE('NONE', (#460), #425, .T.);
#462 = FACE_OUTER_BOUND('NONE', #354, .T.);
#463 = ADVANCED_FACE('NONE', (#462), #429, .F.);
#464 = FACE_OUTER_BOUND('NONE', #369, .T.);
#465 = ADVANCED_FACE('NONE', (#464), #433, .T.);
#466 = CLOSED_SHELL('NONE', (#435, #437, #439, #441, #443, #445, #447, #449, #451, #453, #455, #457, #459, #461, #463, #465));
#467 = ORIENTED_CLOSED_SHELL('NONE', *, #466, .T.);
#468 = MANIFOLD_SOLID_BREP('NONE', #467);
#469 = APPLICATION_CONTEXT('configuration controlled 3D design of mechanical parts and assemblies');
#470 = PRODUCT_DEFINITION_CONTEXT('part definition', #469, 'design');
#471 = PRODUCT('UNIDENTIFIED_PRODUCT', 'NONE', $, ());
#472 = PRODUCT_DEFINITION_FORMATION('', $, #471);
#473 = PRODUCT_DEFINITION('design', $, #472, #470);
#474 = PRODUCT_DEFINITION_SHAPE('NONE', $, #473);
#475 = ADVANCED_BREP_SHAPE_REPRESENTATION('NONE', (#468), #3);
#476 = SHAPE_DEFINITION_REPRESENTATION(#474, #475);
ENDSEC;
END-ISO-10303-21;

View File

@ -3,6 +3,8 @@ import { secrets } from './secrets'
import { EngineCommand } from '../../src/lang/std/engineConnection'
import { v4 as uuidv4 } from 'uuid'
import { getUtils } from './test-utils'
import { Models } from '@kittycad/lib'
import fsp from 'fs/promises'
test.beforeEach(async ({ context, page }) => {
await context.addInitScript(async (token) => {
@ -132,3 +134,152 @@ test('change camera, show planes', async ({ page, context }) => {
maxDiffPixels: 100,
})
})
test('exports of each format should work', async ({ page, context }) => {
// FYI this test doesn't work with only engine running locally
const u = getUtils(page)
await context.addInitScript(async () => {
;(window as any).playwrightSkipFilePicker = true
localStorage.setItem(
'persistCode',
`const topAng = 25
const bottomAng = 35
const baseLen = 3.5
const baseHeight = 1
const totalHeightHalf = 2
const armThick = 0.5
const totalLen = 9.5
const part001 = startSketchOn('-XZ')
|> startProfileAt([0, 0], %)
|> yLine(baseHeight, %)
|> xLine(baseLen, %)
|> angledLineToY({
angle: topAng,
to: totalHeightHalf,
tag: 'seg04'
}, %)
|> xLineTo({ to: totalLen, tag: 'seg03' }, %)
|> yLine({ length: -armThick, tag: 'seg01' }, %)
|> angledLineThatIntersects({
angle: _180,
offset: -armThick,
intersectTag: 'seg04'
}, %)
|> angledLineToY([segAng('seg04', %) + 180, _0], %)
|> angledLineToY({
angle: -bottomAng,
to: -totalHeightHalf - armThick,
tag: 'seg02'
}, %)
|> xLineTo(segEndX('seg03', %) + 0, %)
|> yLine(-segLen('seg01', %), %)
|> angledLineThatIntersects({
angle: _180,
offset: -armThick,
intersectTag: 'seg02'
}, %)
|> angledLineToY([segAng('seg02', %) + 180, -baseHeight], %)
|> xLineTo(_0, %)
|> close(%)
|> extrude(4, %)`
)
})
await page.setViewportSize({ width: 1200, height: 500 })
await page.goto('/')
await u.waitForAuthSkipAppStart()
await u.openDebugPanel()
await u.waitForDefaultPlanesVisibilityChange()
await u.expectCmdLog('[data-message-type="execution-done"]')
await u.waitForCmdReceive('extrude')
await page.waitForTimeout(1000)
await u.clearAndCloseDebugPanel()
await page.getByRole('button', { name: 'KittyCAD Modeling App' }).click()
const doExport = async (output: Models['OutputFormat_type']) => {
await page.getByRole('button', { name: 'Export Model' }).click()
const exportSelect = page.getByTestId('export-type')
await exportSelect.selectOption({ label: output.type })
if ('storage' in output) {
const storageSelect = page.getByTestId('export-storage')
await storageSelect.selectOption({ label: output.storage })
}
const downloadPromise = page.waitForEvent('download')
await page.getByRole('button', { name: 'Export', exact: true }).click()
const download = await downloadPromise
const downloadLocation = `./e2e/playwright/export-snapshots/${
output.type
}-${'storage' in output ? output.storage : ''}.${output.type}`
await download.saveAs(downloadLocation)
if (output.type === 'step') {
// stable timestamps for step files
const fileContents = await fsp.readFile(downloadLocation, 'utf-8')
const newFileContents = fileContents.replace(
/[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}\.[0-9]+[0-9]+[0-9]\+[0-9]{2}:[0-9]{2}/g,
'1970-01-01T00:00:00.0+00:00'
)
await fsp.writeFile(downloadLocation, newFileContents)
}
}
const axisDirectionPair: Models['AxisDirectionPair_type'] = {
axis: 'z',
direction: 'positive',
}
const sysType: Models['System_type'] = {
forward: axisDirectionPair,
up: axisDirectionPair,
}
await doExport({
type: 'step',
coords: sysType,
})
await doExport({
type: 'gltf',
storage: 'embedded',
presentation: 'pretty',
})
await doExport({
type: 'gltf',
storage: 'binary',
presentation: 'pretty',
})
await doExport({
type: 'gltf',
storage: 'standard',
presentation: 'pretty',
})
await doExport({
// obj seems to be a little flaky, times out tests sometimes
type: 'obj',
coords: sysType,
units: 'in',
})
// the following exports are failing
// await doExport({
// type: 'ply',
// storage: 'ascii',
// coords: sysType,
// })
// await doExport({
// type: 'ply',
// storage: 'binary' as unknown as 'binary_little_endian',
// coords: sysType,
// })
// await doExport({
// type: 'stl',
// storage: 'ascii',
// coords: sysType,
// units: 'in',
// })
// await doExport({
// type: 'stl',
// storage: 'binary',
// coords: sysType,
// units: 'in',
// })
})

View File

@ -133,6 +133,7 @@ export const ExportButton = ({ children, className }: ExportButtonProps) => {
<select
id="type"
name="type"
data-testid="export-type"
onChange={(e) => {
setType(e.target.value as OutputTypeKey)
if (e.target.value === 'gltf') {
@ -162,6 +163,7 @@ export const ExportButton = ({ children, className }: ExportButtonProps) => {
<select
id="storage"
name="storage"
data-testid="export-storage"
onChange={(e) => {
setStorage(e.target.value as StorageUnion)
formik.handleChange(e)

View File

@ -15,7 +15,11 @@ export const browserSaveFile = async (blob: Blob, suggestedName: string) => {
}
})()
// If the File System Access API is supported…
if (supportsFileSystemAccess && window.showSaveFilePicker) {
if (
supportsFileSystemAccess &&
window.showSaveFilePicker &&
!(window as any).playwrightSkipFilePicker
) {
try {
// Show the file save dialog.
const handle = await window.showSaveFilePicker({

View File

@ -26,7 +26,8 @@
"jsx": "react-jsx"
},
"include": [
"src"
"src",
"e2e"
],
"references": [{ "path": "./tsconfig.node.json" }]
}