@faicad/faijs 0.19.0 → 0.29.3

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 (510) hide show
  1. package/LICENSE +202 -28
  2. package/dist/api/api-namespace.d.ts +5 -5
  3. package/dist/api/api-namespace.d.ts.map +1 -1
  4. package/dist/api/api-namespace.js +4 -4
  5. package/dist/api/api-namespace.js.map +1 -1
  6. package/dist/api/assert.d.ts +2 -2
  7. package/dist/api/assert.js +8 -8
  8. package/dist/api/assert.js.map +1 -1
  9. package/dist/api/asset.d.ts +1 -1
  10. package/dist/api/asset.js +2 -2
  11. package/dist/api/asset.js.map +1 -1
  12. package/dist/api/boolean.d.ts +1 -1
  13. package/dist/api/boolean.d.ts.map +1 -1
  14. package/dist/api/boolean.js +128 -16
  15. package/dist/api/boolean.js.map +1 -1
  16. package/dist/api/brep-mirror/joinery-brep.d.ts.map +1 -1
  17. package/dist/api/brep-mirror/joinery-brep.js +3 -1
  18. package/dist/api/brep-mirror/joinery-brep.js.map +1 -1
  19. package/dist/api/cadquery-selectors/borrow-bridge.d.ts +14 -0
  20. package/dist/api/cadquery-selectors/borrow-bridge.d.ts.map +1 -0
  21. package/dist/api/cadquery-selectors/borrow-bridge.js +52 -0
  22. package/dist/api/cadquery-selectors/borrow-bridge.js.map +1 -0
  23. package/dist/api/cadquery-selectors/edge.d.ts +40 -0
  24. package/dist/api/cadquery-selectors/edge.d.ts.map +1 -0
  25. package/dist/api/cadquery-selectors/edge.js +70 -0
  26. package/dist/api/cadquery-selectors/edge.js.map +1 -0
  27. package/dist/api/cadquery-selectors/entity.d.ts +121 -0
  28. package/dist/api/cadquery-selectors/entity.d.ts.map +1 -0
  29. package/dist/api/cadquery-selectors/entity.js +167 -0
  30. package/dist/api/cadquery-selectors/entity.js.map +1 -0
  31. package/dist/api/cadquery-selectors/face.d.ts +33 -0
  32. package/dist/api/cadquery-selectors/face.d.ts.map +1 -0
  33. package/dist/api/cadquery-selectors/face.js +353 -0
  34. package/dist/api/cadquery-selectors/face.js.map +1 -0
  35. package/dist/api/cadquery-selectors/grammar.d.ts +50 -0
  36. package/dist/api/cadquery-selectors/grammar.d.ts.map +1 -0
  37. package/dist/api/cadquery-selectors/grammar.js +345 -0
  38. package/dist/api/cadquery-selectors/grammar.js.map +1 -0
  39. package/dist/api/cadquery-selectors/index.d.ts +18 -0
  40. package/dist/api/cadquery-selectors/index.d.ts.map +1 -0
  41. package/dist/api/cadquery-selectors/index.js +17 -0
  42. package/dist/api/cadquery-selectors/index.js.map +1 -0
  43. package/dist/api/cadquery-selectors/predicates.d.ts +76 -0
  44. package/dist/api/cadquery-selectors/predicates.d.ts.map +1 -0
  45. package/dist/api/cadquery-selectors/predicates.js +85 -0
  46. package/dist/api/cadquery-selectors/predicates.js.map +1 -0
  47. package/dist/api/cadquery-selectors/resolve.d.ts +41 -0
  48. package/dist/api/cadquery-selectors/resolve.d.ts.map +1 -0
  49. package/dist/api/cadquery-selectors/resolve.js +243 -0
  50. package/dist/api/cadquery-selectors/resolve.js.map +1 -0
  51. package/dist/api/cadquery-selectors/types.d.ts +96 -0
  52. package/dist/api/cadquery-selectors/types.d.ts.map +1 -0
  53. package/dist/api/cadquery-selectors/types.js +11 -0
  54. package/dist/api/cadquery-selectors/types.js.map +1 -0
  55. package/dist/api/chamfer.d.ts +13 -5
  56. package/dist/api/chamfer.d.ts.map +1 -1
  57. package/dist/api/chamfer.js +63 -7
  58. package/dist/api/chamfer.js.map +1 -1
  59. package/dist/api/compound-geom.d.ts +1 -1
  60. package/dist/api/compound-geom.js +1 -1
  61. package/dist/api/compound-geom.js.map +1 -1
  62. package/dist/api/draft.d.ts +1 -1
  63. package/dist/api/draft.js +1 -1
  64. package/dist/api/draft.js.map +1 -1
  65. package/dist/api/edge-ref.d.ts +1 -1
  66. package/dist/api/edge-ref.d.ts.map +1 -1
  67. package/dist/api/edge-ref.js +11 -3
  68. package/dist/api/edge-ref.js.map +1 -1
  69. package/dist/api/engrave.d.ts +1 -1
  70. package/dist/api/engrave.js +7 -7
  71. package/dist/api/engrave.js.map +1 -1
  72. package/dist/api/extrude.d.ts +6 -1
  73. package/dist/api/extrude.d.ts.map +1 -1
  74. package/dist/api/extrude.js +59 -5
  75. package/dist/api/extrude.js.map +1 -1
  76. package/dist/api/face-ref.d.ts +1 -1
  77. package/dist/api/face-ref.js +1 -1
  78. package/dist/api/face-ref.js.map +1 -1
  79. package/dist/api/feature-repair.d.ts +1 -1
  80. package/dist/api/feature-repair.js +1 -1
  81. package/dist/api/feature-repair.js.map +1 -1
  82. package/dist/api/fillet-variable.d.ts +1 -1
  83. package/dist/api/fillet-variable.js +1 -1
  84. package/dist/api/fillet-variable.js.map +1 -1
  85. package/dist/api/fillet.d.ts +28 -8
  86. package/dist/api/fillet.d.ts.map +1 -1
  87. package/dist/api/fillet.js +64 -9
  88. package/dist/api/fillet.js.map +1 -1
  89. package/dist/api/generated/script-face-manifest.d.ts +4 -0
  90. package/dist/api/generated/script-face-manifest.d.ts.map +1 -1
  91. package/dist/api/generated/script-face-manifest.js.map +1 -1
  92. package/dist/api/geom.d.ts +1 -1
  93. package/dist/api/geom.js +1 -1
  94. package/dist/api/geom.js.map +1 -1
  95. package/dist/api/helix.d.ts +1 -1
  96. package/dist/api/helix.js +1 -1
  97. package/dist/api/helix.js.map +1 -1
  98. package/dist/api/import-brep.d.ts +20 -2
  99. package/dist/api/import-brep.d.ts.map +1 -1
  100. package/dist/api/import-brep.js +28 -3
  101. package/dist/api/import-brep.js.map +1 -1
  102. package/dist/api/import-step.d.ts +17 -2
  103. package/dist/api/import-step.d.ts.map +1 -1
  104. package/dist/api/import-step.js +23 -3
  105. package/dist/api/import-step.js.map +1 -1
  106. package/dist/api/index.d.ts +2 -1
  107. package/dist/api/index.d.ts.map +1 -1
  108. package/dist/api/index.js +5 -2
  109. package/dist/api/index.js.map +1 -1
  110. package/dist/api/internal/compat-op.js +1 -1
  111. package/dist/api/internal/compat-op.js.map +1 -1
  112. package/dist/api/internal/mesh-solid-op.d.ts +236 -0
  113. package/dist/api/internal/mesh-solid-op.d.ts.map +1 -0
  114. package/dist/api/internal/mesh-solid-op.js +352 -0
  115. package/dist/api/internal/mesh-solid-op.js.map +1 -0
  116. package/dist/api/internal/svg-asset-resolver.d.ts +1 -1
  117. package/dist/api/internal/svg-asset-resolver.js +1 -1
  118. package/dist/api/internal/svg-asset-resolver.js.map +1 -1
  119. package/dist/api/knurl.d.ts +1 -1
  120. package/dist/api/knurl.d.ts.map +1 -1
  121. package/dist/api/knurl.js +3 -2
  122. package/dist/api/knurl.js.map +1 -1
  123. package/dist/api/loft.d.ts +1 -1
  124. package/dist/api/loft.js +1 -1
  125. package/dist/api/loft.js.map +1 -1
  126. package/dist/api/measurement/index.d.ts +9 -5
  127. package/dist/api/measurement/index.d.ts.map +1 -1
  128. package/dist/api/measurement/index.js +47 -20
  129. package/dist/api/measurement/index.js.map +1 -1
  130. package/dist/api/pattern.d.ts +5 -3
  131. package/dist/api/pattern.d.ts.map +1 -1
  132. package/dist/api/pattern.js +32 -4
  133. package/dist/api/pattern.js.map +1 -1
  134. package/dist/api/place.d.ts +1 -1
  135. package/dist/api/place.js +1 -1
  136. package/dist/api/place.js.map +1 -1
  137. package/dist/api/primitives.d.ts +5 -4
  138. package/dist/api/primitives.d.ts.map +1 -1
  139. package/dist/api/primitives.js +11 -5
  140. package/dist/api/primitives.js.map +1 -1
  141. package/dist/api/profile.d.ts +64 -8
  142. package/dist/api/profile.d.ts.map +1 -1
  143. package/dist/api/profile.js +61 -10
  144. package/dist/api/profile.js.map +1 -1
  145. package/dist/api/punch-hole.d.ts +3 -0
  146. package/dist/api/punch-hole.d.ts.map +1 -1
  147. package/dist/api/punch-hole.js.map +1 -1
  148. package/dist/api/reconcile.d.ts +1 -1
  149. package/dist/api/reconcile.js +1 -1
  150. package/dist/api/reconcile.js.map +1 -1
  151. package/dist/api/replicate.d.ts.map +1 -1
  152. package/dist/api/replicate.js +122 -1
  153. package/dist/api/replicate.js.map +1 -1
  154. package/dist/api/screw.d.ts +1 -1
  155. package/dist/api/screw.js +3 -3
  156. package/dist/api/screw.js.map +1 -1
  157. package/dist/api/sdf.d.ts +1 -1
  158. package/dist/api/sdf.js +2 -2
  159. package/dist/api/sdf.js.map +1 -1
  160. package/dist/api/section-by-plane.d.ts +1 -1
  161. package/dist/api/section-by-plane.d.ts.map +1 -1
  162. package/dist/api/section-by-plane.js +2 -1
  163. package/dist/api/section-by-plane.js.map +1 -1
  164. package/dist/api/shell.d.ts +11 -4
  165. package/dist/api/shell.d.ts.map +1 -1
  166. package/dist/api/shell.js +53 -7
  167. package/dist/api/shell.js.map +1 -1
  168. package/dist/api/sketch-on-face.d.ts +41 -0
  169. package/dist/api/sketch-on-face.d.ts.map +1 -1
  170. package/dist/api/sketch-on-face.js +100 -1
  171. package/dist/api/sketch-on-face.js.map +1 -1
  172. package/dist/api/sketch-on-plane.d.ts +17 -9
  173. package/dist/api/sketch-on-plane.d.ts.map +1 -1
  174. package/dist/api/sketch-on-plane.js +12 -10
  175. package/dist/api/sketch-on-plane.js.map +1 -1
  176. package/dist/api/split-by-plane.d.ts +1 -1
  177. package/dist/api/split-by-plane.d.ts.map +1 -1
  178. package/dist/api/split-by-plane.js +2 -1
  179. package/dist/api/split-by-plane.js.map +1 -1
  180. package/dist/api/split.d.ts +1 -1
  181. package/dist/api/split.js +2 -2
  182. package/dist/api/split.js.map +1 -1
  183. package/dist/api/surface/arg-spec.d.ts +8 -0
  184. package/dist/api/surface/arg-spec.d.ts.map +1 -1
  185. package/dist/api/surface/arg-spec.js.map +1 -1
  186. package/dist/api/sweep.d.ts +1 -1
  187. package/dist/api/sweep.js +1 -1
  188. package/dist/api/sweep.js.map +1 -1
  189. package/dist/api/thicken.d.ts +1 -1
  190. package/dist/api/thicken.js +1 -1
  191. package/dist/api/thicken.js.map +1 -1
  192. package/dist/api/topo-resolve.d.ts +74 -1
  193. package/dist/api/topo-resolve.d.ts.map +1 -1
  194. package/dist/api/topo-resolve.js +180 -2
  195. package/dist/api/topo-resolve.js.map +1 -1
  196. package/dist/api/transform.d.ts +10 -6
  197. package/dist/api/transform.d.ts.map +1 -1
  198. package/dist/api/transform.js +74 -21
  199. package/dist/api/transform.js.map +1 -1
  200. package/dist/api/wire.d.ts +1 -1
  201. package/dist/api/wire.js +1 -1
  202. package/dist/api/wire.js.map +1 -1
  203. package/dist/api/xml-dom.d.ts +27 -0
  204. package/dist/api/xml-dom.d.ts.map +1 -0
  205. package/dist/api/xml-dom.js +45 -0
  206. package/dist/api/xml-dom.js.map +1 -0
  207. package/dist/brep/brep-ops.d.ts +13 -11
  208. package/dist/brep/brep-ops.d.ts.map +1 -1
  209. package/dist/brep/brep-ops.js +31 -30
  210. package/dist/brep/brep-ops.js.map +1 -1
  211. package/dist/brep/brep-topology.d.ts +5 -4
  212. package/dist/brep/brep-topology.d.ts.map +1 -1
  213. package/dist/brep/brep-topology.js +9 -6
  214. package/dist/brep/brep-topology.js.map +1 -1
  215. package/dist/brep/effective-deflection.d.ts +35 -0
  216. package/dist/brep/effective-deflection.d.ts.map +1 -0
  217. package/dist/brep/effective-deflection.js +49 -0
  218. package/dist/brep/effective-deflection.js.map +1 -0
  219. package/dist/brep/engine/adapters/brep-mock.d.ts.map +1 -1
  220. package/dist/brep/engine/adapters/brep-mock.js +27 -0
  221. package/dist/brep/engine/adapters/brep-mock.js.map +1 -1
  222. package/dist/brep/engine/adapters/brepkit.d.ts +18 -0
  223. package/dist/brep/engine/adapters/brepkit.d.ts.map +1 -1
  224. package/dist/brep/engine/adapters/brepkit.js +46 -1
  225. package/dist/brep/engine/adapters/brepkit.js.map +1 -1
  226. package/dist/brep/engine/adapters/occt.d.ts +1 -1
  227. package/dist/brep/engine/adapters/occt.d.ts.map +1 -1
  228. package/dist/brep/engine/adapters/occt.js +3 -1
  229. package/dist/brep/engine/adapters/occt.js.map +1 -1
  230. package/dist/brep/engine/primitives.d.ts +29 -7
  231. package/dist/brep/engine/primitives.d.ts.map +1 -1
  232. package/dist/brep/engine/primitives.js.map +1 -1
  233. package/dist/brep/engine/registry.d.ts +24 -1
  234. package/dist/brep/engine/registry.d.ts.map +1 -1
  235. package/dist/brep/engine/registry.js +24 -0
  236. package/dist/brep/engine/registry.js.map +1 -1
  237. package/dist/brep/engine/types.d.ts +54 -3
  238. package/dist/brep/engine/types.d.ts.map +1 -1
  239. package/dist/brep/engine/types.js +10 -0
  240. package/dist/brep/engine/types.js.map +1 -1
  241. package/dist/brep/export/export-model.d.ts +79 -0
  242. package/dist/brep/export/export-model.d.ts.map +1 -0
  243. package/dist/brep/export/export-model.js +336 -0
  244. package/dist/brep/export/export-model.js.map +1 -0
  245. package/dist/brep/face-evolution.d.ts +1 -1
  246. package/dist/brep/face-evolution.d.ts.map +1 -1
  247. package/dist/brep/face-evolution.js +20 -1
  248. package/dist/brep/face-evolution.js.map +1 -1
  249. package/dist/brep/handle-bridge.d.ts +1 -1
  250. package/dist/brep/handle-bridge.js +1 -1
  251. package/dist/brep/handle-bridge.js.map +1 -1
  252. package/dist/brep/mesh-solid.d.ts +218 -0
  253. package/dist/brep/mesh-solid.d.ts.map +1 -0
  254. package/dist/brep/mesh-solid.js +229 -0
  255. package/dist/brep/mesh-solid.js.map +1 -0
  256. package/dist/brep/primitives-brep.d.ts.map +1 -1
  257. package/dist/brep/primitives-brep.js +3 -1
  258. package/dist/brep/primitives-brep.js.map +1 -1
  259. package/dist/brep/text/fontRegistry.d.ts +32 -1
  260. package/dist/brep/text/fontRegistry.d.ts.map +1 -1
  261. package/dist/brep/text/fontRegistry.js +51 -1
  262. package/dist/brep/text/fontRegistry.js.map +1 -1
  263. package/dist/brep/text/text-to-solid.d.ts.map +1 -1
  264. package/dist/brep/text/text-to-solid.js +8 -3
  265. package/dist/brep/text/text-to-solid.js.map +1 -1
  266. package/dist/brepkit-kernel/brepkitKernel.d.ts +18 -2
  267. package/dist/brepkit-kernel/brepkitKernel.d.ts.map +1 -1
  268. package/dist/brepkit-kernel/brepkitKernel.js +453 -125
  269. package/dist/brepkit-kernel/brepkitKernel.js.map +1 -1
  270. package/dist/brepkit-kernel/brepkitWasm.d.ts +8 -0
  271. package/dist/brepkit-kernel/brepkitWasm.d.ts.map +1 -1
  272. package/dist/brepkit-kernel/brepkitWasm.js +10 -0
  273. package/dist/brepkit-kernel/brepkitWasm.js.map +1 -1
  274. package/dist/browser-host/browser-font-provider.d.ts +12 -0
  275. package/dist/browser-host/browser-font-provider.d.ts.map +1 -1
  276. package/dist/browser-host/browser-font-provider.js +25 -0
  277. package/dist/browser-host/browser-font-provider.js.map +1 -1
  278. package/dist/browser.d.ts +6 -3
  279. package/dist/browser.d.ts.map +1 -1
  280. package/dist/browser.js +10 -3
  281. package/dist/browser.js.map +1 -1
  282. package/dist/cad-runtime/backend-dispatch.d.ts +28 -3
  283. package/dist/cad-runtime/backend-dispatch.d.ts.map +1 -1
  284. package/dist/cad-runtime/backend-dispatch.js +119 -4
  285. package/dist/cad-runtime/backend-dispatch.js.map +1 -1
  286. package/dist/cad-runtime/browser-lib-loader.js.map +1 -1
  287. package/dist/cad-runtime/direct-executor.d.ts +19 -3
  288. package/dist/cad-runtime/direct-executor.d.ts.map +1 -1
  289. package/dist/cad-runtime/direct-executor.js +49 -1
  290. package/dist/cad-runtime/direct-executor.js.map +1 -1
  291. package/dist/cad-runtime/ports.d.ts +3 -3
  292. package/dist/cad-runtime/ports.d.ts.map +1 -1
  293. package/dist/cad-runtime/ports.js.map +1 -1
  294. package/dist/cad-runtime/preview-exec.d.ts +4 -4
  295. package/dist/cad-runtime/preview-exec.js +2 -2
  296. package/dist/cad-runtime/preview-exec.js.map +1 -1
  297. package/dist/cad-runtime/runtime.d.ts +66 -8
  298. package/dist/cad-runtime/runtime.d.ts.map +1 -1
  299. package/dist/cad-runtime/runtime.js +121 -8
  300. package/dist/cad-runtime/runtime.js.map +1 -1
  301. package/dist/define-op.d.ts +37 -1
  302. package/dist/define-op.d.ts.map +1 -1
  303. package/dist/define-op.js +25 -1
  304. package/dist/define-op.js.map +1 -1
  305. package/dist/env-agnostic.d.ts +7 -7
  306. package/dist/env-agnostic.d.ts.map +1 -1
  307. package/dist/env-agnostic.js +3 -3
  308. package/dist/env-agnostic.js.map +1 -1
  309. package/dist/geometry2d/adapt.d.ts +39 -4
  310. package/dist/geometry2d/adapt.d.ts.map +1 -1
  311. package/dist/geometry2d/adapt.js +14 -3
  312. package/dist/geometry2d/adapt.js.map +1 -1
  313. package/dist/geometry2d/blueprint.d.ts +2 -2
  314. package/dist/geometry2d/blueprint.js +2 -2
  315. package/dist/geometry2d/blueprint.js.map +1 -1
  316. package/dist/geometry2d/bridge/lift-on-plane.d.ts +18 -8
  317. package/dist/geometry2d/bridge/lift-on-plane.d.ts.map +1 -1
  318. package/dist/geometry2d/bridge/lift-on-plane.js +71 -12
  319. package/dist/geometry2d/bridge/lift-on-plane.js.map +1 -1
  320. package/dist/geometry2d/bridge/plane.d.ts +17 -0
  321. package/dist/geometry2d/bridge/plane.d.ts.map +1 -1
  322. package/dist/geometry2d/bridge/plane.js +22 -0
  323. package/dist/geometry2d/bridge/plane.js.map +1 -1
  324. package/dist/geometry2d/curve2d.d.ts +25 -0
  325. package/dist/geometry2d/curve2d.d.ts.map +1 -1
  326. package/dist/geometry2d/curve2d.js +41 -5
  327. package/dist/geometry2d/curve2d.js.map +1 -1
  328. package/dist/geometry2d/pen-sketcher.d.ts +25 -0
  329. package/dist/geometry2d/pen-sketcher.d.ts.map +1 -1
  330. package/dist/geometry2d/pen-sketcher.js +43 -0
  331. package/dist/geometry2d/pen-sketcher.js.map +1 -1
  332. package/dist/index.d.ts +6 -2
  333. package/dist/index.d.ts.map +1 -1
  334. package/dist/index.js +10 -3
  335. package/dist/index.js.map +1 -1
  336. package/dist/io/bytes-node.d.ts +11 -0
  337. package/dist/io/bytes-node.d.ts.map +1 -0
  338. package/dist/io/bytes-node.js +28 -0
  339. package/dist/io/bytes-node.js.map +1 -0
  340. package/dist/io/bytes.d.ts +33 -0
  341. package/dist/io/bytes.d.ts.map +1 -0
  342. package/dist/io/bytes.js +41 -0
  343. package/dist/io/bytes.js.map +1 -0
  344. package/dist/io/fai-zip/container-read.d.ts +102 -0
  345. package/dist/io/fai-zip/container-read.d.ts.map +1 -0
  346. package/dist/io/fai-zip/container-read.js +305 -0
  347. package/dist/io/fai-zip/container-read.js.map +1 -0
  348. package/dist/io/fai-zip/container-write.d.ts +70 -0
  349. package/dist/io/fai-zip/container-write.d.ts.map +1 -0
  350. package/dist/io/fai-zip/container-write.js +186 -0
  351. package/dist/io/fai-zip/container-write.js.map +1 -0
  352. package/dist/io/fai-zip/container.d.ts +107 -0
  353. package/dist/io/fai-zip/container.d.ts.map +1 -0
  354. package/dist/io/fai-zip/container.js +89 -0
  355. package/dist/io/fai-zip/container.js.map +1 -0
  356. package/dist/io/fai-zip/index.d.ts +18 -0
  357. package/dist/io/fai-zip/index.d.ts.map +1 -0
  358. package/dist/io/fai-zip/index.js +4 -0
  359. package/dist/io/fai-zip/index.js.map +1 -0
  360. package/dist/io/index.d.ts +10 -0
  361. package/dist/io/index.d.ts.map +1 -0
  362. package/dist/io/index.js +13 -0
  363. package/dist/io/index.js.map +1 -0
  364. package/dist/io/zip.d.ts +68 -0
  365. package/dist/io/zip.d.ts.map +1 -0
  366. package/dist/io/zip.js +147 -0
  367. package/dist/io/zip.js.map +1 -0
  368. package/dist/lang/code-to-args.d.ts +30 -4
  369. package/dist/lang/code-to-args.d.ts.map +1 -1
  370. package/dist/lang/code-to-args.js +42 -3
  371. package/dist/lang/code-to-args.js.map +1 -1
  372. package/dist/lang/codegen.d.ts +45 -1
  373. package/dist/lang/codegen.d.ts.map +1 -1
  374. package/dist/lang/codegen.js +135 -6
  375. package/dist/lang/codegen.js.map +1 -1
  376. package/dist/lang/host-arg.d.ts +6 -0
  377. package/dist/lang/host-arg.d.ts.map +1 -1
  378. package/dist/lang/host-arg.js.map +1 -1
  379. package/dist/lang/metadata-extractor.d.ts +25 -0
  380. package/dist/lang/metadata-extractor.d.ts.map +1 -1
  381. package/dist/lang/metadata-extractor.js +289 -25
  382. package/dist/lang/metadata-extractor.js.map +1 -1
  383. package/dist/lang/parse-error.d.ts +7 -1
  384. package/dist/lang/parse-error.d.ts.map +1 -1
  385. package/dist/lang/parse-error.js.map +1 -1
  386. package/dist/lang/security-scanner.d.ts +9 -1
  387. package/dist/lang/security-scanner.d.ts.map +1 -1
  388. package/dist/lang/security-scanner.js +38 -1
  389. package/dist/lang/security-scanner.js.map +1 -1
  390. package/dist/lang/statement-summary.d.ts +1 -1
  391. package/dist/lang/statement-summary.js +1 -1
  392. package/dist/lang/statement-summary.js.map +1 -1
  393. package/dist/lang/types.d.ts +1 -1
  394. package/dist/lang/types.js +1 -1
  395. package/dist/lang/types.js.map +1 -1
  396. package/dist/mesh/index.d.ts +2 -1
  397. package/dist/mesh/index.d.ts.map +1 -1
  398. package/dist/mesh/index.js +2 -1
  399. package/dist/mesh/index.js.map +1 -1
  400. package/dist/mesh/io.d.ts +69 -9
  401. package/dist/mesh/io.d.ts.map +1 -1
  402. package/dist/mesh/io.js +121 -17
  403. package/dist/mesh/io.js.map +1 -1
  404. package/dist/mesh/reconcile.d.ts +1 -1
  405. package/dist/mesh/reconcile.js +1 -1
  406. package/dist/mesh/reconcile.js.map +1 -1
  407. package/dist/mesh/rigid-transform.d.ts +3 -3
  408. package/dist/mesh/rigid-transform.js +3 -3
  409. package/dist/mesh/rigid-transform.js.map +1 -1
  410. package/dist/mesh/stl-unit.d.ts +24 -0
  411. package/dist/mesh/stl-unit.d.ts.map +1 -0
  412. package/dist/mesh/stl-unit.js +17 -0
  413. package/dist/mesh/stl-unit.js.map +1 -0
  414. package/dist/mesh/threemf-bambu.d.ts +142 -0
  415. package/dist/mesh/threemf-bambu.d.ts.map +1 -0
  416. package/dist/mesh/threemf-bambu.js +334 -0
  417. package/dist/mesh/threemf-bambu.js.map +1 -0
  418. package/dist/mesh/threemf-loader.d.ts +50 -0
  419. package/dist/mesh/threemf-loader.d.ts.map +1 -0
  420. package/dist/mesh/threemf-loader.js +628 -0
  421. package/dist/mesh/threemf-loader.js.map +1 -0
  422. package/dist/mesh/threemf-view.d.ts +71 -0
  423. package/dist/mesh/threemf-view.d.ts.map +1 -0
  424. package/dist/mesh/threemf-view.js +100 -0
  425. package/dist/mesh/threemf-view.js.map +1 -0
  426. package/dist/mesh/transform.d.ts +2 -2
  427. package/dist/mesh/transform.d.ts.map +1 -1
  428. package/dist/mesh/transform.js +3 -3
  429. package/dist/mesh/transform.js.map +1 -1
  430. package/dist/mesh/types.d.ts +1 -1
  431. package/dist/mesh/types.d.ts.map +1 -1
  432. package/dist/mesh/types.js.map +1 -1
  433. package/dist/node-host/cli.d.ts +44 -6
  434. package/dist/node-host/cli.d.ts.map +1 -1
  435. package/dist/node-host/cli.js +127 -50
  436. package/dist/node-host/cli.js.map +1 -1
  437. package/dist/node-host/font-family-index.d.ts +93 -0
  438. package/dist/node-host/font-family-index.d.ts.map +1 -0
  439. package/dist/node-host/font-family-index.js +273 -0
  440. package/dist/node-host/font-family-index.js.map +1 -0
  441. package/dist/node-host/fs-asset-resolver.d.ts +8 -3
  442. package/dist/node-host/fs-asset-resolver.d.ts.map +1 -1
  443. package/dist/node-host/fs-asset-resolver.js +13 -5
  444. package/dist/node-host/fs-asset-resolver.js.map +1 -1
  445. package/dist/node-host/index.d.ts +8 -0
  446. package/dist/node-host/index.d.ts.map +1 -1
  447. package/dist/node-host/index.js +1 -0
  448. package/dist/node-host/index.js.map +1 -1
  449. package/dist/node-host/node-font-provider.d.ts +28 -0
  450. package/dist/node-host/node-font-provider.d.ts.map +1 -1
  451. package/dist/node-host/node-font-provider.js +49 -0
  452. package/dist/node-host/node-font-provider.js.map +1 -1
  453. package/dist/node.d.ts +1 -0
  454. package/dist/node.d.ts.map +1 -1
  455. package/dist/node.js +1 -0
  456. package/dist/node.js.map +1 -1
  457. package/dist/occt-kernel/occt-primitives.d.ts.map +1 -1
  458. package/dist/occt-kernel/occt-primitives.js +35 -2
  459. package/dist/occt-kernel/occt-primitives.js.map +1 -1
  460. package/dist/occt-kernel/occtKernel.d.ts +18 -13
  461. package/dist/occt-kernel/occtKernel.d.ts.map +1 -1
  462. package/dist/occt-kernel/occtKernel.js +20 -31
  463. package/dist/occt-kernel/occtKernel.js.map +1 -1
  464. package/dist/occt-kernel/stepColorParser.d.ts +18 -0
  465. package/dist/occt-kernel/stepColorParser.d.ts.map +1 -1
  466. package/dist/occt-kernel/stepColorParser.js +38 -0
  467. package/dist/occt-kernel/stepColorParser.js.map +1 -1
  468. package/dist/occt-kernel/topologyExt.d.ts +1 -1
  469. package/dist/occt-kernel/topologyExt.d.ts.map +1 -1
  470. package/dist/occt-kernel/topologyExt.js +8 -6
  471. package/dist/occt-kernel/topologyExt.js.map +1 -1
  472. package/dist/primitives/text/cjk-font.d.ts +2 -15
  473. package/dist/primitives/text/cjk-font.d.ts.map +1 -1
  474. package/dist/primitives/text/cjk-font.js +13 -1
  475. package/dist/primitives/text/cjk-font.js.map +1 -1
  476. package/dist/runtime-state.d.ts +103 -9
  477. package/dist/runtime-state.d.ts.map +1 -1
  478. package/dist/runtime-state.js +95 -2
  479. package/dist/runtime-state.js.map +1 -1
  480. package/dist/sdk.d.ts +4 -4
  481. package/dist/sdk.d.ts.map +1 -1
  482. package/dist/sdk.js +6 -6
  483. package/dist/sdk.js.map +1 -1
  484. package/dist/shape.d.ts +97 -2
  485. package/dist/shape.d.ts.map +1 -1
  486. package/dist/shape.js +126 -1
  487. package/dist/shape.js.map +1 -1
  488. package/dist/tolerance.d.ts +38 -0
  489. package/dist/tolerance.d.ts.map +1 -0
  490. package/dist/tolerance.js +40 -0
  491. package/dist/tolerance.js.map +1 -0
  492. package/dist/topology/naming/lineage.d.ts +6 -0
  493. package/dist/topology/naming/lineage.d.ts.map +1 -1
  494. package/dist/topology/naming/lineage.js +8 -0
  495. package/dist/topology/naming/lineage.js.map +1 -1
  496. package/dist/topology/naming/resolve-edge.d.ts +20 -1
  497. package/dist/topology/naming/resolve-edge.d.ts.map +1 -1
  498. package/dist/topology/naming/resolve-edge.js +54 -20
  499. package/dist/topology/naming/resolve-edge.js.map +1 -1
  500. package/dist/topology/naming/score.js +3 -3
  501. package/dist/topology/naming/score.js.map +1 -1
  502. package/dist/units.d.ts +248 -0
  503. package/dist/units.d.ts.map +1 -0
  504. package/dist/units.js +397 -0
  505. package/dist/units.js.map +1 -0
  506. package/dist/weapp.d.ts +6 -2
  507. package/dist/weapp.d.ts.map +1 -1
  508. package/dist/weapp.js +7 -1
  509. package/dist/weapp.js.map +1 -1
  510. package/package.json +28 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"units.js","sourceRoot":"","sources":["../src/units.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * faijs unit system — the single source of truth for dimensions and units.\n *\n * Every dimensioned value in faijs is stored in the **base unit** of its\n * dimension, and units are pure scale factors relative to that base. This\n * module is a zero-dependency leaf: it must not import `lang/`, any op\n * registry, `occt-kernel/*` or `brepkit-kernel/*`, because it feeds the\n * serialization pipeline (codegen), platform-neutral imports, and static\n * dimension checks without dragging in a WASM chain.\n *\n * Base units (user-裁定, 2026-09-28):\n * length: mm | angle: degree | mass: gram | temperature: kelvin\n * time: second | current: ampere\n *\n * `ValueWithUnits.value` is ALWAYS the base-unit numeric value. There is no\n * \"this value remembers it is inches\" — conversion happens only at construction\n * (`inch.mul(2)`) and extraction (`.as(mm)`), which mirrors Onshape's design\n * but with faijs's own base table (NOT Onshape's meter/radian — do not copy\n * those numeric values).\n */\n\n/** Base dimensions of the system. Higher powers are built by exponents. */\nexport type BaseDimension =\n | 'length'\n | 'angle'\n | 'mass'\n | 'temperature'\n | 'time'\n | 'current'\n\n/** A dim name is any base dimension. */\nexport type DimName = BaseDimension\n\n/**\n * A unit name. `micron/mm/cm/m/inch/foot/meter` are the six legal values of\n * the 3MF `<model unit>` enum and must all be present in `UNIT_SCALE`.\n */\nexport type UnitName =\n | 'mm' | 'cm' | 'm' | 'micron' | 'inch' | 'foot' | 'yard'\n | 'degree' | 'radian' | 'gram' | 'kilogram' | 'second'\n\n/**\n * A dimension = a sparse map of base dimension → exponent (absent ⇒ 0).\n * Implemented as a frozen plain object.\n */\nexport type UnitSpec = Readonly<Partial<Record<BaseDimension, number>>>\n\n/**\n * True when two specs have identical exponents for every base dimension.\n * @param a - first spec.\n * @param b - second spec.\n * @returns `true` if every base-dimension exponent matches.\n */\nexport function unitEquals(a: UnitSpec, b: UnitSpec): boolean {\n for (const dim of ALL_DIMS) {\n const ea = a[dim] ?? 0\n const eb = b[dim] ?? 0\n if (ea !== eb) return false\n }\n return true\n}\n\n/** All base dimensions, in a stable order. */\nconst ALL_DIMS: readonly BaseDimension[] = [\n 'length', 'angle', 'mass', 'temperature', 'time', 'current',\n]\n\n/** Dimension spec for length (length^1). */\nexport const LENGTH: UnitSpec = Object.freeze({ length: 1 })\n/** Dimension spec for area (length^2). */\nexport const AREA: UnitSpec = Object.freeze({ length: 2 })\n/** Dimension spec for volume (length^3). */\nexport const VOLUME: UnitSpec = Object.freeze({ length: 3 })\n/** Dimension spec for angle (angle^1). */\nexport const ANGLE: UnitSpec = Object.freeze({ angle: 1 })\n/** Dimension spec for mass (mass^1). */\nexport const MASS: UnitSpec = Object.freeze({ mass: 1 })\n/** Dimension spec for temperature (temperature^1). */\nexport const TEMPERATURE: UnitSpec = Object.freeze({ temperature: 1 })\n/** Dimension spec for time (time^1). */\nexport const TIME: UnitSpec = Object.freeze({ time: 1 })\n/** Dimension spec for electric current (current^1). */\nexport const CURRENT: UnitSpec = Object.freeze({ current: 1 })\n\n/**\n * The dimension spec of a named base dimension.\n * @param dim - a base dimension name.\n * @returns the corresponding `UnitSpec`.\n */\nexport function specOfDim(dim: DimName): UnitSpec {\n switch (dim) {\n case 'length': return LENGTH\n case 'angle': return ANGLE\n case 'mass': return MASS\n case 'temperature': return TEMPERATURE\n case 'time': return TIME\n case 'current': return CURRENT\n }\n}\n\n/**\n * A value carrying an immutable dimension. All arithmetic is method-style —\n * there is no operator overloading in TS. `value` is always expressed in the\n * base unit of its dimension.\n */\nexport class ValueWithUnits {\n /** The numeric magnitude, always expressed in the base unit of the dimension. */\n readonly value: number\n /** The dimension spec (which base dimensions are present and with what exponent). */\n readonly spec: UnitSpec\n\n constructor(value: number, spec: UnitSpec) {\n this.value = value\n this.spec = issueFrozen(spec)\n }\n\n /**\n * Add another value; both must share the same dimension.\n * @param rhs - the value to add (must have the same dimension).\n * @returns a new `ValueWithUnits` whose value is `this.value + rhs.value`.\n */\n add(rhs: ValueWithUnits): ValueWithUnits {\n requireSameDim(this, rhs, 'add')\n return new ValueWithUnits(this.value + rhs.value, this.spec)\n }\n\n /**\n * Subtract another value; both must share the same dimension.\n * @param rhs - the value to subtract (must have the same dimension).\n * @returns a new `ValueWithUnits` whose value is `this.value - rhs.value`.\n */\n sub(rhs: ValueWithUnits): ValueWithUnits {\n requireSameDim(this, rhs, 'sub')\n return new ValueWithUnits(this.value - rhs.value, this.spec)\n }\n\n /**\n * Negate.\n * @returns a new `ValueWithUnits` with the negated magnitude.\n */\n neg(): ValueWithUnits {\n return new ValueWithUnits(-this.value, this.spec)\n }\n\n /**\n * Scale by a dimensionless number.\n * @param n - a dimensionless scalar.\n * @returns a new `ValueWithUnits` with the scaled magnitude.\n */\n mul(n: number): ValueWithUnits {\n return new ValueWithUnits(this.value * n, this.spec)\n }\n\n /**\n * Divide by a dimensionless number.\n * @param n - a dimensionless scalar.\n * @returns a new `ValueWithUnits` with the divided magnitude.\n */\n div(n: number): ValueWithUnits {\n return new ValueWithUnits(this.value / n, this.spec)\n }\n\n /**\n * The ratio to another value of the same dimension (dimensionless result).\n * @param rhs - the divisor (must have the same dimension).\n * @returns the dimensionless ratio `this.value / rhs.value`.\n */\n divBy(rhs: ValueWithUnits): number {\n requireSameDim(this, rhs, 'divBy')\n return this.value / rhs.value\n }\n\n /**\n * Raise to an integer power; each exponent times n must stay an integer.\n * @param n - the integer power.\n * @returns a new `ValueWithUnits` with exponents multiplied by `n`.\n */\n pow(n: number): ValueWithUnits {\n if (!Number.isInteger(n)) {\n throw dimensionalError('pow exponent must be an integer', this)\n }\n const out: Record<BaseDimension, number> = { length: 0, angle: 0, mass: 0, temperature: 0, time: 0, current: 0 }\n for (const dim of ALL_DIMS) {\n const e = this.spec[dim] ?? 0\n const ne = e * n\n if (!Number.isInteger(ne)) {\n throw new Error(\n `[units] pow(${n}) would produce a non-integer exponent ${ne} for dimension ${dim}`,\n )\n }\n out[dim] = ne\n }\n return new ValueWithUnits(this.value ** n, normalizeSpec(out))\n }\n\n /**\n * Extract the numeric magnitude expressed in another unit (dimension must match).\n * @param unit - a `ValueWithUnits` representing 1 of the target unit.\n * @returns the magnitude in that unit.\n */\n as(unit: ValueWithUnits): number {\n requireSameDim(this, unit, 'as')\n return this.value / unit.value\n }\n\n /**\n * True when the magnitude is ~0 (within an optional same-dimension epsilon).\n * @param eps - optional same-dimension epsilon; defaults to 1e-9 base units.\n * @returns `true` when `|value| <= eps`.\n */\n eqZero(eps?: ValueWithUnits): boolean {\n if (eps === undefined) {\n // Default epsilon is one atomic stride of the base unit.\n return Math.abs(this.value) <= 1e-9\n }\n requireSameDim(this, eps, 'eqZero')\n return Math.abs(this.value) <= Math.abs(eps.value)\n }\n}\n\n/** Builder for an error that carries both dimensions of a mismatch. */\nfunction dimensionalError(action: string, a: ValueWithUnits, b?: ValueWithUnits): Error {\n const extras = b === undefined ? '' : ` vs {${describeSpec(b.spec)}}`\n return new Error(\n `[units] dimension mismatch in \\`${action}\\`: {${describeSpec(a.spec)}}${extras}`,\n )\n}\n\nfunction requireSameDim(a: ValueWithUnits, b: ValueWithUnits, action: string): void {\n if (!unitEquals(a.spec, b.spec)) throw dimensionalError(action, a, b)\n}\n\nfunction describeSpec(spec: UnitSpec): string {\n const parts = ALL_DIMS.filter((d) => (spec[d] ?? 0) !== 0)\n .map((d) => `${d}^${spec[d]}`)\n return parts.length ? parts.join('·') : 'dimensionless'\n}\n\n/** Freeze a spec; never expose a mutable spec to callers. */\nfunction issueFrozen(spec: UnitSpec): UnitSpec {\n return Object.freeze({ ...spec })\n}\n\nfunction normalizeSpec(spec: Record<BaseDimension, number>): UnitSpec {\n return Object.freeze({ ...spec })\n}\n\n// ── Single-source-of-truth tables ──────────────────────────────────────────\n// `UNIT_SCALE` + `UNIT_DIM` are the only data. `UNIT_DIMS`, the typed\n// constants, the pure-number constants and everything else derive from them.\n\n/**\n * Unit name → base-unit scale factor. `length`: 1 mm; `angle`: 1 degree;\n * `mass`: 1 gram; `time`: 1 second.\n */\nexport const UNIT_SCALE: Readonly<Record<UnitName, number>> = Object.freeze({\n // length (base = mm)\n mm: 1,\n cm: 10,\n m: 1000,\n micron: 0.001,\n inch: 25.4,\n foot: 304.8,\n yard: 914.4,\n // angle (base = degree)\n degree: 1,\n radian: 180 / Math.PI,\n // mass (base = gram)\n gram: 1,\n kilogram: 1000,\n // time (base = second)\n second: 1,\n})\n\n/** Unit name → the dimension it measures. */\nexport const UNIT_DIM: Readonly<Record<UnitName, DimName>> = Object.freeze({\n mm: 'length', cm: 'length', m: 'length', micron: 'length',\n inch: 'length', foot: 'length', yard: 'length',\n degree: 'angle', radian: 'angle',\n gram: 'mass', kilogram: 'mass',\n second: 'time',\n})\n\n/** Derived: unit name → UnitSpec. */\nexport const UNIT_DIMS: Readonly<Record<UnitName, UnitSpec>> = Object.freeze(\n (Object.keys(UNIT_SCALE) as UnitName[]).reduce((acc, name) => {\n acc[name] = specOfDim(UNIT_DIM[name])\n return acc\n }, {} as Record<UnitName, UnitSpec>),\n)\n\n// ── Script-side unit constants (D7) ──────────────────────────────────────────\n// These are the bare-number constants available in .fai.js scripts.\n// `cm` and `meter` are script-friendly aliases for UNIT_SCALE keys `cm` and `m`.\n// The value is the base-unit scale factor (= UNIT_SCALE[name] for most, except\n// `meter` which maps to `m`).\n\n/**\n * Script-side unit constant names → their numeric values (base-unit scale).\n * These are registered as global read-only constants in the script runtime.\n * All names are UPPERCASE to avoid collisions with user variable names\n * (e.g. `cm` as center-of-mass would clash with `cm` as centimeter).\n * `10 * INCH` in a script evaluates to `10 * 25.4 === 254` (plain JS multiply).\n */\nexport const SCRIPT_UNIT_CONSTANTS: Readonly<Record<string, number>> = Object.freeze({\n MM: 1,\n CM: 10,\n METER: 1000,\n MICRON: 0.001,\n INCH: 25.4,\n FOOT: 304.8,\n YARD: 914.4,\n DEGREE: 1,\n RADIAN: 180 / Math.PI,\n GRAM: 1,\n KILOGRAM: 1000,\n SECOND: 1,\n})\n\n/**\n * Mapping from script-side unit constant names (UPPERCASE) to the internal\n * `UnitName` (lowercase, used by UNIT_SCALE/UNIT_DIM for format-level units).\n * Used by the dimension checker to resolve a script constant to its dimension.\n */\nexport const SCRIPT_UNIT_TO_NAME: Readonly<Record<string, UnitName>> = Object.freeze({\n MM: 'mm', CM: 'cm', METER: 'm', MICRON: 'micron',\n INCH: 'inch', FOOT: 'foot', YARD: 'yard',\n DEGREE: 'degree', RADIAN: 'radian',\n GRAM: 'gram', KILOGRAM: 'kilogram',\n SECOND: 'second',\n})\n\n/** The set of script-side unit constant names (for fast membership tests). */\nexport const SCRIPT_UNIT_NAMES: ReadonlySet<string> = new Set(Object.keys(SCRIPT_UNIT_CONSTANTS))\n\n// ── Typed constants (ValueWithUnits) ────────────────────────────────────────\n\n/** 1 mm — the base length unit. */\nexport const mm = new ValueWithUnits(1, LENGTH)\n/** 1 cm = 10 mm. */\nexport const centimeter = new ValueWithUnits(10, LENGTH)\n/** 1 m = 1000 mm. */\nexport const meter = new ValueWithUnits(1000, LENGTH)\n/** 1 micron = 0.001 mm (one of the 3MF unit enum values). */\nexport const micron = new ValueWithUnits(0.001, LENGTH)\n/** 1 inch = 25.4 mm. */\nexport const inch = new ValueWithUnits(25.4, LENGTH)\n/** 1 foot = 304.8 mm. */\nexport const foot = new ValueWithUnits(304.8, LENGTH)\n/** 1 yard = 914.4 mm. */\nexport const yard = new ValueWithUnits(914.4, LENGTH)\n\n/** The base angle unit — 1 degree. */\nexport const degree = new ValueWithUnits(1, ANGLE)\n/** 1 radian = 180/π degrees (base is degree). */\nexport const radian = new ValueWithUnits(180 / Math.PI, ANGLE)\n\n/** 1 gram (base mass unit). */\nexport const gram = new ValueWithUnits(1, MASS)\n/** 1 kilogram = 1000 gram. */\nexport const kilogram = new ValueWithUnits(1000, MASS)\n/** 1 second (base time unit). */\nexport const second = new ValueWithUnits(1, TIME)\n\n// ── Pure-number constants (number) = base-unit scale ────────────────────────\n// TS library code that calls geometric ops directly uses these bare numbers\n// (D4): `const L = 10 * INCH; cad.box({ size: [L, 20 * MM, 30 * MM] })`.\n\n/** 1 (mm). */\nexport const MM = 1\n/** 10 (mm). */\nexport const CM = 10\n/** 1000 (mm). */\nexport const M = 1000\n/** 0.001 (mm). */\nexport const MICRON = 0.001\n/** 25.4 (mm). */\nexport const INCH = 25.4\n/** 304.8 (mm). */\nexport const FOOT = 304.8\n/** 914.4 (mm). */\nexport const YARD = 914.4\n/** 1 (degree). */\nexport const DEGREE = 1\n/** 180/π (degree). */\nexport const RADIAN = 180 / Math.PI\n\n// ── System display unit ─────────────────────────────────────────────────────\n\n/**\n * The system display unit context, owned by the host (never a module-level\n * global). Defaults to the base units.\n */\nexport interface UnitContext {\n length: UnitName\n angle: UnitName\n}\n\n/** Base display units (mm / degree). */\nexport const BASE_UNITS: UnitContext = Object.freeze({ length: 'mm', angle: 'degree' })\n\n/**\n * The display unit for a dimension within a context. Only `length` and\n * `angle` are host-settable; all other dimensions fall back to their base unit.\n * @param dim - the dimension to look up.\n * @param ctx - the system unit context; defaults to base units.\n * @returns the unit name.\n */\nexport function unitFor(dim: DimName, ctx?: UnitContext): UnitName {\n if (dim === 'length' || dim === 'angle') {\n return (ctx ?? BASE_UNITS)[dim]\n }\n // mass / temperature / time / current have no display override → their base.\n switch (dim) {\n case 'mass': return 'gram'\n case 'temperature': return 'kelvin' as UnitName\n case 'time': return 'second'\n case 'current': return 'ampere' as UnitName\n default: return 'mm'\n }\n}\n\n/**\n * Scale factor of a unit name relative to the base unit.\n * @param name - the unit name.\n * @returns the scale factor (e.g. `inch` → `25.4`).\n */\nexport function unitScale(name: UnitName): number {\n return UNIT_SCALE[name]\n}\n\n/**\n * Convert a value given in a display unit to the base-unit value.\n * @param n - the value in `unitName`.\n * @param unitName - the source unit.\n * @param dimensionName - the dimension (for validation).\n * @returns the base-unit (mm/degree/...) value.\n */\nexport function toBase(n: number, unitName: UnitName, dimensionName: DimName): number {\n requireDim(unitName, dimensionName)\n return n * UNIT_SCALE[unitName]\n}\n\n/**\n * Convert a base-unit value into a display unit.\n * @param base - the base-unit (mm/degree/...) value.\n * @param unitName - the target unit.\n * @param dimensionName - the dimension (for validation).\n * @returns the value expressed in `unitName`.\n */\nexport function fromBase(base: number, unitName: UnitName, dimensionName: DimName): number {\n requireDim(unitName, dimensionName)\n return base / UNIT_SCALE[unitName]\n}\n\n/** Throw when a unit is not a member of a dimension. */\nfunction requireDim(unitName: UnitName, dimensionName: DimName): void {\n if (UNIT_DIM[unitName] !== dimensionName) {\n throw new Error(`[units] unit '${unitName}' is ${UNIT_DIM[unitName]}; expected ${dimensionName}`)\n }\n}\n\n/**\n * True when the value has dimension length.\n * @param v - the value to check.\n * @returns `true` if `v.spec` equals `LENGTH`.\n */\nexport function isLength(v: ValueWithUnits): boolean {\n return unitEquals(v.spec, LENGTH)\n}\n\n/**\n * True when the value has dimension angle.\n * @param v - the value to check.\n * @returns `true` if `v.spec` equals `ANGLE`.\n */\nexport function isAngle(v: ValueWithUnits): boolean {\n return unitEquals(v.spec, ANGLE)\n}"]}
