diff --git a/tests/assets/C2879853.raweasy.json b/tests/assets/C2879853.raweasy.json new file mode 100644 index 00000000..0405d7fc --- /dev/null +++ b/tests/assets/C2879853.raweasy.json @@ -0,0 +1,238 @@ +{ + "uuid": "12f9c3ae62fd4c20a63ae72e6dbcb7d6", + "title": "SPH0641LU4H-1", + "description": "", + "docType": 2, + "type": 3, + "thumb": "//image.lceda.cn/components/12f9c3ae62fd4c20a63ae72e6dbcb7d6.png", + "lcsc": { + "id": 3089079, + "number": "C2879853" + }, + "szlcsc": { + "id": 3089079, + "number": "C2879853" + }, + "owner": { + "uuid": "0819f05c4eef4c71ace90d822a990e87", + "username": "LCSC", + "nickname": "LCSC", + "avatar": "//image.lceda.cn/avatars/2018/6/kFlrasi7W06gTdBLAqW3fkrqbDhbowynuSzkjqso.png" + }, + "tags": [], + "updateTime": 1737077403, + "updated_at": "2025-01-17 01:30:19", + "dataStr": { + "head": { + "docType": "2", + "editorVersion": "6.4.20.6", + "x": 400, + "y": 300, + "c_para": { + "pre": "U?", + "name": "SPH0641LU4H-1", + "package": "MIC-SMD_5P_L3.5-W2.7-P0.82_SPH0641LU4H-1", + "Contributor": "LCSC", + "Supplier": "LCSC", + "Supplier Part": "C2879853", + "Manufacturer": "Knowles(楼氏)", + "Manufacturer Part": "SPH0641LU4H-1", + "JLCPCB Part Class": "Extended Part" + }, + "uuid": "12f9c3ae62fd4c20a63ae72e6dbcb7d6", + "puuid": "419905241866469e87daa1a7a126691e", + "importFlag": 0, + "c_spiceCmd": null, + "hasIdFlag": true, + "utime": 1628494544 + }, + "canvas": "CA~1000~1000~#FFFFFF~yes~#CCCCCC~5~1000~1000~line~5~pixel~5~400~300", + "shape": [ + "R~355~280~2~2~90~40~#880000~1~0~none~gge1~0~", + "E~360~285~1.5~1.5~#880000~1~0~#880000~gge2~0", + "P~show~0~1~345~290~180~gge5~0^^345~290^^M345,290h10~#880000^^1~358.7~294~0~DATA~start~~~#0000FF^^1~354.5~289~0~1~end~~~#0000FF^^0~352~290^^0~M 355 293 L 358 290 L 355 287", + "P~show~0~2~345~300~180~gge6~0^^345~300^^M345,300h10~#880000^^1~358.7~304~0~SELECT~start~~~#0000FF^^1~354.5~299~0~2~end~~~#0000FF^^0~352~300^^0~M 355 303 L 358 300 L 355 297", + "P~show~0~3~345~310~180~gge7~0^^345~310^^M345,310h10~#880000^^1~358.7~314~0~GROUND~start~~~#0000FF^^1~354.5~309~0~3~end~~~#0000FF^^0~352~310^^0~M 355 313 L 358 310 L 355 307", + "P~show~0~4~455~305~0~gge8~0^^455~305^^M455,305h-10~#880000^^1~441.3~309~0~CLOCK~end~~~#0000FF^^1~445.5~304~0~4~start~~~#0000FF^^0~448~305^^0~M 445 302 L 442 305 L 445 308", + "P~show~0~5~455~295~0~gge9~0^^455~295^^M455,295h-10~#FF0000^^1~441.3~299~0~VDD~end~~~#FF0000^^1~445.5~294~0~5~start~~~#FF0000^^0~448~295^^0~M 445 292 L 442 295 L 445 298" + ], + "BBox": { + "x": 344, + "y": 279.6, + "width": 112, + "height": 40.4 + }, + "colors": [] + }, + "verify": true, + "datastrid": "c216b9bce5434bad8c33e3a41457953c", + "SMT": true, + "jlcOnSale": 1, + "writable": false, + "isFavorite": false, + "packageDetail": { + "uuid": "419905241866469e87daa1a7a126691e", + "title": "MIC-SMD_5P_L3.5-W2.7-P0.82_SPH0641LU4H-1", + "docType": 4, + "updateTime": 1703729109, + "owner": { + "uuid": "0819f05c4eef4c71ace90d822a990e87", + "username": "lcsc", + "nickname": "LCSC", + "avatar": "//image.lceda.cn/avatars/2018/6/kFlrasi7W06gTdBLAqW3fkrqbDhbowynuSzkjqso.png" + }, + "datastrid": "b45be9c75f9b472ba8274c0d00451510", + "writable": false, + "dataStr": { + "head": { + "docType": "4", + "editorVersion": "6.5.39", + "newgId": true, + "c_para": { + "package": "MIC-SMD_5P_L3.5-W2.7-P0.82_SPH0641LU4H-1", + "pre": "U?", + "Contributor": "lcsc", + "link": "https://img.jlc.com//pdf/applyPasteComponent/2021-08-07/257629D/ebb1ae7e034c4583a94c3252fc2f619e/sph0641lu4h-1-revb.pdf", + "3DModel": "MIC-SMD_5P_L3.5-W2.7-P0.82_SPH0641LU4H-1" + }, + "x": 3995.352, + "y": 2968.023, + "hasIdFlag": true, + "utime": 1703729109, + "uuid": "419905241866469e87daa1a7a126691e", + "importFlag": 0, + "transformList": "", + "uuid_3d": "085574939dfb440599fd212240983b9c" + }, + "canvas": "CA~1000~1000~#000000~yes~#FFFFFF~0.3937~1000~1000~line~0.03937~mm~0.3937~ARC~visible~0.5~3995.352~2968.023~0~none", + "shape": [ + "CIRCLE~3990.136~2961.544~0.118~0.2362~101~gge484~0~~", + "CIRCLE~3991.887~2960.835~0.492~0.9843~12~gge229~0~~", + "CIRCLE~3995.352~2971.229~0.276~0.5512~12~gge329~0~~", + "SOLIDREGION~100~~M 3997.2242 2962.04 L 4000.0786 2962.04 L 4000.0786 2964.0872 L 3997.2242 2964.0872 Z ~solid~gge225~~~~0", + "SOLIDREGION~100~~M 3997.2242 2965.2763 L 4000.0786 2965.2763 L 4000.0786 2967.3235 L 3997.2242 2967.3235 Z ~solid~gge226~~~~0", + "SOLIDREGION~100~~M 3990.6258 2965.2764 L 3993.4802 2965.2764 L 3993.4802 2967.3236 L 3990.6258 2967.3236 Z ~solid~gge227~~~~0", + "SOLIDREGION~100~~M 3990.6258 2962.0401 L 3993.4802 2962.0401 L 3993.4802 2964.0873 L 3990.6258 2964.0873 Z ~solid~gge228~~~~0", + "SOLIDREGION~100~~M 3994.9557 2968.0533 L 3994.9551 2968.0533 A 3.1988 3.1988 0 0 0 3992.1818 2970.7932 L 3993.37 2970.7932 A 0.0493 0.0493 0 0 1 3993.4192 2970.7923 A 2.0177 2.0177 0 0 1 3994.9551 2969.2959 Z ~solid~gge456~~~~0", + "SOLIDREGION~100~~M 3992.1763 2971.6253 L 3992.1763 2971.6259 A 3.1988 3.1988 0 0 0 3994.9162 2974.3992 L 3994.9162 2973.211 A 0.0493 0.0493 0 0 1 3994.9153 2973.1618 A 2.0177 2.0177 0 0 1 3993.4189 2971.6259 Z~solid~gge462~~~~0", + "SOLIDREGION~100~~M 3998.5276 2970.8327 L 3998.5276 2970.8321 A 3.1988 3.1988 0 0 0 3995.7877 2968.0588 L 3995.7877 2969.247 A 0.0493 0.0493 0 0 1 3995.7886 2969.2962 A 2.0177 2.0177 0 0 1 3997.285 2970.8321 Z~solid~gge474~~~~0", + "SOLIDREGION~100~~M 3995.748 2974.4047 L 3995.7486 2974.4047 A 3.1988 3.1988 0 0 0 3998.5219 2971.6648 L 3997.3337 2971.6648 A 0.0493 0.0493 0 0 1 3997.2845 2971.6657 A 2.0177 2.0177 0 0 1 3995.7486 2973.1621 Z~solid~gge480~~~~0", + "SOLIDREGION~99~~M 3990.1357 2975.3234 L 4000.5687 2975.3234 L 4000.5687 2961.5442 L 3990.1357 2961.5442 Z ~solid~gge223~~~~0", + "TRACK~0.5906~3~~3990.0995 2961.5443 3989.8405 2961.5443 3989.8405 2962.9615~gge237~0", + "TRACK~0.5906~3~~3996.6977 2961.5443 3994.0065 2961.5443~gge236~0", + "TRACK~0.5906~3~~4000.8639 2961.5443 4000.6051 2961.5443~gge235~0", + "TRACK~0.5906~3~~3993.6398 2975.3233 3989.8405 2975.3233 3989.8405 2973.9063~gge234~0", + "TRACK~0.5906~3~~4000.8639 2975.3233 3997.0636 2975.3233~gge233~0", + "TRACK~0.5906~3~~4000.8639 2968.4337 4000.8639 2961.5443~gge232~0", + "TRACK~0.5906~3~~4000.8639 2968.4337 4000.8639 2975.3233~gge231~0", + "TRACK~0.5906~3~~3989.8405 2962.9615 3989.8405 2973.9063~gge230~0", + "CIRCLE~3991.887~2960.284~0.591~1.1811~3~gge222~0~~", + "PAD~RECT~3998.651~2963.064~2.874~2.0866~1~~5~0~3997.2144 2962.0203 4000.0884 2962.0203 4000.0884 2964.1069 3997.2144 2964.1069~0~gge218~0~~Y~0~0~0.1969~3998.6514,2963.0636", + "PAD~RECT~3998.651~2966.3~2.874~2.0866~1~~4~0~3997.2144 2965.2566 4000.0884 2965.2566 4000.0884 2967.3432 3997.2144 2967.3432~0~gge219~0~~Y~0~0~0.1969~3998.6514,2966.2999", + "PAD~RECT~3992.053~2966.3~2.874~2.0866~1~~2~0~3990.616 2965.2567 3993.49 2965.2567 3993.49 2967.3433 3990.616 2967.3433~0~gge220~0~~Y~0~0~0.1969~3992.053,2966.3", + "PAD~RECT~3992.053~2963.064~2.874~2.0866~1~~1~0~3990.616 2962.0204 3993.49 2962.0204 3993.49 2964.107 3990.616 2964.107~0~gge221~0~~Y~0~0~0.1969~3992.053,2963.0637", + "PAD~POLYGON~3997.158~2969.514~2.74~2.7739~1~~3~0~3998.528 2970.832 3998.528 2970.8314 3998.504 2970.672 3998.472 2970.514 3998.4321 2970.3577 3998.3844 2970.2038 3998.329 2970.0524 3998.266 2969.9039 3998.1956 2969.7589 3998.118 2969.6176 3998.0334 2969.4803 3997.942 2969.3475 3997.844 2969.2195 3997.7397 2969.0966 3997.6293 2968.9791 3997.5131 2968.8673 3997.3915 2968.7615 3997.2647 2968.662 3997.133 2968.569 3996.9968 2968.4827 3996.8564 2968.4034 3996.7122 2968.3313 3996.5646 2968.2665 3996.4139 2968.2093 3996.2605 2968.1597 3996.1047 2968.1179 3995.9471 2968.084 3995.788 2968.0581 3995.788 2969.2463 3995.7951 2969.2708 3995.789 2969.2956 3995.9171 2969.3312 3996.0426 2969.3752 3996.1649 2969.4273 3996.2835 2969.4874 3996.3979 2969.5552 3996.5076 2969.6303 3996.6121 2969.7125 3996.7109 2969.8014 3996.8037 2969.8966 3996.89 2969.9978 3996.9695 2970.1044 3997.0418 2970.216 3997.1065 2970.3321 3997.1635 2970.4522 3997.2124 2970.5758 3997.2531 2970.7024 3997.2854 2970.8314~0~gge444~0~~Y~0~0~0.19685~3997.1581,2969.5137", + "PAD~POLYGON~3997.136~2972.982~2.7739~2.74~1~~3~0~3995.7489 2974.405 3995.7495 2974.405 3995.9089 2974.381 3996.0669 2974.349 3996.2232 2974.3091 3996.3771 2974.2614 3996.5285 2974.206 3996.677 2974.143 3996.822 2974.0726 3996.9633 2973.995 3997.1006 2973.9104 3997.2334 2973.819 3997.3614 2973.721 3997.4843 2973.6167 3997.6018 2973.5063 3997.7136 2973.3901 3997.8194 2973.2685 3997.9189 2973.1417 3998.0119 2973.01 3998.0982 2972.8738 3998.1775 2972.7334 3998.2496 2972.5892 3998.3144 2972.4416 3998.3716 2972.2909 3998.4212 2972.1375 3998.463 2971.9817 3998.4969 2971.8241 3998.5228 2971.665 3997.3346 2971.665 3997.3101 2971.6721 3997.2853 2971.666 3997.2497 2971.7941 3997.2057 2971.9196 3997.1536 2972.0419 3997.0935 2972.1605 3997.0257 2972.2749 3996.9506 2972.3846 3996.8684 2972.4891 3996.7795 2972.5879 3996.6843 2972.6807 3996.5831 2972.767 3996.4765 2972.8465 3996.3649 2972.9188 3996.2488 2972.9835 3996.1287 2973.0405 3996.0051 2973.0894 3995.8785 2973.1301 3995.7495 2973.1624~0~gge447~0~~Y~0~0~0.19685~3997.1357,2972.9817", + "PAD~POLYGON~3993.546~2972.944~2.74~2.7737~1~~3~0~3992.176 2971.6259 3992.176 2971.6263 3992.2 2971.7857 3992.232 2971.9438 3992.2718 2972.1 3992.3196 2972.254 3992.375 2972.4054 3992.438 2972.5538 3992.5083 2972.6988 3992.5859 2972.8402 3992.6705 2972.9774 3992.762 2973.1102 3992.86 2973.2382 3992.9643 2973.3611 3993.0747 2973.4787 3993.1908 2973.5905 3993.3125 2973.6963 3993.4393 2973.7958 3993.571 2973.8888 3993.7072 2973.9751 3993.8476 2974.0544 3993.9918 2974.1265 3994.1394 2974.1913 3994.2901 2974.2485 3994.4435 2974.2981 3994.5992 2974.3399 3994.7569 2974.3738 3994.916 2974.3997 3994.916 2973.2115 3994.9089 2973.1869 3994.915 2973.1621 3994.7869 2973.1265 3994.6614 2973.0825 3994.5391 2973.0304 3994.4205 2972.9703 3994.3061 2972.9025 3994.1964 2972.8274 3994.0919 2972.7452 3993.9931 2972.6563 3993.9003 2972.5611 3993.814 2972.4599 3993.7345 2972.3533 3993.6622 2972.2417 3993.5975 2972.1256 3993.5405 2972.0055 3993.4916 2971.8819 3993.4509 2971.7553 3993.4186 2971.6263~0~gge450~0~~Y~0~0~0.19685~3993.546,2972.9441", + "PAD~POLYGON~3993.568~2969.476~2.7739~2.74~1~~3~0~3994.955 2968.053 3994.9544 2968.053 3994.7949 2968.077 3994.6369 2968.109 3994.4807 2968.1489 3994.3267 2968.1966 3994.1753 2968.252 3994.0269 2968.315 3993.8819 2968.3854 3993.7406 2968.463 3993.6033 2968.5476 3993.4705 2968.639 3993.3425 2968.737 3993.2196 2968.8413 3993.1021 2968.9517 3992.9903 2969.0679 3992.8845 2969.1895 3992.785 2969.3163 3992.6919 2969.448 3992.6057 2969.5842 3992.5264 2969.7246 3992.4543 2969.8688 3992.3895 2970.0164 3992.3323 2970.1671 3992.2827 2970.3205 3992.2409 2970.4763 3992.207 2970.6339 3992.1811 2970.793 3993.3693 2970.793 3993.3938 2970.7859 3993.4186 2970.792 3993.4542 2970.6639 3993.4982 2970.5384 3993.5503 2970.4161 3993.6104 2970.2975 3993.6781 2970.1831 3993.7533 2970.0734 3993.8355 2969.9689 3993.9244 2969.8701 3994.0196 2969.7773 3994.1208 2969.691 3994.2274 2969.6115 3994.339 2969.5393 3994.4551 2969.4745 3994.5752 2969.4175 3994.6988 2969.3686 3994.8254 2969.3279 3994.9544 2969.2956~0~gge453~0~~Y~0~0~0.19685~3993.5681,2969.4764", + "HOLE~3995.352~2971.229~0.9843~gge215~0", + "SVGNODE~{\"gId\":\"g1_outline\",\"nodeName\":\"g\",\"nodeType\":1,\"layerid\":\"19\",\"attrs\":{\"c_width\":\"10.43305\",\"c_height\":\"13.7795\",\"c_rotation\":\"0,0,0\",\"z\":\"0\",\"c_origin\":\"3995.352,2968.4167\",\"uuid\":\"587ef2d4cd9c42aca9875a2e1e64e486\",\"c_etype\":\"outline3D\",\"id\":\"g1_outline\",\"title\":\"MIC-SMD_5P_L3.5-W2.7-P0.82_SPH0641LU4H-1\",\"layerid\":\"19\",\"transform\":\"scale(1) translate(0, 0)\"},\"childNodes\":[{\"gId\":\"g1_outline_line0\",\"nodeName\":\"polyline\",\"nodeType\":1,\"attrs\":{\"fill\":\"none\",\"id\":\"g1_outline_line0\",\"c_shapetype\":\"line\",\"points\":\"3990.1355 2961.527 3990.1355 2964.6766 3990.1355 2975.3065 3995.3323 2975.3065 4000.5685 2975.3065 4000.5685 2964.6766 4000.5685 2961.527 3995.3323 2961.527 3990.1355 2961.527 3990.1355 2961.527\"}}]}" + ], + "layers": [ + "1~TopLayer~#FF0000~true~false~true~", + "2~BottomLayer~#0000FF~true~false~true~", + "3~TopSilkLayer~#FFCC00~true~false~true~", + "4~BottomSilkLayer~#66CC33~true~false~true~", + "5~TopPasteMaskLayer~#808080~true~true~true~", + "6~BottomPasteMaskLayer~#800000~true~false~true~", + "7~TopSolderMaskLayer~#800080~true~false~true~0.3", + "8~BottomSolderMaskLayer~#AA00FF~true~false~true~0.3", + "9~Ratlines~#6464FF~true~false~true~", + "10~BoardOutLine~#FF00FF~true~false~true~", + "11~Multi-Layer~#C0C0C0~true~false~true~", + "12~Document~#FFFFFF~true~false~true~", + "13~TopAssembly~#33CC99~true~false~true~", + "14~BottomAssembly~#5555FF~true~false~true~", + "15~Mechanical~#F022F0~true~false~true~", + "19~3DModel~#66CCFF~true~false~true~", + "21~Inner1~#999966~false~false~false~~", + "22~Inner2~#008000~false~false~false~~", + "23~Inner3~#00FF00~false~false~false~~", + "24~Inner4~#BC8E00~false~false~false~~", + "25~Inner5~#70DBFA~false~false~false~~", + "26~Inner6~#00CC66~false~false~false~~", + "27~Inner7~#9966FF~false~false~false~~", + "28~Inner8~#800080~false~false~false~~", + "29~Inner9~#008080~false~false~false~~", + "30~Inner10~#15935F~false~false~false~~", + "31~Inner11~#000080~false~false~false~~", + "32~Inner12~#00B400~false~false~false~~", + "33~Inner13~#2E4756~false~false~false~~", + "34~Inner14~#99842F~false~false~false~~", + "35~Inner15~#FFFFAA~false~false~false~~", + "36~Inner16~#99842F~false~false~false~~", + "37~Inner17~#2E4756~false~false~false~~", + "38~Inner18~#3535FF~false~false~false~~", + "39~Inner19~#8000BC~false~false~false~~", + "40~Inner20~#43AE5F~false~false~false~~", + "41~Inner21~#C3ECCE~false~false~false~~", + "42~Inner22~#728978~false~false~false~~", + "43~Inner23~#39503F~false~false~false~~", + "44~Inner24~#0C715D~false~false~false~~", + "45~Inner25~#5A8A80~false~false~false~~", + "46~Inner26~#2B937E~false~false~false~~", + "47~Inner27~#23999D~false~false~false~~", + "48~Inner28~#45B4E3~false~false~false~~", + "49~Inner29~#215DA1~false~false~false~~", + "50~Inner30~#4564D7~false~false~false~~", + "51~Inner31~#6969E9~false~false~false~~", + "52~Inner32~#9069E9~false~false~false~~", + "99~ComponentShapeLayer~#00CCCC~true~false~true~0.4", + "100~LeadShapeLayer~#CC9999~true~false~true~", + "101~ComponentMarkingLayer~#66FFCC~true~false~true~", + "Hole~Hole~#222222~false~false~true~", + "DRCError~DRCError~#FAD609~false~false~true~" + ], + "objects": [ + "All~true~false", + "Component~true~true", + "Prefix~true~true", + "Name~true~false", + "Track~true~true", + "Pad~true~true", + "Via~true~true", + "Hole~true~true", + "Copper_Area~true~true", + "Circle~true~true", + "Arc~true~true", + "Solid_Region~true~true", + "Text~true~true", + "Image~true~true", + "Rect~true~true", + "Dimension~true~true", + "Protractor~true~true" + ], + "BBox": { + "x": 3989.8, + "y": 2959.7, + "width": 11, + "height": 15.6 + }, + "netColors": [] + } + }, + "_objMetadata": { + "bounds": { + "min": { + "x": -1.325, + "y": -1.75, + "z": -0.001 + }, + "max": { + "x": 1.325, + "y": 1.75, + "z": 0.99 + } + } + } +} \ No newline at end of file diff --git a/tests/assets/C5360621.raweasy.json b/tests/assets/C5360621.raweasy.json new file mode 100644 index 00000000..5f21fbe9 --- /dev/null +++ b/tests/assets/C5360621.raweasy.json @@ -0,0 +1,283 @@ +{ + "uuid": "388dcd3604304116bfa2b731fbd1035a", + "title": "ICM-40609-D", + "description": "", + "docType": 2, + "type": 3, + "thumb": "//image.lceda.cn/components/388dcd3604304116bfa2b731fbd1035a.png", + "lcsc": { + "id": 6179151, + "number": "C5360621" + }, + "szlcsc": { + "id": 6179151, + "number": "C5360621" + }, + "owner": { + "uuid": "0819f05c4eef4c71ace90d822a990e87", + "username": "lcsc", + "nickname": "LCSC", + "avatar": "//image.lceda.cn/avatars/2018/6/kFlrasi7W06gTdBLAqW3fkrqbDhbowynuSzkjqso.png" + }, + "tags": [], + "updateTime": 1734381602, + "updated_at": "2025-11-24 16:50:43", + "dataStr": { + "head": { + "docType": "2", + "editorVersion": "6.5.42", + "x": 400, + "y": 300, + "c_para": { + "pre": "U?", + "name": "ICM-40609-D", + "package": "LGA-24_L3.0-W3.0-P0.40-TL", + "Supplier": "LCSC", + "Supplier Part": "C5360621", + "Manufacturer": null, + "Manufacturer Part": "ICM-40609-D", + "JLCPCB Part Class": "Extended Part", + "Contributor": "lcsc" + }, + "puuid": "854fac403eb6488e8c72fd61a522cef6", + "utime": 1708583350, + "uuid": "388dcd3604304116bfa2b731fbd1035a", + "importFlag": 0, + "c_spiceCmd": null, + "pre": "U?", + "name": "ICM-40609-D", + "hasIdFlag": true + }, + "canvas": "CA~1000~1000~#FFFFFF~yes~#CCCCCC~5~1000~1000~line~5~pixel~5~400~300", + "shape": [ + "R~325~235~2~2~150~130~#880000~1~0~none~gge1~0~", + "E~330~240~1.5~1.5~#880000~1~0~#880000~gge2~0", + "P~show~0~1~315~245~180~gge5~0^^315~245^^M315,245h10~#880000^^1~328.7~249~0~NC~start~~~#0000FF^^1~324.5~244~0~1~end~~~#0000FF^^0~322~245^^0~M 325 248 L 328 245 L 325 242", + "P~show~0~2~315~255~180~gge6~0^^315~255^^M315,255h10~#880000^^1~328.7~259~0~NC~start~~~#0000FF^^1~324.5~254~0~2~end~~~#0000FF^^0~322~255^^0~M 325 258 L 328 255 L 325 252", + "P~show~0~3~315~265~180~gge7~0^^315~265^^M315,265h10~#880000^^1~328.7~269~0~NC~start~~~#0000FF^^1~324.5~264~0~3~end~~~#0000FF^^0~322~265^^0~M 325 268 L 328 265 L 325 262", + "P~show~0~4~315~275~180~gge8~0^^315~275^^M315,275h10~#880000^^1~328.7~279~0~NC~start~~~#0000FF^^1~324.5~274~0~4~end~~~#0000FF^^0~322~275^^0~M 325 278 L 328 275 L 325 272", + "P~show~0~5~315~285~180~gge9~0^^315~285^^M315,285h10~#880000^^1~328.7~289~0~NC~start~~~#0000FF^^1~324.5~284~0~5~end~~~#0000FF^^0~322~285^^0~M 325 288 L 328 285 L 325 282", + "P~show~0~6~315~295~180~gge10~0^^315~295^^M315,295h10~#880000^^1~328.7~299~0~NC~start~~~#0000FF^^1~324.5~294~0~6~end~~~#0000FF^^0~322~295^^0~M 325 298 L 328 295 L 325 292", + "P~show~0~7~315~305~180~gge11~0^^315~305^^M315,305h10~#880000^^1~328.7~309~0~NC~start~~~#0000FF^^1~324.5~304~0~7~end~~~#0000FF^^0~322~305^^0~M 325 308 L 328 305 L 325 302", + "P~show~0~8~315~315~180~gge12~0^^315~315^^M315,315h10~#FF0000^^1~328.7~319~0~VDDIO~start~~~#FF0000^^1~324.5~314~0~8~end~~~#FF0000^^0~322~315^^0~M 325 318 L 328 315 L 325 312", + "P~show~0~9~315~325~180~gge13~0^^315~325^^M315,325h10~#880000^^1~328.7~329~0~SDO/AD0~start~~~#0000FF^^1~324.5~324~0~9~end~~~#0000FF^^0~322~325^^0~M 325 328 L 328 325 L 325 322", + "P~show~0~10~315~335~180~gge14~0^^315~335^^M315,335h10~#880000^^1~328.7~339~0~NC~start~~~#0000FF^^1~324.5~334~0~10~end~~~#0000FF^^0~322~335^^0~M 325 338 L 328 335 L 325 332", + "P~show~0~11~315~345~180~gge15~0^^315~345^^M315,345h10~#880000^^1~328.7~349~0~RESV~start~~~#0000FF^^1~324.5~344~0~11~end~~~#0000FF^^0~322~345^^0~M 325 348 L 328 345 L 325 342", + "P~show~0~12~315~355~180~gge16~0^^315~355^^M315,355h10~#880000^^1~328.7~359~0~INT1/INT~start~~~#0000FF^^1~324.5~354~0~12~end~~~#0000FF^^0~322~355^^0~M 325 358 L 328 355 L 325 352", + "P~show~0~13~485~355~0~gge17~0^^485~355^^M485,355h-10~#FF0000^^1~471.3~359~0~VDD~end~~~#FF0000^^1~475.5~354~0~13~start~~~#FF0000^^0~478~355^^0~M 475 352 L 472 355 L 475 358", + "P~show~0~14~485~345~0~gge18~0^^485~345^^M485,345h-10~#880000^^1~471.3~349~0~NC~end~~~#0000FF^^1~475.5~344~0~14~start~~~#0000FF^^0~478~345^^0~M 475 342 L 472 345 L 475 348", + "P~show~0~15~485~335~0~gge19~0^^485~335^^M485,335h-10~#880000^^1~471.3~339~0~NC~end~~~#0000FF^^1~475.5~334~0~15~start~~~#0000FF^^0~478~335^^0~M 475 332 L 472 335 L 475 338", + "P~show~0~16~485~325~0~gge20~0^^485~325^^M485,325h-10~#880000^^1~471.3~329~0~NC~end~~~#0000FF^^1~475.5~324~0~16~start~~~#0000FF^^0~478~325^^0~M 475 322 L 472 325 L 475 328", + "P~show~0~17~485~315~0~gge21~0^^485~315^^M485,315h-10~#880000^^1~471.3~319~0~NC~end~~~#0000FF^^1~475.5~314~0~17~start~~~#0000FF^^0~478~315^^0~M 475 312 L 472 315 L 475 318", + "P~show~0~18~485~305~0~gge22~0^^485~305^^M485,305h-10~#000000^^1~471.3~309~0~GND~end~~~#000000^^1~475.5~304~0~18~start~~~#000000^^0~478~305^^0~M 475 302 L 472 305 L 475 308", + "P~show~0~19~485~295~0~gge23~0^^485~295^^M485,295h-10~#880000^^1~471.3~299~0~NT2/FSYNC~end~~~#0000FF^^1~475.5~294~0~19~start~~~#0000FF^^0~478~295^^0~M 475 292 L 472 295 L 475 298", + "P~show~0~20~485~285~0~gge24~0^^485~285^^M485,285h-10~#880000^^1~471.3~289~0~RESV~end~~~#0000FF^^1~475.5~284~0~20~start~~~#0000FF^^0~478~285^^0~M 475 282 L 472 285 L 475 288", + "P~show~0~21~485~275~0~gge25~0^^485~275^^M485,275h-10~#880000^^1~471.3~279~0~NC~end~~~#0000FF^^1~475.5~274~0~21~start~~~#0000FF^^0~478~275^^0~M 475 272 L 472 275 L 475 278", + "P~show~0~22~485~265~0~gge26~0^^485~265^^M485,265h-10~#880000^^1~471.3~269~0~nCS~end~~~#0000FF^^1~475.5~264~0~22~start~~~#0000FF^^0~478~265^^0~M 475 262 L 472 265 L 475 268", + "P~show~0~23~485~255~0~gge27~0^^485~255^^M485,255h-10~#880000^^1~471.3~259~0~SCL/SCLK~end~~~#0000FF^^1~475.5~254~0~23~start~~~#0000FF^^0~478~255^^0~M 475 252 L 472 255 L 475 258", + "P~show~0~24~485~245~0~gge28~0^^485~245^^M485,245h-10~#880000^^1~471.3~249~0~SDA/SDI/SDIO~end~~~#0000FF^^1~475.5~244~0~24~start~~~#0000FF^^0~478~245^^0~M 475 242 L 472 245 L 475 248" + ], + "BBox": { + "x": 312.6, + "y": 234.5, + "width": 174.8, + "height": 130.5 + }, + "colors": [] + }, + "jlcOnSale": 1, + "datastrid": "a8f2ec1a73984f8eaacc8fa5c0f0c03d", + "verify": true, + "SMT": true, + "writable": false, + "isFavorite": false, + "packageDetail": { + "uuid": "854fac403eb6488e8c72fd61a522cef6", + "title": "LGA-24_L3.0-W3.0-P0.40-TL", + "docType": 4, + "updateTime": 1651244136, + "owner": { + "uuid": "0819f05c4eef4c71ace90d822a990e87", + "username": "lcsc", + "nickname": "LCSC", + "avatar": "//image.lceda.cn/avatars/2018/6/kFlrasi7W06gTdBLAqW3fkrqbDhbowynuSzkjqso.png" + }, + "datastrid": "d75e7e5114cd4a2a8c1f554907da4a13", + "writable": false, + "dataStr": { + "head": { + "docType": "4", + "editorVersion": "6.4.26", + "x": 400, + "y": 300, + "c_para": { + "package": "LGA-24_L3.0-W3.0-P0.40-TL", + "pre": "U?", + "Contributor": "lcsc", + "link": "https://www.bosch-sensortec.com/media/boschsensortec/downloads/datasheets/bst-bhi160b-ds000.pdf", + "3DModel": "LGA-24_L3.0-W3.0-P0.40-TL" + }, + "uuid": "854fac403eb6488e8c72fd61a522cef6", + "utime": 1639220010, + "importFlag": 0, + "transformList": "", + "hasIdFlag": true, + "uuid_3d": "5c900398b21d438bbc37e7201e491485" + }, + "canvas": "CA~1000~1000~#000000~yes~#FFFFFF~1~1000~1000~line~0.03937~mm~1~45~visible~0.1~400~300~0~yes", + "shape": [ + "CIRCLE~394.095~294.095~0.118~0.2362~101~gge150~0~~circle_gge151,circle_gge152", + "CIRCLE~393~296~0.591~1.1811~12~rep61~0~~", + "SOLIDREGION~99~~M394.0945 305.9055 405.9055 305.9055 L405.9055 305.9055 405.9055 294.0945 L405.9055 294.0945 394.0945 294.0945 Z~solid~rep2~~~~0", + "PAD~RECT~394.38~297.638~1.9882~0.7874~1~~2~0~393.3859 297.2443 395.3741 297.2443 395.3741 298.0317 393.3859 298.0317~0~rep6~0~~Y~0~0~0.2~394.3799,297.6378", + "PAD~RECT~394.38~299.213~1.9882~0.7874~1~~3~0~393.3859 298.8193 395.3741 298.8193 395.3741 299.6067 393.3859 299.6067~0~rep8~0~~Y~0~0~0.2~394.3799,299.2126", + "PAD~RECT~394.38~300.787~1.9882~0.7874~1~~4~0~393.3859 300.3933 395.3741 300.3933 395.3741 301.1807 393.3859 301.1807~0~rep10~0~~Y~0~0~0.2~394.3799,300.7874", + "PAD~RECT~394.38~302.362~1.9882~0.7874~1~~5~0~393.3859 301.9683 395.3741 301.9683 395.3741 302.7557 393.3859 302.7557~0~rep12~0~~Y~0~0~0.2~394.3799,302.3622", + "PAD~RECT~397.638~305.62~0.7874~1.9882~1~~8~0~397.2443 304.6259 398.0317 304.6259 398.0317 306.6141 397.2443 306.6141~0~rep18~0~~Y~0~0~0.2~397.6378,305.6201", + "PAD~RECT~399.213~305.62~0.7874~1.9882~1~~9~0~398.8193 304.6259 399.6067 304.6259 399.6067 306.6141 398.8193 306.6141~0~rep20~0~~Y~0~0~0.2~399.2126,305.6201", + "PAD~RECT~400.787~305.62~0.7874~1.9882~1~~10~0~400.3933 304.6259 401.1807 304.6259 401.1807 306.6141 400.3933 306.6141~0~rep22~0~~Y~0~0~0.2~400.7874,305.6201", + "PAD~RECT~402.362~305.62~0.7874~1.9882~1~~11~0~401.9683 304.6259 402.7557 304.6259 402.7557 306.6141 401.9683 306.6141~0~rep24~0~~Y~0~0~0.2~402.3622,305.6201", + "PAD~RECT~405.62~302.362~1.9882~0.7874~1~~14~0~404.6259 301.9683 406.6141 301.9683 406.6141 302.7557 404.6259 302.7557~0~rep30~0~~Y~0~0~0.2~405.6201,302.3622", + "PAD~RECT~405.62~300.787~1.9882~0.7874~1~~15~0~404.6259 300.3933 406.6141 300.3933 406.6141 301.1807 404.6259 301.1807~0~rep32~0~~Y~0~0~0.2~405.6201,300.7874", + "PAD~RECT~405.62~299.213~1.9882~0.7874~1~~16~0~404.6259 298.8193 406.6141 298.8193 406.6141 299.6067 404.6259 299.6067~0~rep34~0~~Y~0~0~0.2~405.6201,299.2126", + "PAD~RECT~405.62~297.638~1.9882~0.7874~1~~17~0~404.6259 297.2443 406.6141 297.2443 406.6141 298.0317 404.6259 298.0317~0~rep36~0~~Y~0~0~0.2~405.6201,297.6378", + "PAD~POLYGON~405.62~296.063~1.988~0.882~1~~18~0~404.6259 296.063 405.0649 295.6693 406.6141 295.6693 406.6141 296.4567 404.6259 296.4567~0~rep38~0~~Y~0~0~0.2~405.6201,296.063", + "PAD~RECT~402.362~294.38~0.7874~1.9882~1~~20~0~401.9683 293.3859 402.7557 293.3859 402.7557 295.3741 401.9683 295.3741~0~rep42~0~~Y~0~0~0.2~402.3622,294.3799", + "PAD~RECT~400.787~294.38~0.7874~1.9882~1~~21~0~400.3933 293.3859 401.1807 293.3859 401.1807 295.3741 400.3933 295.3741~0~rep44~0~~Y~0~0~0.2~400.7874,294.3799", + "PAD~RECT~399.213~294.38~0.7874~1.9882~1~~22~0~398.8193 293.3859 399.6067 293.3859 399.6067 295.3741 398.8193 295.3741~0~rep46~0~~Y~0~0~0.2~399.2126,294.3799", + "PAD~RECT~397.638~294.38~0.7874~1.9882~1~~23~0~397.2443 293.3859 398.0317 293.3859 398.0317 295.3741 397.2443 295.3741~0~rep48~0~~Y~0~0~0.2~397.6378,294.3799", + "PAD~POLYGON~403.937~305.62~1.988~0.882~1~~12~0~403.937 304.6259 404.3307 305.0649 404.3307 306.6141 403.5433 306.6141 403.5433 304.6259~270~gge108~0~~Y~0~0~0.2~403.937,305.6201", + "PAD~POLYGON~394.38~303.937~1.988~0.882~1~~6~0~395.3741 303.937 394.9351 304.3307 393.3859 304.3307 393.3859 303.5433 395.3741 303.5433~180~gge114~0~~Y~0~0~0.2~394.3799,303.937", + "PAD~POLYGON~396.063~294.38~1.988~0.882~1~~24~0~396.063 295.3741 395.6693 294.9351 395.6693 293.3859 396.4567 293.3859 396.4567 295.3741~90~gge120~0~~Y~0~0~0.2~396.063,294.3799", + "PAD~POLYGON~394.38~296.063~1.988~0.882~1~~1~0~395.3741 296.063 394.9351 295.6693 393.3859 295.6221 393.3859 296.4567 395.3741 296.4567~180~gge126~0~~Y~0~0~0.2~394.3799,296.063", + "PAD~POLYGON~396.063~305.62~1.988~0.882~1~~7~0~396.063 304.6259 395.6693 305.0649 395.6693 306.6141 396.4567 306.6141 396.4567 304.6259~270~gge132~0~~Y~0~0~0.2~396.063,305.6201", + "PAD~POLYGON~405.62~303.937~1.988~0.882~1~~13~0~404.6259 303.937 405.0649 304.3307 406.6141 304.3307 406.6141 303.5433 404.6259 303.5433~0~gge138~0~~Y~0~0~0.2~405.6201,303.937", + "PAD~POLYGON~403.937~294.38~1.988~0.882~1~~19~0~403.937 295.3741 404.3307 294.9351 404.3307 293.3859 403.5433 293.3859 403.5433 295.3741~90~gge144~0~~Y~0~0~0.2~403.937,294.3799", + "TRACK~0.6~3~~393.7945 295.0221 393.7945 293.7945 395.0221 293.7945~rep51~0", + "TRACK~0.6~3~~406.2055 295.0221 406.2055 293.7945 404.9779 293.7945~rep52~0", + "TRACK~0.6~3~~406.2055 304.9779 406.2055 306.2055 404.9779 306.2055~rep53~0", + "TRACK~0.6~3~~393.7945 304.9779 393.7945 306.2055 395.0221 306.2055~rep54~0", + "CIRCLE~392~295~0.394~0.7874~3~rep59~0~~", + "SOLIDREGION~100~~M 405.9055 304.3307 L 404.6063 304.3307 L 404.6063 304.3307 L 404.6063 303.5433 L 404.6063 303.5433 L 405.9055 303.5433 Z ~solid~rep27~~~~0", + "SOLIDREGION~100~~M 405.9055 302.7558 L 404.6063 302.7558 L 404.6063 302.7558 L 404.6063 301.9684 L 404.6063 301.9684 L 405.9055 301.9684 Z ~solid~gge155~~~~0", + "SOLIDREGION~100~~M 405.9055 301.1807 L 404.6063 301.1807 L 404.6063 301.1807 L 404.6063 300.3933 L 404.6063 300.3933 L 405.9055 300.3933 Z ~solid~gge157~~~~0", + "SOLIDREGION~100~~M 405.9058 299.6069 L 404.6065 299.6069 L 404.6065 299.6069 L 404.6065 298.8193 L 404.6065 298.8193 L 405.9058 298.8193 Z ~solid~gge159~~~~0", + "SOLIDREGION~100~~M 405.9055 298.0318 L 404.6063 298.0318 L 404.6063 298.0318 L 404.6063 297.2445 L 404.6063 297.2445 L 405.9055 297.2445 Z ~solid~gge161~~~~0", + "SOLIDREGION~100~~M 405.9055 296.4568 L 404.6063 296.4568 L 404.6063 296.4568 L 404.6063 295.6692 L 404.6063 295.6692 L 405.9055 295.6692 Z ~solid~gge163~~~~0", + "SOLIDREGION~100~~M 396.4569 294.0943 L 396.4569 295.3935 L 396.4569 295.3935 L 395.6693 295.3935 L 395.6693 295.3935 L 395.6693 294.0943 Z ~solid~gge170~~~~0", + "SOLIDREGION~100~~M 398.0319 294.0943 L 398.0319 295.3935 L 398.0319 295.3935 L 397.2447 295.3935 L 397.2447 295.3935 L 397.2447 294.0943 Z ~solid~gge171~~~~0", + "SOLIDREGION~100~~M 399.607 294.0941 L 399.607 295.3934 L 399.607 295.3934 L 398.8194 295.3934 L 398.8194 295.3934 L 398.8194 294.0941 Z ~solid~gge172~~~~0", + "SOLIDREGION~100~~M 401.1807 294.0943 L 401.1807 295.3935 L 401.1807 295.3935 L 400.3934 295.3935 L 400.3934 295.3935 L 400.3934 294.0943 Z ~solid~gge173~~~~0", + "SOLIDREGION~100~~M 402.756 294.0943 L 402.756 295.3935 L 402.756 295.3935 L 401.9685 295.3935 L 401.9685 295.3935 L 401.9685 294.0943 Z ~solid~gge174~~~~0", + "SOLIDREGION~100~~M 404.3308 294.0943 L 404.3308 295.3935 L 404.3308 295.3935 L 403.5434 295.3935 L 403.5434 295.3935 L 403.5434 294.0943 Z ~solid~gge175~~~~0", + "SOLIDREGION~100~~M 394.0944 303.5435 L 395.3936 303.5435 L 395.3936 303.5435 L 395.3936 304.3309 L 395.3936 304.3309 L 394.0944 304.3309 Z ~solid~gge182~~~~0", + "SOLIDREGION~100~~M 394.0944 301.9684 L 395.3936 301.9684 L 395.3936 301.9684 L 395.3936 302.7555 L 395.3936 302.7555 L 394.0944 302.7555 Z ~solid~gge183~~~~0", + "SOLIDREGION~100~~M 394.0942 300.3932 L 395.3936 300.3932 L 395.3936 300.3932 L 395.3936 301.1808 L 395.3936 301.1808 L 394.0942 301.1808 Z ~solid~gge184~~~~0", + "SOLIDREGION~100~~M 394.0944 298.8194 L 395.3936 298.8194 L 395.3936 298.8194 L 395.3936 299.6067 L 395.3936 299.6067 L 394.0944 299.6067 Z ~solid~gge185~~~~0", + "SOLIDREGION~100~~M 394.0944 297.2444 L 395.3936 297.2444 L 395.3936 297.2444 L 395.3936 298.0318 L 395.3936 298.0318 L 394.0944 298.0318 Z ~solid~gge186~~~~0", + "SOLIDREGION~100~~M 394.0944 295.6694 L 395.3936 295.6694 L 395.3936 295.6694 L 395.3936 296.457 L 395.3936 296.457 L 394.0944 296.457 Z ~solid~gge187~~~~0", + "SOLIDREGION~100~~M 403.5433 305.9055 L 403.5433 304.6064 L 403.5433 304.6064 L 404.3309 304.6064 L 404.3309 304.6064 L 404.3309 305.9055 Z ~solid~gge194~~~~0", + "SOLIDREGION~100~~M 401.9684 305.9055 L 401.9684 304.6064 L 401.9684 304.6064 L 402.7557 304.6064 L 402.7557 304.6064 L 402.7557 305.9055 Z ~solid~gge195~~~~0", + "SOLIDREGION~100~~M 400.3932 305.9059 L 400.3932 304.6064 L 400.3932 304.6064 L 401.1808 304.6064 L 401.1808 304.6064 L 401.1808 305.9059 Z ~solid~gge196~~~~0", + "SOLIDREGION~100~~M 398.8194 305.9055 L 398.8194 304.6064 L 398.8194 304.6064 L 399.6071 304.6064 L 399.6071 304.6064 L 399.6071 305.9055 Z ~solid~gge197~~~~0", + "SOLIDREGION~100~~M 397.2444 305.9055 L 397.2444 304.6064 L 397.2444 304.6064 L 398.0318 304.6064 L 398.0318 304.6064 L 398.0318 305.9055 Z ~solid~gge198~~~~0", + "SOLIDREGION~100~~M 395.6696 305.9055 L 395.6696 304.6064 L 395.6696 304.6064 L 396.4568 304.6064 L 396.4568 304.6064 L 396.4568 305.9055 Z ~solid~gge199~~~~0", + "SVGNODE~{\"gId\":\"g1_outline\",\"nodeName\":\"g\",\"nodeType\":1,\"layerid\":\"19\",\"attrs\":{\"c_width\":\"11.811\",\"c_height\":\"11.811\",\"c_rotation\":\"0,0,0\",\"z\":\"0\",\"c_origin\":\"400,300\",\"uuid\":\"1ada17ccfc8345ac9195288b2f01547d\",\"c_etype\":\"outline3D\",\"id\":\"g1_outline\",\"title\":\"LGA-24_L3.0-W3.0-P0.40-TL\",\"layerid\":\"19\",\"transform\":\"scale(1) translate(0, 0)\"},\"childNodes\":[{\"gId\":\"g1_outline_line0\",\"nodeName\":\"polyline\",\"nodeType\":1,\"attrs\":{\"fill\":\"none\",\"id\":\"g1_outline_line0\",\"c_shapetype\":\"line\",\"points\":\"394.0945 294.0945 394.0945 305.9055 405.9055 305.9055 405.9055 294.0945 394.0945 294.0945 394.0945 294.0945\"}}]}" + ], + "layers": [ + "1~TopLayer~#FF0000~true~false~true~", + "2~BottomLayer~#0000FF~true~false~true~", + "3~TopSilkLayer~#FFCC00~true~false~true~", + "4~BottomSilkLayer~#66CC33~true~false~true~", + "5~TopPasteMaskLayer~#808080~true~false~true~", + "6~BottomPasteMaskLayer~#800000~true~false~true~", + "7~TopSolderMaskLayer~#800080~true~false~true~0.3", + "8~BottomSolderMaskLayer~#AA00FF~true~false~true~0.3", + "9~Ratlines~#6464FF~true~false~true~", + "10~BoardOutLine~#FF00FF~true~false~true~", + "11~Multi-Layer~#C0C0C0~true~false~true~", + "12~Document~#FFFFFF~true~false~true~", + "13~TopAssembly~#33CC99~true~false~true~", + "14~BottomAssembly~#5555FF~true~false~true~", + "15~Mechanical~#F022F0~true~false~true~", + "19~3DModel~#66CCFF~true~false~true~", + "21~Inner1~#999966~false~false~false~~", + "22~Inner2~#008000~false~false~false~~", + "23~Inner3~#00FF00~false~false~false~~", + "24~Inner4~#BC8E00~false~false~false~~", + "25~Inner5~#70DBFA~false~false~false~~", + "26~Inner6~#00CC66~false~false~false~~", + "27~Inner7~#9966FF~false~false~false~~", + "28~Inner8~#800080~false~false~false~~", + "29~Inner9~#008080~false~false~false~~", + "30~Inner10~#15935F~false~false~false~~", + "31~Inner11~#000080~false~false~false~~", + "32~Inner12~#00B400~false~false~false~~", + "33~Inner13~#2E4756~false~false~false~~", + "34~Inner14~#99842F~false~false~false~~", + "35~Inner15~#FFFFAA~false~false~false~~", + "36~Inner16~#99842F~false~false~false~~", + "37~Inner17~#2E4756~false~false~false~~", + "38~Inner18~#3535FF~false~false~false~~", + "39~Inner19~#8000BC~false~false~false~~", + "40~Inner20~#43AE5F~false~false~false~~", + "41~Inner21~#C3ECCE~false~false~false~~", + "42~Inner22~#728978~false~false~false~~", + "43~Inner23~#39503F~false~false~false~~", + "44~Inner24~#0C715D~false~false~false~~", + "45~Inner25~#5A8A80~false~false~false~~", + "46~Inner26~#2B937E~false~false~false~~", + "47~Inner27~#23999D~false~false~false~~", + "48~Inner28~#45B4E3~false~false~false~~", + "49~Inner29~#215DA1~false~false~false~~", + "50~Inner30~#4564D7~false~false~false~~", + "51~Inner31~#6969E9~false~false~false~~", + "52~Inner32~#9069E9~false~false~false~~", + "99~ComponentShapeLayer~#00CCCC~true~false~true~0.4", + "100~LeadShapeLayer~#CC9999~true~true~true~", + "101~ComponentMarkingLayer~#66FFCC~true~false~true~", + "Hole~Hole~#222222~false~false~true~", + "DRCError~DRCError~#FAD609~false~false~true~" + ], + "objects": [ + "All~true~false", + "Component~true~true", + "Prefix~true~true", + "Name~true~false", + "Track~true~true", + "Pad~true~true", + "Via~true~true", + "Hole~true~true", + "Copper_Area~true~true", + "Circle~true~true", + "Arc~true~true", + "Solid_Region~true~true", + "Text~true~true", + "Image~true~true", + "Rect~true~true", + "Dimension~true~true", + "Protractor~true~true" + ], + "BBox": { + "x": 391.6, + "y": 293.4, + "width": 15, + "height": 13.2 + } + } + }, + "_objMetadata": { + "bounds": { + "min": { + "x": -1.5, + "y": -1.5, + "z": -0.14 + }, + "max": { + "x": 1.5, + "y": 1.5, + "z": 0.82 + } + } + } +} \ No newline at end of file diff --git a/tests/assets/C9900014805.raweasy.json b/tests/assets/C9900014805.raweasy.json new file mode 100644 index 00000000..8c26f092 --- /dev/null +++ b/tests/assets/C9900014805.raweasy.json @@ -0,0 +1,238 @@ +{ + "uuid": "55ca8ca237f847188bc7336047b4fc97", + "title": "SPH0641LM4H", + "description": "", + "docType": 2, + "type": 3, + "thumb": "/component/55ca8ca237f847188bc7336047b4fc97.png", + "lcsc": { + "id": 3482997, + "number": "C9900014805" + }, + "szlcsc": { + "id": 3482997, + "number": "C9900014805" + }, + "owner": { + "uuid": "0819f05c4eef4c71ace90d822a990e87", + "username": "lcsc", + "nickname": "LCSC", + "avatar": "//image.lceda.cn/avatars/2018/6/kFlrasi7W06gTdBLAqW3fkrqbDhbowynuSzkjqso.png" + }, + "tags": [], + "updateTime": 1747074429, + "updated_at": "2025-05-12 18:57:30", + "dataStr": { + "head": { + "docType": "2", + "editorVersion": "6.5.3", + "x": 285, + "y": 265, + "c_para": { + "pre": "MIC?", + "name": "SPH0641LM4H", + "package": "MIC-SMD_5P_L3.5-W2.7-P0.82_SPH0641LU4H-1", + "Contributor": "lcsc", + "Supplier": "LCSC", + "Supplier Part": "C9900014805", + "Manufacturer": null, + "Manufacturer Part": "SPH0641LM4H", + "JLCPCB Part Class": "Extended Part" + }, + "puuid": "419905241866469e87daa1a7a126691e", + "utime": 1651677215, + "uuid": "55ca8ca237f847188bc7336047b4fc97", + "importFlag": 0, + "c_spiceCmd": null, + "hasIdFlag": true + }, + "canvas": "CA~1000~1000~#FFFFFF~yes~#CCCCCC~5~1000~1000~line~5~pixel~5~285~265", + "shape": [ + "P~show~0~5~330~260~0~gge7~0^^330~260^^M 330 260 h -10~#FF0000^^1~316.3~264~0~VDD~end~~~#FF0000^^1~320.5~259~0~5~start~~~#FF0000^^0~323~260^^0~M 320 257 L 317 260 L 320 263", + "P~show~0~4~330~270~0~gge28~0^^330~270^^M 330 270 h -10~#880000^^1~316.3~274~0~CLK~end~~~#0000FF^^1~320.5~269~0~4~start~~~#0000FF^^0~323~270^^0~M 320 267 L 317 270 L 320 273", + "P~show~0~3~240~275~180~gge49~0^^240~275^^M 240 275 h 10~#000000^^1~253.7~279~0~GND~start~~~#000000^^1~249.5~274~0~3~end~~~#000000^^0~247~275^^0~M 250 278 L 253 275 L 250 272", + "P~show~0~2~240~265~180~gge70~0^^240~265^^M 240 265 h 10~#880000^^1~253.7~269~0~SELECT~start~~~#0000FF^^1~249.5~264~0~2~end~~~#0000FF^^0~247~265^^0~M 250 268 L 253 265 L 250 262", + "P~show~0~1~240~255~180~gge91~0^^240~255^^M 240 255 h 10~#880000^^1~253.7~259~0~DATA~start~~~#0000FF^^1~249.5~254~0~1~end~~~#0000FF^^0~247~255^^0~M 250 258 L 253 255 L 250 252", + "E~255~250~1.5~1.5~#880000~1~0~#880000~gge112~0", + "R~250~245~2~2~70~40~#880000~1~0~none~gge115~0~" + ], + "BBox": { + "x": 239, + "y": 244.9, + "width": 92, + "height": 40.1 + }, + "colors": [] + }, + "jlcOnSale": 1, + "datastrid": "0024a7ab1b4048a48248304898f4fbf8", + "verify": true, + "SMT": true, + "writable": false, + "isFavorite": false, + "packageDetail": { + "uuid": "419905241866469e87daa1a7a126691e", + "title": "MIC-SMD_5P_L3.5-W2.7-P0.82_SPH0641LU4H-1", + "docType": 4, + "updateTime": 1703729109, + "owner": { + "uuid": "0819f05c4eef4c71ace90d822a990e87", + "username": "lcsc", + "nickname": "LCSC", + "avatar": "//image.lceda.cn/avatars/2018/6/kFlrasi7W06gTdBLAqW3fkrqbDhbowynuSzkjqso.png" + }, + "datastrid": "b45be9c75f9b472ba8274c0d00451510", + "writable": false, + "dataStr": { + "head": { + "docType": "4", + "editorVersion": "6.5.39", + "newgId": true, + "c_para": { + "package": "MIC-SMD_5P_L3.5-W2.7-P0.82_SPH0641LU4H-1", + "pre": "U?", + "Contributor": "lcsc", + "link": "https://img.jlc.com//pdf/applyPasteComponent/2021-08-07/257629D/ebb1ae7e034c4583a94c3252fc2f619e/sph0641lu4h-1-revb.pdf", + "3DModel": "MIC-SMD_5P_L3.5-W2.7-P0.82_SPH0641LU4H-1" + }, + "x": 3995.352, + "y": 2968.023, + "hasIdFlag": true, + "utime": 1703729109, + "uuid": "419905241866469e87daa1a7a126691e", + "importFlag": 0, + "transformList": "", + "uuid_3d": "085574939dfb440599fd212240983b9c" + }, + "canvas": "CA~1000~1000~#000000~yes~#FFFFFF~0.3937~1000~1000~line~0.03937~mm~0.3937~ARC~visible~0.5~3995.352~2968.023~0~none", + "shape": [ + "CIRCLE~3990.136~2961.544~0.118~0.2362~101~gge484~0~~", + "CIRCLE~3991.887~2960.835~0.492~0.9843~12~gge229~0~~", + "CIRCLE~3995.352~2971.229~0.276~0.5512~12~gge329~0~~", + "SOLIDREGION~100~~M 3997.2242 2962.04 L 4000.0786 2962.04 L 4000.0786 2964.0872 L 3997.2242 2964.0872 Z ~solid~gge225~~~~0", + "SOLIDREGION~100~~M 3997.2242 2965.2763 L 4000.0786 2965.2763 L 4000.0786 2967.3235 L 3997.2242 2967.3235 Z ~solid~gge226~~~~0", + "SOLIDREGION~100~~M 3990.6258 2965.2764 L 3993.4802 2965.2764 L 3993.4802 2967.3236 L 3990.6258 2967.3236 Z ~solid~gge227~~~~0", + "SOLIDREGION~100~~M 3990.6258 2962.0401 L 3993.4802 2962.0401 L 3993.4802 2964.0873 L 3990.6258 2964.0873 Z ~solid~gge228~~~~0", + "SOLIDREGION~100~~M 3994.9557 2968.0533 L 3994.9551 2968.0533 A 3.1988 3.1988 0 0 0 3992.1818 2970.7932 L 3993.37 2970.7932 A 0.0493 0.0493 0 0 1 3993.4192 2970.7923 A 2.0177 2.0177 0 0 1 3994.9551 2969.2959 Z ~solid~gge456~~~~0", + "SOLIDREGION~100~~M 3992.1763 2971.6253 L 3992.1763 2971.6259 A 3.1988 3.1988 0 0 0 3994.9162 2974.3992 L 3994.9162 2973.211 A 0.0493 0.0493 0 0 1 3994.9153 2973.1618 A 2.0177 2.0177 0 0 1 3993.4189 2971.6259 Z~solid~gge462~~~~0", + "SOLIDREGION~100~~M 3998.5276 2970.8327 L 3998.5276 2970.8321 A 3.1988 3.1988 0 0 0 3995.7877 2968.0588 L 3995.7877 2969.247 A 0.0493 0.0493 0 0 1 3995.7886 2969.2962 A 2.0177 2.0177 0 0 1 3997.285 2970.8321 Z~solid~gge474~~~~0", + "SOLIDREGION~100~~M 3995.748 2974.4047 L 3995.7486 2974.4047 A 3.1988 3.1988 0 0 0 3998.5219 2971.6648 L 3997.3337 2971.6648 A 0.0493 0.0493 0 0 1 3997.2845 2971.6657 A 2.0177 2.0177 0 0 1 3995.7486 2973.1621 Z~solid~gge480~~~~0", + "SOLIDREGION~99~~M 3990.1357 2975.3234 L 4000.5687 2975.3234 L 4000.5687 2961.5442 L 3990.1357 2961.5442 Z ~solid~gge223~~~~0", + "TRACK~0.5906~3~~3990.0995 2961.5443 3989.8405 2961.5443 3989.8405 2962.9615~gge237~0", + "TRACK~0.5906~3~~3996.6977 2961.5443 3994.0065 2961.5443~gge236~0", + "TRACK~0.5906~3~~4000.8639 2961.5443 4000.6051 2961.5443~gge235~0", + "TRACK~0.5906~3~~3993.6398 2975.3233 3989.8405 2975.3233 3989.8405 2973.9063~gge234~0", + "TRACK~0.5906~3~~4000.8639 2975.3233 3997.0636 2975.3233~gge233~0", + "TRACK~0.5906~3~~4000.8639 2968.4337 4000.8639 2961.5443~gge232~0", + "TRACK~0.5906~3~~4000.8639 2968.4337 4000.8639 2975.3233~gge231~0", + "TRACK~0.5906~3~~3989.8405 2962.9615 3989.8405 2973.9063~gge230~0", + "CIRCLE~3991.887~2960.284~0.591~1.1811~3~gge222~0~~", + "PAD~RECT~3998.651~2963.064~2.874~2.0866~1~~5~0~3997.2144 2962.0203 4000.0884 2962.0203 4000.0884 2964.1069 3997.2144 2964.1069~0~gge218~0~~Y~0~0~0.1969~3998.6514,2963.0636", + "PAD~RECT~3998.651~2966.3~2.874~2.0866~1~~4~0~3997.2144 2965.2566 4000.0884 2965.2566 4000.0884 2967.3432 3997.2144 2967.3432~0~gge219~0~~Y~0~0~0.1969~3998.6514,2966.2999", + "PAD~RECT~3992.053~2966.3~2.874~2.0866~1~~2~0~3990.616 2965.2567 3993.49 2965.2567 3993.49 2967.3433 3990.616 2967.3433~0~gge220~0~~Y~0~0~0.1969~3992.053,2966.3", + "PAD~RECT~3992.053~2963.064~2.874~2.0866~1~~1~0~3990.616 2962.0204 3993.49 2962.0204 3993.49 2964.107 3990.616 2964.107~0~gge221~0~~Y~0~0~0.1969~3992.053,2963.0637", + "PAD~POLYGON~3997.158~2969.514~2.74~2.7739~1~~3~0~3998.528 2970.832 3998.528 2970.8314 3998.504 2970.672 3998.472 2970.514 3998.4321 2970.3577 3998.3844 2970.2038 3998.329 2970.0524 3998.266 2969.9039 3998.1956 2969.7589 3998.118 2969.6176 3998.0334 2969.4803 3997.942 2969.3475 3997.844 2969.2195 3997.7397 2969.0966 3997.6293 2968.9791 3997.5131 2968.8673 3997.3915 2968.7615 3997.2647 2968.662 3997.133 2968.569 3996.9968 2968.4827 3996.8564 2968.4034 3996.7122 2968.3313 3996.5646 2968.2665 3996.4139 2968.2093 3996.2605 2968.1597 3996.1047 2968.1179 3995.9471 2968.084 3995.788 2968.0581 3995.788 2969.2463 3995.7951 2969.2708 3995.789 2969.2956 3995.9171 2969.3312 3996.0426 2969.3752 3996.1649 2969.4273 3996.2835 2969.4874 3996.3979 2969.5552 3996.5076 2969.6303 3996.6121 2969.7125 3996.7109 2969.8014 3996.8037 2969.8966 3996.89 2969.9978 3996.9695 2970.1044 3997.0418 2970.216 3997.1065 2970.3321 3997.1635 2970.4522 3997.2124 2970.5758 3997.2531 2970.7024 3997.2854 2970.8314~0~gge444~0~~Y~0~0~0.19685~3997.1581,2969.5137", + "PAD~POLYGON~3997.136~2972.982~2.7739~2.74~1~~3~0~3995.7489 2974.405 3995.7495 2974.405 3995.9089 2974.381 3996.0669 2974.349 3996.2232 2974.3091 3996.3771 2974.2614 3996.5285 2974.206 3996.677 2974.143 3996.822 2974.0726 3996.9633 2973.995 3997.1006 2973.9104 3997.2334 2973.819 3997.3614 2973.721 3997.4843 2973.6167 3997.6018 2973.5063 3997.7136 2973.3901 3997.8194 2973.2685 3997.9189 2973.1417 3998.0119 2973.01 3998.0982 2972.8738 3998.1775 2972.7334 3998.2496 2972.5892 3998.3144 2972.4416 3998.3716 2972.2909 3998.4212 2972.1375 3998.463 2971.9817 3998.4969 2971.8241 3998.5228 2971.665 3997.3346 2971.665 3997.3101 2971.6721 3997.2853 2971.666 3997.2497 2971.7941 3997.2057 2971.9196 3997.1536 2972.0419 3997.0935 2972.1605 3997.0257 2972.2749 3996.9506 2972.3846 3996.8684 2972.4891 3996.7795 2972.5879 3996.6843 2972.6807 3996.5831 2972.767 3996.4765 2972.8465 3996.3649 2972.9188 3996.2488 2972.9835 3996.1287 2973.0405 3996.0051 2973.0894 3995.8785 2973.1301 3995.7495 2973.1624~0~gge447~0~~Y~0~0~0.19685~3997.1357,2972.9817", + "PAD~POLYGON~3993.546~2972.944~2.74~2.7737~1~~3~0~3992.176 2971.6259 3992.176 2971.6263 3992.2 2971.7857 3992.232 2971.9438 3992.2718 2972.1 3992.3196 2972.254 3992.375 2972.4054 3992.438 2972.5538 3992.5083 2972.6988 3992.5859 2972.8402 3992.6705 2972.9774 3992.762 2973.1102 3992.86 2973.2382 3992.9643 2973.3611 3993.0747 2973.4787 3993.1908 2973.5905 3993.3125 2973.6963 3993.4393 2973.7958 3993.571 2973.8888 3993.7072 2973.9751 3993.8476 2974.0544 3993.9918 2974.1265 3994.1394 2974.1913 3994.2901 2974.2485 3994.4435 2974.2981 3994.5992 2974.3399 3994.7569 2974.3738 3994.916 2974.3997 3994.916 2973.2115 3994.9089 2973.1869 3994.915 2973.1621 3994.7869 2973.1265 3994.6614 2973.0825 3994.5391 2973.0304 3994.4205 2972.9703 3994.3061 2972.9025 3994.1964 2972.8274 3994.0919 2972.7452 3993.9931 2972.6563 3993.9003 2972.5611 3993.814 2972.4599 3993.7345 2972.3533 3993.6622 2972.2417 3993.5975 2972.1256 3993.5405 2972.0055 3993.4916 2971.8819 3993.4509 2971.7553 3993.4186 2971.6263~0~gge450~0~~Y~0~0~0.19685~3993.546,2972.9441", + "PAD~POLYGON~3993.568~2969.476~2.7739~2.74~1~~3~0~3994.955 2968.053 3994.9544 2968.053 3994.7949 2968.077 3994.6369 2968.109 3994.4807 2968.1489 3994.3267 2968.1966 3994.1753 2968.252 3994.0269 2968.315 3993.8819 2968.3854 3993.7406 2968.463 3993.6033 2968.5476 3993.4705 2968.639 3993.3425 2968.737 3993.2196 2968.8413 3993.1021 2968.9517 3992.9903 2969.0679 3992.8845 2969.1895 3992.785 2969.3163 3992.6919 2969.448 3992.6057 2969.5842 3992.5264 2969.7246 3992.4543 2969.8688 3992.3895 2970.0164 3992.3323 2970.1671 3992.2827 2970.3205 3992.2409 2970.4763 3992.207 2970.6339 3992.1811 2970.793 3993.3693 2970.793 3993.3938 2970.7859 3993.4186 2970.792 3993.4542 2970.6639 3993.4982 2970.5384 3993.5503 2970.4161 3993.6104 2970.2975 3993.6781 2970.1831 3993.7533 2970.0734 3993.8355 2969.9689 3993.9244 2969.8701 3994.0196 2969.7773 3994.1208 2969.691 3994.2274 2969.6115 3994.339 2969.5393 3994.4551 2969.4745 3994.5752 2969.4175 3994.6988 2969.3686 3994.8254 2969.3279 3994.9544 2969.2956~0~gge453~0~~Y~0~0~0.19685~3993.5681,2969.4764", + "HOLE~3995.352~2971.229~0.9843~gge215~0", + "SVGNODE~{\"gId\":\"g1_outline\",\"nodeName\":\"g\",\"nodeType\":1,\"layerid\":\"19\",\"attrs\":{\"c_width\":\"10.43305\",\"c_height\":\"13.7795\",\"c_rotation\":\"0,0,0\",\"z\":\"0\",\"c_origin\":\"3995.352,2968.4167\",\"uuid\":\"587ef2d4cd9c42aca9875a2e1e64e486\",\"c_etype\":\"outline3D\",\"id\":\"g1_outline\",\"title\":\"MIC-SMD_5P_L3.5-W2.7-P0.82_SPH0641LU4H-1\",\"layerid\":\"19\",\"transform\":\"scale(1) translate(0, 0)\"},\"childNodes\":[{\"gId\":\"g1_outline_line0\",\"nodeName\":\"polyline\",\"nodeType\":1,\"attrs\":{\"fill\":\"none\",\"id\":\"g1_outline_line0\",\"c_shapetype\":\"line\",\"points\":\"3990.1355 2961.527 3990.1355 2964.6766 3990.1355 2975.3065 3995.3323 2975.3065 4000.5685 2975.3065 4000.5685 2964.6766 4000.5685 2961.527 3995.3323 2961.527 3990.1355 2961.527 3990.1355 2961.527\"}}]}" + ], + "layers": [ + "1~TopLayer~#FF0000~true~false~true~", + "2~BottomLayer~#0000FF~true~false~true~", + "3~TopSilkLayer~#FFCC00~true~false~true~", + "4~BottomSilkLayer~#66CC33~true~false~true~", + "5~TopPasteMaskLayer~#808080~true~true~true~", + "6~BottomPasteMaskLayer~#800000~true~false~true~", + "7~TopSolderMaskLayer~#800080~true~false~true~0.3", + "8~BottomSolderMaskLayer~#AA00FF~true~false~true~0.3", + "9~Ratlines~#6464FF~true~false~true~", + "10~BoardOutLine~#FF00FF~true~false~true~", + "11~Multi-Layer~#C0C0C0~true~false~true~", + "12~Document~#FFFFFF~true~false~true~", + "13~TopAssembly~#33CC99~true~false~true~", + "14~BottomAssembly~#5555FF~true~false~true~", + "15~Mechanical~#F022F0~true~false~true~", + "19~3DModel~#66CCFF~true~false~true~", + "21~Inner1~#999966~false~false~false~~", + "22~Inner2~#008000~false~false~false~~", + "23~Inner3~#00FF00~false~false~false~~", + "24~Inner4~#BC8E00~false~false~false~~", + "25~Inner5~#70DBFA~false~false~false~~", + "26~Inner6~#00CC66~false~false~false~~", + "27~Inner7~#9966FF~false~false~false~~", + "28~Inner8~#800080~false~false~false~~", + "29~Inner9~#008080~false~false~false~~", + "30~Inner10~#15935F~false~false~false~~", + "31~Inner11~#000080~false~false~false~~", + "32~Inner12~#00B400~false~false~false~~", + "33~Inner13~#2E4756~false~false~false~~", + "34~Inner14~#99842F~false~false~false~~", + "35~Inner15~#FFFFAA~false~false~false~~", + "36~Inner16~#99842F~false~false~false~~", + "37~Inner17~#2E4756~false~false~false~~", + "38~Inner18~#3535FF~false~false~false~~", + "39~Inner19~#8000BC~false~false~false~~", + "40~Inner20~#43AE5F~false~false~false~~", + "41~Inner21~#C3ECCE~false~false~false~~", + "42~Inner22~#728978~false~false~false~~", + "43~Inner23~#39503F~false~false~false~~", + "44~Inner24~#0C715D~false~false~false~~", + "45~Inner25~#5A8A80~false~false~false~~", + "46~Inner26~#2B937E~false~false~false~~", + "47~Inner27~#23999D~false~false~false~~", + "48~Inner28~#45B4E3~false~false~false~~", + "49~Inner29~#215DA1~false~false~false~~", + "50~Inner30~#4564D7~false~false~false~~", + "51~Inner31~#6969E9~false~false~false~~", + "52~Inner32~#9069E9~false~false~false~~", + "99~ComponentShapeLayer~#00CCCC~true~false~true~0.4", + "100~LeadShapeLayer~#CC9999~true~false~true~", + "101~ComponentMarkingLayer~#66FFCC~true~false~true~", + "Hole~Hole~#222222~false~false~true~", + "DRCError~DRCError~#FAD609~false~false~true~" + ], + "objects": [ + "All~true~false", + "Component~true~true", + "Prefix~true~true", + "Name~true~false", + "Track~true~true", + "Pad~true~true", + "Via~true~true", + "Hole~true~true", + "Copper_Area~true~true", + "Circle~true~true", + "Arc~true~true", + "Solid_Region~true~true", + "Text~true~true", + "Image~true~true", + "Rect~true~true", + "Dimension~true~true", + "Protractor~true~true" + ], + "BBox": { + "x": 3989.8, + "y": 2959.7, + "width": 11, + "height": 15.6 + }, + "netColors": [] + } + }, + "_objMetadata": { + "bounds": { + "min": { + "x": -1.325, + "y": -1.75, + "z": -0.001 + }, + "max": { + "x": 1.325, + "y": 1.75, + "z": 0.99 + } + } + } +} \ No newline at end of file diff --git a/tests/convert-to-ts/C2879853-to-ts.test.ts b/tests/convert-to-ts/C2879853-to-ts.test.ts new file mode 100644 index 00000000..4a1d1fe1 --- /dev/null +++ b/tests/convert-to-ts/C2879853-to-ts.test.ts @@ -0,0 +1,78 @@ +import { it, expect } from "bun:test" +import chipRawEasy from "../assets/C2879853.raweasy.json" +import { convertBetterEasyToTsx } from "lib/websafe/convert-to-typescript-component" +import { EasyEdaJsonSchema } from "lib/schemas/easy-eda-json-schema" +import { runTscircuitCode } from "tscircuit" +import { wrapTsxWithBoardFor3dSnapshot } from "../fixtures/wrap-tsx-with-board-for-3d-snapshot" + +it("should convert C2879853 into typescript file", async () => { + const betterEasy = EasyEdaJsonSchema.parse(chipRawEasy) + const result = await convertBetterEasyToTsx({ + betterEasy, + }) + + expect(result).not.toContain("milmm") + expect(result).not.toContain("NaNmm") + + const circuitJson = await runTscircuitCode( + wrapTsxWithBoardFor3dSnapshot(result), + ) + await expect(circuitJson).toMatch3dSnapshot(import.meta.path) + + expect(result).toMatchInlineSnapshot(` + "import type { ChipProps } from "@tscircuit/props" + + const pinLabels = { + pin1: ["DATA"], + pin2: ["SELECT"], + pin3: ["GROUND1"], + pin4: ["CLOCK"], + pin5: ["VDD"], + pin6: ["pin3_alt1"], + pin7: ["pin3_alt1"], + pin8: ["pin3_alt1"] + } as const + + export const SPH0641LU4H_1 = (props: ChipProps) => { + return ( + + + + + + + + + + + + + + + + + + + + + } + cadModel={{ + objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C2879853.obj?uuid=587ef2d4cd9c42aca9875a2e1e64e486", + stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C2879853.step?uuid=587ef2d4cd9c42aca9875a2e1e64e486", + pcbRotationOffset: 0, + modelOriginPosition: { x: 0, y: 0, z: -0.001 }, + }} + {...props} + /> + ) + }" + `) +}) diff --git a/tests/convert-to-ts/C5360621-to-ts.test.ts b/tests/convert-to-ts/C5360621-to-ts.test.ts new file mode 100644 index 00000000..ba387395 --- /dev/null +++ b/tests/convert-to-ts/C5360621-to-ts.test.ts @@ -0,0 +1,105 @@ +import { it, expect } from "bun:test" +import chipRawEasy from "../assets/C5360621.raweasy.json" +import { convertBetterEasyToTsx } from "lib/websafe/convert-to-typescript-component" +import { EasyEdaJsonSchema } from "lib/schemas/easy-eda-json-schema" +import { runTscircuitCode } from "tscircuit" +import { wrapTsxWithBoardFor3dSnapshot } from "../fixtures/wrap-tsx-with-board-for-3d-snapshot" + +it("should convert C5360621 into typescript file", async () => { + const betterEasy = EasyEdaJsonSchema.parse(chipRawEasy) + const result = await convertBetterEasyToTsx({ + betterEasy, + }) + + expect(result).not.toContain("milmm") + expect(result).not.toContain("NaNmm") + + const circuitJson = await runTscircuitCode( + wrapTsxWithBoardFor3dSnapshot(result), + ) + await expect(circuitJson).toMatch3dSnapshot(import.meta.path) + + expect(result).toMatchInlineSnapshot(` + "import type { ChipProps } from "@tscircuit/props" + + const pinLabels = { + pin1: ["NC12"], + pin2: ["NC1"], + pin3: ["NC2"], + pin4: ["NC3"], + pin5: ["NC4"], + pin6: ["NC11"], + pin7: ["NC13"], + pin8: ["VDDIO"], + pin9: ["pin9"], + pin10: ["NC5"], + pin11: ["RESV1"], + pin12: ["pin12"], + pin13: ["VDD"], + pin14: ["NC6"], + pin15: ["NC7"], + pin16: ["NC8"], + pin17: ["NC9"], + pin18: ["GND"], + pin19: ["pin19"], + pin20: ["RESV2"], + pin21: ["NC10"], + pin22: ["nCS"], + pin23: ["pin23"], + pin24: ["pin24"] + } as const + + export const ICM_40609_D = (props: ChipProps) => { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + } + cadModel={{ + objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C5360621.obj?uuid=1ada17ccfc8345ac9195288b2f01547d", + stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C5360621.step?uuid=1ada17ccfc8345ac9195288b2f01547d", + pcbRotationOffset: 0, + modelOriginPosition: { x: 0, y: 0, z: -0.14 }, + }} + {...props} + /> + ) + }" + `) +}) diff --git a/tests/convert-to-ts/C9900014805-to-ts.test.ts b/tests/convert-to-ts/C9900014805-to-ts.test.ts new file mode 100644 index 00000000..29961c1f --- /dev/null +++ b/tests/convert-to-ts/C9900014805-to-ts.test.ts @@ -0,0 +1,78 @@ +import { it, expect } from "bun:test" +import chipRawEasy from "../assets/C9900014805.raweasy.json" +import { convertBetterEasyToTsx } from "lib/websafe/convert-to-typescript-component" +import { EasyEdaJsonSchema } from "lib/schemas/easy-eda-json-schema" +import { runTscircuitCode } from "tscircuit" +import { wrapTsxWithBoardFor3dSnapshot } from "../fixtures/wrap-tsx-with-board-for-3d-snapshot" + +it("should convert C9900014805 into typescript file", async () => { + const betterEasy = EasyEdaJsonSchema.parse(chipRawEasy) + const result = await convertBetterEasyToTsx({ + betterEasy, + }) + + expect(result).not.toContain("milmm") + expect(result).not.toContain("NaNmm") + + const circuitJson = await runTscircuitCode( + wrapTsxWithBoardFor3dSnapshot(result), + ) + await expect(circuitJson).toMatch3dSnapshot(import.meta.path) + + expect(result).toMatchInlineSnapshot(` + "import type { ChipProps } from "@tscircuit/props" + + const pinLabels = { + pin1: ["DATA"], + pin2: ["SELECT"], + pin3: ["GND1"], + pin4: ["CLK"], + pin5: ["VDD"], + pin6: ["pin3_alt1"], + pin7: ["pin3_alt1"], + pin8: ["pin3_alt1"] + } as const + + export const SPH0641LM4H = (props: ChipProps) => { + return ( + + + + + + + + + + + + + + + + + + + + + } + cadModel={{ + objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C9900014805.obj?uuid=587ef2d4cd9c42aca9875a2e1e64e486", + stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C9900014805.step?uuid=587ef2d4cd9c42aca9875a2e1e64e486", + pcbRotationOffset: 0, + modelOriginPosition: { x: 0, y: 0, z: -0.001 }, + }} + {...props} + /> + ) + }" + `) +}) diff --git a/tests/convert-to-ts/__snapshots__/C2879853-to-ts-simple-3d.snap.png b/tests/convert-to-ts/__snapshots__/C2879853-to-ts-simple-3d.snap.png new file mode 100644 index 00000000..ed2e5404 Binary files /dev/null and b/tests/convert-to-ts/__snapshots__/C2879853-to-ts-simple-3d.snap.png differ diff --git a/tests/convert-to-ts/__snapshots__/C5360621-to-ts-simple-3d.snap.png b/tests/convert-to-ts/__snapshots__/C5360621-to-ts-simple-3d.snap.png new file mode 100644 index 00000000..9f83b736 Binary files /dev/null and b/tests/convert-to-ts/__snapshots__/C5360621-to-ts-simple-3d.snap.png differ diff --git a/tests/convert-to-ts/__snapshots__/C9900014805-to-ts-simple-3d.snap.png b/tests/convert-to-ts/__snapshots__/C9900014805-to-ts-simple-3d.snap.png new file mode 100644 index 00000000..ed2e5404 Binary files /dev/null and b/tests/convert-to-ts/__snapshots__/C9900014805-to-ts-simple-3d.snap.png differ