@linkiez/dxf-renew 5.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (447) hide show
  1. package/.eslintignore +17 -0
  2. package/.eslintrc.json +61 -0
  3. package/.gitattributes +4 -0
  4. package/.github/instructions/project-en_US.instructions.md +352 -0
  5. package/.github/workflows/release.yml +110 -0
  6. package/.husky/commit-msg +4 -0
  7. package/.husky/pre-commit +1 -0
  8. package/.prettierignore +1 -0
  9. package/.prettierrc.json +6 -0
  10. package/.releaserc.json +76 -0
  11. package/.travis.yml +6 -0
  12. package/.yarn/install-state.gz +0 -0
  13. package/.yarnrc.yml +1 -0
  14. package/CHANGELOG.md +134 -0
  15. package/CONTRIBUTING.md +271 -0
  16. package/LICENSE +21 -0
  17. package/PLAN.md +517 -0
  18. package/README.md +306 -0
  19. package/build.mjs +66 -0
  20. package/commitlint.config.js +25 -0
  21. package/dist/dxf.js +7234 -0
  22. package/docs/CODE_PATTERNS.md +182 -0
  23. package/docs/DIMENSION_SUMMARY.md +248 -0
  24. package/docs/DIMENSION_SUMMARY.pt-BR.md +248 -0
  25. package/docs/IMPLEMENTED-2D-ENTITIES.md +54 -0
  26. package/docs/IMPLEMENTED-2D-ENTITIES.pt-BR.md +54 -0
  27. package/docs/TEXT-MTEXT-DIMENSION-SUPPORT.md +241 -0
  28. package/docs/TEXT-MTEXT-DIMENSION-SUPPORT.pt-BR.md +169 -0
  29. package/docs/autocad_2012_pdf_dxf-reference_enu.md +8272 -0
  30. package/examples/dxf.html +36 -0
  31. package/examples/example.es5.js +30 -0
  32. package/examples/example.es6.js +30 -0
  33. package/examples/text-dimension-viewer.html +133 -0
  34. package/lib/Helper.cjs +89 -0
  35. package/lib/Helper.cjs.map +7 -0
  36. package/lib/Helper.js +59 -0
  37. package/lib/Helper.js.map +7 -0
  38. package/lib/applyTransforms.cjs +59 -0
  39. package/lib/applyTransforms.cjs.map +7 -0
  40. package/lib/applyTransforms.js +39 -0
  41. package/lib/applyTransforms.js.map +7 -0
  42. package/lib/cli.cjs +53 -0
  43. package/lib/cli.cjs.map +7 -0
  44. package/lib/cli.js +29 -0
  45. package/lib/cli.js.map +7 -0
  46. package/lib/config.cjs +30 -0
  47. package/lib/config.cjs.map +7 -0
  48. package/lib/config.js +10 -0
  49. package/lib/config.js.map +7 -0
  50. package/lib/constants.cjs +39 -0
  51. package/lib/constants.cjs.map +7 -0
  52. package/lib/constants.js +15 -0
  53. package/lib/constants.js.map +7 -0
  54. package/lib/denormalise.cjs +148 -0
  55. package/lib/denormalise.cjs.map +7 -0
  56. package/lib/denormalise.js +118 -0
  57. package/lib/denormalise.js.map +7 -0
  58. package/lib/dimensionToSVG.cjs +307 -0
  59. package/lib/dimensionToSVG.cjs.map +7 -0
  60. package/lib/dimensionToSVG.js +273 -0
  61. package/lib/dimensionToSVG.js.map +7 -0
  62. package/lib/entityToPolyline.cjs +248 -0
  63. package/lib/entityToPolyline.cjs.map +7 -0
  64. package/lib/entityToPolyline.js +213 -0
  65. package/lib/entityToPolyline.js.map +7 -0
  66. package/lib/getRGBForEntity.cjs +53 -0
  67. package/lib/getRGBForEntity.cjs.map +7 -0
  68. package/lib/getRGBForEntity.js +23 -0
  69. package/lib/getRGBForEntity.js.map +7 -0
  70. package/lib/groupEntitiesByLayer.cjs +34 -0
  71. package/lib/groupEntitiesByLayer.cjs.map +7 -0
  72. package/lib/groupEntitiesByLayer.js +14 -0
  73. package/lib/groupEntitiesByLayer.js.map +7 -0
  74. package/lib/handlers/blocks.cjs +93 -0
  75. package/lib/handlers/blocks.cjs.map +7 -0
  76. package/lib/handlers/blocks.js +63 -0
  77. package/lib/handlers/blocks.js.map +7 -0
  78. package/lib/handlers/entities.cjs +118 -0
  79. package/lib/handlers/entities.cjs.map +7 -0
  80. package/lib/handlers/entities.js +88 -0
  81. package/lib/handlers/entities.js.map +7 -0
  82. package/lib/handlers/entity/arc.cjs +82 -0
  83. package/lib/handlers/entity/arc.cjs.map +7 -0
  84. package/lib/handlers/entity/arc.js +47 -0
  85. package/lib/handlers/entity/arc.js.map +7 -0
  86. package/lib/handlers/entity/attdef.cjs +318 -0
  87. package/lib/handlers/entity/attdef.cjs.map +7 -0
  88. package/lib/handlers/entity/attdef.js +282 -0
  89. package/lib/handlers/entity/attdef.js.map +7 -0
  90. package/lib/handlers/entity/attrib.cjs +52 -0
  91. package/lib/handlers/entity/attrib.cjs.map +7 -0
  92. package/lib/handlers/entity/attrib.js +27 -0
  93. package/lib/handlers/entity/attrib.js.map +7 -0
  94. package/lib/handlers/entity/circle.cjs +73 -0
  95. package/lib/handlers/entity/circle.cjs.map +7 -0
  96. package/lib/handlers/entity/circle.js +38 -0
  97. package/lib/handlers/entity/circle.js.map +7 -0
  98. package/lib/handlers/entity/common.cjs +83 -0
  99. package/lib/handlers/entity/common.cjs.map +7 -0
  100. package/lib/handlers/entity/common.js +63 -0
  101. package/lib/handlers/entity/common.js.map +7 -0
  102. package/lib/handlers/entity/dimension.cjs +203 -0
  103. package/lib/handlers/entity/dimension.cjs.map +7 -0
  104. package/lib/handlers/entity/dimension.js +168 -0
  105. package/lib/handlers/entity/dimension.js.map +7 -0
  106. package/lib/handlers/entity/ellipse.cjs +88 -0
  107. package/lib/handlers/entity/ellipse.cjs.map +7 -0
  108. package/lib/handlers/entity/ellipse.js +53 -0
  109. package/lib/handlers/entity/ellipse.js.map +7 -0
  110. package/lib/handlers/entity/hatch.cjs +470 -0
  111. package/lib/handlers/entity/hatch.cjs.map +7 -0
  112. package/lib/handlers/entity/hatch.js +435 -0
  113. package/lib/handlers/entity/hatch.js.map +7 -0
  114. package/lib/handlers/entity/insert.cjs +106 -0
  115. package/lib/handlers/entity/insert.cjs.map +7 -0
  116. package/lib/handlers/entity/insert.js +71 -0
  117. package/lib/handlers/entity/insert.js.map +7 -0
  118. package/lib/handlers/entity/line.cjs +84 -0
  119. package/lib/handlers/entity/line.cjs.map +7 -0
  120. package/lib/handlers/entity/line.js +49 -0
  121. package/lib/handlers/entity/line.js.map +7 -0
  122. package/lib/handlers/entity/lwpolyline.cjs +82 -0
  123. package/lib/handlers/entity/lwpolyline.cjs.map +7 -0
  124. package/lib/handlers/entity/lwpolyline.js +47 -0
  125. package/lib/handlers/entity/lwpolyline.js.map +7 -0
  126. package/lib/handlers/entity/mtext.cjs +121 -0
  127. package/lib/handlers/entity/mtext.cjs.map +7 -0
  128. package/lib/handlers/entity/mtext.js +85 -0
  129. package/lib/handlers/entity/mtext.js.map +7 -0
  130. package/lib/handlers/entity/ole2Frame.cjs +98 -0
  131. package/lib/handlers/entity/ole2Frame.cjs.map +7 -0
  132. package/lib/handlers/entity/ole2Frame.js +63 -0
  133. package/lib/handlers/entity/ole2Frame.js.map +7 -0
  134. package/lib/handlers/entity/point.cjs +73 -0
  135. package/lib/handlers/entity/point.cjs.map +7 -0
  136. package/lib/handlers/entity/point.js +38 -0
  137. package/lib/handlers/entity/point.js.map +7 -0
  138. package/lib/handlers/entity/polyline.cjs +70 -0
  139. package/lib/handlers/entity/polyline.cjs.map +7 -0
  140. package/lib/handlers/entity/polyline.js +35 -0
  141. package/lib/handlers/entity/polyline.js.map +7 -0
  142. package/lib/handlers/entity/solid.cjs +101 -0
  143. package/lib/handlers/entity/solid.cjs.map +7 -0
  144. package/lib/handlers/entity/solid.js +66 -0
  145. package/lib/handlers/entity/solid.js.map +7 -0
  146. package/lib/handlers/entity/spline.cjs +109 -0
  147. package/lib/handlers/entity/spline.cjs.map +7 -0
  148. package/lib/handlers/entity/spline.js +74 -0
  149. package/lib/handlers/entity/spline.js.map +7 -0
  150. package/lib/handlers/entity/text.cjs +85 -0
  151. package/lib/handlers/entity/text.cjs.map +7 -0
  152. package/lib/handlers/entity/text.js +49 -0
  153. package/lib/handlers/entity/text.js.map +7 -0
  154. package/lib/handlers/entity/threeDFace.cjs +98 -0
  155. package/lib/handlers/entity/threeDFace.cjs.map +7 -0
  156. package/lib/handlers/entity/threeDFace.js +63 -0
  157. package/lib/handlers/entity/threeDFace.js.map +7 -0
  158. package/lib/handlers/entity/vertex.cjs +78 -0
  159. package/lib/handlers/entity/vertex.cjs.map +7 -0
  160. package/lib/handlers/entity/vertex.js +53 -0
  161. package/lib/handlers/entity/vertex.js.map +7 -0
  162. package/lib/handlers/entity/viewport.cjs +153 -0
  163. package/lib/handlers/entity/viewport.cjs.map +7 -0
  164. package/lib/handlers/entity/viewport.js +118 -0
  165. package/lib/handlers/entity/viewport.js.map +7 -0
  166. package/lib/handlers/header.cjs +92 -0
  167. package/lib/handlers/header.cjs.map +7 -0
  168. package/lib/handlers/header.js +72 -0
  169. package/lib/handlers/header.js.map +7 -0
  170. package/lib/handlers/objects.cjs +170 -0
  171. package/lib/handlers/objects.cjs.map +7 -0
  172. package/lib/handlers/objects.js +150 -0
  173. package/lib/handlers/objects.js.map +7 -0
  174. package/lib/handlers/tables.cjs +587 -0
  175. package/lib/handlers/tables.cjs.map +7 -0
  176. package/lib/handlers/tables.js +557 -0
  177. package/lib/handlers/tables.js.map +7 -0
  178. package/lib/index.cjs +60 -0
  179. package/lib/index.cjs.map +7 -0
  180. package/lib/index.js +19 -0
  181. package/lib/index.js.map +7 -0
  182. package/lib/parseString.cjs +118 -0
  183. package/lib/parseString.cjs.map +7 -0
  184. package/lib/parseString.js +88 -0
  185. package/lib/parseString.js.map +7 -0
  186. package/lib/toPolylines.cjs +69 -0
  187. package/lib/toPolylines.cjs.map +7 -0
  188. package/lib/toPolylines.js +39 -0
  189. package/lib/toPolylines.js.map +7 -0
  190. package/lib/toSVG.cjs +395 -0
  191. package/lib/toSVG.cjs.map +7 -0
  192. package/lib/toSVG.js +361 -0
  193. package/lib/toSVG.js.map +7 -0
  194. package/lib/types/arc-entity.cjs +17 -0
  195. package/lib/types/arc-entity.cjs.map +7 -0
  196. package/lib/types/arc-entity.js +1 -0
  197. package/lib/types/arc-entity.js.map +7 -0
  198. package/lib/types/base-entity.cjs +17 -0
  199. package/lib/types/base-entity.cjs.map +7 -0
  200. package/lib/types/base-entity.js +1 -0
  201. package/lib/types/base-entity.js.map +7 -0
  202. package/lib/types/circle-entity.cjs +17 -0
  203. package/lib/types/circle-entity.cjs.map +7 -0
  204. package/lib/types/circle-entity.js +1 -0
  205. package/lib/types/circle-entity.js.map +7 -0
  206. package/lib/types/common.cjs +17 -0
  207. package/lib/types/common.cjs.map +7 -0
  208. package/lib/types/common.js +1 -0
  209. package/lib/types/common.js.map +7 -0
  210. package/lib/types/dimension-entity.cjs +17 -0
  211. package/lib/types/dimension-entity.cjs.map +7 -0
  212. package/lib/types/dimension-entity.js +1 -0
  213. package/lib/types/dimension-entity.js.map +7 -0
  214. package/lib/types/dxf.cjs +17 -0
  215. package/lib/types/dxf.cjs.map +7 -0
  216. package/lib/types/dxf.js +1 -0
  217. package/lib/types/dxf.js.map +7 -0
  218. package/lib/types/ellipse-entity.cjs +17 -0
  219. package/lib/types/ellipse-entity.cjs.map +7 -0
  220. package/lib/types/ellipse-entity.js +1 -0
  221. package/lib/types/ellipse-entity.js.map +7 -0
  222. package/lib/types/entity.cjs +17 -0
  223. package/lib/types/entity.cjs.map +7 -0
  224. package/lib/types/entity.js +1 -0
  225. package/lib/types/entity.js.map +7 -0
  226. package/lib/types/handler-internal.cjs +17 -0
  227. package/lib/types/handler-internal.cjs.map +7 -0
  228. package/lib/types/handler-internal.js +1 -0
  229. package/lib/types/handler-internal.js.map +7 -0
  230. package/lib/types/handler.cjs +17 -0
  231. package/lib/types/handler.cjs.map +7 -0
  232. package/lib/types/handler.js +1 -0
  233. package/lib/types/handler.js.map +7 -0
  234. package/lib/types/hatch-entity.cjs +17 -0
  235. package/lib/types/hatch-entity.cjs.map +7 -0
  236. package/lib/types/hatch-entity.js +1 -0
  237. package/lib/types/hatch-entity.js.map +7 -0
  238. package/lib/types/helper.cjs +17 -0
  239. package/lib/types/helper.cjs.map +7 -0
  240. package/lib/types/helper.js +1 -0
  241. package/lib/types/helper.js.map +7 -0
  242. package/lib/types/index.cjs +77 -0
  243. package/lib/types/index.cjs.map +7 -0
  244. package/lib/types/index.js +29 -0
  245. package/lib/types/index.js.map +7 -0
  246. package/lib/types/insert-entity.cjs +17 -0
  247. package/lib/types/insert-entity.cjs.map +7 -0
  248. package/lib/types/insert-entity.js +1 -0
  249. package/lib/types/insert-entity.js.map +7 -0
  250. package/lib/types/layer-groups.cjs +17 -0
  251. package/lib/types/layer-groups.cjs.map +7 -0
  252. package/lib/types/layer-groups.js +1 -0
  253. package/lib/types/layer-groups.js.map +7 -0
  254. package/lib/types/line-entity.cjs +17 -0
  255. package/lib/types/line-entity.cjs.map +7 -0
  256. package/lib/types/line-entity.js +1 -0
  257. package/lib/types/line-entity.js.map +7 -0
  258. package/lib/types/mtext-entity.cjs +17 -0
  259. package/lib/types/mtext-entity.cjs.map +7 -0
  260. package/lib/types/mtext-entity.js +1 -0
  261. package/lib/types/mtext-entity.js.map +7 -0
  262. package/lib/types/ole2frame-entity.cjs +17 -0
  263. package/lib/types/ole2frame-entity.cjs.map +7 -0
  264. package/lib/types/ole2frame-entity.js +1 -0
  265. package/lib/types/ole2frame-entity.js.map +7 -0
  266. package/lib/types/options.cjs +17 -0
  267. package/lib/types/options.cjs.map +7 -0
  268. package/lib/types/options.js +1 -0
  269. package/lib/types/options.js.map +7 -0
  270. package/lib/types/point-entity.cjs +17 -0
  271. package/lib/types/point-entity.cjs.map +7 -0
  272. package/lib/types/point-entity.js +1 -0
  273. package/lib/types/point-entity.js.map +7 -0
  274. package/lib/types/polyline-entity.cjs +17 -0
  275. package/lib/types/polyline-entity.cjs.map +7 -0
  276. package/lib/types/polyline-entity.js +1 -0
  277. package/lib/types/polyline-entity.js.map +7 -0
  278. package/lib/types/polylines.cjs +17 -0
  279. package/lib/types/polylines.cjs.map +7 -0
  280. package/lib/types/polylines.js +1 -0
  281. package/lib/types/polylines.js.map +7 -0
  282. package/lib/types/solid-entity.cjs +17 -0
  283. package/lib/types/solid-entity.cjs.map +7 -0
  284. package/lib/types/solid-entity.js +1 -0
  285. package/lib/types/solid-entity.js.map +7 -0
  286. package/lib/types/spline-entity.cjs +17 -0
  287. package/lib/types/spline-entity.cjs.map +7 -0
  288. package/lib/types/spline-entity.js +1 -0
  289. package/lib/types/spline-entity.js.map +7 -0
  290. package/lib/types/svg.cjs +17 -0
  291. package/lib/types/svg.cjs.map +7 -0
  292. package/lib/types/svg.js +1 -0
  293. package/lib/types/svg.js.map +7 -0
  294. package/lib/types/tables.cjs +17 -0
  295. package/lib/types/tables.cjs.map +7 -0
  296. package/lib/types/tables.js +1 -0
  297. package/lib/types/tables.js.map +7 -0
  298. package/lib/types/text-entity.cjs +17 -0
  299. package/lib/types/text-entity.cjs.map +7 -0
  300. package/lib/types/text-entity.js +1 -0
  301. package/lib/types/text-entity.js.map +7 -0
  302. package/lib/types/util-types.cjs +17 -0
  303. package/lib/types/util-types.cjs.map +7 -0
  304. package/lib/types/util-types.js +1 -0
  305. package/lib/types/util-types.js.map +7 -0
  306. package/lib/types/vecks.d.cjs +2 -0
  307. package/lib/types/vecks.d.cjs.map +7 -0
  308. package/lib/types/vecks.d.js +1 -0
  309. package/lib/types/vecks.d.js.map +7 -0
  310. package/lib/types/viewport-entity.cjs +17 -0
  311. package/lib/types/viewport-entity.cjs.map +7 -0
  312. package/lib/types/viewport-entity.js +1 -0
  313. package/lib/types/viewport-entity.js.map +7 -0
  314. package/lib/types.cjs +23 -0
  315. package/lib/types.cjs.map +7 -0
  316. package/lib/types.js +2 -0
  317. package/lib/types.js.map +7 -0
  318. package/lib/util/bSpline.cjs +95 -0
  319. package/lib/util/bSpline.cjs.map +7 -0
  320. package/lib/util/bSpline.js +65 -0
  321. package/lib/util/bSpline.js.map +7 -0
  322. package/lib/util/colors.cjs +283 -0
  323. package/lib/util/colors.cjs.map +7 -0
  324. package/lib/util/colors.js +263 -0
  325. package/lib/util/colors.js.map +7 -0
  326. package/lib/util/createArcForLWPolyline.cjs +84 -0
  327. package/lib/util/createArcForLWPolyline.cjs.map +7 -0
  328. package/lib/util/createArcForLWPolyline.js +64 -0
  329. package/lib/util/createArcForLWPolyline.js.map +7 -0
  330. package/lib/util/dxfColorToRGB.cjs +115 -0
  331. package/lib/util/dxfColorToRGB.cjs.map +7 -0
  332. package/lib/util/dxfColorToRGB.js +90 -0
  333. package/lib/util/dxfColorToRGB.js.map +7 -0
  334. package/lib/util/insertKnot.cjs +77 -0
  335. package/lib/util/insertKnot.cjs.map +7 -0
  336. package/lib/util/insertKnot.js +57 -0
  337. package/lib/util/insertKnot.js.map +7 -0
  338. package/lib/util/logger.cjs +53 -0
  339. package/lib/util/logger.cjs.map +7 -0
  340. package/lib/util/logger.js +23 -0
  341. package/lib/util/logger.js.map +7 -0
  342. package/lib/util/rgbToColorAttribute.cjs +32 -0
  343. package/lib/util/rgbToColorAttribute.cjs.map +7 -0
  344. package/lib/util/rgbToColorAttribute.js +12 -0
  345. package/lib/util/rgbToColorAttribute.js.map +7 -0
  346. package/lib/util/rotate.cjs +30 -0
  347. package/lib/util/rotate.cjs.map +7 -0
  348. package/lib/util/rotate.js +10 -0
  349. package/lib/util/rotate.js.map +7 -0
  350. package/lib/util/round10.cjs +38 -0
  351. package/lib/util/round10.cjs.map +7 -0
  352. package/lib/util/round10.js +18 -0
  353. package/lib/util/round10.js.map +7 -0
  354. package/lib/util/toPiecewiseBezier.cjs +90 -0
  355. package/lib/util/toPiecewiseBezier.cjs.map +7 -0
  356. package/lib/util/toPiecewiseBezier.js +54 -0
  357. package/lib/util/toPiecewiseBezier.js.map +7 -0
  358. package/lib/util/transformBoundingBoxAndElement.cjs +80 -0
  359. package/lib/util/transformBoundingBoxAndElement.cjs.map +7 -0
  360. package/lib/util/transformBoundingBoxAndElement.js +60 -0
  361. package/lib/util/transformBoundingBoxAndElement.js.map +7 -0
  362. package/package.json +127 -0
  363. package/src/Helper.ts +71 -0
  364. package/src/applyTransforms.ts +54 -0
  365. package/src/cli.ts +41 -0
  366. package/src/config.ts +10 -0
  367. package/src/constants.ts +14 -0
  368. package/src/denormalise.ts +153 -0
  369. package/src/dimensionToSVG.ts +427 -0
  370. package/src/entityToPolyline.ts +338 -0
  371. package/src/getRGBForEntity.ts +28 -0
  372. package/src/groupEntitiesByLayer.ts +14 -0
  373. package/src/handlers/blocks.ts +65 -0
  374. package/src/handlers/entities.ts +111 -0
  375. package/src/handlers/entity/arc.ts +61 -0
  376. package/src/handlers/entity/attdef.ts +284 -0
  377. package/src/handlers/entity/attrib.ts +29 -0
  378. package/src/handlers/entity/circle.ts +47 -0
  379. package/src/handlers/entity/common.ts +79 -0
  380. package/src/handlers/entity/dimension.ts +217 -0
  381. package/src/handlers/entity/ellipse.ts +55 -0
  382. package/src/handlers/entity/hatch.ts +471 -0
  383. package/src/handlers/entity/insert.ts +73 -0
  384. package/src/handlers/entity/line.ts +56 -0
  385. package/src/handlers/entity/lwpolyline.ts +54 -0
  386. package/src/handlers/entity/mtext.ts +150 -0
  387. package/src/handlers/entity/ole2Frame.ts +64 -0
  388. package/src/handlers/entity/point.ts +47 -0
  389. package/src/handlers/entity/polyline.ts +49 -0
  390. package/src/handlers/entity/solid.ts +73 -0
  391. package/src/handlers/entity/spline.ts +103 -0
  392. package/src/handlers/entity/text.ts +83 -0
  393. package/src/handlers/entity/threeDFace.ts +69 -0
  394. package/src/handlers/entity/vertex.ts +55 -0
  395. package/src/handlers/entity/viewport.ts +119 -0
  396. package/src/handlers/header.ts +73 -0
  397. package/src/handlers/objects.ts +152 -0
  398. package/src/handlers/tables.ts +581 -0
  399. package/src/index.ts +19 -0
  400. package/src/parseString.ts +97 -0
  401. package/src/toPolylines.ts +47 -0
  402. package/src/toSVG.ts +518 -0
  403. package/src/types/README.md +91 -0
  404. package/src/types/arc-entity.ts +10 -0
  405. package/src/types/base-entity.ts +25 -0
  406. package/src/types/circle-entity.ts +8 -0
  407. package/src/types/common.ts +37 -0
  408. package/src/types/dimension-entity.ts +23 -0
  409. package/src/types/dxf.ts +64 -0
  410. package/src/types/ellipse-entity.ts +13 -0
  411. package/src/types/entity.ts +32 -0
  412. package/src/types/handler-internal.ts +51 -0
  413. package/src/types/handler.ts +10 -0
  414. package/src/types/hatch-entity.ts +127 -0
  415. package/src/types/helper.ts +12 -0
  416. package/src/types/index.ts +53 -0
  417. package/src/types/insert-entity.ts +19 -0
  418. package/src/types/layer-groups.ts +8 -0
  419. package/src/types/line-entity.ts +10 -0
  420. package/src/types/mtext-entity.ts +35 -0
  421. package/src/types/ole2frame-entity.ts +35 -0
  422. package/src/types/options.ts +17 -0
  423. package/src/types/point-entity.ts +7 -0
  424. package/src/types/polyline-entity.ts +20 -0
  425. package/src/types/polylines.ts +22 -0
  426. package/src/types/solid-entity.ts +9 -0
  427. package/src/types/spline-entity.ts +12 -0
  428. package/src/types/svg.ts +31 -0
  429. package/src/types/tables.ts +414 -0
  430. package/src/types/text-entity.ts +23 -0
  431. package/src/types/util-types.ts +27 -0
  432. package/src/types/vecks.d.ts +29 -0
  433. package/src/types/viewport-entity.ts +81 -0
  434. package/src/types.ts +5 -0
  435. package/src/util/bSpline.ts +97 -0
  436. package/src/util/colors.ts +266 -0
  437. package/src/util/createArcForLWPolyline.ts +93 -0
  438. package/src/util/diagram.png +0 -0
  439. package/src/util/dxfColorToRGB.ts +106 -0
  440. package/src/util/insertKnot.ts +69 -0
  441. package/src/util/logger.ts +23 -0
  442. package/src/util/rgbToColorAttribute.ts +14 -0
  443. package/src/util/rotate.ts +14 -0
  444. package/src/util/round10.ts +24 -0
  445. package/src/util/toPiecewiseBezier.ts +70 -0
  446. package/src/util/transformBoundingBoxAndElement.ts +74 -0
  447. package/tsconfig.json +34 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,134 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
