claude-flow 2.7.0-alpha.8 → 2.7.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 (1633) hide show
  1. package/.claude/settings.reasoningbank-example.json +124 -0
  2. package/.claude/settings.reasoningbank-minimal.json +40 -0
  3. package/.claude/skills/agentdb-advanced/SKILL.md +550 -0
  4. package/.claude/skills/agentdb-learning/SKILL.md +545 -0
  5. package/.claude/skills/agentdb-memory-patterns/SKILL.md +339 -0
  6. package/.claude/skills/agentdb-optimization/SKILL.md +509 -0
  7. package/.claude/skills/agentdb-vector-search/SKILL.md +339 -0
  8. package/.claude/skills/flow-nexus-neural/SKILL.md +738 -0
  9. package/.claude/skills/flow-nexus-platform/SKILL.md +1157 -0
  10. package/.claude/skills/flow-nexus-swarm/SKILL.md +610 -0
  11. package/.claude/skills/github-code-review/SKILL.md +1140 -0
  12. package/.claude/skills/github-multi-repo/SKILL.md +874 -0
  13. package/.claude/skills/github-project-management/SKILL.md +1277 -0
  14. package/.claude/skills/github-release-management/SKILL.md +1081 -0
  15. package/.claude/skills/github-workflow-automation/SKILL.md +1065 -0
  16. package/.claude/skills/hive-mind-advanced/SKILL.md +712 -0
  17. package/.claude/skills/hooks-automation/SKILL.md +1201 -0
  18. package/.claude/skills/pair-programming/SKILL.md +1202 -0
  19. package/.claude/skills/performance-analysis/SKILL.md +563 -0
  20. package/.claude/skills/reasoningbank-agentdb/SKILL.md +446 -0
  21. package/.claude/skills/reasoningbank-intelligence/SKILL.md +201 -0
  22. package/.claude/skills/skill-builder/SKILL.md +910 -0
  23. package/.claude/skills/sparc-methodology/SKILL.md +1115 -0
  24. package/.claude/skills/stream-chain/SKILL.md +563 -0
  25. package/.claude/skills/swarm-advanced/SKILL.md +973 -0
  26. package/.claude/skills/swarm-orchestration/SKILL.md +179 -0
  27. package/.claude/skills/verification-quality/SKILL.md +649 -0
  28. package/.claude/statusline-command.sh +175 -0
  29. package/.claude/test-reasoningbank-hooks.sh +99 -0
  30. package/CHANGELOG.md +418 -0
  31. package/README.md +254 -188
  32. package/bin/claude-flow +1 -1
  33. package/dist/agents/agent-loader.d.ts +103 -0
  34. package/dist/agents/agent-loader.d.ts.map +1 -0
  35. package/dist/agents/agent-loader.js +220 -0
  36. package/dist/agents/agent-loader.js.map +1 -0
  37. package/dist/agents/agent-manager.d.ts +191 -0
  38. package/dist/agents/agent-manager.d.ts.map +1 -0
  39. package/dist/agents/agent-manager.js +1405 -0
  40. package/dist/agents/agent-manager.js.map +1 -0
  41. package/dist/api/claude-api-errors.d.ts +115 -0
  42. package/dist/api/claude-api-errors.d.ts.map +1 -0
  43. package/dist/api/claude-api-errors.js +198 -0
  44. package/dist/api/claude-api-errors.js.map +1 -0
  45. package/dist/api/claude-client.d.ts +197 -0
  46. package/dist/api/claude-client.d.ts.map +1 -0
  47. package/dist/api/claude-client.js +525 -0
  48. package/dist/api/claude-client.js.map +1 -0
  49. package/dist/cli/cli-core.d.ts +52 -0
  50. package/dist/cli/cli-core.d.ts.map +1 -0
  51. package/dist/cli/cli-core.js +264 -0
  52. package/dist/cli/cli-core.js.map +1 -0
  53. package/dist/cli/command-registry.d.ts +10 -0
  54. package/dist/cli/command-registry.d.ts.map +1 -0
  55. package/dist/cli/command-registry.js +1126 -0
  56. package/dist/cli/command-registry.js.map +1 -0
  57. package/dist/cli/commander-fix.d.ts +4 -0
  58. package/dist/cli/commander-fix.d.ts.map +1 -0
  59. package/dist/cli/commander-fix.js +6 -0
  60. package/dist/cli/commander-fix.js.map +1 -0
  61. package/dist/cli/commands/agent.d.ts +6 -0
  62. package/dist/cli/commands/agent.d.ts.map +1 -0
  63. package/dist/cli/commands/agent.js +382 -0
  64. package/dist/cli/commands/agent.js.map +1 -0
  65. package/dist/cli/commands/config.d.ts +4 -0
  66. package/dist/cli/commands/config.d.ts.map +1 -0
  67. package/dist/cli/commands/config.js +88 -0
  68. package/dist/cli/commands/config.js.map +1 -0
  69. package/dist/cli/commands/enterprise.d.ts +3 -0
  70. package/dist/cli/commands/enterprise.d.ts.map +1 -0
  71. package/dist/cli/commands/enterprise.js +1506 -0
  72. package/dist/cli/commands/enterprise.js.map +1 -0
  73. package/dist/cli/commands/help.d.ts +6 -0
  74. package/dist/cli/commands/help.d.ts.map +1 -0
  75. package/dist/cli/commands/help.js +936 -0
  76. package/dist/cli/commands/help.js.map +1 -0
  77. package/dist/cli/commands/hive-mind/index.d.ts +18 -0
  78. package/dist/cli/commands/hive-mind/index.d.ts.map +1 -0
  79. package/dist/cli/commands/hive-mind/index.js +30 -0
  80. package/dist/cli/commands/hive-mind/index.js.map +1 -0
  81. package/dist/cli/commands/hive-mind/init.d.ts +9 -0
  82. package/dist/cli/commands/hive-mind/init.d.ts.map +1 -0
  83. package/dist/cli/commands/hive-mind/init.js +68 -0
  84. package/dist/cli/commands/hive-mind/init.js.map +1 -0
  85. package/dist/cli/commands/hive-mind/pause.d.ts +8 -0
  86. package/dist/cli/commands/hive-mind/pause.d.ts.map +1 -0
  87. package/dist/cli/commands/hive-mind/pause.js +81 -0
  88. package/dist/cli/commands/hive-mind/pause.js.map +1 -0
  89. package/dist/cli/commands/hive-mind/ps.d.ts +8 -0
  90. package/dist/cli/commands/hive-mind/ps.d.ts.map +1 -0
  91. package/dist/cli/commands/hive-mind/ps.js +120 -0
  92. package/dist/cli/commands/hive-mind/ps.js.map +1 -0
  93. package/dist/cli/commands/hive-mind/resume.d.ts +8 -0
  94. package/dist/cli/commands/hive-mind/resume.d.ts.map +1 -0
  95. package/dist/cli/commands/hive-mind/resume.js +62 -0
  96. package/dist/cli/commands/hive-mind/resume.js.map +1 -0
  97. package/dist/cli/commands/hive-mind/spawn.d.ts +9 -0
  98. package/dist/cli/commands/hive-mind/spawn.d.ts.map +1 -0
  99. package/dist/cli/commands/hive-mind/spawn.js +174 -0
  100. package/dist/cli/commands/hive-mind/spawn.js.map +1 -0
  101. package/dist/cli/commands/hive-mind/status.d.ts +9 -0
  102. package/dist/cli/commands/hive-mind/status.d.ts.map +1 -0
  103. package/dist/cli/commands/hive-mind/status.js +204 -0
  104. package/dist/cli/commands/hive-mind/status.js.map +1 -0
  105. package/dist/cli/commands/hive-mind/stop.d.ts +8 -0
  106. package/dist/cli/commands/hive-mind/stop.d.ts.map +1 -0
  107. package/dist/cli/commands/hive-mind/stop.js +125 -0
  108. package/dist/cli/commands/hive-mind/stop.js.map +1 -0
  109. package/dist/cli/commands/hive-mind/task.d.ts +9 -0
  110. package/dist/cli/commands/hive-mind/task.d.ts.map +1 -0
  111. package/dist/cli/commands/hive-mind/task.js +294 -0
  112. package/dist/cli/commands/hive-mind/task.js.map +1 -0
  113. package/dist/cli/commands/hive-mind/wizard.d.ts +9 -0
  114. package/dist/cli/commands/hive-mind/wizard.d.ts.map +1 -0
  115. package/dist/cli/commands/hive-mind/wizard.js +531 -0
  116. package/dist/cli/commands/hive-mind/wizard.js.map +1 -0
  117. package/dist/cli/commands/hive.d.ts +6 -0
  118. package/dist/cli/commands/hive.d.ts.map +1 -0
  119. package/dist/cli/commands/hive.js +409 -0
  120. package/dist/cli/commands/hive.js.map +1 -0
  121. package/dist/cli/commands/index.d.ts +3 -0
  122. package/dist/cli/commands/index.d.ts.map +1 -0
  123. package/dist/cli/commands/index.js +2624 -0
  124. package/dist/cli/commands/index.js.map +1 -0
  125. package/dist/cli/commands/mcp.d.ts +5 -0
  126. package/dist/cli/commands/mcp.d.ts.map +1 -0
  127. package/dist/cli/commands/mcp.js +169 -0
  128. package/dist/cli/commands/mcp.js.map +1 -0
  129. package/dist/cli/commands/memory.d.ts +26 -0
  130. package/dist/cli/commands/memory.d.ts.map +1 -0
  131. package/dist/cli/commands/memory.js +225 -0
  132. package/dist/cli/commands/memory.js.map +1 -0
  133. package/dist/cli/commands/migrate.d.ts +5 -0
  134. package/dist/cli/commands/migrate.d.ts.map +1 -0
  135. package/dist/cli/commands/migrate.js +139 -0
  136. package/dist/cli/commands/migrate.js.map +1 -0
  137. package/dist/cli/commands/monitor.d.ts +5 -0
  138. package/dist/cli/commands/monitor.d.ts.map +1 -0
  139. package/dist/cli/commands/monitor.js +493 -0
  140. package/dist/cli/commands/monitor.js.map +1 -0
  141. package/dist/cli/commands/session.d.ts +5 -0
  142. package/dist/cli/commands/session.d.ts.map +1 -0
  143. package/dist/cli/commands/session.js +548 -0
  144. package/dist/cli/commands/session.js.map +1 -0
  145. package/dist/cli/commands/sparc.d.ts +3 -0
  146. package/dist/cli/commands/sparc.d.ts.map +1 -0
  147. package/dist/cli/commands/sparc.js +472 -0
  148. package/dist/cli/commands/sparc.js.map +1 -0
  149. package/dist/cli/commands/start/event-emitter.d.ts +13 -0
  150. package/dist/cli/commands/start/event-emitter.d.ts.map +1 -0
  151. package/dist/cli/commands/start/event-emitter.js +35 -0
  152. package/dist/cli/commands/start/event-emitter.js.map +1 -0
  153. package/dist/cli/commands/start/index.d.ts +10 -0
  154. package/dist/cli/commands/start/index.d.ts.map +1 -0
  155. package/dist/cli/commands/start/index.js +9 -0
  156. package/dist/cli/commands/start/index.js.map +1 -0
  157. package/dist/cli/commands/start/process-manager.d.ts +31 -0
  158. package/dist/cli/commands/start/process-manager.d.ts.map +1 -0
  159. package/dist/cli/commands/start/process-manager.js +283 -0
  160. package/dist/cli/commands/start/process-manager.js.map +1 -0
  161. package/dist/cli/commands/start/process-ui-simple.d.ts +29 -0
  162. package/dist/cli/commands/start/process-ui-simple.d.ts.map +1 -0
  163. package/dist/cli/commands/start/process-ui-simple.js +334 -0
  164. package/dist/cli/commands/start/process-ui-simple.js.map +1 -0
  165. package/dist/cli/commands/start/process-ui.d.ts +5 -0
  166. package/dist/cli/commands/start/process-ui.d.ts.map +1 -0
  167. package/dist/cli/commands/start/process-ui.js +5 -0
  168. package/dist/cli/commands/start/process-ui.js.map +1 -0
  169. package/dist/cli/commands/start/start-command.d.ts +2 -0
  170. package/dist/cli/commands/start/start-command.d.ts.map +1 -0
  171. package/dist/cli/commands/start/start-command.js +462 -0
  172. package/dist/cli/commands/start/start-command.js.map +1 -0
  173. package/dist/cli/commands/start/system-monitor.d.ts +25 -0
  174. package/dist/cli/commands/start/system-monitor.d.ts.map +1 -0
  175. package/dist/cli/commands/start/system-monitor.js +265 -0
  176. package/dist/cli/commands/start/system-monitor.js.map +1 -0
  177. package/dist/cli/commands/start/types.d.ts +64 -0
  178. package/dist/cli/commands/start/types.d.ts.map +1 -0
  179. package/dist/cli/commands/start/types.js +22 -0
  180. package/dist/cli/commands/start/types.js.map +1 -0
  181. package/dist/cli/commands/start.d.ts +6 -0
  182. package/dist/cli/commands/start.d.ts.map +1 -0
  183. package/dist/cli/commands/start.js +6 -0
  184. package/dist/cli/commands/start.js.map +1 -0
  185. package/dist/cli/commands/status.d.ts +2 -0
  186. package/dist/cli/commands/status.d.ts.map +1 -0
  187. package/dist/cli/commands/status.js +304 -0
  188. package/dist/cli/commands/status.js.map +1 -0
  189. package/dist/cli/commands/swarm.d.ts +6 -0
  190. package/dist/cli/commands/swarm.d.ts.map +1 -0
  191. package/dist/cli/commands/swarm.js +465 -0
  192. package/dist/cli/commands/swarm.js.map +1 -0
  193. package/dist/cli/commands/task.d.ts +2 -0
  194. package/dist/cli/commands/task.d.ts.map +1 -0
  195. package/dist/cli/commands/task.js +75 -0
  196. package/dist/cli/commands/task.js.map +1 -0
  197. package/dist/cli/commands/workflow.d.ts +2 -0
  198. package/dist/cli/commands/workflow.d.ts.map +1 -0
  199. package/dist/cli/commands/workflow.js +624 -0
  200. package/dist/cli/commands/workflow.js.map +1 -0
  201. package/dist/cli/completion.d.ts +19 -0
  202. package/dist/cli/completion.d.ts.map +1 -0
  203. package/dist/cli/completion.js +545 -0
  204. package/dist/cli/completion.js.map +1 -0
  205. package/dist/cli/formatter.d.ts +69 -0
  206. package/dist/cli/formatter.d.ts.map +1 -0
  207. package/dist/cli/formatter.js +277 -0
  208. package/dist/cli/formatter.js.map +1 -0
  209. package/dist/cli/help-formatter.d.ts +49 -0
  210. package/dist/cli/help-formatter.d.ts.map +1 -0
  211. package/dist/cli/help-formatter.js +108 -0
  212. package/dist/cli/help-formatter.js.map +1 -0
  213. package/dist/cli/help-text.d.ts +25 -0
  214. package/dist/cli/help-text.d.ts.map +1 -0
  215. package/dist/cli/help-text.js +1051 -0
  216. package/dist/cli/help-text.js.map +1 -0
  217. package/dist/cli/index-remote.d.ts +7 -0
  218. package/dist/cli/index-remote.d.ts.map +1 -0
  219. package/dist/cli/index-remote.js +125 -0
  220. package/dist/cli/index-remote.js.map +1 -0
  221. package/dist/cli/index.d.ts +7 -0
  222. package/dist/cli/index.d.ts.map +1 -0
  223. package/dist/cli/index.js +189 -0
  224. package/dist/cli/index.js.map +1 -0
  225. package/dist/cli/node-compat.d.ts +81 -0
  226. package/dist/cli/node-compat.d.ts.map +1 -0
  227. package/dist/cli/node-compat.js +229 -0
  228. package/dist/cli/node-compat.js.map +1 -0
  229. package/dist/cli/repl.d.ts +5 -0
  230. package/dist/cli/repl.d.ts.map +1 -0
  231. package/dist/cli/repl.js +949 -0
  232. package/dist/cli/repl.js.map +1 -0
  233. package/dist/cli/runtime-detector.d.ts +128 -0
  234. package/dist/cli/runtime-detector.d.ts.map +1 -0
  235. package/dist/cli/runtime-detector.js +267 -0
  236. package/dist/cli/runtime-detector.js.map +1 -0
  237. package/dist/cli/simple-cli.d.ts +7 -0
  238. package/dist/cli/simple-cli.d.ts.map +1 -0
  239. package/dist/cli/simple-cli.js +3085 -0
  240. package/dist/cli/simple-cli.js.map +1 -0
  241. package/dist/cli/simple-commands/agent.d.ts +6 -0
  242. package/dist/cli/simple-commands/agent.d.ts.map +1 -0
  243. package/dist/cli/simple-commands/agent.js +128 -0
  244. package/dist/cli/simple-commands/agent.js.map +1 -0
  245. package/dist/cli/simple-commands/analysis.d.ts +2 -0
  246. package/dist/cli/simple-commands/analysis.d.ts.map +1 -0
  247. package/dist/cli/simple-commands/analysis.js +473 -0
  248. package/dist/cli/simple-commands/analysis.js.map +1 -0
  249. package/dist/cli/simple-commands/automation-executor.d.ts +188 -0
  250. package/dist/cli/simple-commands/automation-executor.d.ts.map +1 -0
  251. package/dist/cli/simple-commands/automation-executor.js +1383 -0
  252. package/dist/cli/simple-commands/automation-executor.js.map +1 -0
  253. package/dist/cli/simple-commands/automation.d.ts +2 -0
  254. package/dist/cli/simple-commands/automation.d.ts.map +1 -0
  255. package/dist/cli/simple-commands/automation.js +531 -0
  256. package/dist/cli/simple-commands/automation.js.map +1 -0
  257. package/dist/cli/simple-commands/batch-manager.d.ts +2 -0
  258. package/dist/cli/simple-commands/batch-manager.d.ts.map +1 -0
  259. package/dist/cli/simple-commands/batch-manager.js +290 -0
  260. package/dist/cli/simple-commands/batch-manager.js.map +1 -0
  261. package/dist/cli/simple-commands/claude-telemetry.d.ts +14 -0
  262. package/dist/cli/simple-commands/claude-telemetry.d.ts.map +1 -0
  263. package/dist/cli/simple-commands/claude-telemetry.js +263 -0
  264. package/dist/cli/simple-commands/claude-telemetry.js.map +1 -0
  265. package/dist/cli/simple-commands/config.d.ts +6 -0
  266. package/dist/cli/simple-commands/config.d.ts.map +1 -0
  267. package/dist/cli/simple-commands/config.js +116 -0
  268. package/dist/cli/simple-commands/config.js.map +1 -0
  269. package/dist/cli/simple-commands/coordination.d.ts +2 -0
  270. package/dist/cli/simple-commands/coordination.d.ts.map +1 -0
  271. package/dist/cli/simple-commands/coordination.js +249 -0
  272. package/dist/cli/simple-commands/coordination.js.map +1 -0
  273. package/dist/cli/simple-commands/env-template.d.ts +42 -0
  274. package/dist/cli/simple-commands/env-template.d.ts.map +1 -0
  275. package/dist/cli/simple-commands/env-template.js +183 -0
  276. package/dist/cli/simple-commands/env-template.js.map +1 -0
  277. package/dist/cli/simple-commands/fix-hook-variables.d.ts +16 -0
  278. package/dist/cli/simple-commands/fix-hook-variables.d.ts.map +1 -0
  279. package/dist/cli/simple-commands/fix-hook-variables.js +320 -0
  280. package/dist/cli/simple-commands/fix-hook-variables.js.map +1 -0
  281. package/dist/cli/simple-commands/github/init.d.ts +6 -0
  282. package/dist/cli/simple-commands/github/init.d.ts.map +1 -0
  283. package/dist/cli/simple-commands/github/init.js +506 -0
  284. package/dist/cli/simple-commands/github/init.js.map +1 -0
  285. package/dist/cli/simple-commands/github.d.ts +3 -0
  286. package/dist/cli/simple-commands/github.d.ts.map +1 -0
  287. package/dist/cli/simple-commands/github.js +356 -0
  288. package/dist/cli/simple-commands/github.js.map +1 -0
  289. package/dist/cli/simple-commands/goal.d.ts +3 -0
  290. package/dist/cli/simple-commands/goal.d.ts.map +1 -0
  291. package/dist/cli/simple-commands/goal.js +136 -0
  292. package/dist/cli/simple-commands/goal.js.map +1 -0
  293. package/dist/cli/simple-commands/hive-mind/auto-save-middleware.d.ts +68 -0
  294. package/dist/cli/simple-commands/hive-mind/auto-save-middleware.d.ts.map +1 -0
  295. package/dist/cli/simple-commands/hive-mind/auto-save-middleware.js +264 -0
  296. package/dist/cli/simple-commands/hive-mind/auto-save-middleware.js.map +1 -0
  297. package/dist/cli/simple-commands/hive-mind/communication.d.ts +176 -0
  298. package/dist/cli/simple-commands/hive-mind/communication.d.ts.map +1 -0
  299. package/dist/cli/simple-commands/hive-mind/communication.js +611 -0
  300. package/dist/cli/simple-commands/hive-mind/communication.js.map +1 -0
  301. package/dist/cli/simple-commands/hive-mind/core.d.ts +306 -0
  302. package/dist/cli/simple-commands/hive-mind/core.d.ts.map +1 -0
  303. package/dist/cli/simple-commands/hive-mind/core.js +839 -0
  304. package/dist/cli/simple-commands/hive-mind/core.js.map +1 -0
  305. package/dist/cli/simple-commands/hive-mind/db-optimizer.d.ts +32 -0
  306. package/dist/cli/simple-commands/hive-mind/db-optimizer.d.ts.map +1 -0
  307. package/dist/cli/simple-commands/hive-mind/db-optimizer.js +702 -0
  308. package/dist/cli/simple-commands/hive-mind/db-optimizer.js.map +1 -0
  309. package/dist/cli/simple-commands/hive-mind/mcp-wrapper.d.ts +270 -0
  310. package/dist/cli/simple-commands/hive-mind/mcp-wrapper.d.ts.map +1 -0
  311. package/dist/cli/simple-commands/hive-mind/mcp-wrapper.js +1211 -0
  312. package/dist/cli/simple-commands/hive-mind/mcp-wrapper.js.map +1 -0
  313. package/dist/cli/simple-commands/hive-mind/memory.d.ts +334 -0
  314. package/dist/cli/simple-commands/hive-mind/memory.d.ts.map +1 -0
  315. package/dist/cli/simple-commands/hive-mind/memory.js +1068 -0
  316. package/dist/cli/simple-commands/hive-mind/memory.js.map +1 -0
  317. package/dist/cli/simple-commands/hive-mind/metrics-reader.js +274 -0
  318. package/dist/cli/simple-commands/hive-mind/metrics-reader.js.map +1 -0
  319. package/dist/cli/simple-commands/hive-mind/performance-optimizer.d.ts +256 -0
  320. package/dist/cli/simple-commands/hive-mind/performance-optimizer.d.ts.map +1 -0
  321. package/dist/cli/simple-commands/hive-mind/performance-optimizer.js +520 -0
  322. package/dist/cli/simple-commands/hive-mind/performance-optimizer.js.map +1 -0
  323. package/dist/cli/simple-commands/hive-mind/queen.d.ts +235 -0
  324. package/dist/cli/simple-commands/hive-mind/queen.d.ts.map +1 -0
  325. package/dist/cli/simple-commands/hive-mind/queen.js +697 -0
  326. package/dist/cli/simple-commands/hive-mind/queen.js.map +1 -0
  327. package/dist/cli/simple-commands/hive-mind/session-manager.d.ts +140 -0
  328. package/dist/cli/simple-commands/hive-mind/session-manager.d.ts.map +1 -0
  329. package/dist/cli/simple-commands/hive-mind/session-manager.js +1000 -0
  330. package/dist/cli/simple-commands/hive-mind/session-manager.js.map +1 -0
  331. package/dist/cli/simple-commands/hive-mind-optimize.d.ts +6 -0
  332. package/dist/cli/simple-commands/hive-mind-optimize.d.ts.map +1 -0
  333. package/dist/cli/simple-commands/hive-mind-optimize.js +317 -0
  334. package/dist/cli/simple-commands/hive-mind-optimize.js.map +1 -0
  335. package/dist/cli/simple-commands/hive-mind.d.ts +22 -0
  336. package/dist/cli/simple-commands/hive-mind.d.ts.map +1 -0
  337. package/dist/cli/simple-commands/hive-mind.js +2722 -0
  338. package/dist/cli/simple-commands/hive-mind.js.map +1 -0
  339. package/dist/cli/simple-commands/hook-safety.d.ts +177 -0
  340. package/dist/cli/simple-commands/hook-safety.d.ts.map +1 -0
  341. package/dist/cli/simple-commands/hook-safety.js +590 -0
  342. package/dist/cli/simple-commands/hook-safety.js.map +1 -0
  343. package/dist/cli/simple-commands/hooks.d.ts +3 -0
  344. package/dist/cli/simple-commands/hooks.d.ts.map +1 -0
  345. package/dist/cli/simple-commands/hooks.js +1298 -0
  346. package/dist/cli/simple-commands/hooks.js.map +1 -0
  347. package/dist/cli/simple-commands/init/agent-copier.d.ts +65 -0
  348. package/dist/cli/simple-commands/init/agent-copier.d.ts.map +1 -0
  349. package/dist/cli/simple-commands/init/agent-copier.js +320 -0
  350. package/dist/cli/simple-commands/init/agent-copier.js.map +1 -0
  351. package/dist/cli/simple-commands/init/batch-init.d.ts +137 -0
  352. package/dist/cli/simple-commands/init/batch-init.d.ts.map +1 -0
  353. package/dist/cli/simple-commands/init/batch-init.js +558 -0
  354. package/dist/cli/simple-commands/init/batch-init.js.map +1 -0
  355. package/dist/cli/simple-commands/init/claude-commands/claude-flow-commands.d.ts +2 -0
  356. package/dist/cli/simple-commands/init/claude-commands/claude-flow-commands.d.ts.map +1 -0
  357. package/dist/cli/simple-commands/init/claude-commands/claude-flow-commands.js +433 -0
  358. package/dist/cli/simple-commands/init/claude-commands/claude-flow-commands.js.map +1 -0
  359. package/dist/cli/simple-commands/init/claude-commands/optimized-claude-flow-commands.d.ts +2 -0
  360. package/dist/cli/simple-commands/init/claude-commands/optimized-claude-flow-commands.d.ts.map +1 -0
  361. package/dist/cli/simple-commands/init/claude-commands/optimized-claude-flow-commands.js +871 -0
  362. package/dist/cli/simple-commands/init/claude-commands/optimized-claude-flow-commands.js.map +1 -0
  363. package/dist/cli/simple-commands/init/claude-commands/optimized-slash-commands.d.ts +2 -0
  364. package/dist/cli/simple-commands/init/claude-commands/optimized-slash-commands.d.ts.map +1 -0
  365. package/dist/cli/simple-commands/init/claude-commands/optimized-slash-commands.js +332 -0
  366. package/dist/cli/simple-commands/init/claude-commands/optimized-slash-commands.js.map +1 -0
  367. package/dist/cli/simple-commands/init/claude-commands/optimized-sparc-commands.d.ts +3 -0
  368. package/dist/cli/simple-commands/init/claude-commands/optimized-sparc-commands.d.ts.map +1 -0
  369. package/dist/cli/simple-commands/init/claude-commands/optimized-sparc-commands.js +488 -0
  370. package/dist/cli/simple-commands/init/claude-commands/optimized-sparc-commands.js.map +1 -0
  371. package/dist/cli/simple-commands/init/claude-commands/slash-commands.d.ts +2 -0
  372. package/dist/cli/simple-commands/init/claude-commands/slash-commands.d.ts.map +1 -0
  373. package/dist/cli/simple-commands/init/claude-commands/slash-commands.js +51 -0
  374. package/dist/cli/simple-commands/init/claude-commands/slash-commands.js.map +1 -0
  375. package/dist/cli/simple-commands/init/claude-commands/sparc-commands.d.ts +3 -0
  376. package/dist/cli/simple-commands/init/claude-commands/sparc-commands.d.ts.map +1 -0
  377. package/dist/cli/simple-commands/init/claude-commands/sparc-commands.js +288 -0
  378. package/dist/cli/simple-commands/init/claude-commands/sparc-commands.js.map +1 -0
  379. package/dist/cli/simple-commands/init/copy-revised-templates.d.ts +29 -0
  380. package/dist/cli/simple-commands/init/copy-revised-templates.d.ts.map +1 -0
  381. package/dist/cli/simple-commands/init/copy-revised-templates.js +166 -0
  382. package/dist/cli/simple-commands/init/copy-revised-templates.js.map +1 -0
  383. package/dist/cli/simple-commands/init/executable-wrapper.d.ts +2 -0
  384. package/dist/cli/simple-commands/init/executable-wrapper.d.ts.map +1 -0
  385. package/dist/cli/simple-commands/init/executable-wrapper.js +116 -0
  386. package/dist/cli/simple-commands/init/executable-wrapper.js.map +1 -0
  387. package/dist/cli/simple-commands/init/gitignore-updater.d.ts +23 -0
  388. package/dist/cli/simple-commands/init/gitignore-updater.d.ts.map +1 -0
  389. package/dist/cli/simple-commands/init/gitignore-updater.js +128 -0
  390. package/dist/cli/simple-commands/init/gitignore-updater.js.map +1 -0
  391. package/dist/cli/simple-commands/init/help.d.ts +2 -0
  392. package/dist/cli/simple-commands/init/help.d.ts.map +1 -0
  393. package/dist/cli/simple-commands/init/help.js +131 -0
  394. package/dist/cli/simple-commands/init/help.js.map +1 -0
  395. package/dist/cli/simple-commands/init/hive-mind-init.d.ts +152 -0
  396. package/dist/cli/simple-commands/init/hive-mind-init.d.ts.map +1 -0
  397. package/dist/cli/simple-commands/init/hive-mind-init.js +699 -0
  398. package/dist/cli/simple-commands/init/hive-mind-init.js.map +1 -0
  399. package/dist/cli/simple-commands/init/index.d.ts +2 -0
  400. package/dist/cli/simple-commands/init/index.d.ts.map +1 -0
  401. package/dist/cli/simple-commands/init/index.js +1784 -0
  402. package/dist/cli/simple-commands/init/index.js.map +1 -0
  403. package/dist/cli/simple-commands/init/performance-monitor.d.ts +73 -0
  404. package/dist/cli/simple-commands/init/performance-monitor.d.ts.map +1 -0
  405. package/dist/cli/simple-commands/init/performance-monitor.js +277 -0
  406. package/dist/cli/simple-commands/init/performance-monitor.js.map +1 -0
  407. package/dist/cli/simple-commands/init/rollback/backup-manager.d.ts +95 -0
  408. package/dist/cli/simple-commands/init/rollback/backup-manager.d.ts.map +1 -0
  409. package/dist/cli/simple-commands/init/rollback/backup-manager.js +486 -0
  410. package/dist/cli/simple-commands/init/rollback/backup-manager.js.map +1 -0
  411. package/dist/cli/simple-commands/init/rollback/index.d.ts +114 -0
  412. package/dist/cli/simple-commands/init/rollback/index.d.ts.map +1 -0
  413. package/dist/cli/simple-commands/init/rollback/index.js +353 -0
  414. package/dist/cli/simple-commands/init/rollback/index.js.map +1 -0
  415. package/dist/cli/simple-commands/init/rollback/recovery-manager.d.ts +161 -0
  416. package/dist/cli/simple-commands/init/rollback/recovery-manager.d.ts.map +1 -0
  417. package/dist/cli/simple-commands/init/rollback/recovery-manager.js +686 -0
  418. package/dist/cli/simple-commands/init/rollback/recovery-manager.js.map +1 -0
  419. package/dist/cli/simple-commands/init/rollback/rollback-executor.d.ts +112 -0
  420. package/dist/cli/simple-commands/init/rollback/rollback-executor.d.ts.map +1 -0
  421. package/dist/cli/simple-commands/init/rollback/rollback-executor.js +480 -0
  422. package/dist/cli/simple-commands/init/rollback/rollback-executor.js.map +1 -0
  423. package/dist/cli/simple-commands/init/rollback/state-tracker.d.ts +121 -0
  424. package/dist/cli/simple-commands/init/rollback/state-tracker.d.ts.map +1 -0
  425. package/dist/cli/simple-commands/init/rollback/state-tracker.js +432 -0
  426. package/dist/cli/simple-commands/init/rollback/state-tracker.js.map +1 -0
  427. package/dist/cli/simple-commands/init/skills-copier.d.ts +41 -0
  428. package/dist/cli/simple-commands/init/skills-copier.d.ts.map +1 -0
  429. package/dist/cli/simple-commands/init/skills-copier.js +192 -0
  430. package/dist/cli/simple-commands/init/skills-copier.js.map +1 -0
  431. package/dist/cli/simple-commands/init/sparc/roo-readme.d.ts +2 -0
  432. package/dist/cli/simple-commands/init/sparc/roo-readme.d.ts.map +1 -0
  433. package/dist/cli/simple-commands/init/sparc/roo-readme.js +61 -0
  434. package/dist/cli/simple-commands/init/sparc/roo-readme.js.map +1 -0
  435. package/dist/cli/simple-commands/init/sparc/roomodes-config.d.ts +2 -0
  436. package/dist/cli/simple-commands/init/sparc/roomodes-config.d.ts.map +1 -0
  437. package/dist/cli/simple-commands/init/sparc/roomodes-config.js +80 -0
  438. package/dist/cli/simple-commands/init/sparc/roomodes-config.js.map +1 -0
  439. package/dist/cli/simple-commands/init/sparc/workflows.d.ts +2 -0
  440. package/dist/cli/simple-commands/init/sparc/workflows.d.ts.map +1 -0
  441. package/dist/cli/simple-commands/init/sparc/workflows.js +36 -0
  442. package/dist/cli/simple-commands/init/sparc/workflows.js.map +1 -0
  443. package/dist/cli/simple-commands/init/sparc-structure.d.ts +2 -0
  444. package/dist/cli/simple-commands/init/sparc-structure.d.ts.map +1 -0
  445. package/dist/cli/simple-commands/init/sparc-structure.js +63 -0
  446. package/dist/cli/simple-commands/init/sparc-structure.js.map +1 -0
  447. package/dist/cli/simple-commands/init/template-copier.d.ts +27 -0
  448. package/dist/cli/simple-commands/init/template-copier.d.ts.map +1 -0
  449. package/dist/cli/simple-commands/init/template-copier.js +538 -0
  450. package/dist/cli/simple-commands/init/template-copier.js.map +1 -0
  451. package/dist/cli/simple-commands/init/templates/claude-md.d.ts +6 -0
  452. package/dist/cli/simple-commands/init/templates/claude-md.d.ts.map +1 -0
  453. package/dist/cli/simple-commands/init/templates/claude-md.js +1097 -0
  454. package/dist/cli/simple-commands/init/templates/claude-md.js.map +1 -0
  455. package/dist/cli/simple-commands/init/templates/coordination-md.d.ts +4 -0
  456. package/dist/cli/simple-commands/init/templates/coordination-md.d.ts.map +1 -0
  457. package/dist/cli/simple-commands/init/templates/coordination-md.js +338 -0
  458. package/dist/cli/simple-commands/init/templates/coordination-md.js.map +1 -0
  459. package/dist/cli/simple-commands/init/templates/enhanced-templates.d.ts +21 -0
  460. package/dist/cli/simple-commands/init/templates/enhanced-templates.d.ts.map +1 -0
  461. package/dist/cli/simple-commands/init/templates/enhanced-templates.js +2304 -0
  462. package/dist/cli/simple-commands/init/templates/enhanced-templates.js.map +1 -0
  463. package/dist/cli/simple-commands/init/templates/memory-bank-md.d.ts +4 -0
  464. package/dist/cli/simple-commands/init/templates/memory-bank-md.d.ts.map +1 -0
  465. package/dist/cli/simple-commands/init/templates/memory-bank-md.js +257 -0
  466. package/dist/cli/simple-commands/init/templates/memory-bank-md.js.map +1 -0
  467. package/dist/cli/simple-commands/init/templates/readme-files.d.ts +3 -0
  468. package/dist/cli/simple-commands/init/templates/readme-files.d.ts.map +1 -0
  469. package/dist/cli/simple-commands/init/templates/readme-files.js +71 -0
  470. package/dist/cli/simple-commands/init/templates/readme-files.js.map +1 -0
  471. package/dist/cli/simple-commands/init/templates/sparc-modes.d.ts +30 -0
  472. package/dist/cli/simple-commands/init/templates/sparc-modes.d.ts.map +1 -0
  473. package/dist/cli/simple-commands/init/templates/sparc-modes.js +1375 -0
  474. package/dist/cli/simple-commands/init/templates/sparc-modes.js.map +1 -0
  475. package/dist/cli/simple-commands/init/templates/verification-claude-md.d.ts +3 -0
  476. package/dist/cli/simple-commands/init/templates/verification-claude-md.d.ts.map +1 -0
  477. package/dist/cli/simple-commands/init/templates/verification-claude-md.js +432 -0
  478. package/dist/cli/simple-commands/init/templates/verification-claude-md.js.map +1 -0
  479. package/dist/cli/simple-commands/init/validation/config-validator.d.ts +63 -0
  480. package/dist/cli/simple-commands/init/validation/config-validator.d.ts.map +1 -0
  481. package/dist/cli/simple-commands/init/validation/config-validator.js +308 -0
  482. package/dist/cli/simple-commands/init/validation/config-validator.js.map +1 -0
  483. package/dist/cli/simple-commands/init/validation/health-checker.d.ts +117 -0
  484. package/dist/cli/simple-commands/init/validation/health-checker.d.ts.map +1 -0
  485. package/dist/cli/simple-commands/init/validation/health-checker.js +539 -0
  486. package/dist/cli/simple-commands/init/validation/health-checker.js.map +1 -0
  487. package/dist/cli/simple-commands/init/validation/index.d.ts +55 -0
  488. package/dist/cli/simple-commands/init/validation/index.d.ts.map +1 -0
  489. package/dist/cli/simple-commands/init/validation/index.js +347 -0
  490. package/dist/cli/simple-commands/init/validation/index.js.map +1 -0
  491. package/dist/cli/simple-commands/init/validation/mode-validator.d.ts +76 -0
  492. package/dist/cli/simple-commands/init/validation/mode-validator.d.ts.map +1 -0
  493. package/dist/cli/simple-commands/init/validation/mode-validator.js +343 -0
  494. package/dist/cli/simple-commands/init/validation/mode-validator.js.map +1 -0
  495. package/dist/cli/simple-commands/init/validation/post-init-validator.d.ts +62 -0
  496. package/dist/cli/simple-commands/init/validation/post-init-validator.d.ts.map +1 -0
  497. package/dist/cli/simple-commands/init/validation/post-init-validator.js +349 -0
  498. package/dist/cli/simple-commands/init/validation/post-init-validator.js.map +1 -0
  499. package/dist/cli/simple-commands/init/validation/pre-init-validator.d.ts +86 -0
  500. package/dist/cli/simple-commands/init/validation/pre-init-validator.d.ts.map +1 -0
  501. package/dist/cli/simple-commands/init/validation/pre-init-validator.js +260 -0
  502. package/dist/cli/simple-commands/init/validation/pre-init-validator.js.map +1 -0
  503. package/dist/cli/simple-commands/inject-memory-protocol.d.ts +34 -0
  504. package/dist/cli/simple-commands/inject-memory-protocol.d.ts.map +1 -0
  505. package/dist/cli/simple-commands/inject-memory-protocol.js +229 -0
  506. package/dist/cli/simple-commands/inject-memory-protocol.js.map +1 -0
  507. package/dist/cli/simple-commands/mcp.d.ts +2 -0
  508. package/dist/cli/simple-commands/mcp.d.ts.map +1 -0
  509. package/dist/cli/simple-commands/mcp.js +369 -0
  510. package/dist/cli/simple-commands/mcp.js.map +1 -0
  511. package/dist/cli/simple-commands/memory-consolidation.d.ts +73 -0
  512. package/dist/cli/simple-commands/memory-consolidation.d.ts.map +1 -0
  513. package/dist/cli/simple-commands/memory-consolidation.js +537 -0
  514. package/dist/cli/simple-commands/memory-consolidation.js.map +1 -0
  515. package/dist/cli/simple-commands/memory.d.ts +2 -0
  516. package/dist/cli/simple-commands/memory.d.ts.map +1 -0
  517. package/dist/cli/simple-commands/memory.js +778 -0
  518. package/dist/cli/simple-commands/memory.js.map +1 -0
  519. package/dist/cli/simple-commands/migrate-hooks.d.ts +10 -0
  520. package/dist/cli/simple-commands/migrate-hooks.d.ts.map +1 -0
  521. package/dist/cli/simple-commands/migrate-hooks.js +57 -0
  522. package/dist/cli/simple-commands/migrate-hooks.js.map +1 -0
  523. package/dist/cli/simple-commands/monitor.d.ts +3 -0
  524. package/dist/cli/simple-commands/monitor.d.ts.map +1 -0
  525. package/dist/cli/simple-commands/monitor.js +366 -0
  526. package/dist/cli/simple-commands/monitor.js.map +1 -0
  527. package/dist/cli/simple-commands/neural.d.ts +3 -0
  528. package/dist/cli/simple-commands/neural.d.ts.map +1 -0
  529. package/dist/cli/simple-commands/neural.js +137 -0
  530. package/dist/cli/simple-commands/neural.js.map +1 -0
  531. package/dist/cli/simple-commands/pair.d.ts +3 -0
  532. package/dist/cli/simple-commands/pair.d.ts.map +1 -0
  533. package/dist/cli/simple-commands/pair.js +735 -0
  534. package/dist/cli/simple-commands/pair.js.map +1 -0
  535. package/dist/cli/simple-commands/performance-hooks.d.ts +20 -0
  536. package/dist/cli/simple-commands/performance-hooks.d.ts.map +1 -0
  537. package/dist/cli/simple-commands/performance-hooks.js +127 -0
  538. package/dist/cli/simple-commands/performance-hooks.js.map +1 -0
  539. package/dist/cli/simple-commands/performance-metrics.d.ts +153 -0
  540. package/dist/cli/simple-commands/performance-metrics.d.ts.map +1 -0
  541. package/dist/cli/simple-commands/performance-metrics.js +759 -0
  542. package/dist/cli/simple-commands/performance-metrics.js.map +1 -0
  543. package/dist/cli/simple-commands/process-ui-enhanced.d.ts +55 -0
  544. package/dist/cli/simple-commands/process-ui-enhanced.d.ts.map +1 -0
  545. package/dist/cli/simple-commands/process-ui-enhanced.js +680 -0
  546. package/dist/cli/simple-commands/process-ui-enhanced.js.map +1 -0
  547. package/dist/cli/simple-commands/proxy.d.ts +5 -0
  548. package/dist/cli/simple-commands/proxy.d.ts.map +1 -0
  549. package/dist/cli/simple-commands/proxy.js +346 -0
  550. package/dist/cli/simple-commands/proxy.js.map +1 -0
  551. package/dist/cli/simple-commands/sparc-modes/architect.d.ts +2 -0
  552. package/dist/cli/simple-commands/sparc-modes/architect.d.ts.map +1 -0
  553. package/dist/cli/simple-commands/sparc-modes/architect.js +126 -0
  554. package/dist/cli/simple-commands/sparc-modes/architect.js.map +1 -0
  555. package/dist/cli/simple-commands/sparc-modes/ask.d.ts +2 -0
  556. package/dist/cli/simple-commands/sparc-modes/ask.d.ts.map +1 -0
  557. package/dist/cli/simple-commands/sparc-modes/ask.js +127 -0
  558. package/dist/cli/simple-commands/sparc-modes/ask.js.map +1 -0
  559. package/dist/cli/simple-commands/sparc-modes/code.d.ts +2 -0
  560. package/dist/cli/simple-commands/sparc-modes/code.d.ts.map +1 -0
  561. package/dist/cli/simple-commands/sparc-modes/code.js +149 -0
  562. package/dist/cli/simple-commands/sparc-modes/code.js.map +1 -0
  563. package/dist/cli/simple-commands/sparc-modes/debug.d.ts +2 -0
  564. package/dist/cli/simple-commands/sparc-modes/debug.d.ts.map +1 -0
  565. package/dist/cli/simple-commands/sparc-modes/debug.js +113 -0
  566. package/dist/cli/simple-commands/sparc-modes/debug.js.map +1 -0
  567. package/dist/cli/simple-commands/sparc-modes/devops.d.ts +2 -0
  568. package/dist/cli/simple-commands/sparc-modes/devops.d.ts.map +1 -0
  569. package/dist/cli/simple-commands/sparc-modes/devops.js +138 -0
  570. package/dist/cli/simple-commands/sparc-modes/devops.js.map +1 -0
  571. package/dist/cli/simple-commands/sparc-modes/docs-writer.d.ts +2 -0
  572. package/dist/cli/simple-commands/sparc-modes/docs-writer.d.ts.map +1 -0
  573. package/dist/cli/simple-commands/sparc-modes/docs-writer.js +39 -0
  574. package/dist/cli/simple-commands/sparc-modes/docs-writer.js.map +1 -0
  575. package/dist/cli/simple-commands/sparc-modes/generic.d.ts +2 -0
  576. package/dist/cli/simple-commands/sparc-modes/generic.d.ts.map +1 -0
  577. package/dist/cli/simple-commands/sparc-modes/generic.js +35 -0
  578. package/dist/cli/simple-commands/sparc-modes/generic.js.map +1 -0
  579. package/dist/cli/simple-commands/sparc-modes/index.d.ts +17 -0
  580. package/dist/cli/simple-commands/sparc-modes/index.d.ts.map +1 -0
  581. package/dist/cli/simple-commands/sparc-modes/index.js +196 -0
  582. package/dist/cli/simple-commands/sparc-modes/index.js.map +1 -0
  583. package/dist/cli/simple-commands/sparc-modes/integration.d.ts +2 -0
  584. package/dist/cli/simple-commands/sparc-modes/integration.d.ts.map +1 -0
  585. package/dist/cli/simple-commands/sparc-modes/integration.js +56 -0
  586. package/dist/cli/simple-commands/sparc-modes/integration.js.map +1 -0
  587. package/dist/cli/simple-commands/sparc-modes/mcp.d.ts +2 -0
  588. package/dist/cli/simple-commands/sparc-modes/mcp.d.ts.map +1 -0
  589. package/dist/cli/simple-commands/sparc-modes/mcp.js +39 -0
  590. package/dist/cli/simple-commands/sparc-modes/mcp.js.map +1 -0
  591. package/dist/cli/simple-commands/sparc-modes/monitoring.d.ts +2 -0
  592. package/dist/cli/simple-commands/sparc-modes/monitoring.d.ts.map +1 -0
  593. package/dist/cli/simple-commands/sparc-modes/monitoring.js +39 -0
  594. package/dist/cli/simple-commands/sparc-modes/monitoring.js.map +1 -0
  595. package/dist/cli/simple-commands/sparc-modes/optimization.d.ts +2 -0
  596. package/dist/cli/simple-commands/sparc-modes/optimization.d.ts.map +1 -0
  597. package/dist/cli/simple-commands/sparc-modes/optimization.js +39 -0
  598. package/dist/cli/simple-commands/sparc-modes/optimization.js.map +1 -0
  599. package/dist/cli/simple-commands/sparc-modes/security-review.d.ts +2 -0
  600. package/dist/cli/simple-commands/sparc-modes/security-review.d.ts.map +1 -0
  601. package/dist/cli/simple-commands/sparc-modes/security-review.js +131 -0
  602. package/dist/cli/simple-commands/sparc-modes/security-review.js.map +1 -0
  603. package/dist/cli/simple-commands/sparc-modes/sparc-orchestrator.d.ts +2 -0
  604. package/dist/cli/simple-commands/sparc-modes/sparc-orchestrator.d.ts.map +1 -0
  605. package/dist/cli/simple-commands/sparc-modes/sparc-orchestrator.js +168 -0
  606. package/dist/cli/simple-commands/sparc-modes/sparc-orchestrator.js.map +1 -0
  607. package/dist/cli/simple-commands/sparc-modes/spec-pseudocode.d.ts +2 -0
  608. package/dist/cli/simple-commands/sparc-modes/spec-pseudocode.d.ts.map +1 -0
  609. package/dist/cli/simple-commands/sparc-modes/spec-pseudocode.js +39 -0
  610. package/dist/cli/simple-commands/sparc-modes/spec-pseudocode.js.map +1 -0
  611. package/dist/cli/simple-commands/sparc-modes/supabase-admin.d.ts +2 -0
  612. package/dist/cli/simple-commands/sparc-modes/supabase-admin.d.ts.map +1 -0
  613. package/dist/cli/simple-commands/sparc-modes/supabase-admin.js +150 -0
  614. package/dist/cli/simple-commands/sparc-modes/supabase-admin.js.map +1 -0
  615. package/dist/cli/simple-commands/sparc-modes/swarm.d.ts +81 -0
  616. package/dist/cli/simple-commands/sparc-modes/swarm.d.ts.map +1 -0
  617. package/dist/cli/simple-commands/sparc-modes/swarm.js +428 -0
  618. package/dist/cli/simple-commands/sparc-modes/swarm.js.map +1 -0
  619. package/dist/cli/simple-commands/sparc-modes/tdd.d.ts +2 -0
  620. package/dist/cli/simple-commands/sparc-modes/tdd.d.ts.map +1 -0
  621. package/dist/cli/simple-commands/sparc-modes/tdd.js +113 -0
  622. package/dist/cli/simple-commands/sparc-modes/tdd.js.map +1 -0
  623. package/dist/cli/simple-commands/sparc-modes/tutorial.d.ts +2 -0
  624. package/dist/cli/simple-commands/sparc-modes/tutorial.d.ts.map +1 -0
  625. package/dist/cli/simple-commands/sparc-modes/tutorial.js +278 -0
  626. package/dist/cli/simple-commands/sparc-modes/tutorial.js.map +1 -0
  627. package/dist/cli/simple-commands/sparc.d.ts +2 -0
  628. package/dist/cli/simple-commands/sparc.d.ts.map +1 -0
  629. package/dist/cli/simple-commands/sparc.js +477 -0
  630. package/dist/cli/simple-commands/sparc.js.map +1 -0
  631. package/dist/cli/simple-commands/start-ui.d.ts +2 -0
  632. package/dist/cli/simple-commands/start-ui.d.ts.map +1 -0
  633. package/dist/cli/simple-commands/start-ui.js +135 -0
  634. package/dist/cli/simple-commands/start-ui.js.map +1 -0
  635. package/dist/cli/simple-commands/start-wrapper.d.ts +2 -0
  636. package/dist/cli/simple-commands/start-wrapper.d.ts.map +1 -0
  637. package/dist/cli/simple-commands/start-wrapper.js +264 -0
  638. package/dist/cli/simple-commands/start-wrapper.js.map +1 -0
  639. package/dist/cli/simple-commands/start.d.ts +2 -0
  640. package/dist/cli/simple-commands/start.d.ts.map +1 -0
  641. package/dist/cli/simple-commands/start.js +3 -0
  642. package/dist/cli/simple-commands/start.js.map +1 -0
  643. package/dist/cli/simple-commands/status.d.ts +2 -0
  644. package/dist/cli/simple-commands/status.d.ts.map +1 -0
  645. package/dist/cli/simple-commands/status.js +292 -0
  646. package/dist/cli/simple-commands/status.js.map +1 -0
  647. package/dist/cli/simple-commands/stream-chain.d.ts +7 -0
  648. package/dist/cli/simple-commands/stream-chain.d.ts.map +1 -0
  649. package/dist/cli/simple-commands/stream-chain.js +433 -0
  650. package/dist/cli/simple-commands/stream-chain.js.map +1 -0
  651. package/dist/cli/simple-commands/stream-processor.d.ts +32 -0
  652. package/dist/cli/simple-commands/stream-processor.d.ts.map +1 -0
  653. package/dist/cli/simple-commands/stream-processor.js +318 -0
  654. package/dist/cli/simple-commands/stream-processor.js.map +1 -0
  655. package/dist/cli/simple-commands/swarm-executor.d.ts +68 -0
  656. package/dist/cli/simple-commands/swarm-executor.d.ts.map +1 -0
  657. package/dist/cli/simple-commands/swarm-executor.js +218 -0
  658. package/dist/cli/simple-commands/swarm-executor.js.map +1 -0
  659. package/dist/cli/simple-commands/swarm-metrics-integration.d.ts +69 -0
  660. package/dist/cli/simple-commands/swarm-metrics-integration.d.ts.map +1 -0
  661. package/dist/cli/simple-commands/swarm-metrics-integration.js +294 -0
  662. package/dist/cli/simple-commands/swarm-metrics-integration.js.map +1 -0
  663. package/dist/cli/simple-commands/swarm-webui-integration.d.ts +68 -0
  664. package/dist/cli/simple-commands/swarm-webui-integration.d.ts.map +1 -0
  665. package/dist/cli/simple-commands/swarm-webui-integration.js +265 -0
  666. package/dist/cli/simple-commands/swarm-webui-integration.js.map +1 -0
  667. package/dist/cli/simple-commands/swarm.d.ts +2 -0
  668. package/dist/cli/simple-commands/swarm.d.ts.map +1 -0
  669. package/dist/cli/simple-commands/swarm.js +2104 -0
  670. package/dist/cli/simple-commands/swarm.js.map +1 -0
  671. package/dist/cli/simple-commands/task.d.ts +2 -0
  672. package/dist/cli/simple-commands/task.d.ts.map +1 -0
  673. package/dist/cli/simple-commands/task.js +250 -0
  674. package/dist/cli/simple-commands/task.js.map +1 -0
  675. package/dist/cli/simple-commands/token-tracker.d.ts +73 -0
  676. package/dist/cli/simple-commands/token-tracker.d.ts.map +1 -0
  677. package/dist/cli/simple-commands/token-tracker.js +319 -0
  678. package/dist/cli/simple-commands/token-tracker.js.map +1 -0
  679. package/dist/cli/simple-commands/training-pipeline.d.ts +166 -0
  680. package/dist/cli/simple-commands/training-pipeline.d.ts.map +1 -0
  681. package/dist/cli/simple-commands/training-pipeline.js +760 -0
  682. package/dist/cli/simple-commands/training-pipeline.js.map +1 -0
  683. package/dist/cli/simple-commands/training.d.ts +2 -0
  684. package/dist/cli/simple-commands/training.d.ts.map +1 -0
  685. package/dist/cli/simple-commands/training.js +240 -0
  686. package/dist/cli/simple-commands/training.js.map +1 -0
  687. package/dist/cli/simple-commands/verification-training-integration.d.ts +181 -0
  688. package/dist/cli/simple-commands/verification-training-integration.d.ts.map +1 -0
  689. package/dist/cli/simple-commands/verification-training-integration.js +561 -0
  690. package/dist/cli/simple-commands/verification-training-integration.js.map +1 -0
  691. package/dist/cli/simple-commands/verification.d.ts +10 -0
  692. package/dist/cli/simple-commands/verification.d.ts.map +1 -0
  693. package/dist/cli/simple-commands/verification.js +476 -0
  694. package/dist/cli/simple-commands/verification.js.map +1 -0
  695. package/dist/cli/simple-commands/web-server.d.ts +152 -0
  696. package/dist/cli/simple-commands/web-server.d.ts.map +1 -0
  697. package/dist/cli/simple-commands/web-server.js +816 -0
  698. package/dist/cli/simple-commands/web-server.js.map +1 -0
  699. package/dist/cli/utils/interactive-detector.d.ts +25 -0
  700. package/dist/cli/utils/interactive-detector.d.ts.map +1 -0
  701. package/dist/cli/utils/interactive-detector.js +129 -0
  702. package/dist/cli/utils/interactive-detector.js.map +1 -0
  703. package/dist/cli/utils/safe-interactive.d.ts +30 -0
  704. package/dist/cli/utils/safe-interactive.d.ts.map +1 -0
  705. package/dist/cli/utils/safe-interactive.js +134 -0
  706. package/dist/cli/utils/safe-interactive.js.map +1 -0
  707. package/dist/cli/utils.d.ts +75 -0
  708. package/dist/cli/utils.d.ts.map +1 -0
  709. package/dist/cli/utils.js +567 -0
  710. package/dist/cli/utils.js.map +1 -0
  711. package/dist/config/config-manager.d.ts +212 -0
  712. package/dist/config/config-manager.d.ts.map +1 -0
  713. package/dist/config/config-manager.js +550 -0
  714. package/dist/config/config-manager.js.map +1 -0
  715. package/dist/constants/agent-types.d.ts +57 -0
  716. package/dist/constants/agent-types.d.ts.map +1 -0
  717. package/dist/constants/agent-types.js +57 -0
  718. package/dist/constants/agent-types.js.map +1 -0
  719. package/dist/coordination/advanced-scheduler.d.ts +121 -0
  720. package/dist/coordination/advanced-scheduler.d.ts.map +1 -0
  721. package/dist/coordination/advanced-scheduler.js +382 -0
  722. package/dist/coordination/advanced-scheduler.js.map +1 -0
  723. package/dist/coordination/background-executor.d.ts +69 -0
  724. package/dist/coordination/background-executor.d.ts.map +1 -0
  725. package/dist/coordination/background-executor.js +363 -0
  726. package/dist/coordination/background-executor.js.map +1 -0
  727. package/dist/coordination/circuit-breaker.d.ts +124 -0
  728. package/dist/coordination/circuit-breaker.d.ts.map +1 -0
  729. package/dist/coordination/circuit-breaker.js +301 -0
  730. package/dist/coordination/circuit-breaker.js.map +1 -0
  731. package/dist/coordination/conflict-resolution.d.ts +133 -0
  732. package/dist/coordination/conflict-resolution.d.ts.map +1 -0
  733. package/dist/coordination/conflict-resolution.js +360 -0
  734. package/dist/coordination/conflict-resolution.js.map +1 -0
  735. package/dist/coordination/dependency-graph.d.ts +78 -0
  736. package/dist/coordination/dependency-graph.d.ts.map +1 -0
  737. package/dist/coordination/dependency-graph.js +387 -0
  738. package/dist/coordination/dependency-graph.js.map +1 -0
  739. package/dist/coordination/manager.d.ts +66 -0
  740. package/dist/coordination/manager.d.ts.map +1 -0
  741. package/dist/coordination/manager.js +354 -0
  742. package/dist/coordination/manager.js.map +1 -0
  743. package/dist/coordination/messaging.d.ts +37 -0
  744. package/dist/coordination/messaging.d.ts.map +1 -0
  745. package/dist/coordination/messaging.js +219 -0
  746. package/dist/coordination/messaging.js.map +1 -0
  747. package/dist/coordination/metrics.d.ts +153 -0
  748. package/dist/coordination/metrics.d.ts.map +1 -0
  749. package/dist/coordination/metrics.js +436 -0
  750. package/dist/coordination/metrics.js.map +1 -0
  751. package/dist/coordination/resources.d.ts +36 -0
  752. package/dist/coordination/resources.d.ts.map +1 -0
  753. package/dist/coordination/resources.js +254 -0
  754. package/dist/coordination/resources.js.map +1 -0
  755. package/dist/coordination/scheduler.d.ts +48 -0
  756. package/dist/coordination/scheduler.d.ts.map +1 -0
  757. package/dist/coordination/scheduler.js +308 -0
  758. package/dist/coordination/scheduler.js.map +1 -0
  759. package/dist/coordination/swarm-coordinator.d.ts +116 -0
  760. package/dist/coordination/swarm-coordinator.d.ts.map +1 -0
  761. package/dist/coordination/swarm-coordinator.js +563 -0
  762. package/dist/coordination/swarm-coordinator.js.map +1 -0
  763. package/dist/coordination/swarm-monitor.d.ts +101 -0
  764. package/dist/coordination/swarm-monitor.d.ts.map +1 -0
  765. package/dist/coordination/swarm-monitor.js +340 -0
  766. package/dist/coordination/swarm-monitor.js.map +1 -0
  767. package/dist/coordination/work-stealing.d.ts +44 -0
  768. package/dist/coordination/work-stealing.d.ts.map +1 -0
  769. package/dist/coordination/work-stealing.js +158 -0
  770. package/dist/coordination/work-stealing.js.map +1 -0
  771. package/dist/core/config.d.ts +243 -0
  772. package/dist/core/config.d.ts.map +1 -0
  773. package/dist/core/config.js +1125 -0
  774. package/dist/core/config.js.map +1 -0
  775. package/dist/core/event-bus.d.ts +63 -0
  776. package/dist/core/event-bus.d.ts.map +1 -0
  777. package/dist/core/event-bus.js +153 -0
  778. package/dist/core/event-bus.js.map +1 -0
  779. package/dist/core/json-persistence.d.ts +55 -0
  780. package/dist/core/json-persistence.d.ts.map +1 -0
  781. package/dist/core/json-persistence.js +111 -0
  782. package/dist/core/json-persistence.js.map +1 -0
  783. package/dist/core/logger.d.ts +62 -0
  784. package/dist/core/logger.d.ts.map +1 -0
  785. package/dist/core/logger.js +252 -0
  786. package/dist/core/logger.js.map +1 -0
  787. package/dist/core/orchestrator-fixed.d.ts +81 -0
  788. package/dist/core/orchestrator-fixed.d.ts.map +1 -0
  789. package/dist/core/orchestrator-fixed.js +213 -0
  790. package/dist/core/orchestrator-fixed.js.map +1 -0
  791. package/dist/core/orchestrator.d.ts +141 -0
  792. package/dist/core/orchestrator.d.ts.map +1 -0
  793. package/dist/core/orchestrator.js +1166 -0
  794. package/dist/core/orchestrator.js.map +1 -0
  795. package/dist/core/version.d.ts +10 -0
  796. package/dist/core/version.d.ts.map +1 -0
  797. package/dist/core/version.js +36 -0
  798. package/dist/core/version.js.map +1 -0
  799. package/dist/enterprise/analytics-manager.d.ts +489 -0
  800. package/dist/enterprise/analytics-manager.d.ts.map +1 -0
  801. package/dist/enterprise/analytics-manager.js +956 -0
  802. package/dist/enterprise/analytics-manager.js.map +1 -0
  803. package/dist/enterprise/audit-manager.d.ts +459 -0
  804. package/dist/enterprise/audit-manager.d.ts.map +1 -0
  805. package/dist/enterprise/audit-manager.js +1014 -0
  806. package/dist/enterprise/audit-manager.js.map +1 -0
  807. package/dist/enterprise/cloud-manager.d.ts +435 -0
  808. package/dist/enterprise/cloud-manager.d.ts.map +1 -0
  809. package/dist/enterprise/cloud-manager.js +789 -0
  810. package/dist/enterprise/cloud-manager.js.map +1 -0
  811. package/dist/enterprise/deployment-manager.d.ts +328 -0
  812. package/dist/enterprise/deployment-manager.d.ts.map +1 -0
  813. package/dist/enterprise/deployment-manager.js +830 -0
  814. package/dist/enterprise/deployment-manager.js.map +1 -0
  815. package/dist/enterprise/project-manager.d.ts +228 -0
  816. package/dist/enterprise/project-manager.d.ts.map +1 -0
  817. package/dist/enterprise/project-manager.js +537 -0
  818. package/dist/enterprise/project-manager.js.map +1 -0
  819. package/dist/enterprise/security-manager.d.ts +422 -0
  820. package/dist/enterprise/security-manager.d.ts.map +1 -0
  821. package/dist/enterprise/security-manager.js +910 -0
  822. package/dist/enterprise/security-manager.js.map +1 -0
  823. package/dist/execution/agent-executor.d.ts +80 -0
  824. package/dist/execution/agent-executor.d.ts.map +1 -0
  825. package/dist/execution/agent-executor.js +220 -0
  826. package/dist/execution/agent-executor.js.map +1 -0
  827. package/dist/execution/provider-manager.d.ts +65 -0
  828. package/dist/execution/provider-manager.d.ts.map +1 -0
  829. package/dist/execution/provider-manager.js +144 -0
  830. package/dist/execution/provider-manager.js.map +1 -0
  831. package/dist/hive-mind/core/Agent.d.ts +137 -0
  832. package/dist/hive-mind/core/Agent.d.ts.map +1 -0
  833. package/dist/hive-mind/core/Agent.js +567 -0
  834. package/dist/hive-mind/core/Agent.js.map +1 -0
  835. package/dist/hive-mind/core/Communication.d.ts +116 -0
  836. package/dist/hive-mind/core/Communication.d.ts.map +1 -0
  837. package/dist/hive-mind/core/Communication.js +407 -0
  838. package/dist/hive-mind/core/Communication.js.map +1 -0
  839. package/dist/hive-mind/core/DatabaseManager.d.ts +99 -0
  840. package/dist/hive-mind/core/DatabaseManager.d.ts.map +1 -0
  841. package/dist/hive-mind/core/DatabaseManager.js +648 -0
  842. package/dist/hive-mind/core/DatabaseManager.js.map +1 -0
  843. package/dist/hive-mind/core/HiveMind.d.ts +90 -0
  844. package/dist/hive-mind/core/HiveMind.d.ts.map +1 -0
  845. package/dist/hive-mind/core/HiveMind.js +455 -0
  846. package/dist/hive-mind/core/HiveMind.js.map +1 -0
  847. package/dist/hive-mind/core/Memory.d.ts +235 -0
  848. package/dist/hive-mind/core/Memory.d.ts.map +1 -0
  849. package/dist/hive-mind/core/Memory.js +1192 -0
  850. package/dist/hive-mind/core/Memory.js.map +1 -0
  851. package/dist/hive-mind/core/Queen.d.ts +115 -0
  852. package/dist/hive-mind/core/Queen.d.ts.map +1 -0
  853. package/dist/hive-mind/core/Queen.js +649 -0
  854. package/dist/hive-mind/core/Queen.js.map +1 -0
  855. package/dist/hive-mind/integration/ConsensusEngine.d.ts +117 -0
  856. package/dist/hive-mind/integration/ConsensusEngine.d.ts.map +1 -0
  857. package/dist/hive-mind/integration/ConsensusEngine.js +478 -0
  858. package/dist/hive-mind/integration/ConsensusEngine.js.map +1 -0
  859. package/dist/hive-mind/integration/MCPToolWrapper.d.ts +172 -0
  860. package/dist/hive-mind/integration/MCPToolWrapper.d.ts.map +1 -0
  861. package/dist/hive-mind/integration/MCPToolWrapper.js +217 -0
  862. package/dist/hive-mind/integration/MCPToolWrapper.js.map +1 -0
  863. package/dist/hive-mind/integration/SwarmOrchestrator.d.ts +172 -0
  864. package/dist/hive-mind/integration/SwarmOrchestrator.d.ts.map +1 -0
  865. package/dist/hive-mind/integration/SwarmOrchestrator.js +748 -0
  866. package/dist/hive-mind/integration/SwarmOrchestrator.js.map +1 -0
  867. package/dist/hive-mind/types.d.ts +314 -0
  868. package/dist/hive-mind/types.d.ts.map +1 -0
  869. package/dist/hive-mind/types.js +7 -0
  870. package/dist/hive-mind/types.js.map +1 -0
  871. package/dist/mcp/auth.d.ts +80 -0
  872. package/dist/mcp/auth.d.ts.map +1 -0
  873. package/dist/mcp/auth.js +350 -0
  874. package/dist/mcp/auth.js.map +1 -0
  875. package/dist/mcp/claude-flow-tools.d.ts +13 -0
  876. package/dist/mcp/claude-flow-tools.d.ts.map +1 -0
  877. package/dist/mcp/claude-flow-tools.js +1398 -0
  878. package/dist/mcp/claude-flow-tools.js.map +1 -0
  879. package/dist/mcp/load-balancer.d.ts +88 -0
  880. package/dist/mcp/load-balancer.d.ts.map +1 -0
  881. package/dist/mcp/load-balancer.js +393 -0
  882. package/dist/mcp/load-balancer.js.map +1 -0
  883. package/dist/mcp/router.d.ts +54 -0
  884. package/dist/mcp/router.d.ts.map +1 -0
  885. package/dist/mcp/router.js +204 -0
  886. package/dist/mcp/router.js.map +1 -0
  887. package/dist/mcp/ruv-swarm-tools.d.ts +58 -0
  888. package/dist/mcp/ruv-swarm-tools.d.ts.map +1 -0
  889. package/dist/mcp/ruv-swarm-tools.js +568 -0
  890. package/dist/mcp/ruv-swarm-tools.js.map +1 -0
  891. package/dist/mcp/server.d.ts +75 -0
  892. package/dist/mcp/server.d.ts.map +1 -0
  893. package/dist/mcp/server.js +538 -0
  894. package/dist/mcp/server.js.map +1 -0
  895. package/dist/mcp/session-manager.d.ts +60 -0
  896. package/dist/mcp/session-manager.d.ts.map +1 -0
  897. package/dist/mcp/session-manager.js +323 -0
  898. package/dist/mcp/session-manager.js.map +1 -0
  899. package/dist/mcp/swarm-tools.d.ts +87 -0
  900. package/dist/mcp/swarm-tools.d.ts.map +1 -0
  901. package/dist/mcp/swarm-tools.js +731 -0
  902. package/dist/mcp/swarm-tools.js.map +1 -0
  903. package/dist/mcp/tools.d.ts +145 -0
  904. package/dist/mcp/tools.d.ts.map +1 -0
  905. package/dist/mcp/tools.js +434 -0
  906. package/dist/mcp/tools.js.map +1 -0
  907. package/dist/mcp/transports/base.d.ts +22 -0
  908. package/dist/mcp/transports/base.d.ts.map +1 -0
  909. package/dist/mcp/transports/base.js +5 -0
  910. package/dist/mcp/transports/base.js.map +1 -0
  911. package/dist/mcp/transports/http.d.ts +48 -0
  912. package/dist/mcp/transports/http.d.ts.map +1 -0
  913. package/dist/mcp/transports/http.js +400 -0
  914. package/dist/mcp/transports/http.js.map +1 -0
  915. package/dist/mcp/transports/stdio.d.ts +37 -0
  916. package/dist/mcp/transports/stdio.d.ts.map +1 -0
  917. package/dist/mcp/transports/stdio.js +206 -0
  918. package/dist/mcp/transports/stdio.js.map +1 -0
  919. package/dist/memory/advanced-serializer.d.ts +159 -0
  920. package/dist/memory/advanced-serializer.d.ts.map +1 -0
  921. package/dist/memory/advanced-serializer.js +564 -0
  922. package/dist/memory/advanced-serializer.js.map +1 -0
  923. package/dist/memory/backends/base.d.ts +21 -0
  924. package/dist/memory/backends/base.d.ts.map +1 -0
  925. package/dist/memory/backends/base.js +5 -0
  926. package/dist/memory/backends/base.js.map +1 -0
  927. package/dist/memory/backends/markdown.d.ts +35 -0
  928. package/dist/memory/backends/markdown.d.ts.map +1 -0
  929. package/dist/memory/backends/markdown.js +223 -0
  930. package/dist/memory/backends/markdown.js.map +1 -0
  931. package/dist/memory/backends/sqlite.d.ts +33 -0
  932. package/dist/memory/backends/sqlite.d.ts.map +1 -0
  933. package/dist/memory/backends/sqlite.js +291 -0
  934. package/dist/memory/backends/sqlite.js.map +1 -0
  935. package/dist/memory/cache.d.ts +65 -0
  936. package/dist/memory/cache.d.ts.map +1 -0
  937. package/dist/memory/cache.js +188 -0
  938. package/dist/memory/cache.js.map +1 -0
  939. package/dist/memory/distributed-memory.d.ts +188 -0
  940. package/dist/memory/distributed-memory.d.ts.map +1 -0
  941. package/dist/memory/distributed-memory.js +710 -0
  942. package/dist/memory/distributed-memory.js.map +1 -0
  943. package/dist/memory/enhanced-session-serializer.d.ts +115 -0
  944. package/dist/memory/enhanced-session-serializer.d.ts.map +1 -0
  945. package/dist/memory/enhanced-session-serializer.js +478 -0
  946. package/dist/memory/enhanced-session-serializer.js.map +1 -0
  947. package/dist/memory/fallback-store.d.ts +28 -0
  948. package/dist/memory/fallback-store.d.ts.map +1 -0
  949. package/dist/memory/fallback-store.js +101 -0
  950. package/dist/memory/fallback-store.js.map +1 -0
  951. package/dist/memory/in-memory-store.d.ts +37 -0
  952. package/dist/memory/in-memory-store.d.ts.map +1 -0
  953. package/dist/memory/in-memory-store.js +174 -0
  954. package/dist/memory/in-memory-store.js.map +1 -0
  955. package/dist/memory/indexer.d.ts +52 -0
  956. package/dist/memory/indexer.d.ts.map +1 -0
  957. package/dist/memory/indexer.js +191 -0
  958. package/dist/memory/indexer.js.map +1 -0
  959. package/dist/memory/manager.d.ts +58 -0
  960. package/dist/memory/manager.d.ts.map +1 -0
  961. package/dist/memory/manager.js +423 -0
  962. package/dist/memory/manager.js.map +1 -0
  963. package/dist/memory/sqlite-store.d.ts +34 -0
  964. package/dist/memory/sqlite-store.d.ts.map +1 -0
  965. package/dist/memory/sqlite-store.js +268 -0
  966. package/dist/memory/sqlite-store.js.map +1 -0
  967. package/dist/memory/sqlite-wrapper.d.ts +38 -0
  968. package/dist/memory/sqlite-wrapper.d.ts.map +1 -0
  969. package/dist/memory/sqlite-wrapper.js +152 -0
  970. package/dist/memory/sqlite-wrapper.js.map +1 -0
  971. package/dist/memory/swarm-memory.d.ts +91 -0
  972. package/dist/memory/swarm-memory.d.ts.map +1 -0
  973. package/dist/memory/swarm-memory.js +454 -0
  974. package/dist/memory/swarm-memory.js.map +1 -0
  975. package/dist/memory/unified-memory-manager.d.ts +116 -0
  976. package/dist/memory/unified-memory-manager.d.ts.map +1 -0
  977. package/dist/memory/unified-memory-manager.js +397 -0
  978. package/dist/memory/unified-memory-manager.js.map +1 -0
  979. package/dist/migration/logger.d.ts +26 -0
  980. package/dist/migration/logger.d.ts.map +1 -0
  981. package/dist/migration/logger.js +145 -0
  982. package/dist/migration/logger.js.map +1 -0
  983. package/dist/migration/migration-analyzer.d.ts +18 -0
  984. package/dist/migration/migration-analyzer.d.ts.map +1 -0
  985. package/dist/migration/migration-analyzer.js +284 -0
  986. package/dist/migration/migration-analyzer.js.map +1 -0
  987. package/dist/migration/migration-runner.d.ts +26 -0
  988. package/dist/migration/migration-runner.d.ts.map +1 -0
  989. package/dist/migration/migration-runner.js +505 -0
  990. package/dist/migration/migration-runner.js.map +1 -0
  991. package/dist/migration/migration-validator.d.ts +17 -0
  992. package/dist/migration/migration-validator.d.ts.map +1 -0
  993. package/dist/migration/migration-validator.js +309 -0
  994. package/dist/migration/migration-validator.js.map +1 -0
  995. package/dist/migration/progress-reporter.d.ts +28 -0
  996. package/dist/migration/progress-reporter.d.ts.map +1 -0
  997. package/dist/migration/progress-reporter.js +163 -0
  998. package/dist/migration/progress-reporter.js.map +1 -0
  999. package/dist/migration/rollback-manager.d.ts +24 -0
  1000. package/dist/migration/rollback-manager.d.ts.map +1 -0
  1001. package/dist/migration/rollback-manager.js +351 -0
  1002. package/dist/migration/rollback-manager.js.map +1 -0
  1003. package/dist/migration/types.d.ts +103 -0
  1004. package/dist/migration/types.d.ts.map +1 -0
  1005. package/dist/migration/types.js +6 -0
  1006. package/dist/migration/types.js.map +1 -0
  1007. package/dist/reasoningbank/reasoningbank-adapter.d.ts +93 -0
  1008. package/dist/reasoningbank/reasoningbank-adapter.d.ts.map +1 -0
  1009. package/dist/reasoningbank/reasoningbank-adapter.js +365 -0
  1010. package/dist/reasoningbank/reasoningbank-adapter.js.map +1 -0
  1011. package/dist/sdk/query-control.d.ts +131 -0
  1012. package/dist/sdk/query-control.d.ts.map +1 -0
  1013. package/dist/sdk/query-control.js +363 -0
  1014. package/dist/sdk/query-control.js.map +1 -0
  1015. package/dist/sdk/session-forking.d.ts +109 -0
  1016. package/dist/sdk/session-forking.d.ts.map +1 -0
  1017. package/dist/sdk/session-forking.js +275 -0
  1018. package/dist/sdk/session-forking.js.map +1 -0
  1019. package/dist/src/cli/simple-cli.js +79 -173
  1020. package/dist/src/cli/simple-cli.js.map +1 -1
  1021. package/dist/src/cli/simple-commands/init/index.js +36 -22
  1022. package/dist/src/cli/simple-commands/init/index.js.map +1 -1
  1023. package/dist/src/cli/simple-commands/init/skills-copier.js +186 -0
  1024. package/dist/src/cli/simple-commands/init/skills-copier.js.map +1 -0
  1025. package/dist/src/cli/simple-commands/memory.js +12 -1
  1026. package/dist/src/cli/simple-commands/memory.js.map +1 -1
  1027. package/dist/src/cli/simple-commands/process-ui-enhanced.js +1 -1
  1028. package/dist/src/cli/simple-commands/process-ui-enhanced.js.map +1 -1
  1029. package/dist/src/cli/simple-commands/status.js +1 -1
  1030. package/dist/src/cli/simple-commands/status.js.map +1 -1
  1031. package/dist/src/cli/validation-helper.js.map +1 -1
  1032. package/dist/src/core/version.js +1 -1
  1033. package/dist/src/reasoningbank/reasoningbank-adapter.js +152 -99
  1034. package/dist/src/reasoningbank/reasoningbank-adapter.js.map +1 -1
  1035. package/dist/src/utils/key-redactor.js.map +1 -1
  1036. package/dist/src/utils/metrics-reader.js +0 -10
  1037. package/dist/swarm/types.d.ts +578 -0
  1038. package/dist/swarm/types.d.ts.map +1 -0
  1039. package/dist/swarm/types.js +54 -0
  1040. package/dist/swarm/types.js.map +1 -0
  1041. package/dist/terminal/adapters/base.d.ts +40 -0
  1042. package/dist/terminal/adapters/base.d.ts.map +1 -0
  1043. package/dist/terminal/adapters/base.js +5 -0
  1044. package/dist/terminal/adapters/base.js.map +1 -0
  1045. package/dist/terminal/adapters/native.d.ts +19 -0
  1046. package/dist/terminal/adapters/native.d.ts.map +1 -0
  1047. package/dist/terminal/adapters/native.js +414 -0
  1048. package/dist/terminal/adapters/native.js.map +1 -0
  1049. package/dist/terminal/adapters/vscode.d.ts +23 -0
  1050. package/dist/terminal/adapters/vscode.d.ts.map +1 -0
  1051. package/dist/terminal/adapters/vscode.js +267 -0
  1052. package/dist/terminal/adapters/vscode.js.map +1 -0
  1053. package/dist/terminal/manager.d.ts +59 -0
  1054. package/dist/terminal/manager.d.ts.map +1 -0
  1055. package/dist/terminal/manager.js +235 -0
  1056. package/dist/terminal/manager.js.map +1 -0
  1057. package/dist/terminal/pool.d.ts +32 -0
  1058. package/dist/terminal/pool.d.ts.map +1 -0
  1059. package/dist/terminal/pool.js +208 -0
  1060. package/dist/terminal/pool.js.map +1 -0
  1061. package/dist/terminal/session.d.ts +41 -0
  1062. package/dist/terminal/session.d.ts.map +1 -0
  1063. package/dist/terminal/session.js +210 -0
  1064. package/dist/terminal/session.js.map +1 -0
  1065. package/dist/utils/error-handler.d.ts +14 -0
  1066. package/dist/utils/error-handler.d.ts.map +1 -0
  1067. package/dist/utils/error-handler.js +29 -0
  1068. package/dist/utils/error-handler.js.map +1 -0
  1069. package/dist/utils/errors.d.ts +121 -0
  1070. package/dist/utils/errors.d.ts.map +1 -0
  1071. package/dist/utils/errors.js +194 -0
  1072. package/dist/utils/errors.js.map +1 -0
  1073. package/dist/utils/formatters.d.ts +15 -0
  1074. package/dist/utils/formatters.d.ts.map +1 -0
  1075. package/dist/utils/formatters.js +75 -0
  1076. package/dist/utils/formatters.js.map +1 -0
  1077. package/dist/utils/helpers.d.ts +134 -0
  1078. package/dist/utils/helpers.d.ts.map +1 -0
  1079. package/dist/utils/helpers.js +444 -0
  1080. package/dist/utils/helpers.js.map +1 -0
  1081. package/dist/utils/key-redactor.d.ts +46 -0
  1082. package/dist/utils/key-redactor.d.ts.map +1 -0
  1083. package/dist/utils/key-redactor.js +153 -0
  1084. package/dist/utils/key-redactor.js.map +1 -0
  1085. package/dist/utils/metrics-reader.d.ts +67 -0
  1086. package/dist/utils/metrics-reader.d.ts.map +1 -0
  1087. package/dist/utils/metrics-reader.js +201 -0
  1088. package/dist/utils/metrics-reader.js.map +1 -0
  1089. package/dist/utils/npx-isolated-cache.d.ts +17 -0
  1090. package/dist/utils/npx-isolated-cache.d.ts.map +1 -0
  1091. package/dist/utils/npx-isolated-cache.js +140 -0
  1092. package/dist/utils/npx-isolated-cache.js.map +1 -0
  1093. package/dist/utils/project-root.d.ts +35 -0
  1094. package/dist/utils/project-root.d.ts.map +1 -0
  1095. package/dist/utils/project-root.js +115 -0
  1096. package/dist/utils/project-root.js.map +1 -0
  1097. package/dist/utils/type-guards.d.ts +117 -0
  1098. package/dist/utils/type-guards.d.ts.map +1 -0
  1099. package/dist/utils/type-guards.js +166 -0
  1100. package/dist/utils/type-guards.js.map +1 -0
  1101. package/dist/utils/types.d.ts +568 -0
  1102. package/dist/utils/types.d.ts.map +1 -0
  1103. package/dist/utils/types.js +37 -0
  1104. package/dist/utils/types.js.map +1 -0
  1105. package/docker-test/.claude-flow/metrics/agent-metrics.json +1 -0
  1106. package/docker-test/.claude-flow/metrics/performance.json +87 -0
  1107. package/docker-test/.claude-flow/metrics/task-metrics.json +10 -0
  1108. package/docker-test/Dockerfile.alpha11-test +26 -0
  1109. package/docker-test/Dockerfile.alpha12-test +47 -0
  1110. package/docker-test/Dockerfile.local-test +42 -0
  1111. package/docker-test/Dockerfile.reasoningbank-test +21 -0
  1112. package/docker-test/reasoningbank-validation.mjs +201 -0
  1113. package/docker-test/test-alpha11.sh +244 -0
  1114. package/docker-test/test-local-fix.sh +235 -0
  1115. package/docs/COMMANDS_TO_SKILLS_MIGRATION.md +382 -0
  1116. package/docs/FINAL_INIT_STRUCTURE.md +320 -0
  1117. package/docs/RELEASE-NOTES-v2.7.0-alpha.10.md +309 -0
  1118. package/docs/RELEASE-NOTES-v2.7.0-alpha.9.md +208 -0
  1119. package/docs/integrations/reasoningbank/MIGRATION-v1.5.13.md +1 -1
  1120. package/docs/reasoningbank/CLAUDE-CODE-INTEGRATION.md +563 -0
  1121. package/docs/reasoningbank/EXAMPLES.md +611 -0
  1122. package/docs/reasoningbank/README.md +1139 -0
  1123. package/docs/reasoningbank/agentic-flow-integration.md +800 -0
  1124. package/docs/reasoningbank/architecture.md +680 -0
  1125. package/docs/reasoningbank/google-research.md +1017 -0
  1126. package/docs/reasoningbank/models/.claude-flow/metrics/agent-metrics.json +1 -0
  1127. package/docs/reasoningbank/models/.claude-flow/metrics/performance.json +87 -0
  1128. package/docs/reasoningbank/models/.claude-flow/metrics/task-metrics.json +10 -0
  1129. package/docs/reasoningbank/models/HOW-TO-TRAIN.md +537 -0
  1130. package/docs/reasoningbank/models/HOW-TO-USE.md +655 -0
  1131. package/docs/reasoningbank/models/INDEX.md +276 -0
  1132. package/docs/reasoningbank/models/README.md +345 -0
  1133. package/docs/reasoningbank/models/_docs/COMPATIBILITY.md +448 -0
  1134. package/docs/reasoningbank/models/_docs/COMPLETION-SUMMARY.md +478 -0
  1135. package/docs/reasoningbank/models/_docs/README.md +80 -0
  1136. package/docs/reasoningbank/models/_docs/SCHEMA-UPDATE-SUMMARY.md +376 -0
  1137. package/docs/reasoningbank/models/_docs/VERIFICATION-COMPLETE.md +370 -0
  1138. package/docs/reasoningbank/models/_scripts/README.md +270 -0
  1139. package/docs/reasoningbank/models/_scripts/benchmark-all.cjs +407 -0
  1140. package/docs/reasoningbank/models/_scripts/fix-schema-compatibility.cjs +300 -0
  1141. package/docs/reasoningbank/models/_scripts/schema-validator.cjs +360 -0
  1142. package/docs/reasoningbank/models/_scripts/training-coordinator.cjs +85 -0
  1143. package/docs/reasoningbank/models/_scripts/validation-suite.cjs +239 -0
  1144. package/docs/reasoningbank/models/benchmark-output.log +41 -0
  1145. package/docs/reasoningbank/models/code-reasoning/.claude-flow/metrics/agent-metrics.json +1 -0
  1146. package/docs/reasoningbank/models/code-reasoning/.claude-flow/metrics/performance.json +87 -0
  1147. package/docs/reasoningbank/models/code-reasoning/.claude-flow/metrics/task-metrics.json +18 -0
  1148. package/docs/reasoningbank/models/code-reasoning/.swarm/SCHEMA-FIX-REPORT.md +69 -0
  1149. package/docs/reasoningbank/models/code-reasoning/.swarm/memory.db +0 -0
  1150. package/docs/reasoningbank/models/code-reasoning/.swarm/memory.db.backup +0 -0
  1151. package/docs/reasoningbank/models/code-reasoning/README.md +451 -0
  1152. package/docs/reasoningbank/models/code-reasoning/TRAINING-SUMMARY.md +416 -0
  1153. package/docs/reasoningbank/models/code-reasoning/train-code.js +2059 -0
  1154. package/docs/reasoningbank/models/code-reasoning/training.log +18 -0
  1155. package/docs/reasoningbank/models/code-reasoning/validation-report.md +349 -0
  1156. package/docs/reasoningbank/models/domain-expert/.claude-flow/metrics/agent-metrics.json +1 -0
  1157. package/docs/reasoningbank/models/domain-expert/.claude-flow/metrics/performance.json +87 -0
  1158. package/docs/reasoningbank/models/domain-expert/.claude-flow/metrics/task-metrics.json +18 -0
  1159. package/docs/reasoningbank/models/domain-expert/COMPLETION-REPORT.md +451 -0
  1160. package/docs/reasoningbank/models/domain-expert/INDEX.md +182 -0
  1161. package/docs/reasoningbank/models/domain-expert/README.md +215 -0
  1162. package/docs/reasoningbank/models/domain-expert/SCHEMA-FIX-REPORT.md +65 -0
  1163. package/docs/reasoningbank/models/domain-expert/SUMMARY.md +286 -0
  1164. package/docs/reasoningbank/models/domain-expert/USAGE.md +394 -0
  1165. package/docs/reasoningbank/models/domain-expert/demo-queries.sh +42 -0
  1166. package/docs/reasoningbank/models/domain-expert/memory.db +0 -0
  1167. package/docs/reasoningbank/models/domain-expert/train-domain.js +1324 -0
  1168. package/docs/reasoningbank/models/domain-expert/validate.js +218 -0
  1169. package/docs/reasoningbank/models/domain-expert/validation-report.md +89 -0
  1170. package/docs/reasoningbank/models/google-research/README.md +455 -0
  1171. package/docs/reasoningbank/models/google-research/SCHEMA-FIX-REPORT.md +65 -0
  1172. package/docs/reasoningbank/models/google-research/memory.db +0 -0
  1173. package/docs/reasoningbank/models/google-research/memory.db.backup +0 -0
  1174. package/docs/reasoningbank/models/google-research/train-google.js +697 -0
  1175. package/docs/reasoningbank/models/google-research/validation-report.md +99 -0
  1176. package/docs/reasoningbank/models/google-research/validation-suite.js +323 -0
  1177. package/docs/reasoningbank/models/problem-solving/.claude-flow/metrics/agent-metrics.json +1 -0
  1178. package/docs/reasoningbank/models/problem-solving/.claude-flow/metrics/performance.json +87 -0
  1179. package/docs/reasoningbank/models/problem-solving/.claude-flow/metrics/task-metrics.json +10 -0
  1180. package/docs/reasoningbank/models/problem-solving/.swarm/memory.db +0 -0
  1181. package/docs/reasoningbank/models/problem-solving/README.md +629 -0
  1182. package/docs/reasoningbank/models/problem-solving/SCHEMA-FIX-REPORT.md +66 -0
  1183. package/docs/reasoningbank/models/problem-solving/TRAINING_SUMMARY.md +524 -0
  1184. package/docs/reasoningbank/models/problem-solving/memory.db +0 -0
  1185. package/docs/reasoningbank/models/problem-solving/memory.db.backup +0 -0
  1186. package/docs/reasoningbank/models/problem-solving/train-problem.js +1319 -0
  1187. package/docs/reasoningbank/models/problem-solving/validation-report.md +300 -0
  1188. package/docs/reasoningbank/models/safla/.claude-flow/metrics/agent-metrics.json +1 -0
  1189. package/docs/reasoningbank/models/safla/.claude-flow/metrics/performance.json +87 -0
  1190. package/docs/reasoningbank/models/safla/.claude-flow/metrics/task-metrics.json +10 -0
  1191. package/docs/reasoningbank/models/safla/CHEATSHEET.md +277 -0
  1192. package/docs/reasoningbank/models/safla/COMPLETION_REPORT.txt +108 -0
  1193. package/docs/reasoningbank/models/safla/MANIFEST.txt +104 -0
  1194. package/docs/reasoningbank/models/safla/QUICKSTART.md +349 -0
  1195. package/docs/reasoningbank/models/safla/README.md +457 -0
  1196. package/docs/reasoningbank/models/safla/SCHEMA-FIX-REPORT.md +68 -0
  1197. package/docs/reasoningbank/models/safla/TRAINING_SUMMARY.md +383 -0
  1198. package/docs/reasoningbank/models/safla/memory/memory-store.json +11 -0
  1199. package/docs/reasoningbank/models/safla/memory.db +0 -0
  1200. package/docs/reasoningbank/models/safla/memory.db.backup +0 -0
  1201. package/docs/reasoningbank/models/safla/node_modules/.package-lock.json +456 -0
  1202. package/docs/reasoningbank/models/safla/node_modules/base64-js/LICENSE +21 -0
  1203. package/docs/reasoningbank/models/safla/node_modules/base64-js/README.md +34 -0
  1204. package/docs/reasoningbank/models/safla/node_modules/base64-js/base64js.min.js +1 -0
  1205. package/docs/reasoningbank/models/safla/node_modules/base64-js/index.d.ts +3 -0
  1206. package/docs/reasoningbank/models/safla/node_modules/base64-js/index.js +150 -0
  1207. package/docs/reasoningbank/models/safla/node_modules/base64-js/package.json +47 -0
  1208. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/LICENSE +21 -0
  1209. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/README.md +99 -0
  1210. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/binding.gyp +38 -0
  1211. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/build/Release/better_sqlite3.node +0 -0
  1212. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/deps/common.gypi +68 -0
  1213. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/deps/copy.js +31 -0
  1214. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/deps/defines.gypi +41 -0
  1215. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/deps/download.sh +122 -0
  1216. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/deps/patches/1208.patch +15 -0
  1217. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/deps/sqlite3/sqlite3.c +261480 -0
  1218. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/deps/sqlite3/sqlite3.h +13715 -0
  1219. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/deps/sqlite3/sqlite3ext.h +719 -0
  1220. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/deps/sqlite3.gyp +80 -0
  1221. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/deps/test_extension.c +21 -0
  1222. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/lib/database.js +90 -0
  1223. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/lib/index.js +3 -0
  1224. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/lib/methods/aggregate.js +43 -0
  1225. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/lib/methods/backup.js +67 -0
  1226. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/lib/methods/function.js +31 -0
  1227. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/lib/methods/inspect.js +7 -0
  1228. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/lib/methods/pragma.js +12 -0
  1229. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/lib/methods/serialize.js +16 -0
  1230. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/lib/methods/table.js +189 -0
  1231. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/lib/methods/transaction.js +78 -0
  1232. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/lib/methods/wrappers.js +54 -0
  1233. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/lib/sqlite-error.js +20 -0
  1234. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/lib/util.js +12 -0
  1235. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/package.json +54 -0
  1236. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/src/better_sqlite3.cpp +2186 -0
  1237. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/src/better_sqlite3.hpp +1036 -0
  1238. package/docs/reasoningbank/models/safla/node_modules/bindings/LICENSE.md +22 -0
  1239. package/docs/reasoningbank/models/safla/node_modules/bindings/README.md +98 -0
  1240. package/docs/reasoningbank/models/safla/node_modules/bindings/bindings.js +221 -0
  1241. package/docs/reasoningbank/models/safla/node_modules/bindings/package.json +28 -0
  1242. package/docs/reasoningbank/models/safla/node_modules/bl/.travis.yml +17 -0
  1243. package/docs/reasoningbank/models/safla/node_modules/bl/BufferList.js +396 -0
  1244. package/docs/reasoningbank/models/safla/node_modules/bl/LICENSE.md +13 -0
  1245. package/docs/reasoningbank/models/safla/node_modules/bl/README.md +247 -0
  1246. package/docs/reasoningbank/models/safla/node_modules/bl/bl.js +84 -0
  1247. package/docs/reasoningbank/models/safla/node_modules/bl/package.json +37 -0
  1248. package/docs/reasoningbank/models/safla/node_modules/bl/test/convert.js +21 -0
  1249. package/docs/reasoningbank/models/safla/node_modules/bl/test/indexOf.js +492 -0
  1250. package/docs/reasoningbank/models/safla/node_modules/bl/test/isBufferList.js +32 -0
  1251. package/docs/reasoningbank/models/safla/node_modules/bl/test/test.js +869 -0
  1252. package/docs/reasoningbank/models/safla/node_modules/buffer/AUTHORS.md +70 -0
  1253. package/docs/reasoningbank/models/safla/node_modules/buffer/LICENSE +21 -0
  1254. package/docs/reasoningbank/models/safla/node_modules/buffer/README.md +410 -0
  1255. package/docs/reasoningbank/models/safla/node_modules/buffer/index.d.ts +186 -0
  1256. package/docs/reasoningbank/models/safla/node_modules/buffer/index.js +1817 -0
  1257. package/docs/reasoningbank/models/safla/node_modules/buffer/package.json +96 -0
  1258. package/docs/reasoningbank/models/safla/node_modules/chownr/LICENSE +15 -0
  1259. package/docs/reasoningbank/models/safla/node_modules/chownr/README.md +3 -0
  1260. package/docs/reasoningbank/models/safla/node_modules/chownr/chownr.js +167 -0
  1261. package/docs/reasoningbank/models/safla/node_modules/chownr/package.json +29 -0
  1262. package/docs/reasoningbank/models/safla/node_modules/decompress-response/index.d.ts +22 -0
  1263. package/docs/reasoningbank/models/safla/node_modules/decompress-response/index.js +58 -0
  1264. package/docs/reasoningbank/models/safla/node_modules/decompress-response/license +9 -0
  1265. package/docs/reasoningbank/models/safla/node_modules/decompress-response/package.json +56 -0
  1266. package/docs/reasoningbank/models/safla/node_modules/decompress-response/readme.md +48 -0
  1267. package/docs/reasoningbank/models/safla/node_modules/deep-extend/CHANGELOG.md +46 -0
  1268. package/docs/reasoningbank/models/safla/node_modules/deep-extend/LICENSE +20 -0
  1269. package/docs/reasoningbank/models/safla/node_modules/deep-extend/README.md +91 -0
  1270. package/docs/reasoningbank/models/safla/node_modules/deep-extend/index.js +1 -0
  1271. package/docs/reasoningbank/models/safla/node_modules/deep-extend/lib/deep-extend.js +150 -0
  1272. package/docs/reasoningbank/models/safla/node_modules/deep-extend/package.json +62 -0
  1273. package/docs/reasoningbank/models/safla/node_modules/detect-libc/LICENSE +201 -0
  1274. package/docs/reasoningbank/models/safla/node_modules/detect-libc/README.md +163 -0
  1275. package/docs/reasoningbank/models/safla/node_modules/detect-libc/index.d.ts +14 -0
  1276. package/docs/reasoningbank/models/safla/node_modules/detect-libc/lib/detect-libc.js +313 -0
  1277. package/docs/reasoningbank/models/safla/node_modules/detect-libc/lib/elf.js +39 -0
  1278. package/docs/reasoningbank/models/safla/node_modules/detect-libc/lib/filesystem.js +51 -0
  1279. package/docs/reasoningbank/models/safla/node_modules/detect-libc/lib/process.js +24 -0
  1280. package/docs/reasoningbank/models/safla/node_modules/detect-libc/package.json +44 -0
  1281. package/docs/reasoningbank/models/safla/node_modules/end-of-stream/LICENSE +21 -0
  1282. package/docs/reasoningbank/models/safla/node_modules/end-of-stream/README.md +54 -0
  1283. package/docs/reasoningbank/models/safla/node_modules/end-of-stream/index.js +96 -0
  1284. package/docs/reasoningbank/models/safla/node_modules/end-of-stream/package.json +37 -0
  1285. package/docs/reasoningbank/models/safla/node_modules/expand-template/.travis.yml +6 -0
  1286. package/docs/reasoningbank/models/safla/node_modules/expand-template/LICENSE +21 -0
  1287. package/docs/reasoningbank/models/safla/node_modules/expand-template/README.md +43 -0
  1288. package/docs/reasoningbank/models/safla/node_modules/expand-template/index.js +26 -0
  1289. package/docs/reasoningbank/models/safla/node_modules/expand-template/package.json +29 -0
  1290. package/docs/reasoningbank/models/safla/node_modules/expand-template/test.js +67 -0
  1291. package/docs/reasoningbank/models/safla/node_modules/file-uri-to-path/.travis.yml +30 -0
  1292. package/docs/reasoningbank/models/safla/node_modules/file-uri-to-path/History.md +21 -0
  1293. package/docs/reasoningbank/models/safla/node_modules/file-uri-to-path/LICENSE +20 -0
  1294. package/docs/reasoningbank/models/safla/node_modules/file-uri-to-path/README.md +74 -0
  1295. package/docs/reasoningbank/models/safla/node_modules/file-uri-to-path/index.d.ts +2 -0
  1296. package/docs/reasoningbank/models/safla/node_modules/file-uri-to-path/index.js +66 -0
  1297. package/docs/reasoningbank/models/safla/node_modules/file-uri-to-path/package.json +32 -0
  1298. package/docs/reasoningbank/models/safla/node_modules/file-uri-to-path/test/test.js +24 -0
  1299. package/docs/reasoningbank/models/safla/node_modules/file-uri-to-path/test/tests.json +13 -0
  1300. package/docs/reasoningbank/models/safla/node_modules/fs-constants/LICENSE +21 -0
  1301. package/docs/reasoningbank/models/safla/node_modules/fs-constants/README.md +26 -0
  1302. package/docs/reasoningbank/models/safla/node_modules/fs-constants/browser.js +1 -0
  1303. package/docs/reasoningbank/models/safla/node_modules/fs-constants/index.js +1 -0
  1304. package/docs/reasoningbank/models/safla/node_modules/fs-constants/package.json +19 -0
  1305. package/docs/reasoningbank/models/safla/node_modules/github-from-package/.travis.yml +4 -0
  1306. package/docs/reasoningbank/models/safla/node_modules/github-from-package/LICENSE +18 -0
  1307. package/docs/reasoningbank/models/safla/node_modules/github-from-package/example/package.json +8 -0
  1308. package/docs/reasoningbank/models/safla/node_modules/github-from-package/example/url.js +3 -0
  1309. package/docs/reasoningbank/models/safla/node_modules/github-from-package/index.js +17 -0
  1310. package/docs/reasoningbank/models/safla/node_modules/github-from-package/package.json +30 -0
  1311. package/docs/reasoningbank/models/safla/node_modules/github-from-package/readme.markdown +53 -0
  1312. package/docs/reasoningbank/models/safla/node_modules/github-from-package/test/a.json +8 -0
  1313. package/docs/reasoningbank/models/safla/node_modules/github-from-package/test/b.json +5 -0
  1314. package/docs/reasoningbank/models/safla/node_modules/github-from-package/test/c.json +5 -0
  1315. package/docs/reasoningbank/models/safla/node_modules/github-from-package/test/d.json +7 -0
  1316. package/docs/reasoningbank/models/safla/node_modules/github-from-package/test/e.json +5 -0
  1317. package/docs/reasoningbank/models/safla/node_modules/github-from-package/test/url.js +19 -0
  1318. package/docs/reasoningbank/models/safla/node_modules/ieee754/LICENSE +11 -0
  1319. package/docs/reasoningbank/models/safla/node_modules/ieee754/README.md +51 -0
  1320. package/docs/reasoningbank/models/safla/node_modules/ieee754/index.d.ts +10 -0
  1321. package/docs/reasoningbank/models/safla/node_modules/ieee754/index.js +85 -0
  1322. package/docs/reasoningbank/models/safla/node_modules/ieee754/package.json +52 -0
  1323. package/docs/reasoningbank/models/safla/node_modules/inherits/LICENSE +16 -0
  1324. package/docs/reasoningbank/models/safla/node_modules/inherits/README.md +42 -0
  1325. package/docs/reasoningbank/models/safla/node_modules/inherits/inherits.js +9 -0
  1326. package/docs/reasoningbank/models/safla/node_modules/inherits/inherits_browser.js +27 -0
  1327. package/docs/reasoningbank/models/safla/node_modules/inherits/package.json +29 -0
  1328. package/docs/reasoningbank/models/safla/node_modules/ini/LICENSE +15 -0
  1329. package/docs/reasoningbank/models/safla/node_modules/ini/README.md +102 -0
  1330. package/docs/reasoningbank/models/safla/node_modules/ini/ini.js +206 -0
  1331. package/docs/reasoningbank/models/safla/node_modules/ini/package.json +33 -0
  1332. package/docs/reasoningbank/models/safla/node_modules/mimic-response/index.d.ts +17 -0
  1333. package/docs/reasoningbank/models/safla/node_modules/mimic-response/index.js +77 -0
  1334. package/docs/reasoningbank/models/safla/node_modules/mimic-response/license +9 -0
  1335. package/docs/reasoningbank/models/safla/node_modules/mimic-response/package.json +42 -0
  1336. package/docs/reasoningbank/models/safla/node_modules/mimic-response/readme.md +78 -0
  1337. package/docs/reasoningbank/models/safla/node_modules/minimist/.eslintrc +29 -0
  1338. package/docs/reasoningbank/models/safla/node_modules/minimist/.github/FUNDING.yml +12 -0
  1339. package/docs/reasoningbank/models/safla/node_modules/minimist/.nycrc +14 -0
  1340. package/docs/reasoningbank/models/safla/node_modules/minimist/CHANGELOG.md +298 -0
  1341. package/docs/reasoningbank/models/safla/node_modules/minimist/LICENSE +18 -0
  1342. package/docs/reasoningbank/models/safla/node_modules/minimist/README.md +121 -0
  1343. package/docs/reasoningbank/models/safla/node_modules/minimist/example/parse.js +4 -0
  1344. package/docs/reasoningbank/models/safla/node_modules/minimist/index.js +263 -0
  1345. package/docs/reasoningbank/models/safla/node_modules/minimist/package.json +75 -0
  1346. package/docs/reasoningbank/models/safla/node_modules/minimist/test/all_bool.js +34 -0
  1347. package/docs/reasoningbank/models/safla/node_modules/minimist/test/bool.js +177 -0
  1348. package/docs/reasoningbank/models/safla/node_modules/minimist/test/dash.js +43 -0
  1349. package/docs/reasoningbank/models/safla/node_modules/minimist/test/default_bool.js +37 -0
  1350. package/docs/reasoningbank/models/safla/node_modules/minimist/test/dotted.js +24 -0
  1351. package/docs/reasoningbank/models/safla/node_modules/minimist/test/kv_short.js +32 -0
  1352. package/docs/reasoningbank/models/safla/node_modules/minimist/test/long.js +33 -0
  1353. package/docs/reasoningbank/models/safla/node_modules/minimist/test/num.js +38 -0
  1354. package/docs/reasoningbank/models/safla/node_modules/minimist/test/parse.js +209 -0
  1355. package/docs/reasoningbank/models/safla/node_modules/minimist/test/parse_modified.js +11 -0
  1356. package/docs/reasoningbank/models/safla/node_modules/minimist/test/proto.js +64 -0
  1357. package/docs/reasoningbank/models/safla/node_modules/minimist/test/short.js +69 -0
  1358. package/docs/reasoningbank/models/safla/node_modules/minimist/test/stop_early.js +17 -0
  1359. package/docs/reasoningbank/models/safla/node_modules/minimist/test/unknown.js +104 -0
  1360. package/docs/reasoningbank/models/safla/node_modules/minimist/test/whitespace.js +10 -0
  1361. package/docs/reasoningbank/models/safla/node_modules/mkdirp-classic/LICENSE +21 -0
  1362. package/docs/reasoningbank/models/safla/node_modules/mkdirp-classic/README.md +18 -0
  1363. package/docs/reasoningbank/models/safla/node_modules/mkdirp-classic/index.js +98 -0
  1364. package/docs/reasoningbank/models/safla/node_modules/mkdirp-classic/package.json +18 -0
  1365. package/docs/reasoningbank/models/safla/node_modules/napi-build-utils/.github/workflows/run-npm-tests.yml +31 -0
  1366. package/docs/reasoningbank/models/safla/node_modules/napi-build-utils/LICENSE +21 -0
  1367. package/docs/reasoningbank/models/safla/node_modules/napi-build-utils/README.md +52 -0
  1368. package/docs/reasoningbank/models/safla/node_modules/napi-build-utils/index.js +214 -0
  1369. package/docs/reasoningbank/models/safla/node_modules/napi-build-utils/index.md +0 -0
  1370. package/docs/reasoningbank/models/safla/node_modules/napi-build-utils/package.json +42 -0
  1371. package/docs/reasoningbank/models/safla/node_modules/node-abi/LICENSE +21 -0
  1372. package/docs/reasoningbank/models/safla/node_modules/node-abi/README.md +54 -0
  1373. package/docs/reasoningbank/models/safla/node_modules/node-abi/abi_registry.json +408 -0
  1374. package/docs/reasoningbank/models/safla/node_modules/node-abi/index.js +179 -0
  1375. package/docs/reasoningbank/models/safla/node_modules/node-abi/package.json +45 -0
  1376. package/docs/reasoningbank/models/safla/node_modules/once/LICENSE +15 -0
  1377. package/docs/reasoningbank/models/safla/node_modules/once/README.md +79 -0
  1378. package/docs/reasoningbank/models/safla/node_modules/once/once.js +42 -0
  1379. package/docs/reasoningbank/models/safla/node_modules/once/package.json +33 -0
  1380. package/docs/reasoningbank/models/safla/node_modules/prebuild-install/CHANGELOG.md +131 -0
  1381. package/docs/reasoningbank/models/safla/node_modules/prebuild-install/CONTRIBUTING.md +6 -0
  1382. package/docs/reasoningbank/models/safla/node_modules/prebuild-install/LICENSE +21 -0
  1383. package/docs/reasoningbank/models/safla/node_modules/prebuild-install/README.md +163 -0
  1384. package/docs/reasoningbank/models/safla/node_modules/prebuild-install/asset.js +44 -0
  1385. package/docs/reasoningbank/models/safla/node_modules/prebuild-install/bin.js +78 -0
  1386. package/docs/reasoningbank/models/safla/node_modules/prebuild-install/download.js +142 -0
  1387. package/docs/reasoningbank/models/safla/node_modules/prebuild-install/error.js +14 -0
  1388. package/docs/reasoningbank/models/safla/node_modules/prebuild-install/help.txt +16 -0
  1389. package/docs/reasoningbank/models/safla/node_modules/prebuild-install/index.js +1 -0
  1390. package/docs/reasoningbank/models/safla/node_modules/prebuild-install/log.js +33 -0
  1391. package/docs/reasoningbank/models/safla/node_modules/prebuild-install/package.json +67 -0
  1392. package/docs/reasoningbank/models/safla/node_modules/prebuild-install/proxy.js +35 -0
  1393. package/docs/reasoningbank/models/safla/node_modules/prebuild-install/rc.js +64 -0
  1394. package/docs/reasoningbank/models/safla/node_modules/prebuild-install/util.js +143 -0
  1395. package/docs/reasoningbank/models/safla/node_modules/pump/.github/FUNDING.yml +2 -0
  1396. package/docs/reasoningbank/models/safla/node_modules/pump/.travis.yml +5 -0
  1397. package/docs/reasoningbank/models/safla/node_modules/pump/LICENSE +21 -0
  1398. package/docs/reasoningbank/models/safla/node_modules/pump/README.md +74 -0
  1399. package/docs/reasoningbank/models/safla/node_modules/pump/SECURITY.md +5 -0
  1400. package/docs/reasoningbank/models/safla/node_modules/pump/index.js +86 -0
  1401. package/docs/reasoningbank/models/safla/node_modules/pump/package.json +24 -0
  1402. package/docs/reasoningbank/models/safla/node_modules/pump/test-browser.js +66 -0
  1403. package/docs/reasoningbank/models/safla/node_modules/pump/test-node.js +53 -0
  1404. package/docs/reasoningbank/models/safla/node_modules/rc/LICENSE.APACHE2 +15 -0
  1405. package/docs/reasoningbank/models/safla/node_modules/rc/LICENSE.BSD +26 -0
  1406. package/docs/reasoningbank/models/safla/node_modules/rc/LICENSE.MIT +24 -0
  1407. package/docs/reasoningbank/models/safla/node_modules/rc/README.md +227 -0
  1408. package/docs/reasoningbank/models/safla/node_modules/rc/browser.js +7 -0
  1409. package/docs/reasoningbank/models/safla/node_modules/rc/cli.js +4 -0
  1410. package/docs/reasoningbank/models/safla/node_modules/rc/index.js +53 -0
  1411. package/docs/reasoningbank/models/safla/node_modules/rc/lib/utils.js +104 -0
  1412. package/docs/reasoningbank/models/safla/node_modules/rc/package.json +29 -0
  1413. package/docs/reasoningbank/models/safla/node_modules/rc/test/ini.js +16 -0
  1414. package/docs/reasoningbank/models/safla/node_modules/rc/test/nested-env-vars.js +50 -0
  1415. package/docs/reasoningbank/models/safla/node_modules/rc/test/test.js +59 -0
  1416. package/docs/reasoningbank/models/safla/node_modules/readable-stream/CONTRIBUTING.md +38 -0
  1417. package/docs/reasoningbank/models/safla/node_modules/readable-stream/GOVERNANCE.md +136 -0
  1418. package/docs/reasoningbank/models/safla/node_modules/readable-stream/LICENSE +47 -0
  1419. package/docs/reasoningbank/models/safla/node_modules/readable-stream/README.md +106 -0
  1420. package/docs/reasoningbank/models/safla/node_modules/readable-stream/errors-browser.js +127 -0
  1421. package/docs/reasoningbank/models/safla/node_modules/readable-stream/errors.js +116 -0
  1422. package/docs/reasoningbank/models/safla/node_modules/readable-stream/experimentalWarning.js +17 -0
  1423. package/docs/reasoningbank/models/safla/node_modules/readable-stream/lib/_stream_duplex.js +126 -0
  1424. package/docs/reasoningbank/models/safla/node_modules/readable-stream/lib/_stream_passthrough.js +37 -0
  1425. package/docs/reasoningbank/models/safla/node_modules/readable-stream/lib/_stream_readable.js +1027 -0
  1426. package/docs/reasoningbank/models/safla/node_modules/readable-stream/lib/_stream_transform.js +190 -0
  1427. package/docs/reasoningbank/models/safla/node_modules/readable-stream/lib/_stream_writable.js +641 -0
  1428. package/docs/reasoningbank/models/safla/node_modules/readable-stream/lib/internal/streams/async_iterator.js +180 -0
  1429. package/docs/reasoningbank/models/safla/node_modules/readable-stream/lib/internal/streams/buffer_list.js +183 -0
  1430. package/docs/reasoningbank/models/safla/node_modules/readable-stream/lib/internal/streams/destroy.js +96 -0
  1431. package/docs/reasoningbank/models/safla/node_modules/readable-stream/lib/internal/streams/end-of-stream.js +86 -0
  1432. package/docs/reasoningbank/models/safla/node_modules/readable-stream/lib/internal/streams/from-browser.js +3 -0
  1433. package/docs/reasoningbank/models/safla/node_modules/readable-stream/lib/internal/streams/from.js +52 -0
  1434. package/docs/reasoningbank/models/safla/node_modules/readable-stream/lib/internal/streams/pipeline.js +86 -0
  1435. package/docs/reasoningbank/models/safla/node_modules/readable-stream/lib/internal/streams/state.js +22 -0
  1436. package/docs/reasoningbank/models/safla/node_modules/readable-stream/lib/internal/streams/stream-browser.js +1 -0
  1437. package/docs/reasoningbank/models/safla/node_modules/readable-stream/lib/internal/streams/stream.js +1 -0
  1438. package/docs/reasoningbank/models/safla/node_modules/readable-stream/package.json +68 -0
  1439. package/docs/reasoningbank/models/safla/node_modules/readable-stream/readable-browser.js +9 -0
  1440. package/docs/reasoningbank/models/safla/node_modules/readable-stream/readable.js +16 -0
  1441. package/docs/reasoningbank/models/safla/node_modules/safe-buffer/LICENSE +21 -0
  1442. package/docs/reasoningbank/models/safla/node_modules/safe-buffer/README.md +584 -0
  1443. package/docs/reasoningbank/models/safla/node_modules/safe-buffer/index.d.ts +187 -0
  1444. package/docs/reasoningbank/models/safla/node_modules/safe-buffer/index.js +65 -0
  1445. package/docs/reasoningbank/models/safla/node_modules/safe-buffer/package.json +51 -0
  1446. package/docs/reasoningbank/models/safla/node_modules/semver/LICENSE +15 -0
  1447. package/docs/reasoningbank/models/safla/node_modules/semver/README.md +664 -0
  1448. package/docs/reasoningbank/models/safla/node_modules/semver/bin/semver.js +191 -0
  1449. package/docs/reasoningbank/models/safla/node_modules/semver/classes/comparator.js +143 -0
  1450. package/docs/reasoningbank/models/safla/node_modules/semver/classes/index.js +7 -0
  1451. package/docs/reasoningbank/models/safla/node_modules/semver/classes/range.js +557 -0
  1452. package/docs/reasoningbank/models/safla/node_modules/semver/classes/semver.js +333 -0
  1453. package/docs/reasoningbank/models/safla/node_modules/semver/functions/clean.js +8 -0
  1454. package/docs/reasoningbank/models/safla/node_modules/semver/functions/cmp.js +54 -0
  1455. package/docs/reasoningbank/models/safla/node_modules/semver/functions/coerce.js +62 -0
  1456. package/docs/reasoningbank/models/safla/node_modules/semver/functions/compare-build.js +9 -0
  1457. package/docs/reasoningbank/models/safla/node_modules/semver/functions/compare-loose.js +5 -0
  1458. package/docs/reasoningbank/models/safla/node_modules/semver/functions/compare.js +7 -0
  1459. package/docs/reasoningbank/models/safla/node_modules/semver/functions/diff.js +60 -0
  1460. package/docs/reasoningbank/models/safla/node_modules/semver/functions/eq.js +5 -0
  1461. package/docs/reasoningbank/models/safla/node_modules/semver/functions/gt.js +5 -0
  1462. package/docs/reasoningbank/models/safla/node_modules/semver/functions/gte.js +5 -0
  1463. package/docs/reasoningbank/models/safla/node_modules/semver/functions/inc.js +21 -0
  1464. package/docs/reasoningbank/models/safla/node_modules/semver/functions/lt.js +5 -0
  1465. package/docs/reasoningbank/models/safla/node_modules/semver/functions/lte.js +5 -0
  1466. package/docs/reasoningbank/models/safla/node_modules/semver/functions/major.js +5 -0
  1467. package/docs/reasoningbank/models/safla/node_modules/semver/functions/minor.js +5 -0
  1468. package/docs/reasoningbank/models/safla/node_modules/semver/functions/neq.js +5 -0
  1469. package/docs/reasoningbank/models/safla/node_modules/semver/functions/parse.js +18 -0
  1470. package/docs/reasoningbank/models/safla/node_modules/semver/functions/patch.js +5 -0
  1471. package/docs/reasoningbank/models/safla/node_modules/semver/functions/prerelease.js +8 -0
  1472. package/docs/reasoningbank/models/safla/node_modules/semver/functions/rcompare.js +5 -0
  1473. package/docs/reasoningbank/models/safla/node_modules/semver/functions/rsort.js +5 -0
  1474. package/docs/reasoningbank/models/safla/node_modules/semver/functions/satisfies.js +12 -0
  1475. package/docs/reasoningbank/models/safla/node_modules/semver/functions/sort.js +5 -0
  1476. package/docs/reasoningbank/models/safla/node_modules/semver/functions/valid.js +8 -0
  1477. package/docs/reasoningbank/models/safla/node_modules/semver/index.js +91 -0
  1478. package/docs/reasoningbank/models/safla/node_modules/semver/internal/constants.js +37 -0
  1479. package/docs/reasoningbank/models/safla/node_modules/semver/internal/debug.js +11 -0
  1480. package/docs/reasoningbank/models/safla/node_modules/semver/internal/identifiers.js +29 -0
  1481. package/docs/reasoningbank/models/safla/node_modules/semver/internal/lrucache.js +42 -0
  1482. package/docs/reasoningbank/models/safla/node_modules/semver/internal/parse-options.js +17 -0
  1483. package/docs/reasoningbank/models/safla/node_modules/semver/internal/re.js +223 -0
  1484. package/docs/reasoningbank/models/safla/node_modules/semver/package.json +78 -0
  1485. package/docs/reasoningbank/models/safla/node_modules/semver/preload.js +4 -0
  1486. package/docs/reasoningbank/models/safla/node_modules/semver/range.bnf +16 -0
  1487. package/docs/reasoningbank/models/safla/node_modules/semver/ranges/gtr.js +6 -0
  1488. package/docs/reasoningbank/models/safla/node_modules/semver/ranges/intersects.js +9 -0
  1489. package/docs/reasoningbank/models/safla/node_modules/semver/ranges/ltr.js +6 -0
  1490. package/docs/reasoningbank/models/safla/node_modules/semver/ranges/max-satisfying.js +27 -0
  1491. package/docs/reasoningbank/models/safla/node_modules/semver/ranges/min-satisfying.js +26 -0
  1492. package/docs/reasoningbank/models/safla/node_modules/semver/ranges/min-version.js +63 -0
  1493. package/docs/reasoningbank/models/safla/node_modules/semver/ranges/outside.js +82 -0
  1494. package/docs/reasoningbank/models/safla/node_modules/semver/ranges/simplify.js +49 -0
  1495. package/docs/reasoningbank/models/safla/node_modules/semver/ranges/subset.js +249 -0
  1496. package/docs/reasoningbank/models/safla/node_modules/semver/ranges/to-comparators.js +10 -0
  1497. package/docs/reasoningbank/models/safla/node_modules/semver/ranges/valid.js +13 -0
  1498. package/docs/reasoningbank/models/safla/node_modules/simple-concat/.travis.yml +3 -0
  1499. package/docs/reasoningbank/models/safla/node_modules/simple-concat/LICENSE +20 -0
  1500. package/docs/reasoningbank/models/safla/node_modules/simple-concat/README.md +44 -0
  1501. package/docs/reasoningbank/models/safla/node_modules/simple-concat/index.js +15 -0
  1502. package/docs/reasoningbank/models/safla/node_modules/simple-concat/package.json +47 -0
  1503. package/docs/reasoningbank/models/safla/node_modules/simple-concat/test/basic.js +41 -0
  1504. package/docs/reasoningbank/models/safla/node_modules/simple-get/.github/dependabot.yml +15 -0
  1505. package/docs/reasoningbank/models/safla/node_modules/simple-get/.github/workflows/ci.yml +23 -0
  1506. package/docs/reasoningbank/models/safla/node_modules/simple-get/LICENSE +20 -0
  1507. package/docs/reasoningbank/models/safla/node_modules/simple-get/README.md +333 -0
  1508. package/docs/reasoningbank/models/safla/node_modules/simple-get/index.js +108 -0
  1509. package/docs/reasoningbank/models/safla/node_modules/simple-get/package.json +67 -0
  1510. package/docs/reasoningbank/models/safla/node_modules/string_decoder/LICENSE +48 -0
  1511. package/docs/reasoningbank/models/safla/node_modules/string_decoder/README.md +47 -0
  1512. package/docs/reasoningbank/models/safla/node_modules/string_decoder/lib/string_decoder.js +296 -0
  1513. package/docs/reasoningbank/models/safla/node_modules/string_decoder/package.json +34 -0
  1514. package/docs/reasoningbank/models/safla/node_modules/strip-json-comments/index.js +70 -0
  1515. package/docs/reasoningbank/models/safla/node_modules/strip-json-comments/license +21 -0
  1516. package/docs/reasoningbank/models/safla/node_modules/strip-json-comments/package.json +42 -0
  1517. package/docs/reasoningbank/models/safla/node_modules/strip-json-comments/readme.md +64 -0
  1518. package/docs/reasoningbank/models/safla/node_modules/tar-fs/.travis.yml +6 -0
  1519. package/docs/reasoningbank/models/safla/node_modules/tar-fs/LICENSE +21 -0
  1520. package/docs/reasoningbank/models/safla/node_modules/tar-fs/README.md +165 -0
  1521. package/docs/reasoningbank/models/safla/node_modules/tar-fs/index.js +363 -0
  1522. package/docs/reasoningbank/models/safla/node_modules/tar-fs/package.json +41 -0
  1523. package/docs/reasoningbank/models/safla/node_modules/tar-fs/test/fixtures/a/hello.txt +1 -0
  1524. package/docs/reasoningbank/models/safla/node_modules/tar-fs/test/fixtures/b/a/test.txt +1 -0
  1525. package/docs/reasoningbank/models/safla/node_modules/tar-fs/test/fixtures/d/file1 +0 -0
  1526. package/docs/reasoningbank/models/safla/node_modules/tar-fs/test/fixtures/d/file2 +0 -0
  1527. package/docs/reasoningbank/models/safla/node_modules/tar-fs/test/fixtures/d/sub-dir/file5 +0 -0
  1528. package/docs/reasoningbank/models/safla/node_modules/tar-fs/test/fixtures/d/sub-files/file3 +0 -0
  1529. package/docs/reasoningbank/models/safla/node_modules/tar-fs/test/fixtures/d/sub-files/file4 +0 -0
  1530. package/docs/reasoningbank/models/safla/node_modules/tar-fs/test/fixtures/e/directory/.ignore +0 -0
  1531. package/docs/reasoningbank/models/safla/node_modules/tar-fs/test/fixtures/e/file +0 -0
  1532. package/docs/reasoningbank/models/safla/node_modules/tar-fs/test/fixtures/invalid.tar +0 -0
  1533. package/docs/reasoningbank/models/safla/node_modules/tar-fs/test/index.js +346 -0
  1534. package/docs/reasoningbank/models/safla/node_modules/tar-stream/LICENSE +21 -0
  1535. package/docs/reasoningbank/models/safla/node_modules/tar-stream/README.md +168 -0
  1536. package/docs/reasoningbank/models/safla/node_modules/tar-stream/extract.js +257 -0
  1537. package/docs/reasoningbank/models/safla/node_modules/tar-stream/headers.js +295 -0
  1538. package/docs/reasoningbank/models/safla/node_modules/tar-stream/index.js +2 -0
  1539. package/docs/reasoningbank/models/safla/node_modules/tar-stream/pack.js +255 -0
  1540. package/docs/reasoningbank/models/safla/node_modules/tar-stream/package.json +58 -0
  1541. package/docs/reasoningbank/models/safla/node_modules/tar-stream/sandbox.js +11 -0
  1542. package/docs/reasoningbank/models/safla/node_modules/tunnel-agent/LICENSE +55 -0
  1543. package/docs/reasoningbank/models/safla/node_modules/tunnel-agent/README.md +4 -0
  1544. package/docs/reasoningbank/models/safla/node_modules/tunnel-agent/index.js +244 -0
  1545. package/docs/reasoningbank/models/safla/node_modules/tunnel-agent/package.json +22 -0
  1546. package/docs/reasoningbank/models/safla/node_modules/util-deprecate/History.md +16 -0
  1547. package/docs/reasoningbank/models/safla/node_modules/util-deprecate/LICENSE +24 -0
  1548. package/docs/reasoningbank/models/safla/node_modules/util-deprecate/README.md +53 -0
  1549. package/docs/reasoningbank/models/safla/node_modules/util-deprecate/browser.js +67 -0
  1550. package/docs/reasoningbank/models/safla/node_modules/util-deprecate/node.js +6 -0
  1551. package/docs/reasoningbank/models/safla/node_modules/util-deprecate/package.json +27 -0
  1552. package/docs/reasoningbank/models/safla/node_modules/wrappy/LICENSE +15 -0
  1553. package/docs/reasoningbank/models/safla/node_modules/wrappy/README.md +36 -0
  1554. package/docs/reasoningbank/models/safla/node_modules/wrappy/package.json +29 -0
  1555. package/docs/reasoningbank/models/safla/node_modules/wrappy/wrappy.js +33 -0
  1556. package/docs/reasoningbank/models/safla/package-lock.json +463 -0
  1557. package/docs/reasoningbank/models/safla/package.json +14 -0
  1558. package/docs/reasoningbank/models/safla/train-safla.js +524 -0
  1559. package/docs/reasoningbank/models/safla/training.log +64 -0
  1560. package/docs/reasoningbank/models/safla/validate-safla.js +449 -0
  1561. package/docs/reasoningbank/models/safla/validation-report.md +115 -0
  1562. package/docs/reasoningbank/models/safla/validation-results.json +189 -0
  1563. package/docs/reasoningbank/tutorial-advanced.md +869 -0
  1564. package/docs/reasoningbank/tutorial-basic.md +626 -0
  1565. package/docs/reports/validation/PROCESS-EXIT-FIX-v2.7.0-alpha.9.md +154 -0
  1566. package/docs/reports/validation/REASONINGBANK-v1.5.13-VALIDATION.md +235 -0
  1567. package/docs/skills/skills-tutorial.md +2910 -0
  1568. package/docs/skills-tutorial.md +1251 -0
  1569. package/package.json +4 -3
  1570. package/src/cli/simple-commands/init/index.js +32 -14
  1571. package/src/cli/simple-commands/init/skills-copier.js +215 -0
  1572. package/src/cli/simple-commands/memory.js +21 -1
  1573. package/src/cli/simple-commands/process-ui-enhanced.js +1 -1
  1574. package/src/cli/simple-commands/status.js +1 -1
  1575. package/src/reasoningbank/reasoningbank-adapter.js +29 -6
  1576. package/.claude/commands/analysis/COMMAND_COMPLIANCE_REPORT.md +0 -54
  1577. package/.claude/commands/analysis/bottleneck-detect.md +0 -162
  1578. package/.claude/commands/analysis/performance-bottlenecks.md +0 -59
  1579. package/.claude/commands/analysis/performance-report.md +0 -25
  1580. package/.claude/commands/flow-nexus/app-store.md +0 -124
  1581. package/.claude/commands/flow-nexus/challenges.md +0 -120
  1582. package/.claude/commands/flow-nexus/login-registration.md +0 -65
  1583. package/.claude/commands/flow-nexus/neural-network.md +0 -134
  1584. package/.claude/commands/flow-nexus/payments.md +0 -116
  1585. package/.claude/commands/flow-nexus/sandbox.md +0 -83
  1586. package/.claude/commands/flow-nexus/swarm.md +0 -87
  1587. package/.claude/commands/flow-nexus/user-tools.md +0 -152
  1588. package/.claude/commands/flow-nexus/workflow.md +0 -115
  1589. package/.claude/commands/github/code-review-swarm.md +0 -514
  1590. package/.claude/commands/github/github-modes.md +0 -147
  1591. package/.claude/commands/github/issue-tracker.md +0 -292
  1592. package/.claude/commands/github/multi-repo-swarm.md +0 -519
  1593. package/.claude/commands/github/pr-manager.md +0 -170
  1594. package/.claude/commands/github/project-board-sync.md +0 -471
  1595. package/.claude/commands/github/release-manager.md +0 -338
  1596. package/.claude/commands/github/release-swarm.md +0 -544
  1597. package/.claude/commands/github/repo-architect.md +0 -367
  1598. package/.claude/commands/github/swarm-issue.md +0 -482
  1599. package/.claude/commands/github/swarm-pr.md +0 -285
  1600. package/.claude/commands/github/sync-coordinator.md +0 -301
  1601. package/.claude/commands/github/workflow-automation.md +0 -442
  1602. package/.claude/commands/hive-mind/hive-mind-resume.md +0 -8
  1603. package/.claude/commands/hive-mind/hive-mind-sessions.md +0 -8
  1604. package/.claude/commands/hive-mind/hive-mind-stop.md +0 -8
  1605. package/.claude/commands/hive-mind/hive-mind-wizard.md +0 -8
  1606. package/.claude/commands/hive-mind/hive-mind.md +0 -27
  1607. package/.claude/commands/hooks/overview.md +0 -132
  1608. package/.claude/commands/memory/usage.md +0 -46
  1609. package/.claude/commands/pair/commands.md +0 -546
  1610. package/.claude/commands/pair/config.md +0 -510
  1611. package/.claude/commands/pair/examples.md +0 -512
  1612. package/.claude/commands/pair/modes.md +0 -348
  1613. package/.claude/commands/pair/session.md +0 -407
  1614. package/.claude/commands/pair/start.md +0 -209
  1615. package/.claude/commands/sparc/orchestrator.md +0 -132
  1616. package/.claude/commands/sparc/sparc-modes.md +0 -174
  1617. package/.claude/commands/stream-chain/pipeline.md +0 -121
  1618. package/.claude/commands/stream-chain/run.md +0 -70
  1619. package/.claude/commands/swarm/analysis.md +0 -95
  1620. package/.claude/commands/swarm/development.md +0 -96
  1621. package/.claude/commands/swarm/examples.md +0 -168
  1622. package/.claude/commands/swarm/maintenance.md +0 -102
  1623. package/.claude/commands/swarm/optimization.md +0 -117
  1624. package/.claude/commands/swarm/research.md +0 -136
  1625. package/.claude/commands/swarm/swarm-analysis.md +0 -8
  1626. package/.claude/commands/swarm/swarm-spawn.md +0 -19
  1627. package/.claude/commands/swarm/swarm-strategies.md +0 -8
  1628. package/.claude/commands/swarm/testing.md +0 -131
  1629. package/.claude/commands/truth/start.md +0 -143
  1630. package/.claude/commands/verify/check.md +0 -50
  1631. package/.claude/commands/verify/start.md +0 -128
  1632. /package/{.claude/agents → docs}/reasoning/README.md +0 -0
  1633. /package/{.claude/agents → docs}/reasoning/example-reasoning-agent-template.md +0 -0
