ts-prorm-orm 1.1.0 → 1.2.1

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 (460) hide show
  1. package/CHANGELOG.md +95 -0
  2. package/README.md +194 -72
  3. package/dist/audit/history-query.d.ts +35 -0
  4. package/dist/audit/index.d.ts +16 -0
  5. package/dist/audit/logger.d.ts +126 -0
  6. package/dist/cache/cache-manager.d.ts +341 -0
  7. package/dist/cache/index.d.ts +8 -0
  8. package/dist/cache/redis-cluster-cache.d.ts +164 -0
  9. package/dist/cache/redis-cluster-cache.js +19 -36
  10. package/dist/cli/cloud.d.ts +55 -0
  11. package/dist/cli/cloud.js +318 -0
  12. package/dist/cli/commands/auth.d.ts +2 -0
  13. package/dist/cli/commands/auth.js +345 -0
  14. package/dist/cli/commands/billing.d.ts +2 -0
  15. package/dist/cli/commands/billing.js +135 -0
  16. package/dist/cli/commands/code.d.ts +2 -0
  17. package/dist/cli/commands/code.js +168 -0
  18. package/dist/cli/commands/config.d.ts +2 -0
  19. package/dist/cli/commands/config.js +154 -0
  20. package/dist/cli/commands/db.d.ts +2 -0
  21. package/dist/cli/commands/db.js +189 -0
  22. package/dist/cli/commands/index.d.ts +1 -0
  23. package/dist/cli/commands/index.js +22 -0
  24. package/dist/cli/commands/keys.d.ts +2 -0
  25. package/dist/cli/commands/keys.js +100 -0
  26. package/dist/cli/commands/misc.d.ts +2 -0
  27. package/dist/cli/commands/misc.js +282 -0
  28. package/dist/cli/commands/pull.d.ts +2 -0
  29. package/dist/cli/commands/pull.js +306 -0
  30. package/dist/cli/commands/runners.d.ts +2 -0
  31. package/dist/cli/commands/runners.js +218 -0
  32. package/dist/cli/commands/scaffold.d.ts +2 -0
  33. package/dist/cli/commands/scaffold.js +383 -0
  34. package/dist/cli/commands/secrets.d.ts +2 -0
  35. package/dist/cli/commands/secrets.js +162 -0
  36. package/dist/cli/commands/store.d.ts +2 -0
  37. package/dist/cli/commands/store.js +274 -0
  38. package/dist/cli/commands/system.d.ts +10 -0
  39. package/dist/cli/commands/system.js +169 -0
  40. package/dist/cli/commands/teams.d.ts +2 -0
  41. package/dist/cli/commands/teams.js +189 -0
  42. package/dist/cli/commands/user.d.ts +2 -0
  43. package/dist/cli/commands/user.js +171 -0
  44. package/dist/cli/framework.d.ts +103 -0
  45. package/dist/cli/framework.js +436 -0
  46. package/dist/cli/io.d.ts +26 -0
  47. package/dist/cli/io.js +181 -0
  48. package/dist/cli/keychain.d.ts +10 -0
  49. package/dist/cli/keychain.js +101 -0
  50. package/dist/cli/prompt.d.ts +20 -0
  51. package/dist/cli/prompt.js +111 -0
  52. package/dist/cli.d.ts +214 -0
  53. package/dist/cli.js +72 -5
  54. package/dist/compliance/audit-trail.d.ts +66 -0
  55. package/dist/compliance/backup-verification.d.ts +279 -0
  56. package/dist/compliance/breach-detector.d.ts +197 -0
  57. package/dist/compliance/consent-record.d.ts +107 -0
  58. package/dist/compliance/consent-versioning.d.ts +169 -0
  59. package/dist/compliance/cross-border-log.d.ts +254 -0
  60. package/dist/compliance/data-classifier.d.ts +127 -0
  61. package/dist/compliance/data-lineage.d.ts +268 -0
  62. package/dist/compliance/data-masker.d.ts +110 -0
  63. package/dist/compliance/data-portability.d.ts +98 -0
  64. package/dist/compliance/data-retention.d.ts +108 -0
  65. package/dist/compliance/dsar-workflow.d.ts +175 -0
  66. package/dist/compliance/field-encryption.d.ts +84 -0
  67. package/dist/compliance/immutable-record.d.ts +84 -0
  68. package/dist/compliance/index.d.ts +93 -0
  69. package/dist/compliance/privacy-impact-assessment.d.ts +196 -0
  70. package/dist/compliance/pseudonymization.d.ts +96 -0
  71. package/dist/compliance/query-firewall.d.ts +661 -0
  72. package/dist/compliance/rate-limiter.d.ts +203 -0
  73. package/dist/compliance/right-to-erasure.d.ts +96 -0
  74. package/dist/compliance/row-level-security.d.ts +152 -0
  75. package/dist/compliance/security-decorator.d.ts +388 -0
  76. package/dist/compliance/security-monitor.d.ts +170 -0
  77. package/dist/compliance/sensitive-data-discovery.d.ts +151 -0
  78. package/dist/compliance/session-isolation.d.ts +286 -0
  79. package/dist/compliance/tls-enforcer.d.ts +51 -0
  80. package/dist/compliance/worm-storage.d.ts +225 -0
  81. package/dist/connection-manager.d.ts +130 -0
  82. package/dist/connection-pool.d.ts +311 -0
  83. package/dist/decorators/audit.d.ts +49 -0
  84. package/dist/decorators/check.d.ts +218 -0
  85. package/dist/decorators/collate.d.ts +346 -0
  86. package/dist/decorators/comment.d.ts +51 -0
  87. package/dist/decorators/database-settings.d.ts +193 -0
  88. package/dist/decorators/default.d.ts +148 -0
  89. package/dist/decorators/encryption.d.ts +175 -0
  90. package/dist/decorators/engine.d.ts +97 -0
  91. package/dist/decorators/fk-constraints.d.ts +387 -0
  92. package/dist/decorators/foreign-table.d.ts +57 -0
  93. package/dist/decorators/generated.d.ts +232 -0
  94. package/dist/decorators/hstore.d.ts +96 -0
  95. package/dist/decorators/index.d.ts +57 -0
  96. package/dist/decorators/index.js +14 -30
  97. package/dist/decorators/json-column.d.ts +47 -0
  98. package/dist/decorators/jsonb.d.ts +83 -0
  99. package/dist/decorators/orm-decorators.d.ts +274 -0
  100. package/dist/decorators/permissions.d.ts +192 -0
  101. package/dist/decorators/procedure.d.ts +168 -0
  102. package/dist/decorators/procedure.js +31 -7
  103. package/dist/decorators/query-options.d.ts +527 -0
  104. package/dist/decorators/range.d.ts +122 -0
  105. package/dist/decorators/set-column.d.ts +43 -0
  106. package/dist/decorators/spatial.d.ts +60 -0
  107. package/dist/decorators/storage.d.ts +561 -0
  108. package/dist/decorators/timezone.d.ts +319 -0
  109. package/dist/decorators/trigger.d.ts +50 -0
  110. package/dist/decorators/uuid.d.ts +102 -0
  111. package/dist/decorators/view.d.ts +213 -0
  112. package/dist/diagrams/chen-diagram.d.ts +70 -0
  113. package/dist/diagrams/chen-diagram.js +33 -31
  114. package/dist/diagrams/class-diagram.d.ts +78 -0
  115. package/dist/diagrams/class-diagram.js +23 -27
  116. package/dist/diagrams/dependency-diagram.d.ts +82 -0
  117. package/dist/diagrams/dependency-diagram.js +18 -9
  118. package/dist/diagrams/er-diagram.d.ts +82 -0
  119. package/dist/diagrams/er-diagram.js +174 -231
  120. package/dist/diagrams/flow-diagram.d.ts +70 -0
  121. package/dist/diagrams/flow-diagram.js +23 -18
  122. package/dist/diagrams/gantt-diagram.d.ts +67 -0
  123. package/dist/diagrams/gantt-diagram.js +20 -18
  124. package/dist/diagrams/index-diagram.d.ts +61 -0
  125. package/dist/diagrams/index-diagram.js +36 -31
  126. package/dist/diagrams/index.d.ts +155 -0
  127. package/dist/diagrams/index.js +7 -1
  128. package/dist/diagrams/migration-diagram.d.ts +67 -0
  129. package/dist/diagrams/migration-diagram.js +45 -57
  130. package/dist/diagrams/model-diagram.d.ts +85 -0
  131. package/dist/diagrams/model-diagram.js +225 -287
  132. package/dist/diagrams/package-diagram.d.ts +69 -0
  133. package/dist/diagrams/package-diagram.js +30 -32
  134. package/dist/diagrams/palette.d.ts +138 -0
  135. package/dist/diagrams/palette.js +134 -25
  136. package/dist/diagrams/relational-diagram.d.ts +82 -0
  137. package/dist/diagrams/relational-diagram.js +51 -59
  138. package/dist/diagrams/schemadoc-diagram.d.ts +57 -0
  139. package/dist/diagrams/schemadoc-diagram.js +36 -28
  140. package/dist/diagrams/sequence-diagram.d.ts +61 -0
  141. package/dist/diagrams/sequence-diagram.js +20 -11
  142. package/dist/diagrams/state-diagram.d.ts +85 -0
  143. package/dist/diagrams/state-diagram.js +21 -17
  144. package/dist/diagrams/svg-dom.d.ts +62 -0
  145. package/dist/diagrams/svg-dom.js +11 -0
  146. package/dist/diagrams/tree-diagram.d.ts +47 -0
  147. package/dist/diagrams/tree-diagram.js +19 -10
  148. package/dist/dialects/clickhouse/index.d.ts +660 -0
  149. package/dist/dialects/clickhouse/index.js +107 -2
  150. package/dist/dialects/cockroachdb/index.d.ts +1708 -0
  151. package/dist/dialects/cockroachdb/index.js +139 -10
  152. package/dist/dialects/cratedb/index.d.ts +262 -0
  153. package/dist/dialects/cratedb/index.js +148 -0
  154. package/dist/dialects/databricks/index.d.ts +397 -0
  155. package/dist/dialects/databricks/index.js +233 -11
  156. package/dist/dialects/db2/index.d.ts +729 -0
  157. package/dist/dialects/db2/index.js +152 -2
  158. package/dist/dialects/dialect.d.ts +1653 -0
  159. package/dist/dialects/duckdb/index.d.ts +440 -0
  160. package/dist/dialects/duckdb/index.js +21 -37
  161. package/dist/dialects/exasol/index.d.ts +197 -0
  162. package/dist/dialects/exasol/index.js +14 -0
  163. package/dist/dialects/firebird/index.d.ts +286 -0
  164. package/dist/dialects/firebird/index.js +135 -0
  165. package/dist/dialects/greenplum/index.d.ts +336 -0
  166. package/dist/dialects/greenplum/index.js +168 -0
  167. package/dist/dialects/hana/index.d.ts +512 -0
  168. package/dist/dialects/hana/index.js +17 -35
  169. package/dist/dialects/mariadb/index.d.ts +1241 -0
  170. package/dist/dialects/mariadb/index.js +181 -43
  171. package/dist/dialects/mssql/index.d.ts +729 -0
  172. package/dist/dialects/mssql/index.js +76 -7
  173. package/dist/dialects/mysql/index.d.ts +1233 -0
  174. package/dist/dialects/mysql/index.js +87 -19
  175. package/dist/dialects/oracle/index.d.ts +1222 -0
  176. package/dist/dialects/oracle/index.js +210 -9
  177. package/dist/dialects/postgres/index.d.ts +1598 -0
  178. package/dist/dialects/postgres/index.js +34 -13
  179. package/dist/dialects/query-stream-helper.d.ts +58 -0
  180. package/dist/dialects/questdb/index.d.ts +430 -0
  181. package/dist/dialects/questdb/index.js +292 -0
  182. package/dist/dialects/redshift/index.d.ts +933 -0
  183. package/dist/dialects/redshift/index.js +17 -5
  184. package/dist/dialects/singlestore/index.d.ts +233 -0
  185. package/dist/dialects/singlestore/index.js +53 -0
  186. package/dist/dialects/snowflake/index.d.ts +727 -0
  187. package/dist/dialects/snowflake/index.js +154 -5
  188. package/dist/dialects/spanner/index.d.ts +660 -0
  189. package/dist/dialects/spanner/index.js +43 -21
  190. package/dist/dialects/sqlite/index.d.ts +1133 -0
  191. package/dist/dialects/sqlite/index.js +168 -30
  192. package/dist/dialects/tidb/index.d.ts +226 -0
  193. package/dist/dialects/tidb/index.js +10 -0
  194. package/dist/dialects/timescaledb/index.d.ts +286 -0
  195. package/dist/dialects/timescaledb/index.js +179 -0
  196. package/dist/dialects/trino/index.d.ts +230 -0
  197. package/dist/dialects/trino/index.js +85 -10
  198. package/dist/dialects/turso/index.d.ts +98 -0
  199. package/dist/dialects/turso/index.js +10 -0
  200. package/dist/dialects/vertica/index.d.ts +321 -0
  201. package/dist/dialects/vertica/index.js +161 -0
  202. package/dist/dialects/yugabytedb/index.d.ts +276 -0
  203. package/dist/dialects/yugabytedb/index.js +121 -0
  204. package/dist/errors/index.d.ts +378 -0
  205. package/dist/errors/index.js +29 -1
  206. package/dist/errors/utils.d.ts +53 -0
  207. package/dist/errors.d.ts +5 -0
  208. package/dist/extensions/catalog/cloud-warehouse-features.d.ts +27 -0
  209. package/dist/extensions/catalog/mssql-features.d.ts +20 -0
  210. package/dist/extensions/catalog/mysql-mariadb-plugins.d.ts +18 -0
  211. package/dist/extensions/catalog/oracle-db2-features.d.ts +17 -0
  212. package/dist/extensions/catalog/postgres-extensions.d.ts +15 -0
  213. package/dist/extensions/index.d.ts +34 -0
  214. package/dist/extensions/types.d.ts +43 -0
  215. package/dist/external-fields/adapters.d.ts +50 -0
  216. package/dist/external-fields/adapters.js +227 -0
  217. package/dist/external-fields/decorator.d.ts +77 -0
  218. package/dist/external-fields/decorator.js +80 -0
  219. package/dist/external-fields/index.d.ts +10 -0
  220. package/dist/external-fields/index.js +19 -0
  221. package/dist/external-fields/runtime.d.ts +39 -0
  222. package/dist/external-fields/runtime.js +221 -0
  223. package/dist/foreign-data.d.ts +168 -0
  224. package/dist/graph/base-graph-dialect.d.ts +250 -0
  225. package/dist/graph/base-graph-dialect.js +539 -0
  226. package/dist/graph/dgraph/index.d.ts +65 -0
  227. package/dist/graph/dgraph/index.js +559 -0
  228. package/dist/graph/gremlin/index.d.ts +59 -0
  229. package/dist/graph/gremlin/index.js +378 -0
  230. package/dist/graph/index.d.ts +60 -0
  231. package/dist/graph/index.js +67 -0
  232. package/dist/graph/neo4j/index.d.ts +50 -0
  233. package/dist/graph/neo4j/index.js +462 -0
  234. package/dist/graph/types.d.ts +213 -0
  235. package/dist/graph/types.js +234 -0
  236. package/dist/hooks/hooks-manager.d.ts +189 -0
  237. package/dist/hooks/index.d.ts +8 -0
  238. package/dist/index.d.ts +713 -0
  239. package/dist/index.js +36 -4
  240. package/dist/logging.d.ts +183 -0
  241. package/dist/migrations/index.d.ts +9 -0
  242. package/dist/migrations/migration.d.ts +143 -0
  243. package/dist/migrations/migrator.d.ts +199 -0
  244. package/dist/migrations/prormmigration.d.ts +131 -0
  245. package/dist/migrations/query-interface.d.ts +335 -0
  246. package/dist/migrations/seeder.d.ts +167 -0
  247. package/dist/models/associations.d.ts +131 -0
  248. package/dist/models/associations.js +7 -2
  249. package/dist/models/constraints.d.ts +175 -0
  250. package/dist/models/data-types.d.ts +1656 -0
  251. package/dist/models/decorators.d.ts +328 -0
  252. package/dist/models/decorators.js +61 -82
  253. package/dist/models/eager-load.d.ts +86 -0
  254. package/dist/models/eager-load.js +369 -0
  255. package/dist/models/index.d.ts +13 -0
  256. package/dist/models/indexes.d.ts +325 -0
  257. package/dist/models/methods.d.ts +419 -0
  258. package/dist/models/model-manager.d.ts +76 -0
  259. package/dist/models/model.d.ts +820 -0
  260. package/dist/models/model.js +15 -101
  261. package/dist/models/operators.d.ts +29 -0
  262. package/dist/models/scopes.d.ts +71 -0
  263. package/dist/models/typescript-types.d.ts +177 -0
  264. package/dist/nosql/aerospike/index.d.ts +126 -0
  265. package/dist/nosql/allegrograph/index.d.ts +86 -0
  266. package/dist/nosql/arangodb/index.d.ts +285 -0
  267. package/dist/nosql/arangodb/index.js +274 -2
  268. package/dist/nosql/arangodb/where.d.ts +38 -0
  269. package/dist/nosql/arangodb/where.js +94 -0
  270. package/dist/nosql/azure-blob/index.d.ts +104 -0
  271. package/dist/nosql/beanstalkd/index.d.ts +88 -0
  272. package/dist/nosql/beequeue/index.d.ts +99 -0
  273. package/dist/nosql/bigchaindb/index.d.ts +113 -0
  274. package/dist/nosql/bigtable/index.d.ts +144 -0
  275. package/dist/nosql/blazegraph/index.d.ts +88 -0
  276. package/dist/nosql/bullmq/index.d.ts +83 -0
  277. package/dist/nosql/cassandra/index.d.ts +119 -0
  278. package/dist/nosql/chroma/index.d.ts +151 -0
  279. package/dist/nosql/cloudflare-kv/index.d.ts +120 -0
  280. package/dist/nosql/coherence/index.d.ts +91 -0
  281. package/dist/nosql/cosmosdb/index.d.ts +78 -0
  282. package/dist/nosql/couchbase/index.d.ts +103 -0
  283. package/dist/nosql/dax/index.d.ts +118 -0
  284. package/dist/nosql/deno-kv/index.d.ts +109 -0
  285. package/dist/nosql/dgraph/index.d.ts +80 -0
  286. package/dist/nosql/doris/index.d.ts +88 -0
  287. package/dist/nosql/druid/index.d.ts +95 -0
  288. package/dist/nosql/dynamodb/index.d.ts +643 -0
  289. package/dist/nosql/dynamodb/index.js +423 -0
  290. package/dist/nosql/elasticsearch/index.d.ts +239 -0
  291. package/dist/nosql/etcd/index.d.ts +243 -0
  292. package/dist/nosql/eventhubs/index.d.ts +89 -0
  293. package/dist/nosql/eventstore/index.d.ts +102 -0
  294. package/dist/nosql/faunadb/index.d.ts +141 -0
  295. package/dist/nosql/faunadb/index.js +329 -0
  296. package/dist/nosql/firestore/index.d.ts +67 -0
  297. package/dist/nosql/fluree/index.d.ts +88 -0
  298. package/dist/nosql/fuseki/index.d.ts +94 -0
  299. package/dist/nosql/gcs/index.d.ts +62 -0
  300. package/dist/nosql/gearman/index.d.ts +77 -0
  301. package/dist/nosql/geode/index.d.ts +93 -0
  302. package/dist/nosql/graphdb/index.d.ts +86 -0
  303. package/dist/nosql/graylog/index.d.ts +118 -0
  304. package/dist/nosql/gridgain/index.d.ts +78 -0
  305. package/dist/nosql/hazelcast/index.d.ts +73 -0
  306. package/dist/nosql/hbase/index.d.ts +123 -0
  307. package/dist/nosql/ignite/index.d.ts +80 -0
  308. package/dist/nosql/immudb/index.d.ts +131 -0
  309. package/dist/nosql/index.d.ts +215 -0
  310. package/dist/nosql/infinispan/index.d.ts +95 -0
  311. package/dist/nosql/influxdb/flux-compiler.d.ts +23 -0
  312. package/dist/nosql/influxdb/flux-compiler.js +170 -0
  313. package/dist/nosql/influxdb/index.d.ts +300 -0
  314. package/dist/nosql/influxdb/index.js +0 -0
  315. package/dist/nosql/kafka/index.d.ts +113 -0
  316. package/dist/nosql/keyspaces/index.d.ts +122 -0
  317. package/dist/nosql/kinesis/index.d.ts +121 -0
  318. package/dist/nosql/leveldb/index.d.ts +112 -0
  319. package/dist/nosql/leveldb/index.js +103 -1
  320. package/dist/nosql/lmdb/index.d.ts +76 -0
  321. package/dist/nosql/loki/index.d.ts +126 -0
  322. package/dist/nosql/marklogic/index.d.ts +76 -0
  323. package/dist/nosql/materialize/index.d.ts +91 -0
  324. package/dist/nosql/meilisearch/index.d.ts +76 -0
  325. package/dist/nosql/memcached/index.d.ts +138 -0
  326. package/dist/nosql/milvus/index.d.ts +167 -0
  327. package/dist/nosql/minio/index.d.ts +122 -0
  328. package/dist/nosql/momento/index.d.ts +99 -0
  329. package/dist/nosql/mongodb/index.d.ts +265 -0
  330. package/dist/nosql/mongodb/index.js +139 -0
  331. package/dist/nosql/mongodb/where.d.ts +8 -0
  332. package/dist/nosql/mongodb/where.js +181 -0
  333. package/dist/nosql/nats/index.d.ts +139 -0
  334. package/dist/nosql/nedb/index.d.ts +79 -0
  335. package/dist/nosql/neo4j/index.d.ts +217 -0
  336. package/dist/nosql/neo4j/index.js +26 -14
  337. package/dist/nosql/neptune/index.d.ts +234 -0
  338. package/dist/nosql/neptune/index.js +23 -9
  339. package/dist/nosql/nsq/index.d.ts +93 -0
  340. package/dist/nosql/opensearch/index.d.ts +97 -0
  341. package/dist/nosql/orientdb/index.d.ts +72 -0
  342. package/dist/nosql/papertrail/index.d.ts +120 -0
  343. package/dist/nosql/pinecone/index.d.ts +148 -0
  344. package/dist/nosql/pinot/index.d.ts +90 -0
  345. package/dist/nosql/pouchdb/index.d.ts +95 -0
  346. package/dist/nosql/prometheus/index.d.ts +112 -0
  347. package/dist/nosql/provendb/index.d.ts +143 -0
  348. package/dist/nosql/provendb/index.js +262 -0
  349. package/dist/nosql/pubsub/index.d.ts +83 -0
  350. package/dist/nosql/pulsar/index.d.ts +105 -0
  351. package/dist/nosql/qdrant/index.d.ts +231 -0
  352. package/dist/nosql/qldb/index.d.ts +182 -0
  353. package/dist/nosql/qldb/index.js +302 -1
  354. package/dist/nosql/r2/index.d.ts +160 -0
  355. package/dist/nosql/rabbitmq/index.d.ts +131 -0
  356. package/dist/nosql/ravendb/index.d.ts +138 -0
  357. package/dist/nosql/ravendb/index.js +323 -9
  358. package/dist/nosql/ravendb/where.d.ts +38 -0
  359. package/dist/nosql/ravendb/where.js +94 -0
  360. package/dist/nosql/redis/index.d.ts +267 -0
  361. package/dist/nosql/redis/index.js +19 -5
  362. package/dist/nosql/redpanda/index.d.ts +117 -0
  363. package/dist/nosql/resque/index.d.ts +91 -0
  364. package/dist/nosql/rethinkdb/index.d.ts +194 -0
  365. package/dist/nosql/rethinkdb/index.js +290 -0
  366. package/dist/nosql/rethinkdb/where.d.ts +38 -0
  367. package/dist/nosql/rethinkdb/where.js +94 -0
  368. package/dist/nosql/rocksdb/document-layer.d.ts +162 -0
  369. package/dist/nosql/rocksdb/document-layer.js +338 -0
  370. package/dist/nosql/rocksdb/index.d.ts +112 -0
  371. package/dist/nosql/rocksdb/index.js +103 -1
  372. package/dist/nosql/rocksdb/where-match.d.ts +21 -0
  373. package/dist/nosql/rocksdb/where-match.js +238 -0
  374. package/dist/nosql/rockset/index.d.ts +84 -0
  375. package/dist/nosql/s3/index.d.ts +170 -0
  376. package/dist/nosql/scylladb/index.d.ts +117 -0
  377. package/dist/nosql/signoz/index.d.ts +116 -0
  378. package/dist/nosql/sns/index.d.ts +99 -0
  379. package/dist/nosql/solr/index.d.ts +129 -0
  380. package/dist/nosql/splunk/index.d.ts +125 -0
  381. package/dist/nosql/sqs/index.d.ts +116 -0
  382. package/dist/nosql/stardog/index.d.ts +86 -0
  383. package/dist/nosql/starrocks/index.d.ts +89 -0
  384. package/dist/nosql/store.d.ts +23 -0
  385. package/dist/nosql/sumologic/index.d.ts +119 -0
  386. package/dist/nosql/surrealdb/index.d.ts +156 -0
  387. package/dist/nosql/surrealdb/index.js +174 -1
  388. package/dist/nosql/surrealdb/query-compiler.d.ts +26 -0
  389. package/dist/nosql/surrealdb/query-compiler.js +193 -0
  390. package/dist/nosql/terminusdb/index.d.ts +95 -0
  391. package/dist/nosql/tigergraph/index.d.ts +314 -0
  392. package/dist/nosql/typesense/index.d.ts +82 -0
  393. package/dist/nosql/unqlite/index.d.ts +68 -0
  394. package/dist/nosql/upstash/index.d.ts +80 -0
  395. package/dist/nosql/vercel-kv/index.d.ts +82 -0
  396. package/dist/nosql/victoriametrics/index.d.ts +129 -0
  397. package/dist/nosql/virtuoso/index.d.ts +87 -0
  398. package/dist/nosql/weaviate/index.d.ts +196 -0
  399. package/dist/operators/index.d.ts +7 -0
  400. package/dist/operators.d.ts +2947 -0
  401. package/dist/operators.js +46 -1
  402. package/dist/prisma-migrate/index.d.ts +28 -0
  403. package/dist/prisma-migrate/migration-generator.d.ts +21 -0
  404. package/dist/prisma-migrate/model-generator.d.ts +12 -0
  405. package/dist/prisma-migrate/relations.d.ts +28 -0
  406. package/dist/prisma-migrate/schema-parser.d.ts +42 -0
  407. package/dist/prisma-migrate/type-mapper.d.ts +20 -0
  408. package/dist/prorm.d.ts +2093 -0
  409. package/dist/prorm.js +721 -302
  410. package/dist/query-builders/cte-builder.d.ts +104 -0
  411. package/dist/query-builders/functions/aggregate.d.ts +199 -0
  412. package/dist/query-builders/functions/conditional.d.ts +195 -0
  413. package/dist/query-builders/functions/datetime.d.ts +202 -0
  414. package/dist/query-builders/functions/fulltext.d.ts +220 -0
  415. package/dist/query-builders/functions/index.d.ts +17 -0
  416. package/dist/query-builders/functions/json.d.ts +157 -0
  417. package/dist/query-builders/functions/math.d.ts +215 -0
  418. package/dist/query-builders/functions/string.d.ts +233 -0
  419. package/dist/query-builders/functions/window.d.ts +209 -0
  420. package/dist/query-builders/include-builder.d.ts +85 -0
  421. package/dist/query-builders/index-expression-builder.d.ts +153 -0
  422. package/dist/query-builders/index.d.ts +121 -0
  423. package/dist/query-builders/index.js +10 -0
  424. package/dist/query-builders/insert-builder.d.ts +62 -0
  425. package/dist/query-builders/model-helpers.d.ts +28 -0
  426. package/dist/query-builders/order-limit-builder.d.ts +84 -0
  427. package/dist/query-builders/sql-compiler.d.ts +562 -0
  428. package/dist/query-builders/subquery-builder.d.ts +133 -0
  429. package/dist/query-builders/update-builder.d.ts +71 -0
  430. package/dist/query-builders/view-builder.d.ts +189 -0
  431. package/dist/query-builders/where-builder.d.ts +124 -0
  432. package/dist/query-interface.d.ts +407 -0
  433. package/dist/query-interface.js +84 -0
  434. package/dist/query-optimizers/batch-optimizer.d.ts +175 -0
  435. package/dist/query-optimizers/explain-plans.d.ts +187 -0
  436. package/dist/query-optimizers/index.d.ts +27 -0
  437. package/dist/query-optimizers/prepared-statement-cache.d.ts +252 -0
  438. package/dist/query-optimizers/query-hints.d.ts +201 -0
  439. package/dist/query-optimizers/query-optimizer.d.ts +162 -0
  440. package/dist/query-optimizers/slow-query-logger.d.ts +186 -0
  441. package/dist/replica-manager.d.ts +235 -0
  442. package/dist/schema/index.d.ts +7 -0
  443. package/dist/schema/migration-generator.d.ts +74 -0
  444. package/dist/schema/schema-differ.d.ts +114 -0
  445. package/dist/schema/types.d.ts +246 -0
  446. package/dist/schema-objects.d.ts +78 -0
  447. package/dist/schema-objects.js +203 -0
  448. package/dist/sql-constants.d.ts +240 -0
  449. package/dist/sqlite-advanced.d.ts +572 -0
  450. package/dist/streams/index.d.ts +5 -0
  451. package/dist/streams/transforms.d.ts +120 -0
  452. package/dist/transaction.d.ts +221 -0
  453. package/dist/types/index.d.ts +3123 -0
  454. package/dist/user-management.d.ts +141 -0
  455. package/dist/utils/date.d.ts +149 -0
  456. package/dist/utils/index.d.ts +359 -0
  457. package/dist/utils/string.d.ts +88 -0
  458. package/dist/validators/index.d.ts +7 -0
  459. package/dist/validators/validator.d.ts +306 -0
  460. package/package.json +20 -5