+
5
+ ### [5.3.1](https://github.com/skymakerolof/dxf/compare/v5.3.0...v5.3.1) (2025-09-01)
6
+
7
+ ### Bug Fixes
8
+
9
+ * properly flip LWPolyline when extrusionZ < 0 in toSVG ([#148](https://github.com/skymakerolof/dxf/issues/148)) ([5be9279](https://github.com/skymakerolof/dxf/commit/5be927947d1bdce828e31b75c45835fb94180903))
10
+
11
+ ## [5.3.0](https://github.com/skymakerolof/dxf/compare/v5.2.0...v5.3.0) (2025-09-01)
12
+
13
+ ### Features
14
+
15
+ * ole2frame entity ([#150](https://github.com/skymakerolof/dxf/issues/150)) ([4a00841](https://github.com/skymakerolof/dxf/commit/4a008417b5bc49a39c841f5845db4c80a980cc1d))
16
+
17
+ ## [5.2.0](https://github.com/skymakerolof/dxf/compare/v5.1.1...v5.2.0) (2024-11-04)
18
+
19
+ ### [5.1.1](https://github.com/skymakerolof/dxf/compare/v5.1.0...v5.1.1) (2024-08-30)
20
+
21
+ ### Bug Fixes
22
+
23
+ * ignoring colorNumber when layer is not found ([#140](https://github.com/skymakerolof/dxf/issues/140)) ([a930aa1](https://github.com/skymakerolof/dxf/commit/a930aa1fed526e2557f343775fefaecff5c1f782)), closes [#139](https://github.com/skymakerolof/dxf/issues/139)
24
+
25
+ ## [5.1.0](https://github.com/skymakerolof/dxf/compare/v5.0.1...v5.1.0) (2023-08-08)
26
+
27
+ ### Features
28
+
29
+ * add support for polyfaceMesh outline rendering ([#138](https://github.com/skymakerolof/dxf/issues/138)) ([38fd3a6](https://github.com/skymakerolof/dxf/commit/38fd3a695644f1b142789d1d3e3828ee8a458d1f))
30
+
31
+ ### Bug Fixes
32
+
33
+ * spline boundary path data ([#134](https://github.com/skymakerolof/dxf/issues/134)) ([4ea2312](https://github.com/skymakerolof/dxf/commit/4ea2312892ef73eed3690fc772ec0f2f8619beef))
34
+
35
+ ### [5.0.1](https://github.com/skymakerolof/dxf/compare/v5.0.0...v5.0.1) (2023-06-08)
36
+
37
+ ### Bug Fixes
38
+
39
+ * hatch with polyline points only returning y coordinate ([#132](https://github.com/skymakerolof/dxf/issues/132)) ([948dbbc](https://github.com/skymakerolof/dxf/commit/948dbbcd5e03ac064020b9c1d0b231dced895e7a)), closes [#130](https://github.com/skymakerolof/dxf/issues/130)
40
+
41
+ ## [5.0.0](https://github.com/skymakerolof/dxf/compare/v4.7.0...v5.0.0) (2022-12-05)
42
+
43
+ ### ⚠ BREAKING CHANGES
44
+
45
+ * **Hatch:** Renamed hatch split property points to controlPoints
46
+ * **Hatch:** Renamed polyline "has bulge flag" from bulge to hasBulge
47
+
48
+ ### Features
49
+
50
+ * **Hatch:** rename hatch->spline points to controlPoints ([#117](https://github.com/skymakerolof/dxf/issues/117)) ([70e9a5d](https://github.com/skymakerolof/dxf/commit/70e9a5d46906f2f1984366df24adf80fd97c454b))
51
+ * LTYPE table parsing ([#121](https://github.com/skymakerolof/dxf/issues/121)) ([6178746](https://github.com/skymakerolof/dxf/commit/6178746ee887eb1fbacb060cfc952d07d5264173))
52
+
53
+ ### Bug Fixes
54
+
55
+ * **Hatch:** bulge value for each point instead of only writing it in the loop level ([#122](https://github.com/skymakerolof/dxf/issues/122)) ([879808c](https://github.com/skymakerolof/dxf/commit/879808cde1d369b36c731b85ac4596f7ed032efe))
56
+ * **Hatch:** rename bulge to hasBulge ([#118](https://github.com/skymakerolof/dxf/issues/118)) ([3cf60c6](https://github.com/skymakerolof/dxf/commit/3cf60c6a1f5cc1711a315222a87a75fc5677041a))
57
+
58
+ ## [4.7.0](https://github.com/skymakerolof/dxf/compare/v4.6.3...v4.7.0) (2022-09-22)
59
+
60
+ ### Features
61
+
62
+ * add hatch entity to parser ([#107](https://github.com/skymakerolof/dxf/issues/107)) ([362e23a](https://github.com/skymakerolof/dxf/commit/362e23a2cc9e34ecfd1345d576a2138c375fcecb))
63
+ * add layout & paper space to parser ([#106](https://github.com/skymakerolof/dxf/issues/106)) ([d0a6d19](https://github.com/skymakerolof/dxf/commit/d0a6d19e34645aad208642105d381a76f97c5902))
64
+ * attrib & attdef parsing ([#109](https://github.com/skymakerolof/dxf/issues/109)) ([7a10e4b](https://github.com/skymakerolof/dxf/commit/7a10e4bd7a752a6adbd72f3a0b0e5e5ec7110f3d))
65
+ * viewport & vport parsing ([#108](https://github.com/skymakerolof/dxf/issues/108)) ([f26642e](https://github.com/skymakerolof/dxf/commit/f26642e8e338c4e85cbc1ab135e0c7f0f68029f6))
66
+
67
+ ### Bug Fixes
68
+
69
+ * handle color value 256 ([#104](https://github.com/skymakerolof/dxf/issues/104)) ([80e9fa1](https://github.com/skymakerolof/dxf/commit/80e9fa119afaf5b3e5f4dcd73583c4a63b0876a8))
70
+
71
+ ## 4.6.3
72
+
73
+ * Remove dependency on pretty-data (#85)
74
+
75
+ ## 4.6.2
76
+
77
+ * Remove import of unused parts of lodash
78
+
79
+ ## 4.4.4
80
+
81
+ * Fix typo in README
82
+
83
+ ## 4.3.0
84
+
85
+ * #51 Fix bug when transforming empty bounding box
86
+
87
+ ## 4.2.4
88
+
89
+ * #50 Fix knot piecewise beziers
90
+
91
+ ## 4.2.3
92
+
93
+ * More accurate bounding boxes for arcs and ellipses (#48)
94
+
95
+ ## 4.2.2
96
+
97
+ * Bump eslint-utils from 1.3.1 to 1.4.2
98
+ * Add HATCH to unsupported SVG entities in README
99
+
100
+ ## 4.2.1
101
+
102
+ * Use main lodash package due to security issue(s)
103
+
104
+ ## 4.2.0
105
+
106
+ * README updates
107
+
108
+ ## 4.1.1
109
+
110
+ * #issue42 support entities that have extrusionZ === -1 defined on the entity itself (as opposed to the transform).
111
+
112
+ ## 4.1.0
113
+
114
+ * CIRCLE DXF entities now produce native <circle /> SVG elements.
115
+ * ELLIPSE DXF entities now produce native <path d="A..."/> or <ellipse /> SVG elements.
116
+ * ARC DXF entities now produce native <path d="A..."/> or <ellipse /> SVG elements.
117
+
118
+ ## 4.0.1
119
+
120
+ * Browser example uses Helper
121
+
122
+ ## 4.0.0
123
+
124
+ * Use ES6 string interpolation in SVG generation.
125
+ * Use native SVG <circle /> elements for CIRCLE entities.
126
+ * Use SVG <g/> elements with a transform attribute for native and interpolated entities.
127
+ * Add a Helper object to simplify the workflow.
128
+ * The SVG output uses a root transform to flip the Y coordinates.
129
+
130
+ ## 3.6.0
131
+
132
+ * NPM audit fixes.
133
+ * Remove support for Node v6 in Travis.
134
+ * Node engine is now >= 8.9.0.
@@ -0,0 +1,271 @@
1
+ # Guia de Contribuição
2
+
3
+ Obrigado por considerar contribuir para este projeto! Este documento fornece diretrizes para facilitar o processo de contribuição.
4
+
5
+ ## 📋 Índice
6
+
7
+ * [Código de Conduta](#código-de-conduta)
8
+ * [Como Contribuir](#como-contribuir)
9
+ * [Padrão de Commits](#padrão-de-commits)
10
+ * [Processo de Release](#processo-de-release)
11
+ * [Desenvolvimento](#desenvolvimento)
12
+
13
+ ## Código de Conduta
14
+
15
+ Este projeto segue um código de conduta. Ao participar, você concorda em manter um ambiente respeitoso e acolhedor para todos.
16
+
17
+ ## Como Contribuir
18
+
19
+ ### Reportar Bugs
20
+
21
+ Antes de reportar um bug, verifique se já existe uma issue aberta sobre o problema. Se não existir:
22
+
23
+ 1. Crie uma nova issue
24
+ 2. Use um título claro e descritivo
25
+ 3. Descreva os passos para reproduzir o problema
26
+ 4. Inclua exemplos de código quando possível
27
+ 5. Descreva o comportamento esperado e o comportamento atual
28
+
29
+ ### Sugerir Melhorias
30
+
31
+ 1. Verifique se já existe uma issue sobre a melhoria
32
+ 2. Crie uma nova issue com o prefixo `[Feature]`
33
+ 3. Descreva a melhoria em detalhes
34
+ 4. Explique por que essa melhoria seria útil
35
+
36
+ ### Pull Requests
37
+
38
+ 1. Fork o repositório
39
+ 2. Crie uma branch a partir de `develop`:
40
+ ```bash
41
+ git checkout develop
42
+ git checkout -b feature/sua-feature
43
+ ```
44
+ 3. Faça suas mudanças seguindo o [Padrão de Commits](#padrão-de-commits)
45
+ 4. Execute os testes: `yarn test`
46
+ 5. Execute o linter: `yarn lint`
47
+ 6. Execute a build: `yarn build`
48
+ 7. Commit suas mudanças (o commitlint validará automaticamente)
49
+ 8. Push para sua branch
50
+ 9. Abra um Pull Request para `develop`
51
+
52
+ ## Padrão de Commits
53
+
54
+ Este projeto utiliza [Conventional Commits](https://www.conventionalcommits.org/pt-br/) para automatizar o versionamento e geração de changelogs.
55
+
56
+ ### Formato
57
+
58
+ ```
59
+ <type>(<scope>): <subject>
60
+
61
+ [optional body]
62
+
63
+ [optional footer(s)]
64
+ ```
65
+
66
+ ### Types
67
+
68
+ * **feat**: Nova funcionalidade (gera MINOR release)
69
+ * **fix**: Correção de bug (gera PATCH release)
70
+ * **docs**: Documentation only
71
+ * **style**: Formatting changes (spaces, semicolons, etc)
72
+ * **refactor**: Code refactoring (without adding features or fixing bugs)
73
+ * **perf**: Performance improvement (generates PATCH release)
74
+ * **test**: Adding or correcting tests
75
+ * **build**: Changes to build system or dependencies
76
+ * **ci**: Changes to CI/CD files
77
+ * **chore**: Other changes that don't modify src or test
78
+ * **revert**: Reverts a previous commit
79
+
80
+ ### Breaking Changes
81
+
82
+ To indicate a breaking change (generates MAJOR release):
83
+
84
+ ```
85
+ feat: allow provided config object to extend other configs
86
+
87
+ BREAKING CHANGE: `extends` key in config file is now used
88
+ to extend other config files
89
+ ```
90
+
91
+ Or use `!` after the type:
92
+
93
+ ```
94
+ feat!: remove support for Node 6
95
+ ```
96
+
97
+ ### Examples
98
+
99
+ ```bash
100
+ # New feature
101
+ feat(dimension): add DIMSTYLE color support
102
+
103
+ # Bug fix
104
+ fix(parser): correct POLYLINE bulge parsing
105
+
106
+ # Documentation
107
+ docs: update README with usage examples
108
+
109
+ # Performance
110
+ perf(svg): optimize spline rendering
111
+
112
+ # Breaking change
113
+ feat!: migrate to pure ESM
114
+
115
+ BREAKING CHANGE: CommonJS is no longer supported. Use import/export.
116
+ ```
117
+
118
+ ### Using Commitizen
119
+
120
+ To make it easier, use Commitizen:
121
+
122
+ ```bash
123
+ yarn commit
124
+ ```
125
+
126
+ Or with git-cz:
127
+
128
+ ```bash
129
+ git add .
130
+ yarn commit
131
+ ```
132
+
133
+ This will open an interactive prompt to create the commit in the correct format.
134
+
135
+ ## Processo de Release
136
+
137
+ ### Automático (Recomendado)
138
+
139
+ O projeto usa [semantic-release](https://semantic-release.gitbook.io/) para releases automáticos:
140
+
141
+ 1. Faça commits seguindo o padrão Conventional Commits
142
+ 2. Faça merge do PR para `main`, `develop` ou `beta`
143
+ 3. O GitHub Actions automaticamente:
144
+ * Analisa os commits desde o último release
145
+ * Determina o novo número de versão (MAJOR.MINOR.PATCH)
146
+ * Gera o CHANGELOG.md
147
+ * Cria uma tag Git
148
+ * Cria um GitHub Release
149
+ * Atualiza package.json
150
+
151
+ ### Branches
152
+
153
+ * **main**: Releases estáveis de produção
154
+ * **develop**: Pre-releases (versões beta)
155
+ * **beta**: Pre-releases específicas para testes
156
+
157
+ ### Versionamento
158
+
159
+ Seguimos [Semantic Versioning](https://semver.org/lang/pt-BR/):
160
+
161
+ * **MAJOR** (1.0.0 → 2.0.0): Breaking changes
162
+ * **MINOR** (1.0.0 → 1.1.0): Novas features compatíveis
163
+ * **PATCH** (1.0.0 → 1.0.1): Bug fixes compatíveis
164
+
165
+ ## Desenvolvimento
166
+
167
+ ### Requisitos
168
+
169
+ * Node.js >= 18.x
170
+ * Yarn >= 4.x
171
+
172
+ ### Setup
173
+
174
+ ```bash
175
+ # Clone o repositório
176
+ git clone https://github.com/seu-usuario/dxf.git
177
+ cd dxf
178
+
179
+ # Instale as dependências
180
+ yarn install
181
+
182
+ # Execute os testes
183
+ yarn test
184
+
185
+ # Execute o linter
186
+ yarn lint
187
+
188
+ # Build do projeto
189
+ yarn build
190
+ ```
191
+
192
+ ### Scripts Disponíveis
193
+
194
+ ```bash
195
+ # Desenvolvimento
196
+ yarn watch # Watch mode para TypeScript
197
+ yarn test:unit:watch # Watch mode para testes
198
+
199
+ # Build
200
+ yarn build # Build completo (TypeScript → ESM + CJS)
201
+ yarn compile # Apenas compilação TypeScript
202
+ yarn dist # Build do bundle para browser
203
+
204
+ # Testes
205
+ yarn test # Executar todos os testes
206
+ yarn test:unit # Executar apenas testes unitários
207
+ yarn test:functional # Executar testes funcionais
208
+
209
+ # Qualidade
210
+ yarn lint # Executar linter
211
+ yarn prettier # Formatar código
212
+ yarn type-check # Verificar tipos TypeScript
213
+
214
+ # Commits
215
+ yarn commit # Commit interativo com Commitizen
216
+
217
+ # Release (não use manualmente, é automático via CI)
218
+ yarn semantic-release # Executar semantic-release
219
+ ```
220
+
221
+ ### Estrutura do Projeto
222
+
223
+ ```
224
+ dxf/
225
+ ├── src/ # Código-fonte TypeScript
226
+ │ ├── handlers/ # Parsers de entidades e tabelas
227
+ │ ├── types/ # Definições de tipos TypeScript
228
+ │ └── util/ # Utilitários
229
+ ├── lib/ # Código compilado (ESM + CJS)
230
+ ├── test/ # Testes
231
+ │ ├── unit/ # Testes unitários
232
+ │ └── functional/ # Testes funcionais
233
+ ├── docs/ # Documentação
234
+ └── .github/
235
+ └── workflows/ # GitHub Actions
236
+ ```
237
+
238
+ ### Workflow de Desenvolvimento
239
+
240
+ 1. **Crie uma issue** descrevendo o que você vai fazer
241
+ 2. **Crie uma branch** a partir de `develop`:
242
+ ```bash
243
+ git checkout develop
244
+ git pull origin develop
245
+ git checkout -b feat/minha-feature
246
+ ```
247
+ 3. **Faça suas mudanças** com commits seguindo o padrão
248
+ 4. **Execute os testes** localmente
249
+ 5. **Push e crie um PR** para `develop`
250
+ 6. **Aguarde a revisão** e responda aos comentários
251
+ 7. **Após merge**, o release será feito automaticamente
252
+
253
+ ### Dicas
254
+
255
+ * Execute `yarn test` antes de fazer push
256
+ * Use `yarn commit` para garantir commits no formato correto
257
+ * Mantenha PRs focados em uma única feature/fix
258
+ * Adicione testes para novas features
259
+ * Atualize a documentação quando necessário
260
+ * Use TypeScript strict mode
261
+ * Siga os padrões de código existentes
262
+
263
+ ## Precisa de Ajuda?
264
+
265
+ * Abra uma issue com a tag `question`
266
+ * Consulte a [documentação](./docs/)
267
+ * Veja issues existentes com a tag `good first issue`
268
+
269
+ ## Licença
270
+
271
+ Ao contribuir, você concorda que suas contribuições serão licenciadas sob a mesma licença MIT do projeto.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2014-2018 Ben Nortier
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.