@@ -0,0 +1,2186 @@
1
+ // better_sqlite3.cpp
2
+ //
3
+
4
+ #include "better_sqlite3.hpp"
5
+ #line 154 "./src/util/macros.lzz"
6
+ void SetPrototypeGetter(
7
+ v8::Isolate* isolate,
8
+ v8::Local<v8::External> data,
9
+ v8::Local<v8::FunctionTemplate> recv,
10
+ const char* name,
11
+ v8::AccessorNameGetterCallback func
12
+ ) {
13
+ v8::HandleScope scope(isolate);
14
+
15
+ #if defined NODE_MODULE_VERSION && NODE_MODULE_VERSION < 121
16
+ recv->InstanceTemplate()->SetAccessor(
17
+ InternalizedFromLatin1(isolate, name),
18
+ func,
19
+ 0,
20
+ data,
21
+ v8::AccessControl::DEFAULT,
22
+ v8::PropertyAttribute::None
23
+ );
24
+ #else
25
+ recv->InstanceTemplate()->SetNativeDataProperty(
26
+ InternalizedFromLatin1(isolate, name),
27
+ func,
28
+ 0,
29
+ data
30
+ );
31
+ #endif
32
+ }
33
+ #line 184 "./src/util/macros.lzz"
34
+ #ifndef V8_COMPRESS_POINTERS_IN_SHARED_CAGE
35
+ #define SAFE_NEW_BUFFER(env, data, length, finalizeCallback, finalizeHint) node::Buffer::New(env, data, length, finalizeCallback, finalizeHint)
36
+ #else
37
+ static inline v8::MaybeLocal<v8::Object> BufferSandboxNew(v8::Isolate* isolate, char* data, size_t length, void (*finalizeCallback)(char*, void*), void* finalizeHint) {
38
+ v8::MaybeLocal<v8::Object> buffer = node::Buffer::Copy(isolate, data, length);
39
+ finalizeCallback(data, finalizeHint);
40
+ return buffer;
41
+ }
42
+ #define SAFE_NEW_BUFFER(env, data, length, finalizeCallback, finalizeHint) BufferSandboxNew(env, data, length, finalizeCallback, finalizeHint)
43
+ #endif
44
+ #line 39 "./src/util/binder.lzz"
45
+ static bool IsPlainObject(v8::Isolate* isolate, v8::Local<v8::Object> obj) {
46
+ v8::Local<v8::Value> proto = obj->GetPrototype();
47
+
48
+ #if defined NODE_MODULE_VERSION && NODE_MODULE_VERSION < 93
49
+ v8::Local<v8::Context> ctx = obj->CreationContext();
50
+ #else
51
+ v8::Local<v8::Context> ctx = obj->GetCreationContext().ToLocalChecked();
52
+ #endif
53
+
54
+ ctx->Enter();
55
+ v8::Local<v8::Value> baseProto = v8::Object::New(isolate)->GetPrototype();
56
+ ctx->Exit();
57
+ return proto->StrictEquals(baseProto) || proto->StrictEquals(v8::Null(isolate));
58
+ }
59
+ #line 67 "./src/better_sqlite3.lzz"
60
+ NODE_MODULE_INIT(/* exports, context */) {
61
+ v8::Isolate* isolate = context->GetIsolate();
62
+ v8::HandleScope scope(isolate);
63
+
64
+ // Initialize addon instance.
65
+ Addon* addon = new Addon(isolate);
66
+ v8::Local<v8::External> data = v8::External::New(isolate, addon);
67
+ node::AddEnvironmentCleanupHook(isolate, Addon::Cleanup, addon);
68
+
69
+ // Create and export native-backed classes and functions.
70
+ exports->Set(context, InternalizedFromLatin1(isolate, "Database"), Database::Init(isolate, data)).FromJust();
71
+ exports->Set(context, InternalizedFromLatin1(isolate, "Statement"), Statement::Init(isolate, data)).FromJust();
72
+ exports->Set(context, InternalizedFromLatin1(isolate, "StatementIterator"), StatementIterator::Init(isolate, data)).FromJust();
73
+ exports->Set(context, InternalizedFromLatin1(isolate, "Backup"), Backup::Init(isolate, data)).FromJust();
74
+ exports->Set(context, InternalizedFromLatin1(isolate, "setErrorConstructor"), v8::FunctionTemplate::New(isolate, Addon::JS_setErrorConstructor, data)->GetFunction(context).ToLocalChecked()).FromJust();
75
+
76
+ // Store addon instance data.
77
+ addon->Statement.Reset(isolate, exports->Get(context, InternalizedFromLatin1(isolate, "Statement")).ToLocalChecked().As<v8::Function>());
78
+ addon->StatementIterator.Reset(isolate, exports->Get(context, InternalizedFromLatin1(isolate, "StatementIterator")).ToLocalChecked().As<v8::Function>());
79
+ addon->Backup.Reset(isolate, exports->Get(context, InternalizedFromLatin1(isolate, "Backup")).ToLocalChecked().As<v8::Function>());
80
+ }
81
+ #define LZZ_INLINE inline
82
+ #line 65 "./src/util/data.lzz"
83
+ namespace Data
84
+ {
85
+ #line 67 "./src/util/data.lzz"
86
+ static char const FLAT = 0;
87
+ }
88
+ #line 65 "./src/util/data.lzz"
89
+ namespace Data
90
+ {
91
+ #line 68 "./src/util/data.lzz"
92
+ static char const PLUCK = 1;
93
+ }
94
+ #line 65 "./src/util/data.lzz"
95
+ namespace Data
96
+ {
97
+ #line 69 "./src/util/data.lzz"
98
+ static char const EXPAND = 2;
99
+ }
100
+ #line 65 "./src/util/data.lzz"
101
+ namespace Data
102
+ {
103
+ #line 70 "./src/util/data.lzz"
104
+ static char const RAW = 3;
105
+ }
106
+ #line 38 "./src/util/macros.lzz"
107
+ void ThrowError (char const * message)
108
+ #line 38 "./src/util/macros.lzz"
109
+ { v8 :: Isolate * isolate = v8 :: Isolate :: GetCurrent ( ) ; isolate->ThrowException(v8::Exception::Error(StringFromUtf8(isolate, message, -1)));
110
+ }
111
+ #line 39 "./src/util/macros.lzz"
112
+ void ThrowTypeError (char const * message)
113
+ #line 39 "./src/util/macros.lzz"
114
+ { v8 :: Isolate * isolate = v8 :: Isolate :: GetCurrent ( ) ; isolate->ThrowException(v8::Exception::TypeError(StringFromUtf8(isolate, message, -1)));
115
+ }
116
+ #line 40 "./src/util/macros.lzz"
117
+ void ThrowRangeError (char const * message)
118
+ #line 40 "./src/util/macros.lzz"
119
+ { v8 :: Isolate * isolate = v8 :: Isolate :: GetCurrent ( ) ; isolate->ThrowException(v8::Exception::RangeError(StringFromUtf8(isolate, message, -1)));
120
+ }
121
+ #line 106 "./src/util/macros.lzz"
122
+ v8::Local <v8::FunctionTemplate> NewConstructorTemplate (v8::Isolate * isolate, v8::Local <v8::External> data, v8::FunctionCallback func, char const * name)
123
+ #line 111 "./src/util/macros.lzz"
124
+ {
125
+ v8::Local<v8::FunctionTemplate> t = v8::FunctionTemplate::New(isolate, func, data);
126
+ t->InstanceTemplate()->SetInternalFieldCount(1);
127
+ t->SetClassName(InternalizedFromLatin1(isolate, name));
128
+ return t;
129
+ }
130
+ #line 117 "./src/util/macros.lzz"
131
+ void SetPrototypeMethod (v8::Isolate * isolate, v8::Local <v8::External> data, v8::Local <v8::FunctionTemplate> recv, char const * name, v8::FunctionCallback func)
132
+ #line 123 "./src/util/macros.lzz"
133
+ {
134
+ v8::HandleScope scope(isolate);
135
+ recv->PrototypeTemplate()->Set(
136
+ InternalizedFromLatin1(isolate, name),
137
+ v8::FunctionTemplate::New(isolate, func, data, v8::Signature::New(isolate, recv))
138
+ );
139
+ }
140
+ #line 130 "./src/util/macros.lzz"
141
+ void SetPrototypeSymbolMethod (v8::Isolate * isolate, v8::Local <v8::External> data, v8::Local <v8::FunctionTemplate> recv, v8::Local <v8::Symbol> symbol, v8::FunctionCallback func)
142
+ #line 136 "./src/util/macros.lzz"
143
+ {
144
+ v8::HandleScope scope(isolate);
145
+ recv->PrototypeTemplate()->Set(
146
+ symbol,
147
+ v8::FunctionTemplate::New(isolate, func, data, v8::Signature::New(isolate, recv))
148
+ );
149
+ }
150
+ #line 4 "./src/util/constants.lzz"
151
+ v8::Local <v8::String> CS::Code (v8::Isolate * isolate, int code)
152
+ #line 4 "./src/util/constants.lzz"
153
+ {
154
+ auto element = codes.find(code);
155
+ if (element != codes.end()) return element->second.Get(isolate);
156
+ return StringFromUtf8(isolate, (std::string("UNKNOWN_SQLITE_ERROR_") + std::to_string(code)).c_str(), -1);
157
+ }
158
+ #line 10 "./src/util/constants.lzz"
159
+ CS::CS (v8::Isolate * isolate)
160
+ #line 10 "./src/util/constants.lzz"
161
+ {
162
+ SetString(isolate, database, "database");
163
+ SetString(isolate, reader, "reader");
164
+ SetString(isolate, source, "source");
165
+ SetString(isolate, memory, "memory");
166
+ SetString(isolate, readonly, "readonly");
167
+ SetString(isolate, name, "name");
168
+ SetString(isolate, next, "next");
169
+ SetString(isolate, length, "length");
170
+ SetString(isolate, done, "done");
171
+ SetString(isolate, value, "value");
172
+ SetString(isolate, changes, "changes");
173
+ SetString(isolate, lastInsertRowid, "lastInsertRowid");
174
+ SetString(isolate, statement, "statement");
175
+ SetString(isolate, column, "column");
176
+ SetString(isolate, table, "table");
177
+ SetString(isolate, type, "type");
178
+ SetString(isolate, totalPages, "totalPages");
179
+ SetString(isolate, remainingPages, "remainingPages");
180
+
181
+ SetCode(isolate, SQLITE_OK, "SQLITE_OK");
182
+ SetCode(isolate, SQLITE_ERROR, "SQLITE_ERROR");
183
+ SetCode(isolate, SQLITE_INTERNAL, "SQLITE_INTERNAL");
184
+ SetCode(isolate, SQLITE_PERM, "SQLITE_PERM");
185
+ SetCode(isolate, SQLITE_ABORT, "SQLITE_ABORT");
186
+ SetCode(isolate, SQLITE_BUSY, "SQLITE_BUSY");
187
+ SetCode(isolate, SQLITE_LOCKED, "SQLITE_LOCKED");
188
+ SetCode(isolate, SQLITE_NOMEM, "SQLITE_NOMEM");
189
+ SetCode(isolate, SQLITE_READONLY, "SQLITE_READONLY");
190
+ SetCode(isolate, SQLITE_INTERRUPT, "SQLITE_INTERRUPT");
191
+ SetCode(isolate, SQLITE_IOERR, "SQLITE_IOERR");
192
+ SetCode(isolate, SQLITE_CORRUPT, "SQLITE_CORRUPT");
193
+ SetCode(isolate, SQLITE_NOTFOUND, "SQLITE_NOTFOUND");
194
+ SetCode(isolate, SQLITE_FULL, "SQLITE_FULL");
195
+ SetCode(isolate, SQLITE_CANTOPEN, "SQLITE_CANTOPEN");
196
+ SetCode(isolate, SQLITE_PROTOCOL, "SQLITE_PROTOCOL");
197
+ SetCode(isolate, SQLITE_EMPTY, "SQLITE_EMPTY");
198
+ SetCode(isolate, SQLITE_SCHEMA, "SQLITE_SCHEMA");
199
+ SetCode(isolate, SQLITE_TOOBIG, "SQLITE_TOOBIG");
200
+ SetCode(isolate, SQLITE_CONSTRAINT, "SQLITE_CONSTRAINT");
201
+ SetCode(isolate, SQLITE_MISMATCH, "SQLITE_MISMATCH");
202
+ SetCode(isolate, SQLITE_MISUSE, "SQLITE_MISUSE");
203
+ SetCode(isolate, SQLITE_NOLFS, "SQLITE_NOLFS");
204
+ SetCode(isolate, SQLITE_AUTH, "SQLITE_AUTH");
205
+ SetCode(isolate, SQLITE_FORMAT, "SQLITE_FORMAT");
206
+ SetCode(isolate, SQLITE_RANGE, "SQLITE_RANGE");
207
+ SetCode(isolate, SQLITE_NOTADB, "SQLITE_NOTADB");
208
+ SetCode(isolate, SQLITE_NOTICE, "SQLITE_NOTICE");
209
+ SetCode(isolate, SQLITE_WARNING, "SQLITE_WARNING");
210
+ SetCode(isolate, SQLITE_ROW, "SQLITE_ROW");
211
+ SetCode(isolate, SQLITE_DONE, "SQLITE_DONE");
212
+
213
+ SetCode(isolate, SQLITE_ERROR_MISSING_COLLSEQ, "SQLITE_ERROR_MISSING_COLLSEQ");
214
+ SetCode(isolate, SQLITE_ERROR_RETRY, "SQLITE_ERROR_RETRY");
215
+ SetCode(isolate, SQLITE_ERROR_SNAPSHOT, "SQLITE_ERROR_SNAPSHOT");
216
+ SetCode(isolate, SQLITE_IOERR_READ, "SQLITE_IOERR_READ");
217
+ SetCode(isolate, SQLITE_IOERR_SHORT_READ, "SQLITE_IOERR_SHORT_READ");
218
+ SetCode(isolate, SQLITE_IOERR_WRITE, "SQLITE_IOERR_WRITE");
219
+ SetCode(isolate, SQLITE_IOERR_FSYNC, "SQLITE_IOERR_FSYNC");
220
+ SetCode(isolate, SQLITE_IOERR_DIR_FSYNC, "SQLITE_IOERR_DIR_FSYNC");
221
+ SetCode(isolate, SQLITE_IOERR_TRUNCATE, "SQLITE_IOERR_TRUNCATE");
222
+ SetCode(isolate, SQLITE_IOERR_FSTAT, "SQLITE_IOERR_FSTAT");
223
+ SetCode(isolate, SQLITE_IOERR_UNLOCK, "SQLITE_IOERR_UNLOCK");
224
+ SetCode(isolate, SQLITE_IOERR_RDLOCK, "SQLITE_IOERR_RDLOCK");
225
+ SetCode(isolate, SQLITE_IOERR_DELETE, "SQLITE_IOERR_DELETE");
226
+ SetCode(isolate, SQLITE_IOERR_BLOCKED, "SQLITE_IOERR_BLOCKED");
227
+ SetCode(isolate, SQLITE_IOERR_NOMEM, "SQLITE_IOERR_NOMEM");
228
+ SetCode(isolate, SQLITE_IOERR_ACCESS, "SQLITE_IOERR_ACCESS");
229
+ SetCode(isolate, SQLITE_IOERR_CHECKRESERVEDLOCK, "SQLITE_IOERR_CHECKRESERVEDLOCK");
230
+ SetCode(isolate, SQLITE_IOERR_LOCK, "SQLITE_IOERR_LOCK");
231
+ SetCode(isolate, SQLITE_IOERR_CLOSE, "SQLITE_IOERR_CLOSE");
232
+ SetCode(isolate, SQLITE_IOERR_DIR_CLOSE, "SQLITE_IOERR_DIR_CLOSE");
233
+ SetCode(isolate, SQLITE_IOERR_SHMOPEN, "SQLITE_IOERR_SHMOPEN");
234
+ SetCode(isolate, SQLITE_IOERR_SHMSIZE, "SQLITE_IOERR_SHMSIZE");
235
+ SetCode(isolate, SQLITE_IOERR_SHMLOCK, "SQLITE_IOERR_SHMLOCK");
236
+ SetCode(isolate, SQLITE_IOERR_SHMMAP, "SQLITE_IOERR_SHMMAP");
237
+ SetCode(isolate, SQLITE_IOERR_SEEK, "SQLITE_IOERR_SEEK");
238
+ SetCode(isolate, SQLITE_IOERR_DELETE_NOENT, "SQLITE_IOERR_DELETE_NOENT");
239
+ SetCode(isolate, SQLITE_IOERR_MMAP, "SQLITE_IOERR_MMAP");
240
+ SetCode(isolate, SQLITE_IOERR_GETTEMPPATH, "SQLITE_IOERR_GETTEMPPATH");
241
+ SetCode(isolate, SQLITE_IOERR_CONVPATH, "SQLITE_IOERR_CONVPATH");
242
+ SetCode(isolate, SQLITE_IOERR_VNODE, "SQLITE_IOERR_VNODE");
243
+ SetCode(isolate, SQLITE_IOERR_AUTH, "SQLITE_IOERR_AUTH");
244
+ SetCode(isolate, SQLITE_IOERR_BEGIN_ATOMIC, "SQLITE_IOERR_BEGIN_ATOMIC");
245
+ SetCode(isolate, SQLITE_IOERR_COMMIT_ATOMIC, "SQLITE_IOERR_COMMIT_ATOMIC");
246
+ SetCode(isolate, SQLITE_IOERR_ROLLBACK_ATOMIC, "SQLITE_IOERR_ROLLBACK_ATOMIC");
247
+ SetCode(isolate, SQLITE_IOERR_DATA, "SQLITE_IOERR_DATA");
248
+ SetCode(isolate, SQLITE_IOERR_CORRUPTFS, "SQLITE_IOERR_CORRUPTFS");
249
+ SetCode(isolate, SQLITE_IOERR_IN_PAGE, "SQLITE_IOERR_IN_PAGE");
250
+ SetCode(isolate, SQLITE_LOCKED_SHAREDCACHE, "SQLITE_LOCKED_SHAREDCACHE");
251
+ SetCode(isolate, SQLITE_LOCKED_VTAB, "SQLITE_LOCKED_VTAB");
252
+ SetCode(isolate, SQLITE_BUSY_RECOVERY, "SQLITE_BUSY_RECOVERY");
253
+ SetCode(isolate, SQLITE_BUSY_SNAPSHOT, "SQLITE_BUSY_SNAPSHOT");
254
+ SetCode(isolate, SQLITE_CANTOPEN_NOTEMPDIR, "SQLITE_CANTOPEN_NOTEMPDIR");
255
+ SetCode(isolate, SQLITE_CANTOPEN_ISDIR, "SQLITE_CANTOPEN_ISDIR");
256
+ SetCode(isolate, SQLITE_CANTOPEN_FULLPATH, "SQLITE_CANTOPEN_FULLPATH");
257
+ SetCode(isolate, SQLITE_CANTOPEN_CONVPATH, "SQLITE_CANTOPEN_CONVPATH");
258
+ SetCode(isolate, SQLITE_CANTOPEN_DIRTYWAL, "SQLITE_CANTOPEN_DIRTYWAL");
259
+ SetCode(isolate, SQLITE_CANTOPEN_SYMLINK, "SQLITE_CANTOPEN_SYMLINK");
260
+ SetCode(isolate, SQLITE_CORRUPT_VTAB, "SQLITE_CORRUPT_VTAB");
261
+ SetCode(isolate, SQLITE_CORRUPT_SEQUENCE, "SQLITE_CORRUPT_SEQUENCE");
262
+ SetCode(isolate, SQLITE_CORRUPT_INDEX, "SQLITE_CORRUPT_INDEX");
263
+ SetCode(isolate, SQLITE_READONLY_RECOVERY, "SQLITE_READONLY_RECOVERY");
264
+ SetCode(isolate, SQLITE_READONLY_CANTLOCK, "SQLITE_READONLY_CANTLOCK");
265
+ SetCode(isolate, SQLITE_READONLY_ROLLBACK, "SQLITE_READONLY_ROLLBACK");
266
+ SetCode(isolate, SQLITE_READONLY_DBMOVED, "SQLITE_READONLY_DBMOVED");
267
+ SetCode(isolate, SQLITE_READONLY_CANTINIT, "SQLITE_READONLY_CANTINIT");
268
+ SetCode(isolate, SQLITE_READONLY_DIRECTORY, "SQLITE_READONLY_DIRECTORY");
269
+ SetCode(isolate, SQLITE_ABORT_ROLLBACK, "SQLITE_ABORT_ROLLBACK");
270
+ SetCode(isolate, SQLITE_CONSTRAINT_CHECK, "SQLITE_CONSTRAINT_CHECK");
271
+ SetCode(isolate, SQLITE_CONSTRAINT_COMMITHOOK, "SQLITE_CONSTRAINT_COMMITHOOK");
272
+ SetCode(isolate, SQLITE_CONSTRAINT_FOREIGNKEY, "SQLITE_CONSTRAINT_FOREIGNKEY");
273
+ SetCode(isolate, SQLITE_CONSTRAINT_FUNCTION, "SQLITE_CONSTRAINT_FUNCTION");
274
+ SetCode(isolate, SQLITE_CONSTRAINT_NOTNULL, "SQLITE_CONSTRAINT_NOTNULL");
275
+ SetCode(isolate, SQLITE_CONSTRAINT_PRIMARYKEY, "SQLITE_CONSTRAINT_PRIMARYKEY");
276
+ SetCode(isolate, SQLITE_CONSTRAINT_TRIGGER, "SQLITE_CONSTRAINT_TRIGGER");
277
+ SetCode(isolate, SQLITE_CONSTRAINT_UNIQUE, "SQLITE_CONSTRAINT_UNIQUE");
278
+ SetCode(isolate, SQLITE_CONSTRAINT_VTAB, "SQLITE_CONSTRAINT_VTAB");
279
+ SetCode(isolate, SQLITE_CONSTRAINT_ROWID, "SQLITE_CONSTRAINT_ROWID");
280
+ SetCode(isolate, SQLITE_CONSTRAINT_PINNED, "SQLITE_CONSTRAINT_PINNED");
281
+ SetCode(isolate, SQLITE_CONSTRAINT_DATATYPE, "SQLITE_CONSTRAINT_DATATYPE");
282
+ SetCode(isolate, SQLITE_NOTICE_RECOVER_WAL, "SQLITE_NOTICE_RECOVER_WAL");
283
+ SetCode(isolate, SQLITE_NOTICE_RECOVER_ROLLBACK, "SQLITE_NOTICE_RECOVER_ROLLBACK");
284
+ SetCode(isolate, SQLITE_NOTICE_RBU, "SQLITE_NOTICE_RBU");
285
+ SetCode(isolate, SQLITE_WARNING_AUTOINDEX, "SQLITE_WARNING_AUTOINDEX");
286
+ SetCode(isolate, SQLITE_AUTH_USER, "SQLITE_AUTH_USER");
287
+ SetCode(isolate, SQLITE_OK_LOAD_PERMANENTLY, "SQLITE_OK_LOAD_PERMANENTLY");
288
+ SetCode(isolate, SQLITE_OK_SYMLINK, "SQLITE_OK_SYMLINK");
289
+ }
290
+ #line 161 "./src/util/constants.lzz"
291
+ void CS::SetString (v8::Isolate * isolate, v8::Global <v8::String> & constant, char const * str)
292
+ #line 161 "./src/util/constants.lzz"
293
+ {
294
+ constant.Reset(isolate, InternalizedFromLatin1(isolate, str));
295
+ }
296
+ #line 165 "./src/util/constants.lzz"
297
+ void CS::SetCode (v8::Isolate * isolate, int code, char const * str)
298
+ #line 165 "./src/util/constants.lzz"
299
+ {
300
+ codes.emplace(std::piecewise_construct,
301
+ std::forward_as_tuple(code),
302
+ std::forward_as_tuple(isolate, InternalizedFromLatin1(isolate, str)));
303
+ }
304
+ #line 19 "./src/util/bind-map.lzz"
305
+ BindMap::Pair::Pair (v8::Isolate * isolate, char const * name, int index)
306
+ #line 20 "./src/util/bind-map.lzz"
307
+ : name (isolate, InternalizedFromUtf8(isolate, name, -1)), index (index)
308
+ #line 20 "./src/util/bind-map.lzz"
309
+ {}
310
+ #line 22 "./src/util/bind-map.lzz"
311
+ BindMap::Pair::Pair (v8::Isolate * isolate, Pair * pair)
312
+ #line 23 "./src/util/bind-map.lzz"
313
+ : name (isolate, pair->name), index (pair->index)
314
+ #line 23 "./src/util/bind-map.lzz"
315
+ {}
316
+ #line 29 "./src/util/bind-map.lzz"
317
+ BindMap::BindMap (char _)
318
+ #line 29 "./src/util/bind-map.lzz"
319
+ {
320
+ assert(_ == 0);
321
+ pairs = NULL;
322
+ capacity = 0;
323
+ length = 0;
324
+ }
325
+ #line 36 "./src/util/bind-map.lzz"
326
+ BindMap::~ BindMap ()
327
+ #line 36 "./src/util/bind-map.lzz"
328
+ {
329
+ while (length) pairs[--length].~Pair();
330
+ FREE_ARRAY<Pair>(pairs);
331
+ }
332
+ #line 50 "./src/util/bind-map.lzz"
333
+ void BindMap::Add (v8::Isolate * isolate, char const * name, int index)
334
+ #line 50 "./src/util/bind-map.lzz"
335
+ {
336
+ assert(name != NULL);
337
+ if (capacity == length) Grow(isolate);
338
+ new (pairs + length++) Pair(isolate, name, index);
339
+ }
340
+ #line 58 "./src/util/bind-map.lzz"
341
+ void BindMap::Grow (v8::Isolate * isolate)
342
+ #line 58 "./src/util/bind-map.lzz"
343
+ {
344
+ assert(capacity == length);
345
+ capacity = (capacity << 1) | 2;
346
+ Pair* new_pairs = ALLOC_ARRAY<Pair>(capacity);
347
+ for (int i = 0; i < length; ++i) {
348
+ new (new_pairs + i) Pair(isolate, pairs + i);
349
+ pairs[i].~Pair();
350
+ }
351
+ FREE_ARRAY<Pair>(pairs);
352
+ pairs = new_pairs;
353
+ }
354
+ #line 4 "./src/objects/database.lzz"
355
+ v8::Local <v8 :: Function> Database::Init (v8::Isolate * isolate, v8::Local <v8 :: External> data)
356
+ #line 4 "./src/objects/database.lzz"
357
+ {
358
+ v8::Local<v8::FunctionTemplate> t = NewConstructorTemplate(isolate, data, JS_new, "Database");
359
+ SetPrototypeMethod(isolate, data, t, "prepare", JS_prepare);
360
+ SetPrototypeMethod(isolate, data, t, "exec", JS_exec);
361
+ SetPrototypeMethod(isolate, data, t, "backup", JS_backup);
362
+ SetPrototypeMethod(isolate, data, t, "serialize", JS_serialize);
363
+ SetPrototypeMethod(isolate, data, t, "function", JS_function);
364
+ SetPrototypeMethod(isolate, data, t, "aggregate", JS_aggregate);
365
+ SetPrototypeMethod(isolate, data, t, "table", JS_table);
366
+ SetPrototypeMethod(isolate, data, t, "loadExtension", JS_loadExtension);
367
+ SetPrototypeMethod(isolate, data, t, "close", JS_close);
368
+ SetPrototypeMethod(isolate, data, t, "defaultSafeIntegers", JS_defaultSafeIntegers);
369
+ SetPrototypeMethod(isolate, data, t, "unsafeMode", JS_unsafeMode);
370
+ SetPrototypeGetter(isolate, data, t, "open", JS_open);
371
+ SetPrototypeGetter(isolate, data, t, "inTransaction", JS_inTransaction);
372
+ return t->GetFunction( isolate -> GetCurrentContext ( ) ).ToLocalChecked();
373
+ }
374
+ #line 24 "./src/objects/database.lzz"
375
+ bool Database::CompareDatabase::operator () (Database const * const a, Database const * const b) const
376
+ #line 24 "./src/objects/database.lzz"
377
+ {
378
+ return a < b;
379
+ }
380
+ #line 29 "./src/objects/database.lzz"
381
+ bool Database::CompareStatement::operator () (Statement const * const a, Statement const * const b) const
382
+ #line 29 "./src/objects/database.lzz"
383
+ {
384
+ return Statement::Compare(a, b);
385
+ }
386
+ #line 34 "./src/objects/database.lzz"
387
+ bool Database::CompareBackup::operator () (Backup const * const a, Backup const * const b) const
388
+ #line 34 "./src/objects/database.lzz"
389
+ {
390
+ return Backup::Compare(a, b);
391
+ }
392
+ #line 40 "./src/objects/database.lzz"
393
+ void Database::ThrowDatabaseError ()
394
+ #line 40 "./src/objects/database.lzz"
395
+ {
396
+ if (was_js_error) was_js_error = false;
397
+ else ThrowSqliteError(addon, db_handle);
398
+ }
399
+ #line 44 "./src/objects/database.lzz"
400
+ void Database::ThrowSqliteError (Addon * addon, sqlite3 * db_handle)
401
+ #line 44 "./src/objects/database.lzz"
402
+ {
403
+ assert(db_handle != NULL);
404
+ ThrowSqliteError(addon, sqlite3_errmsg(db_handle), sqlite3_extended_errcode(db_handle));
405
+ }
406
+ #line 48 "./src/objects/database.lzz"
407
+ void Database::ThrowSqliteError (Addon * addon, char const * message, int code)
408
+ #line 48 "./src/objects/database.lzz"
409
+ {
410
+ assert(message != NULL);
411
+ assert((code & 0xff) != SQLITE_OK);
412
+ assert((code & 0xff) != SQLITE_ROW);
413
+ assert((code & 0xff) != SQLITE_DONE);
414
+ v8 :: Isolate * isolate = v8 :: Isolate :: GetCurrent ( ) ;
415
+ v8::Local<v8::Value> args[2] = {
416
+ StringFromUtf8(isolate, message, -1),
417
+ addon->cs.Code(isolate, code)
418
+ };
419
+ isolate->ThrowException(addon->SqliteError.Get(isolate)
420
+ ->NewInstance( isolate -> GetCurrentContext ( ) , 2, args)
421
+ .ToLocalChecked());
422
+ }
423
+ #line 64 "./src/objects/database.lzz"
424
+ bool Database::Log (v8::Isolate * isolate, sqlite3_stmt * handle)
425
+ #line 64 "./src/objects/database.lzz"
426
+ {
427
+ assert(was_js_error == false);
428
+ if (!has_logger) return false;
429
+ char* expanded = sqlite3_expanded_sql(handle);
430
+ v8::Local<v8::Value> arg = StringFromUtf8(isolate, expanded ? expanded : sqlite3_sql(handle), -1);
431
+ was_js_error = logger.Get(isolate).As<v8::Function>()
432
+ ->Call( isolate -> GetCurrentContext ( ) , v8::Undefined(isolate), 1, &arg)
433
+ .IsEmpty();
434
+ if (expanded) sqlite3_free(expanded);
435
+ return was_js_error;
436
+ }
437
+ #line 107 "./src/objects/database.lzz"
438
+ void Database::CloseHandles ()
439
+ #line 107 "./src/objects/database.lzz"
440
+ {
441
+ if (open) {
442
+ open = false;
443
+ for (Statement* stmt : stmts) stmt->CloseHandles();
444
+ for (Backup* backup : backups) backup->CloseHandles();
445
+ stmts.clear();
446
+ backups.clear();
447
+ int status = sqlite3_close(db_handle);
448
+ assert(status == SQLITE_OK); ((void)status);
449
+ }
450
+ }
451
+ #line 119 "./src/objects/database.lzz"
452
+ Database::~ Database ()
453
+ #line 119 "./src/objects/database.lzz"
454
+ {
455
+ if (open) addon->dbs.erase(this);
456
+ CloseHandles();
457
+ }
458
+ #line 126 "./src/objects/database.lzz"
459
+ Database::Database (v8::Isolate * isolate, Addon * addon, sqlite3 * db_handle, v8::Local <v8::Value> logger)
460
+ #line 131 "./src/objects/database.lzz"
461
+ : node::ObjectWrap (), db_handle (db_handle), open (true), busy (false), safe_ints (false), unsafe_mode (false), was_js_error (false), has_logger (logger->IsFunction()), iterators (0), addon (addon), logger (isolate, logger), stmts (), backups ()
462
+ #line 144 "./src/objects/database.lzz"
463
+ {
464
+ assert(db_handle != NULL);
465
+ addon->dbs.insert(this);
466
+ }
467
+ #line 149 "./src/objects/database.lzz"
468
+ void Database::JS_new (v8::FunctionCallbackInfo <v8 :: Value> const & info)
469
+ #line 149 "./src/objects/database.lzz"
470
+ {
471
+ assert(info.IsConstructCall());
472
+ if ( info . Length ( ) <= ( 0 ) || ! info [ 0 ] -> IsString ( ) ) return ThrowTypeError ( "Expected " "first" " argument to be " "a string" ) ; v8 :: Local < v8 :: String > filename = ( info [ 0 ] . As < v8 :: String > ( ) ) ;
473
+ if ( info . Length ( ) <= ( 1 ) || ! info [ 1 ] -> IsString ( ) ) return ThrowTypeError ( "Expected " "second" " argument to be " "a string" ) ; v8 :: Local < v8 :: String > filenameGiven = ( info [ 1 ] . As < v8 :: String > ( ) ) ;
474
+ if ( info . Length ( ) <= ( 2 ) || ! info [ 2 ] -> IsBoolean ( ) ) return ThrowTypeError ( "Expected " "third" " argument to be " "a boolean" ) ; bool in_memory = ( info [ 2 ] . As < v8 :: Boolean > ( ) ) -> Value ( ) ;
475
+ if ( info . Length ( ) <= ( 3 ) || ! info [ 3 ] -> IsBoolean ( ) ) return ThrowTypeError ( "Expected " "fourth" " argument to be " "a boolean" ) ; bool readonly = ( info [ 3 ] . As < v8 :: Boolean > ( ) ) -> Value ( ) ;
476
+ if ( info . Length ( ) <= ( 4 ) || ! info [ 4 ] -> IsBoolean ( ) ) return ThrowTypeError ( "Expected " "fifth" " argument to be " "a boolean" ) ; bool must_exist = ( info [ 4 ] . As < v8 :: Boolean > ( ) ) -> Value ( ) ;
477
+ if ( info . Length ( ) <= ( 5 ) || ! info [ 5 ] -> IsInt32 ( ) ) return ThrowTypeError ( "Expected " "sixth" " argument to be " "a 32-bit signed integer" ) ; int timeout = ( info [ 5 ] . As < v8 :: Int32 > ( ) ) -> Value ( ) ;
478
+ if ( info . Length ( ) <= ( 6 ) ) return ThrowTypeError ( "Expected a " "seventh" " argument" ) ; v8 :: Local < v8 :: Value > logger = info [ 6 ] ;
479
+ if ( info . Length ( ) <= ( 7 ) ) return ThrowTypeError ( "Expected a " "eighth" " argument" ) ; v8 :: Local < v8 :: Value > buffer = info [ 7 ] ;
480
+
481
+ Addon * addon = static_cast < Addon * > ( info . Data ( ) . As < v8 :: External > ( ) -> Value ( ) ) ;
482
+ v8 :: Isolate * isolate = info . GetIsolate ( ) ;
483
+ sqlite3* db_handle;
484
+ v8::String::Utf8Value utf8(isolate, filename);
485
+ int mask = readonly ? SQLITE_OPEN_READONLY
486
+ : must_exist ? SQLITE_OPEN_READWRITE
487
+ : (SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE);
488
+
489
+ if (sqlite3_open_v2(*utf8, &db_handle, mask, NULL) != SQLITE_OK) {
490
+ ThrowSqliteError(addon, db_handle);
491
+ int status = sqlite3_close(db_handle);
492
+ assert(status == SQLITE_OK); ((void)status);
493
+ return;
494
+ }
495
+
496
+ assert(sqlite3_db_mutex(db_handle) == NULL);
497
+ sqlite3_extended_result_codes(db_handle, 1);
498
+ sqlite3_busy_timeout(db_handle, timeout);
499
+ sqlite3_limit(db_handle, SQLITE_LIMIT_LENGTH, MAX_BUFFER_SIZE < MAX_STRING_SIZE ? MAX_BUFFER_SIZE : MAX_STRING_SIZE);
500
+ sqlite3_limit(db_handle, SQLITE_LIMIT_SQL_LENGTH, MAX_STRING_SIZE);
501
+ int status = sqlite3_db_config(db_handle, SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION, 1, NULL);
502
+ assert(status == SQLITE_OK);
503
+ status = sqlite3_db_config(db_handle, SQLITE_DBCONFIG_DEFENSIVE, 1, NULL);
504
+ assert(status == SQLITE_OK);
505
+
506
+ if (node::Buffer::HasInstance(buffer) && !Deserialize(buffer.As<v8::Object>(), addon, db_handle, readonly)) {
507
+ int status = sqlite3_close(db_handle);
508
+ assert(status == SQLITE_OK); ((void)status);
509
+ return;
510
+ }
511
+
512
+ v8 :: Local < v8 :: Context > ctx = isolate -> GetCurrentContext ( ) ;
513
+ Database* db = new Database(isolate, addon, db_handle, logger);
514
+ db->Wrap(info.This());
515
+ SetFrozen(isolate, ctx, info.This(), addon->cs.memory, v8::Boolean::New(isolate, in_memory));
516
+ SetFrozen(isolate, ctx, info.This(), addon->cs.readonly, v8::Boolean::New(isolate, readonly));
517
+ SetFrozen(isolate, ctx, info.This(), addon->cs.name, filenameGiven);
518
+
519
+ info.GetReturnValue().Set(info.This());
520
+ }
521
+ #line 201 "./src/objects/database.lzz"
522
+ void Database::JS_prepare (v8::FunctionCallbackInfo <v8 :: Value> const & info)
523
+ #line 201 "./src/objects/database.lzz"
524
+ {
525
+ if ( info . Length ( ) <= ( 0 ) || ! info [ 0 ] -> IsString ( ) ) return ThrowTypeError ( "Expected " "first" " argument to be " "a string" ) ; v8 :: Local < v8 :: String > source = ( info [ 0 ] . As < v8 :: String > ( ) ) ;
526
+ if ( info . Length ( ) <= ( 1 ) || ! info [ 1 ] -> IsObject ( ) ) return ThrowTypeError ( "Expected " "second" " argument to be " "an object" ) ; v8 :: Local < v8 :: Object > database = ( info [ 1 ] . As < v8 :: Object > ( ) ) ;
527
+ if ( info . Length ( ) <= ( 2 ) || ! info [ 2 ] -> IsBoolean ( ) ) return ThrowTypeError ( "Expected " "third" " argument to be " "a boolean" ) ; bool pragmaMode = ( info [ 2 ] . As < v8 :: Boolean > ( ) ) -> Value ( ) ;
528
+ (void)source;
529
+ (void)database;
530
+ (void)pragmaMode;
531
+ Addon * addon = static_cast < Addon * > ( info . Data ( ) . As < v8 :: External > ( ) -> Value ( ) ) ;
532
+ v8 :: Isolate * isolate = info . GetIsolate ( ) ;
533
+ v8::Local<v8::Function> c = addon->Statement.Get(isolate);
534
+ addon->privileged_info = &info;
535
+ v8::MaybeLocal<v8::Object> maybeStatement = c->NewInstance( isolate -> GetCurrentContext ( ) , 0, NULL);
536
+ addon->privileged_info = NULL;
537
+ if (!maybeStatement.IsEmpty()) info.GetReturnValue().Set(maybeStatement.ToLocalChecked());
538
+ }
539
+ #line 217 "./src/objects/database.lzz"
540
+ void Database::JS_exec (v8::FunctionCallbackInfo <v8 :: Value> const & info)
541
+ #line 217 "./src/objects/database.lzz"
542
+ {
543
+ Database* db = node :: ObjectWrap :: Unwrap <Database>(info.This());
544
+ if ( info . Length ( ) <= ( 0 ) || ! info [ 0 ] -> IsString ( ) ) return ThrowTypeError ( "Expected " "first" " argument to be " "a string" ) ; v8 :: Local < v8 :: String > source = ( info [ 0 ] . As < v8 :: String > ( ) ) ;
545
+ if ( ! db -> open ) return ThrowTypeError ( "The database connection is not open" ) ;
546
+ if ( db -> busy ) return ThrowTypeError ( "This database connection is busy executing a query" ) ;
547
+ if ( ! db -> unsafe_mode ) { if ( db -> iterators ) return ThrowTypeError ( "This database connection is busy executing a query" ) ; } ( ( void ) 0 ) ;
548
+ db->busy = true;
549
+
550
+ v8 :: Isolate * isolate = info . GetIsolate ( ) ;
551
+ v8::String::Utf8Value utf8(isolate, source);
552
+ const char* sql = *utf8;
553
+ const char* tail;
554
+
555
+ int status;
556
+ const bool has_logger = db->has_logger;
557
+ sqlite3* const db_handle = db->db_handle;
558
+ sqlite3_stmt* handle;
559
+
560
+ for (;;) {
561
+ while (IS_SKIPPED(*sql)) ++sql;
562
+ status = sqlite3_prepare_v2(db_handle, sql, -1, &handle, &tail);
563
+ sql = tail;
564
+ if (!handle) break;
565
+ if (has_logger && db->Log(isolate, handle)) {
566
+ sqlite3_finalize(handle);
567
+ status = -1;
568
+ break;
569
+ }
570
+ do status = sqlite3_step(handle);
571
+ while (status == SQLITE_ROW);
572
+ status = sqlite3_finalize(handle);
573
+ if (status != SQLITE_OK) break;
574
+ }
575
+
576
+ db->busy = false;
577
+ if (status != SQLITE_OK) {
578
+ db->ThrowDatabaseError();
579
+ }
580
+ }
581
+ #line 257 "./src/objects/database.lzz"
582
+ void Database::JS_backup (v8::FunctionCallbackInfo <v8 :: Value> const & info)
583
+ #line 257 "./src/objects/database.lzz"
584
+ {
585
+ if ( info . Length ( ) <= ( 0 ) || ! info [ 0 ] -> IsObject ( ) ) return ThrowTypeError ( "Expected " "first" " argument to be " "an object" ) ; v8 :: Local < v8 :: Object > database = ( info [ 0 ] . As < v8 :: Object > ( ) ) ;
586
+ if ( info . Length ( ) <= ( 1 ) || ! info [ 1 ] -> IsString ( ) ) return ThrowTypeError ( "Expected " "second" " argument to be " "a string" ) ; v8 :: Local < v8 :: String > attachedName = ( info [ 1 ] . As < v8 :: String > ( ) ) ;
587
+ if ( info . Length ( ) <= ( 2 ) || ! info [ 2 ] -> IsString ( ) ) return ThrowTypeError ( "Expected " "third" " argument to be " "a string" ) ; v8 :: Local < v8 :: String > destFile = ( info [ 2 ] . As < v8 :: String > ( ) ) ;
588
+ if ( info . Length ( ) <= ( 3 ) || ! info [ 3 ] -> IsBoolean ( ) ) return ThrowTypeError ( "Expected " "fourth" " argument to be " "a boolean" ) ; bool unlink = ( info [ 3 ] . As < v8 :: Boolean > ( ) ) -> Value ( ) ;
589
+ (void)database;
590
+ (void)attachedName;
591
+ (void)destFile;
592
+ (void)unlink;
593
+ Addon * addon = static_cast < Addon * > ( info . Data ( ) . As < v8 :: External > ( ) -> Value ( ) ) ;
594
+ v8 :: Isolate * isolate = info . GetIsolate ( ) ;
595
+ v8::Local<v8::Function> c = addon->Backup.Get(isolate);
596
+ addon->privileged_info = &info;
597
+ v8::MaybeLocal<v8::Object> maybeBackup = c->NewInstance( isolate -> GetCurrentContext ( ) , 0, NULL);
598
+ addon->privileged_info = NULL;
599
+ if (!maybeBackup.IsEmpty()) info.GetReturnValue().Set(maybeBackup.ToLocalChecked());
600
+ }
601
+ #line 275 "./src/objects/database.lzz"
602
+ void Database::JS_serialize (v8::FunctionCallbackInfo <v8 :: Value> const & info)
603
+ #line 275 "./src/objects/database.lzz"
604
+ {
605
+ Database* db = node :: ObjectWrap :: Unwrap <Database>(info.This());
606
+ if ( info . Length ( ) <= ( 0 ) || ! info [ 0 ] -> IsString ( ) ) return ThrowTypeError ( "Expected " "first" " argument to be " "a string" ) ; v8 :: Local < v8 :: String > attachedName = ( info [ 0 ] . As < v8 :: String > ( ) ) ;
607
+ if ( ! db -> open ) return ThrowTypeError ( "The database connection is not open" ) ;
608
+ if ( db -> busy ) return ThrowTypeError ( "This database connection is busy executing a query" ) ;
609
+ if ( db -> iterators ) return ThrowTypeError ( "This database connection is busy executing a query" ) ;
610
+
611
+ v8 :: Isolate * isolate = info . GetIsolate ( ) ;
612
+ v8::String::Utf8Value attached_name(isolate, attachedName);
613
+ sqlite3_int64 length = -1;
614
+ unsigned char* data = sqlite3_serialize(db->db_handle, *attached_name, &length, 0);
615
+
616
+ if (!data && length) {
617
+ ThrowError("Out of memory");
618
+ return;
619
+ }
620
+
621
+ info.GetReturnValue().Set(
622
+ SAFE_NEW_BUFFER(isolate, reinterpret_cast<char*>(data), length, FreeSerialization, NULL).ToLocalChecked()
623
+ );
624
+ }
625
+ #line 297 "./src/objects/database.lzz"
626
+ void Database::JS_function (v8::FunctionCallbackInfo <v8 :: Value> const & info)
627
+ #line 297 "./src/objects/database.lzz"
628
+ {
629
+ Database* db = node :: ObjectWrap :: Unwrap <Database>(info.This());
630
+ if ( info . Length ( ) <= ( 0 ) || ! info [ 0 ] -> IsFunction ( ) ) return ThrowTypeError ( "Expected " "first" " argument to be " "a function" ) ; v8 :: Local < v8 :: Function > fn = ( info [ 0 ] . As < v8 :: Function > ( ) ) ;
631
+ if ( info . Length ( ) <= ( 1 ) || ! info [ 1 ] -> IsString ( ) ) return ThrowTypeError ( "Expected " "second" " argument to be " "a string" ) ; v8 :: Local < v8 :: String > nameString = ( info [ 1 ] . As < v8 :: String > ( ) ) ;
632
+ if ( info . Length ( ) <= ( 2 ) || ! info [ 2 ] -> IsInt32 ( ) ) return ThrowTypeError ( "Expected " "third" " argument to be " "a 32-bit signed integer" ) ; int argc = ( info [ 2 ] . As < v8 :: Int32 > ( ) ) -> Value ( ) ;
633
+ if ( info . Length ( ) <= ( 3 ) || ! info [ 3 ] -> IsInt32 ( ) ) return ThrowTypeError ( "Expected " "fourth" " argument to be " "a 32-bit signed integer" ) ; int safe_ints = ( info [ 3 ] . As < v8 :: Int32 > ( ) ) -> Value ( ) ;
634
+ if ( info . Length ( ) <= ( 4 ) || ! info [ 4 ] -> IsBoolean ( ) ) return ThrowTypeError ( "Expected " "fifth" " argument to be " "a boolean" ) ; bool deterministic = ( info [ 4 ] . As < v8 :: Boolean > ( ) ) -> Value ( ) ;
635
+ if ( info . Length ( ) <= ( 5 ) || ! info [ 5 ] -> IsBoolean ( ) ) return ThrowTypeError ( "Expected " "sixth" " argument to be " "a boolean" ) ; bool direct_only = ( info [ 5 ] . As < v8 :: Boolean > ( ) ) -> Value ( ) ;
636
+ if ( ! db -> open ) return ThrowTypeError ( "The database connection is not open" ) ;
637
+ if ( db -> busy ) return ThrowTypeError ( "This database connection is busy executing a query" ) ;
638
+ if ( db -> iterators ) return ThrowTypeError ( "This database connection is busy executing a query" ) ;
639
+
640
+ v8 :: Isolate * isolate = info . GetIsolate ( ) ;
641
+ v8::String::Utf8Value name(isolate, nameString);
642
+ int mask = SQLITE_UTF8;
643
+ if (deterministic) mask |= SQLITE_DETERMINISTIC;
644
+ if (direct_only) mask |= SQLITE_DIRECTONLY;
645
+ safe_ints = safe_ints < 2 ? safe_ints : static_cast<int>(db->safe_ints);
646
+
647
+ if (sqlite3_create_function_v2(db->db_handle, *name, argc, mask, new CustomFunction(isolate, db, *name, fn, safe_ints), CustomFunction::xFunc, NULL, NULL, CustomFunction::xDestroy) != SQLITE_OK) {
648
+ db->ThrowDatabaseError();
649
+ }
650
+ }
651
+ #line 321 "./src/objects/database.lzz"
652
+ void Database::JS_aggregate (v8::FunctionCallbackInfo <v8 :: Value> const & info)
653
+ #line 321 "./src/objects/database.lzz"
654
+ {
655
+ Database* db = node :: ObjectWrap :: Unwrap <Database>(info.This());
656
+ if ( info . Length ( ) <= ( 0 ) ) return ThrowTypeError ( "Expected a " "first" " argument" ) ; v8 :: Local < v8 :: Value > start = info [ 0 ] ;
657
+ if ( info . Length ( ) <= ( 1 ) || ! info [ 1 ] -> IsFunction ( ) ) return ThrowTypeError ( "Expected " "second" " argument to be " "a function" ) ; v8 :: Local < v8 :: Function > step = ( info [ 1 ] . As < v8 :: Function > ( ) ) ;
658
+ if ( info . Length ( ) <= ( 2 ) ) return ThrowTypeError ( "Expected a " "third" " argument" ) ; v8 :: Local < v8 :: Value > inverse = info [ 2 ] ;
659
+ if ( info . Length ( ) <= ( 3 ) ) return ThrowTypeError ( "Expected a " "fourth" " argument" ) ; v8 :: Local < v8 :: Value > result = info [ 3 ] ;
660
+ if ( info . Length ( ) <= ( 4 ) || ! info [ 4 ] -> IsString ( ) ) return ThrowTypeError ( "Expected " "fifth" " argument to be " "a string" ) ; v8 :: Local < v8 :: String > nameString = ( info [ 4 ] . As < v8 :: String > ( ) ) ;
661
+ if ( info . Length ( ) <= ( 5 ) || ! info [ 5 ] -> IsInt32 ( ) ) return ThrowTypeError ( "Expected " "sixth" " argument to be " "a 32-bit signed integer" ) ; int argc = ( info [ 5 ] . As < v8 :: Int32 > ( ) ) -> Value ( ) ;
662
+ if ( info . Length ( ) <= ( 6 ) || ! info [ 6 ] -> IsInt32 ( ) ) return ThrowTypeError ( "Expected " "seventh" " argument to be " "a 32-bit signed integer" ) ; int safe_ints = ( info [ 6 ] . As < v8 :: Int32 > ( ) ) -> Value ( ) ;
663
+ if ( info . Length ( ) <= ( 7 ) || ! info [ 7 ] -> IsBoolean ( ) ) return ThrowTypeError ( "Expected " "eighth" " argument to be " "a boolean" ) ; bool deterministic = ( info [ 7 ] . As < v8 :: Boolean > ( ) ) -> Value ( ) ;
664
+ if ( info . Length ( ) <= ( 8 ) || ! info [ 8 ] -> IsBoolean ( ) ) return ThrowTypeError ( "Expected " "ninth" " argument to be " "a boolean" ) ; bool direct_only = ( info [ 8 ] . As < v8 :: Boolean > ( ) ) -> Value ( ) ;
665
+ if ( ! db -> open ) return ThrowTypeError ( "The database connection is not open" ) ;
666
+ if ( db -> busy ) return ThrowTypeError ( "This database connection is busy executing a query" ) ;
667
+ if ( db -> iterators ) return ThrowTypeError ( "This database connection is busy executing a query" ) ;
668
+
669
+ v8 :: Isolate * isolate = info . GetIsolate ( ) ;
670
+ v8::String::Utf8Value name(isolate, nameString);
671
+ auto xInverse = inverse->IsFunction() ? CustomAggregate::xInverse : NULL;
672
+ auto xValue = xInverse ? CustomAggregate::xValue : NULL;
673
+ int mask = SQLITE_UTF8;
674
+ if (deterministic) mask |= SQLITE_DETERMINISTIC;
675
+ if (direct_only) mask |= SQLITE_DIRECTONLY;
676
+ safe_ints = safe_ints < 2 ? safe_ints : static_cast<int>(db->safe_ints);
677
+
678
+ if (sqlite3_create_window_function(db->db_handle, *name, argc, mask, new CustomAggregate(isolate, db, *name, start, step, inverse, result, safe_ints), CustomAggregate::xStep, CustomAggregate::xFinal, xValue, xInverse, CustomAggregate::xDestroy) != SQLITE_OK) {
679
+ db->ThrowDatabaseError();
680
+ }
681
+ }
682
+ #line 350 "./src/objects/database.lzz"
683
+ void Database::JS_table (v8::FunctionCallbackInfo <v8 :: Value> const & info)
684
+ #line 350 "./src/objects/database.lzz"
685
+ {
686
+ Database* db = node :: ObjectWrap :: Unwrap <Database>(info.This());
687
+ if ( info . Length ( ) <= ( 0 ) || ! info [ 0 ] -> IsFunction ( ) ) return ThrowTypeError ( "Expected " "first" " argument to be " "a function" ) ; v8 :: Local < v8 :: Function > factory = ( info [ 0 ] . As < v8 :: Function > ( ) ) ;
688
+ if ( info . Length ( ) <= ( 1 ) || ! info [ 1 ] -> IsString ( ) ) return ThrowTypeError ( "Expected " "second" " argument to be " "a string" ) ; v8 :: Local < v8 :: String > nameString = ( info [ 1 ] . As < v8 :: String > ( ) ) ;
689
+ if ( info . Length ( ) <= ( 2 ) || ! info [ 2 ] -> IsBoolean ( ) ) return ThrowTypeError ( "Expected " "third" " argument to be " "a boolean" ) ; bool eponymous = ( info [ 2 ] . As < v8 :: Boolean > ( ) ) -> Value ( ) ;
690
+ if ( ! db -> open ) return ThrowTypeError ( "The database connection is not open" ) ;
691
+ if ( db -> busy ) return ThrowTypeError ( "This database connection is busy executing a query" ) ;
692
+ if ( db -> iterators ) return ThrowTypeError ( "This database connection is busy executing a query" ) ;
693
+
694
+ v8 :: Isolate * isolate = info . GetIsolate ( ) ;
695
+ v8::String::Utf8Value name(isolate, nameString);
696
+ sqlite3_module* module = eponymous ? &CustomTable::EPONYMOUS_MODULE : &CustomTable::MODULE;
697
+
698
+ db->busy = true;
699
+ if (sqlite3_create_module_v2(db->db_handle, *name, module, new CustomTable(isolate, db, *name, factory), CustomTable::Destructor) != SQLITE_OK) {
700
+ db->ThrowDatabaseError();
701
+ }
702
+ db->busy = false;
703
+ }
704
+ #line 370 "./src/objects/database.lzz"
705
+ void Database::JS_loadExtension (v8::FunctionCallbackInfo <v8 :: Value> const & info)
706
+ #line 370 "./src/objects/database.lzz"
707
+ {
708
+ Database* db = node :: ObjectWrap :: Unwrap <Database>(info.This());
709
+ v8::Local<v8::String> entryPoint;
710
+ if ( info . Length ( ) <= ( 0 ) || ! info [ 0 ] -> IsString ( ) ) return ThrowTypeError ( "Expected " "first" " argument to be " "a string" ) ; v8 :: Local < v8 :: String > filename = ( info [ 0 ] . As < v8 :: String > ( ) ) ;
711
+ if (info.Length() > 1) { if ( info . Length ( ) <= ( 1 ) || ! info [ 1 ] -> IsString ( ) ) return ThrowTypeError ( "Expected " "second" " argument to be " "a string" ) ; entryPoint = ( info [ 1 ] . As < v8 :: String > ( ) ) ; }
712
+ if ( ! db -> open ) return ThrowTypeError ( "The database connection is not open" ) ;
713
+ if ( db -> busy ) return ThrowTypeError ( "This database connection is busy executing a query" ) ;
714
+ if ( db -> iterators ) return ThrowTypeError ( "This database connection is busy executing a query" ) ;
715
+ v8 :: Isolate * isolate = info . GetIsolate ( ) ;
716
+ char* error;
717
+ int status = sqlite3_load_extension(
718
+ db->db_handle,
719
+ *v8::String::Utf8Value(isolate, filename),
720
+ entryPoint.IsEmpty() ? NULL : *v8::String::Utf8Value(isolate, entryPoint),
721
+ &error
722
+ );
723
+ if (status != SQLITE_OK) {
724
+ ThrowSqliteError(db->addon, error, status);
725
+ }
726
+ sqlite3_free(error);
727
+ }
728
+ #line 392 "./src/objects/database.lzz"
729
+ void Database::JS_close (v8::FunctionCallbackInfo <v8 :: Value> const & info)
730
+ #line 392 "./src/objects/database.lzz"
731
+ {
732
+ Database* db = node :: ObjectWrap :: Unwrap <Database>(info.This());
733
+ if (db->open) {
734
+ if ( db -> busy ) return ThrowTypeError ( "This database connection is busy executing a query" ) ;
735
+ if ( db -> iterators ) return ThrowTypeError ( "This database connection is busy executing a query" ) ;
736
+ db->addon->dbs.erase(db);
737
+ db->CloseHandles();
738
+ }
739
+ }
740
+ #line 402 "./src/objects/database.lzz"
741
+ void Database::JS_defaultSafeIntegers (v8::FunctionCallbackInfo <v8 :: Value> const & info)
742
+ #line 402 "./src/objects/database.lzz"
743
+ {
744
+ Database* db = node :: ObjectWrap :: Unwrap <Database>(info.This());
745
+ if (info.Length() == 0) db->safe_ints = true;
746
+ else { if ( info . Length ( ) <= ( 0 ) || ! info [ 0 ] -> IsBoolean ( ) ) return ThrowTypeError ( "Expected " "first" " argument to be " "a boolean" ) ; db -> safe_ints = ( info [ 0 ] . As < v8 :: Boolean > ( ) ) -> Value ( ) ; }
747
+ }
748
+ #line 408 "./src/objects/database.lzz"
749
+ void Database::JS_unsafeMode (v8::FunctionCallbackInfo <v8 :: Value> const & info)
750
+ #line 408 "./src/objects/database.lzz"
751
+ {
752
+ Database* db = node :: ObjectWrap :: Unwrap <Database>(info.This());
753
+ if (info.Length() == 0) db->unsafe_mode = true;
754
+ else { if ( info . Length ( ) <= ( 0 ) || ! info [ 0 ] -> IsBoolean ( ) ) return ThrowTypeError ( "Expected " "first" " argument to be " "a boolean" ) ; db -> unsafe_mode = ( info [ 0 ] . As < v8 :: Boolean > ( ) ) -> Value ( ) ; }
755
+ sqlite3_db_config(db->db_handle, SQLITE_DBCONFIG_DEFENSIVE, static_cast<int>(!db->unsafe_mode), NULL);
756
+ }
757
+ #line 415 "./src/objects/database.lzz"
758
+ void Database::JS_open (v8::Local <v8 :: Name> _, v8::PropertyCallbackInfo <v8 :: Value> const & info)
759
+ #line 415 "./src/objects/database.lzz"
760
+ {
761
+ info.GetReturnValue().Set( node :: ObjectWrap :: Unwrap <Database>(info.This())->open);
762
+ }
763
+ #line 419 "./src/objects/database.lzz"
764
+ void Database::JS_inTransaction (v8::Local <v8 :: Name> _, v8::PropertyCallbackInfo <v8 :: Value> const & info)
765
+ #line 419 "./src/objects/database.lzz"
766
+ {
767
+ Database* db = node :: ObjectWrap :: Unwrap <Database>(info.This());
768
+ info.GetReturnValue().Set(db->open && !static_cast<bool>(sqlite3_get_autocommit(db->db_handle)));
769
+ }
770
+ #line 424 "./src/objects/database.lzz"
771
+ bool Database::Deserialize (v8::Local <v8::Object> buffer, Addon * addon, sqlite3 * db_handle, bool readonly)
772
+ #line 424 "./src/objects/database.lzz"
773
+ {
774
+ size_t length = node::Buffer::Length(buffer);
775
+ unsigned char* data = (unsigned char*)sqlite3_malloc64(length);
776
+ unsigned int flags = SQLITE_DESERIALIZE_FREEONCLOSE | SQLITE_DESERIALIZE_RESIZEABLE;
777
+
778
+ if (readonly) {
779
+ flags |= SQLITE_DESERIALIZE_READONLY;
780
+ }
781
+ if (length) {
782
+ if (!data) {
783
+ ThrowError("Out of memory");
784
+ return false;
785
+ }
786
+ memcpy(data, node::Buffer::Data(buffer), length);
787
+ }
788
+
789
+ int status = sqlite3_deserialize(db_handle, "main", data, length, length, flags);
790
+ if (status != SQLITE_OK) {
791
+ ThrowSqliteError(addon, status == SQLITE_ERROR ? "unable to deserialize database" : sqlite3_errstr(status), status);
792
+ return false;
793
+ }
794
+
795
+ return true;
796
+ }
797
+ #line 449 "./src/objects/database.lzz"
798
+ void Database::FreeSerialization (char * data, void * _)
799
+ #line 449 "./src/objects/database.lzz"
800
+ {
801
+ sqlite3_free(data);
802
+ }
803
+ #line 453 "./src/objects/database.lzz"
804
+ int const Database::MAX_BUFFER_SIZE;
805
+ #line 454 "./src/objects/database.lzz"
806
+ int const Database::MAX_STRING_SIZE;
807
+ #line 4 "./src/objects/statement.lzz"
808
+ v8::Local <v8 :: Function> Statement::Init (v8::Isolate * isolate, v8::Local <v8 :: External> data)
809
+ #line 4 "./src/objects/statement.lzz"
810
+ {
811
+ v8::Local<v8::FunctionTemplate> t = NewConstructorTemplate(isolate, data, JS_new, "Statement");
812
+ SetPrototypeMethod(isolate, data, t, "run", JS_run);
813
+ SetPrototypeMethod(isolate, data, t, "get", JS_get);
814
+ SetPrototypeMethod(isolate, data, t, "all", JS_all);
815
+ SetPrototypeMethod(isolate, data, t, "iterate", JS_iterate);
816
+ SetPrototypeMethod(isolate, data, t, "bind", JS_bind);
817
+ SetPrototypeMethod(isolate, data, t, "pluck", JS_pluck);
818
+ SetPrototypeMethod(isolate, data, t, "expand", JS_expand);
819
+ SetPrototypeMethod(isolate, data, t, "raw", JS_raw);
820
+ SetPrototypeMethod(isolate, data, t, "safeIntegers", JS_safeIntegers);
821
+ SetPrototypeMethod(isolate, data, t, "columns", JS_columns);
822
+ SetPrototypeGetter(isolate, data, t, "busy", JS_busy);
823
+ return t->GetFunction( isolate -> GetCurrentContext ( ) ).ToLocalChecked();
824
+ }
825
+ #line 26 "./src/objects/statement.lzz"
826
+ BindMap * Statement::GetBindMap (v8::Isolate * isolate)
827
+ #line 26 "./src/objects/statement.lzz"
828
+ {
829
+ if (has_bind_map) return &extras->bind_map;
830
+ BindMap* bind_map = &extras->bind_map;
831
+ int param_count = sqlite3_bind_parameter_count(handle);
832
+ for (int i = 1; i <= param_count; ++i) {
833
+ const char* name = sqlite3_bind_parameter_name(handle, i);
834
+ if (name != NULL) bind_map->Add(isolate, name + 1, i);
835
+ }
836
+ has_bind_map = true;
837
+ return bind_map;
838
+ }
839
+ #line 39 "./src/objects/statement.lzz"
840
+ void Statement::CloseHandles ()
841
+ #line 39 "./src/objects/statement.lzz"
842
+ {
843
+ if (alive) {
844
+ alive = false;
845
+ sqlite3_finalize(handle);
846
+ }
847
+ }
848
+ #line 46 "./src/objects/statement.lzz"
849
+ Statement::~ Statement ()
850
+ #line 46 "./src/objects/statement.lzz"
851
+ {
852
+ if (alive) db->RemoveStatement(this);
853
+ CloseHandles();
854
+ delete extras;
855
+ }
856
+ #line 56 "./src/objects/statement.lzz"
857
+ Statement::Extras::Extras (sqlite3_uint64 id)
858
+ #line 56 "./src/objects/statement.lzz"
859
+ : bind_map (0), id (id)
860
+ #line 56 "./src/objects/statement.lzz"
861
+ {}
862
+ #line 61 "./src/objects/statement.lzz"
863
+ Statement::Statement (Database * db, sqlite3_stmt * handle, sqlite3_uint64 id, bool returns_data)
864
+ #line 66 "./src/objects/statement.lzz"
865
+ : node::ObjectWrap (), db (db), handle (handle), extras (new Extras(id)), alive (true), locked (false), bound (false), has_bind_map (false), safe_ints (db->GetState()->safe_ints), mode (Data::FLAT), returns_data (returns_data)
866
+ #line 77 "./src/objects/statement.lzz"
867
+ {
868
+ assert(db != NULL);
869
+ assert(handle != NULL);
870
+ assert(db->GetState()->open);
871
+ assert(!db->GetState()->busy);
872
+ db->AddStatement(this);
873
+ }
874
+ #line 85 "./src/objects/statement.lzz"
875
+ void Statement::JS_new (v8::FunctionCallbackInfo <v8 :: Value> const & info)
876
+ #line 85 "./src/objects/statement.lzz"
877
+ {
878
+ Addon * addon = static_cast < Addon * > ( info . Data ( ) . As < v8 :: External > ( ) -> Value ( ) ) ;
879
+ if (!addon->privileged_info) {
880
+ return ThrowTypeError("Statements can only be constructed by the db.prepare() method");
881
+ }
882
+ assert(info.IsConstructCall());
883
+ Database* db = node :: ObjectWrap :: Unwrap <Database>(addon->privileged_info->This());
884
+ if ( ! db -> GetState ( ) -> open ) return ThrowTypeError ( "The database connection is not open" ) ;
885
+ if ( db -> GetState ( ) -> busy ) return ThrowTypeError ( "This database connection is busy executing a query" ) ;
886
+
887
+ v8::Local<v8::String> source = (*addon->privileged_info)[0].As<v8::String>();
888
+ v8::Local<v8::Object> database = (*addon->privileged_info)[1].As<v8::Object>();
889
+ bool pragmaMode = (*addon->privileged_info)[2].As<v8::Boolean>()->Value();
890
+ int flags = SQLITE_PREPARE_PERSISTENT;
891
+
892
+ if (pragmaMode) {
893
+ if ( ! db -> GetState ( ) -> unsafe_mode ) { if ( db -> GetState ( ) -> iterators ) return ThrowTypeError ( "This database connection is busy executing a query" ) ; } ( ( void ) 0 ) ;
894
+ flags = 0;
895
+ }
896
+
897
+ v8 :: Isolate * isolate = info . GetIsolate ( ) ;
898
+ v8::String::Utf8Value utf8(isolate, source);
899
+ sqlite3_stmt* handle;
900
+ const char* tail;
901
+
902
+ if (sqlite3_prepare_v3(db->GetHandle(), *utf8, utf8.length() + 1, flags, &handle, &tail) != SQLITE_OK) {
903
+ return db->ThrowDatabaseError();
904
+ }
905
+ if (handle == NULL) {
906
+ return ThrowRangeError("The supplied SQL string contains no statements");
907
+ }
908
+
909
+ for (char c; (c = *tail); ) {
910
+ if (IS_SKIPPED(c)) {
911
+ ++tail;
912
+ continue;
913
+ }
914
+ if (c == '/' && tail[1] == '*') {
915
+ tail += 2;
916
+ for (char c; (c = *tail); ++tail) {
917
+ if (c == '*' && tail[1] == '/') {
918
+ tail += 2;
919
+ break;
920
+ }
921
+ }
922
+ } else if (c == '-' && tail[1] == '-') {
923
+ tail += 2;
924
+ for (char c; (c = *tail); ++tail) {
925
+ if (c == '\n') {
926
+ ++tail;
927
+ break;
928
+ }
929
+ }
930
+ } else {
931
+ sqlite3_finalize(handle);
932
+ return ThrowRangeError("The supplied SQL string contains more than one statement");
933
+ }
934
+ }
935
+
936
+ v8 :: Local < v8 :: Context > ctx = isolate -> GetCurrentContext ( ) ;
937
+ bool returns_data = sqlite3_column_count(handle) >= 1 || pragmaMode;
938
+ Statement* stmt = new Statement(db, handle, addon->NextId(), returns_data);
939
+ stmt->Wrap(info.This());
940
+ SetFrozen(isolate, ctx, info.This(), addon->cs.reader, v8::Boolean::New(isolate, returns_data));
941
+ SetFrozen(isolate, ctx, info.This(), addon->cs.readonly, v8::Boolean::New(isolate, sqlite3_stmt_readonly(handle) != 0));
942
+ SetFrozen(isolate, ctx, info.This(), addon->cs.source, source);
943
+ SetFrozen(isolate, ctx, info.This(), addon->cs.database, database);
944
+
945
+ info.GetReturnValue().Set(info.This());
946
+ }
947
+ #line 156 "./src/objects/statement.lzz"
948
+ void Statement::JS_run (v8::FunctionCallbackInfo <v8 :: Value> const & info)
949
+ #line 156 "./src/objects/statement.lzz"
950
+ {
951
+ Statement * stmt = node :: ObjectWrap :: Unwrap < Statement > ( info . This ( ) ) ; ( ( void ) 0 ) ; sqlite3_stmt * handle = stmt -> handle ; Database * db = stmt -> db ; if ( ! db -> GetState ( ) -> open ) return ThrowTypeError ( "The database connection is not open" ) ; if ( db -> GetState ( ) -> busy ) return ThrowTypeError ( "This database connection is busy executing a query" ) ; if ( stmt -> locked ) return ThrowTypeError ( "This statement is busy executing a query" ) ; if ( ! db -> GetState ( ) -> unsafe_mode ) { if ( db -> GetState ( ) -> iterators ) return ThrowTypeError ( "This database connection is busy executing a query" ) ; } ( ( void ) 0 ) ; const bool bound = stmt -> bound ; if ( ! bound ) { Binder binder ( handle ) ; if ( ! binder . Bind ( info , info . Length ( ) , stmt ) ) { sqlite3_clear_bindings ( handle ) ; return ; } ( ( void ) 0 ) ; } else if ( info . Length ( ) > 0 ) { return ThrowTypeError ( "This statement already has bound parameters" ) ; } ( ( void ) 0 ) ; db -> GetState ( ) -> busy = true ; v8 :: Isolate * isolate = info . GetIsolate ( ) ; if ( db -> Log ( isolate , handle ) ) { db -> GetState ( ) -> busy = false ; db -> ThrowDatabaseError ( ) ; if ( ! bound ) { sqlite3_clear_bindings ( handle ) ; } return ; } ( ( void ) 0 ) ;
952
+ sqlite3* db_handle = db->GetHandle();
953
+ int total_changes_before = sqlite3_total_changes(db_handle);
954
+
955
+ sqlite3_step(handle);
956
+ if (sqlite3_reset(handle) == SQLITE_OK) {
957
+ int changes = sqlite3_total_changes(db_handle) == total_changes_before ? 0 : sqlite3_changes(db_handle);
958
+ sqlite3_int64 id = sqlite3_last_insert_rowid(db_handle);
959
+ Addon* addon = db->GetAddon();
960
+ v8 :: Local < v8 :: Context > ctx = isolate -> GetCurrentContext ( ) ;
961
+ v8::Local<v8::Object> result = v8::Object::New(isolate);
962
+ result->Set(ctx, addon->cs.changes.Get(isolate), v8::Int32::New(isolate, changes)).FromJust();
963
+ result->Set(ctx, addon->cs.lastInsertRowid.Get(isolate),
964
+ stmt->safe_ints
965
+ ? v8::BigInt::New(isolate, id).As<v8::Value>()
966
+ : v8::Number::New(isolate, (double)id).As<v8::Value>()
967
+ ).FromJust();
968
+ db -> GetState ( ) -> busy = false ; info . GetReturnValue ( ) . Set ( result ) ; if ( ! bound ) { sqlite3_clear_bindings ( handle ) ; } return ;
969
+ }
970
+ db -> GetState ( ) -> busy = false ; db -> ThrowDatabaseError ( ) ; if ( ! bound ) { sqlite3_clear_bindings ( handle ) ; } return ;
971
+ }
972
+ #line 179 "./src/objects/statement.lzz"
973
+ void Statement::JS_get (v8::FunctionCallbackInfo <v8 :: Value> const & info)
974
+ #line 179 "./src/objects/statement.lzz"
975
+ {
976
+ Statement * stmt = node :: ObjectWrap :: Unwrap < Statement > ( info . This ( ) ) ; if ( ! stmt -> returns_data ) return ThrowTypeError ( "This statement does not return data. Use run() instead" ) ; sqlite3_stmt * handle = stmt -> handle ; Database * db = stmt -> db ; if ( ! db -> GetState ( ) -> open ) return ThrowTypeError ( "The database connection is not open" ) ; if ( db -> GetState ( ) -> busy ) return ThrowTypeError ( "This database connection is busy executing a query" ) ; if ( stmt -> locked ) return ThrowTypeError ( "This statement is busy executing a query" ) ; const bool bound = stmt -> bound ; if ( ! bound ) { Binder binder ( handle ) ; if ( ! binder . Bind ( info , info . Length ( ) , stmt ) ) { sqlite3_clear_bindings ( handle ) ; return ; } ( ( void ) 0 ) ; } else if ( info . Length ( ) > 0 ) { return ThrowTypeError ( "This statement already has bound parameters" ) ; } ( ( void ) 0 ) ; db -> GetState ( ) -> busy = true ; v8 :: Isolate * isolate = info . GetIsolate ( ) ; if ( db -> Log ( isolate , handle ) ) { db -> GetState ( ) -> busy = false ; db -> ThrowDatabaseError ( ) ; if ( ! bound ) { sqlite3_clear_bindings ( handle ) ; } return ; } ( ( void ) 0 ) ;
977
+ int status = sqlite3_step(handle);
978
+ if (status == SQLITE_ROW) {
979
+ v8::Local<v8::Value> result = Data::GetRowJS(isolate, isolate -> GetCurrentContext ( ) , handle, stmt->safe_ints, stmt->mode);
980
+ sqlite3_reset(handle);
981
+ db -> GetState ( ) -> busy = false ; info . GetReturnValue ( ) . Set ( result ) ; if ( ! bound ) { sqlite3_clear_bindings ( handle ) ; } return ;
982
+ } else if (status == SQLITE_DONE) {
983
+ sqlite3_reset(handle);
984
+ db -> GetState ( ) -> busy = false ; info . GetReturnValue ( ) . Set ( v8 :: Undefined ( isolate ) ) ; if ( ! bound ) { sqlite3_clear_bindings ( handle ) ; } return ;
985
+ }
986
+ sqlite3_reset(handle);
987
+ db -> GetState ( ) -> busy = false ; db -> ThrowDatabaseError ( ) ; if ( ! bound ) { sqlite3_clear_bindings ( handle ) ; } return ;
988
+ }
989
+ #line 194 "./src/objects/statement.lzz"
990
+ void Statement::JS_all (v8::FunctionCallbackInfo <v8 :: Value> const & info)
991
+ #line 194 "./src/objects/statement.lzz"
992
+ {
993
+ Statement * stmt = node :: ObjectWrap :: Unwrap < Statement > ( info . This ( ) ) ; if ( ! stmt -> returns_data ) return ThrowTypeError ( "This statement does not return data. Use run() instead" ) ; sqlite3_stmt * handle = stmt -> handle ; Database * db = stmt -> db ; if ( ! db -> GetState ( ) -> open ) return ThrowTypeError ( "The database connection is not open" ) ; if ( db -> GetState ( ) -> busy ) return ThrowTypeError ( "This database connection is busy executing a query" ) ; if ( stmt -> locked ) return ThrowTypeError ( "This statement is busy executing a query" ) ; const bool bound = stmt -> bound ; if ( ! bound ) { Binder binder ( handle ) ; if ( ! binder . Bind ( info , info . Length ( ) , stmt ) ) { sqlite3_clear_bindings ( handle ) ; return ; } ( ( void ) 0 ) ; } else if ( info . Length ( ) > 0 ) { return ThrowTypeError ( "This statement already has bound parameters" ) ; } ( ( void ) 0 ) ; db -> GetState ( ) -> busy = true ; v8 :: Isolate * isolate = info . GetIsolate ( ) ; if ( db -> Log ( isolate , handle ) ) { db -> GetState ( ) -> busy = false ; db -> ThrowDatabaseError ( ) ; if ( ! bound ) { sqlite3_clear_bindings ( handle ) ; } return ; } ( ( void ) 0 ) ;
994
+ v8 :: Local < v8 :: Context > ctx = isolate -> GetCurrentContext ( ) ;
995
+ v8::Local<v8::Array> result = v8::Array::New(isolate, 0);
996
+ uint32_t row_count = 0;
997
+ const bool safe_ints = stmt->safe_ints;
998
+ const char mode = stmt->mode;
999
+ bool js_error = false;
1000
+
1001
+ while (sqlite3_step(handle) == SQLITE_ROW) {
1002
+ if (row_count == 0xffffffff) { ThrowRangeError("Array overflow (too many rows returned)"); js_error = true; break; }
1003
+ result->Set(ctx, row_count++, Data::GetRowJS(isolate, ctx, handle, safe_ints, mode)).FromJust();
1004
+ }
1005
+
1006
+ if (sqlite3_reset(handle) == SQLITE_OK && !js_error) {
1007
+ db -> GetState ( ) -> busy = false ; info . GetReturnValue ( ) . Set ( result ) ; if ( ! bound ) { sqlite3_clear_bindings ( handle ) ; } return ;
1008
+ }
1009
+ if (js_error) db->GetState()->was_js_error = true;
1010
+ db -> GetState ( ) -> busy = false ; db -> ThrowDatabaseError ( ) ; if ( ! bound ) { sqlite3_clear_bindings ( handle ) ; } return ;
1011
+ }
1012
+ #line 215 "./src/objects/statement.lzz"
1013
+ void Statement::JS_iterate (v8::FunctionCallbackInfo <v8 :: Value> const & info)
1014
+ #line 215 "./src/objects/statement.lzz"
1015
+ {
1016
+ Addon * addon = static_cast < Addon * > ( info . Data ( ) . As < v8 :: External > ( ) -> Value ( ) ) ;
1017
+ v8 :: Isolate * isolate = info . GetIsolate ( ) ;
1018
+ v8::Local<v8::Function> c = addon->StatementIterator.Get(isolate);
1019
+ addon->privileged_info = &info;
1020
+ v8::MaybeLocal<v8::Object> maybeIterator = c->NewInstance( isolate -> GetCurrentContext ( ) , 0, NULL);
1021
+ addon->privileged_info = NULL;
1022
+ if (!maybeIterator.IsEmpty()) info.GetReturnValue().Set(maybeIterator.ToLocalChecked());
1023
+ }
1024
+ #line 225 "./src/objects/statement.lzz"
1025
+ void Statement::JS_bind (v8::FunctionCallbackInfo <v8 :: Value> const & info)
1026
+ #line 225 "./src/objects/statement.lzz"
1027
+ {
1028
+ Statement* stmt = node :: ObjectWrap :: Unwrap <Statement>(info.This());
1029
+ if (stmt->bound) return ThrowTypeError("The bind() method can only be invoked once per statement object");
1030
+ if ( ! stmt -> db -> GetState ( ) -> open ) return ThrowTypeError ( "The database connection is not open" ) ;
1031
+ if ( stmt -> db -> GetState ( ) -> busy ) return ThrowTypeError ( "This database connection is busy executing a query" ) ;
1032
+ if ( stmt -> locked ) return ThrowTypeError ( "This statement is busy executing a query" ) ;
1033
+ Binder binder ( stmt -> handle ) ; if ( ! binder . Bind ( info , info . Length ( ) , stmt ) ) { sqlite3_clear_bindings ( stmt -> handle ) ; return ; } ( ( void ) 0 ) ;
1034
+ stmt->bound = true;
1035
+ info.GetReturnValue().Set(info.This());
1036
+ }
1037
+ #line 236 "./src/objects/statement.lzz"
1038
+ void Statement::JS_pluck (v8::FunctionCallbackInfo <v8 :: Value> const & info)
1039
+ #line 236 "./src/objects/statement.lzz"
1040
+ {
1041
+ Statement* stmt = node :: ObjectWrap :: Unwrap <Statement>(info.This());
1042
+ if (!stmt->returns_data) return ThrowTypeError("The pluck() method is only for statements that return data");
1043
+ if ( stmt -> db -> GetState ( ) -> busy ) return ThrowTypeError ( "This database connection is busy executing a query" ) ;
1044
+ if ( stmt -> locked ) return ThrowTypeError ( "This statement is busy executing a query" ) ;
1045
+ bool use = true;
1046
+ if (info.Length() != 0) { if ( info . Length ( ) <= ( 0 ) || ! info [ 0 ] -> IsBoolean ( ) ) return ThrowTypeError ( "Expected " "first" " argument to be " "a boolean" ) ; use = ( info [ 0 ] . As < v8 :: Boolean > ( ) ) -> Value ( ) ; }
1047
+ stmt->mode = use ? Data::PLUCK : stmt->mode == Data::PLUCK ? Data::FLAT : stmt->mode;
1048
+ info.GetReturnValue().Set(info.This());
1049
+ }
1050
+ #line 247 "./src/objects/statement.lzz"
1051
+ void Statement::JS_expand (v8::FunctionCallbackInfo <v8 :: Value> const & info)
1052
+ #line 247 "./src/objects/statement.lzz"
1053
+ {
1054
+ Statement* stmt = node :: ObjectWrap :: Unwrap <Statement>(info.This());
1055
+ if (!stmt->returns_data) return ThrowTypeError("The expand() method is only for statements that return data");
1056
+ if ( stmt -> db -> GetState ( ) -> busy ) return ThrowTypeError ( "This database connection is busy executing a query" ) ;
1057
+ if ( stmt -> locked ) return ThrowTypeError ( "This statement is busy executing a query" ) ;
1058
+ bool use = true;
1059
+ if (info.Length() != 0) { if ( info . Length ( ) <= ( 0 ) || ! info [ 0 ] -> IsBoolean ( ) ) return ThrowTypeError ( "Expected " "first" " argument to be " "a boolean" ) ; use = ( info [ 0 ] . As < v8 :: Boolean > ( ) ) -> Value ( ) ; }
1060
+ stmt->mode = use ? Data::EXPAND : stmt->mode == Data::EXPAND ? Data::FLAT : stmt->mode;
1061
+ info.GetReturnValue().Set(info.This());
1062
+ }
1063
+ #line 258 "./src/objects/statement.lzz"
1064
+ void Statement::JS_raw (v8::FunctionCallbackInfo <v8 :: Value> const & info)
1065
+ #line 258 "./src/objects/statement.lzz"
1066
+ {
1067
+ Statement* stmt = node :: ObjectWrap :: Unwrap <Statement>(info.This());
1068
+ if (!stmt->returns_data) return ThrowTypeError("The raw() method is only for statements that return data");
1069
+ if ( stmt -> db -> GetState ( ) -> busy ) return ThrowTypeError ( "This database connection is busy executing a query" ) ;
1070
+ if ( stmt -> locked ) return ThrowTypeError ( "This statement is busy executing a query" ) ;
1071
+ bool use = true;
1072
+ if (info.Length() != 0) { if ( info . Length ( ) <= ( 0 ) || ! info [ 0 ] -> IsBoolean ( ) ) return ThrowTypeError ( "Expected " "first" " argument to be " "a boolean" ) ; use = ( info [ 0 ] . As < v8 :: Boolean > ( ) ) -> Value ( ) ; }
1073
+ stmt->mode = use ? Data::RAW : stmt->mode == Data::RAW ? Data::FLAT : stmt->mode;
1074
+ info.GetReturnValue().Set(info.This());
1075
+ }
1076
+ #line 269 "./src/objects/statement.lzz"
1077
+ void Statement::JS_safeIntegers (v8::FunctionCallbackInfo <v8 :: Value> const & info)
1078
+ #line 269 "./src/objects/statement.lzz"
1079
+ {
1080
+ Statement* stmt = node :: ObjectWrap :: Unwrap <Statement>(info.This());
1081
+ if ( stmt -> db -> GetState ( ) -> busy ) return ThrowTypeError ( "This database connection is busy executing a query" ) ;
1082
+ if ( stmt -> locked ) return ThrowTypeError ( "This statement is busy executing a query" ) ;
1083
+ if (info.Length() == 0) stmt->safe_ints = true;
1084
+ else { if ( info . Length ( ) <= ( 0 ) || ! info [ 0 ] -> IsBoolean ( ) ) return ThrowTypeError ( "Expected " "first" " argument to be " "a boolean" ) ; stmt -> safe_ints = ( info [ 0 ] . As < v8 :: Boolean > ( ) ) -> Value ( ) ; }
1085
+ info.GetReturnValue().Set(info.This());
1086
+ }
1087
+ #line 278 "./src/objects/statement.lzz"
1088
+ void Statement::JS_columns (v8::FunctionCallbackInfo <v8 :: Value> const & info)
1089
+ #line 278 "./src/objects/statement.lzz"
1090
+ {
1091
+ Statement* stmt = node :: ObjectWrap :: Unwrap <Statement>(info.This());
1092
+ if (!stmt->returns_data) return ThrowTypeError("The columns() method is only for statements that return data");
1093
+ if ( ! stmt -> db -> GetState ( ) -> open ) return ThrowTypeError ( "The database connection is not open" ) ;
1094
+ if ( stmt -> db -> GetState ( ) -> busy ) return ThrowTypeError ( "This database connection is busy executing a query" ) ;
1095
+ Addon* addon = stmt->db->GetAddon();
1096
+ v8 :: Isolate * isolate = info . GetIsolate ( ) ;
1097
+ v8 :: Local < v8 :: Context > ctx = isolate -> GetCurrentContext ( ) ;
1098
+
1099
+ int column_count = sqlite3_column_count(stmt->handle);
1100
+ v8::Local<v8::Array> columns = v8::Array::New(isolate);
1101
+
1102
+ v8::Local<v8::String> name = addon->cs.name.Get(isolate);
1103
+ v8::Local<v8::String> columnName = addon->cs.column.Get(isolate);
1104
+ v8::Local<v8::String> tableName = addon->cs.table.Get(isolate);
1105
+ v8::Local<v8::String> databaseName = addon->cs.database.Get(isolate);
1106
+ v8::Local<v8::String> typeName = addon->cs.type.Get(isolate);
1107
+
1108
+ for (int i = 0; i < column_count; ++i) {
1109
+ v8::Local<v8::Object> column = v8::Object::New(isolate);
1110
+
1111
+ column->Set(ctx, name,
1112
+ InternalizedFromUtf8OrNull(isolate, sqlite3_column_name(stmt->handle, i), -1)
1113
+ ).FromJust();
1114
+ column->Set(ctx, columnName,
1115
+ InternalizedFromUtf8OrNull(isolate, sqlite3_column_origin_name(stmt->handle, i), -1)
1116
+ ).FromJust();
1117
+ column->Set(ctx, tableName,
1118
+ InternalizedFromUtf8OrNull(isolate, sqlite3_column_table_name(stmt->handle, i), -1)
1119
+ ).FromJust();
1120
+ column->Set(ctx, databaseName,
1121
+ InternalizedFromUtf8OrNull(isolate, sqlite3_column_database_name(stmt->handle, i), -1)
1122
+ ).FromJust();
1123
+ column->Set(ctx, typeName,
1124
+ InternalizedFromUtf8OrNull(isolate, sqlite3_column_decltype(stmt->handle, i), -1)
1125
+ ).FromJust();
1126
+
1127
+ columns->Set(ctx, i, column).FromJust();
1128
+ }
1129
+
1130
+ info.GetReturnValue().Set(columns);
1131
+ }
1132
+ #line 321 "./src/objects/statement.lzz"
1133
+ void Statement::JS_busy (v8::Local <v8 :: Name> _, v8::PropertyCallbackInfo <v8 :: Value> const & info)
1134
+ #line 321 "./src/objects/statement.lzz"
1135
+ {
1136
+ Statement* stmt = node :: ObjectWrap :: Unwrap <Statement>(info.This());
1137
+ info.GetReturnValue().Set(stmt->alive && stmt->locked);
1138
+ }
1139
+ #line 4 "./src/objects/statement-iterator.lzz"
1140
+ v8::Local <v8 :: Function> StatementIterator::Init (v8::Isolate * isolate, v8::Local <v8 :: External> data)
1141
+ #line 4 "./src/objects/statement-iterator.lzz"
1142
+ {
1143
+ v8::Local<v8::FunctionTemplate> t = NewConstructorTemplate(isolate, data, JS_new, "StatementIterator");
1144
+ SetPrototypeMethod(isolate, data, t, "next", JS_next);
1145
+ SetPrototypeMethod(isolate, data, t, "return", JS_return);
1146
+ SetPrototypeSymbolMethod(isolate, data, t, v8::Symbol::GetIterator(isolate), JS_symbolIterator);
1147
+ return t->GetFunction( isolate -> GetCurrentContext ( ) ).ToLocalChecked();
1148
+ }
1149
+ #line 15 "./src/objects/statement-iterator.lzz"
1150
+ StatementIterator::~ StatementIterator ()
1151
+ #line 15 "./src/objects/statement-iterator.lzz"
1152
+ {}
1153
+ #line 19 "./src/objects/statement-iterator.lzz"
1154
+ StatementIterator::StatementIterator (Statement * stmt, bool bound)
1155
+ #line 19 "./src/objects/statement-iterator.lzz"
1156
+ : node::ObjectWrap (), stmt (stmt), handle (stmt->handle), db_state (stmt->db->GetState()), bound (bound), safe_ints (stmt->safe_ints), mode (stmt->mode), alive (true), logged (!db_state->has_logger)
1157
+ #line 27 "./src/objects/statement-iterator.lzz"
1158
+ {
1159
+ assert(stmt != NULL);
1160
+ assert(handle != NULL);
1161
+ assert(stmt->bound == bound);
1162
+ assert(stmt->alive == true);
1163
+ assert(stmt->locked == false);
1164
+ assert(db_state->iterators < USHRT_MAX);
1165
+ stmt->locked = true;
1166
+ db_state->iterators += 1;
1167
+ }
1168
+ #line 38 "./src/objects/statement-iterator.lzz"
1169
+ void StatementIterator::JS_new (v8::FunctionCallbackInfo <v8 :: Value> const & info)
1170
+ #line 38 "./src/objects/statement-iterator.lzz"
1171
+ {
1172
+ Addon * addon = static_cast < Addon * > ( info . Data ( ) . As < v8 :: External > ( ) -> Value ( ) ) ;
1173
+ if (!addon->privileged_info) return ThrowTypeError("Disabled constructor");
1174
+ assert(info.IsConstructCall());
1175
+
1176
+ StatementIterator* iter;
1177
+ {
1178
+ const v8 :: FunctionCallbackInfo < v8 :: Value > & info = *addon->privileged_info;
1179
+ Statement * stmt = node :: ObjectWrap :: Unwrap < Statement > ( info . This ( ) ) ; if ( ! stmt -> returns_data ) return ThrowTypeError ( "This statement does not return data. Use run() instead" ) ; sqlite3_stmt * handle = stmt -> handle ; Database * db = stmt -> db ; if ( ! db -> GetState ( ) -> open ) return ThrowTypeError ( "The database connection is not open" ) ; if ( db -> GetState ( ) -> busy ) return ThrowTypeError ( "This database connection is busy executing a query" ) ; if ( stmt -> locked ) return ThrowTypeError ( "This statement is busy executing a query" ) ; if ( db -> GetState ( ) -> iterators == USHRT_MAX ) return ThrowRangeError ( "Too many active database iterators" ) ; const bool bound = stmt -> bound ; if ( ! bound ) { Binder binder ( handle ) ; if ( ! binder . Bind ( info , info . Length ( ) , stmt ) ) { sqlite3_clear_bindings ( handle ) ; return ; } ( ( void ) 0 ) ; } else if ( info . Length ( ) > 0 ) { return ThrowTypeError ( "This statement already has bound parameters" ) ; } ( ( void ) 0 ) ;
1180
+ iter = new StatementIterator(stmt, bound);
1181
+ }
1182
+ v8 :: Isolate * isolate = info . GetIsolate ( ) ;
1183
+ v8 :: Local < v8 :: Context > ctx = isolate -> GetCurrentContext ( ) ;
1184
+ iter->Wrap(info.This());
1185
+ SetFrozen(isolate, ctx, info.This(), addon->cs.statement, addon->privileged_info->This());
1186
+
1187
+ info.GetReturnValue().Set(info.This());
1188
+ }
1189
+ #line 57 "./src/objects/statement-iterator.lzz"
1190
+ void StatementIterator::JS_next (v8::FunctionCallbackInfo <v8 :: Value> const & info)
1191
+ #line 57 "./src/objects/statement-iterator.lzz"
1192
+ {
1193
+ StatementIterator* iter = node :: ObjectWrap :: Unwrap <StatementIterator>(info.This());
1194
+ if ( iter -> db_state -> busy ) return ThrowTypeError ( "This database connection is busy executing a query" ) ;
1195
+ if (iter->alive) iter->Next(info);
1196
+ else info.GetReturnValue().Set(DoneRecord( info . GetIsolate ( ) , iter->db_state->addon));
1197
+ }
1198
+ #line 64 "./src/objects/statement-iterator.lzz"
1199
+ void StatementIterator::JS_return (v8::FunctionCallbackInfo <v8 :: Value> const & info)
1200
+ #line 64 "./src/objects/statement-iterator.lzz"
1201
+ {
1202
+ StatementIterator* iter = node :: ObjectWrap :: Unwrap <StatementIterator>(info.This());
1203
+ if ( iter -> db_state -> busy ) return ThrowTypeError ( "This database connection is busy executing a query" ) ;
1204
+ if (iter->alive) iter->Return(info);
1205
+ else info.GetReturnValue().Set(DoneRecord( info . GetIsolate ( ) , iter->db_state->addon));
1206
+ }
1207
+ #line 71 "./src/objects/statement-iterator.lzz"
1208
+ void StatementIterator::JS_symbolIterator (v8::FunctionCallbackInfo <v8 :: Value> const & info)
1209
+ #line 71 "./src/objects/statement-iterator.lzz"
1210
+ {
1211
+ info.GetReturnValue().Set(info.This());
1212
+ }
1213
+ #line 75 "./src/objects/statement-iterator.lzz"
1214
+ void StatementIterator::Next (v8::FunctionCallbackInfo <v8 :: Value> const & info)
1215
+ #line 75 "./src/objects/statement-iterator.lzz"
1216
+ {
1217
+ assert(alive == true);
1218
+ db_state->busy = true;
1219
+ if (!logged) {
1220
+ logged = true;
1221
+ if (stmt->db->Log( info . GetIsolate ( ) , handle)) {
1222
+ db_state->busy = false;
1223
+ Throw();
1224
+ return;
1225
+ }
1226
+ }
1227
+ int status = sqlite3_step(handle);
1228
+ db_state->busy = false;
1229
+ if (status == SQLITE_ROW) {
1230
+ v8 :: Isolate * isolate = info . GetIsolate ( ) ;
1231
+ v8 :: Local < v8 :: Context > ctx = isolate -> GetCurrentContext ( ) ;
1232
+ info.GetReturnValue().Set(
1233
+ NewRecord(isolate, ctx, Data::GetRowJS(isolate, ctx, handle, safe_ints, mode), db_state->addon, false)
1234
+ );
1235
+ } else {
1236
+ if (status == SQLITE_DONE) Return(info);
1237
+ else Throw();
1238
+ }
1239
+ }
1240
+ #line 100 "./src/objects/statement-iterator.lzz"
1241
+ void StatementIterator::Return (v8::FunctionCallbackInfo <v8 :: Value> const & info)
1242
+ #line 100 "./src/objects/statement-iterator.lzz"
1243
+ {
1244
+ Cleanup();
1245
+ info . GetReturnValue ( ) . Set ( DoneRecord ( info . GetIsolate ( ) , db_state -> addon ) ) ; if ( ! bound ) { sqlite3_clear_bindings ( handle ) ; } return ;
1246
+ }
1247
+ #line 105 "./src/objects/statement-iterator.lzz"
1248
+ void StatementIterator::Throw ()
1249
+ #line 105 "./src/objects/statement-iterator.lzz"
1250
+ {
1251
+ Cleanup();
1252
+ Database* db = stmt->db;
1253
+ db -> ThrowDatabaseError ( ) ; if ( ! bound ) { sqlite3_clear_bindings ( handle ) ; } return ;
1254
+ }
1255
+ #line 111 "./src/objects/statement-iterator.lzz"
1256
+ void StatementIterator::Cleanup ()
1257
+ #line 111 "./src/objects/statement-iterator.lzz"
1258
+ {
1259
+ assert(alive == true);
1260
+ alive = false;
1261
+ stmt->locked = false;
1262
+ db_state->iterators -= 1;
1263
+ sqlite3_reset(handle);
1264
+ }
1265
+ #line 4 "./src/objects/backup.lzz"
1266
+ v8::Local <v8 :: Function> Backup::Init (v8::Isolate * isolate, v8::Local <v8 :: External> data)
1267
+ #line 4 "./src/objects/backup.lzz"
1268
+ {
1269
+ v8::Local<v8::FunctionTemplate> t = NewConstructorTemplate(isolate, data, JS_new, "Backup");
1270
+ SetPrototypeMethod(isolate, data, t, "transfer", JS_transfer);
1271
+ SetPrototypeMethod(isolate, data, t, "close", JS_close);
1272
+ return t->GetFunction( isolate -> GetCurrentContext ( ) ).ToLocalChecked();
1273
+ }
1274
+ #line 17 "./src/objects/backup.lzz"
1275
+ void Backup::CloseHandles ()
1276
+ #line 17 "./src/objects/backup.lzz"
1277
+ {
1278
+ if (alive) {
1279
+ alive = false;
1280
+ std::string filename(sqlite3_db_filename(dest_handle, "main"));
1281
+ sqlite3_backup_finish(backup_handle);
1282
+ int status = sqlite3_close(dest_handle);
1283
+ assert(status == SQLITE_OK); ((void)status);
1284
+ if (unlink) remove(filename.c_str());
1285
+ }
1286
+ }
1287
+ #line 28 "./src/objects/backup.lzz"
1288
+ Backup::~ Backup ()
1289
+ #line 28 "./src/objects/backup.lzz"
1290
+ {
1291
+ if (alive) db->RemoveBackup(this);
1292
+ CloseHandles();
1293
+ }
1294
+ #line 35 "./src/objects/backup.lzz"
1295
+ Backup::Backup (Database * db, sqlite3 * dest_handle, sqlite3_backup * backup_handle, sqlite3_uint64 id, bool unlink)
1296
+ #line 41 "./src/objects/backup.lzz"
1297
+ : node::ObjectWrap (), db (db), dest_handle (dest_handle), backup_handle (backup_handle), id (id), alive (true), unlink (unlink)
1298
+ #line 48 "./src/objects/backup.lzz"
1299
+ {
1300
+ assert(db != NULL);
1301
+ assert(dest_handle != NULL);
1302
+ assert(backup_handle != NULL);
1303
+ db->AddBackup(this);
1304
+ }
1305
+ #line 55 "./src/objects/backup.lzz"
1306
+ void Backup::JS_new (v8::FunctionCallbackInfo <v8 :: Value> const & info)
1307
+ #line 55 "./src/objects/backup.lzz"
1308
+ {
1309
+ Addon * addon = static_cast < Addon * > ( info . Data ( ) . As < v8 :: External > ( ) -> Value ( ) ) ;
1310
+ if (!addon->privileged_info) return ThrowTypeError("Disabled constructor");
1311
+ assert(info.IsConstructCall());
1312
+ Database* db = node :: ObjectWrap :: Unwrap <Database>(addon->privileged_info->This());
1313
+ if ( ! db -> GetState ( ) -> open ) return ThrowTypeError ( "The database connection is not open" ) ;
1314
+ if ( db -> GetState ( ) -> busy ) return ThrowTypeError ( "This database connection is busy executing a query" ) ;
1315
+
1316
+ v8::Local<v8::Object> database = (*addon->privileged_info)[0].As<v8::Object>();
1317
+ v8::Local<v8::String> attachedName = (*addon->privileged_info)[1].As<v8::String>();
1318
+ v8::Local<v8::String> destFile = (*addon->privileged_info)[2].As<v8::String>();
1319
+ bool unlink = (*addon->privileged_info)[3].As<v8::Boolean>()->Value();
1320
+
1321
+ v8 :: Isolate * isolate = info . GetIsolate ( ) ;
1322
+ sqlite3* dest_handle;
1323
+ v8::String::Utf8Value dest_file(isolate, destFile);
1324
+ v8::String::Utf8Value attached_name(isolate, attachedName);
1325
+ int mask = (SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE);
1326
+
1327
+ if (sqlite3_open_v2(*dest_file, &dest_handle, mask, NULL) != SQLITE_OK) {
1328
+ Database::ThrowSqliteError(addon, dest_handle);
1329
+ int status = sqlite3_close(dest_handle);
1330
+ assert(status == SQLITE_OK); ((void)status);
1331
+ return;
1332
+ }
1333
+
1334
+ sqlite3_extended_result_codes(dest_handle, 1);
1335
+ sqlite3_limit(dest_handle, SQLITE_LIMIT_LENGTH, INT_MAX);
1336
+ sqlite3_backup* backup_handle = sqlite3_backup_init(dest_handle, "main", db->GetHandle(), *attached_name);
1337
+ if (backup_handle == NULL) {
1338
+ Database::ThrowSqliteError(addon, dest_handle);
1339
+ int status = sqlite3_close(dest_handle);
1340
+ assert(status == SQLITE_OK); ((void)status);
1341
+ return;
1342
+ }
1343
+
1344
+ Backup* backup = new Backup(db, dest_handle, backup_handle, addon->NextId(), unlink);
1345
+ backup->Wrap(info.This());
1346
+ SetFrozen(isolate, isolate -> GetCurrentContext ( ) , info.This(), addon->cs.database, database);
1347
+
1348
+ info.GetReturnValue().Set(info.This());
1349
+ }
1350
+ #line 98 "./src/objects/backup.lzz"
1351
+ void Backup::JS_transfer (v8::FunctionCallbackInfo <v8 :: Value> const & info)
1352
+ #line 98 "./src/objects/backup.lzz"
1353
+ {
1354
+ Backup* backup = node :: ObjectWrap :: Unwrap <Backup>(info.This());
1355
+ if ( info . Length ( ) <= ( 0 ) || ! info [ 0 ] -> IsInt32 ( ) ) return ThrowTypeError ( "Expected " "first" " argument to be " "a 32-bit signed integer" ) ; int pages = ( info [ 0 ] . As < v8 :: Int32 > ( ) ) -> Value ( ) ;
1356
+ if ( ! backup -> db -> GetState ( ) -> open ) return ThrowTypeError ( "The database connection is not open" ) ;
1357
+ assert(backup->db->GetState()->busy == false);
1358
+ assert(backup->alive == true);
1359
+
1360
+ sqlite3_backup* backup_handle = backup->backup_handle;
1361
+ int status = sqlite3_backup_step(backup_handle, pages) & 0xff;
1362
+
1363
+ Addon* addon = backup->db->GetAddon();
1364
+ if (status == SQLITE_OK || status == SQLITE_DONE || status == SQLITE_BUSY) {
1365
+ int total_pages = sqlite3_backup_pagecount(backup_handle);
1366
+ int remaining_pages = sqlite3_backup_remaining(backup_handle);
1367
+ v8 :: Isolate * isolate = info . GetIsolate ( ) ;
1368
+ v8 :: Local < v8 :: Context > ctx = isolate -> GetCurrentContext ( ) ;
1369
+ v8::Local<v8::Object> result = v8::Object::New(isolate);
1370
+ result->Set(ctx, addon->cs.totalPages.Get(isolate), v8::Int32::New(isolate, total_pages)).FromJust();
1371
+ result->Set(ctx, addon->cs.remainingPages.Get(isolate), v8::Int32::New(isolate, remaining_pages)).FromJust();
1372
+ info.GetReturnValue().Set(result);
1373
+ if (status == SQLITE_DONE) backup->unlink = false;
1374
+ } else {
1375
+ Database::ThrowSqliteError(addon, sqlite3_errstr(status), status);
1376
+ }
1377
+ }
1378
+ #line 124 "./src/objects/backup.lzz"
1379
+ void Backup::JS_close (v8::FunctionCallbackInfo <v8 :: Value> const & info)
1380
+ #line 124 "./src/objects/backup.lzz"
1381
+ {
1382
+ Backup* backup = node :: ObjectWrap :: Unwrap <Backup>(info.This());
1383
+ assert(backup->db->GetState()->busy == false);
1384
+ if (backup->alive) backup->db->RemoveBackup(backup);
1385
+ backup->CloseHandles();
1386
+ info.GetReturnValue().Set(info.This());
1387
+ }
1388
+ #line 4 "./src/util/data-converter.lzz"
1389
+ void DataConverter::ThrowDataConversionError (sqlite3_context * invocation, bool isBigInt)
1390
+ #line 4 "./src/util/data-converter.lzz"
1391
+ {
1392
+ if (isBigInt) {
1393
+ ThrowRangeError((GetDataErrorPrefix() + " a bigint that was too big").c_str());
1394
+ } else {
1395
+ ThrowTypeError((GetDataErrorPrefix() + " an invalid value").c_str());
1396
+ }
1397
+ PropagateJSError(invocation);
1398
+ }
1399
+ #line 4 "./src/util/custom-function.lzz"
1400
+ CustomFunction::CustomFunction (v8::Isolate * isolate, Database * db, char const * name, v8::Local <v8::Function> fn, bool safe_ints)
1401
+ #line 10 "./src/util/custom-function.lzz"
1402
+ : name (name), db (db), isolate (isolate), fn (isolate, fn), safe_ints (safe_ints)
1403
+ #line 15 "./src/util/custom-function.lzz"
1404
+ {}
1405
+ #line 17 "./src/util/custom-function.lzz"
1406
+ CustomFunction::~ CustomFunction ()
1407
+ #line 17 "./src/util/custom-function.lzz"
1408
+ {}
1409
+ #line 19 "./src/util/custom-function.lzz"
1410
+ void CustomFunction::xDestroy (void * self)
1411
+ #line 19 "./src/util/custom-function.lzz"
1412
+ {
1413
+ delete static_cast<CustomFunction*>(self);
1414
+ }
1415
+ #line 23 "./src/util/custom-function.lzz"
1416
+ void CustomFunction::xFunc (sqlite3_context * invocation, int argc, sqlite3_value * * argv)
1417
+ #line 23 "./src/util/custom-function.lzz"
1418
+ {
1419
+ CustomFunction * self = static_cast < CustomFunction * > ( sqlite3_user_data ( invocation ) ) ; v8 :: Isolate * isolate = self -> isolate ; v8 :: HandleScope scope ( isolate ) ;
1420
+
1421
+ v8::Local<v8::Value> args_fast[4];
1422
+ v8::Local<v8::Value>* args = NULL;
1423
+ if (argc != 0) {
1424
+ args = argc <= 4 ? args_fast : ALLOC_ARRAY<v8::Local<v8::Value>>(argc);
1425
+ Data::GetArgumentsJS(isolate, args, argv, argc, self->safe_ints);
1426
+ }
1427
+
1428
+ v8::MaybeLocal<v8::Value> maybeReturnValue = self->fn.Get(isolate)->Call( isolate -> GetCurrentContext ( ) , v8::Undefined(isolate), argc, args);
1429
+ if (args != args_fast) delete[] args;
1430
+
1431
+ if (maybeReturnValue.IsEmpty()) self->PropagateJSError(invocation);
1432
+ else Data::ResultValueFromJS(isolate, invocation, maybeReturnValue.ToLocalChecked(), self);
1433
+ }
1434
+ #line 42 "./src/util/custom-function.lzz"
1435
+ void CustomFunction::PropagateJSError (sqlite3_context * invocation)
1436
+ #line 42 "./src/util/custom-function.lzz"
1437
+ {
1438
+ assert(db->GetState()->was_js_error == false);
1439
+ db->GetState()->was_js_error = true;
1440
+ sqlite3_result_error(invocation, "", 0);
1441
+ }
1442
+ #line 48 "./src/util/custom-function.lzz"
1443
+ std::string CustomFunction::GetDataErrorPrefix ()
1444
+ #line 48 "./src/util/custom-function.lzz"
1445
+ {
1446
+ return std::string("User-defined function ") + name + "() returned";
1447
+ }
1448
+ #line 4 "./src/util/custom-aggregate.lzz"
1449
+ CustomAggregate::CustomAggregate (v8::Isolate * isolate, Database * db, char const * name, v8::Local <v8::Value> start, v8::Local <v8::Function> step, v8::Local <v8::Value> inverse, v8::Local <v8::Value> result, bool safe_ints)
1450
+ #line 13 "./src/util/custom-aggregate.lzz"
1451
+ : CustomFunction (isolate, db, name, step, safe_ints), invoke_result (result->IsFunction()), invoke_start (start->IsFunction()), inverse (isolate, inverse->IsFunction() ? inverse.As<v8::Function>() : v8::Local<v8::Function>()), result (isolate, result->IsFunction() ? result.As<v8::Function>() : v8::Local<v8::Function>()), start (isolate, start)
1452
+ #line 19 "./src/util/custom-aggregate.lzz"
1453
+ {}
1454
+ #line 21 "./src/util/custom-aggregate.lzz"
1455
+ void CustomAggregate::xStep (sqlite3_context * invocation, int argc, sqlite3_value * * argv)
1456
+ #line 21 "./src/util/custom-aggregate.lzz"
1457
+ {
1458
+ xStepBase(invocation, argc, argv, &CustomAggregate::fn);
1459
+ }
1460
+ #line 25 "./src/util/custom-aggregate.lzz"
1461
+ void CustomAggregate::xInverse (sqlite3_context * invocation, int argc, sqlite3_value * * argv)
1462
+ #line 25 "./src/util/custom-aggregate.lzz"
1463
+ {
1464
+ xStepBase(invocation, argc, argv, &CustomAggregate::inverse);
1465
+ }
1466
+ #line 29 "./src/util/custom-aggregate.lzz"
1467
+ void CustomAggregate::xValue (sqlite3_context * invocation)
1468
+ #line 29 "./src/util/custom-aggregate.lzz"
1469
+ {
1470
+ xValueBase(invocation, false);
1471
+ }
1472
+ #line 33 "./src/util/custom-aggregate.lzz"
1473
+ void CustomAggregate::xFinal (sqlite3_context * invocation)
1474
+ #line 33 "./src/util/custom-aggregate.lzz"
1475
+ {
1476
+ xValueBase(invocation, true);
1477
+ }
1478
+ #line 88 "./src/util/custom-aggregate.lzz"
1479
+ CustomAggregate::Accumulator * CustomAggregate::GetAccumulator (sqlite3_context * invocation)
1480
+ #line 88 "./src/util/custom-aggregate.lzz"
1481
+ {
1482
+ Accumulator* acc = static_cast<Accumulator*>(sqlite3_aggregate_context(invocation, sizeof(Accumulator)));
1483
+ if (!acc->initialized) {
1484
+ assert(acc->value.IsEmpty());
1485
+ acc->initialized = true;
1486
+ if (invoke_start) {
1487
+ v8::MaybeLocal<v8::Value> maybeSeed = start.Get(isolate).As<v8::Function>()->Call( isolate -> GetCurrentContext ( ) , v8::Undefined(isolate), 0, NULL);
1488
+ if (maybeSeed.IsEmpty()) PropagateJSError(invocation);
1489
+ else acc->value.Reset(isolate, maybeSeed.ToLocalChecked());
1490
+ } else {
1491
+ assert(!start.IsEmpty());
1492
+ acc->value.Reset(isolate, start);
1493
+ }
1494
+ }
1495
+ return acc;
1496
+ }
1497
+ #line 105 "./src/util/custom-aggregate.lzz"
1498
+ void CustomAggregate::DestroyAccumulator (sqlite3_context * invocation)
1499
+ #line 105 "./src/util/custom-aggregate.lzz"
1500
+ {
1501
+ Accumulator* acc = static_cast<Accumulator*>(sqlite3_aggregate_context(invocation, sizeof(Accumulator)));
1502
+ assert(acc->initialized);
1503
+ acc->value.Reset();
1504
+ }
1505
+ #line 111 "./src/util/custom-aggregate.lzz"
1506
+ void CustomAggregate::PropagateJSError (sqlite3_context * invocation)
1507
+ #line 111 "./src/util/custom-aggregate.lzz"
1508
+ {
1509
+ DestroyAccumulator(invocation);
1510
+ CustomFunction::PropagateJSError(invocation);
1511
+ }
1512
+ #line 4 "./src/util/custom-table.lzz"
1513
+ CustomTable::CustomTable (v8::Isolate * isolate, Database * db, char const * name, v8::Local <v8::Function> factory)
1514
+ #line 9 "./src/util/custom-table.lzz"
1515
+ : addon (db->GetAddon()), isolate (isolate), db (db), name (name), factory (isolate, factory)
1516
+ #line 14 "./src/util/custom-table.lzz"
1517
+ {}
1518
+ #line 16 "./src/util/custom-table.lzz"
1519
+ void CustomTable::Destructor (void * self)
1520
+ #line 16 "./src/util/custom-table.lzz"
1521
+ {
1522
+ delete static_cast<CustomTable*>(self);
1523
+ }
1524
+ #line 20 "./src/util/custom-table.lzz"
1525
+ sqlite3_module CustomTable::MODULE = {
1526
+ 0,
1527
+ xCreate,
1528
+ xConnect,
1529
+ xBestIndex,
1530
+ xDisconnect,
1531
+ xDisconnect,
1532
+ xOpen,
1533
+ xClose,
1534
+ xFilter,
1535
+ xNext,
1536
+ xEof,
1537
+ xColumn,
1538
+ xRowid,
1539
+ NULL,
1540
+ NULL,
1541
+ NULL,
1542
+ NULL,
1543
+ NULL,
1544
+ NULL,
1545
+ NULL,
1546
+ NULL,
1547
+ NULL,
1548
+ NULL,
1549
+ NULL
1550
+ };
1551
+ #line 47 "./src/util/custom-table.lzz"
1552
+ sqlite3_module CustomTable::EPONYMOUS_MODULE = {
1553
+ 0,
1554
+ NULL,
1555
+ xConnect,
1556
+ xBestIndex,
1557
+ xDisconnect,
1558
+ xDisconnect,
1559
+ xOpen,
1560
+ xClose,
1561
+ xFilter,
1562
+ xNext,
1563
+ xEof,
1564
+ xColumn,
1565
+ xRowid,
1566
+ NULL,
1567
+ NULL,
1568
+ NULL,
1569
+ NULL,
1570
+ NULL,
1571
+ NULL,
1572
+ NULL,
1573
+ NULL,
1574
+ NULL,
1575
+ NULL,
1576
+ NULL
1577
+ };
1578
+ #line 78 "./src/util/custom-table.lzz"
1579
+ CustomTable::VTab::VTab (CustomTable * parent, v8::Local <v8::Function> generator, std::vector <std::string> parameter_names, bool safe_ints)
1580
+ #line 83 "./src/util/custom-table.lzz"
1581
+ : parent (parent), parameter_count (parameter_names.size()), safe_ints (safe_ints), generator (parent->isolate, generator), parameter_names (parameter_names)
1582
+ #line 88 "./src/util/custom-table.lzz"
1583
+ {
1584
+ ((void)base);
1585
+ }
1586
+ #line 132 "./src/util/custom-table.lzz"
1587
+ CustomTable::TempDataConverter::TempDataConverter (CustomTable * parent)
1588
+ #line 132 "./src/util/custom-table.lzz"
1589
+ : parent (parent), status (SQLITE_OK)
1590
+ #line 134 "./src/util/custom-table.lzz"
1591
+ {}
1592
+ #line 136 "./src/util/custom-table.lzz"
1593
+ void CustomTable::TempDataConverter::PropagateJSError (sqlite3_context * invocation)
1594
+ #line 136 "./src/util/custom-table.lzz"
1595
+ {
1596
+ status = SQLITE_ERROR;
1597
+ parent->PropagateJSError();
1598
+ }
1599
+ #line 141 "./src/util/custom-table.lzz"
1600
+ std::string CustomTable::TempDataConverter::GetDataErrorPrefix ()
1601
+ #line 141 "./src/util/custom-table.lzz"
1602
+ {
1603
+ return std::string("Virtual table module \"") + parent->name + "\" yielded";
1604
+ }
1605
+ #line 151 "./src/util/custom-table.lzz"
1606
+ int CustomTable::xCreate (sqlite3 * db_handle, void * _self, int argc, char const * const * argv, sqlite3_vtab * * output, char * * errOutput)
1607
+ #line 151 "./src/util/custom-table.lzz"
1608
+ {
1609
+ return xConnect(db_handle, _self, argc, argv, output, errOutput);
1610
+ }
1611
+ #line 156 "./src/util/custom-table.lzz"
1612
+ int CustomTable::xConnect (sqlite3 * db_handle, void * _self, int argc, char const * const * argv, sqlite3_vtab * * output, char * * errOutput)
1613
+ #line 156 "./src/util/custom-table.lzz"
1614
+ {
1615
+ CustomTable* self = static_cast<CustomTable*>(_self);
1616
+ v8::Isolate* isolate = self->isolate;
1617
+ v8::HandleScope scope(isolate);
1618
+ v8 :: Local < v8 :: Context > ctx = isolate -> GetCurrentContext ( ) ;
1619
+
1620
+ v8::Local<v8::Value>* args = ALLOC_ARRAY<v8::Local<v8::Value>>(argc);
1621
+ for (int i = 0; i < argc; ++i) {
1622
+ args[i] = StringFromUtf8(isolate, argv[i], -1);
1623
+ }
1624
+
1625
+
1626
+ v8::MaybeLocal<v8::Value> maybeReturnValue = self->factory.Get(isolate)->Call(ctx, v8::Undefined(isolate), argc, args);
1627
+ delete[] args;
1628
+
1629
+ if (maybeReturnValue.IsEmpty()) {
1630
+ self->PropagateJSError();
1631
+ return SQLITE_ERROR;
1632
+ }
1633
+
1634
+
1635
+ v8::Local<v8::Array> returnValue = maybeReturnValue.ToLocalChecked().As<v8::Array>();
1636
+ v8::Local<v8::String> sqlString = returnValue->Get(ctx, 0).ToLocalChecked().As<v8::String>();
1637
+ v8::Local<v8::Function> generator = returnValue->Get(ctx, 1).ToLocalChecked().As<v8::Function>();
1638
+ v8::Local<v8::Array> parameterNames = returnValue->Get(ctx, 2).ToLocalChecked().As<v8::Array>();
1639
+ int safe_ints = returnValue->Get(ctx, 3).ToLocalChecked().As<v8::Int32>()->Value();
1640
+ bool direct_only = returnValue->Get(ctx, 4).ToLocalChecked().As<v8::Boolean>()->Value();
1641
+
1642
+ v8::String::Utf8Value sql(isolate, sqlString);
1643
+ safe_ints = safe_ints < 2 ? safe_ints : static_cast<int>(self->db->GetState()->safe_ints);
1644
+
1645
+
1646
+ std::vector<std::string> parameter_names;
1647
+ for (int i = 0, len = parameterNames->Length(); i < len; ++i) {
1648
+ v8::Local<v8::String> parameterName = parameterNames->Get(ctx, i).ToLocalChecked().As<v8::String>();
1649
+ v8::String::Utf8Value parameter_name(isolate, parameterName);
1650
+ parameter_names.emplace_back(*parameter_name);
1651
+ }
1652
+
1653
+
1654
+ if (sqlite3_declare_vtab(db_handle, *sql) != SQLITE_OK) {
1655
+ *errOutput = sqlite3_mprintf("failed to declare virtual table \"%s\"", argv[2]);
1656
+ return SQLITE_ERROR;
1657
+ }
1658
+ if (direct_only && sqlite3_vtab_config(db_handle, SQLITE_VTAB_DIRECTONLY) != SQLITE_OK) {
1659
+ *errOutput = sqlite3_mprintf("failed to configure virtual table \"%s\"", argv[2]);
1660
+ return SQLITE_ERROR;
1661
+ }
1662
+
1663
+
1664
+ *output = (new VTab(self, generator, parameter_names, safe_ints))->Downcast();
1665
+ return SQLITE_OK;
1666
+ }
1667
+ #line 210 "./src/util/custom-table.lzz"
1668
+ int CustomTable::xDisconnect (sqlite3_vtab * vtab)
1669
+ #line 210 "./src/util/custom-table.lzz"
1670
+ {
1671
+ delete VTab::Upcast(vtab);
1672
+ return SQLITE_OK;
1673
+ }
1674
+ #line 215 "./src/util/custom-table.lzz"
1675
+ int CustomTable::xOpen (sqlite3_vtab * vtab, sqlite3_vtab_cursor * * output)
1676
+ #line 215 "./src/util/custom-table.lzz"
1677
+ {
1678
+ *output = (new Cursor())->Downcast();
1679
+ return SQLITE_OK;
1680
+ }
1681
+ #line 220 "./src/util/custom-table.lzz"
1682
+ int CustomTable::xClose (sqlite3_vtab_cursor * cursor)
1683
+ #line 220 "./src/util/custom-table.lzz"
1684
+ {
1685
+ delete Cursor::Upcast(cursor);
1686
+ return SQLITE_OK;
1687
+ }
1688
+ #line 228 "./src/util/custom-table.lzz"
1689
+ int CustomTable::xFilter (sqlite3_vtab_cursor * _cursor, int idxNum, char const * idxStr, int argc, sqlite3_value * * argv)
1690
+ #line 228 "./src/util/custom-table.lzz"
1691
+ {
1692
+ Cursor* cursor = Cursor::Upcast(_cursor);
1693
+ VTab* vtab = cursor->GetVTab();
1694
+ CustomTable* self = vtab->parent;
1695
+ Addon* addon = self->addon;
1696
+ v8::Isolate* isolate = self->isolate;
1697
+ v8::HandleScope scope(isolate);
1698
+ v8 :: Local < v8 :: Context > ctx = isolate -> GetCurrentContext ( ) ;
1699
+
1700
+
1701
+
1702
+ v8::Local<v8::Value> args_fast[4];
1703
+ v8::Local<v8::Value>* args = NULL;
1704
+ int parameter_count = vtab->parameter_count;
1705
+ if (parameter_count != 0) {
1706
+ args = parameter_count <= 4 ? args_fast : ALLOC_ARRAY<v8::Local<v8::Value>>(parameter_count);
1707
+ int argn = 0;
1708
+ bool safe_ints = vtab->safe_ints;
1709
+ for (int i = 0; i < parameter_count; ++i) {
1710
+ if (idxNum & 1 << i) {
1711
+ args[i] = Data::GetValueJS(isolate, argv[argn++], safe_ints);
1712
+
1713
+
1714
+ if (args[i]->IsNull()) {
1715
+ if (args != args_fast) delete[] args;
1716
+ cursor->done = true;
1717
+ return SQLITE_OK;
1718
+ }
1719
+ } else {
1720
+ args[i] = v8::Undefined(isolate);
1721
+ }
1722
+ }
1723
+ }
1724
+
1725
+
1726
+ v8::MaybeLocal<v8::Value> maybeIterator = vtab->generator.Get(isolate)->Call(ctx, v8::Undefined(isolate), parameter_count, args);
1727
+ if (args != args_fast) delete[] args;
1728
+
1729
+ if (maybeIterator.IsEmpty()) {
1730
+ self->PropagateJSError();
1731
+ return SQLITE_ERROR;
1732
+ }
1733
+
1734
+
1735
+ v8::Local<v8::Object> iterator = maybeIterator.ToLocalChecked().As<v8::Object>();
1736
+ v8::Local<v8::Function> next = iterator->Get(ctx, addon->cs.next.Get(isolate)).ToLocalChecked().As<v8::Function>();
1737
+ cursor->iterator.Reset(isolate, iterator);
1738
+ cursor->next.Reset(isolate, next);
1739
+ cursor->rowid = 0;
1740
+
1741
+
1742
+ return xNext(cursor->Downcast());
1743
+ }
1744
+ #line 284 "./src/util/custom-table.lzz"
1745
+ int CustomTable::xNext (sqlite3_vtab_cursor * _cursor)
1746
+ #line 284 "./src/util/custom-table.lzz"
1747
+ {
1748
+ Cursor* cursor = Cursor::Upcast(_cursor);
1749
+ CustomTable* self = cursor->GetVTab()->parent;
1750
+ Addon* addon = self->addon;
1751
+ v8::Isolate* isolate = self->isolate;
1752
+ v8::HandleScope scope(isolate);
1753
+ v8 :: Local < v8 :: Context > ctx = isolate -> GetCurrentContext ( ) ;
1754
+
1755
+ v8::Local<v8::Object> iterator = cursor->iterator.Get(isolate);
1756
+ v8::Local<v8::Function> next = cursor->next.Get(isolate);
1757
+
1758
+ v8::MaybeLocal<v8::Value> maybeRecord = next->Call(ctx, iterator, 0, NULL);
1759
+ if (maybeRecord.IsEmpty()) {
1760
+ self->PropagateJSError();
1761
+ return SQLITE_ERROR;
1762
+ }
1763
+
1764
+ v8::Local<v8::Object> record = maybeRecord.ToLocalChecked().As<v8::Object>();
1765
+ bool done = record->Get(ctx, addon->cs.done.Get(isolate)).ToLocalChecked().As<v8::Boolean>()->Value();
1766
+ if (!done) {
1767
+ cursor->row.Reset(isolate, record->Get(ctx, addon->cs.value.Get(isolate)).ToLocalChecked().As<v8::Array>());
1768
+ }
1769
+ cursor->done = done;
1770
+ cursor->rowid += 1;
1771
+
1772
+ return SQLITE_OK;
1773
+ }
1774
+ #line 313 "./src/util/custom-table.lzz"
1775
+ int CustomTable::xEof (sqlite3_vtab_cursor * cursor)
1776
+ #line 313 "./src/util/custom-table.lzz"
1777
+ {
1778
+ return Cursor::Upcast(cursor)->done;
1779
+ }
1780
+ #line 318 "./src/util/custom-table.lzz"
1781
+ int CustomTable::xColumn (sqlite3_vtab_cursor * _cursor, sqlite3_context * invocation, int column)
1782
+ #line 318 "./src/util/custom-table.lzz"
1783
+ {
1784
+ Cursor* cursor = Cursor::Upcast(_cursor);
1785
+ CustomTable* self = cursor->GetVTab()->parent;
1786
+ TempDataConverter temp_data_converter(self);
1787
+ v8::Isolate* isolate = self->isolate;
1788
+ v8::HandleScope scope(isolate);
1789
+
1790
+ v8::Local<v8::Array> row = cursor->row.Get(isolate);
1791
+ v8::MaybeLocal<v8::Value> maybeColumnValue = row->Get( isolate -> GetCurrentContext ( ) , column);
1792
+ if (maybeColumnValue.IsEmpty()) {
1793
+ temp_data_converter.PropagateJSError(NULL);
1794
+ } else {
1795
+ Data::ResultValueFromJS(isolate, invocation, maybeColumnValue.ToLocalChecked(), &temp_data_converter);
1796
+ }
1797
+ return temp_data_converter.status;
1798
+ }
1799
+ #line 336 "./src/util/custom-table.lzz"
1800
+ int CustomTable::xRowid (sqlite3_vtab_cursor * cursor, sqlite_int64 * output)
1801
+ #line 336 "./src/util/custom-table.lzz"
1802
+ {
1803
+ *output = Cursor::Upcast(cursor)->rowid;
1804
+ return SQLITE_OK;
1805
+ }
1806
+ #line 343 "./src/util/custom-table.lzz"
1807
+ int CustomTable::xBestIndex (sqlite3_vtab * vtab, sqlite3_index_info * output)
1808
+ #line 343 "./src/util/custom-table.lzz"
1809
+ {
1810
+ int parameter_count = VTab::Upcast(vtab)->parameter_count;
1811
+ int argument_count = 0;
1812
+ std::vector<std::pair<int, int>> forwarded;
1813
+
1814
+ for (int i = 0, len = output->nConstraint; i < len; ++i) {
1815
+ auto item = output->aConstraint[i];
1816
+
1817
+
1818
+
1819
+
1820
+
1821
+ if (item.op == SQLITE_INDEX_CONSTRAINT_LIMIT || item.op == SQLITE_INDEX_CONSTRAINT_OFFSET) {
1822
+ continue;
1823
+ }
1824
+
1825
+ if (item.iColumn >= 0 && item.iColumn < parameter_count) {
1826
+ if (item.op != SQLITE_INDEX_CONSTRAINT_EQ) {
1827
+ sqlite3_free(vtab->zErrMsg);
1828
+ vtab->zErrMsg = sqlite3_mprintf(
1829
+ "virtual table parameter \"%s\" can only be constrained by the '=' operator",
1830
+ VTab::Upcast(vtab)->parameter_names.at(item.iColumn).c_str());
1831
+ return SQLITE_ERROR;
1832
+ }
1833
+ if (!item.usable) {
1834
+
1835
+
1836
+
1837
+ return SQLITE_CONSTRAINT;
1838
+ }
1839
+ forwarded.emplace_back(item.iColumn, i);
1840
+ }
1841
+ }
1842
+
1843
+
1844
+ std::sort(forwarded.begin(), forwarded.end());
1845
+ for (std::pair<int, int> pair : forwarded) {
1846
+ int bit = 1 << pair.first;
1847
+ if (!(output->idxNum & bit)) {
1848
+ output->idxNum |= bit;
1849
+ output->aConstraintUsage[pair.second].argvIndex = ++argument_count;
1850
+ output->aConstraintUsage[pair.second].omit = 1;
1851
+ }
1852
+ }
1853
+
1854
+
1855
+
1856
+ output->estimatedCost = output->estimatedRows = 1000000000 / (argument_count + 1);
1857
+ return SQLITE_OK;
1858
+ }
1859
+ #line 394 "./src/util/custom-table.lzz"
1860
+ void CustomTable::PropagateJSError ()
1861
+ #line 394 "./src/util/custom-table.lzz"
1862
+ {
1863
+ assert(db->GetState()->was_js_error == false);
1864
+ db->GetState()->was_js_error = true;
1865
+ }
1866
+ #line 65 "./src/util/data.lzz"
1867
+ namespace Data
1868
+ {
1869
+ #line 72 "./src/util/data.lzz"
1870
+ v8::Local <v8::Value> GetValueJS (v8::Isolate * isolate, sqlite3_stmt * handle, int column, bool safe_ints)
1871
+ #line 72 "./src/util/data.lzz"
1872
+ {
1873
+ switch ( sqlite3_column_type ( handle , column ) ) { case SQLITE_INTEGER : if ( safe_ints ) { return v8 :: BigInt :: New ( isolate , sqlite3_column_int64 ( handle , column ) ) ; } case SQLITE_FLOAT : return v8 :: Number :: New ( isolate , sqlite3_column_double ( handle , column ) ) ; case SQLITE_TEXT : return StringFromUtf8 ( isolate , reinterpret_cast < const char * > ( sqlite3_column_text ( handle , column ) ) , sqlite3_column_bytes ( handle , column ) ) ; case SQLITE_BLOB : return node :: Buffer :: Copy ( isolate , static_cast < const char * > ( sqlite3_column_blob ( handle , column ) ) , sqlite3_column_bytes ( handle , column ) ) . ToLocalChecked ( ) ; default : assert ( sqlite3_column_type ( handle , column ) == SQLITE_NULL ) ; return v8 :: Null ( isolate ) ; } assert ( false ) ; ;
1874
+ }
1875
+ }
1876
+ #line 65 "./src/util/data.lzz"
1877
+ namespace Data
1878
+ {
1879
+ #line 76 "./src/util/data.lzz"
1880
+ v8::Local <v8::Value> GetValueJS (v8::Isolate * isolate, sqlite3_value * value, bool safe_ints)
1881
+ #line 76 "./src/util/data.lzz"
1882
+ {
1883
+ switch ( sqlite3_value_type ( value ) ) { case SQLITE_INTEGER : if ( safe_ints ) { return v8 :: BigInt :: New ( isolate , sqlite3_value_int64 ( value ) ) ; } case SQLITE_FLOAT : return v8 :: Number :: New ( isolate , sqlite3_value_double ( value ) ) ; case SQLITE_TEXT : return StringFromUtf8 ( isolate , reinterpret_cast < const char * > ( sqlite3_value_text ( value ) ) , sqlite3_value_bytes ( value ) ) ; case SQLITE_BLOB : return node :: Buffer :: Copy ( isolate , static_cast < const char * > ( sqlite3_value_blob ( value ) ) , sqlite3_value_bytes ( value ) ) . ToLocalChecked ( ) ; default : assert ( sqlite3_value_type ( value ) == SQLITE_NULL ) ; return v8 :: Null ( isolate ) ; } assert ( false ) ; ;
1884
+ }
1885
+ }
1886
+ #line 65 "./src/util/data.lzz"
1887
+ namespace Data
1888
+ {
1889
+ #line 80 "./src/util/data.lzz"
1890
+ v8::Local <v8::Value> GetFlatRowJS (v8::Isolate * isolate, v8::Local <v8::Context> ctx, sqlite3_stmt * handle, bool safe_ints)
1891
+ #line 80 "./src/util/data.lzz"
1892
+ {
1893
+ v8::Local<v8::Object> row = v8::Object::New(isolate);
1894
+ int column_count = sqlite3_column_count(handle);
1895
+ for (int i = 0; i < column_count; ++i) {
1896
+ row->Set(ctx,
1897
+ InternalizedFromUtf8(isolate, sqlite3_column_name(handle, i), -1),
1898
+ Data::GetValueJS(isolate, handle, i, safe_ints)).FromJust();
1899
+ }
1900
+ return row;
1901
+ }
1902
+ }
1903
+ #line 65 "./src/util/data.lzz"
1904
+ namespace Data
1905
+ {
1906
+ #line 91 "./src/util/data.lzz"
1907
+ v8::Local <v8::Value> GetExpandedRowJS (v8::Isolate * isolate, v8::Local <v8::Context> ctx, sqlite3_stmt * handle, bool safe_ints)
1908
+ #line 91 "./src/util/data.lzz"
1909
+ {
1910
+ v8::Local<v8::Object> row = v8::Object::New(isolate);
1911
+ int column_count = sqlite3_column_count(handle);
1912
+ for (int i = 0; i < column_count; ++i) {
1913
+ const char* table_raw = sqlite3_column_table_name(handle, i);
1914
+ v8::Local<v8::String> table = InternalizedFromUtf8(isolate, table_raw == NULL ? "$" : table_raw, -1);
1915
+ v8::Local<v8::String> column = InternalizedFromUtf8(isolate, sqlite3_column_name(handle, i), -1);
1916
+ v8::Local<v8::Value> value = Data::GetValueJS(isolate, handle, i, safe_ints);
1917
+ if (row->HasOwnProperty(ctx, table).FromJust()) {
1918
+ row->Get(ctx, table).ToLocalChecked().As<v8::Object>()->Set(ctx, column, value).FromJust();
1919
+ } else {
1920
+ v8::Local<v8::Object> nested = v8::Object::New(isolate);
1921
+ row->Set(ctx, table, nested).FromJust();
1922
+ nested->Set(ctx, column, value).FromJust();
1923
+ }
1924
+ }
1925
+ return row;
1926
+ }
1927
+ }
1928
+ #line 65 "./src/util/data.lzz"
1929
+ namespace Data
1930
+ {
1931
+ #line 110 "./src/util/data.lzz"
1932
+ v8::Local <v8::Value> GetRawRowJS (v8::Isolate * isolate, v8::Local <v8::Context> ctx, sqlite3_stmt * handle, bool safe_ints)
1933
+ #line 110 "./src/util/data.lzz"
1934
+ {
1935
+ v8::Local<v8::Array> row = v8::Array::New(isolate);
1936
+ int column_count = sqlite3_column_count(handle);
1937
+ for (int i = 0; i < column_count; ++i) {
1938
+ row->Set(ctx, i, Data::GetValueJS(isolate, handle, i, safe_ints)).FromJust();
1939
+ }
1940
+ return row;
1941
+ }
1942
+ }
1943
+ #line 65 "./src/util/data.lzz"
1944
+ namespace Data
1945
+ {
1946
+ #line 119 "./src/util/data.lzz"
1947
+ v8::Local <v8::Value> GetRowJS (v8::Isolate * isolate, v8::Local <v8::Context> ctx, sqlite3_stmt * handle, bool safe_ints, char mode)
1948
+ #line 119 "./src/util/data.lzz"
1949
+ {
1950
+ if (mode == FLAT) return GetFlatRowJS(isolate, ctx, handle, safe_ints);
1951
+ if (mode == PLUCK) return GetValueJS(isolate, handle, 0, safe_ints);
1952
+ if (mode == EXPAND) return GetExpandedRowJS(isolate, ctx, handle, safe_ints);
1953
+ if (mode == RAW) return GetRawRowJS(isolate, ctx, handle, safe_ints);
1954
+ assert(false);
1955
+ return v8::Local<v8::Value>();
1956
+ }
1957
+ }
1958
+ #line 65 "./src/util/data.lzz"
1959
+ namespace Data
1960
+ {
1961
+ #line 128 "./src/util/data.lzz"
1962
+ void GetArgumentsJS (v8::Isolate * isolate, v8::Local <v8::Value> * out, sqlite3_value * * values, int argument_count, bool safe_ints)
1963
+ #line 128 "./src/util/data.lzz"
1964
+ {
1965
+ assert(argument_count > 0);
1966
+ for (int i = 0; i < argument_count; ++i) {
1967
+ out[i] = Data::GetValueJS(isolate, values[i], safe_ints);
1968
+ }
1969
+ }
1970
+ }
1971
+ #line 65 "./src/util/data.lzz"
1972
+ namespace Data
1973
+ {
1974
+ #line 135 "./src/util/data.lzz"
1975
+ int BindValueFromJS (v8::Isolate * isolate, sqlite3_stmt * handle, int index, v8::Local <v8::Value> value)
1976
+ #line 135 "./src/util/data.lzz"
1977
+ {
1978
+ if ( value -> IsNumber ( ) ) { return sqlite3_bind_double ( handle , index , value . As < v8 :: Number > ( ) -> Value ( ) ) ; } else if ( value -> IsBigInt ( ) ) { bool lossless ; int64_t v = value . As < v8 :: BigInt > ( ) -> Int64Value ( & lossless ) ; if ( lossless ) { return sqlite3_bind_int64 ( handle , index , v ) ; } } else if ( value -> IsString ( ) ) { v8 :: String :: Utf8Value utf8 ( isolate , value . As < v8 :: String > ( ) ) ; return sqlite3_bind_text ( handle , index , * utf8 , utf8 . length ( ) , SQLITE_TRANSIENT ) ; } else if ( node :: Buffer :: HasInstance ( value ) ) { const char * data = node :: Buffer :: Data ( value ) ; return sqlite3_bind_blob ( handle , index , data ? data : "" , node :: Buffer :: Length ( value ) , SQLITE_TRANSIENT ) ; } else if ( value -> IsNull ( ) || value -> IsUndefined ( ) ) { return sqlite3_bind_null ( handle , index ) ; } ;
1979
+ return value->IsBigInt() ? SQLITE_TOOBIG : -1;
1980
+ }
1981
+ }
1982
+ #line 65 "./src/util/data.lzz"
1983
+ namespace Data
1984
+ {
1985
+ #line 140 "./src/util/data.lzz"
1986
+ void ResultValueFromJS (v8::Isolate * isolate, sqlite3_context * invocation, v8::Local <v8::Value> value, DataConverter * converter)
1987
+ #line 140 "./src/util/data.lzz"
1988
+ {
1989
+ if ( value -> IsNumber ( ) ) { return sqlite3_result_double ( invocation , value . As < v8 :: Number > ( ) -> Value ( ) ) ; } else if ( value -> IsBigInt ( ) ) { bool lossless ; int64_t v = value . As < v8 :: BigInt > ( ) -> Int64Value ( & lossless ) ; if ( lossless ) { return sqlite3_result_int64 ( invocation , v ) ; } } else if ( value -> IsString ( ) ) { v8 :: String :: Utf8Value utf8 ( isolate , value . As < v8 :: String > ( ) ) ; return sqlite3_result_text ( invocation , * utf8 , utf8 . length ( ) , SQLITE_TRANSIENT ) ; } else if ( node :: Buffer :: HasInstance ( value ) ) { const char * data = node :: Buffer :: Data ( value ) ; return sqlite3_result_blob ( invocation , data ? data : "" , node :: Buffer :: Length ( value ) , SQLITE_TRANSIENT ) ; } else if ( value -> IsNull ( ) || value -> IsUndefined ( ) ) { return sqlite3_result_null ( invocation ) ; } ;
1990
+ converter->ThrowDataConversionError(invocation, value->IsBigInt());
1991
+ }
1992
+ }
1993
+ #line 4 "./src/util/binder.lzz"
1994
+ Binder::Binder (sqlite3_stmt * _handle)
1995
+ #line 4 "./src/util/binder.lzz"
1996
+ {
1997
+ handle = _handle;
1998
+ param_count = sqlite3_bind_parameter_count(_handle);
1999
+ anon_index = 0;
2000
+ success = true;
2001
+ }
2002
+ #line 11 "./src/util/binder.lzz"
2003
+ bool Binder::Bind (v8::FunctionCallbackInfo <v8 :: Value> const & info, int argc, Statement * stmt)
2004
+ #line 11 "./src/util/binder.lzz"
2005
+ {
2006
+ assert(anon_index == 0);
2007
+ Result result = BindArgs(info, argc, stmt);
2008
+ if (success && result.count != param_count) {
2009
+ if (result.count < param_count) {
2010
+ if (!result.bound_object && stmt->GetBindMap( info . GetIsolate ( ) )->GetSize()) {
2011
+ Fail(ThrowTypeError, "Missing named parameters");
2012
+ } else {
2013
+ Fail(ThrowRangeError, "Too few parameter values were provided");
2014
+ }
2015
+ } else {
2016
+ Fail(ThrowRangeError, "Too many parameter values were provided");
2017
+ }
2018
+ }
2019
+ return success;
2020
+ }
2021
+ #line 55 "./src/util/binder.lzz"
2022
+ void Binder::Fail (void (* Throw) (char const *), char const * message)
2023
+ #line 55 "./src/util/binder.lzz"
2024
+ {
2025
+ assert(success == true);
2026
+ assert((Throw == NULL) == (message == NULL));
2027
+ assert(Throw == ThrowError || Throw == ThrowTypeError || Throw == ThrowRangeError || Throw == NULL);
2028
+ if (Throw) Throw(message);
2029
+ success = false;
2030
+ }
2031
+ #line 63 "./src/util/binder.lzz"
2032
+ int Binder::NextAnonIndex ()
2033
+ #line 63 "./src/util/binder.lzz"
2034
+ {
2035
+ while (sqlite3_bind_parameter_name(handle, ++anon_index) != NULL) {}
2036
+ return anon_index;
2037
+ }
2038
+ #line 69 "./src/util/binder.lzz"
2039
+ void Binder::BindValue (v8::Isolate * isolate, v8::Local <v8::Value> value, int index)
2040
+ #line 69 "./src/util/binder.lzz"
2041
+ {
2042
+ int status = Data::BindValueFromJS(isolate, handle, index, value);
2043
+ if (status != SQLITE_OK) {
2044
+ switch (status) {
2045
+ case -1:
2046
+ return Fail(ThrowTypeError, "SQLite3 can only bind numbers, strings, bigints, buffers, and null");
2047
+ case SQLITE_TOOBIG:
2048
+ return Fail(ThrowRangeError, "The bound string, buffer, or bigint is too big");
2049
+ case SQLITE_RANGE:
2050
+ return Fail(ThrowRangeError, "Too many parameter values were provided");
2051
+ case SQLITE_NOMEM:
2052
+ return Fail(ThrowError, "Out of memory");
2053
+ default:
2054
+ return Fail(ThrowError, "An unexpected error occured while trying to bind parameters");
2055
+ }
2056
+ assert(false);
2057
+ }
2058
+ }
2059
+ #line 90 "./src/util/binder.lzz"
2060
+ int Binder::BindArray (v8::Isolate * isolate, v8::Local <v8::Array> arr)
2061
+ #line 90 "./src/util/binder.lzz"
2062
+ {
2063
+ v8 :: Local < v8 :: Context > ctx = isolate -> GetCurrentContext ( ) ;
2064
+ uint32_t length = arr->Length();
2065
+ if (length > INT_MAX) {
2066
+ Fail(ThrowRangeError, "Too many parameter values were provided");
2067
+ return 0;
2068
+ }
2069
+ int len = static_cast<int>(length);
2070
+ for (int i = 0; i < len; ++i) {
2071
+ v8::MaybeLocal<v8::Value> maybeValue = arr->Get(ctx, i);
2072
+ if (maybeValue.IsEmpty()) {
2073
+ Fail(NULL, NULL);
2074
+ return i;
2075
+ }
2076
+ BindValue(isolate, maybeValue.ToLocalChecked(), NextAnonIndex());
2077
+ if (!success) {
2078
+ return i;
2079
+ }
2080
+ }
2081
+ return len;
2082
+ }
2083
+ #line 116 "./src/util/binder.lzz"
2084
+ int Binder::BindObject (v8::Isolate * isolate, v8::Local <v8::Object> obj, Statement * stmt)
2085
+ #line 116 "./src/util/binder.lzz"
2086
+ {
2087
+ v8 :: Local < v8 :: Context > ctx = isolate -> GetCurrentContext ( ) ;
2088
+ BindMap* bind_map = stmt->GetBindMap(isolate);
2089
+ BindMap::Pair* pairs = bind_map->GetPairs();
2090
+ int len = bind_map->GetSize();
2091
+
2092
+ for (int i = 0; i < len; ++i) {
2093
+ v8::Local<v8::String> key = pairs[i].GetName(isolate);
2094
+
2095
+
2096
+ v8::Maybe<bool> has_property = obj->HasOwnProperty(ctx, key);
2097
+ if (has_property.IsNothing()) {
2098
+ Fail(NULL, NULL);
2099
+ return i;
2100
+ }
2101
+ if (!has_property.FromJust()) {
2102
+ v8::String::Utf8Value param_name(isolate, key);
2103
+ Fail(ThrowRangeError, (std::string("Missing named parameter \"") + *param_name + "\"").c_str());
2104
+ return i;
2105
+ }
2106
+
2107
+
2108
+ v8::MaybeLocal<v8::Value> maybeValue = obj->Get(ctx, key);
2109
+ if (maybeValue.IsEmpty()) {
2110
+ Fail(NULL, NULL);
2111
+ return i;
2112
+ }
2113
+
2114
+ BindValue(isolate, maybeValue.ToLocalChecked(), pairs[i].GetIndex());
2115
+ if (!success) {
2116
+ return i;
2117
+ }
2118
+ }
2119
+
2120
+ return len;
2121
+ }
2122
+ #line 160 "./src/util/binder.lzz"
2123
+ Binder::Result Binder::BindArgs (v8::FunctionCallbackInfo <v8 :: Value> const & info, int argc, Statement * stmt)
2124
+ #line 160 "./src/util/binder.lzz"
2125
+ {
2126
+ v8 :: Isolate * isolate = info . GetIsolate ( ) ;
2127
+ int count = 0;
2128
+ bool bound_object = false;
2129
+
2130
+ for (int i = 0; i < argc; ++i) {
2131
+ v8::Local<v8::Value> arg = info[i];
2132
+
2133
+ if (arg->IsArray()) {
2134
+ count += BindArray(isolate, arg.As<v8::Array>());
2135
+ if (!success) break;
2136
+ continue;
2137
+ }
2138
+
2139
+ if (arg->IsObject() && !node::Buffer::HasInstance(arg)) {
2140
+ v8::Local<v8::Object> obj = arg.As<v8::Object>();
2141
+ if (IsPlainObject(isolate, obj)) {
2142
+ if (bound_object) {
2143
+ Fail(ThrowTypeError, "You cannot specify named parameters in two different objects");
2144
+ break;
2145
+ }
2146
+ bound_object = true;
2147
+
2148
+ count += BindObject(isolate, obj, stmt);
2149
+ if (!success) break;
2150
+ continue;
2151
+ } else if (stmt->GetBindMap(isolate)->GetSize()) {
2152
+ Fail(ThrowTypeError, "Named parameters can only be passed within plain objects");
2153
+ break;
2154
+ }
2155
+ }
2156
+
2157
+ BindValue(isolate, arg, NextAnonIndex());
2158
+ if (!success) break;
2159
+ count += 1;
2160
+ }
2161
+
2162
+ return { count, bound_object };
2163
+ }
2164
+ #line 35 "./src/better_sqlite3.lzz"
2165
+ void Addon::JS_setErrorConstructor (v8::FunctionCallbackInfo <v8 :: Value> const & info)
2166
+ #line 35 "./src/better_sqlite3.lzz"
2167
+ {
2168
+ if ( info . Length ( ) <= ( 0 ) || ! info [ 0 ] -> IsFunction ( ) ) return ThrowTypeError ( "Expected " "first" " argument to be " "a function" ) ; v8 :: Local < v8 :: Function > SqliteError = ( info [ 0 ] . As < v8 :: Function > ( ) ) ;
2169
+ static_cast < Addon * > ( info . Data ( ) . As < v8 :: External > ( ) -> Value ( ) ) ->SqliteError.Reset( info . GetIsolate ( ) , SqliteError);
2170
+ }
2171
+ #line 40 "./src/better_sqlite3.lzz"
2172
+ void Addon::Cleanup (void * ptr)
2173
+ #line 40 "./src/better_sqlite3.lzz"
2174
+ {
2175
+ Addon* addon = static_cast<Addon*>(ptr);
2176
+ for (Database* db : addon->dbs) db->CloseHandles();
2177
+ addon->dbs.clear();
2178
+ delete addon;
2179
+ }
2180
+ #line 47 "./src/better_sqlite3.lzz"
2181
+ Addon::Addon (v8::Isolate * isolate)
2182
+ #line 47 "./src/better_sqlite3.lzz"
2183
+ : privileged_info (NULL), next_id (0), cs (isolate)
2184
+ #line 50 "./src/better_sqlite3.lzz"
2185
+ {}
2186
+ #undef LZZ_INLINE