sqlew 5.0.8 → 5.2.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 (499) hide show
  1. package/CHANGELOG.md +56 -0
  2. package/README.md +19 -10
  3. package/dist/adapters/auth/auth-factory.d.ts +2 -81
  4. package/dist/adapters/auth/auth-factory.d.ts.map +1 -1
  5. package/dist/adapters/auth/auth-factory.js +2 -82
  6. package/dist/adapters/auth/auth-factory.js.map +1 -1
  7. package/dist/adapters/auth/base-auth-provider.d.ts +18 -303
  8. package/dist/adapters/auth/base-auth-provider.d.ts.map +1 -1
  9. package/dist/adapters/auth/base-auth-provider.js +2 -104
  10. package/dist/adapters/auth/base-auth-provider.js.map +1 -1
  11. package/dist/adapters/auth/direct-auth-provider.d.ts +4 -348
  12. package/dist/adapters/auth/direct-auth-provider.d.ts.map +1 -1
  13. package/dist/adapters/auth/direct-auth-provider.js +6 -356
  14. package/dist/adapters/auth/direct-auth-provider.js.map +1 -1
  15. package/dist/adapters/base-adapter.d.ts +31 -598
  16. package/dist/adapters/base-adapter.d.ts.map +1 -1
  17. package/dist/adapters/base-adapter.js +10 -458
  18. package/dist/adapters/base-adapter.js.map +1 -1
  19. package/dist/adapters/index.d.ts +1 -11
  20. package/dist/adapters/index.d.ts.map +1 -1
  21. package/dist/adapters/index.js +1 -11
  22. package/dist/adapters/index.js.map +1 -1
  23. package/dist/adapters/mysql-adapter.d.ts +15 -541
  24. package/dist/adapters/mysql-adapter.d.ts.map +1 -1
  25. package/dist/adapters/mysql-adapter.js +24 -561
  26. package/dist/adapters/mysql-adapter.js.map +1 -1
  27. package/dist/adapters/postgresql-adapter.d.ts +15 -203
  28. package/dist/adapters/postgresql-adapter.d.ts.map +1 -1
  29. package/dist/adapters/postgresql-adapter.js +24 -223
  30. package/dist/adapters/postgresql-adapter.js.map +1 -1
  31. package/dist/adapters/sqlite-adapter.d.ts +4 -28
  32. package/dist/adapters/sqlite-adapter.d.ts.map +1 -1
  33. package/dist/adapters/sqlite-adapter.js +4 -32
  34. package/dist/adapters/sqlite-adapter.js.map +1 -1
  35. package/dist/adapters/types.d.ts +1 -4
  36. package/dist/adapters/types.d.ts.map +1 -1
  37. package/dist/backend/backend-factory.d.ts +3 -3
  38. package/dist/backend/backend-factory.js +3 -3
  39. package/dist/backend/local-backend.d.ts.map +1 -1
  40. package/dist/backend/local-backend.js +0 -5
  41. package/dist/backend/local-backend.js.map +1 -1
  42. package/dist/cli/db-export.d.ts.map +1 -1
  43. package/dist/cli/db-export.js +54 -32
  44. package/dist/cli/db-export.js.map +1 -1
  45. package/dist/cli/db-import.d.ts.map +1 -1
  46. package/dist/cli/db-import.js +32 -31
  47. package/dist/cli/db-import.js.map +1 -1
  48. package/dist/cli/hooks/on-exit-plan.d.ts.map +1 -1
  49. package/dist/cli/hooks/on-exit-plan.js +42 -1
  50. package/dist/cli/hooks/on-exit-plan.js.map +1 -1
  51. package/dist/cli/hooks/on-prompt.d.ts.map +1 -1
  52. package/dist/cli/hooks/on-prompt.js +5 -0
  53. package/dist/cli/hooks/on-prompt.js.map +1 -1
  54. package/dist/cli/hooks/plan-processor.d.ts.map +1 -1
  55. package/dist/cli/hooks/plan-processor.js +16 -2
  56. package/dist/cli/hooks/plan-processor.js.map +1 -1
  57. package/dist/cli/hooks/stdin-parser.d.ts +41 -0
  58. package/dist/cli/hooks/stdin-parser.d.ts.map +1 -1
  59. package/dist/cli/hooks/stdin-parser.js +140 -4
  60. package/dist/cli/hooks/stdin-parser.js.map +1 -1
  61. package/dist/cli/hooks/track-plan.d.ts +13 -0
  62. package/dist/cli/hooks/track-plan.d.ts.map +1 -1
  63. package/dist/cli/hooks/track-plan.js +58 -3
  64. package/dist/cli/hooks/track-plan.js.map +1 -1
  65. package/dist/cli.d.ts.map +1 -1
  66. package/dist/cli.js +1 -12
  67. package/dist/cli.js.map +1 -1
  68. package/dist/config/cloud-config-loader.d.ts +8 -8
  69. package/dist/config/cloud-config-loader.d.ts.map +1 -1
  70. package/dist/config/cloud-config-loader.js +12 -12
  71. package/dist/config/cloud-config-loader.js.map +1 -1
  72. package/dist/config/global-config.d.ts +24 -46
  73. package/dist/config/global-config.d.ts.map +1 -1
  74. package/dist/config/global-config.js +174 -56
  75. package/dist/config/global-config.js.map +1 -1
  76. package/dist/config/loader.d.ts +1 -18
  77. package/dist/config/loader.d.ts.map +1 -1
  78. package/dist/config/loader.js +1 -89
  79. package/dist/config/loader.js.map +1 -1
  80. package/dist/config/types.d.ts +2 -64
  81. package/dist/config/types.d.ts.map +1 -1
  82. package/dist/config/types.js +0 -18
  83. package/dist/config/types.js.map +1 -1
  84. package/dist/database/index.d.ts +1 -2
  85. package/dist/database/index.d.ts.map +1 -1
  86. package/dist/database/index.js +1 -3
  87. package/dist/database/index.js.map +1 -1
  88. package/dist/database/migrations/v4/20251126000001_v4_migrate_data.d.ts.map +1 -1
  89. package/dist/database/migrations/v4/20251126000001_v4_migrate_data.js +2 -1
  90. package/dist/database/migrations/v4/20251126000001_v4_migrate_data.js.map +1 -1
  91. package/dist/database/operations/queries.d.ts +0 -4
  92. package/dist/database/operations/queries.d.ts.map +1 -1
  93. package/dist/database/operations/queries.js +0 -8
  94. package/dist/database/operations/queries.js.map +1 -1
  95. package/dist/index.d.ts +1 -1
  96. package/dist/index.js +2 -2
  97. package/dist/index.js.map +1 -1
  98. package/dist/init-rules.d.ts.map +1 -1
  99. package/dist/init-rules.js +0 -1
  100. package/dist/init-rules.js.map +1 -1
  101. package/dist/knexfile.d.ts.map +1 -1
  102. package/dist/knexfile.js +2 -1
  103. package/dist/knexfile.js.map +1 -1
  104. package/dist/migration/local-to-global.d.ts +19 -0
  105. package/dist/migration/local-to-global.d.ts.map +1 -0
  106. package/dist/migration/local-to-global.js +133 -0
  107. package/dist/migration/local-to-global.js.map +1 -0
  108. package/dist/saas-connector/client/types.d.ts +1 -1
  109. package/dist/saas-connector/client/types.d.ts.map +1 -1
  110. package/dist/schema.js +1 -1
  111. package/dist/server/setup.d.ts.map +1 -1
  112. package/dist/server/setup.js +15 -7
  113. package/dist/server/setup.js.map +1 -1
  114. package/dist/tests/backend/backend-factory.test.js +2 -2
  115. package/dist/tests/backend/backend-factory.test.js.map +1 -1
  116. package/dist/tests/docker/native/constraint-operations.test.d.ts +2 -17
  117. package/dist/tests/docker/native/constraint-operations.test.d.ts.map +1 -1
  118. package/dist/tests/docker/native/constraint-operations.test.js +3 -82
  119. package/dist/tests/docker/native/constraint-operations.test.js.map +1 -1
  120. package/dist/tests/docker/native/db-init.d.ts +3 -34
  121. package/dist/tests/docker/native/db-init.d.ts.map +1 -1
  122. package/dist/tests/docker/native/db-init.js +15 -77
  123. package/dist/tests/docker/native/db-init.js.map +1 -1
  124. package/dist/tests/docker/native/decision-operations.test.d.ts +2 -10
  125. package/dist/tests/docker/native/decision-operations.test.d.ts.map +1 -1
  126. package/dist/tests/docker/native/decision-operations.test.js +2 -84
  127. package/dist/tests/docker/native/decision-operations.test.js.map +1 -1
  128. package/dist/tests/docker/native/help-system.test.d.ts +2 -5
  129. package/dist/tests/docker/native/help-system.test.d.ts.map +1 -1
  130. package/dist/tests/docker/native/help-system.test.js +2 -47
  131. package/dist/tests/docker/native/help-system.test.js.map +1 -1
  132. package/dist/tests/docker/native/suggest-tool.test.d.ts +3 -11
  133. package/dist/tests/docker/native/suggest-tool.test.d.ts.map +1 -1
  134. package/dist/tests/docker/native/suggest-tool.test.js +3 -60
  135. package/dist/tests/docker/native/suggest-tool.test.js.map +1 -1
  136. package/dist/tests/docker/native/test-harness.d.ts +2 -23
  137. package/dist/tests/docker/native/test-harness.d.ts.map +1 -1
  138. package/dist/tests/docker/native/test-harness.js +5 -59
  139. package/dist/tests/docker/native/test-harness.js.map +1 -1
  140. package/dist/tests/feature/decision/analytics.test.js +2 -1
  141. package/dist/tests/feature/decision/analytics.test.js.map +1 -1
  142. package/dist/tests/feature/decision/batch-validation-comprehensive.test.js +2 -7
  143. package/dist/tests/feature/decision/batch-validation-comprehensive.test.js.map +1 -1
  144. package/dist/tests/feature/decision/batch-validation.test.js +2 -1
  145. package/dist/tests/feature/decision/batch-validation.test.js.map +1 -1
  146. package/dist/tests/integration/auto-trigger-suggestions.test.js +4 -37
  147. package/dist/tests/integration/auto-trigger-suggestions.test.js.map +1 -1
  148. package/dist/tests/integration/hybrid-similarity-detection.test.js +2 -1
  149. package/dist/tests/integration/hybrid-similarity-detection.test.js.map +1 -1
  150. package/dist/tests/integration/json-export-import.test.d.ts.map +1 -0
  151. package/dist/tests/integration/json-export-import.test.js.map +1 -0
  152. package/dist/tests/unit/case-insensitive-validator.test.d.ts +0 -7
  153. package/dist/tests/unit/case-insensitive-validator.test.d.ts.map +1 -1
  154. package/dist/tests/unit/case-insensitive-validator.test.js +0 -22
  155. package/dist/tests/unit/case-insensitive-validator.test.js.map +1 -1
  156. package/dist/tests/unit/config/cloud-config-loader.test.js +4 -2
  157. package/dist/tests/unit/config/cloud-config-loader.test.js.map +1 -1
  158. package/dist/tests/unit/config/global-db-migration.test.d.ts +12 -0
  159. package/dist/tests/unit/config/global-db-migration.test.d.ts.map +1 -0
  160. package/dist/tests/unit/config/global-db-migration.test.js +117 -0
  161. package/dist/tests/unit/config/global-db-migration.test.js.map +1 -0
  162. package/dist/tests/unit/constraint-scorer.test.d.ts +2 -7
  163. package/dist/tests/unit/constraint-scorer.test.d.ts.map +1 -1
  164. package/dist/tests/unit/constraint-scorer.test.js +2 -28
  165. package/dist/tests/unit/constraint-scorer.test.js.map +1 -1
  166. package/dist/tests/unit/hooks/grok-hook-normalization.test.d.ts +9 -0
  167. package/dist/tests/unit/hooks/grok-hook-normalization.test.d.ts.map +1 -0
  168. package/dist/tests/unit/hooks/grok-hook-normalization.test.js +98 -0
  169. package/dist/tests/unit/hooks/grok-hook-normalization.test.js.map +1 -0
  170. package/dist/tests/unit/hooks/grok-plan-template-injection.test.d.ts +7 -0
  171. package/dist/tests/unit/hooks/grok-plan-template-injection.test.d.ts.map +1 -0
  172. package/dist/tests/unit/hooks/grok-plan-template-injection.test.js +55 -0
  173. package/dist/tests/unit/hooks/grok-plan-template-injection.test.js.map +1 -0
  174. package/dist/tests/unit/universal-knex.test.js +9 -0
  175. package/dist/tests/unit/universal-knex.test.js.map +1 -1
  176. package/dist/tests/unit/validation/parameter-validation.test.js +0 -24
  177. package/dist/tests/unit/validation/parameter-validation.test.js.map +1 -1
  178. package/dist/tests/utils/db-config.d.ts.map +1 -1
  179. package/dist/tests/utils/db-config.js +0 -9
  180. package/dist/tests/utils/db-config.js.map +1 -1
  181. package/dist/tests/utils/db-import.d.ts.map +1 -1
  182. package/dist/tests/utils/db-import.js +0 -3
  183. package/dist/tests/utils/db-import.js.map +1 -1
  184. package/dist/tests/utils/db-schema.d.ts.map +1 -1
  185. package/dist/tests/utils/db-schema.js +48 -51
  186. package/dist/tests/utils/db-schema.js.map +1 -1
  187. package/dist/tests/utils/db-seeding.d.ts.map +1 -1
  188. package/dist/tests/utils/db-seeding.js +0 -3
  189. package/dist/tests/utils/db-seeding.js.map +1 -1
  190. package/dist/tests/utils/index.d.ts +0 -1
  191. package/dist/tests/utils/index.d.ts.map +1 -1
  192. package/dist/tests/utils/index.js +0 -2
  193. package/dist/tests/utils/index.js.map +1 -1
  194. package/dist/tests/utils/test-helpers.d.ts +6 -76
  195. package/dist/tests/utils/test-helpers.d.ts.map +1 -1
  196. package/dist/tests/utils/test-helpers.js +56 -162
  197. package/dist/tests/utils/test-helpers.js.map +1 -1
  198. package/dist/tests/utils/test-lifecycle.d.ts +2 -28
  199. package/dist/tests/utils/test-lifecycle.d.ts.map +1 -1
  200. package/dist/tests/utils/test-lifecycle.js +2 -31
  201. package/dist/tests/utils/test-lifecycle.js.map +1 -1
  202. package/dist/tools/context/index.d.ts +0 -1
  203. package/dist/tools/context/index.d.ts.map +1 -1
  204. package/dist/tools/context/index.js +0 -2
  205. package/dist/tools/context/index.js.map +1 -1
  206. package/dist/tools/context/types.d.ts +1 -1
  207. package/dist/tools/context/types.d.ts.map +1 -1
  208. package/dist/types/actions.d.ts +6 -29
  209. package/dist/types/actions.d.ts.map +1 -1
  210. package/dist/types/actions.js +1 -2
  211. package/dist/types/actions.js.map +1 -1
  212. package/dist/types/constraint/params.d.ts +24 -1
  213. package/dist/types/constraint/params.d.ts.map +1 -1
  214. package/dist/types/constraint/params.js +3 -0
  215. package/dist/types/constraint/params.js.map +1 -1
  216. package/dist/types/constraint/responses.d.ts +18 -1
  217. package/dist/types/constraint/responses.d.ts.map +1 -1
  218. package/dist/types/constraint/responses.js +3 -0
  219. package/dist/types/constraint/responses.js.map +1 -1
  220. package/dist/types/decision/batch.d.ts +2 -5
  221. package/dist/types/decision/batch.d.ts.map +1 -1
  222. package/dist/types/decision/batch.js +3 -3
  223. package/dist/types/decision/batch.js.map +1 -1
  224. package/dist/types/decision/params.d.ts +7 -4
  225. package/dist/types/decision/params.d.ts.map +1 -1
  226. package/dist/types/decision/responses.d.ts +49 -35
  227. package/dist/types/decision/responses.d.ts.map +1 -1
  228. package/dist/types/decision/templates.d.ts +2 -18
  229. package/dist/types/decision/templates.d.ts.map +1 -1
  230. package/dist/types/decision/templates.js +3 -3
  231. package/dist/types/decision/templates.js.map +1 -1
  232. package/dist/types/enums.d.ts +11 -13
  233. package/dist/types/enums.d.ts.map +1 -1
  234. package/dist/types/enums.js +5 -13
  235. package/dist/types/enums.js.map +1 -1
  236. package/dist/types/import-export.d.ts +7 -30
  237. package/dist/types/import-export.d.ts.map +1 -1
  238. package/dist/types/import-export.js +1 -2
  239. package/dist/types/import-export.js.map +1 -1
  240. package/dist/types/index.d.ts +18 -22
  241. package/dist/types/index.d.ts.map +1 -1
  242. package/dist/types/index.js +4 -32
  243. package/dist/types/index.js.map +1 -1
  244. package/dist/types/master-entities.d.ts +1 -10
  245. package/dist/types/master-entities.d.ts.map +1 -1
  246. package/dist/types/master-entities.js +1 -2
  247. package/dist/types/master-entities.js.map +1 -1
  248. package/dist/types/transaction-entities.d.ts +2 -21
  249. package/dist/types/transaction-entities.d.ts.map +1 -1
  250. package/dist/types/transaction-entities.js +1 -1
  251. package/dist/types/validation.d.ts +1 -16
  252. package/dist/types/validation.d.ts.map +1 -1
  253. package/dist/types/validation.js +1 -2
  254. package/dist/types/validation.js.map +1 -1
  255. package/dist/types/view-entities.d.ts +3 -12
  256. package/dist/types/view-entities.d.ts.map +1 -1
  257. package/dist/types/view-entities.js +1 -1
  258. package/dist/types.d.ts +4 -718
  259. package/dist/types.d.ts.map +1 -1
  260. package/dist/types.js +5 -39
  261. package/dist/types.js.map +1 -1
  262. package/dist/utils/parameter-validator.d.ts +2 -2
  263. package/dist/utils/parameter-validator.d.ts.map +1 -1
  264. package/dist/utils/parameter-validator.js.map +1 -1
  265. package/dist/utils/path-normalize.d.ts +23 -0
  266. package/dist/utils/path-normalize.d.ts.map +1 -0
  267. package/dist/utils/path-normalize.js +38 -0
  268. package/dist/utils/path-normalize.js.map +1 -0
  269. package/dist/utils/project-root.d.ts +6 -3
  270. package/dist/utils/project-root.d.ts.map +1 -1
  271. package/dist/utils/project-root.js +11 -3
  272. package/dist/utils/project-root.js.map +1 -1
  273. package/dist/watcher/base-watcher.d.ts +0 -4
  274. package/dist/watcher/base-watcher.d.ts.map +1 -1
  275. package/dist/watcher/base-watcher.js +11 -22
  276. package/dist/watcher/base-watcher.js.map +1 -1
  277. package/docs/CLI_USAGE.md +27 -107
  278. package/docs/CONFIGURATION.md +10 -5
  279. package/docs/DATABASE_AUTH.md +3 -3
  280. package/docs/HOOKS_GUIDE.md +40 -6
  281. package/docs/MIGRATION_TO_SAAS.md +2 -2
  282. package/docs/SHARED_DATABASE.md +108 -0
  283. package/package.json +4 -3
  284. package/dist/adapters/auth/auth-types.d.ts +0 -30
  285. package/dist/adapters/auth/auth-types.d.ts.map +0 -1
  286. package/dist/adapters/auth/auth-types.js +0 -30
  287. package/dist/adapters/auth/auth-types.js.map +0 -1
  288. package/dist/cli/db-dump.d.ts +0 -36
  289. package/dist/cli/db-dump.d.ts.map +0 -1
  290. package/dist/cli/db-dump.js +0 -384
  291. package/dist/cli/db-dump.js.map +0 -1
  292. package/dist/database/config/config-ops.d.ts +0 -42
  293. package/dist/database/config/config-ops.d.ts.map +0 -1
  294. package/dist/database/config/config-ops.js +0 -102
  295. package/dist/database/config/config-ops.js.map +0 -1
  296. package/dist/formatters/adr-formatter.d.ts +0 -22
  297. package/dist/formatters/adr-formatter.d.ts.map +0 -1
  298. package/dist/formatters/adr-formatter.js +0 -127
  299. package/dist/formatters/adr-formatter.js.map +0 -1
  300. package/dist/formatters/confluence-formatter.d.ts +0 -26
  301. package/dist/formatters/confluence-formatter.d.ts.map +0 -1
  302. package/dist/formatters/confluence-formatter.js +0 -129
  303. package/dist/formatters/confluence-formatter.js.map +0 -1
  304. package/dist/formatters/index.d.ts +0 -34
  305. package/dist/formatters/index.d.ts.map +0 -1
  306. package/dist/formatters/index.js +0 -57
  307. package/dist/formatters/index.js.map +0 -1
  308. package/dist/formatters/markdown-formatter.d.ts +0 -16
  309. package/dist/formatters/markdown-formatter.d.ts.map +0 -1
  310. package/dist/formatters/markdown-formatter.js +0 -110
  311. package/dist/formatters/markdown-formatter.js.map +0 -1
  312. package/dist/formatters/notion-formatter.d.ts +0 -29
  313. package/dist/formatters/notion-formatter.d.ts.map +0 -1
  314. package/dist/formatters/notion-formatter.js +0 -177
  315. package/dist/formatters/notion-formatter.js.map +0 -1
  316. package/dist/formatters/types.d.ts +0 -31
  317. package/dist/formatters/types.d.ts.map +0 -1
  318. package/dist/formatters/types.js +0 -6
  319. package/dist/formatters/types.js.map +0 -1
  320. package/dist/tests/database/sql-dump/converters.test.d.ts +0 -7
  321. package/dist/tests/database/sql-dump/converters.test.d.ts.map +0 -1
  322. package/dist/tests/database/sql-dump/converters.test.js +0 -314
  323. package/dist/tests/database/sql-dump/converters.test.js.map +0 -1
  324. package/dist/tests/database/sql-dump/default-conversions.test.d.ts +0 -8
  325. package/dist/tests/database/sql-dump/default-conversions.test.d.ts.map +0 -1
  326. package/dist/tests/database/sql-dump/default-conversions.test.js +0 -141
  327. package/dist/tests/database/sql-dump/default-conversions.test.js.map +0 -1
  328. package/dist/tests/database/sql-dump/table-ordering.test.d.ts +0 -27
  329. package/dist/tests/database/sql-dump/table-ordering.test.d.ts.map +0 -1
  330. package/dist/tests/database/sql-dump/table-ordering.test.js +0 -284
  331. package/dist/tests/database/sql-dump/table-ordering.test.js.map +0 -1
  332. package/dist/tests/database/sql-dump/type-conversion.test.d.ts +0 -8
  333. package/dist/tests/database/sql-dump/type-conversion.test.d.ts.map +0 -1
  334. package/dist/tests/database/sql-dump/type-conversion.test.js +0 -361
  335. package/dist/tests/database/sql-dump/type-conversion.test.js.map +0 -1
  336. package/dist/tests/docker/cross-database.test.d.ts +0 -21
  337. package/dist/tests/docker/cross-database.test.d.ts.map +0 -1
  338. package/dist/tests/docker/cross-database.test.js +0 -308
  339. package/dist/tests/docker/cross-database.test.js.map +0 -1
  340. package/dist/tests/docker/dump-import.test.d.ts +0 -15
  341. package/dist/tests/docker/dump-import.test.d.ts.map +0 -1
  342. package/dist/tests/docker/dump-import.test.js +0 -424
  343. package/dist/tests/docker/dump-import.test.js.map +0 -1
  344. package/dist/tests/docker/fk-constraints.test.d.ts +0 -13
  345. package/dist/tests/docker/fk-constraints.test.d.ts.map +0 -1
  346. package/dist/tests/docker/fk-constraints.test.js +0 -381
  347. package/dist/tests/docker/fk-constraints.test.js.map +0 -1
  348. package/dist/tests/docker/indexes.test.d.ts +0 -12
  349. package/dist/tests/docker/indexes.test.d.ts.map +0 -1
  350. package/dist/tests/docker/indexes.test.js +0 -250
  351. package/dist/tests/docker/indexes.test.js.map +0 -1
  352. package/dist/tests/docker/integration.test.d.ts +0 -16
  353. package/dist/tests/docker/integration.test.d.ts.map +0 -1
  354. package/dist/tests/docker/integration.test.js +0 -323
  355. package/dist/tests/docker/integration.test.js.map +0 -1
  356. package/dist/tests/docker/multi-project-migration.test.d.ts +0 -17
  357. package/dist/tests/docker/multi-project-migration.test.d.ts.map +0 -1
  358. package/dist/tests/docker/multi-project-migration.test.js +0 -394
  359. package/dist/tests/docker/multi-project-migration.test.js.map +0 -1
  360. package/dist/tests/docker/schema-migration.test.d.ts +0 -8
  361. package/dist/tests/docker/schema-migration.test.d.ts.map +0 -1
  362. package/dist/tests/docker/schema-migration.test.js +0 -98
  363. package/dist/tests/docker/schema-migration.test.js.map +0 -1
  364. package/dist/tests/integration/e2e-workflow1-debug.test.d.ts +0 -5
  365. package/dist/tests/integration/e2e-workflow1-debug.test.d.ts.map +0 -1
  366. package/dist/tests/integration/e2e-workflow1-debug.test.js +0 -85
  367. package/dist/tests/integration/e2e-workflow1-debug.test.js.map +0 -1
  368. package/dist/tests/integration/suggest-simple.test.d.ts +0 -5
  369. package/dist/tests/integration/suggest-simple.test.d.ts.map +0 -1
  370. package/dist/tests/integration/suggest-simple.test.js +0 -90
  371. package/dist/tests/integration/suggest-simple.test.js.map +0 -1
  372. package/dist/tests/migrations/test-all-versions-real.d.ts +0 -8
  373. package/dist/tests/migrations/test-all-versions-real.d.ts.map +0 -1
  374. package/dist/tests/migrations/test-all-versions-real.js +0 -236
  375. package/dist/tests/migrations/test-all-versions-real.js.map +0 -1
  376. package/dist/tests/migrations/test-all-versions.d.ts +0 -14
  377. package/dist/tests/migrations/test-all-versions.d.ts.map +0 -1
  378. package/dist/tests/migrations/test-all-versions.js +0 -519
  379. package/dist/tests/migrations/test-all-versions.js.map +0 -1
  380. package/dist/tests/migrations/v4/v4-fresh-install.test.d.ts +0 -7
  381. package/dist/tests/migrations/v4/v4-fresh-install.test.d.ts.map +0 -1
  382. package/dist/tests/migrations/v4/v4-fresh-install.test.js +0 -168
  383. package/dist/tests/migrations/v4/v4-fresh-install.test.js.map +0 -1
  384. package/dist/tests/migrations/v4/v4-migrate-data.test.d.ts +0 -13
  385. package/dist/tests/migrations/v4/v4-migrate-data.test.d.ts.map +0 -1
  386. package/dist/tests/migrations/v4/v4-migrate-data.test.js +0 -264
  387. package/dist/tests/migrations/v4/v4-migrate-data.test.js.map +0 -1
  388. package/dist/tests/unit/utils/case-insensitive-validator.test.d.ts +0 -2
  389. package/dist/tests/unit/utils/case-insensitive-validator.test.d.ts.map +0 -1
  390. package/dist/tests/unit/utils/case-insensitive-validator.test.js +0 -97
  391. package/dist/tests/unit/utils/case-insensitive-validator.test.js.map +0 -1
  392. package/dist/tests/utils/json-export-import.test.d.ts.map +0 -1
  393. package/dist/tests/utils/json-export-import.test.js.map +0 -1
  394. package/dist/tests/utils/task-helpers.d.ts +0 -67
  395. package/dist/tests/utils/task-helpers.d.ts.map +0 -1
  396. package/dist/tests/utils/task-helpers.js +0 -134
  397. package/dist/tests/utils/task-helpers.js.map +0 -1
  398. package/dist/tools/context/actions/export.d.ts +0 -35
  399. package/dist/tools/context/actions/export.d.ts.map +0 -1
  400. package/dist/tools/context/actions/export.js +0 -93
  401. package/dist/tools/context/actions/export.js.map +0 -1
  402. package/dist/types/file/params.d.ts +0 -40
  403. package/dist/types/file/params.d.ts.map +0 -1
  404. package/dist/types/file/params.js +0 -6
  405. package/dist/types/file/params.js.map +0 -1
  406. package/dist/types/file/responses.d.ts +0 -2
  407. package/dist/types/file/responses.d.ts.map +0 -1
  408. package/dist/types/file/responses.js +0 -2
  409. package/dist/types/file/responses.js.map +0 -1
  410. package/dist/types/task/params.d.ts +0 -173
  411. package/dist/types/task/params.d.ts.map +0 -1
  412. package/dist/types/task/params.js +0 -8
  413. package/dist/types/task/params.js.map +0 -1
  414. package/dist/types/task/responses.d.ts +0 -334
  415. package/dist/types/task/responses.d.ts.map +0 -1
  416. package/dist/types/task/responses.js +0 -8
  417. package/dist/types/task/responses.js.map +0 -1
  418. package/dist/utils/sql-dump/core/dependency-sort.d.ts +0 -16
  419. package/dist/utils/sql-dump/core/dependency-sort.d.ts.map +0 -1
  420. package/dist/utils/sql-dump/core/dependency-sort.js +0 -105
  421. package/dist/utils/sql-dump/core/dependency-sort.js.map +0 -1
  422. package/dist/utils/sql-dump/core/generate-dump.d.ts +0 -13
  423. package/dist/utils/sql-dump/core/generate-dump.d.ts.map +0 -1
  424. package/dist/utils/sql-dump/core/generate-dump.js +0 -201
  425. package/dist/utils/sql-dump/core/generate-dump.js.map +0 -1
  426. package/dist/utils/sql-dump/core/index-export.d.ts +0 -10
  427. package/dist/utils/sql-dump/core/index-export.d.ts.map +0 -1
  428. package/dist/utils/sql-dump/core/index-export.js +0 -173
  429. package/dist/utils/sql-dump/core/index-export.js.map +0 -1
  430. package/dist/utils/sql-dump/core/sequence-reset.d.ts +0 -6
  431. package/dist/utils/sql-dump/core/sequence-reset.d.ts.map +0 -1
  432. package/dist/utils/sql-dump/core/sequence-reset.js +0 -28
  433. package/dist/utils/sql-dump/core/sequence-reset.js.map +0 -1
  434. package/dist/utils/sql-dump/core/table-export.d.ts +0 -2
  435. package/dist/utils/sql-dump/core/table-export.d.ts.map +0 -1
  436. package/dist/utils/sql-dump/core/table-export.js +0 -4
  437. package/dist/utils/sql-dump/core/table-export.js.map +0 -1
  438. package/dist/utils/sql-dump/core/view-export.d.ts +0 -2
  439. package/dist/utils/sql-dump/core/view-export.d.ts.map +0 -1
  440. package/dist/utils/sql-dump/core/view-export.js +0 -4
  441. package/dist/utils/sql-dump/core/view-export.js.map +0 -1
  442. package/dist/utils/sql-dump/formatters/bulk-insert.d.ts +0 -14
  443. package/dist/utils/sql-dump/formatters/bulk-insert.d.ts.map +0 -1
  444. package/dist/utils/sql-dump/formatters/bulk-insert.js +0 -177
  445. package/dist/utils/sql-dump/formatters/bulk-insert.js.map +0 -1
  446. package/dist/utils/sql-dump/formatters/identifiers.d.ts +0 -6
  447. package/dist/utils/sql-dump/formatters/identifiers.d.ts.map +0 -1
  448. package/dist/utils/sql-dump/formatters/identifiers.js +0 -16
  449. package/dist/utils/sql-dump/formatters/identifiers.js.map +0 -1
  450. package/dist/utils/sql-dump/formatters/value-formatter.d.ts +0 -14
  451. package/dist/utils/sql-dump/formatters/value-formatter.d.ts.map +0 -1
  452. package/dist/utils/sql-dump/formatters/value-formatter.js +0 -281
  453. package/dist/utils/sql-dump/formatters/value-formatter.js.map +0 -1
  454. package/dist/utils/sql-dump/generators/controls.d.ts +0 -10
  455. package/dist/utils/sql-dump/generators/controls.d.ts.map +0 -1
  456. package/dist/utils/sql-dump/generators/controls.js +0 -36
  457. package/dist/utils/sql-dump/generators/controls.js.map +0 -1
  458. package/dist/utils/sql-dump/generators/headers.d.ts +0 -6
  459. package/dist/utils/sql-dump/generators/headers.d.ts.map +0 -1
  460. package/dist/utils/sql-dump/generators/headers.js +0 -19
  461. package/dist/utils/sql-dump/generators/headers.js.map +0 -1
  462. package/dist/utils/sql-dump/index.d.ts +0 -14
  463. package/dist/utils/sql-dump/index.d.ts.map +0 -1
  464. package/dist/utils/sql-dump/index.js +0 -16
  465. package/dist/utils/sql-dump/index.js.map +0 -1
  466. package/dist/utils/sql-dump/schema/indexes.d.ts +0 -20
  467. package/dist/utils/sql-dump/schema/indexes.d.ts.map +0 -1
  468. package/dist/utils/sql-dump/schema/indexes.js +0 -108
  469. package/dist/utils/sql-dump/schema/indexes.js.map +0 -1
  470. package/dist/utils/sql-dump/schema/primary-keys.d.ts +0 -6
  471. package/dist/utils/sql-dump/schema/primary-keys.d.ts.map +0 -1
  472. package/dist/utils/sql-dump/schema/primary-keys.js +0 -41
  473. package/dist/utils/sql-dump/schema/primary-keys.js.map +0 -1
  474. package/dist/utils/sql-dump/schema/tables.d.ts +0 -15
  475. package/dist/utils/sql-dump/schema/tables.d.ts.map +0 -1
  476. package/dist/utils/sql-dump/schema/tables.js +0 -518
  477. package/dist/utils/sql-dump/schema/tables.js.map +0 -1
  478. package/dist/utils/sql-dump/schema/views.d.ts +0 -11
  479. package/dist/utils/sql-dump/schema/views.d.ts.map +0 -1
  480. package/dist/utils/sql-dump/schema/views.js +0 -116
  481. package/dist/utils/sql-dump/schema/views.js.map +0 -1
  482. package/dist/utils/sql-dump/types.d.ts +0 -10
  483. package/dist/utils/sql-dump/types.d.ts.map +0 -1
  484. package/dist/utils/sql-dump/types.js +0 -3
  485. package/dist/utils/sql-dump/types.js.map +0 -1
  486. package/dist/utils/sql-dump-converters.d.ts +0 -188
  487. package/dist/utils/sql-dump-converters.d.ts.map +0 -1
  488. package/dist/utils/sql-dump-converters.js +0 -315
  489. package/dist/utils/sql-dump-converters.js.map +0 -1
  490. package/dist/watcher/gitignore-parser.d.ts +0 -70
  491. package/dist/watcher/gitignore-parser.d.ts.map +0 -1
  492. package/dist/watcher/gitignore-parser.js +0 -195
  493. package/dist/watcher/gitignore-parser.js.map +0 -1
  494. package/dist/watcher/index.d.ts +0 -9
  495. package/dist/watcher/index.d.ts.map +0 -1
  496. package/dist/watcher/index.js +0 -8
  497. package/dist/watcher/index.js.map +0 -1
  498. /package/dist/tests/{utils → integration}/json-export-import.test.d.ts +0 -0
  499. /package/dist/tests/{utils → integration}/json-export-import.test.js +0 -0