@@ -123,42 +123,38 @@ class RelationalDiagram {
123
123
  }
124
124
  // ── Render a single entity box ───────────────────────────────────────────
125
125
  renderBox(doc, svg, box, idx) {
126
+ void doc;
126
127
  const { entity, x, y, w, h } = box;
127
128
  const t = (0, palette_1.resolveTheme)(this.opts.theme);
128
- const palettes = (0, palette_1.rotatedPalettes)(this.opts.color);
129
- const accent = palettes[idx % palettes.length];
129
+ const primary = (0, palette_1.resolveAccent)(this.opts.color);
130
+ const secondary = (0, palette_1.accent2Of)(primary);
131
+ // Two-tone blueprint: even entities accent, odd accent-2.
132
+ const header = idx % 2 === 0 ? primary.mid : secondary.color;
133
+ const accentText = primary.text;
134
+ const accent2Text = secondary.text;
130
135
  const HDR = RelationalDiagram.HDR_H;
131
136
  const ROW = RelationalDiagram.ROW_H;
132
- const R = 8;
133
- const uid = entity.name.replace(/\W/g, '') + idx;
134
- // Header gradient (accent-driven → responds to `color`).
135
- const gradId = doc.linearGradient(`relhg${uid}`, [
136
- [0, accent.from],
137
- [100, accent.mid],
138
- ]);
139
- // Shell / shadow.
137
+ // Surface + hairline frame (square).
138
+ svg.child('rect', { x, y, width: w, height: h, fill: t.cardBg });
140
139
  svg.child('rect', {
141
- x: x - 1,
142
- y: y - 1,
143
- width: w + 2,
144
- height: h + 2,
145
- rx: R + 1,
146
- fill: t.border,
140
+ x,
141
+ y,
142
+ width: w,
143
+ height: h,
144
+ fill: 'none',
145
+ stroke: t.border,
146
+ 'stroke-width': 1,
147
147
  });
148
- // Surface.
149
- svg.child('rect', { x, y, width: w, height: h, rx: R, fill: t.cardBg });
150
- // Header band (rounded top, flattened bottom).
151
- svg.child('rect', { x, y, width: w, height: HDR, rx: R, fill: `url(#${gradId})` });
152
- svg.child('rect', { x, y: y + HDR - R, width: w, height: R, fill: `url(#${gradId})` });
148
+ // Header (solid accent bar).
149
+ svg.child('rect', { x, y, width: w, height: HDR, fill: header });
153
150
  svg
154
151
  .child('text', {
155
- x: x + w / 2,
156
- y: y + 26,
157
- 'font-family': 'system-ui,-apple-system,sans-serif',
152
+ x: x + 12,
153
+ y: y + 25,
154
+ 'font-family': palette_1.FONTS.heading,
158
155
  'font-size': 16,
159
- 'font-weight': 800,
156
+ 'font-weight': 600,
160
157
  fill: '#FFFFFF',
161
- 'text-anchor': 'middle',
162
158
  })
163
159
  .text(entity.name);
164
160
  // Column rows.
@@ -173,46 +169,45 @@ class RelationalDiagram {
173
169
  // Key marker.
174
170
  const markX = x + 14;
175
171
  if (isPK) {
176
- svg.child('circle', { cx: markX, cy: midY, r: 4, fill: '#F59E0B' });
172
+ svg.child('circle', { cx: markX, cy: midY, r: 3.5, fill: primary.mid });
177
173
  }
178
174
  else if (isFK) {
179
175
  svg.child('circle', {
180
176
  cx: markX,
181
177
  cy: midY,
182
- r: 4,
178
+ r: 3.5,
183
179
  fill: 'none',
184
- stroke: '#3B82F6',
180
+ stroke: secondary.color,
185
181
  'stroke-width': 1.6,
186
182
  });
187
183
  }
188
184
  else {
189
- svg.child('circle', { cx: markX, cy: midY, r: 2.5, fill: t.textSecondary });
185
+ svg.child('circle', { cx: markX, cy: midY, r: 2, fill: palette_1.INDUSTRY.neutral[400] });
190
186
  }
191
187
  // Column name (PK underlined, PK/FK colored+bold).
192
- const nameColor = isPK ? '#B45309' : isFK ? '#2563EB' : t.textPrimary;
193
- const nameWeight = isPK ? 700 : isFK ? 600 : 400;
188
+ const nameColor = isPK ? accentText : isFK ? accent2Text : t.textPrimary;
189
+ const nameWeight = isPK ? 600 : isFK ? 600 : 400;
194
190
  const nameX = x + 28;
195
191
  svg
196
192
  .child('text', {
197
193
  x: nameX,
198
194
  y: textY,
199
- 'font-family': "'SF Mono','Fira Code',monospace",
195
+ 'font-family': palette_1.FONTS.mono,
200
196
  'font-size': 11,
201
197
  'font-weight': nameWeight,
202
198
  'text-decoration': isPK ? 'underline' : undefined,
203
199
  fill: nameColor,
204
200
  })
205
201
  .text(colDef.name);
206
- // Type (right-aligned).
202
+ // Type (right-aligned, mono neutral).
207
203
  if (colDef.type) {
208
204
  svg
209
205
  .child('text', {
210
206
  x: x + w - 10,
211
207
  y: textY,
212
- 'font-family': "'SF Mono',monospace",
208
+ 'font-family': palette_1.FONTS.mono,
213
209
  'font-size': 10,
214
- 'font-weight': 500,
215
- fill: t.textSecondary,
210
+ fill: palette_1.INDUSTRY.neutral[700],
216
211
  'text-anchor': 'end',
217
212
  })
218
213
  .text(colDef.type);
@@ -223,21 +218,21 @@ class RelationalDiagram {
223
218
  .child('text', {
224
219
  x: nameX,
225
220
  y: ry + ROW - 4,
226
- 'font-family': 'monospace',
227
- 'font-size': 7,
228
- 'font-weight': 700,
229
- fill: isPK ? '#B45309' : '#2563EB',
221
+ 'font-family': palette_1.FONTS.heading,
222
+ 'font-size': 8,
223
+ 'font-weight': 600,
224
+ fill: isPK ? accentText : accent2Text,
230
225
  })
231
226
  .text(isPK ? 'PK' : 'FK');
232
227
  }
233
- // Row separator.
228
+ // Row separator (hairline).
234
229
  svg.child('line', {
235
230
  x1: x,
236
231
  y1: ry + ROW,
237
232
  x2: x + w,
238
233
  y2: ry + ROW,
239
234
  stroke: t.border,
240
- 'stroke-width': 0.5,
235
+ 'stroke-width': 1,
241
236
  });
242
237
  });
243
238
  }