package/dist/weapp.d.ts CHANGED
@@ -14,9 +14,13 @@
14
14
  export * from './env-agnostic.js';
15
15
  export { setBrepkitWasmInitFn, initBrepkitWasm, isBrepkitInitialized } from './brepkit-kernel/brepkitWasm.js';
16
16
  export { registerBrepkitBrepEngine, BREPKIT_BREP_ENGINE_ID, ensureBrepkitDefaultEngine } from './brep/engine/adapters/brepkit.js';
17
- export { registerBrepEngine, hasBrepEngine, getBrepEngine, getActiveBrepEngineId, freezeEngineRegistries } from './brep/engine/registry.js';
18
- export type { BrepEngine, BrepEngineProvider } from './brep/engine/registry.js';
17
+ export { registerBrepkitMeshEngine, BREPKIT_MESH_ENGINE_ID, ensureBrepkitMeshBackend } from './brep/engine/adapters/brepkit.js';
18
+ export { registerBrepEngine, hasBrepEngine, getBrepEngine, getActiveBrepEngineId, freezeEngineRegistries, registerMeshEngine, getMeshEngine, getActiveMeshEngineId, isMeshEngineRegistered, getMeshSolidBackend } from './brep/engine/registry.js';
19
+ export type { BrepEngine, BrepEngineProvider, MeshEngine } from './brep/engine/registry.js';
19
20
  export type { BrepEngineApi } from './brep/engine/primitives.js';
