ts-prorm-orm 1.1.0 → 1.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 (460) hide show
  1. package/CHANGELOG.md +83 -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 +711 -0
  239. package/dist/index.js +19 -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
@@ -0,0 +1,70 @@
1
+ /**
2
+ * ChenDiagram — renders a classic Chen-notation Entity-Relationship diagram
3
+ * as SVG, built against a real DOM document (via svg-dom) rather than
4
+ * concatenated markup.
5
+ *
6
+ * Chen notation (distinct from crow's-foot):
7
+ * - Entities → rectangles (weak entities get a double border)
8
+ * - Relationships → diamonds placed between the two entities they connect,
9
+ * with cardinality labels (1, N, M) on the connecting lines
10
+ * - Attributes → ellipses connected to their entity by a line; key
11
+ * attributes have underlined text, multivalued get a double
12
+ * ellipse, derived get a dashed ellipse.
13
+ *
14
+ * Options honor `theme` (light|dark canvas/text) and `color` (accent for
15
+ * entities/diamonds) via resolveTheme/resolveAccent, so both flags change the
16
+ * generated output. The viewBox is auto-sized to the laid-out geometry.
17
+ *
18
+ * Usage:
19
+ * const diag = new ChenDiagram({ entities: [...], relationships: [...] });
20
+ * diag.save('./diagrams/er.svg'); // or: diag.generate()
21
+ */
22
+ export interface ChenAttribute {
23
+ name: string;
24
+ key?: boolean;
25
+ multivalued?: boolean;
26
+ derived?: boolean;
27
+ }
28
+ export interface ChenEntity {
29
+ name: string;
30
+ weak?: boolean;
31
+ attributes?: ChenAttribute[];
32
+ }
33
+ export interface ChenRelationship {
34
+ name: string;
35
+ from: string;
36
+ to: string;
37
+ fromCardinality?: string;
38
+ toCardinality?: string;
39
+ }
40
+ export interface ChenDiagramOptions {
41
+ entities: ChenEntity[];
42
+ relationships?: ChenRelationship[];
43
+ title?: string;
44
+ theme?: 'light' | 'dark';
45
+ color?: string;
46
+ }
47
+ export declare class ChenDiagram {
48
+ private opts;
49
+ private static readonly PAD;
50
+ private static readonly TITLE_H;
51
+ private static readonly ENT_W;
52
+ private static readonly ENT_H;
53
+ private static readonly DIA_W;
54
+ private static readonly DIA_H;
55
+ private static readonly ATTR_RX;
56
+ private static readonly ATTR_RY;
57
+ private static readonly ATTR_DIST;
58
+ private static readonly COL_GAP;
59
+ private static readonly ROW_GAP;
60
+ constructor(options: ChenDiagramOptions);
61
+ private attributePositions;
62
+ private drawAttribute;
63
+ private drawEntity;
64
+ private drawRelationship;
65
+ generate(): string;
66
+ /**
67
+ * Write the SVG to a file. Creates parent directories if needed.
68
+ */
69
+ save(outputPath: string): string;
70
+ }
@@ -120,7 +120,7 @@ class ChenDiagram {
120
120
  ry,
121
121
  fill: t.cardBg,
122
122
  stroke: accent.mid,
123
- 'stroke-width': 1.8,
123
+ 'stroke-width': 1.6,
124
124
  'stroke-dasharray': strokeDash,
125
125
  });
126
126
  const label = attr.name.length > 14 ? attr.name.slice(0, 13) + '…' : attr.name;
