@vitos-pizza/vitos-pizza 0.2.0 → 0.3.0

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 (924) hide show
  1. package/AGENTS.md +6 -4
  2. package/CHANGELOG.md +13 -0
  3. package/README.md +3 -3
  4. package/package.json +17 -13
  5. package/packages/agent-mode/extensions/index.ts +12 -10
  6. package/packages/agent-mode/package.json +5 -4
  7. package/packages/agent-mode/src/plan-instructions.ts +7 -3
  8. package/packages/keybindings/extensions/index.ts +14 -6
  9. package/packages/keybindings/package.json +1 -1
  10. package/packages/keybindings/presets/shortcuts.json +1 -1
  11. package/packages/permission-system/package.json +2 -2
  12. package/packages/question/package.json +1 -1
  13. package/packages/session-title/package.json +3 -3
  14. package/packages/settings-preset/extensions/index.ts +53 -0
  15. package/packages/settings-preset/package.json +19 -0
  16. package/packages/settings-preset/presets/settings.json +15 -0
  17. package/packages/settings-preset/tsconfig.json +11 -0
  18. package/packages/subagents/agents/scout.md +3 -2
  19. package/packages/subagents/package.json +1 -1
  20. package/packages/subagents/skills/subagents/SKILL.md +4 -4
  21. package/packages/todoist/package.json +1 -1
  22. package/packages/ui-enhancements/package.json +1 -1
  23. package/packages/ui-enhancements/src/chrome/border-status.ts +76 -3
  24. package/packages/ui-enhancements/src/chrome/execute-prompt.ts +83 -0
  25. package/packages/websearch/package.json +1 -1
  26. package/scripts/sync-pi-manifest.mjs +1 -1
  27. package/node_modules/@vitos-pizza/agent-mode/extensions/index.ts +0 -138
  28. package/node_modules/@vitos-pizza/agent-mode/package.json +0 -31
  29. package/node_modules/@vitos-pizza/agent-mode/src/apply-mode.ts +0 -60
  30. package/node_modules/@vitos-pizza/agent-mode/src/mode-events.ts +0 -102
  31. package/node_modules/@vitos-pizza/agent-mode/src/modes.ts +0 -43
  32. package/node_modules/@vitos-pizza/agent-mode/src/plan-instructions.ts +0 -85
  33. package/node_modules/@vitos-pizza/agent-mode/tests/apply-mode.test.ts +0 -36
  34. package/node_modules/@vitos-pizza/agent-mode/tests/mode-events.test.ts +0 -22
  35. package/node_modules/@vitos-pizza/agent-mode/tests/modes.test.ts +0 -38
  36. package/node_modules/@vitos-pizza/agent-mode/tests/plan-instructions.test.ts +0 -68
  37. package/node_modules/@vitos-pizza/agent-mode/tsconfig.json +0 -13
  38. package/node_modules/@vitos-pizza/agent-mode/vitest.config.ts +0 -8
  39. package/node_modules/@vitos-pizza/keybindings/extensions/index.ts +0 -104
  40. package/node_modules/@vitos-pizza/keybindings/package.json +0 -26
  41. package/node_modules/@vitos-pizza/keybindings/presets/shortcuts.json +0 -3
  42. package/node_modules/@vitos-pizza/keybindings/src/bind.ts +0 -57
  43. package/node_modules/@vitos-pizza/keybindings/src/config.ts +0 -84
  44. package/node_modules/@vitos-pizza/keybindings/src/registry.ts +0 -43
  45. package/node_modules/@vitos-pizza/keybindings/src/types.ts +0 -54
  46. package/node_modules/@vitos-pizza/keybindings/tests/config.test.ts +0 -83
  47. package/node_modules/@vitos-pizza/keybindings/tests/registry.test.ts +0 -142
  48. package/node_modules/@vitos-pizza/keybindings/tsconfig.json +0 -13
  49. package/node_modules/@vitos-pizza/keybindings/vitest.config.ts +0 -8
  50. package/node_modules/@vitos-pizza/permission-system/extensions/index.ts +0 -162
  51. package/node_modules/@vitos-pizza/permission-system/package.json +0 -34
  52. package/node_modules/@vitos-pizza/permission-system/presets/default.json +0 -36
  53. package/node_modules/@vitos-pizza/permission-system/presets/plan.json +0 -25
  54. package/node_modules/@vitos-pizza/permission-system/presets/yolo.json +0 -15
  55. package/node_modules/@vitos-pizza/permission-system/src/bash/matcher.ts +0 -54
  56. package/node_modules/@vitos-pizza/permission-system/src/bash/parser.ts +0 -40
  57. package/node_modules/@vitos-pizza/permission-system/src/config-paths.ts +0 -23
  58. package/node_modules/@vitos-pizza/permission-system/src/detect-preset-mode.ts +0 -61
  59. package/node_modules/@vitos-pizza/permission-system/src/expand-home.ts +0 -12
  60. package/node_modules/@vitos-pizza/permission-system/src/forwarding/forwarder.ts +0 -224
  61. package/node_modules/@vitos-pizza/permission-system/src/forwarding/subagent-registry.ts +0 -61
  62. package/node_modules/@vitos-pizza/permission-system/src/gates/path-utils.ts +0 -66
  63. package/node_modules/@vitos-pizza/permission-system/src/gates/pipeline.ts +0 -151
  64. package/node_modules/@vitos-pizza/permission-system/src/handlers/before-agent-start.ts +0 -86
  65. package/node_modules/@vitos-pizza/permission-system/src/handlers/skill-input.ts +0 -1
  66. package/node_modules/@vitos-pizza/permission-system/src/handlers/tool-call-gate.ts +0 -204
  67. package/node_modules/@vitos-pizza/permission-system/src/mode-api.ts +0 -44
  68. package/node_modules/@vitos-pizza/permission-system/src/permission-evaluator.ts +0 -233
  69. package/node_modules/@vitos-pizza/permission-system/src/permission-session.ts +0 -62
  70. package/node_modules/@vitos-pizza/permission-system/src/policy-loader.ts +0 -211
  71. package/node_modules/@vitos-pizza/permission-system/src/sanitizers/skill-prompt.ts +0 -99
  72. package/node_modules/@vitos-pizza/permission-system/src/sanitizers/system-prompt.ts +0 -221
  73. package/node_modules/@vitos-pizza/permission-system/src/service.ts +0 -66
  74. package/node_modules/@vitos-pizza/permission-system/src/session-approvals.ts +0 -4
  75. package/node_modules/@vitos-pizza/permission-system/src/types.ts +0 -80
  76. package/node_modules/@vitos-pizza/permission-system/src/ui/approval-summary.ts +0 -43
  77. package/node_modules/@vitos-pizza/permission-system/src/ui/config-modal.ts +0 -36
  78. package/node_modules/@vitos-pizza/permission-system/src/ui/permission-dialog.ts +0 -52
  79. package/node_modules/@vitos-pizza/permission-system/src/wildcard-matcher.ts +0 -81
  80. package/node_modules/@vitos-pizza/permission-system/src/yaml-frontmatter.ts +0 -84
  81. package/node_modules/@vitos-pizza/permission-system/src/yolo/runtime-api.ts +0 -49
  82. package/node_modules/@vitos-pizza/permission-system/tests/bash-parser.test.ts +0 -32
  83. package/node_modules/@vitos-pizza/permission-system/tests/before-agent-start.test.ts +0 -61
  84. package/node_modules/@vitos-pizza/permission-system/tests/detect-preset-mode.test.ts +0 -68
  85. package/node_modules/@vitos-pizza/permission-system/tests/forwarder.test.ts +0 -55
  86. package/node_modules/@vitos-pizza/permission-system/tests/gates.test.ts +0 -170
  87. package/node_modules/@vitos-pizza/permission-system/tests/path-utils.test.ts +0 -68
  88. package/node_modules/@vitos-pizza/permission-system/tests/permission-evaluator.test.ts +0 -82
  89. package/node_modules/@vitos-pizza/permission-system/tests/policy-loader.test.ts +0 -25
  90. package/node_modules/@vitos-pizza/permission-system/tests/system-prompt-sanitizer.test.ts +0 -22
  91. package/node_modules/@vitos-pizza/permission-system/tests/wildcard-matcher.test.ts +0 -27
  92. package/node_modules/@vitos-pizza/permission-system/tsconfig.json +0 -13
  93. package/node_modules/@vitos-pizza/permission-system/vitest.config.ts +0 -8
  94. package/node_modules/@vitos-pizza/question/extensions/index.ts +0 -79
  95. package/node_modules/@vitos-pizza/question/package.json +0 -26
  96. package/node_modules/@vitos-pizza/question/src/forwarding/channels.ts +0 -6
  97. package/node_modules/@vitos-pizza/question/src/forwarding/file-watcher.ts +0 -106
  98. package/node_modules/@vitos-pizza/question/src/forwarding/forwarder.ts +0 -187
  99. package/node_modules/@vitos-pizza/question/src/parent-session.ts +0 -18
  100. package/node_modules/@vitos-pizza/question/src/question-ui.ts +0 -242
  101. package/node_modules/@vitos-pizza/question/src/register-tool.ts +0 -221
  102. package/node_modules/@vitos-pizza/question/src/types.ts +0 -41
  103. package/node_modules/@vitos-pizza/question/tests/forwarder.test.ts +0 -66
  104. package/node_modules/@vitos-pizza/question/tests/parent-session.test.ts +0 -29
  105. package/node_modules/@vitos-pizza/question/tests/question-ui-width-cache.test.ts +0 -45
  106. package/node_modules/@vitos-pizza/question/tests/register-tool-render.test.ts +0 -48
  107. package/node_modules/@vitos-pizza/question/tsconfig.json +0 -13
  108. package/node_modules/@vitos-pizza/question/vitest.config.ts +0 -8
  109. package/node_modules/@vitos-pizza/session-title/extensions/index.ts +0 -137
  110. package/node_modules/@vitos-pizza/session-title/package.json +0 -37
  111. package/node_modules/@vitos-pizza/session-title/src/build-title-prompt.ts +0 -16
  112. package/node_modules/@vitos-pizza/session-title/src/extract-title-context.ts +0 -55
  113. package/node_modules/@vitos-pizza/session-title/src/fast-rules.ts +0 -48
  114. package/node_modules/@vitos-pizza/session-title/src/load-settings.ts +0 -70
  115. package/node_modules/@vitos-pizza/session-title/src/normalize-title.ts +0 -20
  116. package/node_modules/@vitos-pizza/session-title/src/parse-title-response.ts +0 -6
  117. package/node_modules/@vitos-pizza/session-title/src/resolve-title-model.ts +0 -33
  118. package/node_modules/@vitos-pizza/session-title/src/schedule-title-job.ts +0 -53
  119. package/node_modules/@vitos-pizza/session-title/src/should-schedule.ts +0 -30
  120. package/node_modules/@vitos-pizza/session-title/src/title-agent.ts +0 -60
  121. package/node_modules/@vitos-pizza/session-title/src/truncate-input.ts +0 -10
  122. package/node_modules/@vitos-pizza/session-title/src/types.ts +0 -29
  123. package/node_modules/@vitos-pizza/session-title/tests/build-title-prompt.test.ts +0 -34
  124. package/node_modules/@vitos-pizza/session-title/tests/extension.test.ts +0 -198
  125. package/node_modules/@vitos-pizza/session-title/tests/extract-title-context.test.ts +0 -48
  126. package/node_modules/@vitos-pizza/session-title/tests/fast-rules.test.ts +0 -43
  127. package/node_modules/@vitos-pizza/session-title/tests/parse-title-response.test.ts +0 -34
  128. package/node_modules/@vitos-pizza/session-title/tests/should-schedule.test.ts +0 -30
  129. package/node_modules/@vitos-pizza/session-title/tests/title-agent.test.ts +0 -154
  130. package/node_modules/@vitos-pizza/session-title/tests/truncate-input.test.ts +0 -15
  131. package/node_modules/@vitos-pizza/session-title/tsconfig.json +0 -13
  132. package/node_modules/@vitos-pizza/session-title/vitest.config.ts +0 -8
  133. package/node_modules/@vitos-pizza/subagents/agents/planner.md +0 -46
  134. package/node_modules/@vitos-pizza/subagents/agents/scout.md +0 -40
  135. package/node_modules/@vitos-pizza/subagents/agents/title.md +0 -13
  136. package/node_modules/@vitos-pizza/subagents/agents/worker.md +0 -36
  137. package/node_modules/@vitos-pizza/subagents/extensions/index.ts +0 -164
  138. package/node_modules/@vitos-pizza/subagents/package.json +0 -34
  139. package/node_modules/@vitos-pizza/subagents/skills/subagents/SKILL.md +0 -86
  140. package/node_modules/@vitos-pizza/subagents/src/agents.ts +0 -166
  141. package/node_modules/@vitos-pizza/subagents/src/async/job-tracker.ts +0 -71
  142. package/node_modules/@vitos-pizza/subagents/src/async/spawn-async.ts +0 -220
  143. package/node_modules/@vitos-pizza/subagents/src/async/storage.ts +0 -57
  144. package/node_modules/@vitos-pizza/subagents/src/env.ts +0 -4
  145. package/node_modules/@vitos-pizza/subagents/src/execute-subagent.ts +0 -285
  146. package/node_modules/@vitos-pizza/subagents/src/progress.ts +0 -187
  147. package/node_modules/@vitos-pizza/subagents/src/render-animation.ts +0 -40
  148. package/node_modules/@vitos-pizza/subagents/src/render.ts +0 -428
  149. package/node_modules/@vitos-pizza/subagents/src/rpc/channels.ts +0 -21
  150. package/node_modules/@vitos-pizza/subagents/src/rpc/client.ts +0 -144
  151. package/node_modules/@vitos-pizza/subagents/src/rpc/server.ts +0 -11
  152. package/node_modules/@vitos-pizza/subagents/src/run-agent.ts +0 -313
  153. package/node_modules/@vitos-pizza/subagents/src/runtime.ts +0 -102
  154. package/node_modules/@vitos-pizza/subagents/src/schema.ts +0 -62
  155. package/node_modules/@vitos-pizza/subagents/src/spawn.ts +0 -104
  156. package/node_modules/@vitos-pizza/subagents/src/types.ts +0 -92
  157. package/node_modules/@vitos-pizza/subagents/src/utils.ts +0 -100
  158. package/node_modules/@vitos-pizza/subagents/src/wait.ts +0 -159
  159. package/node_modules/@vitos-pizza/subagents/tests/agents.test.ts +0 -19
  160. package/node_modules/@vitos-pizza/subagents/tests/execute-subagent.test.ts +0 -96
  161. package/node_modules/@vitos-pizza/subagents/tests/extension.test.ts +0 -42
  162. package/node_modules/@vitos-pizza/subagents/tests/progress.test.ts +0 -206
  163. package/node_modules/@vitos-pizza/subagents/tests/rpc.test.ts +0 -74
  164. package/node_modules/@vitos-pizza/subagents/tsconfig.json +0 -13
  165. package/node_modules/@vitos-pizza/subagents/vitest.config.ts +0 -8
  166. package/node_modules/@vitos-pizza/ui-enhancements/extensions/index.ts +0 -10
  167. package/node_modules/@vitos-pizza/ui-enhancements/package.json +0 -28
  168. package/node_modules/@vitos-pizza/ui-enhancements/src/bash-readonly.ts +0 -82
  169. package/node_modules/@vitos-pizza/ui-enhancements/src/chrome/agent-mode-badge.ts +0 -60
  170. package/node_modules/@vitos-pizza/ui-enhancements/src/chrome/border-status.ts +0 -193
  171. package/node_modules/@vitos-pizza/ui-enhancements/src/chrome/format-border.ts +0 -46
  172. package/node_modules/@vitos-pizza/ui-enhancements/src/chrome/header-info.ts +0 -66
  173. package/node_modules/@vitos-pizza/ui-enhancements/src/chrome/recent-sessions.ts +0 -132
  174. package/node_modules/@vitos-pizza/ui-enhancements/src/chrome/resize-recovery.ts +0 -63
  175. package/node_modules/@vitos-pizza/ui-enhancements/src/chrome/welcome-header.ts +0 -127
  176. package/node_modules/@vitos-pizza/ui-enhancements/src/config.ts +0 -75
  177. package/node_modules/@vitos-pizza/ui-enhancements/src/register-ui-enhancements.ts +0 -47
  178. package/node_modules/@vitos-pizza/ui-enhancements/src/session.ts +0 -72
  179. package/node_modules/@vitos-pizza/ui-enhancements/src/tools/bash-write-edit.ts +0 -148
  180. package/node_modules/@vitos-pizza/ui-enhancements/src/tools/index.ts +0 -22
  181. package/node_modules/@vitos-pizza/ui-enhancements/src/tools/read-find-grep-ls.ts +0 -235
  182. package/node_modules/@vitos-pizza/ui-enhancements/src/tools/text-content.ts +0 -42
  183. package/node_modules/@vitos-pizza/ui-enhancements/src/tools/tool-cache.ts +0 -87
  184. package/node_modules/@vitos-pizza/ui-enhancements/src/utils/shorten-path.ts +0 -9
  185. package/node_modules/@vitos-pizza/ui-enhancements/tests/agent-mode-badge.test.ts +0 -35
  186. package/node_modules/@vitos-pizza/ui-enhancements/tests/bash-readonly.test.ts +0 -43
  187. package/node_modules/@vitos-pizza/ui-enhancements/tests/format-border.test.ts +0 -36
  188. package/node_modules/@vitos-pizza/ui-enhancements/tests/recent-sessions.test.ts +0 -72
  189. package/node_modules/@vitos-pizza/ui-enhancements/tests/resize-recovery.test.ts +0 -135
  190. package/node_modules/@vitos-pizza/ui-enhancements/tsconfig.json +0 -13
  191. package/node_modules/@vitos-pizza/ui-enhancements/vitest.config.ts +0 -8
  192. package/node_modules/@vitos-pizza/websearch/extensions/index.ts +0 -130
  193. package/node_modules/@vitos-pizza/websearch/package.json +0 -28
  194. package/node_modules/@vitos-pizza/websearch/src/backends/brave.ts +0 -35
  195. package/node_modules/@vitos-pizza/websearch/src/backends/exa-mcp.ts +0 -139
  196. package/node_modules/@vitos-pizza/websearch/src/backends/firecrawl.ts +0 -86
  197. package/node_modules/@vitos-pizza/websearch/src/backends/registry.ts +0 -98
  198. package/node_modules/@vitos-pizza/websearch/src/backends/tavily.ts +0 -32
  199. package/node_modules/@vitos-pizza/websearch/src/config.ts +0 -124
  200. package/node_modules/@vitos-pizza/websearch/src/credentials.ts +0 -35
  201. package/node_modules/@vitos-pizza/websearch/src/dispatch.ts +0 -57
  202. package/node_modules/@vitos-pizza/websearch/src/formatters.ts +0 -44
  203. package/node_modules/@vitos-pizza/websearch/src/parsers.ts +0 -75
  204. package/node_modules/@vitos-pizza/websearch/src/readers/jina.ts +0 -42
  205. package/node_modules/@vitos-pizza/websearch/src/schema.ts +0 -37
  206. package/node_modules/@vitos-pizza/websearch/src/status.ts +0 -103
  207. package/node_modules/@vitos-pizza/websearch/src/types.ts +0 -29
  208. package/node_modules/@vitos-pizza/websearch/src/utils.ts +0 -117
  209. package/node_modules/@vitos-pizza/websearch/tests/backends.test.ts +0 -103
  210. package/node_modules/@vitos-pizza/websearch/tests/config.test.ts +0 -71
  211. package/node_modules/@vitos-pizza/websearch/tests/dispatch.test.ts +0 -69
  212. package/node_modules/@vitos-pizza/websearch/tsconfig.json +0 -13
  213. package/node_modules/@vitos-pizza/websearch/vitest.config.ts +0 -8
  214. package/node_modules/node-addon-api/LICENSE.md +0 -9
  215. package/node_modules/node-addon-api/README.md +0 -95
  216. package/node_modules/node-addon-api/common.gypi +0 -21
  217. package/node_modules/node-addon-api/except.gypi +0 -25
  218. package/node_modules/node-addon-api/index.js +0 -14
  219. package/node_modules/node-addon-api/napi-inl.deprecated.h +0 -186
  220. package/node_modules/node-addon-api/napi-inl.h +0 -7211
  221. package/node_modules/node-addon-api/napi.h +0 -3420
  222. package/node_modules/node-addon-api/node_addon_api.gyp +0 -42
  223. package/node_modules/node-addon-api/node_api.gyp +0 -9
  224. package/node_modules/node-addon-api/noexcept.gypi +0 -26
  225. package/node_modules/node-addon-api/nothing.c +0 -0
  226. package/node_modules/node-addon-api/package-support.json +0 -21
  227. package/node_modules/node-addon-api/package.json +0 -480
  228. package/node_modules/node-addon-api/tools/README.md +0 -73
  229. package/node_modules/node-addon-api/tools/check-napi.js +0 -99
  230. package/node_modules/node-addon-api/tools/clang-format.js +0 -71
  231. package/node_modules/node-addon-api/tools/conversion.js +0 -301
  232. package/node_modules/node-gyp-build/LICENSE +0 -21
  233. package/node_modules/node-gyp-build/README.md +0 -58
  234. package/node_modules/node-gyp-build/SECURITY.md +0 -5
  235. package/node_modules/node-gyp-build/bin.js +0 -84
  236. package/node_modules/node-gyp-build/build-test.js +0 -19
  237. package/node_modules/node-gyp-build/index.js +0 -6
  238. package/node_modules/node-gyp-build/node-gyp-build.js +0 -207
  239. package/node_modules/node-gyp-build/optional.js +0 -7
  240. package/node_modules/node-gyp-build/package.json +0 -43
  241. package/node_modules/tree-sitter-bash/LICENSE +0 -21
  242. package/node_modules/tree-sitter-bash/README.md +0 -44
  243. package/node_modules/tree-sitter-bash/binding.gyp +0 -30
  244. package/node_modules/tree-sitter-bash/bindings/node/binding.cc +0 -20
  245. package/node_modules/tree-sitter-bash/bindings/node/binding_test.js +0 -9
  246. package/node_modules/tree-sitter-bash/bindings/node/index.d.ts +0 -28
  247. package/node_modules/tree-sitter-bash/bindings/node/index.js +0 -11
  248. package/node_modules/tree-sitter-bash/grammar.js +0 -1201
  249. package/node_modules/tree-sitter-bash/package.json +0 -60
  250. package/node_modules/tree-sitter-bash/prebuilds/darwin-arm64/tree-sitter-bash.node +0 -0
  251. package/node_modules/tree-sitter-bash/prebuilds/darwin-x64/tree-sitter-bash.node +0 -0
  252. package/node_modules/tree-sitter-bash/prebuilds/linux-arm64/tree-sitter-bash.node +0 -0
  253. package/node_modules/tree-sitter-bash/prebuilds/linux-x64/tree-sitter-bash.node +0 -0
  254. package/node_modules/tree-sitter-bash/prebuilds/win32-arm64/tree-sitter-bash.node +0 -0
  255. package/node_modules/tree-sitter-bash/prebuilds/win32-x64/tree-sitter-bash.node +0 -0
  256. package/node_modules/tree-sitter-bash/queries/highlights.scm +0 -56
  257. package/node_modules/tree-sitter-bash/src/grammar.json +0 -7145
  258. package/node_modules/tree-sitter-bash/src/node-types.json +0 -2894
  259. package/node_modules/tree-sitter-bash/src/parser.c +0 -350631
  260. package/node_modules/tree-sitter-bash/src/scanner.c +0 -1217
  261. package/node_modules/tree-sitter-bash/src/tree_sitter/alloc.h +0 -54
  262. package/node_modules/tree-sitter-bash/src/tree_sitter/array.h +0 -291
  263. package/node_modules/tree-sitter-bash/src/tree_sitter/parser.h +0 -286
  264. package/node_modules/tree-sitter-bash/tree-sitter-bash.wasm +0 -0
  265. package/node_modules/tree-sitter-bash/tree-sitter.json +0 -46
  266. package/packages/permission-system/node_modules/web-tree-sitter/LICENSE +0 -21
  267. package/packages/permission-system/node_modules/web-tree-sitter/README.md +0 -269
  268. package/packages/permission-system/node_modules/web-tree-sitter/debug/tree-sitter.cjs +0 -4558
  269. package/packages/permission-system/node_modules/web-tree-sitter/debug/tree-sitter.cjs.map +0 -7
  270. package/packages/permission-system/node_modules/web-tree-sitter/debug/tree-sitter.js +0 -4516
  271. package/packages/permission-system/node_modules/web-tree-sitter/debug/tree-sitter.js.map +0 -7
  272. package/packages/permission-system/node_modules/web-tree-sitter/debug/tree-sitter.wasm +0 -0
  273. package/packages/permission-system/node_modules/web-tree-sitter/debug/tree-sitter.wasm.map +0 -31
  274. package/packages/permission-system/node_modules/web-tree-sitter/lib/alloc.c +0 -48
  275. package/packages/permission-system/node_modules/web-tree-sitter/lib/alloc.h +0 -41
  276. package/packages/permission-system/node_modules/web-tree-sitter/lib/array.h +0 -291
  277. package/packages/permission-system/node_modules/web-tree-sitter/lib/atomic.h +0 -68
  278. package/packages/permission-system/node_modules/web-tree-sitter/lib/clock.h +0 -146
  279. package/packages/permission-system/node_modules/web-tree-sitter/lib/error_costs.h +0 -11
  280. package/packages/permission-system/node_modules/web-tree-sitter/lib/get_changed_ranges.c +0 -523
  281. package/packages/permission-system/node_modules/web-tree-sitter/lib/get_changed_ranges.h +0 -36
  282. package/packages/permission-system/node_modules/web-tree-sitter/lib/host.h +0 -21
  283. package/packages/permission-system/node_modules/web-tree-sitter/lib/language.c +0 -293
  284. package/packages/permission-system/node_modules/web-tree-sitter/lib/language.h +0 -293
  285. package/packages/permission-system/node_modules/web-tree-sitter/lib/length.h +0 -52
  286. package/packages/permission-system/node_modules/web-tree-sitter/lib/lexer.c +0 -483
  287. package/packages/permission-system/node_modules/web-tree-sitter/lib/lexer.h +0 -54
  288. package/packages/permission-system/node_modules/web-tree-sitter/lib/lib.c +0 -12
  289. package/packages/permission-system/node_modules/web-tree-sitter/lib/node.c +0 -875
  290. package/packages/permission-system/node_modules/web-tree-sitter/lib/parser.c +0 -2297
  291. package/packages/permission-system/node_modules/web-tree-sitter/lib/parser.h +0 -286
  292. package/packages/permission-system/node_modules/web-tree-sitter/lib/point.h +0 -48
  293. package/packages/permission-system/node_modules/web-tree-sitter/lib/query.c +0 -4347
  294. package/packages/permission-system/node_modules/web-tree-sitter/lib/reduce_action.h +0 -34
  295. package/packages/permission-system/node_modules/web-tree-sitter/lib/reusable_node.h +0 -95
  296. package/packages/permission-system/node_modules/web-tree-sitter/lib/stack.c +0 -912
  297. package/packages/permission-system/node_modules/web-tree-sitter/lib/stack.h +0 -133
  298. package/packages/permission-system/node_modules/web-tree-sitter/lib/subtree.c +0 -1034
  299. package/packages/permission-system/node_modules/web-tree-sitter/lib/subtree.h +0 -399
  300. package/packages/permission-system/node_modules/web-tree-sitter/lib/tree-sitter.c +0 -987
  301. package/packages/permission-system/node_modules/web-tree-sitter/lib/tree.c +0 -170
  302. package/packages/permission-system/node_modules/web-tree-sitter/lib/tree.h +0 -31
  303. package/packages/permission-system/node_modules/web-tree-sitter/lib/tree_cursor.c +0 -716
  304. package/packages/permission-system/node_modules/web-tree-sitter/lib/tree_cursor.h +0 -48
  305. package/packages/permission-system/node_modules/web-tree-sitter/lib/ts_assert.h +0 -11
  306. package/packages/permission-system/node_modules/web-tree-sitter/lib/unicode.h +0 -75
  307. package/packages/permission-system/node_modules/web-tree-sitter/lib/wasm_store.c +0 -1937
  308. package/packages/permission-system/node_modules/web-tree-sitter/lib/wasm_store.h +0 -31
  309. package/packages/permission-system/node_modules/web-tree-sitter/package.json +0 -98
  310. package/packages/permission-system/node_modules/web-tree-sitter/src/bindings.ts +0 -26
  311. package/packages/permission-system/node_modules/web-tree-sitter/src/constants.ts +0 -133
  312. package/packages/permission-system/node_modules/web-tree-sitter/src/index.ts +0 -31
  313. package/packages/permission-system/node_modules/web-tree-sitter/src/language.ts +0 -291
  314. package/packages/permission-system/node_modules/web-tree-sitter/src/lookahead_iterator.ts +0 -75
  315. package/packages/permission-system/node_modules/web-tree-sitter/src/marshal.ts +0 -176
  316. package/packages/permission-system/node_modules/web-tree-sitter/src/node.ts +0 -646
  317. package/packages/permission-system/node_modules/web-tree-sitter/src/parser.ts +0 -325
  318. package/packages/permission-system/node_modules/web-tree-sitter/src/query.ts +0 -973
  319. package/packages/permission-system/node_modules/web-tree-sitter/src/tree.ts +0 -145
  320. package/packages/permission-system/node_modules/web-tree-sitter/src/tree_cursor.ts +0 -318
  321. package/packages/permission-system/node_modules/web-tree-sitter/tree-sitter.cjs +0 -4031
  322. package/packages/permission-system/node_modules/web-tree-sitter/tree-sitter.cjs.map +0 -7
  323. package/packages/permission-system/node_modules/web-tree-sitter/tree-sitter.js +0 -3980
  324. package/packages/permission-system/node_modules/web-tree-sitter/tree-sitter.js.map +0 -7
  325. package/packages/permission-system/node_modules/web-tree-sitter/tree-sitter.wasm +0 -0
  326. package/packages/permission-system/node_modules/web-tree-sitter/tree-sitter.wasm.map +0 -30
  327. package/packages/permission-system/node_modules/web-tree-sitter/web-tree-sitter.d.ts +0 -1030
  328. package/packages/permission-system/node_modules/web-tree-sitter/web-tree-sitter.d.ts.map +0 -56
  329. package/packages/permission-system/node_modules/zod/LICENSE +0 -21
  330. package/packages/permission-system/node_modules/zod/README.md +0 -208
  331. package/packages/permission-system/node_modules/zod/index.cjs +0 -33
  332. package/packages/permission-system/node_modules/zod/index.d.cts +0 -4
  333. package/packages/permission-system/node_modules/zod/index.d.ts +0 -4
  334. package/packages/permission-system/node_modules/zod/index.js +0 -4
  335. package/packages/permission-system/node_modules/zod/package.json +0 -118
  336. package/packages/permission-system/node_modules/zod/src/index.ts +0 -4
  337. package/packages/permission-system/node_modules/zod/src/v3/ZodError.ts +0 -330
  338. package/packages/permission-system/node_modules/zod/src/v3/benchmarks/datetime.ts +0 -58
  339. package/packages/permission-system/node_modules/zod/src/v3/benchmarks/discriminatedUnion.ts +0 -80
  340. package/packages/permission-system/node_modules/zod/src/v3/benchmarks/index.ts +0 -59
  341. package/packages/permission-system/node_modules/zod/src/v3/benchmarks/ipv4.ts +0 -57
  342. package/packages/permission-system/node_modules/zod/src/v3/benchmarks/object.ts +0 -69
  343. package/packages/permission-system/node_modules/zod/src/v3/benchmarks/primitives.ts +0 -162
  344. package/packages/permission-system/node_modules/zod/src/v3/benchmarks/realworld.ts +0 -63
  345. package/packages/permission-system/node_modules/zod/src/v3/benchmarks/string.ts +0 -55
  346. package/packages/permission-system/node_modules/zod/src/v3/benchmarks/union.ts +0 -80
  347. package/packages/permission-system/node_modules/zod/src/v3/errors.ts +0 -13
  348. package/packages/permission-system/node_modules/zod/src/v3/external.ts +0 -6
  349. package/packages/permission-system/node_modules/zod/src/v3/helpers/enumUtil.ts +0 -17
  350. package/packages/permission-system/node_modules/zod/src/v3/helpers/errorUtil.ts +0 -8
  351. package/packages/permission-system/node_modules/zod/src/v3/helpers/parseUtil.ts +0 -176
  352. package/packages/permission-system/node_modules/zod/src/v3/helpers/partialUtil.ts +0 -34
  353. package/packages/permission-system/node_modules/zod/src/v3/helpers/typeAliases.ts +0 -2
  354. package/packages/permission-system/node_modules/zod/src/v3/helpers/util.ts +0 -224
  355. package/packages/permission-system/node_modules/zod/src/v3/index.ts +0 -4
  356. package/packages/permission-system/node_modules/zod/src/v3/locales/en.ts +0 -124
  357. package/packages/permission-system/node_modules/zod/src/v3/standard-schema.ts +0 -113
  358. package/packages/permission-system/node_modules/zod/src/v3/tests/Mocker.ts +0 -54
  359. package/packages/permission-system/node_modules/zod/src/v3/tests/all-errors.test.ts +0 -157
  360. package/packages/permission-system/node_modules/zod/src/v3/tests/anyunknown.test.ts +0 -28
  361. package/packages/permission-system/node_modules/zod/src/v3/tests/array.test.ts +0 -71
  362. package/packages/permission-system/node_modules/zod/src/v3/tests/async-parsing.test.ts +0 -388
  363. package/packages/permission-system/node_modules/zod/src/v3/tests/async-refinements.test.ts +0 -46
  364. package/packages/permission-system/node_modules/zod/src/v3/tests/base.test.ts +0 -29
  365. package/packages/permission-system/node_modules/zod/src/v3/tests/bigint.test.ts +0 -55
  366. package/packages/permission-system/node_modules/zod/src/v3/tests/branded.test.ts +0 -53
  367. package/packages/permission-system/node_modules/zod/src/v3/tests/catch.test.ts +0 -220
  368. package/packages/permission-system/node_modules/zod/src/v3/tests/coerce.test.ts +0 -133
  369. package/packages/permission-system/node_modules/zod/src/v3/tests/complex.test.ts +0 -56
  370. package/packages/permission-system/node_modules/zod/src/v3/tests/custom.test.ts +0 -31
  371. package/packages/permission-system/node_modules/zod/src/v3/tests/date.test.ts +0 -32
  372. package/packages/permission-system/node_modules/zod/src/v3/tests/deepmasking.test.ts +0 -186
  373. package/packages/permission-system/node_modules/zod/src/v3/tests/default.test.ts +0 -112
  374. package/packages/permission-system/node_modules/zod/src/v3/tests/description.test.ts +0 -33
  375. package/packages/permission-system/node_modules/zod/src/v3/tests/discriminated-unions.test.ts +0 -315
  376. package/packages/permission-system/node_modules/zod/src/v3/tests/enum.test.ts +0 -80
  377. package/packages/permission-system/node_modules/zod/src/v3/tests/error.test.ts +0 -551
  378. package/packages/permission-system/node_modules/zod/src/v3/tests/firstparty.test.ts +0 -87
  379. package/packages/permission-system/node_modules/zod/src/v3/tests/firstpartyschematypes.test.ts +0 -21
  380. package/packages/permission-system/node_modules/zod/src/v3/tests/function.test.ts +0 -257
  381. package/packages/permission-system/node_modules/zod/src/v3/tests/generics.test.ts +0 -48
  382. package/packages/permission-system/node_modules/zod/src/v3/tests/instanceof.test.ts +0 -37
  383. package/packages/permission-system/node_modules/zod/src/v3/tests/intersection.test.ts +0 -110
  384. package/packages/permission-system/node_modules/zod/src/v3/tests/language-server.source.ts +0 -76
  385. package/packages/permission-system/node_modules/zod/src/v3/tests/language-server.test.ts +0 -207
  386. package/packages/permission-system/node_modules/zod/src/v3/tests/literal.test.ts +0 -36
  387. package/packages/permission-system/node_modules/zod/src/v3/tests/map.test.ts +0 -110
  388. package/packages/permission-system/node_modules/zod/src/v3/tests/masking.test.ts +0 -4
  389. package/packages/permission-system/node_modules/zod/src/v3/tests/mocker.test.ts +0 -19
  390. package/packages/permission-system/node_modules/zod/src/v3/tests/nan.test.ts +0 -21
  391. package/packages/permission-system/node_modules/zod/src/v3/tests/nativeEnum.test.ts +0 -87
  392. package/packages/permission-system/node_modules/zod/src/v3/tests/nullable.test.ts +0 -42
  393. package/packages/permission-system/node_modules/zod/src/v3/tests/number.test.ts +0 -176
  394. package/packages/permission-system/node_modules/zod/src/v3/tests/object-augmentation.test.ts +0 -29
  395. package/packages/permission-system/node_modules/zod/src/v3/tests/object-in-es5-env.test.ts +0 -29
  396. package/packages/permission-system/node_modules/zod/src/v3/tests/object.test.ts +0 -434
  397. package/packages/permission-system/node_modules/zod/src/v3/tests/optional.test.ts +0 -42
  398. package/packages/permission-system/node_modules/zod/src/v3/tests/parseUtil.test.ts +0 -23
  399. package/packages/permission-system/node_modules/zod/src/v3/tests/parser.test.ts +0 -41
  400. package/packages/permission-system/node_modules/zod/src/v3/tests/partials.test.ts +0 -243
  401. package/packages/permission-system/node_modules/zod/src/v3/tests/pickomit.test.ts +0 -111
  402. package/packages/permission-system/node_modules/zod/src/v3/tests/pipeline.test.ts +0 -29
  403. package/packages/permission-system/node_modules/zod/src/v3/tests/preprocess.test.ts +0 -186
  404. package/packages/permission-system/node_modules/zod/src/v3/tests/primitive.test.ts +0 -440
  405. package/packages/permission-system/node_modules/zod/src/v3/tests/promise.test.ts +0 -90
  406. package/packages/permission-system/node_modules/zod/src/v3/tests/readonly.test.ts +0 -194
  407. package/packages/permission-system/node_modules/zod/src/v3/tests/record.test.ts +0 -171
  408. package/packages/permission-system/node_modules/zod/src/v3/tests/recursive.test.ts +0 -197
  409. package/packages/permission-system/node_modules/zod/src/v3/tests/refine.test.ts +0 -313
  410. package/packages/permission-system/node_modules/zod/src/v3/tests/safeparse.test.ts +0 -27
  411. package/packages/permission-system/node_modules/zod/src/v3/tests/set.test.ts +0 -142
  412. package/packages/permission-system/node_modules/zod/src/v3/tests/standard-schema.test.ts +0 -83
  413. package/packages/permission-system/node_modules/zod/src/v3/tests/string.test.ts +0 -916
  414. package/packages/permission-system/node_modules/zod/src/v3/tests/transformer.test.ts +0 -233
  415. package/packages/permission-system/node_modules/zod/src/v3/tests/tuple.test.ts +0 -90
  416. package/packages/permission-system/node_modules/zod/src/v3/tests/unions.test.ts +0 -57
  417. package/packages/permission-system/node_modules/zod/src/v3/tests/validations.test.ts +0 -133
  418. package/packages/permission-system/node_modules/zod/src/v3/tests/void.test.ts +0 -15
  419. package/packages/permission-system/node_modules/zod/src/v3/types.ts +0 -5136
  420. package/packages/permission-system/node_modules/zod/src/v4/classic/checks.ts +0 -30
  421. package/packages/permission-system/node_modules/zod/src/v4/classic/coerce.ts +0 -27
  422. package/packages/permission-system/node_modules/zod/src/v4/classic/compat.ts +0 -66
  423. package/packages/permission-system/node_modules/zod/src/v4/classic/errors.ts +0 -75
  424. package/packages/permission-system/node_modules/zod/src/v4/classic/external.ts +0 -50
  425. package/packages/permission-system/node_modules/zod/src/v4/classic/index.ts +0 -5
  426. package/packages/permission-system/node_modules/zod/src/v4/classic/iso.ts +0 -90
  427. package/packages/permission-system/node_modules/zod/src/v4/classic/parse.ts +0 -33
  428. package/packages/permission-system/node_modules/zod/src/v4/classic/schemas.ts +0 -2054
  429. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/anyunknown.test.ts +0 -26
  430. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/array.test.ts +0 -264
  431. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/assignability.test.ts +0 -210
  432. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/async-parsing.test.ts +0 -381
  433. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/async-refinements.test.ts +0 -68
  434. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/base.test.ts +0 -7
  435. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/bigint.test.ts +0 -54
  436. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/brand.test.ts +0 -63
  437. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/catch.test.ts +0 -252
  438. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/coalesce.test.ts +0 -20
  439. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/coerce.test.ts +0 -160
  440. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/continuability.test.ts +0 -352
  441. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/custom.test.ts +0 -40
  442. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/date.test.ts +0 -31
  443. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/datetime.test.ts +0 -296
  444. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/default.test.ts +0 -313
  445. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/description.test.ts +0 -32
  446. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +0 -619
  447. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/enum.test.ts +0 -285
  448. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/error-utils.test.ts +0 -527
  449. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/error.test.ts +0 -711
  450. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/file.test.ts +0 -91
  451. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/firstparty.test.ts +0 -175
  452. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/function.test.ts +0 -268
  453. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/generics.test.ts +0 -72
  454. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/index.test.ts +0 -829
  455. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +0 -34
  456. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/intersection.test.ts +0 -171
  457. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/json.test.ts +0 -108
  458. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/lazy.test.ts +0 -227
  459. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/literal.test.ts +0 -92
  460. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/map.test.ts +0 -196
  461. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/nan.test.ts +0 -21
  462. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/nested-refine.test.ts +0 -168
  463. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/nonoptional.test.ts +0 -86
  464. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/nullable.test.ts +0 -22
  465. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/number.test.ts +0 -247
  466. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/object.test.ts +0 -563
  467. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/optional.test.ts +0 -123
  468. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/partial.test.ts +0 -147
  469. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/pickomit.test.ts +0 -127
  470. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/pipe.test.ts +0 -81
  471. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/prefault.test.ts +0 -37
  472. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/preprocess.test.ts +0 -298
  473. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/primitive.test.ts +0 -175
  474. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/promise.test.ts +0 -81
  475. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/prototypes.test.ts +0 -23
  476. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/readonly.test.ts +0 -252
  477. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/record.test.ts +0 -342
  478. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +0 -356
  479. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/refine.test.ts +0 -532
  480. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/registries.test.ts +0 -204
  481. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/set.test.ts +0 -179
  482. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/standard-schema.test.ts +0 -57
  483. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/string-formats.test.ts +0 -109
  484. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/string.test.ts +0 -881
  485. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/stringbool.test.ts +0 -66
  486. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +0 -758
  487. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +0 -2314
  488. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/transform.test.ts +0 -250
  489. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/tuple.test.ts +0 -163
  490. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/union.test.ts +0 -94
  491. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/validations.test.ts +0 -283
  492. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/void.test.ts +0 -12
  493. package/packages/permission-system/node_modules/zod/src/v4/core/api.ts +0 -1594
  494. package/packages/permission-system/node_modules/zod/src/v4/core/checks.ts +0 -1283
  495. package/packages/permission-system/node_modules/zod/src/v4/core/config.ts +0 -15
  496. package/packages/permission-system/node_modules/zod/src/v4/core/core.ts +0 -134
  497. package/packages/permission-system/node_modules/zod/src/v4/core/doc.ts +0 -44
  498. package/packages/permission-system/node_modules/zod/src/v4/core/errors.ts +0 -424
  499. package/packages/permission-system/node_modules/zod/src/v4/core/function.ts +0 -176
  500. package/packages/permission-system/node_modules/zod/src/v4/core/index.ts +0 -15
  501. package/packages/permission-system/node_modules/zod/src/v4/core/json-schema.ts +0 -143
  502. package/packages/permission-system/node_modules/zod/src/v4/core/parse.ts +0 -94
  503. package/packages/permission-system/node_modules/zod/src/v4/core/regexes.ts +0 -135
  504. package/packages/permission-system/node_modules/zod/src/v4/core/registries.ts +0 -96
  505. package/packages/permission-system/node_modules/zod/src/v4/core/schemas.ts +0 -3842
  506. package/packages/permission-system/node_modules/zod/src/v4/core/standard-schema.ts +0 -64
  507. package/packages/permission-system/node_modules/zod/src/v4/core/tests/index.test.ts +0 -46
  508. package/packages/permission-system/node_modules/zod/src/v4/core/tests/locales/be.test.ts +0 -124
  509. package/packages/permission-system/node_modules/zod/src/v4/core/tests/locales/en.test.ts +0 -22
  510. package/packages/permission-system/node_modules/zod/src/v4/core/tests/locales/ru.test.ts +0 -128
  511. package/packages/permission-system/node_modules/zod/src/v4/core/tests/locales/tr.test.ts +0 -69
  512. package/packages/permission-system/node_modules/zod/src/v4/core/to-json-schema.ts +0 -977
  513. package/packages/permission-system/node_modules/zod/src/v4/core/util.ts +0 -775
  514. package/packages/permission-system/node_modules/zod/src/v4/core/versions.ts +0 -5
  515. package/packages/permission-system/node_modules/zod/src/v4/core/zsf.ts +0 -323
  516. package/packages/permission-system/node_modules/zod/src/v4/index.ts +0 -4
  517. package/packages/permission-system/node_modules/zod/src/v4/locales/ar.ts +0 -125
  518. package/packages/permission-system/node_modules/zod/src/v4/locales/az.ts +0 -121
  519. package/packages/permission-system/node_modules/zod/src/v4/locales/be.ts +0 -184
  520. package/packages/permission-system/node_modules/zod/src/v4/locales/ca.ts +0 -127
  521. package/packages/permission-system/node_modules/zod/src/v4/locales/cs.ts +0 -142
  522. package/packages/permission-system/node_modules/zod/src/v4/locales/de.ts +0 -124
  523. package/packages/permission-system/node_modules/zod/src/v4/locales/en.ts +0 -127
  524. package/packages/permission-system/node_modules/zod/src/v4/locales/eo.ts +0 -125
  525. package/packages/permission-system/node_modules/zod/src/v4/locales/es.ts +0 -125
  526. package/packages/permission-system/node_modules/zod/src/v4/locales/fa.ts +0 -134
  527. package/packages/permission-system/node_modules/zod/src/v4/locales/fi.ts +0 -131
  528. package/packages/permission-system/node_modules/zod/src/v4/locales/fr-CA.ts +0 -126
  529. package/packages/permission-system/node_modules/zod/src/v4/locales/fr.ts +0 -124
  530. package/packages/permission-system/node_modules/zod/src/v4/locales/he.ts +0 -125
  531. package/packages/permission-system/node_modules/zod/src/v4/locales/hu.ts +0 -126
  532. package/packages/permission-system/node_modules/zod/src/v4/locales/id.ts +0 -125
  533. package/packages/permission-system/node_modules/zod/src/v4/locales/index.ts +0 -39
  534. package/packages/permission-system/node_modules/zod/src/v4/locales/it.ts +0 -125
  535. package/packages/permission-system/node_modules/zod/src/v4/locales/ja.ts +0 -122
  536. package/packages/permission-system/node_modules/zod/src/v4/locales/kh.ts +0 -126
  537. package/packages/permission-system/node_modules/zod/src/v4/locales/ko.ts +0 -131
  538. package/packages/permission-system/node_modules/zod/src/v4/locales/mk.ts +0 -127
  539. package/packages/permission-system/node_modules/zod/src/v4/locales/ms.ts +0 -124
  540. package/packages/permission-system/node_modules/zod/src/v4/locales/nl.ts +0 -126
  541. package/packages/permission-system/node_modules/zod/src/v4/locales/no.ts +0 -124
  542. package/packages/permission-system/node_modules/zod/src/v4/locales/ota.ts +0 -125
  543. package/packages/permission-system/node_modules/zod/src/v4/locales/pl.ts +0 -126
  544. package/packages/permission-system/node_modules/zod/src/v4/locales/ps.ts +0 -133
  545. package/packages/permission-system/node_modules/zod/src/v4/locales/pt.ts +0 -123
  546. package/packages/permission-system/node_modules/zod/src/v4/locales/ru.ts +0 -184
  547. package/packages/permission-system/node_modules/zod/src/v4/locales/sl.ts +0 -126
  548. package/packages/permission-system/node_modules/zod/src/v4/locales/sv.ts +0 -127
  549. package/packages/permission-system/node_modules/zod/src/v4/locales/ta.ts +0 -125
  550. package/packages/permission-system/node_modules/zod/src/v4/locales/th.ts +0 -126
  551. package/packages/permission-system/node_modules/zod/src/v4/locales/tr.ts +0 -121
  552. package/packages/permission-system/node_modules/zod/src/v4/locales/ua.ts +0 -126
  553. package/packages/permission-system/node_modules/zod/src/v4/locales/ur.ts +0 -126
  554. package/packages/permission-system/node_modules/zod/src/v4/locales/vi.ts +0 -125
  555. package/packages/permission-system/node_modules/zod/src/v4/locales/zh-CN.ts +0 -123
  556. package/packages/permission-system/node_modules/zod/src/v4/locales/zh-TW.ts +0 -125
  557. package/packages/permission-system/node_modules/zod/src/v4/mini/checks.ts +0 -32
  558. package/packages/permission-system/node_modules/zod/src/v4/mini/coerce.ts +0 -22
  559. package/packages/permission-system/node_modules/zod/src/v4/mini/external.ts +0 -40
  560. package/packages/permission-system/node_modules/zod/src/v4/mini/index.ts +0 -3
  561. package/packages/permission-system/node_modules/zod/src/v4/mini/iso.ts +0 -62
  562. package/packages/permission-system/node_modules/zod/src/v4/mini/parse.ts +0 -1
  563. package/packages/permission-system/node_modules/zod/src/v4/mini/schemas.ts +0 -1579
  564. package/packages/permission-system/node_modules/zod/src/v4/mini/tests/assignability.test.ts +0 -129
  565. package/packages/permission-system/node_modules/zod/src/v4/mini/tests/brand.test.ts +0 -51
  566. package/packages/permission-system/node_modules/zod/src/v4/mini/tests/checks.test.ts +0 -144
  567. package/packages/permission-system/node_modules/zod/src/v4/mini/tests/computed.test.ts +0 -36
  568. package/packages/permission-system/node_modules/zod/src/v4/mini/tests/error.test.ts +0 -22
  569. package/packages/permission-system/node_modules/zod/src/v4/mini/tests/functions.test.ts +0 -43
  570. package/packages/permission-system/node_modules/zod/src/v4/mini/tests/index.test.ts +0 -871
  571. package/packages/permission-system/node_modules/zod/src/v4/mini/tests/number.test.ts +0 -95
  572. package/packages/permission-system/node_modules/zod/src/v4/mini/tests/object.test.ts +0 -185
  573. package/packages/permission-system/node_modules/zod/src/v4/mini/tests/prototypes.test.ts +0 -43
  574. package/packages/permission-system/node_modules/zod/src/v4/mini/tests/recursive-types.test.ts +0 -275
  575. package/packages/permission-system/node_modules/zod/src/v4/mini/tests/string.test.ts +0 -299
  576. package/packages/permission-system/node_modules/zod/src/v4-mini/index.ts +0 -1
  577. package/packages/permission-system/node_modules/zod/v3/ZodError.cjs +0 -138
  578. package/packages/permission-system/node_modules/zod/v3/ZodError.d.cts +0 -164
  579. package/packages/permission-system/node_modules/zod/v3/ZodError.d.ts +0 -164
  580. package/packages/permission-system/node_modules/zod/v3/ZodError.js +0 -133
  581. package/packages/permission-system/node_modules/zod/v3/errors.cjs +0 -17
  582. package/packages/permission-system/node_modules/zod/v3/errors.d.cts +0 -5
  583. package/packages/permission-system/node_modules/zod/v3/errors.d.ts +0 -5
  584. package/packages/permission-system/node_modules/zod/v3/errors.js +0 -9
  585. package/packages/permission-system/node_modules/zod/v3/external.cjs +0 -22
  586. package/packages/permission-system/node_modules/zod/v3/external.d.cts +0 -6
  587. package/packages/permission-system/node_modules/zod/v3/external.d.ts +0 -6
  588. package/packages/permission-system/node_modules/zod/v3/external.js +0 -6
  589. package/packages/permission-system/node_modules/zod/v3/helpers/enumUtil.cjs +0 -2
  590. package/packages/permission-system/node_modules/zod/v3/helpers/enumUtil.d.cts +0 -8
  591. package/packages/permission-system/node_modules/zod/v3/helpers/enumUtil.d.ts +0 -8
  592. package/packages/permission-system/node_modules/zod/v3/helpers/enumUtil.js +0 -1
  593. package/packages/permission-system/node_modules/zod/v3/helpers/errorUtil.cjs +0 -9
  594. package/packages/permission-system/node_modules/zod/v3/helpers/errorUtil.d.cts +0 -9
  595. package/packages/permission-system/node_modules/zod/v3/helpers/errorUtil.d.ts +0 -9
  596. package/packages/permission-system/node_modules/zod/v3/helpers/errorUtil.js +0 -6
  597. package/packages/permission-system/node_modules/zod/v3/helpers/parseUtil.cjs +0 -124
  598. package/packages/permission-system/node_modules/zod/v3/helpers/parseUtil.d.cts +0 -78
  599. package/packages/permission-system/node_modules/zod/v3/helpers/parseUtil.d.ts +0 -78
  600. package/packages/permission-system/node_modules/zod/v3/helpers/parseUtil.js +0 -109
  601. package/packages/permission-system/node_modules/zod/v3/helpers/partialUtil.cjs +0 -2
  602. package/packages/permission-system/node_modules/zod/v3/helpers/partialUtil.d.cts +0 -8
  603. package/packages/permission-system/node_modules/zod/v3/helpers/partialUtil.d.ts +0 -8
  604. package/packages/permission-system/node_modules/zod/v3/helpers/partialUtil.js +0 -1
  605. package/packages/permission-system/node_modules/zod/v3/helpers/typeAliases.cjs +0 -2
  606. package/packages/permission-system/node_modules/zod/v3/helpers/typeAliases.d.cts +0 -2
  607. package/packages/permission-system/node_modules/zod/v3/helpers/typeAliases.d.ts +0 -2
  608. package/packages/permission-system/node_modules/zod/v3/helpers/typeAliases.js +0 -1
  609. package/packages/permission-system/node_modules/zod/v3/helpers/util.cjs +0 -137
  610. package/packages/permission-system/node_modules/zod/v3/helpers/util.d.cts +0 -85
  611. package/packages/permission-system/node_modules/zod/v3/helpers/util.d.ts +0 -85
  612. package/packages/permission-system/node_modules/zod/v3/helpers/util.js +0 -133
  613. package/packages/permission-system/node_modules/zod/v3/index.cjs +0 -33
  614. package/packages/permission-system/node_modules/zod/v3/index.d.cts +0 -4
  615. package/packages/permission-system/node_modules/zod/v3/index.d.ts +0 -4
  616. package/packages/permission-system/node_modules/zod/v3/index.js +0 -4
  617. package/packages/permission-system/node_modules/zod/v3/locales/en.cjs +0 -111
  618. package/packages/permission-system/node_modules/zod/v3/locales/en.d.cts +0 -3
  619. package/packages/permission-system/node_modules/zod/v3/locales/en.d.ts +0 -3
  620. package/packages/permission-system/node_modules/zod/v3/locales/en.js +0 -109
  621. package/packages/permission-system/node_modules/zod/v3/standard-schema.cjs +0 -2
  622. package/packages/permission-system/node_modules/zod/v3/standard-schema.d.cts +0 -102
  623. package/packages/permission-system/node_modules/zod/v3/standard-schema.d.ts +0 -102
  624. package/packages/permission-system/node_modules/zod/v3/standard-schema.js +0 -1
  625. package/packages/permission-system/node_modules/zod/v3/types.cjs +0 -3775
  626. package/packages/permission-system/node_modules/zod/v3/types.d.cts +0 -1031
  627. package/packages/permission-system/node_modules/zod/v3/types.d.ts +0 -1031
  628. package/packages/permission-system/node_modules/zod/v3/types.js +0 -3693
  629. package/packages/permission-system/node_modules/zod/v4/classic/checks.cjs +0 -32
  630. package/packages/permission-system/node_modules/zod/v4/classic/checks.d.cts +0 -1
  631. package/packages/permission-system/node_modules/zod/v4/classic/checks.d.ts +0 -1
  632. package/packages/permission-system/node_modules/zod/v4/classic/checks.js +0 -1
  633. package/packages/permission-system/node_modules/zod/v4/classic/coerce.cjs +0 -47
  634. package/packages/permission-system/node_modules/zod/v4/classic/coerce.d.cts +0 -17
  635. package/packages/permission-system/node_modules/zod/v4/classic/coerce.d.ts +0 -17
  636. package/packages/permission-system/node_modules/zod/v4/classic/coerce.js +0 -17
  637. package/packages/permission-system/node_modules/zod/v4/classic/compat.cjs +0 -57
  638. package/packages/permission-system/node_modules/zod/v4/classic/compat.d.cts +0 -46
  639. package/packages/permission-system/node_modules/zod/v4/classic/compat.d.ts +0 -46
  640. package/packages/permission-system/node_modules/zod/v4/classic/compat.js +0 -27
  641. package/packages/permission-system/node_modules/zod/v4/classic/errors.cjs +0 -67
  642. package/packages/permission-system/node_modules/zod/v4/classic/errors.d.cts +0 -30
  643. package/packages/permission-system/node_modules/zod/v4/classic/errors.d.ts +0 -30
  644. package/packages/permission-system/node_modules/zod/v4/classic/errors.js +0 -41
  645. package/packages/permission-system/node_modules/zod/v4/classic/external.cjs +0 -70
  646. package/packages/permission-system/node_modules/zod/v4/classic/external.d.cts +0 -13
  647. package/packages/permission-system/node_modules/zod/v4/classic/external.d.ts +0 -13
  648. package/packages/permission-system/node_modules/zod/v4/classic/external.js +0 -18
  649. package/packages/permission-system/node_modules/zod/v4/classic/index.cjs +0 -33
  650. package/packages/permission-system/node_modules/zod/v4/classic/index.d.cts +0 -4
  651. package/packages/permission-system/node_modules/zod/v4/classic/index.d.ts +0 -4
  652. package/packages/permission-system/node_modules/zod/v4/classic/index.js +0 -4
  653. package/packages/permission-system/node_modules/zod/v4/classic/iso.cjs +0 -60
  654. package/packages/permission-system/node_modules/zod/v4/classic/iso.d.cts +0 -22
  655. package/packages/permission-system/node_modules/zod/v4/classic/iso.d.ts +0 -22
  656. package/packages/permission-system/node_modules/zod/v4/classic/iso.js +0 -30
  657. package/packages/permission-system/node_modules/zod/v4/classic/parse.cjs +0 -32
  658. package/packages/permission-system/node_modules/zod/v4/classic/parse.d.cts +0 -23
  659. package/packages/permission-system/node_modules/zod/v4/classic/parse.d.ts +0 -23
  660. package/packages/permission-system/node_modules/zod/v4/classic/parse.js +0 -6
  661. package/packages/permission-system/node_modules/zod/v4/classic/schemas.cjs +0 -1109
  662. package/packages/permission-system/node_modules/zod/v4/classic/schemas.d.cts +0 -630
  663. package/packages/permission-system/node_modules/zod/v4/classic/schemas.d.ts +0 -630
  664. package/packages/permission-system/node_modules/zod/v4/classic/schemas.js +0 -1006
  665. package/packages/permission-system/node_modules/zod/v4/core/api.cjs +0 -1039
  666. package/packages/permission-system/node_modules/zod/v4/core/api.d.cts +0 -284
  667. package/packages/permission-system/node_modules/zod/v4/core/api.d.ts +0 -284
  668. package/packages/permission-system/node_modules/zod/v4/core/api.js +0 -906
  669. package/packages/permission-system/node_modules/zod/v4/core/checks.cjs +0 -591
  670. package/packages/permission-system/node_modules/zod/v4/core/checks.d.cts +0 -278
  671. package/packages/permission-system/node_modules/zod/v4/core/checks.d.ts +0 -278
  672. package/packages/permission-system/node_modules/zod/v4/core/checks.js +0 -565
  673. package/packages/permission-system/node_modules/zod/v4/core/core.cjs +0 -67
  674. package/packages/permission-system/node_modules/zod/v4/core/core.d.cts +0 -49
  675. package/packages/permission-system/node_modules/zod/v4/core/core.d.ts +0 -49
  676. package/packages/permission-system/node_modules/zod/v4/core/core.js +0 -61
  677. package/packages/permission-system/node_modules/zod/v4/core/doc.cjs +0 -39
  678. package/packages/permission-system/node_modules/zod/v4/core/doc.d.cts +0 -14
  679. package/packages/permission-system/node_modules/zod/v4/core/doc.d.ts +0 -14
  680. package/packages/permission-system/node_modules/zod/v4/core/doc.js +0 -35
  681. package/packages/permission-system/node_modules/zod/v4/core/errors.cjs +0 -226
  682. package/packages/permission-system/node_modules/zod/v4/core/errors.d.cts +0 -208
  683. package/packages/permission-system/node_modules/zod/v4/core/errors.d.ts +0 -208
  684. package/packages/permission-system/node_modules/zod/v4/core/errors.js +0 -195
  685. package/packages/permission-system/node_modules/zod/v4/core/function.cjs +0 -102
  686. package/packages/permission-system/node_modules/zod/v4/core/function.d.cts +0 -52
  687. package/packages/permission-system/node_modules/zod/v4/core/function.d.ts +0 -52
  688. package/packages/permission-system/node_modules/zod/v4/core/function.js +0 -75
  689. package/packages/permission-system/node_modules/zod/v4/core/index.cjs +0 -44
  690. package/packages/permission-system/node_modules/zod/v4/core/index.d.cts +0 -15
  691. package/packages/permission-system/node_modules/zod/v4/core/index.d.ts +0 -15
  692. package/packages/permission-system/node_modules/zod/v4/core/index.js +0 -15
  693. package/packages/permission-system/node_modules/zod/v4/core/json-schema.cjs +0 -2
  694. package/packages/permission-system/node_modules/zod/v4/core/json-schema.d.cts +0 -87
  695. package/packages/permission-system/node_modules/zod/v4/core/json-schema.d.ts +0 -87
  696. package/packages/permission-system/node_modules/zod/v4/core/json-schema.js +0 -1
  697. package/packages/permission-system/node_modules/zod/v4/core/parse.cjs +0 -87
  698. package/packages/permission-system/node_modules/zod/v4/core/parse.d.cts +0 -25
  699. package/packages/permission-system/node_modules/zod/v4/core/parse.d.ts +0 -25
  700. package/packages/permission-system/node_modules/zod/v4/core/parse.js +0 -57
  701. package/packages/permission-system/node_modules/zod/v4/core/regexes.cjs +0 -103
  702. package/packages/permission-system/node_modules/zod/v4/core/regexes.d.cts +0 -62
  703. package/packages/permission-system/node_modules/zod/v4/core/regexes.d.ts +0 -62
  704. package/packages/permission-system/node_modules/zod/v4/core/regexes.js +0 -95
  705. package/packages/permission-system/node_modules/zod/v4/core/registries.cjs +0 -56
  706. package/packages/permission-system/node_modules/zod/v4/core/registries.d.cts +0 -35
  707. package/packages/permission-system/node_modules/zod/v4/core/registries.d.ts +0 -35
  708. package/packages/permission-system/node_modules/zod/v4/core/registries.js +0 -51
  709. package/packages/permission-system/node_modules/zod/v4/core/schemas.cjs +0 -1748
  710. package/packages/permission-system/node_modules/zod/v4/core/schemas.d.cts +0 -1041
  711. package/packages/permission-system/node_modules/zod/v4/core/schemas.d.ts +0 -1041
  712. package/packages/permission-system/node_modules/zod/v4/core/schemas.js +0 -1717
  713. package/packages/permission-system/node_modules/zod/v4/core/standard-schema.cjs +0 -2
  714. package/packages/permission-system/node_modules/zod/v4/core/standard-schema.d.cts +0 -55
  715. package/packages/permission-system/node_modules/zod/v4/core/standard-schema.d.ts +0 -55
  716. package/packages/permission-system/node_modules/zod/v4/core/standard-schema.js +0 -1
  717. package/packages/permission-system/node_modules/zod/v4/core/to-json-schema.cjs +0 -854
  718. package/packages/permission-system/node_modules/zod/v4/core/to-json-schema.d.cts +0 -88
  719. package/packages/permission-system/node_modules/zod/v4/core/to-json-schema.d.ts +0 -88
  720. package/packages/permission-system/node_modules/zod/v4/core/to-json-schema.js +0 -849
  721. package/packages/permission-system/node_modules/zod/v4/core/util.cjs +0 -539
  722. package/packages/permission-system/node_modules/zod/v4/core/util.d.cts +0 -183
  723. package/packages/permission-system/node_modules/zod/v4/core/util.d.ts +0 -183
  724. package/packages/permission-system/node_modules/zod/v4/core/util.js +0 -493
  725. package/packages/permission-system/node_modules/zod/v4/core/versions.cjs +0 -8
  726. package/packages/permission-system/node_modules/zod/v4/core/versions.d.cts +0 -5
  727. package/packages/permission-system/node_modules/zod/v4/core/versions.d.ts +0 -5
  728. package/packages/permission-system/node_modules/zod/v4/core/versions.js +0 -5
  729. package/packages/permission-system/node_modules/zod/v4/index.cjs +0 -22
  730. package/packages/permission-system/node_modules/zod/v4/index.d.cts +0 -3
  731. package/packages/permission-system/node_modules/zod/v4/index.d.ts +0 -3
  732. package/packages/permission-system/node_modules/zod/v4/index.js +0 -3
  733. package/packages/permission-system/node_modules/zod/v4/locales/ar.cjs +0 -142
  734. package/packages/permission-system/node_modules/zod/v4/locales/ar.d.cts +0 -4
  735. package/packages/permission-system/node_modules/zod/v4/locales/ar.d.ts +0 -4
  736. package/packages/permission-system/node_modules/zod/v4/locales/ar.js +0 -116
  737. package/packages/permission-system/node_modules/zod/v4/locales/az.cjs +0 -141
  738. package/packages/permission-system/node_modules/zod/v4/locales/az.d.cts +0 -4
  739. package/packages/permission-system/node_modules/zod/v4/locales/az.d.ts +0 -4
  740. package/packages/permission-system/node_modules/zod/v4/locales/az.js +0 -115
  741. package/packages/permission-system/node_modules/zod/v4/locales/be.cjs +0 -190
  742. package/packages/permission-system/node_modules/zod/v4/locales/be.d.cts +0 -4
  743. package/packages/permission-system/node_modules/zod/v4/locales/be.d.ts +0 -4
  744. package/packages/permission-system/node_modules/zod/v4/locales/be.js +0 -164
  745. package/packages/permission-system/node_modules/zod/v4/locales/ca.cjs +0 -144
  746. package/packages/permission-system/node_modules/zod/v4/locales/ca.d.cts +0 -4
  747. package/packages/permission-system/node_modules/zod/v4/locales/ca.d.ts +0 -4
  748. package/packages/permission-system/node_modules/zod/v4/locales/ca.js +0 -118
  749. package/packages/permission-system/node_modules/zod/v4/locales/cs.cjs +0 -161
  750. package/packages/permission-system/node_modules/zod/v4/locales/cs.d.cts +0 -4
  751. package/packages/permission-system/node_modules/zod/v4/locales/cs.d.ts +0 -4
  752. package/packages/permission-system/node_modules/zod/v4/locales/cs.js +0 -135
  753. package/packages/permission-system/node_modules/zod/v4/locales/de.cjs +0 -142
  754. package/packages/permission-system/node_modules/zod/v4/locales/de.d.cts +0 -4
  755. package/packages/permission-system/node_modules/zod/v4/locales/de.d.ts +0 -4
  756. package/packages/permission-system/node_modules/zod/v4/locales/de.js +0 -116
  757. package/packages/permission-system/node_modules/zod/v4/locales/en.cjs +0 -145
  758. package/packages/permission-system/node_modules/zod/v4/locales/en.d.cts +0 -5
  759. package/packages/permission-system/node_modules/zod/v4/locales/en.d.ts +0 -5
  760. package/packages/permission-system/node_modules/zod/v4/locales/en.js +0 -117
  761. package/packages/permission-system/node_modules/zod/v4/locales/eo.cjs +0 -144
  762. package/packages/permission-system/node_modules/zod/v4/locales/eo.d.cts +0 -5
  763. package/packages/permission-system/node_modules/zod/v4/locales/eo.d.ts +0 -5
  764. package/packages/permission-system/node_modules/zod/v4/locales/eo.js +0 -116
  765. package/packages/permission-system/node_modules/zod/v4/locales/es.cjs +0 -143
  766. package/packages/permission-system/node_modules/zod/v4/locales/es.d.cts +0 -4
  767. package/packages/permission-system/node_modules/zod/v4/locales/es.d.ts +0 -4
  768. package/packages/permission-system/node_modules/zod/v4/locales/es.js +0 -117
  769. package/packages/permission-system/node_modules/zod/v4/locales/fa.cjs +0 -148
  770. package/packages/permission-system/node_modules/zod/v4/locales/fa.d.cts +0 -4
  771. package/packages/permission-system/node_modules/zod/v4/locales/fa.d.ts +0 -4
  772. package/packages/permission-system/node_modules/zod/v4/locales/fa.js +0 -122
  773. package/packages/permission-system/node_modules/zod/v4/locales/fi.cjs +0 -148
  774. package/packages/permission-system/node_modules/zod/v4/locales/fi.d.cts +0 -4
  775. package/packages/permission-system/node_modules/zod/v4/locales/fi.d.ts +0 -4
  776. package/packages/permission-system/node_modules/zod/v4/locales/fi.js +0 -122
  777. package/packages/permission-system/node_modules/zod/v4/locales/fr-CA.cjs +0 -143
  778. package/packages/permission-system/node_modules/zod/v4/locales/fr-CA.d.cts +0 -4
  779. package/packages/permission-system/node_modules/zod/v4/locales/fr-CA.d.ts +0 -4
  780. package/packages/permission-system/node_modules/zod/v4/locales/fr-CA.js +0 -117
  781. package/packages/permission-system/node_modules/zod/v4/locales/fr.cjs +0 -142
  782. package/packages/permission-system/node_modules/zod/v4/locales/fr.d.cts +0 -4
  783. package/packages/permission-system/node_modules/zod/v4/locales/fr.d.ts +0 -4
  784. package/packages/permission-system/node_modules/zod/v4/locales/fr.js +0 -116
  785. package/packages/permission-system/node_modules/zod/v4/locales/he.cjs +0 -143
  786. package/packages/permission-system/node_modules/zod/v4/locales/he.d.cts +0 -4
  787. package/packages/permission-system/node_modules/zod/v4/locales/he.d.ts +0 -4
  788. package/packages/permission-system/node_modules/zod/v4/locales/he.js +0 -117
  789. package/packages/permission-system/node_modules/zod/v4/locales/hu.cjs +0 -143
  790. package/packages/permission-system/node_modules/zod/v4/locales/hu.d.cts +0 -4
  791. package/packages/permission-system/node_modules/zod/v4/locales/hu.d.ts +0 -4
  792. package/packages/permission-system/node_modules/zod/v4/locales/hu.js +0 -117
  793. package/packages/permission-system/node_modules/zod/v4/locales/id.cjs +0 -142
  794. package/packages/permission-system/node_modules/zod/v4/locales/id.d.cts +0 -4
  795. package/packages/permission-system/node_modules/zod/v4/locales/id.d.ts +0 -4
  796. package/packages/permission-system/node_modules/zod/v4/locales/id.js +0 -116
  797. package/packages/permission-system/node_modules/zod/v4/locales/index.cjs +0 -84
  798. package/packages/permission-system/node_modules/zod/v4/locales/index.d.cts +0 -39
  799. package/packages/permission-system/node_modules/zod/v4/locales/index.d.ts +0 -39
  800. package/packages/permission-system/node_modules/zod/v4/locales/index.js +0 -39
  801. package/packages/permission-system/node_modules/zod/v4/locales/it.cjs +0 -143
  802. package/packages/permission-system/node_modules/zod/v4/locales/it.d.cts +0 -4
  803. package/packages/permission-system/node_modules/zod/v4/locales/it.d.ts +0 -4
  804. package/packages/permission-system/node_modules/zod/v4/locales/it.js +0 -117
  805. package/packages/permission-system/node_modules/zod/v4/locales/ja.cjs +0 -141
  806. package/packages/permission-system/node_modules/zod/v4/locales/ja.d.cts +0 -4
  807. package/packages/permission-system/node_modules/zod/v4/locales/ja.d.ts +0 -4
  808. package/packages/permission-system/node_modules/zod/v4/locales/ja.js +0 -115
  809. package/packages/permission-system/node_modules/zod/v4/locales/kh.cjs +0 -143
  810. package/packages/permission-system/node_modules/zod/v4/locales/kh.d.cts +0 -4
  811. package/packages/permission-system/node_modules/zod/v4/locales/kh.d.ts +0 -4
  812. package/packages/permission-system/node_modules/zod/v4/locales/kh.js +0 -117
  813. package/packages/permission-system/node_modules/zod/v4/locales/ko.cjs +0 -147
  814. package/packages/permission-system/node_modules/zod/v4/locales/ko.d.cts +0 -4
  815. package/packages/permission-system/node_modules/zod/v4/locales/ko.d.ts +0 -4
  816. package/packages/permission-system/node_modules/zod/v4/locales/ko.js +0 -121
  817. package/packages/permission-system/node_modules/zod/v4/locales/mk.cjs +0 -144
  818. package/packages/permission-system/node_modules/zod/v4/locales/mk.d.cts +0 -4
  819. package/packages/permission-system/node_modules/zod/v4/locales/mk.d.ts +0 -4
  820. package/packages/permission-system/node_modules/zod/v4/locales/mk.js +0 -118
  821. package/packages/permission-system/node_modules/zod/v4/locales/ms.cjs +0 -142
  822. package/packages/permission-system/node_modules/zod/v4/locales/ms.d.cts +0 -4
  823. package/packages/permission-system/node_modules/zod/v4/locales/ms.d.ts +0 -4
  824. package/packages/permission-system/node_modules/zod/v4/locales/ms.js +0 -116
  825. package/packages/permission-system/node_modules/zod/v4/locales/nl.cjs +0 -143
  826. package/packages/permission-system/node_modules/zod/v4/locales/nl.d.cts +0 -4
  827. package/packages/permission-system/node_modules/zod/v4/locales/nl.d.ts +0 -4
  828. package/packages/permission-system/node_modules/zod/v4/locales/nl.js +0 -117
  829. package/packages/permission-system/node_modules/zod/v4/locales/no.cjs +0 -142
  830. package/packages/permission-system/node_modules/zod/v4/locales/no.d.cts +0 -4
  831. package/packages/permission-system/node_modules/zod/v4/locales/no.d.ts +0 -4
  832. package/packages/permission-system/node_modules/zod/v4/locales/no.js +0 -116
  833. package/packages/permission-system/node_modules/zod/v4/locales/ota.cjs +0 -143
  834. package/packages/permission-system/node_modules/zod/v4/locales/ota.d.cts +0 -4
  835. package/packages/permission-system/node_modules/zod/v4/locales/ota.d.ts +0 -4
  836. package/packages/permission-system/node_modules/zod/v4/locales/ota.js +0 -117
  837. package/packages/permission-system/node_modules/zod/v4/locales/pl.cjs +0 -143
  838. package/packages/permission-system/node_modules/zod/v4/locales/pl.d.cts +0 -4
  839. package/packages/permission-system/node_modules/zod/v4/locales/pl.d.ts +0 -4
  840. package/packages/permission-system/node_modules/zod/v4/locales/pl.js +0 -117
  841. package/packages/permission-system/node_modules/zod/v4/locales/ps.cjs +0 -148
  842. package/packages/permission-system/node_modules/zod/v4/locales/ps.d.cts +0 -4
  843. package/packages/permission-system/node_modules/zod/v4/locales/ps.d.ts +0 -4
  844. package/packages/permission-system/node_modules/zod/v4/locales/ps.js +0 -122
  845. package/packages/permission-system/node_modules/zod/v4/locales/pt.cjs +0 -142
  846. package/packages/permission-system/node_modules/zod/v4/locales/pt.d.cts +0 -4
  847. package/packages/permission-system/node_modules/zod/v4/locales/pt.d.ts +0 -4
  848. package/packages/permission-system/node_modules/zod/v4/locales/pt.js +0 -116
  849. package/packages/permission-system/node_modules/zod/v4/locales/ru.cjs +0 -190
  850. package/packages/permission-system/node_modules/zod/v4/locales/ru.d.cts +0 -4
  851. package/packages/permission-system/node_modules/zod/v4/locales/ru.d.ts +0 -4
  852. package/packages/permission-system/node_modules/zod/v4/locales/ru.js +0 -164
  853. package/packages/permission-system/node_modules/zod/v4/locales/sl.cjs +0 -143
  854. package/packages/permission-system/node_modules/zod/v4/locales/sl.d.cts +0 -4
  855. package/packages/permission-system/node_modules/zod/v4/locales/sl.d.ts +0 -4
  856. package/packages/permission-system/node_modules/zod/v4/locales/sl.js +0 -117
  857. package/packages/permission-system/node_modules/zod/v4/locales/sv.cjs +0 -144
  858. package/packages/permission-system/node_modules/zod/v4/locales/sv.d.cts +0 -4
  859. package/packages/permission-system/node_modules/zod/v4/locales/sv.d.ts +0 -4
  860. package/packages/permission-system/node_modules/zod/v4/locales/sv.js +0 -118
  861. package/packages/permission-system/node_modules/zod/v4/locales/ta.cjs +0 -143
  862. package/packages/permission-system/node_modules/zod/v4/locales/ta.d.cts +0 -4
  863. package/packages/permission-system/node_modules/zod/v4/locales/ta.d.ts +0 -4
  864. package/packages/permission-system/node_modules/zod/v4/locales/ta.js +0 -117
  865. package/packages/permission-system/node_modules/zod/v4/locales/th.cjs +0 -143
  866. package/packages/permission-system/node_modules/zod/v4/locales/th.d.cts +0 -4
  867. package/packages/permission-system/node_modules/zod/v4/locales/th.d.ts +0 -4
  868. package/packages/permission-system/node_modules/zod/v4/locales/th.js +0 -117
  869. package/packages/permission-system/node_modules/zod/v4/locales/tr.cjs +0 -143
  870. package/packages/permission-system/node_modules/zod/v4/locales/tr.d.cts +0 -5
  871. package/packages/permission-system/node_modules/zod/v4/locales/tr.d.ts +0 -5
  872. package/packages/permission-system/node_modules/zod/v4/locales/tr.js +0 -115
  873. package/packages/permission-system/node_modules/zod/v4/locales/ua.cjs +0 -143
  874. package/packages/permission-system/node_modules/zod/v4/locales/ua.d.cts +0 -4
  875. package/packages/permission-system/node_modules/zod/v4/locales/ua.d.ts +0 -4
  876. package/packages/permission-system/node_modules/zod/v4/locales/ua.js +0 -117
  877. package/packages/permission-system/node_modules/zod/v4/locales/ur.cjs +0 -143
  878. package/packages/permission-system/node_modules/zod/v4/locales/ur.d.cts +0 -4
  879. package/packages/permission-system/node_modules/zod/v4/locales/ur.d.ts +0 -4
  880. package/packages/permission-system/node_modules/zod/v4/locales/ur.js +0 -117
  881. package/packages/permission-system/node_modules/zod/v4/locales/vi.cjs +0 -142
  882. package/packages/permission-system/node_modules/zod/v4/locales/vi.d.cts +0 -4
  883. package/packages/permission-system/node_modules/zod/v4/locales/vi.d.ts +0 -4
  884. package/packages/permission-system/node_modules/zod/v4/locales/vi.js +0 -116
  885. package/packages/permission-system/node_modules/zod/v4/locales/zh-CN.cjs +0 -142
  886. package/packages/permission-system/node_modules/zod/v4/locales/zh-CN.d.cts +0 -4
  887. package/packages/permission-system/node_modules/zod/v4/locales/zh-CN.d.ts +0 -4
  888. package/packages/permission-system/node_modules/zod/v4/locales/zh-CN.js +0 -116
  889. package/packages/permission-system/node_modules/zod/v4/locales/zh-TW.cjs +0 -143
  890. package/packages/permission-system/node_modules/zod/v4/locales/zh-TW.d.cts +0 -4
  891. package/packages/permission-system/node_modules/zod/v4/locales/zh-TW.d.ts +0 -4
  892. package/packages/permission-system/node_modules/zod/v4/locales/zh-TW.js +0 -117
  893. package/packages/permission-system/node_modules/zod/v4/mini/checks.cjs +0 -34
  894. package/packages/permission-system/node_modules/zod/v4/mini/checks.d.cts +0 -1
  895. package/packages/permission-system/node_modules/zod/v4/mini/checks.d.ts +0 -1
  896. package/packages/permission-system/node_modules/zod/v4/mini/checks.js +0 -1
  897. package/packages/permission-system/node_modules/zod/v4/mini/coerce.cjs +0 -47
  898. package/packages/permission-system/node_modules/zod/v4/mini/coerce.d.cts +0 -7
  899. package/packages/permission-system/node_modules/zod/v4/mini/coerce.d.ts +0 -7
  900. package/packages/permission-system/node_modules/zod/v4/mini/coerce.js +0 -17
  901. package/packages/permission-system/node_modules/zod/v4/mini/external.cjs +0 -62
  902. package/packages/permission-system/node_modules/zod/v4/mini/external.d.cts +0 -11
  903. package/packages/permission-system/node_modules/zod/v4/mini/external.d.ts +0 -11
  904. package/packages/permission-system/node_modules/zod/v4/mini/external.js +0 -13
  905. package/packages/permission-system/node_modules/zod/v4/mini/index.cjs +0 -32
  906. package/packages/permission-system/node_modules/zod/v4/mini/index.d.cts +0 -3
  907. package/packages/permission-system/node_modules/zod/v4/mini/index.d.ts +0 -3
  908. package/packages/permission-system/node_modules/zod/v4/mini/index.js +0 -3
  909. package/packages/permission-system/node_modules/zod/v4/mini/iso.cjs +0 -60
  910. package/packages/permission-system/node_modules/zod/v4/mini/iso.d.cts +0 -22
  911. package/packages/permission-system/node_modules/zod/v4/mini/iso.d.ts +0 -22
  912. package/packages/permission-system/node_modules/zod/v4/mini/iso.js +0 -30
  913. package/packages/permission-system/node_modules/zod/v4/mini/parse.cjs +0 -8
  914. package/packages/permission-system/node_modules/zod/v4/mini/parse.d.cts +0 -1
  915. package/packages/permission-system/node_modules/zod/v4/mini/parse.d.ts +0 -1
  916. package/packages/permission-system/node_modules/zod/v4/mini/parse.js +0 -1
  917. package/packages/permission-system/node_modules/zod/v4/mini/schemas.cjs +0 -839
  918. package/packages/permission-system/node_modules/zod/v4/mini/schemas.d.cts +0 -356
  919. package/packages/permission-system/node_modules/zod/v4/mini/schemas.d.ts +0 -356
  920. package/packages/permission-system/node_modules/zod/v4/mini/schemas.js +0 -732
  921. package/packages/permission-system/node_modules/zod/v4-mini/index.cjs +0 -17
  922. package/packages/permission-system/node_modules/zod/v4-mini/index.d.cts +0 -1
  923. package/packages/permission-system/node_modules/zod/v4-mini/index.d.ts +0 -1
  924. package/packages/permission-system/node_modules/zod/v4-mini/index.js +0 -1
