@typecad/cuttlefish 1.0.0-alpha.13 → 1.0.0-alpha.15

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 (343) hide show
  1. package/README.md +82 -79
  2. package/assets/editor-extensions/typecad-debug/README.md +141 -0
  3. package/assets/editor-extensions/typecad-debug/out/extension.js +347 -0
  4. package/assets/editor-extensions/typecad-debug/out/extension.js.map +1 -0
  5. package/assets/editor-extensions/typecad-debug/package.json +76 -0
  6. package/assets/editor-extensions/typecad-ui/LICENSE +27 -0
  7. package/assets/editor-extensions/typecad-ui/README.md +52 -0
  8. package/assets/editor-extensions/typecad-ui/file-icon-dark.png +0 -0
  9. package/assets/editor-extensions/typecad-ui/file-icon-light.png +0 -0
  10. package/assets/editor-extensions/typecad-ui/icon.png +0 -0
  11. package/assets/editor-extensions/typecad-ui/language-configuration.json +43 -0
  12. package/assets/editor-extensions/typecad-ui/package.json +54 -0
  13. package/assets/editor-extensions/typecad-ui/snippets/typecad-ui.json +80 -0
  14. package/assets/editor-extensions/typecad-ui/syntaxes/markdown-ui.json +45 -0
  15. package/assets/editor-extensions/typecad-ui/syntaxes/typecad-ui.tmLanguage.json +1269 -0
  16. package/dist/api/config.d.ts +30 -27
  17. package/dist/api/schema/types.d.ts +20 -3
  18. package/dist/api/shared/async-runtime-static.d.ts +1 -1
  19. package/dist/api/shared/async-runtime-static.js +5 -5
  20. package/dist/api/shared/async-types.d.ts +3 -2
  21. package/dist/api/shared/board-catalog.d.ts +2 -0
  22. package/dist/api/shared/board-catalog.js +6 -0
  23. package/dist/api/shared/board-resolver.d.ts +4 -7
  24. package/dist/api/shared/board-resolver.js +2 -1
  25. package/dist/api/shared/coop-scheduler.d.ts +1 -1
  26. package/dist/api/shared/coop-scheduler.js +1 -1
  27. package/dist/api/shared/cpp-type-ir.d.ts +1 -1
  28. package/dist/api/shared/cpp-type-ir.js +1 -1
  29. package/dist/api/shared/display-profile.d.ts +1 -1
  30. package/dist/api/shared/display-profile.js +3 -5
  31. package/dist/api/shared/framework-manifest-registry.d.ts +1 -1
  32. package/dist/api/shared/framework-manifest-registry.js +0 -1
  33. package/dist/api/shared/framework-manifest.d.ts +65 -507
  34. package/dist/api/shared/framework-manifest.js +6 -11
  35. package/dist/api/shared/hal-op-ir.d.ts +294 -685
  36. package/dist/api/shared/hal-op-ir.js +31 -65
  37. package/dist/api/shared/index.d.ts +0 -4
  38. package/dist/api/shared/index.js +1 -7
  39. package/dist/api/shared/ir-core.d.ts +6 -0
  40. package/dist/api/shared/ir-declarations.d.ts +4 -0
  41. package/dist/api/shared/ir.d.ts +1 -3
  42. package/dist/api/shared/platform-strategy.d.ts +14 -37
  43. package/dist/api/shared/polyfill-helper-registry.js +0 -5
  44. package/dist/api/shared/polyfill-types.js +0 -27
  45. package/dist/api/shared/promise-runtime.js +3 -3
  46. package/dist/api/shared/spdx-licenses.d.ts +12 -10
  47. package/dist/api/shared/spdx-licenses.js +1 -1
  48. package/dist/api/shared/toolchain-types.d.ts +1 -1
  49. package/dist/api/shared/toolchain-types.js +3 -3
  50. package/dist/api/shared/types.d.ts +0 -3
  51. package/dist/api/shared/validate-framework-manifest.js +13 -33
  52. package/dist/board-catalog/dts-reader.d.ts +220 -0
  53. package/dist/board-catalog/dts-reader.js +1052 -0
  54. package/dist/board-catalog/index.d.ts +11 -0
  55. package/dist/board-catalog/index.js +12 -0
  56. package/dist/board-catalog/pinconfig.d.ts +48 -0
  57. package/dist/board-catalog/pinconfig.js +263 -0
  58. package/dist/board-catalog/sdk.d.ts +82 -0
  59. package/dist/board-catalog/sdk.js +180 -0
  60. package/dist/board-catalog/store.d.ts +196 -0
  61. package/dist/board-catalog/store.js +363 -0
  62. package/dist/board-catalog/types.d.ts +233 -0
  63. package/dist/board-catalog/types.js +7 -0
  64. package/dist/board-catalog/walker.d.ts +112 -0
  65. package/dist/board-catalog/walker.js +1101 -0
  66. package/dist/cli-utils.d.ts +2 -2
  67. package/dist/cli-utils.js +5 -5
  68. package/dist/cli.js +227 -244
  69. package/dist/config-loader.d.ts +14 -19
  70. package/dist/config-loader.js +242 -78
  71. package/dist/config-schema.d.ts +19 -227
  72. package/dist/config-schema.js +9 -8
  73. package/dist/contract/board-generator.d.ts +4 -4
  74. package/dist/contract/board-generator.js +16 -5
  75. package/dist/contract/contract-parser.d.ts +36 -127
  76. package/dist/contract/contract-parser.js +76 -0
  77. package/dist/contract/index.d.ts +1 -1
  78. package/dist/contract/index.js +70 -21
  79. package/dist/create/active-board-catalog.d.ts +9 -0
  80. package/dist/create/active-board-catalog.js +94 -0
  81. package/dist/create/board-catalog.generated.d.ts +96 -0
  82. package/dist/create/board-catalog.generated.js +128737 -0
  83. package/dist/create/board-search.d.ts +23 -0
  84. package/dist/create/board-search.js +88 -0
  85. package/dist/create/editor-integration.d.ts +32 -0
  86. package/dist/create/editor-integration.js +257 -0
  87. package/dist/create/eslint-rules-template.d.ts +2 -2
  88. package/dist/create/framework-catalog.d.ts +48 -8
  89. package/dist/create/framework-catalog.js +58 -44
  90. package/dist/create/index.d.ts +8 -13
  91. package/dist/create/index.js +5 -9
  92. package/dist/create/mcu-target.d.ts +39 -0
  93. package/dist/create/mcu-target.js +80 -0
  94. package/dist/create/pack-targets.d.ts +19 -0
  95. package/dist/create/pack-targets.js +56 -0
  96. package/dist/create/{init-scaffold.d.ts → scaffold.d.ts} +8 -11
  97. package/dist/create/{init-scaffold.js → scaffold.js} +28 -87
  98. package/dist/create/templates.d.ts +51 -0
  99. package/dist/create/{init-templates.js → templates.js} +135 -116
  100. package/dist/create/wizard.d.ts +19 -0
  101. package/dist/create/wizard.js +314 -0
  102. package/dist/debug/preprocessor.d.ts +5 -0
  103. package/dist/debug/preprocessor.js +31 -7
  104. package/dist/diagnostics/diagnostics-report.d.ts +1 -1
  105. package/dist/diagnostics/diagnostics-report.js +3 -11
  106. package/dist/diagnostics/json-schema.d.ts +1 -1
  107. package/dist/diagnostics/md-writer.js +2 -2
  108. package/dist/diagnostics/mermaid-builder.d.ts +1 -1
  109. package/dist/diagnostics/mermaid-builder.js +1 -1
  110. package/dist/emit/cpp-emitter.js +4 -1
  111. package/dist/emit/emitters/class-emitter.js +32 -4
  112. package/dist/emit/emitters/emitter-context.d.ts +11 -0
  113. package/dist/emit/emitters/entrypoint-synthesizer.js +1 -1
  114. package/dist/emit/emitters/function-emitter-impl.js +33 -17
  115. package/dist/emit/emitters/output-finalizer.d.ts +7 -0
  116. package/dist/emit/emitters/output-finalizer.js +31 -23
  117. package/dist/emit/emitters/setup.js +147 -63
  118. package/dist/emit/emitters/top-level-prep.js +1 -1
  119. package/dist/emit/emitters/type-decl-emitter.js +13 -8
  120. package/dist/emit/emitters/ui-emitter.js +1 -1
  121. package/dist/emit/expression-renderer.d.ts +3 -3
  122. package/dist/emit/expression-renderer.js +17 -7
  123. package/dist/emit/route-hal-op.js +17 -48
  124. package/dist/emit/snprintf-helpers.d.ts +1 -3
  125. package/dist/emit/snprintf-helpers.js +1 -39
  126. package/dist/emit/statement-renderer.d.ts +0 -4
  127. package/dist/emit/statement-renderer.js +54 -45
  128. package/dist/emit/utils/async-state-machine.d.ts +16 -9
  129. package/dist/emit/utils/async-state-machine.js +56 -54
  130. package/dist/emit/utils/comment-helpers.d.ts +0 -8
  131. package/dist/emit/utils/comment-helpers.js +1 -1
  132. package/dist/emit/utils/cpp-helpers.d.ts +2 -2
  133. package/dist/emit/utils/cpp-helpers.js +2 -2
  134. package/dist/emit/utils/hal-op-cpp-type.js +4 -6
  135. package/dist/emit/utils/index.d.ts +3 -3
  136. package/dist/emit/utils/index.js +3 -3
  137. package/dist/emit/utils/type-inference.d.ts +1 -29
  138. package/dist/emit/utils/type-inference.js +0 -75
  139. package/dist/framework-package.d.ts +3 -0
  140. package/dist/framework-package.js +23 -6
  141. package/dist/framework-registry.d.ts +5 -5
  142. package/dist/frameworks/native/graphics/terminal-preview.d.ts +5 -0
  143. package/dist/frameworks/native/graphics/terminal-preview.js +33 -0
  144. package/dist/frameworks/native/index.d.ts +3 -0
  145. package/dist/frameworks/native/index.js +15 -0
  146. package/dist/frameworks/native/native-compile.d.ts +17 -0
  147. package/dist/frameworks/native/native-compile.js +170 -0
  148. package/dist/frameworks/native/native-config.d.ts +41 -0
  149. package/dist/frameworks/native/native-config.js +7 -0
  150. package/dist/frameworks/native/strategy.d.ts +97 -0
  151. package/dist/frameworks/native/strategy.js +664 -0
  152. package/dist/ir/board-resolver.d.ts +18 -23
  153. package/dist/ir/board-resolver.js +43 -401
  154. package/dist/ir/build-ir-state.d.ts +3 -0
  155. package/dist/ir/build-ir-state.js +42 -0
  156. package/dist/ir/build-ir.d.ts +1 -1
  157. package/dist/ir/build-ir.js +64 -45
  158. package/dist/ir/declaration-builders.js +1 -0
  159. package/dist/ir/expression-to-ir.js +17 -10
  160. package/dist/ir/hal/hal-emitter.d.ts +0 -2
  161. package/dist/ir/hal/hal-emitter.js +92 -41
  162. package/dist/ir/hal/hal-parser.d.ts +5 -5
  163. package/dist/ir/hal/hal-parser.js +128 -36
  164. package/dist/ir/hal/hal-plugins.d.ts +0 -1
  165. package/dist/ir/hal/hal-plugins.js +425 -716
  166. package/dist/ir/heap-analysis.js +2 -41
  167. package/dist/ir/identifier-collector.js +32 -20
  168. package/dist/ir/network-validation.js +7 -11
  169. package/dist/ir/ownership-analysis.js +75 -13
  170. package/dist/ir/peripheral-usage.d.ts +8 -2
  171. package/dist/ir/peripheral-usage.js +78 -149
  172. package/dist/ir/peripheral-validation.js +23 -3
  173. package/dist/ir/pin-capability-validation.d.ts +12 -0
  174. package/dist/ir/pin-capability-validation.js +61 -97
  175. package/dist/ir/pin-mode-validation.js +5 -5
  176. package/dist/ir/program-analysis.d.ts +8 -15
  177. package/dist/ir/program-analysis.js +140 -323
  178. package/dist/ir/pulldown-validation.js +11 -4
  179. package/dist/ir/resource-analysis.js +15 -3
  180. package/dist/ir/statement-to-ir.js +0 -6
  181. package/dist/ir/timing-validation.js +1 -1
  182. package/dist/ir/transformers/array-methods.js +11 -5
  183. package/dist/ir/transformers/call-statement.js +20 -87
  184. package/dist/ir/transformers/callback-context-registry.d.ts +1 -1
  185. package/dist/ir/transformers/callback-context-registry.js +8 -16
  186. package/dist/ir/transformers/control-flow.js +0 -13
  187. package/dist/ir/transformers/expressions.js +10 -9
  188. package/dist/ir/transformers/hal-call-resolver.d.ts +2 -2
  189. package/dist/ir/transformers/hal-call-resolver.js +24 -10
  190. package/dist/ir/transformers/hal-emit-helpers.d.ts +2 -2
  191. package/dist/ir/transformers/hal-emit-helpers.js +2 -2
  192. package/dist/ir/transformers/namespace-methods.js +1 -1
  193. package/dist/ir/transformers/ui-callback-lowering.d.ts +0 -2
  194. package/dist/ir/transformers/ui-callback-lowering.js +0 -24
  195. package/dist/ir/transformers/variables.js +338 -42
  196. package/dist/ir/try-catch-validation.js +4 -3
  197. package/dist/ir/type-resolution.js +15 -4
  198. package/dist/ir/validation-orchestrator.js +0 -9
  199. package/dist/libdef/cpp-to-decl.d.ts +0 -9
  200. package/dist/libdef/cpp-to-decl.js +0 -72
  201. package/dist/libdef/registry.d.ts +0 -1
  202. package/dist/libdef/registry.js +1 -24
  203. package/dist/library/catalog.d.ts +35 -0
  204. package/dist/library/catalog.js +67 -0
  205. package/dist/library/cli.d.ts +2 -0
  206. package/dist/library/cli.js +168 -0
  207. package/dist/library/init.d.ts +25 -0
  208. package/dist/library/init.js +397 -0
  209. package/dist/library/install.d.ts +9 -0
  210. package/dist/library/install.js +80 -0
  211. package/dist/library/registry-search.d.ts +34 -0
  212. package/dist/library/registry-search.js +50 -0
  213. package/dist/library/validate.d.ts +17 -0
  214. package/dist/library/validate.js +175 -0
  215. package/dist/library-packages.d.ts +95 -0
  216. package/dist/library-packages.js +275 -0
  217. package/dist/mapping/peripheral-names.js +9 -4
  218. package/dist/mapping/source-map.d.ts +3 -4
  219. package/dist/mapping/source-map.js +12 -18
  220. package/dist/orchestrator/graph-builder.d.ts +3 -3
  221. package/dist/orchestrator/graph-builder.js +29 -12
  222. package/dist/orchestrator/type-checker.d.ts +3 -3
  223. package/dist/orchestrator/type-checker.js +3 -3
  224. package/dist/platform/async-runtime.js +1 -1
  225. package/dist/platform/coop-scheduler-runtime.js +2 -2
  226. package/dist/platform/generic-debug-codegen.d.ts +36 -0
  227. package/dist/platform/generic-debug-codegen.js +185 -0
  228. package/dist/platform/generic-strategy.d.ts +3 -4
  229. package/dist/platform/generic-strategy.js +5 -80
  230. package/dist/platform/index.js +1 -1
  231. package/dist/platform/registry.d.ts +2 -2
  232. package/dist/platform/registry.js +2 -2
  233. package/dist/preview/client.js +17 -3
  234. package/dist/safety/asil-decorators.d.ts +32 -0
  235. package/dist/safety/asil-decorators.js +32 -0
  236. package/dist/safety/authoring.d.ts +85 -0
  237. package/dist/safety/authoring.js +61 -0
  238. package/dist/safety/engine.d.ts +3 -0
  239. package/dist/safety/engine.js +83 -0
  240. package/dist/safety/hal/ops.d.ts +48 -0
  241. package/dist/safety/hal/ops.js +46 -0
  242. package/dist/safety/iso26262/analyze.d.ts +13 -0
  243. package/dist/safety/iso26262/analyze.js +29 -0
  244. package/dist/safety/iso26262/asil.d.ts +10 -0
  245. package/dist/safety/iso26262/asil.js +22 -0
  246. package/dist/safety/iso26262/collect.d.ts +14 -0
  247. package/dist/safety/iso26262/collect.js +137 -0
  248. package/dist/safety/iso26262/goto-checker.d.ts +10 -0
  249. package/dist/safety/iso26262/goto-checker.js +72 -0
  250. package/dist/safety/iso26262/heap-checker.d.ts +7 -0
  251. package/dist/safety/iso26262/heap-checker.js +57 -0
  252. package/dist/safety/iso26262/init-checker.d.ts +13 -0
  253. package/dist/safety/iso26262/init-checker.js +127 -0
  254. package/dist/safety/iso26262/loop-checker.d.ts +7 -0
  255. package/dist/safety/iso26262/loop-checker.js +86 -0
  256. package/dist/safety/iso26262/recursion-checker.d.ts +9 -0
  257. package/dist/safety/iso26262/recursion-checker.js +134 -0
  258. package/dist/safety/iso26262/sidecar-writer.d.ts +25 -0
  259. package/dist/safety/iso26262/sidecar-writer.js +13 -0
  260. package/dist/safety/passes/pinMode-intercept.d.ts +3 -0
  261. package/dist/safety/passes/pinMode-intercept.js +60 -0
  262. package/dist/safety/runtime/mode-table.d.ts +5 -0
  263. package/dist/safety/runtime/mode-table.js +55 -0
  264. package/dist/safety/runtime/polyfills.d.ts +6 -0
  265. package/dist/safety/runtime/polyfills.js +12 -0
  266. package/dist/safety/runtime/result-struct.d.ts +11 -0
  267. package/dist/safety/runtime/result-struct.js +98 -0
  268. package/dist/safety/runtime/safe-int.d.ts +33 -0
  269. package/dist/safety/runtime/safe-int.js +170 -0
  270. package/dist/safety/runtime/safe-traits.d.ts +4 -0
  271. package/dist/safety/runtime/safe-traits.js +95 -0
  272. package/dist/safety/runtime/safe-variable.d.ts +39 -0
  273. package/dist/safety/runtime/safe-variable.js +226 -0
  274. package/dist/safety/runtime/vote.d.ts +8 -0
  275. package/dist/safety/runtime/vote.js +92 -0
  276. package/dist/safety/runtime/write-verify.d.ts +8 -0
  277. package/dist/safety/runtime/write-verify.js +71 -0
  278. package/dist/safety/safe-int-types.d.ts +45 -0
  279. package/dist/safety/safe-int-types.js +25 -0
  280. package/dist/safety/safe-variable-types.d.ts +29 -0
  281. package/dist/safety/safe-variable-types.js +19 -0
  282. package/dist/safety/safety-bridge.d.ts +5 -6
  283. package/dist/safety/safety-bridge.js +15 -28
  284. package/dist/safety/sidecar-bridge.d.ts +1 -3
  285. package/dist/safety/sidecar-bridge.js +3 -20
  286. package/dist/safety/specifiers.d.ts +6 -0
  287. package/dist/safety/specifiers.js +14 -0
  288. package/dist/safety-hook.d.ts +8 -7
  289. package/dist/safety-hook.js +12 -13
  290. package/dist/testing.d.ts +5 -6
  291. package/dist/testing.js +5 -5
  292. package/dist/transpile/resolution.d.ts +1 -1
  293. package/dist/transpile/resolution.js +18 -9
  294. package/dist/transpile/test-pins.d.ts +18 -0
  295. package/dist/transpile/test-pins.js +142 -0
  296. package/dist/transpile.d.ts +1 -2
  297. package/dist/transpile.js +90 -29
  298. package/dist/types.d.ts +45 -26
  299. package/dist/ui-hook.d.ts +1 -1
  300. package/dist/utils/cli.d.ts +2 -2
  301. package/dist/utils/cli.js +160 -157
  302. package/dist/utils/fs.d.ts +3 -4
  303. package/dist/utils/fs.js +4 -5
  304. package/dist/utils/strings.d.ts +0 -1
  305. package/dist/utils/strings.js +0 -8
  306. package/dist/utils/ui.d.ts +5 -2
  307. package/dist/utils/ui.js +13 -3
  308. package/package.json +158 -149
  309. package/dist/add-preset.d.ts +0 -4
  310. package/dist/add-preset.js +0 -74
  311. package/dist/api/shared/async-symbol-detector.d.ts +0 -11
  312. package/dist/api/shared/async-symbol-detector.js +0 -140
  313. package/dist/api/shared/native-display-op-resolver.d.ts +0 -10
  314. package/dist/api/shared/native-display-op-resolver.js +0 -64
  315. package/dist/create/board-checklist.d.ts +0 -2
  316. package/dist/create/board-checklist.js +0 -52
  317. package/dist/create/board-codegen.d.ts +0 -9
  318. package/dist/create/board-codegen.js +0 -238
  319. package/dist/create/board-generators.d.ts +0 -12
  320. package/dist/create/board-generators.js +0 -651
  321. package/dist/create/board-spec.d.ts +0 -637
  322. package/dist/create/board-spec.js +0 -214
  323. package/dist/create/init-templates.d.ts +0 -28
  324. package/dist/create/init-wizard.d.ts +0 -8
  325. package/dist/create/init-wizard.js +0 -182
  326. package/dist/install/framework-catalog.d.ts +0 -53
  327. package/dist/install/framework-catalog.js +0 -107
  328. package/dist/install/handle-install.d.ts +0 -35
  329. package/dist/install/handle-install.js +0 -177
  330. package/dist/install/index.d.ts +0 -4
  331. package/dist/install/index.js +0 -3
  332. package/dist/ir/pin-state-tracking.d.ts +0 -58
  333. package/dist/ir/pin-state-tracking.js +0 -182
  334. package/dist/ir/pwm-timer-sharing.d.ts +0 -4
  335. package/dist/ir/pwm-timer-sharing.js +0 -94
  336. package/dist/ir/timer0-pwm-timing-conflict.d.ts +0 -4
  337. package/dist/ir/timer0-pwm-timing-conflict.js +0 -72
  338. package/dist/libdef/component-decls.d.ts +0 -2
  339. package/dist/libdef/component-decls.js +0 -6
  340. package/dist/libdef/component-discovery.d.ts +0 -43
  341. package/dist/libdef/component-discovery.js +0 -83
  342. package/dist/theme-tokens.d.ts +0 -22
  343. package/dist/theme-tokens.js +0 -172