@@ -128,9 +128,9 @@ class ChenDiagram {
128
128
  .child('text', {
129
129
  x: at.x,
130
130
  y: at.y + 4,
131
- 'font-family': 'system-ui,-apple-system,sans-serif',
131
+ 'font-family': palette_1.FONTS.body,
132
132
  'font-size': 12,
133
- 'font-weight': attr.key ? 700 : 500,
133
+ 'font-weight': attr.key ? 600 : 400,
134
134
  fill: t.textPrimary,
135
135
  'text-anchor': 'middle',
136
136
  // key attributes are underlined in Chen notation
@@ -150,10 +150,10 @@ class ChenDiagram {
150
150
  y: y - 5,
151
151
  width: W + 10,
152
152
  height: H + 10,
153
- rx: 4,
153
+ rx: 0,
154
154
  fill: 'none',
155
- stroke: accent.from,
156
- 'stroke-width': 1.6,
155
+ stroke: accent.mid,
156
+ 'stroke-width': 1.4,
157
157
  });
158
158
  }
159
159
  svg.child('rect', {
@@ -161,18 +161,18 @@ class ChenDiagram {
161
161
  y,
162
162
  width: W,
163
163
  height: H,
164
- rx: 4,
164
+ rx: 0,
165
165
  fill: accent.light,
166
- stroke: accent.from,
167
- 'stroke-width': 2.2,
166
+ stroke: accent.mid,
167
+ 'stroke-width': 1.6,
168
168
  });
169
169
  svg
170
170
  .child('text', {
171
171
  x: p.center.x,
172
172
  y: p.center.y + 5,
173
- 'font-family': 'system-ui,-apple-system,sans-serif',
174
- 'font-size': 16,
175
- 'font-weight': 700,
173
+ 'font-family': palette_1.FONTS.heading,
174
+ 'font-size': 17,
175
+ 'font-weight': 600,
176
176
  fill: accent.text,
177
177
  'text-anchor': 'middle',
178
178
  })
@@ -188,18 +188,18 @@ class ChenDiagram {
188
188
  y1: a.y,
189
189
  x2: mid.x,
190
190
  y2: mid.y,
191
- stroke: t.textPrimary,
192
- 'stroke-width': 1.6,
191
+ stroke: palette_1.INDUSTRY.neutral[600],
192
+ 'stroke-width': 1.4,
193
193
  });
194
194
  svg.child('line', {
195
195
  x1: mid.x,
196
196
  y1: mid.y,
197
197
  x2: b.x,
198
198
  y2: b.y,
199
- stroke: t.textPrimary,
200
- 'stroke-width': 1.6,
199
+ stroke: palette_1.INDUSTRY.neutral[600],
200
+ 'stroke-width': 1.4,
201
201
  });
202
- // diamond (polygon) centered on mid
202
+ // diamond (polygon) centered on mid — solid accent fill, white label
203
203
  const pts = [
204
204
  `${mid.x},${mid.y - DH / 2}`,
205
205
  `${mid.x + DW / 2},${mid.y}`,
@@ -208,18 +208,18 @@ class ChenDiagram {
208
208
  ].join(' ');
209
209
  svg.child('polygon', {
210
210
  points: pts,
211
- fill: accent.to,
212
- stroke: accent.from,
213
- 'stroke-width': 2.2,
211
+ fill: accent.mid,
212
+ stroke: accent.text,
213
+ 'stroke-width': 1.4,
214
214
  });
215
215
  svg
216
216
  .child('text', {
217
217
  x: mid.x,
218
218
  y: mid.y + 5,
219
- 'font-family': 'system-ui,-apple-system,sans-serif',
220
- 'font-size': 13,
221
- 'font-weight': 700,
222
- fill: accent.text,
219
+ 'font-family': palette_1.FONTS.heading,
220
+ 'font-size': 14,
221
+ 'font-weight': 600,
222
+ fill: '#FFFFFF',
223
223
  'text-anchor': 'middle',
224
224
  })
225
225
  .text(rel.name);
@@ -233,9 +233,9 @@ class ChenDiagram {
233
233
  .child('text', {
234
234
  x: lx,
235
235
  y: ly,
236
- 'font-family': "'SF Mono',monospace",
237
- 'font-size': 14,
238
- 'font-weight': 700,
236
+ 'font-family': palette_1.FONTS.mono,
237
+ 'font-size': 13,
238
+ 'font-weight': 600,
239
239
  fill: t.textPrimary,
240
240
  'text-anchor': 'middle',
241
241
  })
@@ -296,7 +296,9 @@ class ChenDiagram {
296
296
  const svgH = Math.ceil(maxY + PAD);
297
297
  const doc = new svg_dom_1.SvgDocument(svgW, svgH);
298
298
  const svg = doc.root;
299
- // ── Background ──────────────────────────────────────────────────────
299
+ // Web fonts for browser renderers.
300
+ doc.style(palette_1.FONT_IMPORT);
301
+ // ── Ground ──────────────────────────────────────────────────────────
300
302
  svg.child('rect', { width: svgW, height: svgH, fill: t.canvasBg });
301
303
  // ── Title ───────────────────────────────────────────────────────────
302
304
  if (title) {
@@ -304,9 +306,9 @@ class ChenDiagram {
304
306
  .child('text', {
305
307
  x: PAD,
306
308
  y: PAD,
307
- 'font-family': 'system-ui,-apple-system,sans-serif',
308
- 'font-size': 22,
309
- 'font-weight': 800,
309
+ 'font-family': palette_1.FONTS.heading,
310
+ 'font-size': 24,
311
+ 'font-weight': 600,
310
312
  fill: t.textPrimary,
311
313
  })
312
314
  .text(title);
@@ -0,0 +1,78 @@
1
+ /**
2
+ * ClassDiagram — renders one or more classes as UML class boxes.
3
+ *
4
+ * Each class box has three compartments:
5
+ * - a title bar (class name + optional «stereotype»),
6
+ * - an attributes compartment (`+ name: type`, with +/-/# visibility markers),
7
+ * - a methods compartment (`+ name(args): returnType`).
8
+ *
9
+ * Multiple classes are laid out in a responsive grid (wrapping after N
10
+ * columns). When a class declares `extends`, a UML inheritance connector
11
+ * (hollow triangle arrowhead) is drawn to its parent; when it declares plain
12
+ * associations, a simple line connector is drawn instead.
13
+ *
14
+ * `--theme light|dark` drives canvas/box/text colors and `--color <name|hex>`
15
+ * drives the accent used for title bars — both genuinely change fill/stroke
16
+ * values in the generated SVG.
17
+ *
18
+ * Usage:
19
+ * const diag = new ClassDiagram({ classes: [ … ] });
20
+ * diag.save('./diagrams/classes.svg');
21
+ * // or:
22
+ * const svgString = diag.generate();
23
+ */
24
+ export interface UmlAttribute {
25
+ name: string;
26
+ type?: string;
27
+ visibility?: 'public' | 'private' | 'protected';
28
+ static?: boolean;
29
+ }
30
+ export interface UmlMethod {
31
+ name: string;
32
+ args?: string;
33
+ returns?: string;
34
+ visibility?: 'public' | 'private' | 'protected';
35
+ }
36
+ export interface UmlClass {
37
+ name: string;
38
+ stereotype?: string;
39
+ attributes?: UmlAttribute[];
40
+ methods?: UmlMethod[];
41
+ /** Name of a parent class in this diagram (drawn as inheritance). */
42
+ extends?: string;
43
+ /** Names of associated classes in this diagram (drawn as plain lines). */
44
+ associations?: string[];
45
+ }
46
+ export interface ClassDiagramOptions {
47
+ classes: UmlClass[];
48
+ title?: string;
49
+ theme?: 'light' | 'dark';
50
+ /** Named palette (e.g. "emerald") or a hex color string. */
51
+ color?: string;
52
+ /** Number of columns before wrapping. Defaults to an auto value. */
53
+ columns?: number;
54
+ }
55
+ export declare class ClassDiagram {
56
+ private opts;
57
+ private static readonly BOX_W;
58
+ private static readonly TITLE_H;
59
+ private static readonly STEREO_EXTRA;
60
+ private static readonly ROW_H;
61
+ private static readonly COMPARTMENT_PAD;
62
+ private static readonly GAP_X;
63
+ private static readonly GAP_Y;
64
+ private static readonly PAD;
65
+ private static readonly TITLE_BAR_H;
66
+ constructor(options: ClassDiagramOptions);
67
+ private boxHeight;
68
+ private layout;
69
+ generate(): string;
70
+ private center;
71
+ private drawAssociation;
72
+ private drawInheritance;
73
+ private drawClassBox;
74
+ /**
75
+ * Write the SVG to a file. Creates parent directories if needed.
76
+ */
77
+ save(outputPath: string): string;
78
+ }
@@ -61,6 +61,15 @@ const fs = __importStar(require("fs"));
61
61
  const path = __importStar(require("path"));
62
62
  const palette_1 = require("./palette");
63
63
  const svg_dom_1 = require("./svg-dom");
64
+ // ─── Industry design system ────────────────────────────────────────────────
65
+ // Barlow / JetBrains Mono typography, hairline borders and square "blueprint"
66
+ // corners are fixed by the Industry spec; accent + surface colours still route
67
+ // through resolveAccent / resolveTheme so --color / --theme keep working.
68
+ const IND_FONT_HEAD = '"Barlow Condensed", system-ui, sans-serif';
69
+ const IND_FONT_BODY = '"Barlow", system-ui, sans-serif';
70
+ const IND_FONT_MONO = 'ui-monospace, "JetBrains Mono", "SF Mono", Menlo, monospace';
71
+ const IND_HAIRLINE = 'rgba(29,31,32,0.16)';
72
+ 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');";
64
73
  const VIS_MARK = {
65
74
  public: '+',
66
75
  private: '-',
@@ -150,27 +159,19 @@ class ClassDiagram {
150
159
  const svgH = maxBottom + ClassDiagram.PAD;
151
160
  const doc = new svg_dom_1.SvgDocument(svgW, svgH);
152
161
  const svg = doc.root;
153
- // Background.
162
+ // Background + embedded Industry web-fonts.
154
163
  svg.child('rect', { width: svgW, height: svgH, fill: t.canvasBg });
155
- // Accent gradient for title bars + a drop shadow.
156
- doc.linearGradient('classHdr', [
157
- [0, accent.from],
158
- [55, accent.mid],
159
- [100, accent.to],
160
- ]);
161
- const filter = doc
162
- .defs()
163
- .child('filter', { id: 'classShadow', x: '-8%', y: '-8%', width: '116%', height: '120%' });
164
- filter.child('feDropShadow', { dx: 0, dy: 4, stdDeviation: 7, 'flood-color': '#00000022' });
164
+ svg.child('style').text(IND_FONT_IMPORT);
165
+ // Blueprint style: solid accent header bars + hairline frames, no gradients.
165
166
  // Optional diagram title.
166
167
  if (title) {
167
168
  svg
168
169
  .child('text', {
169
170
  x: ClassDiagram.PAD,
170
171
  y: ClassDiagram.PAD + 8,
171
- 'font-family': 'system-ui,-apple-system,sans-serif',
172
+ 'font-family': IND_FONT_HEAD,
172
173
  'font-size': 20,
173
- 'font-weight': 800,
174
+ 'font-weight': 600,
174
175
  fill: t.textPrimary,
175
176
  })
176
177
  .text(title);
@@ -254,36 +255,31 @@ class ClassDiagram {
254
255
  const { cls, x, y, w, h, titleH, attrH } = p;
255
256
  const attrs = cls.attributes ?? [];
256
257
  const methods = cls.methods ?? [];
257
- // Outer box.
258
+ // Outer box (white interior, hairline border, square corners).
258
259
  svg.child('rect', {
259
260
  x,
260
261
  y,
261
262
  width: w,
262
263
  height: h,
263
- rx: 8,
264
264
  fill: t.cardBg,
265
265
  stroke: t.border,
266
- 'stroke-width': 1.5,
267
- filter: 'url(#classShadow)',
266
+ 'stroke-width': 1,
268
267
  });
269
- // Title bar (accent gradient).
268
+ // Title bar (solid accent — blueprint label bar).
270
269
  svg.child('rect', {
271
270
  x,
272
271
  y,
273
272
  width: w,
274
273
  height: titleH,
275
- rx: 8,
276
- fill: 'url(#classHdr)',
274
+ fill: accent.mid,
277
275
  });
278
- // Square off the bottom of the rounded title bar.
279
- svg.child('rect', { x, y: y + titleH - 8, width: w, height: 8, fill: 'url(#classHdr)' });
280
276
  let titleTextY = y + 26;
281
277
  if (cls.stereotype) {
282
278
  svg
283
279
  .child('text', {
284
280
  x: x + w / 2,
285
281
  y: y + 18,
286
- 'font-family': 'system-ui,sans-serif',
282
+ 'font-family': IND_FONT_BODY,
287
283
  'font-size': 11,
288
284
  'font-style': 'italic',
289
285
  fill: 'rgba(255,255,255,0.85)',
@@ -296,9 +292,9 @@ class ClassDiagram {
296
292
  .child('text', {
297
293
  x: x + w / 2,
298
294
  y: titleTextY,
299
- 'font-family': 'system-ui,-apple-system,sans-serif',
295
+ 'font-family': IND_FONT_HEAD,
300
296
  'font-size': 15,
301
- 'font-weight': 800,
297
+ 'font-weight': 600,
302
298
  fill: '#FFFFFF',
303
299
  'text-anchor': 'middle',
304
300
  })
@@ -322,7 +318,7 @@ class ClassDiagram {
322
318
  .child('text', {
323
319
  x: x + 12,
324
320
  y: rowY,
325
- 'font-family': "'SF Mono','Fira Code',monospace",
321
+ 'font-family': IND_FONT_MONO,
326
322
  'font-size': 12,
327
323
  'font-weight': 500,
328
324
  'text-decoration': a.static ? 'underline' : undefined,
@@ -349,7 +345,7 @@ class ClassDiagram {
349
345
  .child('text', {
350
346
  x: x + 12,
351
347
  y: rowY,
352
- 'font-family': "'SF Mono','Fira Code',monospace",
348
+ 'font-family': IND_FONT_MONO,
353
349
  'font-size': 12,
354
350
  'font-weight': 500,
355
351
  fill: t.textSecondary,
@@ -0,0 +1,82 @@
1
+ /**
2
+ * DependencyDiagram — renders a directed dependency graph of models/tables.
3
+ *
4
+ * Nodes are models/tables; a directed edge `from → to` means "from depends on
5
+ * to" (e.g. table `from` holds a foreign key into table `to`). The generator:
6
+ *
7
+ * - Computes a layered / topological layout: each node's layer is the longest
8
+ * dependency path to a leaf. Nodes with no dependencies sit in layer 0;
9
+ * their dependents fan out into higher layers.
10
+ * - Detects cycles (back edges) with a DFS colouring pass and visually flags
11
+ * the cyclic edges in red. The layering pass carries its own visited guard
12
+ * so a cycle can never send it into an infinite loop.
13
+ * - Draws each node as a labelled rounded box sized to its label, with arrows
14
+ * between dependent boxes.
15
+ *
16
+ * Accent colour (`color`) drives the node fills / arrowheads; the theme
17
+ * (`light` | `dark`) drives the canvas + text colours. Both genuinely change
18
+ * real fill/stroke values in the emitted SVG. The viewBox auto-sizes to the
19
+ * computed layout.
20
+ *
21
+ * Usage:
22
+ * const d = new DependencyDiagram({ nodes, edges, title: 'Schema deps' });
23
+ * const svg = d.generate();
24
+ * d.save('./diagrams/deps.svg');
25
+ */
26
+ export interface DepNode {
27
+ name: string;
28
+ group?: string;
29
+ }
30
+ export interface DepEdge {
31
+ from: string;
32
+ to: string;
33
+ label?: string;
34
+ }
35
+ export interface DependencyDiagramOptions {
36
+ nodes: DepNode[];
37
+ edges: DepEdge[];
38
+ title?: string;
39
+ theme?: 'light' | 'dark';
40
+ /** Named palette or hex accent colour */
41
+ color?: string;
42
+ direction?: 'horizontal' | 'vertical';
43
+ }
44
+ export declare class DependencyDiagram {
45
+ private opts;
46
+ private static readonly PAD;
47
+ private static readonly TITLE_H;
48
+ private static readonly NODE_H;
49
+ private static readonly CHAR_W;
50
+ private static readonly NODE_PAD_X;
51
+ private static readonly MIN_NODE_W;
52
+ private static readonly LAYER_GAP;
53
+ private static readonly NODE_GAP;
54
+ private static readonly R;
55
+ constructor(options: DependencyDiagramOptions);
56
+ /** Adjacency: node → the nodes it depends on (its outgoing edge targets). */
57
+ private buildAdjacency;
58
+ /**
59
+ * Assign each node a layer = longest dependency path length (0 for nodes with
60
+ * no dependencies). Uses memoisation plus an on-stack guard so cyclic edges
61
+ * are simply skipped and never cause infinite recursion.
62
+ */
63
+ private computeLayers;
64
+ /**
65
+ * Detect cyclic edges via DFS colouring. Returns a set of "from→to" keys that
66
+ * are back edges (participate in a cycle).
67
+ */
68
+ private detectCyclicEdges;
69
+ private nodeWidth;
70
+ /**
71
+ * Point on the boundary of a rectangle along the line from the rect centre
72
+ * toward an external point — used so arrowheads land on the box edge.
73
+ */
74
+ private edgePoint;
75
+ generate(): string;
76
+ private place;
77
+ private defineArrow;
78
+ /**
79
+ * Write the SVG to a file, creating parent directories as needed.
80
+ */
81
+ save(outputPath: string): string;
82
+ }
@@ -63,6 +63,15 @@ const fs = __importStar(require("fs"));
63
63
  const path = __importStar(require("path"));
64
64
  const palette_1 = require("./palette");
65
65
  const svg_dom_1 = require("./svg-dom");
66
+ // ─── Industry design system ────────────────────────────────────────────────
67
+ // Barlow / JetBrains Mono typography, hairline borders and square "blueprint"
68
+ // corners are fixed by the Industry spec; accent + surface colours still route
69
+ // through resolveAccent / resolveTheme so --color / --theme keep working.
70
+ const IND_FONT_HEAD = '"Barlow Condensed", system-ui, sans-serif';
71
+ const IND_FONT_BODY = '"Barlow", system-ui, sans-serif';
72
+ const IND_FONT_MONO = 'ui-monospace, "JetBrains Mono", "SF Mono", Menlo, monospace';
73
+ const IND_HAIRLINE = 'rgba(29,31,32,0.16)';
74
+ 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');";
66
75
  // ─── Main class ──────────────────────────────────────────────────────────────
67
76
  class DependencyDiagram {
68
77
  constructor(options) {
@@ -259,8 +268,9 @@ class DependencyDiagram {
259
268
  // ── Build the document ──────────────────────────────────────────────
260
269
  const doc = new svg_dom_1.SvgDocument(svgW, svgH);
261
270
  const svg = doc.root;
262
- // Background
271
+ // Background + embedded Industry web-fonts.
263
272
  svg.child('rect', { width: svgW, height: svgH, fill: t.canvasBg });
273
+ svg.child('style').text(IND_FONT_IMPORT);
264
274
  // Arrowhead markers (accent + cyclic red).
265
275
  const CYCLE_COLOR = '#DC2626';
266
276
  this.defineArrow(doc, 'depArrow', accent.mid);
@@ -270,9 +280,9 @@ class DependencyDiagram {
270
280
  .child('text', {
271
281
  x: PAD,
272
282
  y: PAD + 6,
273
- 'font-family': 'system-ui,-apple-system,sans-serif',
283
+ 'font-family': IND_FONT_HEAD,
274
284
  'font-size': 22,
275
- 'font-weight': 800,
285
+ 'font-weight': 600,
276
286
  fill: t.textPrimary,
277
287
  })
278
288
  .text(title);
@@ -280,7 +290,7 @@ class DependencyDiagram {
280
290
  .child('text', {
281
291
  x: PAD,
282
292
  y: PAD + 26,
283
- 'font-family': 'system-ui,sans-serif',
293
+ 'font-family': IND_FONT_BODY,
284
294
  'font-size': 11,
285
295
  fill: t.textSecondary,
286
296
  })
@@ -331,7 +341,7 @@ class DependencyDiagram {
331
341
  .child('text', {
332
342
  x: (start.x + end.x) / 2,
333
343
  y: (start.y + end.y) / 2 - 4,
334
- 'font-family': "'SF Mono',monospace",
344
+ 'font-family': IND_FONT_MONO,
335
345
  'font-size': 9,
336
346
  fill: isCyclic ? CYCLE_COLOR : t.textSecondary,
337
347
  'text-anchor': 'middle',
@@ -350,15 +360,14 @@ class DependencyDiagram {
350
360
  y: p.y,
351
361
  width: p.w,
352
362
  height: p.h,
353
- rx: R,
354
363
  fill: p.fill,
355
364
  stroke: p.stroke,
356
- 'stroke-width': 2,
365
+ 'stroke-width': 1,
357
366
  });
358
367
  g.child('text', {
359
368
  x: p.x + p.w / 2,
360
369
  y: p.y + p.h / 2 + 5,
361
- 'font-family': "'SF Mono','Fira Code',monospace",
370
+ 'font-family': IND_FONT_MONO,
362
371
  'font-size': 14,
363
372
  'font-weight': 700,
364
373
  fill: p.text,
@@ -368,7 +377,7 @@ class DependencyDiagram {
368
377
  g.child('text', {
369
378
  x: p.x + 8,
370
379
  y: p.y + 13,
371
- 'font-family': 'system-ui,sans-serif',
380
+ 'font-family': IND_FONT_BODY,
372
381
  'font-size': 9,
373
382
  'font-weight': 700,
374
383
  fill: p.text,
@@ -0,0 +1,82 @@
1
+ /**
2
+ * ERDiagram — generates a fully-rendered Entity-Relationship diagram SVG for
3
+ * a collection of ORM models and their associations, styled to the "Industry"
4
+ * blueprint design system.
5
+ *
6
+ * Look:
7
+ * - #f2f2f3 ground with a faint hairline blueprint grid
8
+ * - Solid accent (#5980a6) banner, Barlow Condensed title
9
+ * - White entity cards on a grid: SQUARE corners, 1px hairline borders, a solid
10
+ * accent / accent-2 (two-tone) header bar — no vibrant gradients or shadows
11
+ * - Compact rows: name (mono) + type (mono, neutral) + PK/FK marks
12
+ * - Hairline crow's-foot relationship connectors with mono cardinality marks
13
+ * - Legend bottom-right, Barlow labels
14
+ * - Fully self-contained SVG (fonts via an embedded @import + system fallbacks)
15
+ *
16
+ * Usage:
17
+ * const er = new ERDiagram({
18
+ * title: 'E-Commerce Schema',
19
+ * models: [userDef, productDef, orderDef],
20
+ * });
21
+ * er.save('./diagrams/schema.svg');
22
+ */
23
+ import { ModelDiagramOptions } from './model-diagram';
24
+ export interface ERDiagramOptions {
25
+ /** Diagram title shown in the top banner */
26
+ title?: string;
27
+ /** All models to include in the diagram */
28
+ models: ModelDiagramOptions[];
29
+ /**
30
+ * Number of entity columns in the grid.
31
+ * @default 3
32
+ */
33
+ columns?: number;
34
+ /** Horizontal gap between entity boxes (px) */
35
+ hGap?: number;
36
+ /** Vertical gap between entity boxes (px) */
37
+ vGap?: number;
38
+ /** Theme mode: light or dark */
39
+ theme?: 'light' | 'dark';
40
+ /** Named palette (e.g. "industry") or hex color for the accent */
41
+ color?: string;
42
+ }
43
+ export declare class ERDiagram {
44
+ private opts;
45
+ private static readonly BOX_W;
46
+ private static readonly BOX_HDR;
47
+ private static readonly BOX_ROW;
48
+ private static readonly BOX_FOOT;
49
+ private static readonly MIN_H;
50
+ private static readonly BANNER_H;
51
+ private static readonly LEGEND_W;
52
+ private static readonly LEGEND_PAD;
53
+ private static readonly MARGIN;
54
+ private accentMid;
55
+ private accentText;
56
+ private accentLight;
57
+ private accent2Mid;
58
+ private accent2Text;
59
+ private accent2Light;
60
+ constructor(options: ERDiagramOptions);
61
+ /** Two-tone entity styling — even entities accent, odd accent-2. */
62
+ private entityStyle;
63
+ private boxHeight;
64
+ private computeLayout;
65
+ private renderBox;
66
+ private renderRelationships;
67
+ private crowFoot;
68
+ private singleBar;
69
+ private renderBanner;
70
+ private renderLegend;
71
+ /**
72
+ * Embedded font @import so browsers resolve Barlow / JetBrains Mono. Wrapped
73
+ * in CDATA because the Google-Fonts URL contains raw `&` separators that
74
+ * would otherwise be invalid XML in this string-built document.
75
+ */
76
+ private fontDefs;
77
+ generate(): string;
78
+ /**
79
+ * Write the SVG to a file. Creates parent directories if needed.
80
+ */
81
+ save(outputPath: string): string;
82
+ }