@@ -1,1937 +0,0 @@
1
- #include "tree_sitter/api.h"
2
- #include "./parser.h"
3
- #include <stdint.h>
4
-
5
- #ifdef TREE_SITTER_FEATURE_WASM
6
-
7
- #include "./alloc.h"
8
- #include "./array.h"
9
- #include "./atomic.h"
10
- #include "./language.h"
11
- #include "./lexer.h"
12
- #include "./wasm/wasm-stdlib.h"
13
- #include "./wasm_store.h"
14
-
15
- #include <string.h>
16
- #include <wasm.h>
17
- #include <wasmtime.h>
18
-
19
- #ifdef _MSC_VER
20
- #pragma warning(push)
21
- #pragma warning(disable : 4100)
22
- #elif defined(__GNUC__) || defined(__clang__)
23
- #pragma GCC diagnostic push
24
- #pragma GCC diagnostic ignored "-Wunused-parameter"
25
- #endif
26
-
27
- #define array_len(a) (sizeof(a) / sizeof(a[0]))
28
-
29
- // The following symbols from the C and C++ standard libraries are available
30
- // for external scanners to use.
31
- const char *STDLIB_SYMBOLS[] = {
32
- #include "./stdlib-symbols.txt"
33
- };
34
-
35
- // The contents of the `dylink.0` custom section of a wasm module,
36
- // as specified by the current WebAssembly dynamic linking ABI proposal.
37
- typedef struct {
38
- uint32_t memory_size;
39
- uint32_t memory_align;
40
- uint32_t table_size;
41
- uint32_t table_align;
42
- } WasmDylinkInfo;
43
-
44
- // WasmLanguageId - A pointer used to identify a language. This language id is
45
- // reference-counted, so that its ownership can be shared between the language
46
- // itself and the instances of the language that are held in wasm stores.
47
- typedef struct {
48
- volatile uint32_t ref_count;
49
- volatile uint32_t is_language_deleted;
50
- } WasmLanguageId;
51
-
52
- // LanguageWasmModule - Additional data associated with a wasm-backed
53
- // `TSLanguage`. This data is read-only and does not reference a particular
54
- // wasm store, so it can be shared by all users of a `TSLanguage`. A pointer to
55
- // this is stored on the language itself.
56
- typedef struct {
57
- volatile uint32_t ref_count;
58
- WasmLanguageId *language_id;
59
- wasmtime_module_t *module;
60
- const char *name;
61
- char *symbol_name_buffer;
62
- char *field_name_buffer;
63
- WasmDylinkInfo dylink_info;
64
- } LanguageWasmModule;
65
-
66
- // LanguageWasmInstance - Additional data associated with an instantiation of
67
- // a `TSLanguage` in a particular wasm store. The wasm store holds one of
68
- // these structs for each language that it has instantiated.
69
- typedef struct {
70
- WasmLanguageId *language_id;
71
- wasmtime_instance_t instance;
72
- int32_t external_states_address;
73
- int32_t lex_main_fn_index;
74
- int32_t lex_keyword_fn_index;
75
- int32_t scanner_create_fn_index;
76
- int32_t scanner_destroy_fn_index;
77
- int32_t scanner_serialize_fn_index;
78
- int32_t scanner_deserialize_fn_index;
79
- int32_t scanner_scan_fn_index;
80
- } LanguageWasmInstance;
81
-
82
- typedef struct {
83
- uint32_t reset_heap;
84
- uint32_t proc_exit;
85
- uint32_t abort;
86
- uint32_t assert_fail;
87
- uint32_t notify_memory_growth;
88
- uint32_t debug_message;
89
- uint32_t at_exit;
90
- uint32_t args_get;
91
- uint32_t args_sizes_get;
92
- } BuiltinFunctionIndices;
93
-
94
- // TSWasmStore - A struct that allows a given `Parser` to use wasm-backed
95
- // languages. This struct is mutable, and can only be used by one parser at a
96
- // time.
97
- struct TSWasmStore {
98
- wasm_engine_t *engine;
99
- wasmtime_store_t *store;
100
- wasmtime_table_t function_table;
101
- wasmtime_memory_t memory;
102
- TSLexer *current_lexer;
103
- LanguageWasmInstance *current_instance;
104
- Array(LanguageWasmInstance) language_instances;
105
- uint32_t current_memory_offset;
106
- uint32_t current_function_table_offset;
107
- uint32_t *stdlib_fn_indices;
108
- BuiltinFunctionIndices builtin_fn_indices;
109
- wasmtime_global_t stack_pointer_global;
110
- wasm_globaltype_t *const_i32_type;
111
- bool has_error;
112
- uint32_t lexer_address;
113
- };
114
-
115
- typedef Array(char) StringData;
116
-
117
- // LanguageInWasmMemory - The memory layout of a `TSLanguage` when compiled to
118
- // wasm32. This is used to copy static language data out of the wasm memory.
119
- typedef struct {
120
- uint32_t abi_version;
121
- uint32_t symbol_count;
122
- uint32_t alias_count;
123
- uint32_t token_count;
124
- uint32_t external_token_count;
125
- uint32_t state_count;
126
- uint32_t large_state_count;
127
- uint32_t production_id_count;
128
- uint32_t field_count;
129
- uint16_t max_alias_sequence_length;
130
- int32_t parse_table;
131
- int32_t small_parse_table;
132
- int32_t small_parse_table_map;
133
- int32_t parse_actions;
134
- int32_t symbol_names;
135
- int32_t field_names;
136
- int32_t field_map_slices;
137
- int32_t field_map_entries;
138
- int32_t symbol_metadata;
139
- int32_t public_symbol_map;
140
- int32_t alias_map;
141
- int32_t alias_sequences;
142
- int32_t lex_modes;
143
- int32_t lex_fn;
144
- int32_t keyword_lex_fn;
145
- TSSymbol keyword_capture_token;
146
- struct {
147
- int32_t states;
148
- int32_t symbol_map;
149
- int32_t create;
150
- int32_t destroy;
151
- int32_t scan;
152
- int32_t serialize;
153
- int32_t deserialize;
154
- } external_scanner;
155
- int32_t primary_state_ids;
156
- int32_t name;
157
- int32_t reserved_words;
158
- uint16_t max_reserved_word_set_size;
159
- uint32_t supertype_count;
160
- int32_t supertype_symbols;
161
- int32_t supertype_map_slices;
162
- int32_t supertype_map_entries;
163
- TSLanguageMetadata metadata;
164
- } LanguageInWasmMemory;
165
-
166
- // LexerInWasmMemory - The memory layout of a `TSLexer` when compiled to wasm32.
167
- // This is used to copy mutable lexing state in and out of the wasm memory.
168
- typedef struct {
169
- int32_t lookahead;
170
- TSSymbol result_symbol;
171
- int32_t advance;
172
- int32_t mark_end;
173
- int32_t get_column;
174
- int32_t is_at_included_range_start;
175
- int32_t eof;
176
- } LexerInWasmMemory;
177
-
178
- // Linear memory layout:
179
- // [ <-- stack | stdlib statics | lexer | language statics --> | serialization_buffer | heap --> ]
180
- #define MAX_MEMORY_SIZE (128 * 1024 * 1024 / MEMORY_PAGE_SIZE)
181
-
182
- /************************
183
- * WasmDylinkMemoryInfo
184
- ***********************/
185
-
186
- static uint8_t read_u8(const uint8_t **p) {
187
- return *(*p)++;
188
- }
189
-
190
- static inline uint64_t read_uleb128(const uint8_t **p, const uint8_t *end) {
191
- uint64_t value = 0;
192
- unsigned shift = 0;
193
- do {
194
- if (*p == end) return UINT64_MAX;
195
- value += (uint64_t)(**p & 0x7f) << shift;
196
- shift += 7;
197
- } while (*((*p)++) >= 128);
198
- return value;
199
- }
200
-
201
- static bool wasm_dylink_info__parse(
202
- const uint8_t *bytes,
203
- size_t length,
204
- WasmDylinkInfo *info
205
- ) {
206
- const uint8_t WASM_MAGIC_NUMBER[4] = {0, 'a', 's', 'm'};
207
- const uint8_t WASM_VERSION[4] = {1, 0, 0, 0};
208
- const uint8_t WASM_CUSTOM_SECTION = 0x0;
209
- const uint8_t WASM_DYLINK_MEM_INFO = 0x1;
210
-
211
- const uint8_t *p = bytes;
212
- const uint8_t *end = bytes + length;
213
-
214
- if (length < 8) return false;
215
- if (memcmp(p, WASM_MAGIC_NUMBER, 4) != 0) return false;
216
- p += 4;
217
- if (memcmp(p, WASM_VERSION, 4) != 0) return false;
218
- p += 4;
219
-
220
- while (p < end) {
221
- uint8_t section_id = read_u8(&p);
222
- uint32_t section_length = read_uleb128(&p, end);
223
- const uint8_t *section_end = p + section_length;
224
- if (section_end > end) return false;
225
-
226
- if (section_id == WASM_CUSTOM_SECTION) {
227
- uint32_t name_length = read_uleb128(&p, section_end);
228
- const uint8_t *name_end = p + name_length;
229
- if (name_end > section_end) return false;
230
-
231
- if (name_length == 8 && memcmp(p, "dylink.0", 8) == 0) {
232
- p = name_end;
233
- while (p < section_end) {
234
- uint8_t subsection_type = read_u8(&p);
235
- uint32_t subsection_size = read_uleb128(&p, section_end);
236
- const uint8_t *subsection_end = p + subsection_size;
237
- if (subsection_end > section_end) return false;
238
- if (subsection_type == WASM_DYLINK_MEM_INFO) {
239
- info->memory_size = read_uleb128(&p, subsection_end);
240
- info->memory_align = read_uleb128(&p, subsection_end);
241
- info->table_size = read_uleb128(&p, subsection_end);
242
- info->table_align = read_uleb128(&p, subsection_end);
243
- return true;
244
- }
245
- p = subsection_end;
246
- }
247
- }
248
- }
249
- p = section_end;
250
- }
251
- return false;
252
- }
253
-
254
- /*******************************************
255
- * Native callbacks exposed to wasm modules
256
- *******************************************/
257
-
258
- static wasm_trap_t *callback__abort(
259
- void *env,
260
- wasmtime_caller_t* caller,
261
- wasmtime_val_raw_t *args_and_results,
262
- size_t args_and_results_len
263
- ) {
264
- return wasmtime_trap_new("wasm module called abort", 24);
265
- }
266
-
267
- static wasm_trap_t *callback__debug_message(
268
- void *env,
269
- wasmtime_caller_t* caller,
270
- wasmtime_val_raw_t *args_and_results,
271
- size_t args_and_results_len
272
- ) {
273
- wasmtime_context_t *context = wasmtime_caller_context(caller);
274
- TSWasmStore *store = env;
275
- ts_assert(args_and_results_len == 2);
276
- uint32_t string_address = args_and_results[0].i32;
277
- uint32_t value = args_and_results[1].i32;
278
- uint8_t *memory = wasmtime_memory_data(context, &store->memory);
279
- printf("DEBUG: %s %u\n", &memory[string_address], value);
280
- return NULL;
281
- }
282
-
283
- static wasm_trap_t *callback__noop(
284
- void *env,
285
- wasmtime_caller_t* caller,
286
- wasmtime_val_raw_t *args_and_results,
287
- size_t args_and_results_len
288
- ) {
289
- return NULL;
290
- }
291
-
292
- static wasm_trap_t *callback__lexer_advance(
293
- void *env,
294
- wasmtime_caller_t* caller,
295
- wasmtime_val_raw_t *args_and_results,
296
- size_t args_and_results_len
297
- ) {
298
- wasmtime_context_t *context = wasmtime_caller_context(caller);
299
- ts_assert(args_and_results_len == 2);
300
-
301
- TSWasmStore *store = env;
302
- TSLexer *lexer = store->current_lexer;
303
- bool skip = args_and_results[1].i32;
304
- lexer->advance(lexer, skip);
305
-
306
- uint8_t *memory = wasmtime_memory_data(context, &store->memory);
307
- memcpy(&memory[store->lexer_address], &lexer->lookahead, sizeof(lexer->lookahead));
308
- return NULL;
309
- }
310
-
311
- static wasm_trap_t *callback__lexer_mark_end(
312
- void *env,
313
- wasmtime_caller_t* caller,
314
- wasmtime_val_raw_t *args_and_results,
315
- size_t args_and_results_len
316
- ) {
317
- TSWasmStore *store = env;
318
- TSLexer *lexer = store->current_lexer;
319
- lexer->mark_end(lexer);
320
- return NULL;
321
- }
322
-
323
- static wasm_trap_t *callback__lexer_get_column(
324
- void *env,
325
- wasmtime_caller_t* caller,
326
- wasmtime_val_raw_t *args_and_results,
327
- size_t args_and_results_len
328
- ) {
329
- TSWasmStore *store = env;
330
- TSLexer *lexer = store->current_lexer;
331
- uint32_t result = lexer->get_column(lexer);
332
- args_and_results[0].i32 = result;
333
- return NULL;
334
- }
335
-
336
- static wasm_trap_t *callback__lexer_is_at_included_range_start(
337
- void *env,
338
- wasmtime_caller_t* caller,
339
- wasmtime_val_raw_t *args_and_results,
340
- size_t args_and_results_len
341
- ) {
342
- TSWasmStore *store = env;
343
- TSLexer *lexer = store->current_lexer;
344
- bool result = lexer->is_at_included_range_start(lexer);
345
- args_and_results[0].i32 = result;
346
- return NULL;
347
- }
348
-
349
- static wasm_trap_t *callback__lexer_eof(
350
- void *env,
351
- wasmtime_caller_t* caller,
352
- wasmtime_val_raw_t *args_and_results,
353
- size_t args_and_results_len
354
- ) {
355
- TSWasmStore *store = env;
356
- TSLexer *lexer = store->current_lexer;
357
- bool result = lexer->eof(lexer);
358
- args_and_results[0].i32 = result;
359
- return NULL;
360
- }
361
-
362
- typedef struct {
363
- uint32_t *storage_location;
364
- wasmtime_func_unchecked_callback_t callback;
365
- wasm_functype_t *type;
366
- } FunctionDefinition;
367
-
368
- static void *copy(const void *data, size_t size) {
369
- void *result = ts_malloc(size);
370
- memcpy(result, data, size);
371
- return result;
372
- }
373
-
374
- static void *copy_unsized_static_array(
375
- const uint8_t *data,
376
- int32_t start_address,
377
- const int32_t all_addresses[],
378
- size_t address_count
379
- ) {
380
- int32_t end_address = 0;
381
- for (unsigned i = 0; i < address_count; i++) {
382
- if (all_addresses[i] > start_address) {
383
- if (!end_address || all_addresses[i] < end_address) {
384
- end_address = all_addresses[i];
385
- }
386
- }
387
- }
388
-
389
- if (!end_address) return NULL;
390
- size_t size = end_address - start_address;
391
- void *result = ts_malloc(size);
392
- memcpy(result, &data[start_address], size);
393
- return result;
394
- }
395
-
396
- static void *copy_strings(
397
- const uint8_t *data,
398
- int32_t array_address,
399
- size_t count,
400
- StringData *string_data
401
- ) {
402
- const char **result = ts_malloc(count * sizeof(char *));
403
- for (unsigned i = 0; i < count; i++) {
404
- int32_t address;
405
- memcpy(&address, &data[array_address + i * sizeof(address)], sizeof(address));
406
- if (address == 0) {
407
- result[i] = (const char *)-1;
408
- } else {
409
- const uint8_t *string = &data[address];
410
- uint32_t len = strlen((const char *)string);
411
- result[i] = (const char *)(uintptr_t)string_data->size;
412
- array_extend(string_data, len + 1, string);
413
- }
414
- }
415
- for (unsigned i = 0; i < count; i++) {
416
- if (result[i] == (const char *)-1) {
417
- result[i] = NULL;
418
- } else {
419
- result[i] = string_data->contents + (uintptr_t)result[i];
420
- }
421
- }
422
- return result;
423
- }
424
-
425
- static void *copy_string(
426
- const uint8_t *data,
427
- int32_t address
428
- ) {
429
- const char *string = (const char *)&data[address];
430
- size_t len = strlen(string);
431
- char *result = ts_malloc(len + 1);
432
- memcpy(result, string, len + 1);
433
- return result;
434
- }
435
-
436
- static bool name_eq(const wasm_name_t *name, const char *string) {
437
- return strncmp(string, name->data, name->size) == 0;
438
- }
439
-
440
- static inline wasm_functype_t* wasm_functype_new_4_0(
441
- wasm_valtype_t* p1,
442
- wasm_valtype_t* p2,
443
- wasm_valtype_t* p3,
444
- wasm_valtype_t* p4
445
- ) {
446
- wasm_valtype_t* ps[4] = {p1, p2, p3, p4};
447
- wasm_valtype_vec_t params, results;
448
- wasm_valtype_vec_new(&params, 4, ps);
449
- wasm_valtype_vec_new_empty(&results);
450
- return wasm_functype_new(&params, &results);
451
- }
452
-
453
- #define format(output, ...) \
454
- do { \
455
- size_t message_length = snprintf((char *)NULL, 0, __VA_ARGS__); \
456
- *output = ts_malloc(message_length + 1); \
457
- snprintf(*output, message_length + 1, __VA_ARGS__); \
458
- } while (0)
459
-
460
- WasmLanguageId *language_id_new(void) {
461
- WasmLanguageId *self = ts_malloc(sizeof(WasmLanguageId));
462
- self->is_language_deleted = false;
463
- self->ref_count = 1;
464
- return self;
465
- }
466
-
467
- WasmLanguageId *language_id_clone(WasmLanguageId *self) {
468
- atomic_inc(&self->ref_count);
469
- return self;
470
- }
471
-
472
- void language_id_delete(WasmLanguageId *self) {
473
- if (atomic_dec(&self->ref_count) == 0) {
474
- ts_free(self);
475
- }
476
- }
477
-
478
- static wasmtime_extern_t get_builtin_extern(
479
- wasmtime_table_t *table,
480
- unsigned index
481
- ) {
482
- return (wasmtime_extern_t) {
483
- .kind = WASMTIME_EXTERN_FUNC,
484
- .of.func = (wasmtime_func_t) {
485
- .store_id = table->store_id,
486
- .__private = index
487
- }
488
- };
489
- }
490
-
491
- static bool ts_wasm_store__provide_builtin_import(
492
- TSWasmStore *self,
493
- const wasm_name_t *import_name,
494
- wasmtime_extern_t *import
495
- ) {
496
- wasmtime_error_t *error = NULL;
497
- wasmtime_context_t *context = wasmtime_store_context(self->store);
498
-
499
- // Dynamic linking parameters
500
- if (name_eq(import_name, "__memory_base")) {
501
- wasmtime_val_t value = WASM_I32_VAL(self->current_memory_offset);
502
- wasmtime_global_t global;
503
- error = wasmtime_global_new(context, self->const_i32_type, &value, &global);
504
- ts_assert(!error);
505
- *import = (wasmtime_extern_t) {.kind = WASMTIME_EXTERN_GLOBAL, .of.global = global};
506
- } else if (name_eq(import_name, "__table_base")) {
507
- wasmtime_val_t value = WASM_I32_VAL(self->current_function_table_offset);
508
- wasmtime_global_t global;
509
- error = wasmtime_global_new(context, self->const_i32_type, &value, &global);
510
- ts_assert(!error);
511
- *import = (wasmtime_extern_t) {.kind = WASMTIME_EXTERN_GLOBAL, .of.global = global};
512
- } else if (name_eq(import_name, "__stack_pointer")) {
513
- *import = (wasmtime_extern_t) {.kind = WASMTIME_EXTERN_GLOBAL, .of.global = self->stack_pointer_global};
514
- } else if (name_eq(import_name, "__indirect_function_table")) {
515
- *import = (wasmtime_extern_t) {.kind = WASMTIME_EXTERN_TABLE, .of.table = self->function_table};
516
- } else if (name_eq(import_name, "memory")) {
517
- *import = (wasmtime_extern_t) {.kind = WASMTIME_EXTERN_MEMORY, .of.memory = self->memory};
518
- }
519
-
520
- // Builtin functions
521
- else if (name_eq(import_name, "__assert_fail")) {
522
- *import = get_builtin_extern(&self->function_table, self->builtin_fn_indices.assert_fail);
523
- } else if (name_eq(import_name, "__cxa_atexit")) {
524
- *import = get_builtin_extern(&self->function_table, self->builtin_fn_indices.at_exit);
525
- } else if (name_eq(import_name, "args_get")) {
526
- *import = get_builtin_extern(&self->function_table, self->builtin_fn_indices.args_get);
527
- } else if (name_eq(import_name, "args_sizes_get")) {
528
- *import = get_builtin_extern(&self->function_table, self->builtin_fn_indices.args_sizes_get);
529
- } else if (name_eq(import_name, "abort")) {
530
- *import = get_builtin_extern(&self->function_table, self->builtin_fn_indices.abort);
531
- } else if (name_eq(import_name, "proc_exit")) {
532
- *import = get_builtin_extern(&self->function_table, self->builtin_fn_indices.proc_exit);
533
- } else if (name_eq(import_name, "emscripten_notify_memory_growth")) {
534
- *import = get_builtin_extern(&self->function_table, self->builtin_fn_indices.notify_memory_growth);
535
- } else if (name_eq(import_name, "tree_sitter_debug_message")) {
536
- *import = get_builtin_extern(&self->function_table, self->builtin_fn_indices.debug_message);
537
- } else {
538
- return false;
539
- }
540
-
541
- return true;
542
- }
543
-
544
- static bool ts_wasm_store__call_module_initializer(
545
- TSWasmStore *self,
546
- const wasm_name_t *export_name,
547
- wasmtime_extern_t *export,
548
- wasm_trap_t **trap
549
- ) {
550
- if (
551
- name_eq(export_name, "_initialize") ||
552
- name_eq(export_name, "__wasm_apply_data_relocs") ||
553
- name_eq(export_name, "__wasm_call_ctors")
554
- ) {
555
- wasmtime_context_t *context = wasmtime_store_context(self->store);
556
- wasmtime_func_t initialization_func = export->of.func;
557
- wasmtime_error_t *error = wasmtime_func_call(context, &initialization_func, NULL, 0, NULL, 0, trap);
558
- ts_assert(!error);
559
- return true;
560
- } else {
561
- return false;
562
- }
563
- }
564
-
565
- TSWasmStore *ts_wasm_store_new(TSWasmEngine *engine, TSWasmError *wasm_error) {
566
- TSWasmStore *self = ts_calloc(1, sizeof(TSWasmStore));
567
- wasmtime_store_t *store = wasmtime_store_new(engine, self, NULL);
568
- wasmtime_context_t *context = wasmtime_store_context(store);
569
- wasmtime_error_t *error = NULL;
570
- wasm_trap_t *trap = NULL;
571
- wasm_message_t message = WASM_EMPTY_VEC;
572
- wasm_exporttype_vec_t export_types = WASM_EMPTY_VEC;
573
- wasm_importtype_vec_t import_types = WASM_EMPTY_VEC;
574
- wasmtime_extern_t *imports = NULL;
575
- wasmtime_module_t *stdlib_module = NULL;
576
- wasm_memorytype_t *memory_type = NULL;
577
- wasm_tabletype_t *table_type = NULL;
578
-
579
- // Define functions called by scanners via function pointers on the lexer.
580
- LexerInWasmMemory lexer = {
581
- .lookahead = 0,
582
- .result_symbol = 0,
583
- };
584
- FunctionDefinition lexer_definitions[] = {
585
- {
586
- (uint32_t *)&lexer.advance,
587
- callback__lexer_advance,
588
- wasm_functype_new_2_0(wasm_valtype_new_i32(), wasm_valtype_new_i32())
589
- },
590
- {
591
- (uint32_t *)&lexer.mark_end,
592
- callback__lexer_mark_end,
593
- wasm_functype_new_1_0(wasm_valtype_new_i32())
594
- },
595
- {
596
- (uint32_t *)&lexer.get_column,
597
- callback__lexer_get_column,
598
- wasm_functype_new_1_1(wasm_valtype_new_i32(), wasm_valtype_new_i32())
599
- },
600
- {
601
- (uint32_t *)&lexer.is_at_included_range_start,
602
- callback__lexer_is_at_included_range_start,
603
- wasm_functype_new_1_1(wasm_valtype_new_i32(), wasm_valtype_new_i32())
604
- },
605
- {
606
- (uint32_t *)&lexer.eof,
607
- callback__lexer_eof,
608
- wasm_functype_new_1_1(wasm_valtype_new_i32(), wasm_valtype_new_i32())
609
- },
610
- };
611
-
612
- // Define builtin functions that can be imported by scanners.
613
- BuiltinFunctionIndices builtin_fn_indices;
614
- FunctionDefinition builtin_definitions[] = {
615
- {
616
- &builtin_fn_indices.proc_exit,
617
- callback__abort,
618
- wasm_functype_new_1_0(wasm_valtype_new_i32())
619
- },
620
- {
621
- &builtin_fn_indices.abort,
622
- callback__abort,
623
- wasm_functype_new_0_0()
624
- },
625
- {
626
- &builtin_fn_indices.assert_fail,
627
- callback__abort,
628
- wasm_functype_new_4_0(wasm_valtype_new_i32(), wasm_valtype_new_i32(), wasm_valtype_new_i32(), wasm_valtype_new_i32())
629
- },
630
- {
631
- &builtin_fn_indices.notify_memory_growth,
632
- callback__noop,
633
- wasm_functype_new_1_0(wasm_valtype_new_i32())
634
- },
635
- {
636
- &builtin_fn_indices.debug_message,
637
- callback__debug_message,
638
- wasm_functype_new_2_0(wasm_valtype_new_i32(), wasm_valtype_new_i32())
639
- },
640
- {
641
- &builtin_fn_indices.at_exit,
642
- callback__noop,
643
- wasm_functype_new_3_1(wasm_valtype_new_i32(), wasm_valtype_new_i32(), wasm_valtype_new_i32(), wasm_valtype_new_i32())
644
- },
645
- {
646
- &builtin_fn_indices.args_get,
647
- callback__noop,
648
- wasm_functype_new_2_1(wasm_valtype_new_i32(), wasm_valtype_new_i32(), wasm_valtype_new_i32())
649
- },
650
- {
651
- &builtin_fn_indices.args_sizes_get,
652
- callback__noop,
653
- wasm_functype_new_2_1(wasm_valtype_new_i32(), wasm_valtype_new_i32(), wasm_valtype_new_i32())
654
- },
655
- };
656
-
657
- // Create all of the wasm functions.
658
- unsigned builtin_definitions_len = array_len(builtin_definitions);
659
- unsigned lexer_definitions_len = array_len(lexer_definitions);
660
- for (unsigned i = 0; i < builtin_definitions_len; i++) {
661
- FunctionDefinition *definition = &builtin_definitions[i];
662
- wasmtime_func_t func;
663
- wasmtime_func_new_unchecked(context, definition->type, definition->callback, self, NULL, &func);
664
- *definition->storage_location = func.__private;
665
- wasm_functype_delete(definition->type);
666
- }
667
- for (unsigned i = 0; i < lexer_definitions_len; i++) {
668
- FunctionDefinition *definition = &lexer_definitions[i];
669
- wasmtime_func_t func;
670
- wasmtime_func_new_unchecked(context, definition->type, definition->callback, self, NULL, &func);
671
- *definition->storage_location = func.__private;
672
- wasm_functype_delete(definition->type);
673
- }
674
-
675
- // Compile the stdlib module.
676
- error = wasmtime_module_new(engine, STDLIB_WASM, STDLIB_WASM_LEN, &stdlib_module);
677
- if (error) {
678
- wasmtime_error_message(error, &message);
679
- wasm_error->kind = TSWasmErrorKindCompile;
680
- format(
681
- &wasm_error->message,
682
- "failed to compile wasm stdlib: %.*s",
683
- (int)message.size, message.data
684
- );
685
- goto error;
686
- }
687
-
688
- // Retrieve the stdlib module's imports.
689
- wasmtime_module_imports(stdlib_module, &import_types);
690
-
691
- // Find the initial number of memory pages needed by the stdlib.
692
- const wasm_memorytype_t *stdlib_memory_type = NULL;
693
- for (unsigned i = 0; i < import_types.size; i++) {
694
- wasm_importtype_t *import_type = import_types.data[i];
695
- const wasm_name_t *import_name = wasm_importtype_name(import_type);
696
- if (name_eq(import_name, "memory")) {
697
- const wasm_externtype_t *type = wasm_importtype_type(import_type);
698
- stdlib_memory_type = wasm_externtype_as_memorytype_const(type);
699
- }
700
- }
701
- if (!stdlib_memory_type) {
702
- wasm_error->kind = TSWasmErrorKindCompile;
703
- format(
704
- &wasm_error->message,
705
- "wasm stdlib is missing the 'memory' import"
706
- );
707
- goto error;
708
- }
709
-
710
- // Initialize store's memory
711
- uint64_t initial_memory_pages = wasmtime_memorytype_minimum(stdlib_memory_type);
712
- wasm_limits_t memory_limits = {.min = initial_memory_pages, .max = MAX_MEMORY_SIZE};
713
- memory_type = wasm_memorytype_new(&memory_limits);
714
- wasmtime_memory_t memory;
715
- error = wasmtime_memory_new(context, memory_type, &memory);
716
- if (error) {
717
- wasmtime_error_message(error, &message);
718
- wasm_error->kind = TSWasmErrorKindAllocate;
719
- format(
720
- &wasm_error->message,
721
- "failed to allocate wasm memory: %.*s",
722
- (int)message.size, message.data
723
- );
724
- goto error;
725
- }
726
- wasm_memorytype_delete(memory_type);
727
- memory_type = NULL;
728
-
729
- // Initialize store's function table
730
- wasm_limits_t table_limits = {.min = 1, .max = wasm_limits_max_default};
731
- table_type = wasm_tabletype_new(wasm_valtype_new(WASM_FUNCREF), &table_limits);
732
- wasmtime_val_t initializer = {.kind = WASMTIME_FUNCREF};
733
- wasmtime_table_t function_table;
734
- error = wasmtime_table_new(context, table_type, &initializer, &function_table);
735
- if (error) {
736
- wasmtime_error_message(error, &message);
737
- wasm_error->kind = TSWasmErrorKindAllocate;
738
- format(
739
- &wasm_error->message,
740
- "failed to allocate wasm table: %.*s",
741
- (int)message.size, message.data
742
- );
743
- goto error;
744
- }
745
- wasm_tabletype_delete(table_type);
746
- table_type = NULL;
747
-
748
- unsigned stdlib_symbols_len = array_len(STDLIB_SYMBOLS);
749
-
750
- // Define globals for the stack and heap start addresses.
751
- wasm_globaltype_t *const_i32_type = wasm_globaltype_new(wasm_valtype_new_i32(), WASM_CONST);
752
- wasm_globaltype_t *var_i32_type = wasm_globaltype_new(wasm_valtype_new_i32(), WASM_VAR);
753
-
754
- wasmtime_val_t stack_pointer_value = WASM_I32_VAL(0);
755
- wasmtime_global_t stack_pointer_global;
756
- error = wasmtime_global_new(context, var_i32_type, &stack_pointer_value, &stack_pointer_global);
757
- wasm_globaltype_delete(var_i32_type);
758
- ts_assert(!error);
759
-
760
- *self = (TSWasmStore) {
761
- .engine = wasmtime_engine_clone(engine),
762
- .store = store,
763
- .memory = memory,
764
- .function_table = function_table,
765
- .language_instances = array_new(),
766
- .stdlib_fn_indices = ts_calloc(stdlib_symbols_len, sizeof(uint32_t)),
767
- .builtin_fn_indices = builtin_fn_indices,
768
- .stack_pointer_global = stack_pointer_global,
769
- .current_memory_offset = 0,
770
- .current_function_table_offset = 0,
771
- .const_i32_type = const_i32_type,
772
- };
773
-
774
- // Set up the imports for the stdlib module.
775
- imports = ts_calloc(import_types.size, sizeof(wasmtime_extern_t));
776
- for (unsigned i = 0; i < import_types.size; i++) {
777
- wasm_importtype_t *type = import_types.data[i];
778
- const wasm_name_t *import_name = wasm_importtype_name(type);
779
- if (!ts_wasm_store__provide_builtin_import(self, import_name, &imports[i])) {
780
- wasm_error->kind = TSWasmErrorKindInstantiate;
781
- format(
782
- &wasm_error->message,
783
- "unexpected import in wasm stdlib: %.*s\n",
784
- (int)import_name->size, import_name->data
785
- );
786
- goto error;
787
- }
788
- }
789
-
790
- // Instantiate the stdlib module.
791
- wasmtime_instance_t instance;
792
- error = wasmtime_instance_new(context, stdlib_module, imports, import_types.size, &instance, &trap);
793
- ts_free(imports);
794
- imports = NULL;
795
- if (error) {
796
- wasmtime_error_message(error, &message);
797
- wasm_error->kind = TSWasmErrorKindInstantiate;
798
- format(
799
- &wasm_error->message,
800
- "failed to instantiate wasm stdlib module: %.*s",
801
- (int)message.size, message.data
802
- );
803
- goto error;
804
- }
805
- if (trap) {
806
- wasm_trap_message(trap, &message);
807
- wasm_error->kind = TSWasmErrorKindInstantiate;
808
- format(
809
- &wasm_error->message,
810
- "trapped when instantiating wasm stdlib module: %.*s",
811
- (int)message.size, message.data
812
- );
813
- goto error;
814
- }
815
- wasm_importtype_vec_delete(&import_types);
816
-
817
- // Process the stdlib module's exports.
818
- for (unsigned i = 0; i < stdlib_symbols_len; i++) {
819
- self->stdlib_fn_indices[i] = UINT32_MAX;
820
- }
821
- wasmtime_module_exports(stdlib_module, &export_types);
822
- for (unsigned i = 0; i < export_types.size; i++) {
823
- wasm_exporttype_t *export_type = export_types.data[i];
824
- const wasm_name_t *name = wasm_exporttype_name(export_type);
825
-
826
- char *export_name;
827
- size_t name_len;
828
- wasmtime_extern_t export = {.kind = WASM_EXTERN_GLOBAL};
829
- bool exists = wasmtime_instance_export_nth(context, &instance, i, &export_name, &name_len, &export);
830
- ts_assert(exists);
831
-
832
- if (export.kind == WASMTIME_EXTERN_GLOBAL) {
833
- if (name_eq(name, "__stack_pointer")) {
834
- self->stack_pointer_global = export.of.global;
835
- }
836
- }
837
-
838
- if (export.kind == WASMTIME_EXTERN_FUNC) {
839
- if (ts_wasm_store__call_module_initializer(self, name, &export, &trap)) {
840
- if (trap) {
841
- wasm_trap_message(trap, &message);
842
- wasm_error->kind = TSWasmErrorKindInstantiate;
843
- format(
844
- &wasm_error->message,
845
- "trap when calling stdlib relocation function: %.*s\n",
846
- (int)message.size, message.data
847
- );
848
- goto error;
849
- }
850
- continue;
851
- }
852
-
853
- if (name_eq(name, "reset_heap")) {
854
- self->builtin_fn_indices.reset_heap = export.of.func.__private;
855
- continue;
856
- }
857
-
858
- for (unsigned j = 0; j < stdlib_symbols_len; j++) {
859
- if (name_eq(name, STDLIB_SYMBOLS[j])) {
860
- self->stdlib_fn_indices[j] = export.of.func.__private;
861
- break;
862
- }
863
- }
864
- }
865
- }
866
-
867
- if (self->builtin_fn_indices.reset_heap == UINT32_MAX) {
868
- wasm_error->kind = TSWasmErrorKindInstantiate;
869
- format(
870
- &wasm_error->message,
871
- "missing malloc reset function in wasm stdlib"
872
- );
873
- goto error;
874
- }
875
-
876
- for (unsigned i = 0; i < stdlib_symbols_len; i++) {
877
- if (self->stdlib_fn_indices[i] == UINT32_MAX) {
878
- wasm_error->kind = TSWasmErrorKindInstantiate;
879
- format(
880
- &wasm_error->message,
881
- "missing exported symbol in wasm stdlib: %s",
882
- STDLIB_SYMBOLS[i]
883
- );
884
- goto error;
885
- }
886
- }
887
-
888
- wasm_exporttype_vec_delete(&export_types);
889
- wasmtime_module_delete(stdlib_module);
890
-
891
- // Add all of the lexer callback functions to the function table. Store their function table
892
- // indices on the in-memory lexer.
893
- uint64_t table_index;
894
- error = wasmtime_table_grow(context, &function_table, lexer_definitions_len, &initializer, &table_index);
895
- if (error) {
896
- wasmtime_error_message(error, &message);
897
- wasm_error->kind = TSWasmErrorKindAllocate;
898
- format(
899
- &wasm_error->message,
900
- "failed to grow wasm table to initial size: %.*s",
901
- (int)message.size, message.data
902
- );
903
- goto error;
904
- }
905
- for (unsigned i = 0; i < lexer_definitions_len; i++) {
906
- FunctionDefinition *definition = &lexer_definitions[i];
907
- wasmtime_func_t func = {function_table.store_id, *definition->storage_location};
908
- wasmtime_val_t func_val = {.kind = WASMTIME_FUNCREF, .of.funcref = func};
909
- error = wasmtime_table_set(context, &function_table, table_index, &func_val);
910
- ts_assert(!error);
911
- *(int32_t *)(definition->storage_location) = table_index;
912
- table_index++;
913
- }
914
-
915
- self->current_function_table_offset = table_index;
916
- self->lexer_address = initial_memory_pages * MEMORY_PAGE_SIZE;
917
- self->current_memory_offset = self->lexer_address + sizeof(LexerInWasmMemory);
918
-
919
- // Grow the memory enough to hold the builtin lexer and serialization buffer.
920
- uint32_t new_pages_needed = (self->current_memory_offset - self->lexer_address - 1) / MEMORY_PAGE_SIZE + 1;
921
- uint64_t prev_memory_size;
922
- wasmtime_memory_grow(context, &memory, new_pages_needed, &prev_memory_size);
923
-
924
- uint8_t *memory_data = wasmtime_memory_data(context, &memory);
925
- memcpy(&memory_data[self->lexer_address], &lexer, sizeof(lexer));
926
- return self;
927
-
928
- error:
929
- ts_free(self);
930
- if (stdlib_module) wasmtime_module_delete(stdlib_module);
931
- if (store) wasmtime_store_delete(store);
932
- if (import_types.size) wasm_importtype_vec_delete(&import_types);
933
- if (memory_type) wasm_memorytype_delete(memory_type);
934
- if (table_type) wasm_tabletype_delete(table_type);
935
- if (trap) wasm_trap_delete(trap);
936
- if (error) wasmtime_error_delete(error);
937
- if (message.size) wasm_byte_vec_delete(&message);
938
- if (export_types.size) wasm_exporttype_vec_delete(&export_types);
939
- if (imports) ts_free(imports);
940
- return NULL;
941
- }
942
-
943
- void ts_wasm_store_delete(TSWasmStore *self) {
944
- if (!self) return;
945
- ts_free(self->stdlib_fn_indices);
946
- wasm_globaltype_delete(self->const_i32_type);
947
- wasmtime_store_delete(self->store);
948
- wasm_engine_delete(self->engine);
949
- for (unsigned i = 0; i < self->language_instances.size; i++) {
950
- LanguageWasmInstance *instance = array_get(&self->language_instances, i);
951
- language_id_delete(instance->language_id);
952
- }
953
- array_delete(&self->language_instances);
954
- ts_free(self);
955
- }
956
-
957
- size_t ts_wasm_store_language_count(const TSWasmStore *self) {
958
- size_t result = 0;
959
- for (unsigned i = 0; i < self->language_instances.size; i++) {
960
- const WasmLanguageId *id = array_get(&self->language_instances, i)->language_id;
961
- if (!id->is_language_deleted) {
962
- result++;
963
- }
964
- }
965
- return result;
966
- }
967
-
968
- static uint32_t ts_wasm_store__heap_address(TSWasmStore *self) {
969
- return self->current_memory_offset + TREE_SITTER_SERIALIZATION_BUFFER_SIZE;
970
- }
971
-
972
- static uint32_t ts_wasm_store__serialization_buffer_address(TSWasmStore *self) {
973
- return self->current_memory_offset;
974
- }
975
-
976
- static bool ts_wasm_store__instantiate(
977
- TSWasmStore *self,
978
- wasmtime_module_t *module,
979
- const char *language_name,
980
- const WasmDylinkInfo *dylink_info,
981
- wasmtime_instance_t *result,
982
- int32_t *language_address,
983
- char **error_message
984
- ) {
985
- wasmtime_error_t *error = NULL;
986
- wasm_trap_t *trap = NULL;
987
- wasm_message_t message = WASM_EMPTY_VEC;
988
- char *language_function_name = NULL;
989
- wasmtime_extern_t *imports = NULL;
990
- wasmtime_context_t *context = wasmtime_store_context(self->store);
991
-
992
- // Grow the function table to make room for the new functions.
993
- wasmtime_val_t initializer = {.kind = WASMTIME_FUNCREF};
994
- uint64_t prev_table_size;
995
- error = wasmtime_table_grow(context, &self->function_table, dylink_info->table_size, &initializer, &prev_table_size);
996
- if (error) {
997
- format(error_message, "invalid function table size %u", dylink_info->table_size);
998
- goto error;
999
- }
1000
-
1001
- // Grow the memory to make room for the new data.
1002
- uint32_t needed_memory_size = ts_wasm_store__heap_address(self) + dylink_info->memory_size;
1003
- uint32_t current_memory_size = wasmtime_memory_data_size(context, &self->memory);
1004
- if (needed_memory_size > current_memory_size) {
1005
- uint32_t pages_to_grow = (
1006
- needed_memory_size - current_memory_size + MEMORY_PAGE_SIZE - 1) /
1007
- MEMORY_PAGE_SIZE;
1008
- uint64_t prev_memory_size;
1009
- error = wasmtime_memory_grow(context, &self->memory, pages_to_grow, &prev_memory_size);
1010
- if (error) {
1011
- format(error_message, "invalid memory size %u", dylink_info->memory_size);
1012
- goto error;
1013
- }
1014
- }
1015
-
1016
- // Construct the language function name as string.
1017
- format(&language_function_name, "tree_sitter_%s", language_name);
1018
-
1019
- const uint64_t store_id = self->function_table.store_id;
1020
-
1021
- // Build the imports list for the module.
1022
- wasm_importtype_vec_t import_types = WASM_EMPTY_VEC;
1023
- wasmtime_module_imports(module, &import_types);
1024
- imports = ts_calloc(import_types.size, sizeof(wasmtime_extern_t));
1025
-
1026
- for (unsigned i = 0; i < import_types.size; i++) {
1027
- const wasm_importtype_t *import_type = import_types.data[i];
1028
- const wasm_name_t *import_name = wasm_importtype_name(import_type);
1029
- if (import_name->size == 0) {
1030
- format(error_message, "empty import name");
1031
- goto error;
1032
- }
1033
-
1034
- if (ts_wasm_store__provide_builtin_import(self, import_name, &imports[i])) {
1035
- continue;
1036
- }
1037
-
1038
- bool defined_in_stdlib = false;
1039
- for (unsigned j = 0; j < array_len(STDLIB_SYMBOLS); j++) {
1040
- if (name_eq(import_name, STDLIB_SYMBOLS[j])) {
1041
- uint16_t address = self->stdlib_fn_indices[j];
1042
- imports[i] = (wasmtime_extern_t) {.kind = WASMTIME_EXTERN_FUNC, .of.func = {store_id, address}};
1043
- defined_in_stdlib = true;
1044
- break;
1045
- }
1046
- }
1047
-
1048
- if (!defined_in_stdlib) {
1049
- format(
1050
- error_message,
1051
- "invalid import '%.*s'\n",
1052
- (int)import_name->size, import_name->data
1053
- );
1054
- goto error;
1055
- }
1056
- }
1057
-
1058
- wasmtime_instance_t instance;
1059
- error = wasmtime_instance_new(context, module, imports, import_types.size, &instance, &trap);
1060
- wasm_importtype_vec_delete(&import_types);
1061
- ts_free(imports);
1062
- imports = NULL;
1063
- if (error) {
1064
- wasmtime_error_message(error, &message);
1065
- format(
1066
- error_message,
1067
- "error instantiating wasm module: %.*s\n",
1068
- (int)message.size, message.data
1069
- );
1070
- goto error;
1071
- }
1072
- if (trap) {
1073
- wasm_trap_message(trap, &message);
1074
- format(
1075
- error_message,
1076
- "trap when instantiating wasm module: %.*s\n",
1077
- (int)message.size, message.data
1078
- );
1079
- goto error;
1080
- }
1081
-
1082
- self->current_memory_offset += dylink_info->memory_size;
1083
- self->current_function_table_offset += dylink_info->table_size;
1084
-
1085
- // Process the module's exports.
1086
- bool found_language = false;
1087
- wasmtime_extern_t language_extern;
1088
- wasm_exporttype_vec_t export_types = WASM_EMPTY_VEC;
1089
- wasmtime_module_exports(module, &export_types);
1090
- for (unsigned i = 0; i < export_types.size; i++) {
1091
- wasm_exporttype_t *export_type = export_types.data[i];
1092
- const wasm_name_t *name = wasm_exporttype_name(export_type);
1093
-
1094
- size_t name_len;
1095
- char *export_name;
1096
- wasmtime_extern_t export = {.kind = WASM_EXTERN_GLOBAL};
1097
- bool exists = wasmtime_instance_export_nth(context, &instance, i, &export_name, &name_len, &export);
1098
- ts_assert(exists);
1099
-
1100
- // If the module exports an initialization or data-relocation function, call it.
1101
- if (ts_wasm_store__call_module_initializer(self, name, &export, &trap)) {
1102
- if (trap) {
1103
- wasm_trap_message(trap, &message);
1104
- format(
1105
- error_message,
1106
- "trap when calling data relocation function: %.*s\n",
1107
- (int)message.size, message.data
1108
- );
1109
- goto error;
1110
- }
1111
- }
1112
-
1113
- // Find the main language function for the module.
1114
- else if (name_eq(name, language_function_name)) {
1115
- language_extern = export;
1116
- found_language = true;
1117
- }
1118
- }
1119
- wasm_exporttype_vec_delete(&export_types);
1120
-
1121
- if (!found_language) {
1122
- format(
1123
- error_message,
1124
- "module did not contain language function: %s",
1125
- language_function_name
1126
- );
1127
- goto error;
1128
- }
1129
-
1130
- // Invoke the language function to get the static address of the language object.
1131
- wasmtime_func_t language_func = language_extern.of.func;
1132
- wasmtime_val_t language_address_val;
1133
- error = wasmtime_func_call(context, &language_func, NULL, 0, &language_address_val, 1, &trap);
1134
- ts_assert(!error);
1135
- if (trap) {
1136
- wasm_trap_message(trap, &message);
1137
- format(
1138
- error_message,
1139
- "trapped when calling language function: %s: %.*s\n",
1140
- language_function_name, (int)message.size, message.data
1141
- );
1142
- goto error;
1143
- }
1144
-
1145
- if (language_address_val.kind != WASMTIME_I32) {
1146
- format(
1147
- error_message,
1148
- "language function did not return an integer: %s\n",
1149
- language_function_name
1150
- );
1151
- goto error;
1152
- }
1153
-
1154
- ts_free(language_function_name);
1155
- *result = instance;
1156
- *language_address = language_address_val.of.i32;
1157
- return true;
1158
-
1159
- error:
1160
- if (language_function_name) ts_free(language_function_name);
1161
- if (message.size) wasm_byte_vec_delete(&message);
1162
- if (error) wasmtime_error_delete(error);
1163
- if (trap) wasm_trap_delete(trap);
1164
- if (imports) ts_free(imports);
1165
- return false;
1166
- }
1167
-
1168
- static bool ts_wasm_store__sentinel_lex_fn(TSLexer *_lexer, TSStateId state) {
1169
- return false;
1170
- }
1171
-
1172
- const TSLanguage *ts_wasm_store_load_language(
1173
- TSWasmStore *self,
1174
- const char *language_name,
1175
- const char *wasm,
1176
- uint32_t wasm_len,
1177
- TSWasmError *wasm_error
1178
- ) {
1179
- WasmDylinkInfo dylink_info;
1180
- wasmtime_module_t *module = NULL;
1181
- wasmtime_error_t *error = NULL;
1182
- wasm_error->kind = TSWasmErrorKindNone;
1183
-
1184
- if (!wasm_dylink_info__parse((const unsigned char *)wasm, wasm_len, &dylink_info)) {
1185
- wasm_error->kind = TSWasmErrorKindParse;
1186
- format(&wasm_error->message, "failed to parse dylink section of wasm module");
1187
- goto error;
1188
- }
1189
-
1190
- // Compile the wasm code.
1191
- error = wasmtime_module_new(self->engine, (const uint8_t *)wasm, wasm_len, &module);
1192
- if (error) {
1193
- wasm_message_t message;
1194
- wasmtime_error_message(error, &message);
1195
- wasm_error->kind = TSWasmErrorKindCompile;
1196
- format(&wasm_error->message, "error compiling wasm module: %.*s", (int)message.size, message.data);
1197
- wasm_byte_vec_delete(&message);
1198
- goto error;
1199
- }
1200
-
1201
- // Instantiate the module in this store.
1202
- wasmtime_instance_t instance;
1203
- int32_t language_address;
1204
- if (!ts_wasm_store__instantiate(
1205
- self,
1206
- module,
1207
- language_name,
1208
- &dylink_info,
1209
- &instance,
1210
- &language_address,
1211
- &wasm_error->message
1212
- )) {
1213
- wasm_error->kind = TSWasmErrorKindInstantiate;
1214
- goto error;
1215
- }
1216
-
1217
- // Copy all of the static data out of the language object in wasm memory,
1218
- // constructing a native language object.
1219
- LanguageInWasmMemory wasm_language;
1220
- wasmtime_context_t *context = wasmtime_store_context(self->store);
1221
- const uint8_t *memory = wasmtime_memory_data(context, &self->memory);
1222
- memcpy(&wasm_language, &memory[language_address], sizeof(LanguageInWasmMemory));
1223
-
1224
- bool has_supertypes =
1225
- wasm_language.abi_version > LANGUAGE_VERSION_WITH_RESERVED_WORDS &&
1226
- wasm_language.supertype_count > 0;
1227
-
1228
- int32_t addresses[] = {
1229
- wasm_language.parse_table,
1230
- wasm_language.small_parse_table,
1231
- wasm_language.small_parse_table_map,
1232
- wasm_language.parse_actions,
1233
- wasm_language.symbol_names,
1234
- wasm_language.field_names,
1235
- wasm_language.field_map_slices,
1236
- wasm_language.field_map_entries,
1237
- wasm_language.symbol_metadata,
1238
- wasm_language.public_symbol_map,
1239
- wasm_language.alias_map,
1240
- wasm_language.alias_sequences,
1241
- wasm_language.lex_modes,
1242
- wasm_language.lex_fn,
1243
- wasm_language.keyword_lex_fn,
1244
- wasm_language.primary_state_ids,
1245
- wasm_language.name,
1246
- wasm_language.reserved_words,
1247
- has_supertypes ? wasm_language.supertype_symbols : 0,
1248
- has_supertypes ? wasm_language.supertype_map_entries : 0,
1249
- has_supertypes ? wasm_language.supertype_map_slices : 0,
1250
- wasm_language.external_token_count > 0 ? wasm_language.external_scanner.states : 0,
1251
- wasm_language.external_token_count > 0 ? wasm_language.external_scanner.symbol_map : 0,
1252
- wasm_language.external_token_count > 0 ? wasm_language.external_scanner.create : 0,
1253
- wasm_language.external_token_count > 0 ? wasm_language.external_scanner.destroy : 0,
1254
- wasm_language.external_token_count > 0 ? wasm_language.external_scanner.scan : 0,
1255
- wasm_language.external_token_count > 0 ? wasm_language.external_scanner.serialize : 0,
1256
- wasm_language.external_token_count > 0 ? wasm_language.external_scanner.deserialize : 0,
1257
- language_address,
1258
- self->current_memory_offset,
1259
- };
1260
- uint32_t address_count = array_len(addresses);
1261
-
1262
- TSLanguage *language = ts_calloc(1, sizeof(TSLanguage));
1263
- StringData symbol_name_buffer = array_new();
1264
- StringData field_name_buffer = array_new();
1265
-
1266
- *language = (TSLanguage) {
1267
- .abi_version = wasm_language.abi_version,
1268
- .symbol_count = wasm_language.symbol_count,
1269
- .alias_count = wasm_language.alias_count,
1270
- .token_count = wasm_language.token_count,
1271
- .external_token_count = wasm_language.external_token_count,
1272
- .state_count = wasm_language.state_count,
1273
- .large_state_count = wasm_language.large_state_count,
1274
- .production_id_count = wasm_language.production_id_count,
1275
- .field_count = wasm_language.field_count,
1276
- .supertype_count = wasm_language.supertype_count,
1277
- .max_alias_sequence_length = wasm_language.max_alias_sequence_length,
1278
- .keyword_capture_token = wasm_language.keyword_capture_token,
1279
- .metadata = wasm_language.metadata,
1280
- .parse_table = copy(
1281
- &memory[wasm_language.parse_table],
1282
- wasm_language.large_state_count * wasm_language.symbol_count * sizeof(uint16_t)
1283
- ),
1284
- .parse_actions = copy_unsized_static_array(
1285
- memory,
1286
- wasm_language.parse_actions,
1287
- addresses,
1288
- address_count
1289
- ),
1290
- .symbol_names = copy_strings(
1291
- memory,
1292
- wasm_language.symbol_names,
1293
- wasm_language.symbol_count + wasm_language.alias_count,
1294
- &symbol_name_buffer
1295
- ),
1296
- .symbol_metadata = copy(
1297
- &memory[wasm_language.symbol_metadata],
1298
- (wasm_language.symbol_count + wasm_language.alias_count) * sizeof(TSSymbolMetadata)
1299
- ),
1300
- .public_symbol_map = copy(
1301
- &memory[wasm_language.public_symbol_map],
1302
- (wasm_language.symbol_count + wasm_language.alias_count) * sizeof(TSSymbol)
1303
- ),
1304
- .lex_modes = copy(
1305
- &memory[wasm_language.lex_modes],
1306
- wasm_language.state_count * sizeof(TSLexerMode)
1307
- ),
1308
- };
1309
-
1310
- if (language->field_count > 0 && language->production_id_count > 0) {
1311
- language->field_map_slices = copy(
1312
- &memory[wasm_language.field_map_slices],
1313
- wasm_language.production_id_count * sizeof(TSMapSlice)
1314
- );
1315
-
1316
- // Determine the number of field map entries by finding the greatest index
1317
- // in any of the slices.
1318
- uint32_t field_map_entry_count = 0;
1319
- for (uint32_t i = 0; i < wasm_language.production_id_count; i++) {
1320
- TSMapSlice slice = language->field_map_slices[i];
1321
- uint32_t slice_end = slice.index + slice.length;
1322
- if (slice_end > field_map_entry_count) {
1323
- field_map_entry_count = slice_end;
1324
- }
1325
- }
1326
-
1327
- language->field_map_entries = copy(
1328
- &memory[wasm_language.field_map_entries],
1329
- field_map_entry_count * sizeof(TSFieldMapEntry)
1330
- );
1331
- language->field_names = copy_strings(
1332
- memory,
1333
- wasm_language.field_names,
1334
- wasm_language.field_count + 1,
1335
- &field_name_buffer
1336
- );
1337
- }
1338
-
1339
- if (has_supertypes) {
1340
- language->supertype_symbols = copy(
1341
- &memory[wasm_language.supertype_symbols],
1342
- wasm_language.supertype_count * sizeof(TSSymbol)
1343
- );
1344
-
1345
- // Determine the number of supertype map slices by finding the greatest
1346
- // supertype ID.
1347
- int largest_supertype = 0;
1348
- for (unsigned i = 0; i < language->supertype_count; i++) {
1349
- TSSymbol supertype = language->supertype_symbols[i];
1350
- if (supertype > largest_supertype) {
1351
- largest_supertype = supertype;
1352
- }
1353
- }
1354
-
1355
- language->supertype_map_slices = copy(
1356
- &memory[wasm_language.supertype_map_slices],
1357
- (largest_supertype + 1) * sizeof(TSMapSlice)
1358
- );
1359
-
1360
- TSSymbol last_supertype = language->supertype_symbols[language->supertype_count - 1];
1361
- TSMapSlice last_slice = language->supertype_map_slices[last_supertype];
1362
- uint32_t supertype_map_entry_count = last_slice.index + last_slice.length;
1363
-
1364
- language->supertype_map_entries = copy(
1365
- &memory[wasm_language.supertype_map_entries],
1366
- supertype_map_entry_count * sizeof(char *)
1367
- );
1368
- }
1369
-
1370
- if (language->max_alias_sequence_length > 0 && language->production_id_count > 0) {
1371
- // The alias map contains symbols, alias counts, and aliases, terminated by a null symbol.
1372
- int32_t alias_map_size = 0;
1373
- for (;;) {
1374
- TSSymbol symbol;
1375
- memcpy(&symbol, &memory[wasm_language.alias_map + alias_map_size], sizeof(symbol));
1376
- alias_map_size += sizeof(TSSymbol);
1377
- if (symbol == 0) break;
1378
- uint16_t value_count;
1379
- memcpy(&value_count, &memory[wasm_language.alias_map + alias_map_size], sizeof(value_count));
1380
- alias_map_size += sizeof(uint16_t);
1381
- alias_map_size += value_count * sizeof(TSSymbol);
1382
- }
1383
- language->alias_map = copy(
1384
- &memory[wasm_language.alias_map],
1385
- alias_map_size
1386
- );
1387
- language->alias_sequences = copy(
1388
- &memory[wasm_language.alias_sequences],
1389
- wasm_language.production_id_count * wasm_language.max_alias_sequence_length * sizeof(TSSymbol)
1390
- );
1391
- }
1392
-
1393
- if (language->state_count > language->large_state_count) {
1394
- uint32_t small_state_count = wasm_language.state_count - wasm_language.large_state_count;
1395
- language->small_parse_table_map = copy(
1396
- &memory[wasm_language.small_parse_table_map],
1397
- small_state_count * sizeof(uint32_t)
1398
- );
1399
- language->small_parse_table = copy_unsized_static_array(
1400
- memory,
1401
- wasm_language.small_parse_table,
1402
- addresses,
1403
- address_count
1404
- );
1405
- }
1406
-
1407
- if (language->abi_version >= LANGUAGE_VERSION_WITH_PRIMARY_STATES) {
1408
- language->primary_state_ids = copy(
1409
- &memory[wasm_language.primary_state_ids],
1410
- wasm_language.state_count * sizeof(TSStateId)
1411
- );
1412
- }
1413
-
1414
- if (language->abi_version >= LANGUAGE_VERSION_WITH_RESERVED_WORDS) {
1415
- language->name = copy_string(memory, wasm_language.name);
1416
- language->reserved_words = copy(
1417
- &memory[wasm_language.reserved_words],
1418
- wasm_language.max_reserved_word_set_size * sizeof(TSSymbol)
1419
- );
1420
- language->max_reserved_word_set_size = wasm_language.max_reserved_word_set_size;
1421
- }
1422
-
1423
- if (language->external_token_count > 0) {
1424
- language->external_scanner.symbol_map = copy(
1425
- &memory[wasm_language.external_scanner.symbol_map],
1426
- wasm_language.external_token_count * sizeof(TSSymbol)
1427
- );
1428
- language->external_scanner.states = (void *)(uintptr_t)wasm_language.external_scanner.states;
1429
- }
1430
-
1431
- unsigned name_len = strlen(language_name);
1432
- char *name = ts_malloc(name_len + 1);
1433
- memcpy(name, language_name, name_len);
1434
- name[name_len] = '\0';
1435
-
1436
- LanguageWasmModule *language_module = ts_malloc(sizeof(LanguageWasmModule));
1437
- *language_module = (LanguageWasmModule) {
1438
- .language_id = language_id_new(),
1439
- .module = module,
1440
- .name = name,
1441
- .symbol_name_buffer = symbol_name_buffer.contents,
1442
- .field_name_buffer = field_name_buffer.contents,
1443
- .dylink_info = dylink_info,
1444
- .ref_count = 1,
1445
- };
1446
-
1447
- // The lex functions are not used for wasm languages. Use those two fields
1448
- // to mark this language as WASM-based and to store the language's
1449
- // WASM-specific data.
1450
- language->lex_fn = ts_wasm_store__sentinel_lex_fn;
1451
- language->keyword_lex_fn = (bool (*)(TSLexer *, TSStateId))language_module;
1452
-
1453
- // Clear out any instances of languages that have been deleted.
1454
- for (unsigned i = 0; i < self->language_instances.size; i++) {
1455
- WasmLanguageId *id = array_get(&self->language_instances, i)->language_id;
1456
- if (id->is_language_deleted) {
1457
- language_id_delete(id);
1458
- array_erase(&self->language_instances, i);
1459
- i--;
1460
- }
1461
- }
1462
-
1463
- // Store this store's instance of this language module.
1464
- array_push(&self->language_instances, ((LanguageWasmInstance) {
1465
- .language_id = language_id_clone(language_module->language_id),
1466
- .instance = instance,
1467
- .external_states_address = wasm_language.external_scanner.states,
1468
- .lex_main_fn_index = wasm_language.lex_fn,
1469
- .lex_keyword_fn_index = wasm_language.keyword_lex_fn,
1470
- .scanner_create_fn_index = wasm_language.external_scanner.create,
1471
- .scanner_destroy_fn_index = wasm_language.external_scanner.destroy,
1472
- .scanner_serialize_fn_index = wasm_language.external_scanner.serialize,
1473
- .scanner_deserialize_fn_index = wasm_language.external_scanner.deserialize,
1474
- .scanner_scan_fn_index = wasm_language.external_scanner.scan,
1475
- }));
1476
-
1477
- return language;
1478
-
1479
- error:
1480
- if (module) wasmtime_module_delete(module);
1481
- return NULL;
1482
- }
1483
-
1484
- bool ts_wasm_store_add_language(
1485
- TSWasmStore *self,
1486
- const TSLanguage *language,
1487
- uint32_t *index
1488
- ) {
1489
- wasmtime_context_t *context = wasmtime_store_context(self->store);
1490
- const LanguageWasmModule *language_module = (void *)language->keyword_lex_fn;
1491
-
1492
- // Search for this store's instance of the language module. Also clear out any
1493
- // instances of languages that have been deleted.
1494
- bool exists = false;
1495
- for (unsigned i = 0; i < self->language_instances.size; i++) {
1496
- WasmLanguageId *id = array_get(&self->language_instances, i)->language_id;
1497
- if (id->is_language_deleted) {
1498
- language_id_delete(id);
1499
- array_erase(&self->language_instances, i);
1500
- i--;
1501
- } else if (id == language_module->language_id) {
1502
- exists = true;
1503
- *index = i;
1504
- }
1505
- }
1506
-
1507
- // If the language module has not been instantiated in this store, then add
1508
- // it to this store.
1509
- if (!exists) {
1510
- *index = self->language_instances.size;
1511
- char *message;
1512
- wasmtime_instance_t instance;
1513
- int32_t language_address;
1514
- if (!ts_wasm_store__instantiate(
1515
- self,
1516
- language_module->module,
1517
- language_module->name,
1518
- &language_module->dylink_info,
1519
- &instance,
1520
- &language_address,
1521
- &message
1522
- )) {
1523
- ts_free(message);
1524
- return false;
1525
- }
1526
-
1527
- LanguageInWasmMemory wasm_language;
1528
- const uint8_t *memory = wasmtime_memory_data(context, &self->memory);
1529
- memcpy(&wasm_language, &memory[language_address], sizeof(LanguageInWasmMemory));
1530
- array_push(&self->language_instances, ((LanguageWasmInstance) {
1531
- .language_id = language_id_clone(language_module->language_id),
1532
- .instance = instance,
1533
- .external_states_address = wasm_language.external_scanner.states,
1534
- .lex_main_fn_index = wasm_language.lex_fn,
1535
- .lex_keyword_fn_index = wasm_language.keyword_lex_fn,
1536
- .scanner_create_fn_index = wasm_language.external_scanner.create,
1537
- .scanner_destroy_fn_index = wasm_language.external_scanner.destroy,
1538
- .scanner_serialize_fn_index = wasm_language.external_scanner.serialize,
1539
- .scanner_deserialize_fn_index = wasm_language.external_scanner.deserialize,
1540
- .scanner_scan_fn_index = wasm_language.external_scanner.scan,
1541
- }));
1542
- }
1543
-
1544
- return true;
1545
- }
1546
-
1547
- void ts_wasm_store_reset_heap(TSWasmStore *self) {
1548
- wasmtime_context_t *context = wasmtime_store_context(self->store);
1549
- wasmtime_func_t func = {
1550
- self->function_table.store_id,
1551
- self->builtin_fn_indices.reset_heap
1552
- };
1553
- wasm_trap_t *trap = NULL;
1554
- wasmtime_val_t args[1] = {
1555
- {.of.i32 = ts_wasm_store__heap_address(self), .kind = WASMTIME_I32},
1556
- };
1557
-
1558
- wasmtime_error_t *error = wasmtime_func_call(context, &func, args, 1, NULL, 0, &trap);
1559
- ts_assert(!error);
1560
- ts_assert(!trap);
1561
- }
1562
-
1563
- bool ts_wasm_store_start(TSWasmStore *self, TSLexer *lexer, const TSLanguage *language) {
1564
- uint32_t instance_index;
1565
- if (!ts_wasm_store_add_language(self, language, &instance_index)) return false;
1566
- self->current_lexer = lexer;
1567
- self->current_instance = array_get(&self->language_instances, instance_index);
1568
- self->has_error = false;
1569
- ts_wasm_store_reset_heap(self);
1570
- return true;
1571
- }
1572
-
1573
- void ts_wasm_store_reset(TSWasmStore *self) {
1574
- self->current_lexer = NULL;
1575
- self->current_instance = NULL;
1576
- self->has_error = false;
1577
- ts_wasm_store_reset_heap(self);
1578
- }
1579
-
1580
- static void ts_wasm_store__call(
1581
- TSWasmStore *self,
1582
- int32_t function_index,
1583
- wasmtime_val_raw_t *args_and_results,
1584
- size_t args_and_results_len
1585
- ) {
1586
- wasmtime_context_t *context = wasmtime_store_context(self->store);
1587
- wasmtime_val_t value;
1588
- bool succeeded = wasmtime_table_get(context, &self->function_table, function_index, &value);
1589
- ts_assert(succeeded);
1590
- ts_assert(value.kind == WASMTIME_FUNCREF);
1591
- wasmtime_func_t func = value.of.funcref;
1592
-
1593
- wasm_trap_t *trap = NULL;
1594
- wasmtime_error_t *error = wasmtime_func_call_unchecked(context, &func, args_and_results, args_and_results_len, &trap);
1595
- if (error) {
1596
- // wasm_message_t message;
1597
- // wasmtime_error_message(error, &message);
1598
- // fprintf(
1599
- // stderr,
1600
- // "error in wasm module: %.*s\n",
1601
- // (int)message.size, message.data
1602
- // );
1603
- wasmtime_error_delete(error);
1604
- self->has_error = true;
1605
- } else if (trap) {
1606
- // wasm_message_t message;
1607
- // wasm_trap_message(trap, &message);
1608
- // fprintf(
1609
- // stderr,
1610
- // "trap in wasm module: %.*s\n",
1611
- // (int)message.size, message.data
1612
- // );
1613
- wasm_trap_delete(trap);
1614
- self->has_error = true;
1615
- }
1616
- }
1617
-
1618
- // The data fields of TSLexer, without the function pointers.
1619
- //
1620
- // This portion of the struct needs to be copied in and out
1621
- // of wasm memory before and after calling a scan function.
1622
- typedef struct {
1623
- int32_t lookahead;
1624
- TSSymbol result_symbol;
1625
- } TSLexerDataPrefix;
1626
-
1627
- static bool ts_wasm_store__call_lex_function(TSWasmStore *self, unsigned function_index, TSStateId state) {
1628
- wasmtime_context_t *context = wasmtime_store_context(self->store);
1629
- uint8_t *memory_data = wasmtime_memory_data(context, &self->memory);
1630
- memcpy(
1631
- &memory_data[self->lexer_address],
1632
- self->current_lexer,
1633
- sizeof(TSLexerDataPrefix)
1634
- );
1635
-
1636
- wasmtime_val_raw_t args[2] = {
1637
- {.i32 = self->lexer_address},
1638
- {.i32 = state},
1639
- };
1640
- ts_wasm_store__call(self, function_index, args, 2);
1641
- if (self->has_error) return false;
1642
- bool result = args[0].i32;
1643
-
1644
- memcpy(
1645
- self->current_lexer,
1646
- &memory_data[self->lexer_address],
1647
- sizeof(TSLexerDataPrefix)
1648
- );
1649
- return result;
1650
- }
1651
-
1652
- bool ts_wasm_store_call_lex_main(TSWasmStore *self, TSStateId state) {
1653
- return ts_wasm_store__call_lex_function(
1654
- self,
1655
- self->current_instance->lex_main_fn_index,
1656
- state
1657
- );
1658
- }
1659
-
1660
- bool ts_wasm_store_call_lex_keyword(TSWasmStore *self, TSStateId state) {
1661
- return ts_wasm_store__call_lex_function(
1662
- self,
1663
- self->current_instance->lex_keyword_fn_index,
1664
- state
1665
- );
1666
- }
1667
-
1668
- uint32_t ts_wasm_store_call_scanner_create(TSWasmStore *self) {
1669
- wasmtime_val_raw_t args[1] = {{.i32 = 0}};
1670
- ts_wasm_store__call(self, self->current_instance->scanner_create_fn_index, args, 1);
1671
- if (self->has_error) return 0;
1672
- return args[0].i32;
1673
- }
1674
-
1675
- void ts_wasm_store_call_scanner_destroy(TSWasmStore *self, uint32_t scanner_address) {
1676
- if (self->current_instance) {
1677
- wasmtime_val_raw_t args[1] = {{.i32 = scanner_address}};
1678
- ts_wasm_store__call(self, self->current_instance->scanner_destroy_fn_index, args, 1);
1679
- }
1680
- }
1681
-
1682
- bool ts_wasm_store_call_scanner_scan(
1683
- TSWasmStore *self,
1684
- uint32_t scanner_address,
1685
- uint32_t valid_tokens_ix
1686
- ) {
1687
- wasmtime_context_t *context = wasmtime_store_context(self->store);
1688
- uint8_t *memory_data = wasmtime_memory_data(context, &self->memory);
1689
-
1690
- memcpy(
1691
- &memory_data[self->lexer_address],
1692
- self->current_lexer,
1693
- sizeof(TSLexerDataPrefix)
1694
- );
1695
-
1696
- uint32_t valid_tokens_address =
1697
- self->current_instance->external_states_address +
1698
- (valid_tokens_ix * sizeof(bool));
1699
- wasmtime_val_raw_t args[3] = {
1700
- {.i32 = scanner_address},
1701
- {.i32 = self->lexer_address},
1702
- {.i32 = valid_tokens_address}
1703
- };
1704
- ts_wasm_store__call(self, self->current_instance->scanner_scan_fn_index, args, 3);
1705
- if (self->has_error) return false;
1706
-
1707
- memcpy(
1708
- self->current_lexer,
1709
- &memory_data[self->lexer_address],
1710
- sizeof(TSLexerDataPrefix)
1711
- );
1712
- return args[0].i32;
1713
- }
1714
-
1715
- uint32_t ts_wasm_store_call_scanner_serialize(
1716
- TSWasmStore *self,
1717
- uint32_t scanner_address,
1718
- char *buffer
1719
- ) {
1720
- wasmtime_context_t *context = wasmtime_store_context(self->store);
1721
- uint8_t *memory_data = wasmtime_memory_data(context, &self->memory);
1722
- uint32_t serialization_buffer_address = ts_wasm_store__serialization_buffer_address(self);
1723
-
1724
- wasmtime_val_raw_t args[2] = {
1725
- {.i32 = scanner_address},
1726
- {.i32 = serialization_buffer_address},
1727
- };
1728
- ts_wasm_store__call(self, self->current_instance->scanner_serialize_fn_index, args, 2);
1729
- if (self->has_error) return 0;
1730
-
1731
- uint32_t length = args[0].i32;
1732
- if (length > TREE_SITTER_SERIALIZATION_BUFFER_SIZE) {
1733
- self->has_error = true;
1734
- return 0;
1735
- }
1736
-
1737
- if (length > 0) {
1738
- memcpy(
1739
- ((Lexer *)self->current_lexer)->debug_buffer,
1740
- &memory_data[serialization_buffer_address],
1741
- length
1742
- );
1743
- }
1744
- return length;
1745
- }
1746
-
1747
- void ts_wasm_store_call_scanner_deserialize(
1748
- TSWasmStore *self,
1749
- uint32_t scanner_address,
1750
- const char *buffer,
1751
- unsigned length
1752
- ) {
1753
- wasmtime_context_t *context = wasmtime_store_context(self->store);
1754
- uint8_t *memory_data = wasmtime_memory_data(context, &self->memory);
1755
- uint32_t serialization_buffer_address = ts_wasm_store__serialization_buffer_address(self);
1756
-
1757
- if (length > 0) {
1758
- memcpy(
1759
- &memory_data[serialization_buffer_address],
1760
- buffer,
1761
- length
1762
- );
1763
- }
1764
-
1765
- wasmtime_val_raw_t args[3] = {
1766
- {.i32 = scanner_address},
1767
- {.i32 = serialization_buffer_address},
1768
- {.i32 = length},
1769
- };
1770
- ts_wasm_store__call(self, self->current_instance->scanner_deserialize_fn_index, args, 3);
1771
- }
1772
-
1773
- bool ts_wasm_store_has_error(const TSWasmStore *self) {
1774
- return self->has_error;
1775
- }
1776
-
1777
- bool ts_language_is_wasm(const TSLanguage *self) {
1778
- return self->lex_fn == ts_wasm_store__sentinel_lex_fn;
1779
- }
1780
-
1781
- static inline LanguageWasmModule *ts_language__wasm_module(const TSLanguage *self) {
1782
- return (LanguageWasmModule *)self->keyword_lex_fn;
1783
- }
1784
-
1785
- void ts_wasm_language_retain(const TSLanguage *self) {
1786
- LanguageWasmModule *module = ts_language__wasm_module(self);
1787
- ts_assert(module->ref_count > 0);
1788
- atomic_inc(&module->ref_count);
1789
- }
1790
-
1791
- void ts_wasm_language_release(const TSLanguage *self) {
1792
- LanguageWasmModule *module = ts_language__wasm_module(self);
1793
- ts_assert(module->ref_count > 0);
1794
- if (atomic_dec(&module->ref_count) == 0) {
1795
- // Update the language id to reflect that the language is deleted. This allows any wasm stores
1796
- // that hold wasm instances for this language to delete those instances.
1797
- atomic_inc(&module->language_id->is_language_deleted);
1798
- language_id_delete(module->language_id);
1799
-
1800
- ts_free((void *)module->field_name_buffer);
1801
- ts_free((void *)module->symbol_name_buffer);
1802
- ts_free((void *)module->name);
1803
- wasmtime_module_delete(module->module);
1804
- ts_free(module);
1805
-
1806
- ts_free((void *)self->alias_map);
1807
- ts_free((void *)self->alias_sequences);
1808
- ts_free((void *)self->external_scanner.symbol_map);
1809
- ts_free((void *)self->field_map_entries);
1810
- ts_free((void *)self->field_map_slices);
1811
- ts_free((void *)self->supertype_symbols);
1812
- ts_free((void *)self->supertype_map_entries);
1813
- ts_free((void *)self->supertype_map_slices);
1814
- ts_free((void *)self->field_names);
1815
- ts_free((void *)self->lex_modes);
1816
- ts_free((void *)self->name);
1817
- ts_free((void *)self->reserved_words);
1818
- ts_free((void *)self->parse_actions);
1819
- ts_free((void *)self->parse_table);
1820
- ts_free((void *)self->primary_state_ids);
1821
- ts_free((void *)self->public_symbol_map);
1822
- ts_free((void *)self->small_parse_table);
1823
- ts_free((void *)self->small_parse_table_map);
1824
- ts_free((void *)self->symbol_metadata);
1825
- ts_free((void *)self->symbol_names);
1826
- ts_free((void *)self);
1827
- }
1828
- }
1829
-
1830
- #ifdef _MSC_VER
1831
- #pragma warning(pop)
1832
- #elif defined(__GNUC__) || defined(__clang__)
1833
- #pragma GCC diagnostic pop
1834
- #endif
1835
-
1836
- #else
1837
-
1838
- // If the WASM feature is not enabled, define dummy versions of all of the
1839
- // wasm-related functions.
1840
-
1841
- void ts_wasm_store_delete(TSWasmStore *self) {
1842
- (void)self;
1843
- }
1844
-
1845
- bool ts_wasm_store_start(
1846
- TSWasmStore *self,
1847
- TSLexer *lexer,
1848
- const TSLanguage *language
1849
- ) {
1850
- (void)self;
1851
- (void)lexer;
1852
- (void)language;
1853
- return false;
1854
- }
1855
-
1856
- void ts_wasm_store_reset(TSWasmStore *self) {
1857
- (void)self;
1858
- }
1859
-
1860
- bool ts_wasm_store_call_lex_main(TSWasmStore *self, TSStateId state) {
1861
- (void)self;
1862
- (void)state;
1863
- return false;
1864
- }
1865
-
1866
- bool ts_wasm_store_call_lex_keyword(TSWasmStore *self, TSStateId state) {
1867
- (void)self;
1868
- (void)state;
1869
- return false;
1870
- }
1871
-
1872
- uint32_t ts_wasm_store_call_scanner_create(TSWasmStore *self) {
1873
- (void)self;
1874
- return 0;
1875
- }
1876
-
1877
- void ts_wasm_store_call_scanner_destroy(
1878
- TSWasmStore *self,
1879
- uint32_t scanner_address
1880
- ) {
1881
- (void)self;
1882
- (void)scanner_address;
1883
- }
1884
-
1885
- bool ts_wasm_store_call_scanner_scan(
1886
- TSWasmStore *self,
1887
- uint32_t scanner_address,
1888
- uint32_t valid_tokens_ix
1889
- ) {
1890
- (void)self;
1891
- (void)scanner_address;
1892
- (void)valid_tokens_ix;
1893
- return false;
1894
- }
1895
-
1896
- uint32_t ts_wasm_store_call_scanner_serialize(
1897
- TSWasmStore *self,
1898
- uint32_t scanner_address,
1899
- char *buffer
1900
- ) {
1901
- (void)self;
1902
- (void)scanner_address;
1903
- (void)buffer;
1904
- return 0;
1905
- }
1906
-
1907
- void ts_wasm_store_call_scanner_deserialize(
1908
- TSWasmStore *self,
1909
- uint32_t scanner_address,
1910
- const char *buffer,
1911
- unsigned length
1912
- ) {
1913
- (void)self;
1914
- (void)scanner_address;
1915
- (void)buffer;
1916
- (void)length;
1917
- }
1918
-
1919
- bool ts_wasm_store_has_error(const TSWasmStore *self) {
1920
- (void)self;
1921
- return false;
1922
- }
1923
-
1924
- bool ts_language_is_wasm(const TSLanguage *self) {
1925
- (void)self;
1926
- return false;
1927
- }
1928
-
1929
- void ts_wasm_language_retain(const TSLanguage *self) {
1930
- (void)self;
1931
- }
1932
-
1933
- void ts_wasm_language_release(const TSLanguage *self) {
1934
- (void)self;
1935
- }
1936
-
1937
- #endif