@@ -1,637 +0,0 @@
1
- import { z } from 'zod';
2
- export declare function stripJsonc(text: string): string;
3
- export declare const BoardSpecSchema: z.ZodObject<{
4
- architecture: z.ZodString;
5
- mcuId: z.ZodString;
6
- mcuName: z.ZodString;
7
- boardId: z.ZodString;
8
- boardName: z.ZodString;
9
- vendor: z.ZodString;
10
- description: z.ZodOptional<z.ZodString>;
11
- clockSpeed: z.ZodNumber;
12
- fqbn: z.ZodString;
13
- arduinoDefine: z.ZodString;
14
- moduleFlash: z.ZodNullable<z.ZodNumber>;
15
- externalRam: z.ZodNullable<z.ZodNumber>;
16
- gpioRange: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
17
- excludedGpio: z.ZodArray<z.ZodNumber, "many">;
18
- pins: z.ZodArray<z.ZodObject<{
19
- gpio: z.ZodNumber;
20
- capabilities: z.ZodEnum<["FULL_GPIO", "FULL_GPIO_ANALOG", "FULL_GPIO_TOUCH", "FULL_GPIO_ANALOG_TOUCH", "FULL_GPIO_DAC", "INPUT_ONLY"]>;
21
- functions: z.ZodOptional<z.ZodArray<z.ZodObject<{
22
- type: z.ZodEnum<["i2c", "spi", "uart", "adc", "dac", "pwm", "touch", "usb"]>;
23
- instance: z.ZodNumber;
24
- role: z.ZodString;
25
- }, "strict", z.ZodTypeAny, {
26
- type: "i2c" | "spi" | "uart" | "adc" | "dac" | "pwm" | "touch" | "usb";
27
- instance: number;
28
- role: string;
29
- }, {
30
- type: "i2c" | "spi" | "uart" | "adc" | "dac" | "pwm" | "touch" | "usb";
31
- instance: number;
32
- role: string;
33
- }>, "many">>;
34
- alt: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
35
- warnings: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
36
- unsafe: z.ZodOptional<z.ZodBoolean>;
37
- notes: z.ZodOptional<z.ZodString>;
38
- onboardLed: z.ZodOptional<z.ZodBoolean>;
39
- }, "strict", z.ZodTypeAny, {
40
- gpio: number;
41
- capabilities: "FULL_GPIO" | "FULL_GPIO_ANALOG" | "FULL_GPIO_TOUCH" | "FULL_GPIO_ANALOG_TOUCH" | "FULL_GPIO_DAC" | "INPUT_ONLY";
42
- functions?: {
43
- type: "i2c" | "spi" | "uart" | "adc" | "dac" | "pwm" | "touch" | "usb";
44
- instance: number;
45
- role: string;
46
- }[] | undefined;
47
- notes?: string | undefined;
48
- alt?: string[] | undefined;
49
- warnings?: string[] | undefined;
50
- unsafe?: boolean | undefined;
51
- onboardLed?: boolean | undefined;
52
- }, {
53
- gpio: number;
54
- capabilities: "FULL_GPIO" | "FULL_GPIO_ANALOG" | "FULL_GPIO_TOUCH" | "FULL_GPIO_ANALOG_TOUCH" | "FULL_GPIO_DAC" | "INPUT_ONLY";
55
- functions?: {
56
- type: "i2c" | "spi" | "uart" | "adc" | "dac" | "pwm" | "touch" | "usb";
57
- instance: number;
58
- role: string;
59
- }[] | undefined;
60
- notes?: string | undefined;
61
- alt?: string[] | undefined;
62
- warnings?: string[] | undefined;
63
- unsafe?: boolean | undefined;
64
- onboardLed?: boolean | undefined;
65
- }>, "many">;
66
- unsafe: z.ZodArray<z.ZodString, "many">;
67
- analog: z.ZodArray<z.ZodString, "many">;
68
- i2c: z.ZodRecord<z.ZodString, z.ZodObject<{
69
- sda: z.ZodOptional<z.ZodString>;
70
- scl: z.ZodOptional<z.ZodString>;
71
- mosi: z.ZodOptional<z.ZodString>;
72
- miso: z.ZodOptional<z.ZodString>;
73
- sck: z.ZodOptional<z.ZodString>;
74
- cs: z.ZodOptional<z.ZodString>;
75
- tx: z.ZodOptional<z.ZodString>;
76
- rx: z.ZodOptional<z.ZodString>;
77
- }, "strict", z.ZodTypeAny, {
78
- cs?: string | undefined;
79
- mosi?: string | undefined;
80
- sck?: string | undefined;
81
- miso?: string | undefined;
82
- sda?: string | undefined;
83
- scl?: string | undefined;
84
- tx?: string | undefined;
85
- rx?: string | undefined;
86
- }, {
87
- cs?: string | undefined;
88
- mosi?: string | undefined;
89
- sck?: string | undefined;
90
- miso?: string | undefined;
91
- sda?: string | undefined;
92
- scl?: string | undefined;
93
- tx?: string | undefined;
94
- rx?: string | undefined;
95
- }>>;
96
- spi: z.ZodRecord<z.ZodString, z.ZodObject<{
97
- sda: z.ZodOptional<z.ZodString>;
98
- scl: z.ZodOptional<z.ZodString>;
99
- mosi: z.ZodOptional<z.ZodString>;
100
- miso: z.ZodOptional<z.ZodString>;
101
- sck: z.ZodOptional<z.ZodString>;
102
- cs: z.ZodOptional<z.ZodString>;
103
- tx: z.ZodOptional<z.ZodString>;
104
- rx: z.ZodOptional<z.ZodString>;
105
- }, "strict", z.ZodTypeAny, {
106
- cs?: string | undefined;
107
- mosi?: string | undefined;
108
- sck?: string | undefined;
109
- miso?: string | undefined;
110
- sda?: string | undefined;
111
- scl?: string | undefined;
112
- tx?: string | undefined;
113
- rx?: string | undefined;
114
- }, {
115
- cs?: string | undefined;
116
- mosi?: string | undefined;
117
- sck?: string | undefined;
118
- miso?: string | undefined;
119
- sda?: string | undefined;
120
- scl?: string | undefined;
121
- tx?: string | undefined;
122
- rx?: string | undefined;
123
- }>>;
124
- uart: z.ZodRecord<z.ZodString, z.ZodObject<{
125
- sda: z.ZodOptional<z.ZodString>;
126
- scl: z.ZodOptional<z.ZodString>;
127
- mosi: z.ZodOptional<z.ZodString>;
128
- miso: z.ZodOptional<z.ZodString>;
129
- sck: z.ZodOptional<z.ZodString>;
130
- cs: z.ZodOptional<z.ZodString>;
131
- tx: z.ZodOptional<z.ZodString>;
132
- rx: z.ZodOptional<z.ZodString>;
133
- }, "strict", z.ZodTypeAny, {
134
- cs?: string | undefined;
135
- mosi?: string | undefined;
136
- sck?: string | undefined;
137
- miso?: string | undefined;
138
- sda?: string | undefined;
139
- scl?: string | undefined;
140
- tx?: string | undefined;
141
- rx?: string | undefined;
142
- }, {
143
- cs?: string | undefined;
144
- mosi?: string | undefined;
145
- sck?: string | undefined;
146
- miso?: string | undefined;
147
- sda?: string | undefined;
148
- scl?: string | undefined;
149
- tx?: string | undefined;
150
- rx?: string | undefined;
151
- }>>;
152
- peripheralInstances: z.ZodObject<{
153
- i2c: z.ZodArray<z.ZodObject<{
154
- instance: z.ZodNumber;
155
- defaultPins: z.ZodRecord<z.ZodString, z.ZodString>;
156
- alternatePins: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>>;
157
- }, "strict", z.ZodTypeAny, {
158
- instance: number;
159
- defaultPins: Record<string, string>;
160
- alternatePins?: Record<string, string[]> | undefined;
161
- }, {
162
- instance: number;
163
- defaultPins: Record<string, string>;
164
- alternatePins?: Record<string, string[]> | undefined;
165
- }>, "many">;
166
- spi: z.ZodArray<z.ZodObject<{
167
- instance: z.ZodNumber;
168
- defaultPins: z.ZodRecord<z.ZodString, z.ZodString>;
169
- alternatePins: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>>;
170
- }, "strict", z.ZodTypeAny, {
171
- instance: number;
172
- defaultPins: Record<string, string>;
173
- alternatePins?: Record<string, string[]> | undefined;
174
- }, {
175
- instance: number;
176
- defaultPins: Record<string, string>;
177
- alternatePins?: Record<string, string[]> | undefined;
178
- }>, "many">;
179
- uart: z.ZodArray<z.ZodObject<{
180
- instance: z.ZodNumber;
181
- defaultPins: z.ZodRecord<z.ZodString, z.ZodString>;
182
- alternatePins: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>>;
183
- }, "strict", z.ZodTypeAny, {
184
- instance: number;
185
- defaultPins: Record<string, string>;
186
- alternatePins?: Record<string, string[]> | undefined;
187
- }, {
188
- instance: number;
189
- defaultPins: Record<string, string>;
190
- alternatePins?: Record<string, string[]> | undefined;
191
- }>, "many">;
192
- }, "strict", z.ZodTypeAny, {
193
- i2c: {
194
- instance: number;
195
- defaultPins: Record<string, string>;
196
- alternatePins?: Record<string, string[]> | undefined;
197
- }[];
198
- spi: {
199
- instance: number;
200
- defaultPins: Record<string, string>;
201
- alternatePins?: Record<string, string[]> | undefined;
202
- }[];
203
- uart: {
204
- instance: number;
205
- defaultPins: Record<string, string>;
206
- alternatePins?: Record<string, string[]> | undefined;
207
- }[];
208
- }, {
209
- i2c: {
210
- instance: number;
211
- defaultPins: Record<string, string>;
212
- alternatePins?: Record<string, string[]> | undefined;
213
- }[];
214
- spi: {
215
- instance: number;
216
- defaultPins: Record<string, string>;
217
- alternatePins?: Record<string, string[]> | undefined;
218
- }[];
219
- uart: {
220
- instance: number;
221
- defaultPins: Record<string, string>;
222
- alternatePins?: Record<string, string[]> | undefined;
223
- }[];
224
- }>;
225
- adc: z.ZodArray<z.ZodObject<{
226
- instance: z.ZodNumber;
227
- channels: z.ZodNumber;
228
- resolution: z.ZodNumber;
229
- referenceVoltage: z.ZodNumber;
230
- maxValue: z.ZodNumber;
231
- referenceVoltages: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
232
- }, "strict", z.ZodTypeAny, {
233
- maxValue: number;
234
- instance: number;
235
- channels: number;
236
- resolution: number;
237
- referenceVoltage: number;
238
- referenceVoltages?: Record<string, number> | undefined;
239
- }, {
240
- maxValue: number;
241
- instance: number;
242
- channels: number;
243
- resolution: number;
244
- referenceVoltage: number;
245
- referenceVoltages?: Record<string, number> | undefined;
246
- }>, "many">;
247
- pwm: z.ZodObject<{
248
- channels: z.ZodNumber;
249
- resolution: z.ZodNumber;
250
- maxFrequency: z.ZodNumber;
251
- }, "strict", z.ZodTypeAny, {
252
- channels: number;
253
- resolution: number;
254
- maxFrequency: number;
255
- }, {
256
- channels: number;
257
- resolution: number;
258
- maxFrequency: number;
259
- }>;
260
- touch: z.ZodOptional<z.ZodNullable<z.ZodObject<{
261
- channels: z.ZodNumber;
262
- pins: z.ZodArray<z.ZodString, "many">;
263
- }, "strip", z.ZodTypeAny, {
264
- pins: string[];
265
- channels: number;
266
- }, {
267
- pins: string[];
268
- channels: number;
269
- }>>>;
270
- timers: z.ZodArray<z.ZodObject<{
271
- instance: z.ZodNumber;
272
- type: z.ZodEnum<["general", "high_speed", "rtc", "sys"]>;
273
- bits: z.ZodUnion<[z.ZodLiteral<8>, z.ZodLiteral<16>, z.ZodLiteral<32>, z.ZodLiteral<64>]>;
274
- features: z.ZodOptional<z.ZodArray<z.ZodEnum<["pwm", "capture", "compare", "interrupt", "dma"]>, "many">>;
275
- }, "strict", z.ZodTypeAny, {
276
- bits: 8 | 16 | 32 | 64;
277
- type: "general" | "high_speed" | "rtc" | "sys";
278
- instance: number;
279
- features?: ("pwm" | "capture" | "compare" | "interrupt" | "dma")[] | undefined;
280
- }, {
281
- bits: 8 | 16 | 32 | 64;
282
- type: "general" | "high_speed" | "rtc" | "sys";
283
- instance: number;
284
- features?: ("pwm" | "capture" | "compare" | "interrupt" | "dma")[] | undefined;
285
- }>, "many">;
286
- wifi: z.ZodObject<{
287
- type: z.ZodEnum<["wifi", "wifi6"]>;
288
- supportsStation: z.ZodBoolean;
289
- supportsAp: z.ZodBoolean;
290
- }, "strict", z.ZodTypeAny, {
291
- type: "wifi" | "wifi6";
292
- supportsStation: boolean;
293
- supportsAp: boolean;
294
- }, {
295
- type: "wifi" | "wifi6";
296
- supportsStation: boolean;
297
- supportsAp: boolean;
298
- }>;
299
- bluetooth: z.ZodObject<{
300
- type: z.ZodEnum<["classic", "ble", "dual"]>;
301
- version: z.ZodString;
302
- }, "strict", z.ZodTypeAny, {
303
- type: "classic" | "ble" | "dual";
304
- version: string;
305
- }, {
306
- type: "classic" | "ble" | "dual";
307
- version: string;
308
- }>;
309
- usb: z.ZodObject<{
310
- type: z.ZodEnum<["device", "host", "otg"]>;
311
- vid: z.ZodString;
312
- pid: z.ZodString;
313
- }, "strict", z.ZodTypeAny, {
314
- type: "device" | "host" | "otg";
315
- vid: string;
316
- pid: string;
317
- }, {
318
- type: "device" | "host" | "otg";
319
- vid: string;
320
- pid: string;
321
- }>;
322
- features: z.ZodObject<{
323
- multicore: z.ZodBoolean;
324
- coreCount: z.ZodNumber;
325
- deepSleep: z.ZodBoolean;
326
- watchdog: z.ZodBoolean;
327
- externalInterrupts: z.ZodBoolean;
328
- hardwareRng: z.ZodBoolean;
329
- fpu: z.ZodBoolean;
330
- }, "strict", z.ZodTypeAny, {
331
- multicore: boolean;
332
- coreCount: number;
333
- deepSleep: boolean;
334
- watchdog: boolean;
335
- externalInterrupts: boolean;
336
- hardwareRng: boolean;
337
- fpu: boolean;
338
- }, {
339
- multicore: boolean;
340
- coreCount: number;
341
- deepSleep: boolean;
342
- watchdog: boolean;
343
- externalInterrupts: boolean;
344
- hardwareRng: boolean;
345
- fpu: boolean;
346
- }>;
347
- memory: z.ZodObject<{
348
- flash: z.ZodNumber;
349
- sram: z.ZodNumber;
350
- eeprom: z.ZodNumber;
351
- externalRam: z.ZodOptional<z.ZodNumber>;
352
- rtcMemory: z.ZodOptional<z.ZodNumber>;
353
- }, "strict", z.ZodTypeAny, {
354
- flash: number;
355
- sram: number;
356
- eeprom: number;
357
- externalRam?: number | undefined;
358
- rtcMemory?: number | undefined;
359
- }, {
360
- flash: number;
361
- sram: number;
362
- eeprom: number;
363
- externalRam?: number | undefined;
364
- rtcMemory?: number | undefined;
365
- }>;
366
- }, "strict", z.ZodTypeAny, {
367
- architecture: string;
368
- i2c: Record<string, {
369
- cs?: string | undefined;
370
- mosi?: string | undefined;
371
- sck?: string | undefined;
372
- miso?: string | undefined;
373
- sda?: string | undefined;
374
- scl?: string | undefined;
375
- tx?: string | undefined;
376
- rx?: string | undefined;
377
- }>;
378
- spi: Record<string, {
379
- cs?: string | undefined;
380
- mosi?: string | undefined;
381
- sck?: string | undefined;
382
- miso?: string | undefined;
383
- sda?: string | undefined;
384
- scl?: string | undefined;
385
- tx?: string | undefined;
386
- rx?: string | undefined;
387
- }>;
388
- uart: Record<string, {
389
- cs?: string | undefined;
390
- mosi?: string | undefined;
391
- sck?: string | undefined;
392
- miso?: string | undefined;
393
- sda?: string | undefined;
394
- scl?: string | undefined;
395
- tx?: string | undefined;
396
- rx?: string | undefined;
397
- }>;
398
- adc: {
399
- maxValue: number;
400
- instance: number;
401
- channels: number;
402
- resolution: number;
403
- referenceVoltage: number;
404
- referenceVoltages?: Record<string, number> | undefined;
405
- }[];
406
- pwm: {
407
- channels: number;
408
- resolution: number;
409
- maxFrequency: number;
410
- };
411
- usb: {
412
- type: "device" | "host" | "otg";
413
- vid: string;
414
- pid: string;
415
- };
416
- wifi: {
417
- type: "wifi" | "wifi6";
418
- supportsStation: boolean;
419
- supportsAp: boolean;
420
- };
421
- mcuId: string;
422
- mcuName: string;
423
- boardId: string;
424
- boardName: string;
425
- vendor: string;
426
- clockSpeed: number;
427
- fqbn: string;
428
- arduinoDefine: string;
429
- moduleFlash: number | null;
430
- externalRam: number | null;
431
- gpioRange: [number, number];
432
- excludedGpio: number[];
433
- pins: {
434
- gpio: number;
435
- capabilities: "FULL_GPIO" | "FULL_GPIO_ANALOG" | "FULL_GPIO_TOUCH" | "FULL_GPIO_ANALOG_TOUCH" | "FULL_GPIO_DAC" | "INPUT_ONLY";
436
- functions?: {
437
- type: "i2c" | "spi" | "uart" | "adc" | "dac" | "pwm" | "touch" | "usb";
438
- instance: number;
439
- role: string;
440
- }[] | undefined;
441
- notes?: string | undefined;
442
- alt?: string[] | undefined;
443
- warnings?: string[] | undefined;
444
- unsafe?: boolean | undefined;
445
- onboardLed?: boolean | undefined;
446
- }[];
447
- unsafe: string[];
448
- analog: string[];
449
- peripheralInstances: {
450
- i2c: {
451
- instance: number;
452
- defaultPins: Record<string, string>;
453
- alternatePins?: Record<string, string[]> | undefined;
454
- }[];
455
- spi: {
456
- instance: number;
457
- defaultPins: Record<string, string>;
458
- alternatePins?: Record<string, string[]> | undefined;
459
- }[];
460
- uart: {
461
- instance: number;
462
- defaultPins: Record<string, string>;
463
- alternatePins?: Record<string, string[]> | undefined;
464
- }[];
465
- };
466
- timers: {
467
- bits: 8 | 16 | 32 | 64;
468
- type: "general" | "high_speed" | "rtc" | "sys";
469
- instance: number;
470
- features?: ("pwm" | "capture" | "compare" | "interrupt" | "dma")[] | undefined;
471
- }[];
472
- features: {
473
- multicore: boolean;
474
- coreCount: number;
475
- deepSleep: boolean;
476
- watchdog: boolean;
477
- externalInterrupts: boolean;
478
- hardwareRng: boolean;
479
- fpu: boolean;
480
- };
481
- bluetooth: {
482
- type: "classic" | "ble" | "dual";
483
- version: string;
484
- };
485
- memory: {
486
- flash: number;
487
- sram: number;
488
- eeprom: number;
489
- externalRam?: number | undefined;
490
- rtcMemory?: number | undefined;
491
- };
492
- touch?: {
493
- pins: string[];
494
- channels: number;
495
- } | null | undefined;
496
- description?: string | undefined;
497
- }, {
498
- architecture: string;
499
- i2c: Record<string, {
500
- cs?: string | undefined;
501
- mosi?: string | undefined;
502
- sck?: string | undefined;
503
- miso?: string | undefined;
504
- sda?: string | undefined;
505
- scl?: string | undefined;
506
- tx?: string | undefined;
507
- rx?: string | undefined;
508
- }>;
509
- spi: Record<string, {
510
- cs?: string | undefined;
511
- mosi?: string | undefined;
512
- sck?: string | undefined;
513
- miso?: string | undefined;
514
- sda?: string | undefined;
515
- scl?: string | undefined;
516
- tx?: string | undefined;
517
- rx?: string | undefined;
518
- }>;
519
- uart: Record<string, {
520
- cs?: string | undefined;
521
- mosi?: string | undefined;
522
- sck?: string | undefined;
523
- miso?: string | undefined;
524
- sda?: string | undefined;
525
- scl?: string | undefined;
526
- tx?: string | undefined;
527
- rx?: string | undefined;
528
- }>;
529
- adc: {
530
- maxValue: number;
531
- instance: number;
532
- channels: number;
533
- resolution: number;
534
- referenceVoltage: number;
535
- referenceVoltages?: Record<string, number> | undefined;
536
- }[];
537
- pwm: {
538
- channels: number;
539
- resolution: number;
540
- maxFrequency: number;
541
- };
542
- usb: {
543
- type: "device" | "host" | "otg";
544
- vid: string;
545
- pid: string;
546
- };
547
- wifi: {
548
- type: "wifi" | "wifi6";
549
- supportsStation: boolean;
550
- supportsAp: boolean;
551
- };
552
- mcuId: string;
553
- mcuName: string;
554
- boardId: string;
555
- boardName: string;
556
- vendor: string;
557
- clockSpeed: number;
558
- fqbn: string;
559
- arduinoDefine: string;
560
- moduleFlash: number | null;
561
- externalRam: number | null;
562
- gpioRange: [number, number];
563
- excludedGpio: number[];
564
- pins: {
565
- gpio: number;
566
- capabilities: "FULL_GPIO" | "FULL_GPIO_ANALOG" | "FULL_GPIO_TOUCH" | "FULL_GPIO_ANALOG_TOUCH" | "FULL_GPIO_DAC" | "INPUT_ONLY";
567
- functions?: {
568
- type: "i2c" | "spi" | "uart" | "adc" | "dac" | "pwm" | "touch" | "usb";
569
- instance: number;
570
- role: string;
571
- }[] | undefined;
572
- notes?: string | undefined;
573
- alt?: string[] | undefined;
574
- warnings?: string[] | undefined;
575
- unsafe?: boolean | undefined;
576
- onboardLed?: boolean | undefined;
577
- }[];
578
- unsafe: string[];
579
- analog: string[];
580
- peripheralInstances: {
581
- i2c: {
582
- instance: number;
583
- defaultPins: Record<string, string>;
584
- alternatePins?: Record<string, string[]> | undefined;
585
- }[];
586
- spi: {
587
- instance: number;
588
- defaultPins: Record<string, string>;
589
- alternatePins?: Record<string, string[]> | undefined;
590
- }[];
591
- uart: {
592
- instance: number;
593
- defaultPins: Record<string, string>;
594
- alternatePins?: Record<string, string[]> | undefined;
595
- }[];
596
- };
597
- timers: {
598
- bits: 8 | 16 | 32 | 64;
599
- type: "general" | "high_speed" | "rtc" | "sys";
600
- instance: number;
601
- features?: ("pwm" | "capture" | "compare" | "interrupt" | "dma")[] | undefined;
602
- }[];
603
- features: {
604
- multicore: boolean;
605
- coreCount: number;
606
- deepSleep: boolean;
607
- watchdog: boolean;
608
- externalInterrupts: boolean;
609
- hardwareRng: boolean;
610
- fpu: boolean;
611
- };
612
- bluetooth: {
613
- type: "classic" | "ble" | "dual";
614
- version: string;
615
- };
616
- memory: {
617
- flash: number;
618
- sram: number;
619
- eeprom: number;
620
- externalRam?: number | undefined;
621
- rtcMemory?: number | undefined;
622
- };
623
- touch?: {
624
- pins: string[];
625
- channels: number;
626
- } | null | undefined;
627
- description?: string | undefined;
628
- }>;
629
- export type BoardSpec = z.infer<typeof BoardSpecSchema>;
630
- export declare function parseBoardSpec(jsoncText: string): BoardSpec;
631
- export declare function safeParseBoardSpec(jsoncText: string): {
632
- success: true;
633
- spec: BoardSpec;
634
- } | {
635
- success: false;
636
- errors: string[];
637
- };