21
+ export { MeshSolidRegistry, normalizeMeshSolid, describeMeshSolid, buildMeshSolidTopology, weldToleranceFor } from './brep/mesh-solid.js';
22
+ export type { MeshSolidBackend, MeshSolidResult, MeshSolidKernelOps, MeshSolidInput, MeshSolidNormalizeOptions, } from './brep/mesh-solid.js';
23
+ export { assertShapeSlotExclusive } from './cad-runtime/backend-dispatch.js';
20
24
  export { createRuntime } from './cad-runtime/createRuntimeWithCad.js';
21
25
  export type { CadRuntime } from './cad-runtime/createRuntimeWithCad.js';
22
26
  //# sourceMappingURL=weapp.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"weapp.d.ts","sourceRoot":"","sources":["../src/weapp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,cAAc,gBAAgB,CAAA;AAG9B,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAG1G,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAA;AAG9H,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,aAAa,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAA;AACxI,YAAY,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAC5E,YAAY,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAI7D,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAA;AAClE,YAAY,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAA"}
1
+ {"version":3,"file":"weapp.d.ts","sourceRoot":"","sources":["../src/weapp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,cAAc,gBAAgB,CAAA;AAG9B,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAG1G,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAA;AAG9H,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAA;AAG5H,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,aAAa,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,aAAa,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAC/O,YAAY,EAAE,UAAU,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACxF,YAAY,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAE7D,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACtI,YAAY,EACV,gBAAgB,EAAE,eAAe,EAAE,kBAAkB,EAAE,cAAc,EAAE,yBAAyB,GACjG,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAA;AAIzE,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAA;AAClE,YAAY,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAA"}
package/dist/weapp.js CHANGED
@@ -18,8 +18,14 @@ export * from './env-agnostic.js';
18
18
  export { setBrepkitWasmInitFn, initBrepkitWasm, isBrepkitInitialized } from './brepkit-kernel/brepkitWasm.js';
19
19
  // brepkit BREP 引擎注册(weapp 只注册 brepkit,不注册 occt)
20
20
  export { registerBrepkitBrepEngine, BREPKIT_BREP_ENGINE_ID, ensureBrepkitDefaultEngine } from './brep/engine/adapters/brepkit.js';
21
+ // brepkit 网格实体后端(网格语义路径;与 BREP 槽独立注册)。weapp 侧装了它,
22
+ // `cad.load` 的 STL/3MF 路径就产出「网格实体 + 近似拓扑」。
23
+ export { registerBrepkitMeshEngine, BREPKIT_MESH_ENGINE_ID, ensureBrepkitMeshBackend } from './brep/engine/adapters/brepkit.js';
21
24
  // BREP 引擎注册表(环境无关;ensureBrepChain 见已注册引擎即跳过 OCCT)
22
- export { registerBrepEngine, hasBrepEngine, getBrepEngine, getActiveBrepEngineId, freezeEngineRegistries } from './brep/engine/registry.js';
25
+ export { registerBrepEngine, hasBrepEngine, getBrepEngine, getActiveBrepEngineId, freezeEngineRegistries, registerMeshEngine, getMeshEngine, getActiveMeshEngineId, isMeshEngineRegistered, getMeshSolidBackend } from './brep/engine/registry.js';
26
+ // 网格实体(近似拓扑的载体):端口 + 注册表 + 驱动。
27
+ export { MeshSolidRegistry, normalizeMeshSolid, describeMeshSolid, buildMeshSolidTopology, weldToleranceFor } from './brep/mesh-solid.js';
28
+ export { assertShapeSlotExclusive } from './cad-runtime/backend-dispatch.js';
23
29
  // cad-runtime(环境无关执行栈):createRuntime 为 with-cad 变体(§9.2),与
24
30
  // browser/node 入口同口径——自带 cad 命名空间注册,宿主无需手工补注册。
25
31
  export { createRuntime } from './cad-runtime/createRuntimeWithCad.js';
package/dist/weapp.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"weapp.js","sourceRoot":"","sources":["../src/weapp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,sEAAsE;AACtE,wDAAwD;AACxD,cAAc,gBAAgB,CAAA;AAE9B,8DAA8D;AAC9D,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAE1G,gDAAgD;AAChD,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAA;AAE9H,kDAAkD;AAClD,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,aAAa,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAA;AAIxI,2DAA2D;AAC3D,+CAA+C;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAA","sourcesContent":["/**\n * @faicad/faijs-core/weapp — weapp 专用宿主入口(docs/plans/2026-09-20-weapp-host-entry-design.md)\n *\n * 小程序(无 OCCT 环境)宿主的最小导出面:brepkit wasm 装载注入点 + brepkit BREP\n * 引擎注册 + 环境无关执行栈。全部为 re-export,零新实现。\n *\n * 为什么独立成入口:browser umbrella 曾 re-export brepkit 符号,导致 web 端模块图\n * 包含 brepkitWasm.js(其 node 分支 import('brepkit-wasm') 被 vite 静态解析而报错)。\n * 宿主边界必须由静态入口声明,而不是靠构建脚本事后 stub 剔除。\n *\n * 导出面受 entry-boundary.test.ts 白名单守卫约束——新增导出必须同步更新白名单。\n * web/desktop 宿主禁止 import 本入口(brepkit 是 weapp 专属 BREP 引擎)。\n */\n\n// 共享面(env-agnostic:identity + runtime-state + lang/*)——三处 umbrella 统一\n// re-export(§9.1),weapp worker 由此获得 analyzeCode 等语言层符号。\nexport * from './env-agnostic'\n\n// brepkit wasm 装载(weapp 专属注入点;宿主装配期调用一次 setBrepkitWasmInitFn)\nexport { setBrepkitWasmInitFn, initBrepkitWasm, isBrepkitInitialized } from './brepkit-kernel/brepkitWasm'\n\n// brepkit BREP 引擎注册(weapp 只注册 brepkit,不注册 occt)\nexport { registerBrepkitBrepEngine, BREPKIT_BREP_ENGINE_ID, ensureBrepkitDefaultEngine } from './brep/engine/adapters/brepkit'\n\n// BREP 引擎注册表(环境无关;ensureBrepChain 见已注册引擎即跳过 OCCT)\nexport { registerBrepEngine, hasBrepEngine, getBrepEngine, getActiveBrepEngineId, freezeEngineRegistries } from './brep/engine/registry'\nexport type { BrepEngine, BrepEngineProvider } from './brep/engine/registry'\nexport type { BrepEngineApi } from './brep/engine/primitives'\n\n// cad-runtime(环境无关执行栈):createRuntime 为 with-cad 变体(§9.2),与\n// browser/node 入口同口径——自带 cad 命名空间注册,宿主无需手工补注册。\nexport { createRuntime } from './cad-runtime/createRuntimeWithCad'\nexport type { CadRuntime } from './cad-runtime/createRuntimeWithCad'\n"]}
1
+ {"version":3,"file":"weapp.js","sourceRoot":"","sources":["../src/weapp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,sEAAsE;AACtE,wDAAwD;AACxD,cAAc,gBAAgB,CAAA;AAE9B,8DAA8D;AAC9D,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAE1G,gDAAgD;AAChD,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAA;AAC9H,kDAAkD;AAClD,2CAA2C;AAC3C,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAA;AAE5H,kDAAkD;AAClD,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,aAAa,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,aAAa,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAG/O,+BAA+B;AAC/B,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAItI,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAA;AAEzE,2DAA2D;AAC3D,+CAA+C;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAA","sourcesContent":["/**\n * @faicad/faijs-core/weapp — weapp 专用宿主入口(docs/plans/2026-09-20-weapp-host-entry-design.md)\n *\n * 小程序(无 OCCT 环境)宿主的最小导出面:brepkit wasm 装载注入点 + brepkit BREP\n * 引擎注册 + 环境无关执行栈。全部为 re-export,零新实现。\n *\n * 为什么独立成入口:browser umbrella 曾 re-export brepkit 符号,导致 web 端模块图\n * 包含 brepkitWasm.js(其 node 分支 import('brepkit-wasm') 被 vite 静态解析而报错)。\n * 宿主边界必须由静态入口声明,而不是靠构建脚本事后 stub 剔除。\n *\n * 导出面受 entry-boundary.test.ts 白名单守卫约束——新增导出必须同步更新白名单。\n * web/desktop 宿主禁止 import 本入口(brepkit 是 weapp 专属 BREP 引擎)。\n */\n\n// 共享面(env-agnostic:identity + runtime-state + lang/*)——三处 umbrella 统一\n// re-export(§9.1),weapp worker 由此获得 analyzeCode 等语言层符号。\nexport * from './env-agnostic'\n\n// brepkit wasm 装载(weapp 专属注入点;宿主装配期调用一次 setBrepkitWasmInitFn)\nexport { setBrepkitWasmInitFn, initBrepkitWasm, isBrepkitInitialized } from './brepkit-kernel/brepkitWasm'\n\n// brepkit BREP 引擎注册(weapp 只注册 brepkit,不注册 occt)\nexport { registerBrepkitBrepEngine, BREPKIT_BREP_ENGINE_ID, ensureBrepkitDefaultEngine } from './brep/engine/adapters/brepkit'\n// brepkit 网格实体后端(网格语义路径;与 BREP 槽独立注册)。weapp 侧装了它,\n// `cad.load` 的 STL/3MF 路径就产出「网格实体 + 近似拓扑」。\nexport { registerBrepkitMeshEngine, BREPKIT_MESH_ENGINE_ID, ensureBrepkitMeshBackend } from './brep/engine/adapters/brepkit'\n\n// BREP 引擎注册表(环境无关;ensureBrepChain 见已注册引擎即跳过 OCCT)\nexport { registerBrepEngine, hasBrepEngine, getBrepEngine, getActiveBrepEngineId, freezeEngineRegistries, registerMeshEngine, getMeshEngine, getActiveMeshEngineId, isMeshEngineRegistered, getMeshSolidBackend } from './brep/engine/registry'\nexport type { BrepEngine, BrepEngineProvider, MeshEngine } from './brep/engine/registry'\nexport type { BrepEngineApi } from './brep/engine/primitives'\n// 网格实体(近似拓扑的载体):端口 + 注册表 + 驱动。\nexport { MeshSolidRegistry, normalizeMeshSolid, describeMeshSolid, buildMeshSolidTopology, weldToleranceFor } from './brep/mesh-solid'\nexport type {\n MeshSolidBackend, MeshSolidResult, MeshSolidKernelOps, MeshSolidInput, MeshSolidNormalizeOptions,\n} from './brep/mesh-solid'\nexport { assertShapeSlotExclusive } from './cad-runtime/backend-dispatch'\n\n// cad-runtime(环境无关执行栈):createRuntime 为 with-cad 变体(§9.2),与\n// browser/node 入口同口径——自带 cad 命名空间注册,宿主无需手工补注册。\nexport { createRuntime } from './cad-runtime/createRuntimeWithCad'\nexport type { CadRuntime } from './cad-runtime/createRuntimeWithCad'\n"]}
package/package.json CHANGED
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "@faicad/faijs",
3
- "version": "0.19.0",
3
+ "version": "0.29.3",
4
4
  "type": "module",
5
- "license": "MIT",
5
+ "license": "Apache-2.0",
6
6
  "repository": {
7
7
  "type": "git",
8
8
  "url": "git+https://gitcode.com/Faicad/faijs.git"
9
9
  },
10
10
  "main": "./dist/index.js",
11
11
  "types": "./dist/index.d.ts",
12
- "exports": {
12
+ "exports": {
13
13
  ".": {
14
14
  "types": "./dist/index.d.ts",
15
15
  "default": "./dist/index.js"
@@ -22,6 +22,10 @@
22
22
  "types": "./dist/api/brepjs-compat/index.d.ts",
23
23
  "default": "./dist/api/brepjs-compat/index.js"
24
24
  },
25
+ "./api/cadquery-selectors": {
26
+ "types": "./dist/api/cadquery-selectors/index.d.ts",
27
+ "default": "./dist/api/cadquery-selectors/index.js"
28
+ },
25
29
  "./brepjs-compat": {
26
30
  "types": "./dist/api/brepjs-compat/index.d.ts",
27
31
  "default": "./dist/api/brepjs-compat/index.js"
@@ -34,6 +38,10 @@
34
38
  "types": "./dist/sdk.d.ts",
35
39
  "default": "./dist/sdk.js"
36
40
  },
41
+ "./export": {
42
+ "types": "./dist/brep/export/export-model.d.ts",
43
+ "default": "./dist/brep/export/export-model.js"
44
+ },
37
45
  "./symbol-table": {
38
46
  "types": "./dist/symbol-table.d.ts",
39
47
  "default": "./dist/symbol-table.js"
@@ -86,6 +94,18 @@
86
94
  "types": "./dist/mesh/*.d.ts",
87
95
  "default": "./dist/mesh/*.js"
88
96
  },
97
+ "./io": {
98
+ "types": "./dist/io/index.d.ts",
99
+ "default": "./dist/io/index.js"
100
+ },
101
+ "./io/fai-zip": {
102
+ "types": "./dist/io/fai-zip/index.d.ts",
103
+ "default": "./dist/io/fai-zip/index.js"
104
+ },
105
+ "./io/*": {
106
+ "types": "./dist/io/*.d.ts",
107
+ "default": "./dist/io/*.js"
108
+ },
89
109
  "./brep/*": {
90
110
  "types": "./dist/brep/*.d.ts",
91
111
  "default": "./dist/brep/*.js"
@@ -129,6 +149,10 @@
129
149
  "./env-agnostic": {
130
150
  "types": "./dist/env-agnostic.d.ts",
131
151
  "default": "./dist/env-agnostic.js"
152
+ },
153
+ "./units": {
154
+ "types": "./dist/units.d.ts",
155
+ "default": "./dist/units.js"
132
156
  }
133
157
  },
134
158
  "files": [
@@ -139,6 +163,7 @@
139
163
  "dependencies": {
140
164
  "@xmldom/xmldom": "^0.9.8",
141
165
  "acorn": "^8.18.0",
166
+ "fflate": "^0.8.3",
142
167
  "manifold-3d": "^3.5.1",
143
168
  "opentype.js": "^1.3.4"
144
169
  },