@@ -359,28 +354,27 @@ class RelationalDiagram {
359
354
  this.crowFoot(group, q.x, q.y, sideB, color);
360
355
  else
361
356
  this.oneBar(group, q.x, q.y, sideB, color);
362
- // Midpoint label.
357
+ // Midpoint label (mono, hairline chip).
363
358
  const label = rel.label ?? rel.type;
364
359
  const mx = (p.x + q.x) / 2;
365
360
  const my = (p.y + q.y) / 2;
366
- const lw = label.length * 6.5 + 14;
361
+ const lw = label.length * 7 + 14;
367
362
  group.child('rect', {
368
363
  x: mx - lw / 2,
369
364
  y: my - 10,
370
365
  width: lw,
371
366
  height: 18,
372
- rx: 5,
367
+ rx: 0,
373
368
  fill: (0, palette_1.resolveTheme)(this.opts.theme).cardBg,
374
369
  stroke: color,
375
370
  'stroke-width': 1,
376
- opacity: 0.95,
377
371
  });
378
372
  group
379
373
  .child('text', {
380
374
  x: mx,
381
375
  y: my + 3,
382
- 'font-family': 'system-ui,sans-serif',
383
- 'font-size': 9,
376
+ 'font-family': palette_1.FONTS.mono,
377
+ 'font-size': 10,
384
378
  'font-weight': 600,
385
379
  fill: color,
386
380
  'text-anchor': 'middle',
@@ -404,21 +398,19 @@ class RelationalDiagram {
404
398
  const totalH = maxY + MARGIN;
405
399
  const doc = new svg_dom_1.SvgDocument(totalW, totalH);
406
400
  const svg = doc.root;
407
- // Canvas background (theme-driven responds to `theme`).
401
+ // Web fonts for browser renderers.
402
+ doc.style(palette_1.FONT_IMPORT);
403
+ // Canvas ground (theme-driven → responds to `theme`).
408
404
  svg.child('rect', { width: totalW, height: totalH, fill: t.canvasBg });
409
- // Banner (accent-driven fill so `color` shows here too).
410
- const bannerGrad = doc.linearGradient('relBanner', [
411
- [0, accent.from],
412
- [100, accent.mid],
413
- ], { x2: 1, y2: 0 });
414
- svg.child('rect', { width: totalW, height: BANNER, fill: `url(#${bannerGrad})` });
405
+ // Banner (solid accent bar so `color` shows here too).
406
+ svg.child('rect', { width: totalW, height: BANNER, fill: accent.mid });
415
407
  svg
416
408
  .child('text', {
417
409
  x: 24,
418
410
  y: 38,
419
- 'font-family': 'system-ui,-apple-system,sans-serif',
420
- 'font-size': 22,
421
- 'font-weight': 800,
411
+ 'font-family': palette_1.FONTS.heading,
412
+ 'font-size': 24,
413
+ 'font-weight': 600,
422
414
  fill: '#FFFFFF',
423
415
  })
424
416
  .text(title);
@@ -0,0 +1,57 @@
1
+ /**
2
+ * SchemaDocDiagram — generates a print-friendly "data dictionary" / schema
3
+ * documentation sheet as SVG.
4
+ *
5
+ * Where ERDiagram / ModelDiagram render the *visual* shape of a schema, this
6
+ * generator renders the *reference* counterpart: for every table a titled
7
+ * section followed by a tabular grid with one row per column, listing
8
+ * Column · Type · Nullable · Key · Default · Description. Rows are
9
+ * zebra-striped and each grid's header row is painted in the accent color.
10
+ * A document title banner and a summary line ("N tables, M columns") top the
11
+ * sheet.
12
+ *
13
+ * All markup is built against a real DOM document (see ./svg-dom) — never by
14
+ * concatenating strings — and both `--theme` and `--color` genuinely change
15
+ * fill/stroke values in the output.
16
+ *
17
+ * Usage:
18
+ * const doc = new SchemaDocDiagram({ tables: [...], title: 'My Schema' });
19
+ * doc.save('./diagrams/schema.svg');
20
+ * // or:
21
+ * const svgString = doc.generate();
22
+ */
23
+ export interface DocColumn {
24
+ name: string;
25
+ type: string;
26
+ nullable?: boolean;
27
+ key?: 'PK' | 'FK' | 'UQ' | '';
28
+ default?: string;
29
+ description?: string;
30
+ }
31
+ export interface DocTable {
32
+ name: string;
33
+ comment?: string;
34
+ columns: DocColumn[];
35
+ }
36
+ export interface SchemaDocDiagramOptions {
37
+ tables: DocTable[];
38
+ title?: string;
39
+ theme?: 'light' | 'dark';
40
+ /** Named palette (e.g. "emerald") or hex color for banner/header rows */
41
+ color?: string;
42
+ }
43
+ export declare class SchemaDocDiagram {
44
+ private opts;
45
+ constructor(options: SchemaDocDiagramOptions);
46
+ /** Total column count across all tables. */
47
+ private totalColumns;
48
+ /** Height of one table's rendered section. */
49
+ private sectionHeight;
50
+ generate(): string;
51
+ /** Draw one table section starting at `y`; returns the y after the section. */
52
+ private drawTable;
53
+ /**
54
+ * Write the SVG to a file. Creates parent directories if needed.
55
+ */
56
+ save(outputPath: string): string;
57
+ }
@@ -69,7 +69,7 @@ const SECTION_TITLE_H = 40; // per-table section title bar
69
69
  const COL_HDR_H = 30; // grid header row
70
70
  const ROW_H = 28; // grid data row
71
71
  const SECTION_GAP = 22; // space between tables
72
- const R = 12; // border radius
72
+ const R = 0; // border radius (blueprint = square corners)
73
73
  // Column layout: [label, x offset, width]
74
74
  const COLS = [
75
75
  { label: 'Column', x: 0, w: 170 },
@@ -79,8 +79,9 @@ const COLS = [
79
79
  { label: 'Default', x: 450, w: 130 },
80
80
  { label: 'Description', x: 580, w: 240 },
81
81
  ];
82
- const FONT_SANS = 'system-ui,-apple-system,sans-serif';
83
- const FONT_MONO = "'SF Mono','Fira Code',monospace";
82
+ const FONT_SANS = palette_1.FONTS.body;
83
+ const FONT_HEAD = palette_1.FONTS.heading;
84
+ const FONT_MONO = palette_1.FONTS.mono;
84
85
  // ─── Helpers ────────────────────────────────────────────────────────────────
85
86
  /** Truncate text to roughly fit `width` px at the given font size. */
86
87
  function truncate(text, width, fontSize) {
@@ -125,29 +126,26 @@ class SchemaDocDiagram {
125
126
  const cx = PAD;
126
127
  const doc = new svg_dom_1.SvgDocument(svgW, svgH);
127
128
  const svg = doc.root;
128
- // ── Canvas background (theme) ───────────────────────────────────────
129
+ // Web fonts for browser renderers.
130
+ doc.style(palette_1.FONT_IMPORT);
131
+ // ── Canvas ground (theme) ───────────────────────────────────────────
129
132
  svg.child('rect', { width: svgW, height: svgH, fill: t.canvasBg });
130
- // ── Title banner (accent) ───────────────────────────────────────────
131
- const uid = 'sd';
132
- doc.linearGradient(`bg${uid}`, [
133
- [0, accent.from],
134
- [100, accent.mid],
135
- ]);
133
+ // ── Title banner (solid accent bar) ─────────────────────────────────
136
134
  svg.child('rect', {
137
135
  x: cx,
138
136
  y: PAD,
139
137
  width: W,
140
138
  height: BANNER_H,
141
139
  rx: R,
142
- fill: `url(#bg${uid})`,
140
+ fill: accent.mid,
143
141
  });
144
142
  svg
145
143
  .child('text', {
146
144
  x: cx + 22,
147
- y: PAD + 34,
148
- 'font-family': FONT_SANS,
149
- 'font-size': 24,
150
- 'font-weight': 800,
145
+ y: PAD + 36,
146
+ 'font-family': FONT_HEAD,
147
+ 'font-size': 26,
148
+ 'font-weight': 600,
151
149
  fill: '#FFFFFF',
152
150
  })
153
151
  .text(truncate(title, W - 44, 24));
@@ -155,11 +153,11 @@ class SchemaDocDiagram {
155
153
  .child('text', {
156
154
  x: cx + 22,
157
155
  y: PAD + 58,
158
- 'font-family': FONT_SANS,
156
+ 'font-family': FONT_HEAD,
159
157
  'font-size': 12,
160
158
  'font-weight': 600,
161
159
  fill: 'rgba(255,255,255,0.85)',
162
- 'letter-spacing': 1,
160
+ 'letter-spacing': 1.4,
163
161
  })
164
162
  .text('DATA DICTIONARY');
165
163
  // ── Summary line ────────────────────────────────────────────────────
@@ -193,17 +191,27 @@ class SchemaDocDiagram {
193
191
  y,
194
192
  width: W,
195
193
  height: SECTION_TITLE_H,
196
- rx: 8,
194
+ rx: 0,
197
195
  fill: t.colHeaderBg,
198
196
  });
199
- svg.child('rect', { x: cx, y, width: 5, height: SECTION_TITLE_H, fill: accent.mid });
197
+ svg.child('rect', {
198
+ x: cx,
199
+ y,
200
+ width: W,
201
+ height: SECTION_TITLE_H,
202
+ fill: 'none',
203
+ stroke: t.border,
204
+ 'stroke-width': 1,
205
+ });
206
+ svg.child('rect', { x: cx, y, width: 4, height: SECTION_TITLE_H, fill: accent.mid });
200
207
  svg
201
208
  .child('text', {
202
209
  x: cx + 18,
203
- y: y + 26,
204
- 'font-family': FONT_MONO,
205
- 'font-size': 16,
206
- 'font-weight': 700,
210
+ y: y + 27,
211
+ 'font-family': FONT_HEAD,
212
+ 'font-size': 18,
213
+ 'font-weight': 600,
214
+ 'letter-spacing': 0.3,
207
215
  fill: t.textPrimary,
208
216
  })
209
217
  .text(truncate(table.name, 420, 16));
@@ -227,20 +235,20 @@ class SchemaDocDiagram {
227
235
  y: rowY,
228
236
  width: W,
229
237
  height: COL_HDR_H,
230
- fill: accent.from,
238
+ fill: accent.mid,
231
239
  });
232
240
  COLS.forEach((c) => {
233
241
  svg
234
242
  .child('text', {
235
243
  x: gridX + c.x + 10,
236
244
  y: rowY + 20,
237
- 'font-family': FONT_SANS,
245
+ 'font-family': FONT_HEAD,
238
246
  'font-size': 11,
239
- 'font-weight': 700,
247
+ 'font-weight': 600,
240
248
  fill: '#FFFFFF',
241
- 'letter-spacing': 0.4,
249
+ 'letter-spacing': 1,
242
250
  })
243
- .text(c.label);
251
+ .text(c.label.toUpperCase());
244
252
  });
245
253
  // ── Data rows (zebra) ─────────────────────────────────────────────
246
254
  rowY += COL_HDR_H;
@@ -0,0 +1,61 @@
1
+ /**
2
+ * SequenceDiagram — generates a UML sequence diagram as an SVG.
3
+ *
4
+ * Renders participants (actors / objects / databases) as header boxes across
5
+ * the top, each dropping a vertical dashed lifeline. Messages are drawn as
6
+ * numbered horizontal arrows between lifelines in order: a solid arrow is a
7
+ * synchronous call, a dashed arrow is a return / async message. Activation
8
+ * bars (thin rectangles) are drawn on a lifeline while it is active.
9
+ *
10
+ * The accent color (via resolveAccent) drives participant header boxes and
11
+ * arrowheads; the theme (via resolveTheme) drives the canvas, lifelines and
12
+ * text. Both `theme` and `color` genuinely change fill/stroke values in the
13
+ * generated SVG. The viewBox is auto-sized to fit all content.
14
+ *
15
+ * Usage:
16
+ * const diag = new SequenceDiagram({ participants: […], messages: […] });
17
+ * diag.save('./diagrams/flow.svg');
18
+ * // or:
19
+ * const svgString = diag.generate();
20
+ */
21
+ export interface SeqParticipant {
22
+ name: string;
23
+ kind?: 'actor' | 'object' | 'database';
24
+ }
25
+ export interface SeqMessage {
26
+ from: string;
27
+ to: string;
28
+ label: string;
29
+ /** Render as a dashed return / async arrow instead of a solid call. */
30
+ return?: boolean;
31
+ /** Draw an activation bar on the receiving lifeline for this message. */
32
+ activate?: boolean;
33
+ }
34
+ export interface SequenceDiagramOptions {
35
+ participants: SeqParticipant[];
36
+ messages: SeqMessage[];
37
+ title?: string;
38
+ theme?: 'light' | 'dark';
39
+ /** Custom accent color (named palette or hex) for headers / arrowheads. */
40
+ color?: string;
41
+ }
42
+ export declare class SequenceDiagram {
43
+ private opts;
44
+ private static readonly PAD;
45
+ private static readonly LANE;
46
+ private static readonly HDR_W;
47
+ private static readonly HDR_H;
48
+ private static readonly TITLE_H;
49
+ private static readonly MSG_GAP;
50
+ private static readonly TOP_GAP;
51
+ private static readonly BOT_GAP;
52
+ private static readonly ACT_W;
53
+ constructor(options: SequenceDiagramOptions);
54
+ /** Kind glyph drawn inside a participant header. */
55
+ private kindGlyph;
56
+ generate(): string;
57
+ /**
58
+ * Write the SVG to a file. Creates parent directories if needed.
59
+ */
60
+ save(outputPath: string): string;
61
+ }
@@ -58,6 +58,15 @@ const fs = __importStar(require("fs"));
58
58
  const path = __importStar(require("path"));
59
59
  const palette_1 = require("./palette");
60
60
  const svg_dom_1 = require("./svg-dom");
61
+ // ─── Industry design system ────────────────────────────────────────────────
62
+ // Barlow / JetBrains Mono typography, hairline borders and square "blueprint"
63
+ // corners are fixed by the Industry spec; accent + surface colours still route
64
+ // through resolveAccent / resolveTheme so --color / --theme keep working.
65
+ const IND_FONT_HEAD = '"Barlow Condensed", system-ui, sans-serif';
66
+ const IND_FONT_BODY = '"Barlow", system-ui, sans-serif';
67
+ const IND_FONT_MONO = 'ui-monospace, "JetBrains Mono", "SF Mono", Menlo, monospace';
68
+ const IND_HAIRLINE = 'rgba(29,31,32,0.16)';
69
+ const IND_FONT_IMPORT = "@import url('https://fonts.googleapis.com/css2?family=Barlow:wght@400;500;700&family=Barlow+Condensed:wght@400;600&family=JetBrains+Mono&display=swap');";
61
70
  // ─── Main class ────────────────────────────────────────────────────────────
62
71
  class SequenceDiagram {
63
72
  constructor(options) {
@@ -107,8 +116,9 @@ class SequenceDiagram {
107
116
  const svgH = lifelineBottom + PAD;
108
117
  const doc = new svg_dom_1.SvgDocument(svgW, svgH);
109
118
  const svg = doc.root;
110
- // ── Canvas background (theme-driven) ────────────────────────────────
119
+ // ── Canvas background + embedded Industry web-fonts ─────────────────
111
120
  svg.child('rect', { width: svgW, height: svgH, fill: t.canvasBg });
121
+ svg.child('style').text(IND_FONT_IMPORT);
112
122
  // ── Arrowhead marker (accent-colored) ───────────────────────────────
113
123
  const headId = `seqhead${accent.name.replace(/\W/g, '')}`;
114
124
  const marker = doc.defs().child('marker', {
@@ -127,9 +137,9 @@ class SequenceDiagram {
127
137
  .child('text', {
128
138
  x: svgW / 2,
129
139
  y: PAD + 24,
130
- 'font-family': 'system-ui,-apple-system,sans-serif',
140
+ 'font-family': IND_FONT_HEAD,
131
141
  'font-size': 20,
132
- 'font-weight': 800,
142
+ 'font-weight': 600,
133
143
  fill: t.textPrimary,
134
144
  'text-anchor': 'middle',
135
145
  })
@@ -177,17 +187,16 @@ class SequenceDiagram {
177
187
  y: headerTop,
178
188
  width: HDR_W,
179
189
  height: HDR_H,
180
- rx: 8,
181
- fill: accent.from,
182
- stroke: accent.mid,
183
- 'stroke-width': 1.5,
190
+ fill: accent.mid,
191
+ stroke: accent.from,
192
+ 'stroke-width': 1,
184
193
  class: 'participant',
185
194
  });
186
195
  svg
187
196
  .child('text', {
188
197
  x: cxLine,
189
198
  y: headerTop + 20,
190
- 'font-family': 'system-ui,-apple-system,sans-serif',
199
+ 'font-family': IND_FONT_HEAD,
191
200
  'font-size': 13,
192
201
  fill: '#FFFFFF',
193
202
  'text-anchor': 'middle',
@@ -197,7 +206,7 @@ class SequenceDiagram {
197
206
  .child('text', {
198
207
  x: cxLine,
199
208
  y: headerTop + 38,
200
- 'font-family': "'SF Mono','Fira Code',monospace",
209
+ 'font-family': IND_FONT_MONO,
201
210
  'font-size': 13,
202
211
  'font-weight': 700,
203
212
  fill: '#FFFFFF',
@@ -259,7 +268,7 @@ class SequenceDiagram {
259
268
  .child('text', {
260
269
  x: badgeX,
261
270
  y: y - 8,
262
- 'font-family': "'SF Mono',monospace",
271
+ 'font-family': IND_FONT_MONO,
263
272
  'font-size': 10,
264
273
  'font-weight': 700,
265
274
  fill: '#FFFFFF',
@@ -272,7 +281,7 @@ class SequenceDiagram {
272
281
  .child('text', {
273
282
  x: fromI === toI ? x1 + 66 : midX,
274
283
  y: y - 8,
275
- 'font-family': 'system-ui,-apple-system,sans-serif',
284
+ 'font-family': IND_FONT_HEAD,
276
285
  'font-size': 12,
277
286
  'font-weight': 600,
278
287
  fill: t.textPrimary,
@@ -0,0 +1,85 @@
1
+ /**
2
+ * StateDiagram — generates a UML state-machine diagram as an SVG.
3
+ *
4
+ * Renders:
5
+ * - normal states as rounded rectangles
6
+ * - an initial pseudo-state as a filled black circle
7
+ * - a final state as a ringed (double) circle
8
+ * - transitions as arrows between states, labeled with their trigger/event
9
+ * - self-transitions as loop arrows
10
+ *
11
+ * Great for showing a record lifecycle (e.g. draft → active → archived →
12
+ * deleted). States are auto-placed left-to-right in a wrapping grid unless
13
+ * explicit x/y hints are supplied per state. The SVG viewBox is auto-sized.
14
+ *
15
+ * Both `--theme light|dark` and `--color <name|hex>` genuinely change the
16
+ * output: the accent drives state fills + arrowheads, the theme drives the
17
+ * canvas background, text and borders.
18
+ *
19
+ * Usage:
20
+ * const diag = new StateDiagram({
21
+ * states: [
22
+ * { name: 'start', initial: true },
23
+ * { name: 'draft' },
24
+ * { name: 'active' },
25
+ * { name: 'archived', final: true },
26
+ * ],
27
+ * transitions: [
28
+ * { from: 'start', to: 'draft' },
29
+ * { from: 'draft', to: 'active', event: 'publish' },
30
+ * { from: 'active', to: 'active', event: 'edit' },
31
+ * { from: 'active', to: 'archived', event: 'archive' },
32
+ * ],
33
+ * });
34
+ * diag.save('./diagrams/lifecycle.svg');
35
+ * // or:
36
+ * const svgString = diag.generate();
37
+ */
38
+ export interface StateNode {
39
+ name: string;
40
+ /** Marks this as an initial pseudo-state (filled black circle). */
41
+ initial?: boolean;
42
+ /** Marks this as a final state (ringed circle). */
43
+ final?: boolean;
44
+ /** Optional explicit x position hint (top-left of the node box). */
45
+ x?: number;
46
+ /** Optional explicit y position hint (top-left of the node box). */
47
+ y?: number;
48
+ }
49
+ export interface StateTransition {
50
+ from: string;
51
+ to: string;
52
+ /** Trigger/event label drawn on the arrow. */
53
+ event?: string;
54
+ }
55
+ export interface StateDiagramOptions {
56
+ states: StateNode[];
57
+ transitions: StateTransition[];
58
+ title?: string;
59
+ theme?: 'light' | 'dark';
60
+ /** Custom accent color (named palette entry or hex). */
61
+ color?: string;
62
+ }
63
+ export declare class StateDiagram {
64
+ private opts;
65
+ private static readonly PAD;
66
+ private static readonly TITLE_H;
67
+ private static readonly BOX_W;
68
+ private static readonly BOX_H;
69
+ private static readonly PSEUDO_R;
70
+ private static readonly GAP_X;
71
+ private static readonly GAP_Y;
72
+ private static readonly PER_ROW;
73
+ private static readonly R;
74
+ constructor(options: StateDiagramOptions);
75
+ private layout;
76
+ private edgePoint;
77
+ generate(): string;
78
+ private drawTransition;
79
+ private drawSelfLoop;
80
+ private drawEventLabel;
81
+ /**
82
+ * Write the SVG to a file. Creates parent directories if needed.
83
+ */
84
+ save(outputPath: string): string;
85
+ }