@@ -1,168 +0,0 @@
1
- /**
2
- * v4.0 Fresh Install Migration Test
3
- *
4
- * Tests that v4.0 migrations work correctly on a fresh database.
5
- */
6
- import { describe, it, before, after } from 'node:test';
7
- import assert from 'node:assert';
8
- import knex from 'knex';
9
- import * as path from 'path';
10
- import { fileURLToPath } from 'url';
11
- import { dirname } from 'path';
12
- const __filename = fileURLToPath(import.meta.url);
13
- const __dirname = dirname(__filename);
14
- describe('v4.0 Fresh Install Migration', () => {
15
- let db;
16
- before(async () => {
17
- // Create in-memory SQLite database
18
- db = knex({
19
- client: 'better-sqlite3',
20
- connection: {
21
- filename: ':memory:',
22
- },
23
- useNullAsDefault: true,
24
- migrations: {
25
- directory: path.join(__dirname, '../../../database/migrations/v4'),
26
- extension: 'ts',
27
- loadExtensions: ['.ts'],
28
- },
29
- });
30
- // Run all migrations
31
- await db.migrate.latest();
32
- });
33
- after(async () => {
34
- if (db) {
35
- await db.destroy();
36
- }
37
- });
38
- describe('v4_ Table Creation', () => {
39
- it('should create m_projects table', async () => {
40
- const hasTable = await db.schema.hasTable('m_projects');
41
- assert.strictEqual(hasTable, true, 'm_projects table should exist');
42
- });
43
- // v4_agents table removed in v4.0 - agent tracking no longer needed
44
- it('should create t_decisions table', async () => {
45
- const hasTable = await db.schema.hasTable('t_decisions');
46
- assert.strictEqual(hasTable, true, 't_decisions table should exist');
47
- });
48
- it('should create v4_tasks table', async () => {
49
- const hasTable = await db.schema.hasTable('v4_tasks');
50
- assert.strictEqual(hasTable, true, 'v4_tasks table should exist');
51
- });
52
- it('should create t_constraints table', async () => {
53
- const hasTable = await db.schema.hasTable('t_constraints');
54
- assert.strictEqual(hasTable, true, 't_constraints table should exist');
55
- });
56
- it('should create v4_file_changes table', async () => {
57
- const hasTable = await db.schema.hasTable('v4_file_changes');
58
- assert.strictEqual(hasTable, true, 'v4_file_changes table should exist');
59
- });
60
- it('should create m_layers table', async () => {
61
- const hasTable = await db.schema.hasTable('m_layers');
62
- assert.strictEqual(hasTable, true, 'm_layers table should exist');
63
- });
64
- it('should create m_tags table', async () => {
65
- const hasTable = await db.schema.hasTable('m_tags');
66
- assert.strictEqual(hasTable, true, 'm_tags table should exist');
67
- });
68
- it('should create v4_task_statuses table', async () => {
69
- const hasTable = await db.schema.hasTable('v4_task_statuses');
70
- assert.strictEqual(hasTable, true, 'v4_task_statuses table should exist');
71
- });
72
- // Note: v4_config removed in v4.0 - config is now in-memory
73
- });
74
- describe('v4_ Master Data Seeding', () => {
75
- it('should seed 9 layers', async () => {
76
- const layers = await db('m_layers').select('*');
77
- assert.strictEqual(layers.length, 9, 'Should have 9 layers');
78
- const layerNames = layers.map((l) => l.name);
79
- assert.ok(layerNames.includes('presentation'), 'Should have presentation layer');
80
- assert.ok(layerNames.includes('business'), 'Should have business layer');
81
- assert.ok(layerNames.includes('data'), 'Should have data layer');
82
- assert.ok(layerNames.includes('infrastructure'), 'Should have infrastructure layer');
83
- assert.ok(layerNames.includes('cross-cutting'), 'Should have cross-cutting layer');
84
- assert.ok(layerNames.includes('documentation'), 'Should have documentation layer');
85
- assert.ok(layerNames.includes('planning'), 'Should have planning layer');
86
- assert.ok(layerNames.includes('coordination'), 'Should have coordination layer');
87
- assert.ok(layerNames.includes('review'), 'Should have review layer');
88
- });
89
- it('should seed 6 task statuses', async () => {
90
- const statuses = await db('v4_task_statuses').select('*');
91
- assert.strictEqual(statuses.length, 6, 'Should have 6 task statuses');
92
- const statusNames = statuses.map((s) => s.name);
93
- assert.ok(statusNames.includes('todo'), 'Should have todo status');
94
- assert.ok(statusNames.includes('in_progress'), 'Should have in_progress status');
95
- assert.ok(statusNames.includes('waiting_review'), 'Should have waiting_review status');
96
- assert.ok(statusNames.includes('blocked'), 'Should have blocked status');
97
- assert.ok(statusNames.includes('done'), 'Should have done status');
98
- assert.ok(statusNames.includes('archived'), 'Should have archived status');
99
- });
100
- it('should seed 5 constraint categories', async () => {
101
- const categories = await db('m_constraint_categories').select('*');
102
- assert.strictEqual(categories.length, 5, 'Should have 5 constraint categories');
103
- });
104
- it('should seed default project', async () => {
105
- const projects = await db('m_projects').where({ name: 'default' });
106
- assert.strictEqual(projects.length, 1, 'Should have default project');
107
- assert.strictEqual(projects[0].display_name, 'Default Project');
108
- });
109
- // System agent seed removed in v4.0 - agent tracking no longer needed
110
- it('should seed 8 common tags', async () => {
111
- const tags = await db('m_tags').select('*');
112
- assert.strictEqual(tags.length, 8, 'Should have 8 tags');
113
- });
114
- // Note: v4_config removed in v4.0 - config is now in-memory
115
- });
116
- describe('v4_ Index Creation', () => {
117
- it('should create indexes on t_decisions', async () => {
118
- // Query SQLite sqlite_master for indexes
119
- const indexes = await db.raw(`
120
- SELECT name FROM sqlite_master
121
- WHERE type='index' AND tbl_name='t_decisions' AND name LIKE 'idx_%'
122
- `);
123
- assert.ok(indexes.length > 0, 'Should have indexes on t_decisions');
124
- });
125
- it('should create indexes on v4_tasks', async () => {
126
- const indexes = await db.raw(`
127
- SELECT name FROM sqlite_master
128
- WHERE type='index' AND tbl_name='v4_tasks' AND name LIKE 'idx_%'
129
- `);
130
- assert.ok(indexes.length > 0, 'Should have indexes on v4_tasks');
131
- });
132
- });
133
- describe('v4_ Foreign Key Constraints', () => {
134
- it('should enforce FK on t_decisions.project_id', async () => {
135
- try {
136
- await db('t_decisions').insert({
137
- project_id: 9999, // Non-existent project
138
- key_id: 1,
139
- value: 'test',
140
- version: '1.0.0',
141
- status: 'active',
142
- ts: Math.floor(Date.now() / 1000),
143
- layer_id: 1,
144
- });
145
- assert.fail('Should have thrown FK constraint error');
146
- }
147
- catch (error) {
148
- assert.ok(error.message.includes('FOREIGN KEY') || error.message.includes('foreign key'), `Should be FK error: ${error.message}`);
149
- }
150
- });
151
- it('should enforce FK on v4_tasks.project_id', async () => {
152
- try {
153
- await db('v4_tasks').insert({
154
- project_id: 9999, // Non-existent project
155
- title: 'Test Task',
156
- status_id: 1,
157
- created_ts: Math.floor(Date.now() / 1000),
158
- updated_ts: Math.floor(Date.now() / 1000),
159
- });
160
- assert.fail('Should have thrown FK constraint error');
161
- }
162
- catch (error) {
163
- assert.ok(error.message.includes('FOREIGN KEY') || error.message.includes('foreign key'), `Should be FK error: ${error.message}`);
164
- }
165
- });
166
- });
167
- });
168
- //# sourceMappingURL=v4-fresh-install.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"v4-fresh-install.test.js","sourceRoot":"","sources":["../../../../src/tests/migrations/v4/v4-fresh-install.test.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- /**
2
- * v4.0 Data Migration from v3.x Test (SQLite only)
3
- *
4
- * このテストでは、20251126000001_v4_migrate_data.ts の振る舞いを
5
- * - v3 テーブルなし(新規インストール)のスキップ挙動
6
- * - 代表的な v3 スキーマ + v4 スキーマ上でのデータコピー
7
- * - t_decisions の project_id 有無による分岐
8
- * - 冪等性 (up を2回実行しても行数が増えない)
9
- * - down() によるトランザクションテーブルのみ削除
10
- * を中心に検証する。
11
- */
12
- export {};
13
- //# sourceMappingURL=v4-migrate-data.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"v4-migrate-data.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/migrations/v4/v4-migrate-data.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG"}
@@ -1,264 +0,0 @@
1
- /**
2
- * v4.0 Data Migration from v3.x Test (SQLite only)
3
- *
4
- * このテストでは、20251126000001_v4_migrate_data.ts の振る舞いを
5
- * - v3 テーブルなし(新規インストール)のスキップ挙動
6
- * - 代表的な v3 スキーマ + v4 スキーマ上でのデータコピー
7
- * - t_decisions の project_id 有無による分岐
8
- * - 冪等性 (up を2回実行しても行数が増えない)
9
- * - down() によるトランザクションテーブルのみ削除
10
- * を中心に検証する。
11
- */
12
- import { describe, it, before, after, beforeEach } from 'node:test';
13
- import assert from 'node:assert';
14
- import knex from 'knex';
15
- import { fileURLToPath } from 'url';
16
- import { dirname } from 'path';
17
- import { up as migrateV4Data, down as rollbackV4Data } from '../../../database/migrations/v4/20251126000001_v4_migrate_data.js';
18
- const __filename = fileURLToPath(import.meta.url);
19
- const __dirname = dirname(__filename);
20
- // シンプルな v4 スキーマ (必要なテーブルのみ) を定義
21
- // Note: Agent tracking removed in v4.0 - no v4_agents table or agent_id columns
22
- async function createV4Schema(db) {
23
- await db.schema.createTable('m_projects', table => {
24
- table.integer('id').primary();
25
- table.string('name');
26
- table.string('display_name').nullable();
27
- table.string('detection_source').nullable();
28
- table.string('project_root_path').nullable();
29
- table.integer('created_ts').nullable();
30
- table.integer('last_active_ts').nullable();
31
- table.text('metadata').nullable();
32
- });
33
- await db.schema.createTable('m_context_keys', table => {
34
- table.integer('id').primary();
35
- table.string('key_name');
36
- });
37
- await db.schema.createTable('v4_files', table => {
38
- table.integer('id').primary();
39
- table.integer('project_id');
40
- table.string('path');
41
- });
42
- // Note: v4_config removed in v4.0 - config is now in-memory
43
- await db.schema.createTable('t_decisions', table => {
44
- table.string('key_id');
45
- table.integer('project_id');
46
- table.text('value');
47
- table.integer('layer_id').nullable();
48
- table.integer('version').nullable();
49
- table.string('status').nullable();
50
- table.integer('ts').nullable();
51
- });
52
- await db.schema.createTable('t_decision_history', table => {
53
- table.increments('id').primary();
54
- table.string('key_id');
55
- table.integer('project_id');
56
- table.integer('version');
57
- table.text('value');
58
- table.integer('ts').nullable();
59
- });
60
- await db.schema.createTable('v4_tasks', table => {
61
- table.integer('id').primary();
62
- table.string('title');
63
- table.integer('project_id');
64
- table.integer('status_id');
65
- table.integer('priority').nullable();
66
- table.integer('layer_id').nullable();
67
- table.integer('created_ts').nullable();
68
- table.integer('updated_ts').nullable();
69
- table.integer('completed_ts').nullable();
70
- });
71
- }
72
- // 必要な v3 スキーマ (サブセット) を定義
73
- async function createV3SchemaMinimal(db) {
74
- await db.schema.createTable('m_agents', table => {
75
- table.integer('id').primary();
76
- table.string('name');
77
- table.integer('last_active_ts').nullable();
78
- });
79
- await db.schema.createTable('m_projects', table => {
80
- table.integer('id').primary();
81
- table.string('name');
82
- });
83
- await db.schema.createTable('m_context_keys', table => {
84
- table.integer('id').primary();
85
- table.string('key');
86
- });
87
- await db.schema.createTable('m_files', table => {
88
- table.integer('id').primary();
89
- table.integer('project_id');
90
- table.string('path');
91
- });
92
- await db.schema.createTable('m_config', table => {
93
- table.string('key').primary();
94
- table.text('value').nullable();
95
- });
96
- // project_id を持たない古い t_decisions
97
- await db.schema.createTable('t_decisions', table => {
98
- table.string('key_id');
99
- table.text('value');
100
- table.integer('agent_id').nullable();
101
- table.integer('layer_id').nullable();
102
- table.integer('version').nullable();
103
- table.string('status').nullable();
104
- table.integer('ts').nullable();
105
- });
106
- await db.schema.createTable('t_decision_history', table => {
107
- table.increments('id').primary();
108
- table.string('key_id');
109
- table.integer('project_id').nullable();
110
- table.integer('version').nullable();
111
- table.text('value');
112
- table.integer('agent_id').nullable();
113
- table.integer('ts').nullable();
114
- });
115
- await db.schema.createTable('t_tasks', table => {
116
- table.integer('id').primary();
117
- table.string('title');
118
- table.integer('project_id');
119
- table.integer('status_id');
120
- table.integer('priority').nullable();
121
- table.integer('assigned_agent_id').nullable();
122
- table.integer('created_by_agent_id').nullable();
123
- table.integer('layer_id').nullable();
124
- table.integer('created_ts').nullable();
125
- table.integer('updated_ts').nullable();
126
- table.integer('completed_ts').nullable();
127
- });
128
- }
129
- // project_id を持つ新しい t_decisions を含んだ v3 スキーマサブセット
130
- async function createV3SchemaWithProjectId(db) {
131
- await createV3SchemaMinimal(db);
132
- // t_decisions を作り直すことは難しいので、別 DB 用ユーティリティで使用する前提
133
- }
134
- describe('v4.0 Data Migration from v3.x', () => {
135
- let db;
136
- before(async () => {
137
- db = knex({
138
- client: 'better-sqlite3',
139
- connection: { filename: ':memory:' },
140
- useNullAsDefault: true,
141
- });
142
- });
143
- after(async () => {
144
- if (db) {
145
- await db.destroy();
146
- }
147
- });
148
- describe('fresh install behavior', () => {
149
- beforeEach(async () => {
150
- // すべてのテーブルをドロップ
151
- const tables = await db.raw("SELECT name FROM sqlite_master WHERE type='table'");
152
- for (const row of tables) {
153
- if (row.name.startsWith('sqlite_'))
154
- continue;
155
- await db.schema.dropTableIfExists(row.name);
156
- }
157
- // v4 スキーマのみ用意 (v3 テーブルなし)
158
- await createV4Schema(db);
159
- });
160
- it('should skip data migration when no v3 tables exist', async () => {
161
- // Note: v4_agents removed in v4.0 - check m_projects instead
162
- const projectsBefore = await db('m_projects').count('* as count');
163
- assert.strictEqual(Number(projectsBefore[0].count), 0);
164
- await migrateV4Data(db);
165
- const projectsAfter = await db('m_projects').count('* as count');
166
- assert.strictEqual(Number(projectsAfter[0].count), 0, 'm_projects should remain empty');
167
- });
168
- });
169
- describe('minimal v3 schema → v4 migration', () => {
170
- beforeEach(async () => {
171
- // すべてのテーブルをドロップ
172
- const tables = await db.raw("SELECT name FROM sqlite_master WHERE type='table'");
173
- for (const row of tables) {
174
- if (row.name.startsWith('sqlite_'))
175
- continue;
176
- await db.schema.dropTableIfExists(row.name);
177
- }
178
- await createV3SchemaMinimal(db);
179
- await createV4Schema(db);
180
- // v3 側にサンプルデータを投入
181
- await db('m_agents').insert([
182
- { id: 1, name: 'agent-1', last_active_ts: 100 },
183
- { id: 2, name: 'agent-2', last_active_ts: 200 },
184
- ]);
185
- await db('m_projects').insert([
186
- { id: 1, name: 'proj-1' },
187
- ]);
188
- await db('m_context_keys').insert([
189
- { id: 1, key: 'ctx-1' },
190
- { id: 2, key: 'ctx-2' },
191
- ]);
192
- await db('m_files').insert([
193
- { id: 1, project_id: 1, path: '/path/a' },
194
- { id: 2, project_id: 1, path: '/path/b' },
195
- ]);
196
- await db('m_config').insert([
197
- { key: 'schema_version', value: '3.0.0' },
198
- { key: 'other', value: 'x' },
199
- ]);
200
- await db('t_decisions').insert([
201
- { key_id: 'k1', value: 'v1', agent_id: 1, layer_id: 1, version: 1, status: 'open', ts: 111 },
202
- { key_id: 'k2', value: 'v2', agent_id: 2, layer_id: 1, version: 1, status: 'closed', ts: 222 },
203
- ]);
204
- await db('t_decision_history').insert([
205
- { key_id: 'k1', project_id: 1, version: 1, value: 'h1', agent_id: 1, ts: 333 },
206
- ]);
207
- await db('t_tasks').insert([
208
- { id: 1, title: 'task-1', project_id: 1, status_id: 1 },
209
- ]);
210
- });
211
- it('should migrate master and transaction data correctly', async () => {
212
- await migrateV4Data(db);
213
- // Note: v4_agents removed in v4.0 - m_agents data is NOT migrated
214
- const v4Projects = await db('m_projects');
215
- assert.strictEqual(v4Projects.length, 1);
216
- assert.strictEqual(v4Projects[0].id, 1);
217
- assert.strictEqual(v4Projects[0].name, 'proj-1');
218
- const v4ContextKeys = await db('m_context_keys').orderBy('id');
219
- assert.strictEqual(v4ContextKeys.length, 2);
220
- assert.deepStrictEqual(v4ContextKeys.map((r) => r.key_name), ['ctx-1', 'ctx-2']);
221
- const v4Files = await db('v4_files').orderBy('id');
222
- assert.strictEqual(v4Files.length, 2);
223
- assert.strictEqual(v4Files[0].path, '/path/a');
224
- // Note: v4_config removed in v4.0 - config is now in-memory
225
- const v4Decisions = await db('t_decisions').orderBy('key_id');
226
- assert.strictEqual(v4Decisions.length, 2);
227
- // project_id を持たない t_decisions だったので、すべて project_id = 1 のはず
228
- assert.deepStrictEqual(v4Decisions.map((d) => d.project_id), [1, 1]);
229
- const v4History = await db('t_decision_history');
230
- assert.strictEqual(v4History.length, 1);
231
- assert.strictEqual(v4History[0].key_id, 'k1');
232
- const v4Tasks = await db('v4_tasks');
233
- assert.strictEqual(v4Tasks.length, 1);
234
- assert.strictEqual(v4Tasks[0].title, 'task-1');
235
- });
236
- it('should be idempotent when running up() twice', async () => {
237
- // Note: v4_agents removed in v4.0
238
- await migrateV4Data(db);
239
- const counts1 = {
240
- projects: await db('m_projects').count('* as count'),
241
- decisions: await db('t_decisions').count('* as count'),
242
- };
243
- await migrateV4Data(db);
244
- const counts2 = {
245
- projects: await db('m_projects').count('* as count'),
246
- decisions: await db('t_decisions').count('* as count'),
247
- };
248
- assert.strictEqual(Number(counts1.projects[0].count), Number(counts2.projects[0].count));
249
- assert.strictEqual(Number(counts1.decisions[0].count), Number(counts2.decisions[0].count));
250
- });
251
- it('down() should clear only transaction tables', async () => {
252
- await migrateV4Data(db);
253
- const beforeDecisions = await db('t_decisions').count('* as count');
254
- assert.ok(Number(beforeDecisions[0].count) > 0);
255
- await rollbackV4Data(db);
256
- const afterDecisions = await db('t_decisions').count('* as count');
257
- assert.strictEqual(Number(afterDecisions[0].count), 0);
258
- // マスタテーブルは残っている (v4_agents removed in v4.0 - check m_projects instead)
259
- const projects = await db('m_projects').count('* as count');
260
- assert.ok(Number(projects[0].count) > 0);
261
- });
262
- });
263
- });
264
- //# sourceMappingURL=v4-migrate-data.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"v4-migrate-data.test.js","sourceRoot":"","sources":["../../../../src/tests/migrations/v4/v4-migrate-data.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACpE,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,IAAc,MAAM,MAAM,CAAC;AAElC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAE/B,OAAO,EAAE,EAAE,IAAI,aAAa,EAAE,IAAI,IAAI,cAAc,EAAE,MAAM,mEAAmE,CAAC;AAEhI,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC,gCAAgC;AAChC,gFAAgF;AAChF,KAAK,UAAU,cAAc,CAAC,EAAQ;IACpC,MAAM,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE;QAChD,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QAC9B,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACrB,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE,CAAC;QACxC,KAAK,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC5C,KAAK,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC7C,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;QACvC,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC3C,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,MAAM,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,gBAAgB,EAAE,KAAK,CAAC,EAAE;QACpD,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QAC9B,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,MAAM,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE;QAC9C,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QAC9B,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAC5B,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,4DAA4D;IAE5D,MAAM,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,aAAa,EAAE,KAAK,CAAC,EAAE;QACjD,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACvB,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpB,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC;QACrC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC;QACpC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;QAClC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,MAAM,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,oBAAoB,EAAE,KAAK,CAAC,EAAE;QACxD,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QACjC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACvB,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAC5B,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,MAAM,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE;QAC9C,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QAC9B,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACtB,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAC5B,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC3B,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC;QACrC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC;QACrC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;QACvC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;QACvC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC3C,CAAC,CAAC,CAAC;AACL,CAAC;AAED,0BAA0B;AAC1B,KAAK,UAAU,qBAAqB,CAAC,EAAQ;IAC3C,MAAM,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE;QAC9C,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QAC9B,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACrB,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,MAAM,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE;QAChD,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QAC9B,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,MAAM,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,gBAAgB,EAAE,KAAK,CAAC,EAAE;QACpD,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QAC9B,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,MAAM,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE;QAC7C,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QAC9B,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAC5B,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,MAAM,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE;QAC9C,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,iCAAiC;IACjC,MAAM,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,aAAa,EAAE,KAAK,CAAC,EAAE;QACjD,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpB,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC;QACrC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC;QACrC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC;QACpC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;QAClC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,MAAM,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,oBAAoB,EAAE,KAAK,CAAC,EAAE;QACxD,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QACjC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACvB,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;QACvC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC;QACpC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpB,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC;QACrC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,MAAM,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE;QAC7C,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QAC9B,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACtB,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAC5B,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC3B,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC;QACrC,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC9C,KAAK,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,QAAQ,EAAE,CAAC;QAChD,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC;QACrC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;QACvC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;QACvC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC3C,CAAC,CAAC,CAAC;AACL,CAAC;AAED,kDAAkD;AAClD,KAAK,UAAU,2BAA2B,CAAC,EAAQ;IACjD,MAAM,qBAAqB,CAAC,EAAE,CAAC,CAAC;IAEhC,iDAAiD;AACnD,CAAC;AAED,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;IAC7C,IAAI,EAAQ,CAAC;IAEb,MAAM,CAAC,KAAK,IAAI,EAAE;QAChB,EAAE,GAAG,IAAI,CAAC;YACR,MAAM,EAAE,gBAAgB;YACxB,UAAU,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE;YACpC,gBAAgB,EAAE,IAAI;SACvB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,KAAK,IAAI,EAAE;QACf,IAAI,EAAE,EAAE,CAAC;YACP,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC;QACrB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;QACtC,UAAU,CAAC,KAAK,IAAI,EAAE;YACpB,gBAAgB;YAChB,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;YACjF,KAAK,MAAM,GAAG,IAAI,MAAa,EAAE,CAAC;gBAChC,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;oBAAE,SAAS;gBAC7C,MAAM,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC9C,CAAC;YACD,0BAA0B;YAC1B,MAAM,cAAc,CAAC,EAAE,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;YAClE,6DAA6D;YAC7D,MAAM,cAAc,GAAG,MAAM,EAAE,CAAC,YAAY,CAAC,CAAC,KAAK,CAAsB,YAAY,CAAC,CAAC;YACvF,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;YAEvD,MAAM,aAAa,CAAC,EAAS,CAAC,CAAC;YAE/B,MAAM,aAAa,GAAG,MAAM,EAAE,CAAC,YAAY,CAAC,CAAC,KAAK,CAAsB,YAAY,CAAC,CAAC;YACtF,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,gCAAgC,CAAC,CAAC;QAC1F,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAChD,UAAU,CAAC,KAAK,IAAI,EAAE;YACpB,gBAAgB;YAChB,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;YACjF,KAAK,MAAM,GAAG,IAAI,MAAa,EAAE,CAAC;gBAChC,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;oBAAE,SAAS;gBAC7C,MAAM,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC9C,CAAC;YAED,MAAM,qBAAqB,CAAC,EAAE,CAAC,CAAC;YAChC,MAAM,cAAc,CAAC,EAAE,CAAC,CAAC;YAEzB,kBAAkB;YAClB,MAAM,EAAE,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;gBAC1B,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,EAAE;gBAC/C,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,EAAE;aAChD,CAAC,CAAC;YAEH,MAAM,EAAE,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC;gBAC5B,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE;aAC1B,CAAC,CAAC;YAEH,MAAM,EAAE,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC;gBAChC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE;gBACvB,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE;aACxB,CAAC,CAAC;YAEH,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;gBACzB,EAAE,EAAE,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE;gBACzC,EAAE,EAAE,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE;aAC1C,CAAC,CAAC;YAEH,MAAM,EAAE,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;gBAC1B,EAAE,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE,OAAO,EAAE;gBACzC,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE;aAC7B,CAAC,CAAC;YAEH,MAAM,EAAE,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC;gBAC7B,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE;gBAC5F,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,EAAE;aAC/F,CAAC,CAAC;YAEH,MAAM,EAAE,CAAC,oBAAoB,CAAC,CAAC,MAAM,CAAC;gBACpC,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE;aAC/E,CAAC,CAAC;YAEH,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;gBACzB,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;aACxD,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;YACpE,MAAM,aAAa,CAAC,EAAS,CAAC,CAAC;YAE/B,kEAAkE;YAElE,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,YAAY,CAAC,CAAC;YAC1C,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACzC,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YACxC,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAEjD,MAAM,aAAa,GAAG,MAAM,EAAE,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC/D,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAC5C,MAAM,CAAC,eAAe,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;YAEtF,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACnD,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACtC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YAE/C,4DAA4D;YAE5D,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC9D,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAC1C,4DAA4D;YAC5D,MAAM,CAAC,eAAe,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAE1E,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,oBAAoB,CAAC,CAAC;YACjD,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACxC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAE9C,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,UAAU,CAAC,CAAC;YACrC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACtC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;YAC5D,kCAAkC;YAClC,MAAM,aAAa,CAAC,EAAS,CAAC,CAAC;YAC/B,MAAM,OAAO,GAAG;gBACd,QAAQ,EAAE,MAAM,EAAE,CAAC,YAAY,CAAC,CAAC,KAAK,CAAsB,YAAY,CAAC;gBACzE,SAAS,EAAE,MAAM,EAAE,CAAC,aAAa,CAAC,CAAC,KAAK,CAAsB,YAAY,CAAC;aAC5E,CAAC;YAEF,MAAM,aAAa,CAAC,EAAS,CAAC,CAAC;YAE/B,MAAM,OAAO,GAAG;gBACd,QAAQ,EAAE,MAAM,EAAE,CAAC,YAAY,CAAC,CAAC,KAAK,CAAsB,YAAY,CAAC;gBACzE,SAAS,EAAE,MAAM,EAAE,CAAC,aAAa,CAAC,CAAC,KAAK,CAAsB,YAAY,CAAC;aAC5E,CAAC;YAEF,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACzF,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7F,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;YAC3D,MAAM,aAAa,CAAC,EAAS,CAAC,CAAC;YAE/B,MAAM,eAAe,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,CAAC,KAAK,CAAsB,YAAY,CAAC,CAAC;YACzF,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;YAEhD,MAAM,cAAc,CAAC,EAAS,CAAC,CAAC;YAEhC,MAAM,cAAc,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,CAAC,KAAK,CAAsB,YAAY,CAAC,CAAC;YACxF,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;YAEvD,uEAAuE;YACvE,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,YAAY,CAAC,CAAC,KAAK,CAAsB,YAAY,CAAC,CAAC;YACjF,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=case-insensitive-validator.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"case-insensitive-validator.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/unit/utils/case-insensitive-validator.test.ts"],"names":[],"mappings":""}
@@ -1,97 +0,0 @@
1
- import { describe, it } from 'node:test';
2
- import assert from 'node:assert';
3
- import { normalizeIdentifier } from '../../../utils/case-insensitive-validator.js';
4
- describe('case-insensitive-validator', () => {
5
- describe('normalizeIdentifier', () => {
6
- describe('case normalization', () => {
7
- it('should convert uppercase to lowercase', () => {
8
- assert.strictEqual(normalizeIdentifier('DRY'), 'dry');
9
- assert.strictEqual(normalizeIdentifier('API'), 'api');
10
- assert.strictEqual(normalizeIdentifier('SOLID'), 'solid');
11
- });
12
- it('should handle mixed case', () => {
13
- assert.strictEqual(normalizeIdentifier('DryPrinciple'), 'dryprinciple');
14
- assert.strictEqual(normalizeIdentifier('APIDesign'), 'apidesign');
15
- });
16
- });
17
- describe('kebab-case normalization', () => {
18
- it('should remove hyphens', () => {
19
- assert.strictEqual(normalizeIdentifier('api-design'), 'apidesign');
20
- assert.strictEqual(normalizeIdentifier('dry-principle'), 'dryprinciple');
21
- assert.strictEqual(normalizeIdentifier('my-long-tag-name'), 'mylongtagname');
22
- });
23
- it('should handle uppercase kebab-case', () => {
24
- assert.strictEqual(normalizeIdentifier('API-Design'), 'apidesign');
25
- assert.strictEqual(normalizeIdentifier('DRY-PRINCIPLE'), 'dryprinciple');
26
- });
27
- });
28
- describe('snake_case normalization', () => {
29
- it('should remove underscores', () => {
30
- assert.strictEqual(normalizeIdentifier('api_design'), 'apidesign');
31
- assert.strictEqual(normalizeIdentifier('dry_principle'), 'dryprinciple');
32
- assert.strictEqual(normalizeIdentifier('my_long_tag_name'), 'mylongtagname');
33
- });
34
- it('should handle uppercase snake_case (SCREAMING_SNAKE)', () => {
35
- assert.strictEqual(normalizeIdentifier('API_DESIGN'), 'apidesign');
36
- assert.strictEqual(normalizeIdentifier('DRY_PRINCIPLE'), 'dryprinciple');
37
- });
38
- });
39
- describe('camelCase normalization', () => {
40
- it('should handle camelCase', () => {
41
- assert.strictEqual(normalizeIdentifier('apiDesign'), 'apidesign');
42
- assert.strictEqual(normalizeIdentifier('dryPrinciple'), 'dryprinciple');
43
- assert.strictEqual(normalizeIdentifier('myLongTagName'), 'mylongtagname');
44
- });
45
- it('should handle PascalCase', () => {
46
- assert.strictEqual(normalizeIdentifier('ApiDesign'), 'apidesign');
47
- assert.strictEqual(normalizeIdentifier('DryPrinciple'), 'dryprinciple');
48
- assert.strictEqual(normalizeIdentifier('MyLongTagName'), 'mylongtagname');
49
- });
50
- });
51
- describe('cross-convention equivalence', () => {
52
- it('should normalize kebab, snake, camel to same value', () => {
53
- const normalized = normalizeIdentifier('api-design');
54
- assert.strictEqual(normalizeIdentifier('api_design'), normalized);
55
- assert.strictEqual(normalizeIdentifier('apiDesign'), normalized);
56
- assert.strictEqual(normalizeIdentifier('ApiDesign'), normalized);
57
- assert.strictEqual(normalizeIdentifier('API-DESIGN'), normalized);
58
- assert.strictEqual(normalizeIdentifier('API_DESIGN'), normalized);
59
- });
60
- it('should normalize dry variants to same value', () => {
61
- const normalized = normalizeIdentifier('dry');
62
- assert.strictEqual(normalizeIdentifier('DRY'), normalized);
63
- assert.strictEqual(normalizeIdentifier('Dry'), normalized);
64
- });
65
- it('should normalize complex names correctly', () => {
66
- const normalized = normalizeIdentifier('user-authentication-flow');
67
- assert.strictEqual(normalizeIdentifier('user_authentication_flow'), normalized);
68
- assert.strictEqual(normalizeIdentifier('userAuthenticationFlow'), normalized);
69
- assert.strictEqual(normalizeIdentifier('UserAuthenticationFlow'), normalized);
70
- });
71
- });
72
- describe('edge cases', () => {
73
- it('should handle single character', () => {
74
- assert.strictEqual(normalizeIdentifier('a'), 'a');
75
- assert.strictEqual(normalizeIdentifier('A'), 'a');
76
- });
77
- it('should handle numbers', () => {
78
- assert.strictEqual(normalizeIdentifier('api2'), 'api2');
79
- assert.strictEqual(normalizeIdentifier('api-v2'), 'apiv2');
80
- assert.strictEqual(normalizeIdentifier('api_v2'), 'apiv2');
81
- });
82
- it('should handle consecutive separators', () => {
83
- assert.strictEqual(normalizeIdentifier('api--design'), 'apidesign');
84
- assert.strictEqual(normalizeIdentifier('api__design'), 'apidesign');
85
- assert.strictEqual(normalizeIdentifier('api-_design'), 'apidesign');
86
- });
87
- it('should handle empty string', () => {
88
- assert.strictEqual(normalizeIdentifier(''), '');
89
- });
90
- it('should handle leading/trailing separators', () => {
91
- assert.strictEqual(normalizeIdentifier('-api-'), 'api');
92
- assert.strictEqual(normalizeIdentifier('_api_'), 'api');
93
- });
94
- });
95
- });
96
- });
97
- //# sourceMappingURL=case-insensitive-validator.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"case-insensitive-validator.test.js","sourceRoot":"","sources":["../../../../src/tests/unit/utils/case-insensitive-validator.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AAEnF,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IAC1C,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACnC,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;YAClC,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;gBAC/C,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;gBACtD,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;gBACtD,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;YAC5D,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;gBAClC,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC,CAAC;gBACxE,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC;YACpE,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;YACxC,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;gBAC/B,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,YAAY,CAAC,EAAE,WAAW,CAAC,CAAC;gBACnE,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,eAAe,CAAC,EAAE,cAAc,CAAC,CAAC;gBACzE,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,EAAE,eAAe,CAAC,CAAC;YAC/E,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;gBAC5C,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,YAAY,CAAC,EAAE,WAAW,CAAC,CAAC;gBACnE,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,eAAe,CAAC,EAAE,cAAc,CAAC,CAAC;YAC3E,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;YACxC,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;gBACnC,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,YAAY,CAAC,EAAE,WAAW,CAAC,CAAC;gBACnE,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,eAAe,CAAC,EAAE,cAAc,CAAC,CAAC;gBACzE,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,EAAE,eAAe,CAAC,CAAC;YAC/E,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;gBAC9D,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,YAAY,CAAC,EAAE,WAAW,CAAC,CAAC;gBACnE,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,eAAe,CAAC,EAAE,cAAc,CAAC,CAAC;YAC3E,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;YACvC,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;gBACjC,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC;gBAClE,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC,CAAC;gBACxE,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,eAAe,CAAC,EAAE,eAAe,CAAC,CAAC;YAC5E,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;gBAClC,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC;gBAClE,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC,CAAC;gBACxE,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,eAAe,CAAC,EAAE,eAAe,CAAC,CAAC;YAC5E,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;YAC5C,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;gBAC5D,MAAM,UAAU,GAAG,mBAAmB,CAAC,YAAY,CAAC,CAAC;gBACrD,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC,CAAC;gBAClE,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,WAAW,CAAC,EAAE,UAAU,CAAC,CAAC;gBACjE,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,WAAW,CAAC,EAAE,UAAU,CAAC,CAAC;gBACjE,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC,CAAC;gBAClE,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC,CAAC;YACpE,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;gBACrD,MAAM,UAAU,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;gBAC9C,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,CAAC;gBAC3D,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,CAAC;YAC7D,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;gBAClD,MAAM,UAAU,GAAG,mBAAmB,CAAC,0BAA0B,CAAC,CAAC;gBACnE,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,0BAA0B,CAAC,EAAE,UAAU,CAAC,CAAC;gBAChF,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,wBAAwB,CAAC,EAAE,UAAU,CAAC,CAAC;gBAC9E,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,wBAAwB,CAAC,EAAE,UAAU,CAAC,CAAC;YAChF,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;YAC1B,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;gBACxC,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;gBAClD,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;YACpD,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;gBAC/B,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;gBACxD,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC;gBAC3D,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC;YAC7D,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;gBAC9C,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,aAAa,CAAC,EAAE,WAAW,CAAC,CAAC;gBACpE,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,aAAa,CAAC,EAAE,WAAW,CAAC,CAAC;gBACpE,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,aAAa,CAAC,EAAE,WAAW,CAAC,CAAC;YACtE,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;gBACpC,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YAClD,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;gBACnD,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;gBACxD,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;YAC1D,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"json-export-import.test.d.ts","sourceRoot":"","sources":["../../../src/tests/utils/json-export-import.test.ts"],"names":[],"mappings":"AAAA;;;GAGG"}