plugin-data-source-mssql 2.0.3 → 2.0.5

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 (410) hide show
  1. package/dist/client/index.js +1 -1
  2. package/dist/externalVersion.js +6 -6
  3. package/dist/server/data-source/MssqlExternalDataSource.js +114 -30
  4. package/dist/server/data-source/MssqlIntrospector.js +109 -24
  5. package/package.json +1 -1
  6. package/dist/node_modules/tedious/245.index.js +0 -741
  7. package/dist/node_modules/tedious/LICENSE +0 -21
  8. package/dist/node_modules/tedious/appveyor.yml +0 -67
  9. package/dist/node_modules/tedious/benchmarks/bulk-load/iterable.js +0 -61
  10. package/dist/node_modules/tedious/benchmarks/common.js +0 -287
  11. package/dist/node_modules/tedious/benchmarks/connection/open.js +0 -26
  12. package/dist/node_modules/tedious/benchmarks/package-lock.json +0 -21173
  13. package/dist/node_modules/tedious/benchmarks/package.json +0 -11
  14. package/dist/node_modules/tedious/benchmarks/query/call-tvp.js +0 -105
  15. package/dist/node_modules/tedious/benchmarks/query/insert-varbinary.js +0 -46
  16. package/dist/node_modules/tedious/benchmarks/query/select-many-rows.js +0 -63
  17. package/dist/node_modules/tedious/benchmarks/query/select-nvarchar.js +0 -50
  18. package/dist/node_modules/tedious/benchmarks/query/select-varbinary.js +0 -50
  19. package/dist/node_modules/tedious/benchmarks/request/rpcrequest-payload-tvp.js +0 -45
  20. package/dist/node_modules/tedious/benchmarks/request/rpcrequest-payload-varbinary.js +0 -37
  21. package/dist/node_modules/tedious/benchmarks/token-parser/colmetadata-token.js +0 -27
  22. package/dist/node_modules/tedious/benchmarks/token-parser/done-token.js +0 -28
  23. package/dist/node_modules/tedious/benchmarks/token-parser/simple-tokens.js +0 -363
  24. package/dist/node_modules/tedious/lib/all-headers.d.ts +0 -2
  25. package/dist/node_modules/tedious/lib/all-headers.js +0 -24
  26. package/dist/node_modules/tedious/lib/always-encrypted/aead-aes-256-cbc-hmac-algorithm.js +0 -82
  27. package/dist/node_modules/tedious/lib/always-encrypted/aead-aes-256-cbc-hmac-encryption-key.js +0 -55
  28. package/dist/node_modules/tedious/lib/always-encrypted/cek-entry.d.ts +0 -11
  29. package/dist/node_modules/tedious/lib/always-encrypted/cek-entry.js +0 -42
  30. package/dist/node_modules/tedious/lib/always-encrypted/get-parameter-encryption-metadata.js +0 -90
  31. package/dist/node_modules/tedious/lib/always-encrypted/key-crypto.js +0 -94
  32. package/dist/node_modules/tedious/lib/always-encrypted/keystore-provider-azure-key-vault.d.ts +0 -21
  33. package/dist/node_modules/tedious/lib/always-encrypted/keystore-provider-azure-key-vault.js +0 -247
  34. package/dist/node_modules/tedious/lib/always-encrypted/symmetric-key-cache.js +0 -36
  35. package/dist/node_modules/tedious/lib/always-encrypted/symmetric-key.js +0 -25
  36. package/dist/node_modules/tedious/lib/always-encrypted/types.d.ts +0 -73
  37. package/dist/node_modules/tedious/lib/always-encrypted/types.js +0 -48
  38. package/dist/node_modules/tedious/lib/always-encrypted/utils.js +0 -23
  39. package/dist/node_modules/tedious/lib/bulk-load-payload.d.ts +0 -8
  40. package/dist/node_modules/tedious/lib/bulk-load-payload.js +0 -23
  41. package/dist/node_modules/tedious/lib/bulk-load.d.ts +0 -275
  42. package/dist/node_modules/tedious/lib/bulk-load.js +0 -516
  43. package/dist/node_modules/tedious/lib/collation.d.ts +0 -28
  44. package/dist/node_modules/tedious/lib/collation.js +0 -348
  45. package/dist/node_modules/tedious/lib/connection.d.ts +0 -1310
  46. package/dist/node_modules/tedious/lib/connection.js +0 -2730
  47. package/dist/node_modules/tedious/lib/connector.d.ts +0 -18
  48. package/dist/node_modules/tedious/lib/connector.js +0 -150
  49. package/dist/node_modules/tedious/lib/data-type.d.ts +0 -455
  50. package/dist/node_modules/tedious/lib/data-type.js +0 -428
  51. package/dist/node_modules/tedious/lib/data-types/bigint.d.ts +0 -3
  52. package/dist/node_modules/tedious/lib/data-types/bigint.js +0 -53
  53. package/dist/node_modules/tedious/lib/data-types/binary.d.ts +0 -5
  54. package/dist/node_modules/tedious/lib/data-types/binary.js +0 -67
  55. package/dist/node_modules/tedious/lib/data-types/bit.d.ts +0 -3
  56. package/dist/node_modules/tedious/lib/data-types/bit.js +0 -46
  57. package/dist/node_modules/tedious/lib/data-types/bitn.d.ts +0 -3
  58. package/dist/node_modules/tedious/lib/data-types/bitn.js +0 -29
  59. package/dist/node_modules/tedious/lib/data-types/char.d.ts +0 -5
  60. package/dist/node_modules/tedious/lib/data-types/char.js +0 -86
  61. package/dist/node_modules/tedious/lib/data-types/date.d.ts +0 -3
  62. package/dist/node_modules/tedious/lib/data-types/date.js +0 -72
  63. package/dist/node_modules/tedious/lib/data-types/datetime.d.ts +0 -3
  64. package/dist/node_modules/tedious/lib/data-types/datetime.js +0 -93
  65. package/dist/node_modules/tedious/lib/data-types/datetime2.d.ts +0 -5
  66. package/dist/node_modules/tedious/lib/data-types/datetime2.js +0 -118
  67. package/dist/node_modules/tedious/lib/data-types/datetimen.d.ts +0 -3
  68. package/dist/node_modules/tedious/lib/data-types/datetimen.js +0 -29
  69. package/dist/node_modules/tedious/lib/data-types/datetimeoffset.d.ts +0 -5
  70. package/dist/node_modules/tedious/lib/data-types/datetimeoffset.js +0 -111
  71. package/dist/node_modules/tedious/lib/data-types/decimal.d.ts +0 -6
  72. package/dist/node_modules/tedious/lib/data-types/decimal.js +0 -107
  73. package/dist/node_modules/tedious/lib/data-types/decimaln.d.ts +0 -3
  74. package/dist/node_modules/tedious/lib/data-types/decimaln.js +0 -29
  75. package/dist/node_modules/tedious/lib/data-types/float.d.ts +0 -3
  76. package/dist/node_modules/tedious/lib/data-types/float.js +0 -47
  77. package/dist/node_modules/tedious/lib/data-types/floatn.d.ts +0 -3
  78. package/dist/node_modules/tedious/lib/data-types/floatn.js +0 -29
  79. package/dist/node_modules/tedious/lib/data-types/image.d.ts +0 -3
  80. package/dist/node_modules/tedious/lib/data-types/image.js +0 -56
  81. package/dist/node_modules/tedious/lib/data-types/int.d.ts +0 -3
  82. package/dist/node_modules/tedious/lib/data-types/int.js +0 -53
  83. package/dist/node_modules/tedious/lib/data-types/intn.d.ts +0 -3
  84. package/dist/node_modules/tedious/lib/data-types/intn.js +0 -29
  85. package/dist/node_modules/tedious/lib/data-types/money.d.ts +0 -3
  86. package/dist/node_modules/tedious/lib/data-types/money.js +0 -59
  87. package/dist/node_modules/tedious/lib/data-types/moneyn.d.ts +0 -3
  88. package/dist/node_modules/tedious/lib/data-types/moneyn.js +0 -29
  89. package/dist/node_modules/tedious/lib/data-types/nchar.d.ts +0 -5
  90. package/dist/node_modules/tedious/lib/data-types/nchar.js +0 -100
  91. package/dist/node_modules/tedious/lib/data-types/ntext.d.ts +0 -3
  92. package/dist/node_modules/tedious/lib/data-types/ntext.js +0 -60
  93. package/dist/node_modules/tedious/lib/data-types/null.d.ts +0 -3
  94. package/dist/node_modules/tedious/lib/data-types/null.js +0 -29
  95. package/dist/node_modules/tedious/lib/data-types/numeric.d.ts +0 -6
  96. package/dist/node_modules/tedious/lib/data-types/numeric.js +0 -106
  97. package/dist/node_modules/tedious/lib/data-types/numericn.d.ts +0 -3
  98. package/dist/node_modules/tedious/lib/data-types/numericn.js +0 -29
  99. package/dist/node_modules/tedious/lib/data-types/nvarchar.d.ts +0 -5
  100. package/dist/node_modules/tedious/lib/data-types/nvarchar.js +0 -133
  101. package/dist/node_modules/tedious/lib/data-types/real.d.ts +0 -3
  102. package/dist/node_modules/tedious/lib/data-types/real.js +0 -48
  103. package/dist/node_modules/tedious/lib/data-types/smalldatetime.d.ts +0 -3
  104. package/dist/node_modules/tedious/lib/data-types/smalldatetime.js +0 -83
  105. package/dist/node_modules/tedious/lib/data-types/smallint.d.ts +0 -3
  106. package/dist/node_modules/tedious/lib/data-types/smallint.js +0 -53
  107. package/dist/node_modules/tedious/lib/data-types/smallmoney.d.ts +0 -3
  108. package/dist/node_modules/tedious/lib/data-types/smallmoney.js +0 -51
  109. package/dist/node_modules/tedious/lib/data-types/sql-variant.d.ts +0 -3
  110. package/dist/node_modules/tedious/lib/data-types/sql-variant.js +0 -29
  111. package/dist/node_modules/tedious/lib/data-types/text.d.ts +0 -3
  112. package/dist/node_modules/tedious/lib/data-types/text.js +0 -69
  113. package/dist/node_modules/tedious/lib/data-types/time.d.ts +0 -3
  114. package/dist/node_modules/tedious/lib/data-types/time.js +0 -96
  115. package/dist/node_modules/tedious/lib/data-types/tinyint.d.ts +0 -3
  116. package/dist/node_modules/tedious/lib/data-types/tinyint.js +0 -53
  117. package/dist/node_modules/tedious/lib/data-types/tvp.d.ts +0 -3
  118. package/dist/node_modules/tedious/lib/data-types/tvp.js +0 -117
  119. package/dist/node_modules/tedious/lib/data-types/udt.d.ts +0 -3
  120. package/dist/node_modules/tedious/lib/data-types/udt.js +0 -29
  121. package/dist/node_modules/tedious/lib/data-types/uniqueidentifier.d.ts +0 -3
  122. package/dist/node_modules/tedious/lib/data-types/uniqueidentifier.js +0 -50
  123. package/dist/node_modules/tedious/lib/data-types/varbinary.d.ts +0 -5
  124. package/dist/node_modules/tedious/lib/data-types/varbinary.js +0 -119
  125. package/dist/node_modules/tedious/lib/data-types/varchar.d.ts +0 -5
  126. package/dist/node_modules/tedious/lib/data-types/varchar.js +0 -112
  127. package/dist/node_modules/tedious/lib/data-types/xml.d.ts +0 -3
  128. package/dist/node_modules/tedious/lib/data-types/xml.js +0 -29
  129. package/dist/node_modules/tedious/lib/debug.d.ts +0 -25
  130. package/dist/node_modules/tedious/lib/debug.js +0 -67
  131. package/dist/node_modules/tedious/lib/errors/abort-error.d.ts +0 -4
  132. package/dist/node_modules/tedious/lib/errors/abort-error.js +0 -15
  133. package/dist/node_modules/tedious/lib/errors/timeout-error.d.ts +0 -4
  134. package/dist/node_modules/tedious/lib/errors/timeout-error.js +0 -15
  135. package/dist/node_modules/tedious/lib/errors.d.ts +0 -17
  136. package/dist/node_modules/tedious/lib/errors.js +0 -23
  137. package/dist/node_modules/tedious/lib/guid-parser.d.ts +0 -3
  138. package/dist/node_modules/tedious/lib/guid-parser.js +0 -30
  139. package/dist/node_modules/tedious/lib/incoming-message-stream.d.ts +0 -19
  140. package/dist/node_modules/tedious/lib/incoming-message-stream.js +0 -97
  141. package/dist/node_modules/tedious/lib/instance-lookup.d.ts +0 -13
  142. package/dist/node_modules/tedious/lib/instance-lookup.js +0 -96
  143. package/dist/node_modules/tedious/lib/library.d.ts +0 -1
  144. package/dist/node_modules/tedious/lib/library.js +0 -8
  145. package/dist/node_modules/tedious/lib/login7-payload.d.ts +0 -51
  146. package/dist/node_modules/tedious/lib/login7-payload.js +0 -402
  147. package/dist/node_modules/tedious/lib/message-io.d.ts +0 -28
  148. package/dist/node_modules/tedious/lib/message-io.js +0 -153
  149. package/dist/node_modules/tedious/lib/message.d.ts +0 -11
  150. package/dist/node_modules/tedious/lib/message.js +0 -21
  151. package/dist/node_modules/tedious/lib/metadata-parser.d.ts +0 -48
  152. package/dist/node_modules/tedious/lib/metadata-parser.js +0 -380
  153. package/dist/node_modules/tedious/lib/ntlm-payload.d.ts +0 -23
  154. package/dist/node_modules/tedious/lib/ntlm-payload.js +0 -136
  155. package/dist/node_modules/tedious/lib/ntlm.d.ts +0 -4
  156. package/dist/node_modules/tedious/lib/ntlm.js +0 -72
  157. package/dist/node_modules/tedious/lib/outgoing-message-stream.d.ts +0 -15
  158. package/dist/node_modules/tedious/lib/outgoing-message-stream.js +0 -81
  159. package/dist/node_modules/tedious/lib/packet.d.ts +0 -33
  160. package/dist/node_modules/tedious/lib/packet.js +0 -191
  161. package/dist/node_modules/tedious/lib/prelogin-payload.d.ts +0 -61
  162. package/dist/node_modules/tedious/lib/prelogin-payload.js +0 -209
  163. package/dist/node_modules/tedious/lib/request.d.ts +0 -370
  164. package/dist/node_modules/tedious/lib/request.js +0 -387
  165. package/dist/node_modules/tedious/lib/rpcrequest-payload.d.ts +0 -16
  166. package/dist/node_modules/tedious/lib/rpcrequest-payload.js +0 -109
  167. package/dist/node_modules/tedious/lib/sender.d.ts +0 -5
  168. package/dist/node_modules/tedious/lib/sender.js +0 -83
  169. package/dist/node_modules/tedious/lib/special-stored-procedure.d.ts +0 -18
  170. package/dist/node_modules/tedious/lib/special-stored-procedure.js +0 -26
  171. package/dist/node_modules/tedious/lib/sqlbatch-payload.d.ts +0 -13
  172. package/dist/node_modules/tedious/lib/sqlbatch-payload.js +0 -34
  173. package/dist/node_modules/tedious/lib/tds-versions.d.ts +0 -6
  174. package/dist/node_modules/tedious/lib/tds-versions.js +0 -19
  175. package/dist/node_modules/tedious/lib/tedious.d.ts +0 -13
  176. package/dist/node_modules/tedious/lib/tedious.js +0 -249
  177. package/dist/node_modules/tedious/lib/token/colmetadata-token-parser.d.ts +0 -12
  178. package/dist/node_modules/tedious/lib/token/colmetadata-token-parser.js +0 -124
  179. package/dist/node_modules/tedious/lib/token/done-token-parser.d.ts +0 -6
  180. package/dist/node_modules/tedious/lib/token/done-token-parser.js +0 -76
  181. package/dist/node_modules/tedious/lib/token/env-change-token-parser.d.ts +0 -5
  182. package/dist/node_modules/tedious/lib/token/env-change-token-parser.js +0 -190
  183. package/dist/node_modules/tedious/lib/token/feature-ext-ack-parser.d.ts +0 -5
  184. package/dist/node_modules/tedious/lib/token/feature-ext-ack-parser.js +0 -52
  185. package/dist/node_modules/tedious/lib/token/fedauth-info-parser.d.ts +0 -5
  186. package/dist/node_modules/tedious/lib/token/fedauth-info-parser.js +0 -62
  187. package/dist/node_modules/tedious/lib/token/handler.d.ts +0 -135
  188. package/dist/node_modules/tedious/lib/token/handler.js +0 -444
  189. package/dist/node_modules/tedious/lib/token/helpers.d.ts +0 -28
  190. package/dist/node_modules/tedious/lib/token/helpers.js +0 -205
  191. package/dist/node_modules/tedious/lib/token/infoerror-token-parser.d.ts +0 -5
  192. package/dist/node_modules/tedious/lib/token/infoerror-token-parser.js +0 -80
  193. package/dist/node_modules/tedious/lib/token/loginack-token-parser.d.ts +0 -5
  194. package/dist/node_modules/tedious/lib/token/loginack-token-parser.js +0 -75
  195. package/dist/node_modules/tedious/lib/token/nbcrow-token-parser.d.ts +0 -4
  196. package/dist/node_modules/tedious/lib/token/nbcrow-token-parser.js +0 -104
  197. package/dist/node_modules/tedious/lib/token/order-token-parser.d.ts +0 -5
  198. package/dist/node_modules/tedious/lib/token/order-token-parser.js +0 -34
  199. package/dist/node_modules/tedious/lib/token/returnstatus-token-parser.d.ts +0 -5
  200. package/dist/node_modules/tedious/lib/token/returnstatus-token-parser.js +0 -21
  201. package/dist/node_modules/tedious/lib/token/returnvalue-token-parser.d.ts +0 -4
  202. package/dist/node_modules/tedious/lib/token/returnvalue-token-parser.js +0 -94
  203. package/dist/node_modules/tedious/lib/token/row-token-parser.d.ts +0 -4
  204. package/dist/node_modules/tedious/lib/token/row-token-parser.js +0 -77
  205. package/dist/node_modules/tedious/lib/token/sspi-token-parser.d.ts +0 -5
  206. package/dist/node_modules/tedious/lib/token/sspi-token-parser.js +0 -42
  207. package/dist/node_modules/tedious/lib/token/stream-parser.d.ts +0 -34
  208. package/dist/node_modules/tedious/lib/token/stream-parser.js +0 -341
  209. package/dist/node_modules/tedious/lib/token/token-stream-parser.d.ts +0 -15
  210. package/dist/node_modules/tedious/lib/token/token-stream-parser.js +0 -36
  211. package/dist/node_modules/tedious/lib/token/token.d.ts +0 -312
  212. package/dist/node_modules/tedious/lib/token/token.js +0 -328
  213. package/dist/node_modules/tedious/lib/tracking-buffer/writable-tracking-buffer.d.ts +0 -47
  214. package/dist/node_modules/tedious/lib/tracking-buffer/writable-tracking-buffer.js +0 -249
  215. package/dist/node_modules/tedious/lib/transaction.d.ts +0 -39
  216. package/dist/node_modules/tedious/lib/transaction.js +0 -137
  217. package/dist/node_modules/tedious/lib/transient-error-lookup.d.ts +0 -3
  218. package/dist/node_modules/tedious/lib/transient-error-lookup.js +0 -19
  219. package/dist/node_modules/tedious/lib/utils/with-timeout.d.ts +0 -7
  220. package/dist/node_modules/tedious/lib/utils/with-timeout.js +0 -36
  221. package/dist/node_modules/tedious/lib/value-parser.d.ts +0 -7
  222. package/dist/node_modules/tedious/lib/value-parser.js +0 -813
  223. package/dist/node_modules/tedious/node_modules/@types/node/assert/strict.d.ts +0 -105
  224. package/dist/node_modules/tedious/node_modules/@types/node/assert.d.ts +0 -955
  225. package/dist/node_modules/tedious/node_modules/@types/node/async_hooks.d.ts +0 -623
  226. package/dist/node_modules/tedious/node_modules/@types/node/buffer.buffer.d.ts +0 -466
  227. package/dist/node_modules/tedious/node_modules/@types/node/buffer.d.ts +0 -1810
  228. package/dist/node_modules/tedious/node_modules/@types/node/child_process.d.ts +0 -1428
  229. package/dist/node_modules/tedious/node_modules/@types/node/cluster.d.ts +0 -486
  230. package/dist/node_modules/tedious/node_modules/@types/node/compatibility/iterators.d.ts +0 -21
  231. package/dist/node_modules/tedious/node_modules/@types/node/console.d.ts +0 -151
  232. package/dist/node_modules/tedious/node_modules/@types/node/constants.d.ts +0 -20
  233. package/dist/node_modules/tedious/node_modules/@types/node/crypto.d.ts +0 -4065
  234. package/dist/node_modules/tedious/node_modules/@types/node/dgram.d.ts +0 -564
  235. package/dist/node_modules/tedious/node_modules/@types/node/diagnostics_channel.d.ts +0 -576
  236. package/dist/node_modules/tedious/node_modules/@types/node/dns/promises.d.ts +0 -503
  237. package/dist/node_modules/tedious/node_modules/@types/node/dns.d.ts +0 -922
  238. package/dist/node_modules/tedious/node_modules/@types/node/domain.d.ts +0 -166
  239. package/dist/node_modules/tedious/node_modules/@types/node/events.d.ts +0 -1054
  240. package/dist/node_modules/tedious/node_modules/@types/node/fs/promises.d.ts +0 -1329
  241. package/dist/node_modules/tedious/node_modules/@types/node/fs.d.ts +0 -4676
  242. package/dist/node_modules/tedious/node_modules/@types/node/globals.d.ts +0 -150
  243. package/dist/node_modules/tedious/node_modules/@types/node/globals.typedarray.d.ts +0 -101
  244. package/dist/node_modules/tedious/node_modules/@types/node/http.d.ts +0 -2167
  245. package/dist/node_modules/tedious/node_modules/@types/node/http2.d.ts +0 -2480
  246. package/dist/node_modules/tedious/node_modules/@types/node/https.d.ts +0 -405
  247. package/dist/node_modules/tedious/node_modules/@types/node/index.d.ts +0 -115
  248. package/dist/node_modules/tedious/node_modules/@types/node/inspector/promises.d.ts +0 -41
  249. package/dist/node_modules/tedious/node_modules/@types/node/inspector.d.ts +0 -224
  250. package/dist/node_modules/tedious/node_modules/@types/node/inspector.generated.d.ts +0 -4226
  251. package/dist/node_modules/tedious/node_modules/@types/node/module.d.ts +0 -819
  252. package/dist/node_modules/tedious/node_modules/@types/node/net.d.ts +0 -933
  253. package/dist/node_modules/tedious/node_modules/@types/node/os.d.ts +0 -507
  254. package/dist/node_modules/tedious/node_modules/@types/node/package.json +0 -155
  255. package/dist/node_modules/tedious/node_modules/@types/node/path/posix.d.ts +0 -8
  256. package/dist/node_modules/tedious/node_modules/@types/node/path/win32.d.ts +0 -8
  257. package/dist/node_modules/tedious/node_modules/@types/node/path.d.ts +0 -187
  258. package/dist/node_modules/tedious/node_modules/@types/node/perf_hooks.d.ts +0 -643
  259. package/dist/node_modules/tedious/node_modules/@types/node/process.d.ts +0 -2161
  260. package/dist/node_modules/tedious/node_modules/@types/node/punycode.d.ts +0 -117
  261. package/dist/node_modules/tedious/node_modules/@types/node/querystring.d.ts +0 -152
  262. package/dist/node_modules/tedious/node_modules/@types/node/quic.d.ts +0 -910
  263. package/dist/node_modules/tedious/node_modules/@types/node/readline/promises.d.ts +0 -161
  264. package/dist/node_modules/tedious/node_modules/@types/node/readline.d.ts +0 -541
  265. package/dist/node_modules/tedious/node_modules/@types/node/repl.d.ts +0 -415
  266. package/dist/node_modules/tedious/node_modules/@types/node/sea.d.ts +0 -162
  267. package/dist/node_modules/tedious/node_modules/@types/node/sqlite.d.ts +0 -955
  268. package/dist/node_modules/tedious/node_modules/@types/node/stream/consumers.d.ts +0 -38
  269. package/dist/node_modules/tedious/node_modules/@types/node/stream/promises.d.ts +0 -211
  270. package/dist/node_modules/tedious/node_modules/@types/node/stream/web.d.ts +0 -296
  271. package/dist/node_modules/tedious/node_modules/@types/node/stream.d.ts +0 -1760
  272. package/dist/node_modules/tedious/node_modules/@types/node/string_decoder.d.ts +0 -67
  273. package/dist/node_modules/tedious/node_modules/@types/node/test/reporters.d.ts +0 -96
  274. package/dist/node_modules/tedious/node_modules/@types/node/test.d.ts +0 -2240
  275. package/dist/node_modules/tedious/node_modules/@types/node/timers/promises.d.ts +0 -108
  276. package/dist/node_modules/tedious/node_modules/@types/node/timers.d.ts +0 -159
  277. package/dist/node_modules/tedious/node_modules/@types/node/tls.d.ts +0 -1198
  278. package/dist/node_modules/tedious/node_modules/@types/node/trace_events.d.ts +0 -197
  279. package/dist/node_modules/tedious/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +0 -462
  280. package/dist/node_modules/tedious/node_modules/@types/node/ts5.6/compatibility/float16array.d.ts +0 -71
  281. package/dist/node_modules/tedious/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +0 -36
  282. package/dist/node_modules/tedious/node_modules/@types/node/ts5.6/index.d.ts +0 -117
  283. package/dist/node_modules/tedious/node_modules/@types/node/ts5.7/compatibility/float16array.d.ts +0 -72
  284. package/dist/node_modules/tedious/node_modules/@types/node/ts5.7/index.d.ts +0 -117
  285. package/dist/node_modules/tedious/node_modules/@types/node/tty.d.ts +0 -250
  286. package/dist/node_modules/tedious/node_modules/@types/node/url.d.ts +0 -519
  287. package/dist/node_modules/tedious/node_modules/@types/node/util/types.d.ts +0 -558
  288. package/dist/node_modules/tedious/node_modules/@types/node/util.d.ts +0 -1662
  289. package/dist/node_modules/tedious/node_modules/@types/node/v8.d.ts +0 -983
  290. package/dist/node_modules/tedious/node_modules/@types/node/vm.d.ts +0 -1208
  291. package/dist/node_modules/tedious/node_modules/@types/node/wasi.d.ts +0 -202
  292. package/dist/node_modules/tedious/node_modules/@types/node/web-globals/abortcontroller.d.ts +0 -59
  293. package/dist/node_modules/tedious/node_modules/@types/node/web-globals/blob.d.ts +0 -23
  294. package/dist/node_modules/tedious/node_modules/@types/node/web-globals/console.d.ts +0 -9
  295. package/dist/node_modules/tedious/node_modules/@types/node/web-globals/crypto.d.ts +0 -39
  296. package/dist/node_modules/tedious/node_modules/@types/node/web-globals/domexception.d.ts +0 -68
  297. package/dist/node_modules/tedious/node_modules/@types/node/web-globals/encoding.d.ts +0 -11
  298. package/dist/node_modules/tedious/node_modules/@types/node/web-globals/events.d.ts +0 -106
  299. package/dist/node_modules/tedious/node_modules/@types/node/web-globals/fetch.d.ts +0 -69
  300. package/dist/node_modules/tedious/node_modules/@types/node/web-globals/importmeta.d.ts +0 -13
  301. package/dist/node_modules/tedious/node_modules/@types/node/web-globals/messaging.d.ts +0 -23
  302. package/dist/node_modules/tedious/node_modules/@types/node/web-globals/navigator.d.ts +0 -25
  303. package/dist/node_modules/tedious/node_modules/@types/node/web-globals/performance.d.ts +0 -45
  304. package/dist/node_modules/tedious/node_modules/@types/node/web-globals/storage.d.ts +0 -24
  305. package/dist/node_modules/tedious/node_modules/@types/node/web-globals/streams.d.ts +0 -115
  306. package/dist/node_modules/tedious/node_modules/@types/node/web-globals/timers.d.ts +0 -44
  307. package/dist/node_modules/tedious/node_modules/@types/node/web-globals/url.d.ts +0 -24
  308. package/dist/node_modules/tedious/node_modules/@types/node/worker_threads.d.ts +0 -717
  309. package/dist/node_modules/tedious/node_modules/@types/node/zlib.d.ts +0 -618
  310. package/dist/node_modules/tedious/node_modules/bl/.github/dependabot.yml +0 -16
  311. package/dist/node_modules/tedious/node_modules/bl/.github/workflows/test-and-release.yml +0 -61
  312. package/dist/node_modules/tedious/node_modules/bl/BufferList.d.ts +0 -431
  313. package/dist/node_modules/tedious/node_modules/bl/BufferList.js +0 -421
  314. package/dist/node_modules/tedious/node_modules/bl/bl.js +0 -84
  315. package/dist/node_modules/tedious/node_modules/bl/index.d.ts +0 -88
  316. package/dist/node_modules/tedious/node_modules/bl/package.json +0 -123
  317. package/dist/node_modules/tedious/node_modules/bl/test/convert.js +0 -21
  318. package/dist/node_modules/tedious/node_modules/bl/test/indexOf.js +0 -492
  319. package/dist/node_modules/tedious/node_modules/bl/test/isBufferList.js +0 -32
  320. package/dist/node_modules/tedious/node_modules/bl/test/test.js +0 -1032
  321. package/dist/node_modules/tedious/node_modules/buffer/index.d.ts +0 -194
  322. package/dist/node_modules/tedious/node_modules/buffer/index.js +0 -2106
  323. package/dist/node_modules/tedious/node_modules/buffer/package.json +0 -93
  324. package/dist/node_modules/tedious/node_modules/readable-stream/lib/_stream_duplex.js +0 -4
  325. package/dist/node_modules/tedious/node_modules/readable-stream/lib/_stream_passthrough.js +0 -4
  326. package/dist/node_modules/tedious/node_modules/readable-stream/lib/_stream_readable.js +0 -4
  327. package/dist/node_modules/tedious/node_modules/readable-stream/lib/_stream_transform.js +0 -4
  328. package/dist/node_modules/tedious/node_modules/readable-stream/lib/_stream_writable.js +0 -4
  329. package/dist/node_modules/tedious/node_modules/readable-stream/lib/internal/streams/add-abort-signal.js +0 -52
  330. package/dist/node_modules/tedious/node_modules/readable-stream/lib/internal/streams/buffer_list.js +0 -157
  331. package/dist/node_modules/tedious/node_modules/readable-stream/lib/internal/streams/compose.js +0 -194
  332. package/dist/node_modules/tedious/node_modules/readable-stream/lib/internal/streams/destroy.js +0 -290
  333. package/dist/node_modules/tedious/node_modules/readable-stream/lib/internal/streams/duplex.js +0 -143
  334. package/dist/node_modules/tedious/node_modules/readable-stream/lib/internal/streams/duplexify.js +0 -378
  335. package/dist/node_modules/tedious/node_modules/readable-stream/lib/internal/streams/end-of-stream.js +0 -286
  336. package/dist/node_modules/tedious/node_modules/readable-stream/lib/internal/streams/from.js +0 -98
  337. package/dist/node_modules/tedious/node_modules/readable-stream/lib/internal/streams/lazy_transform.js +0 -51
  338. package/dist/node_modules/tedious/node_modules/readable-stream/lib/internal/streams/legacy.js +0 -89
  339. package/dist/node_modules/tedious/node_modules/readable-stream/lib/internal/streams/operators.js +0 -457
  340. package/dist/node_modules/tedious/node_modules/readable-stream/lib/internal/streams/passthrough.js +0 -39
  341. package/dist/node_modules/tedious/node_modules/readable-stream/lib/internal/streams/pipeline.js +0 -471
  342. package/dist/node_modules/tedious/node_modules/readable-stream/lib/internal/streams/readable.js +0 -1290
  343. package/dist/node_modules/tedious/node_modules/readable-stream/lib/internal/streams/state.js +0 -39
  344. package/dist/node_modules/tedious/node_modules/readable-stream/lib/internal/streams/transform.js +0 -180
  345. package/dist/node_modules/tedious/node_modules/readable-stream/lib/internal/streams/utils.js +0 -327
  346. package/dist/node_modules/tedious/node_modules/readable-stream/lib/internal/streams/writable.js +0 -819
  347. package/dist/node_modules/tedious/node_modules/readable-stream/lib/internal/validators.js +0 -530
  348. package/dist/node_modules/tedious/node_modules/readable-stream/lib/ours/browser.js +0 -35
  349. package/dist/node_modules/tedious/node_modules/readable-stream/lib/ours/errors.js +0 -343
  350. package/dist/node_modules/tedious/node_modules/readable-stream/lib/ours/index.js +0 -65
  351. package/dist/node_modules/tedious/node_modules/readable-stream/lib/ours/primordials.js +0 -124
  352. package/dist/node_modules/tedious/node_modules/readable-stream/lib/ours/util/inspect.js +0 -55
  353. package/dist/node_modules/tedious/node_modules/readable-stream/lib/ours/util.js +0 -148
  354. package/dist/node_modules/tedious/node_modules/readable-stream/lib/stream/promises.js +0 -43
  355. package/dist/node_modules/tedious/node_modules/readable-stream/lib/stream.js +0 -143
  356. package/dist/node_modules/tedious/node_modules/readable-stream/package.json +0 -88
  357. package/dist/node_modules/tedious/node_modules/sprintf-js/dist/.gitattributes +0 -4
  358. package/dist/node_modules/tedious/node_modules/sprintf-js/dist/angular-sprintf.min.js +0 -3
  359. package/dist/node_modules/tedious/node_modules/sprintf-js/dist/sprintf.min.js +0 -3
  360. package/dist/node_modules/tedious/node_modules/sprintf-js/package.json +0 -35
  361. package/dist/node_modules/tedious/node_modules/sprintf-js/src/angular-sprintf.js +0 -24
  362. package/dist/node_modules/tedious/node_modules/sprintf-js/src/sprintf.js +0 -231
  363. package/dist/node_modules/tedious/node_modules/undici-types/agent.d.ts +0 -32
  364. package/dist/node_modules/tedious/node_modules/undici-types/api.d.ts +0 -43
  365. package/dist/node_modules/tedious/node_modules/undici-types/balanced-pool.d.ts +0 -29
  366. package/dist/node_modules/tedious/node_modules/undici-types/cache-interceptor.d.ts +0 -172
  367. package/dist/node_modules/tedious/node_modules/undici-types/cache.d.ts +0 -36
  368. package/dist/node_modules/tedious/node_modules/undici-types/client-stats.d.ts +0 -15
  369. package/dist/node_modules/tedious/node_modules/undici-types/client.d.ts +0 -108
  370. package/dist/node_modules/tedious/node_modules/undici-types/connector.d.ts +0 -34
  371. package/dist/node_modules/tedious/node_modules/undici-types/content-type.d.ts +0 -21
  372. package/dist/node_modules/tedious/node_modules/undici-types/cookies.d.ts +0 -30
  373. package/dist/node_modules/tedious/node_modules/undici-types/diagnostics-channel.d.ts +0 -74
  374. package/dist/node_modules/tedious/node_modules/undici-types/dispatcher.d.ts +0 -276
  375. package/dist/node_modules/tedious/node_modules/undici-types/env-http-proxy-agent.d.ts +0 -22
  376. package/dist/node_modules/tedious/node_modules/undici-types/errors.d.ts +0 -161
  377. package/dist/node_modules/tedious/node_modules/undici-types/eventsource.d.ts +0 -66
  378. package/dist/node_modules/tedious/node_modules/undici-types/fetch.d.ts +0 -211
  379. package/dist/node_modules/tedious/node_modules/undici-types/formdata.d.ts +0 -108
  380. package/dist/node_modules/tedious/node_modules/undici-types/global-dispatcher.d.ts +0 -9
  381. package/dist/node_modules/tedious/node_modules/undici-types/global-origin.d.ts +0 -7
  382. package/dist/node_modules/tedious/node_modules/undici-types/h2c-client.d.ts +0 -73
  383. package/dist/node_modules/tedious/node_modules/undici-types/handlers.d.ts +0 -15
  384. package/dist/node_modules/tedious/node_modules/undici-types/header.d.ts +0 -160
  385. package/dist/node_modules/tedious/node_modules/undici-types/index.d.ts +0 -80
  386. package/dist/node_modules/tedious/node_modules/undici-types/interceptors.d.ts +0 -39
  387. package/dist/node_modules/tedious/node_modules/undici-types/mock-agent.d.ts +0 -68
  388. package/dist/node_modules/tedious/node_modules/undici-types/mock-call-history.d.ts +0 -111
  389. package/dist/node_modules/tedious/node_modules/undici-types/mock-client.d.ts +0 -27
  390. package/dist/node_modules/tedious/node_modules/undici-types/mock-errors.d.ts +0 -12
  391. package/dist/node_modules/tedious/node_modules/undici-types/mock-interceptor.d.ts +0 -94
  392. package/dist/node_modules/tedious/node_modules/undici-types/mock-pool.d.ts +0 -27
  393. package/dist/node_modules/tedious/node_modules/undici-types/package.json +0 -55
  394. package/dist/node_modules/tedious/node_modules/undici-types/patch.d.ts +0 -29
  395. package/dist/node_modules/tedious/node_modules/undici-types/pool-stats.d.ts +0 -19
  396. package/dist/node_modules/tedious/node_modules/undici-types/pool.d.ts +0 -41
  397. package/dist/node_modules/tedious/node_modules/undici-types/proxy-agent.d.ts +0 -29
  398. package/dist/node_modules/tedious/node_modules/undici-types/readable.d.ts +0 -68
  399. package/dist/node_modules/tedious/node_modules/undici-types/retry-agent.d.ts +0 -8
  400. package/dist/node_modules/tedious/node_modules/undici-types/retry-handler.d.ts +0 -125
  401. package/dist/node_modules/tedious/node_modules/undici-types/snapshot-agent.d.ts +0 -109
  402. package/dist/node_modules/tedious/node_modules/undici-types/util.d.ts +0 -18
  403. package/dist/node_modules/tedious/node_modules/undici-types/utility.d.ts +0 -7
  404. package/dist/node_modules/tedious/node_modules/undici-types/webidl.d.ts +0 -341
  405. package/dist/node_modules/tedious/node_modules/undici-types/websocket.d.ts +0 -186
  406. package/dist/node_modules/tedious/package.json +0 -1
  407. package/dist/node_modules/tedious/tsconfig.build-types.json +0 -15
  408. package/dist/node_modules/tedious/tsconfig.json +0 -29
  409. package/dist/node_modules/tedious/types/js-md4.d.ts +0 -7
  410. package/dist/node_modules/tedious/types/native-duplexpair.d.ts +0 -12
@@ -7,4 +7,4 @@
7
7
  * For more information, please refer to: https://www.nocobase.com/agreement.
8
8
  */
9
9
 
10
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react"),require("@emotion/css"),require("@formily/react"),require("@nocobase/client"),require("@nocobase/plugin-data-source-manager/client"),require("antd"),require("@ant-design/icons"),require("react-router-dom"),require("react-i18next")):"function"==typeof define&&define.amd?define("plugin-data-source-mssql",["react","@emotion/css","@formily/react","@nocobase/client","@nocobase/plugin-data-source-manager/client","antd","@ant-design/icons","react-router-dom","react-i18next"],t):"object"==typeof exports?exports["plugin-data-source-mssql"]=t(require("react"),require("@emotion/css"),require("@formily/react"),require("@nocobase/client"),require("@nocobase/plugin-data-source-manager/client"),require("antd"),require("@ant-design/icons"),require("react-router-dom"),require("react-i18next")):e["plugin-data-source-mssql"]=t(e.react,e["@emotion/css"],e["@formily/react"],e["@nocobase/client"],e["@nocobase/plugin-data-source-manager/client"],e.antd,e["@ant-design/icons"],e["react-router-dom"],e["react-i18next"])}(self,function(e,t,n,r,o,a,c,i,l){return function(){"use strict";var u={482:function(e){e.exports=c},964:function(e){e.exports=t},505:function(e){e.exports=n},772:function(e){e.exports=r},904:function(e){e.exports=o},721:function(e){e.exports=a},156:function(t){t.exports=e},238:function(e){e.exports=l},128:function(e){e.exports=i}},s={};function p(e){var t=s[e];if(void 0!==t)return t.exports;var n=s[e]={exports:{}};return u[e](n,n.exports,p),n.exports}p.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return p.d(t,{a:t}),t},p.d=function(e,t){for(var n in t)p.o(t,n)&&!p.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},p.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},p.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var f={};return!function(){p.r(f),p.d(f,{default:function(){return F},PluginDataSourceMssqlClient:function(){return E}});var e=p(772),t=p(904),n=p.n(t),r=p(156),o=p.n(r),a=p(505),c=p(721),i=p(238);function l(e,t,n,r,o,a,c){try{var i=e[a](c),l=i.value}catch(e){n(e);return}i.done?t(l):Promise.resolve(l).then(r,o)}var u=function(t){var n,u=t.CollectionsTableField,s=t.loadCollections,p=t.from;console.log("[MSSQL Plugin] ConfigForm rendering...");var f=(0,e.useAPIClient)(),m=(0,a.useForm)(),d=(0,i.useTranslation)().t,y=u({NAMESPACE:"data-source-manager",t:d}),b=y.CollectionsTable,h=y.createCollectionsSchema,v=y.Text,x=y.addAllCollectionsSchema,g=(0,r.useCallback)((n=function(){var e,t,n,r,o;return function(e,t){var n,r,o,a,c={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function i(a){return function(i){var l=[a,i];if(n)throw TypeError("Generator is already executing.");for(;c;)try{if(n=1,r&&(o=2&l[0]?r.return:l[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,l[1])).done)return o;switch(r=0,o&&(l=[2&l[0],o.value]),l[0]){case 0:case 1:o=l;break;case 4:return c.label++,{value:l[1],done:!1};case 5:c.label++,r=l[1],l=[0];continue;case 7:l=c.ops.pop(),c.trys.pop();continue;default:if(!(o=(o=c.trys).length>0&&o[o.length-1])&&(6===l[0]||2===l[0])){c=0;continue}if(3===l[0]&&(!o||l[1]>o[0]&&l[1]<o[3])){c.label=l[1];break}if(6===l[0]&&c.label<o[1]){c.label=o[1],o=l;break}if(o&&c.label<o[2]){c.label=o[2],c.ops.push(l);break}o[2]&&c.ops.pop(),c.trys.pop();continue}l=t.call(e,c)}catch(e){l=[6,e],r=0}finally{n=o=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}}(this,function(a){switch(a.label){case 0:return[4,m.submit()];case 1:a.sent(),e=m.values,a.label=2;case 2:return a.trys.push([2,4,,5]),[4,f.request({url:"external-mssql:testConnection",method:"post",data:e})];case 3:return a.sent(),c.message.success(d("Connection successful")),[3,5];case 4:return o=(null==(t=a.sent())||null==(r=t.response)||null==(n=r.data)?void 0:n.message)||t.message,c.message.error(o),[2];case 5:return[2]}})},function(){var e=this,t=arguments;return new Promise(function(r,o){var a=n.apply(e,t);function c(e){l(a,r,o,c,i,"next",e)}function i(e){l(a,r,o,c,i,"throw",e)}c(void 0)})}),[f,m,d]);return o().createElement(e.SchemaComponent,{scope:{CollectionsTableField:u,loadCollections:s,handleTestConnection:g,from:p,t:d,CollectionsTable:b,createCollectionsSchema:h,Text:v,addAllCollectionsSchema:x},components:{CollectionsTable:b,Text:v},schema:{type:"object",properties:{type:{type:"string","x-decorator":"FormItem","x-component":"Input","x-hidden":!0},key:{type:"string",title:d("Data source name"),required:!0,"x-decorator":"FormItem","x-component":"Input"},displayName:{type:"string",title:d("Display name"),required:!0,"x-decorator":"FormItem","x-component":"Input"},options:{type:"object",properties:{host:{type:"string",title:d("Host"),required:!0,"x-decorator":"FormItem","x-component":"Input","x-component-props":{placeholder:"localhost"}},port:{type:"number",title:d("Port"),required:!0,"x-decorator":"FormItem","x-component":"InputNumber","x-component-props":{min:1,max:65535},default:1433},database:{type:"string",title:d("Database"),required:!0,"x-decorator":"FormItem","x-component":"Input"},schema:{type:"string",title:d("Schema"),"x-decorator":"FormItem","x-component":"Input"},username:{type:"string",title:d("Username"),required:!0,"x-decorator":"FormItem","x-component":"Input"},password:{type:"string",title:d("Password"),"x-decorator":"FormItem","x-component":"Password"},encrypt:{type:"boolean",title:d("Encrypt"),"x-decorator":"FormItem","x-component":"Checkbox"},tablePrefix:{type:"string",title:d("Table prefix"),"x-decorator":"FormItem","x-component":"Input"},addAllCollections:{type:"boolean",title:d("Load all collections"),"x-decorator":"FormItem","x-component":"Checkbox",default:!0},collections:h(p,s)}}}}})},s=p(482),m=p(964),d=p(128);function y(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function b(e,t,n,r,o,a,c){try{var i=e[a](c),l=i.value}catch(e){n(e);return}i.done?t(l):Promise.resolve(l).then(r,o)}function h(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var a=e.apply(t,n);function c(e){b(a,r,o,c,i,"next",e)}function i(e){b(a,r,o,c,i,"throw",e)}c(void 0)})}}function v(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}function x(e,t){var n,r,o,a,c={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function i(a){return function(i){var l=[a,i];if(n)throw TypeError("Generator is already executing.");for(;c;)try{if(n=1,r&&(o=2&l[0]?r.return:l[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,l[1])).done)return o;switch(r=0,o&&(l=[2&l[0],o.value]),l[0]){case 0:case 1:o=l;break;case 4:return c.label++,{value:l[1],done:!1};case 5:c.label++,r=l[1],l=[0];continue;case 7:l=c.ops.pop(),c.trys.pop();continue;default:if(!(o=(o=c.trys).length>0&&o[o.length-1])&&(6===l[0]||2===l[0])){c=0;continue}if(3===l[0]&&(!o||l[1]>o[0]&&l[1]<o[3])){c.label=l[1];break}if(6===l[0]&&c.label<o[1]){c.label=o[1],o=l;break}if(o&&c.label<o[2]){c.label=o[2],c.ops.push(l);break}o[2]&&c.ops.pop(),c.trys.pop();continue}l=t.call(e,c)}catch(e){l=[6,e],r=0}finally{n=o=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}}function g(){var e,t,n=(e=["\n .ant-modal-body {\n margin-left: 35px;\n margin-bottom: 35px;\n .ant-checkbox-wrapper {\n height: 25px;\n }\n }\n "],t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}})));return g=function(){return n},n}var w=function(t){var n=(0,e.useRecord)();return o().createElement(O,v({item:n},t))},C=function(){var t=(0,e.useResourceActionContext)().refresh,n=(0,d.useParams)().name,r=(0,e.useRecord)(),o=(0,e.useAPIClient)(),i=(0,a.useForm)(),l=((null==i?void 0:i.values)||{}).cascade,u=null==r?void 0:r.name;return{run:function(){return h(function(){var e,r,a,i,s;return x(this,function(p){switch(p.label){case 0:if(!u)return c.message.error("Collection name is missing"),[2];p.label=1;case 1:return p.trys.push([1,3,,4]),[4,o.request({url:"dataSources/".concat(n,"/collections:destroy"),method:"post",params:{filterByTk:u,cascade:l}})];case 2:return p.sent(),c.message.success("Collection deleted successfully"),t(),[3,4];case 3:throw e=p.sent(),c.message.error((null==e||null==(s=e.response)||null==(i=s.data)||null==(a=i.errors)||null==(r=a[0])?void 0:r.message)||"Failed to delete collection"),e;case 4:return[2]}})})()}}},S=function(){var t=C().run,n=(0,e.useCollectionManager_deprecated)().refreshCM;return{run:function(){return h(function(){return x(this,function(e){switch(e.label){case 0:return[4,t()];case 1:return e.sent(),[4,n()];case 2:return e.sent(),[2]}})})()}}},O=function(t){var n,a=t.scope,l=t.getContainer,u=t.item,p=t.children,f=t.isBulk,d=t.useAction,b=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(t,["scope","getContainer","item","children","isBulk","useAction"]),h=(0,i.useTranslation)().t,x=(n=(0,r.useState)(!1),function(e){if(Array.isArray(e))return e}(n)||function(e,t){var n,r,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var a=[],c=!0,i=!1;try{for(o=o.call(e);!(c=(n=o.next()).done)&&(a.push(n.value),a.length!==t);c=!0);}catch(e){i=!0,r=e}finally{try{c||null==o.return||o.return()}finally{if(i)throw r}}return a}}(n,2)||function(e,t){if(e){if("string"==typeof e)return y(e,2);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return y(e,t)}}(n,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),w=x[0],C=x[1];return o().createElement(e.RecordProvider,{record:u},o().createElement(e.ActionContextProvider,{value:{visible:w,setVisible:C}},f?o().createElement(c.Button,{icon:o().createElement(s.DeleteOutlined,null),onClick:function(){return C(!0)}},p||h("Delete")):o().createElement("a",v({onClick:function(){return C(!0)}},b),p||h("Delete")),o().createElement(e.SchemaComponent,{schema:{type:"object",properties:{deleteCollection:{type:"void","x-decorator":"Form","x-component":"Action.Modal",title:o().createElement(function(){return o().createElement("span",null,o().createElement(s.ExclamationCircleFilled,{style:{color:"#faad14",marginRight:"12px",fontSize:"22px"}}),o().createElement("span",{style:{fontSize:"19px"}},h("Delete collection")))},null),"x-component-props":{width:520,getContainer:"{{ getContainer }}",className:(0,m.css)(g())},properties:{info:{type:"string","x-component":"div","x-content":"{{t('Are you sure you want to delete it?')}}"},cascade:{type:"boolean","x-decorator":"FormItem","x-component":"Checkbox",default:!1,"x-content":h("Automatically drop objects that depend on the collection (such as views), and in turn all objects that depend on those objects")},footer:{type:"void","x-component":"Action.Modal.Footer",properties:{action1:{title:'{{ t("Cancel") }}',"x-component":"Action","x-component-props":{useAction:"{{ useCancelAction }}"}},action2:{title:'{{ t("Ok") }}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ useDestroyCollectionAction }}",style:{marginLeft:"8px"}}}}}}}}},scope:v({getContainer:l,useDestroyCollectionAction:d||S,useCancelAction:e.useCancelAction},a)})))};function j(e,t,n,r,o,a,c){try{var i=e[a](c),l=i.value}catch(e){n(e);return}i.done?t(l):Promise.resolve(l).then(r,o)}function P(e,t,n){return(P=I()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&A(o,n.prototype),o}).apply(null,arguments)}O.displayName="MssqlDeleteCollectionAction";function q(e){return(q=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function A(e,t){return(A=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function k(e){var t="function"==typeof Map?new Map:void 0;return(k=function(e){if(null===e||-1===Function.toString.call(e).indexOf("[native code]"))return e;if("function"!=typeof e)throw TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return P(e,arguments,q(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),A(n,e)})(e)}function I(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(I=function(){return!!e})()}var E=function(e){var t;if("function"!=typeof e&&null!==e)throw TypeError("Super expression must either be null or a function");function r(){var e,t;if(!(this instanceof r))throw TypeError("Cannot call a class as a function");return e=r,t=arguments,e=q(e),function(e,t){var n;if(t&&("object"==((n=t)&&"undefined"!=typeof Symbol&&n.constructor===Symbol?"symbol":typeof n)||"function"==typeof t))return t;if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(this,I()?Reflect.construct(e,t||[],q(this).constructor):e.apply(this,t))}return r.prototype=Object.create(e&&e.prototype,{constructor:{value:r,writable:!0,configurable:!0}}),e&&A(r,e),t=[{key:"load",value:function(){var e,t=this;return(e=function(){return function(e,t){var n,r,o,a,c={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function i(a){return function(i){var l=[a,i];if(n)throw TypeError("Generator is already executing.");for(;c;)try{if(n=1,r&&(o=2&l[0]?r.return:l[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,l[1])).done)return o;switch(r=0,o&&(l=[2&l[0],o.value]),l[0]){case 0:case 1:o=l;break;case 4:return c.label++,{value:l[1],done:!1};case 5:c.label++,r=l[1],l=[0];continue;case 7:l=c.ops.pop(),c.trys.pop();continue;default:if(!(o=(o=c.trys).length>0&&o[o.length-1])&&(6===l[0]||2===l[0])){c=0;continue}if(3===l[0]&&(!o||l[1]>o[0]&&l[1]<o[3])){c.label=l[1];break}if(6===l[0]&&c.label<o[1]){c.label=o[1],o=l;break}if(o&&c.label<o[2]){c.label=o[2],c.ops.push(l);break}o[2]&&c.ops.pop(),c.trys.pop();continue}l=t.call(e,c)}catch(e){l=[6,e],r=0}finally{n=o=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}}(this,function(e){return console.log("[MSSQL Plugin] Client loading..."),t.app.pm.get(n()).registerType("mssql",{name:"mssql",label:"External MSSQL",icon:"DatabaseOutlined",color:"blue",DataSourceSettingsForm:u,DeleteCollection:w,disableTestConnection:!1,disableAddFields:!1,allowCollectionDeletion:!0}),[2]})},function(){var t=this,n=arguments;return new Promise(function(r,o){var a=e.apply(t,n);function c(e){j(a,r,o,c,i,"next",e)}function i(e){j(a,r,o,c,i,"throw",e)}c(void 0)})})()}}],function(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}(r.prototype,t),r}(k(e.Plugin)),F=E}(),f}()});
10
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react"),require("@emotion/css"),require("@formily/react"),require("@nocobase/client"),require("@ant-design/icons"),require("@nocobase/plugin-data-source-manager/client"),require("antd"),require("react-router-dom"),require("react-i18next")):"function"==typeof define&&define.amd?define("plugin-data-source-mssql",["react","@emotion/css","@formily/react","@nocobase/client","@ant-design/icons","@nocobase/plugin-data-source-manager/client","antd","react-router-dom","react-i18next"],t):"object"==typeof exports?exports["plugin-data-source-mssql"]=t(require("react"),require("@emotion/css"),require("@formily/react"),require("@nocobase/client"),require("@ant-design/icons"),require("@nocobase/plugin-data-source-manager/client"),require("antd"),require("react-router-dom"),require("react-i18next")):e["plugin-data-source-mssql"]=t(e.react,e["@emotion/css"],e["@formily/react"],e["@nocobase/client"],e["@ant-design/icons"],e["@nocobase/plugin-data-source-manager/client"],e.antd,e["react-router-dom"],e["react-i18next"])}(self,function(e,t,n,r,o,a,c,i,l){return function(){"use strict";var u={482:function(e){e.exports=o},964:function(e){e.exports=t},505:function(e){e.exports=n},772:function(e){e.exports=r},904:function(e){e.exports=a},721:function(e){e.exports=c},156:function(t){t.exports=e},238:function(e){e.exports=l},128:function(e){e.exports=i}},s={};function p(e){var t=s[e];if(void 0!==t)return t.exports;var n=s[e]={exports:{}};return u[e](n,n.exports,p),n.exports}p.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return p.d(t,{a:t}),t},p.d=function(e,t){for(var n in t)p.o(t,n)&&!p.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},p.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},p.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var f={};return!function(){p.r(f),p.d(f,{default:function(){return F},PluginDataSourceMssqlClient:function(){return E}});var e=p(772),t=p(904),n=p.n(t),r=p(156),o=p.n(r),a=p(505),c=p(721),i=p(238);function l(e,t,n,r,o,a,c){try{var i=e[a](c),l=i.value}catch(e){n(e);return}i.done?t(l):Promise.resolve(l).then(r,o)}var u=function(t){var n,u=t.CollectionsTableField,s=t.loadCollections,p=t.from;console.log("[MSSQL Plugin] ConfigForm rendering...");var f=(0,e.useAPIClient)(),m=(0,a.useForm)(),d=(0,i.useTranslation)().t,y=u({NAMESPACE:"data-source-manager",t:d}),b=y.CollectionsTable,h=y.createCollectionsSchema,v=y.Text,x=y.addAllCollectionsSchema,g=(0,r.useCallback)((n=function(){var e,t,n,r,o;return function(e,t){var n,r,o,a,c={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function i(a){return function(i){var l=[a,i];if(n)throw TypeError("Generator is already executing.");for(;c;)try{if(n=1,r&&(o=2&l[0]?r.return:l[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,l[1])).done)return o;switch(r=0,o&&(l=[2&l[0],o.value]),l[0]){case 0:case 1:o=l;break;case 4:return c.label++,{value:l[1],done:!1};case 5:c.label++,r=l[1],l=[0];continue;case 7:l=c.ops.pop(),c.trys.pop();continue;default:if(!(o=(o=c.trys).length>0&&o[o.length-1])&&(6===l[0]||2===l[0])){c=0;continue}if(3===l[0]&&(!o||l[1]>o[0]&&l[1]<o[3])){c.label=l[1];break}if(6===l[0]&&c.label<o[1]){c.label=o[1],o=l;break}if(o&&c.label<o[2]){c.label=o[2],c.ops.push(l);break}o[2]&&c.ops.pop(),c.trys.pop();continue}l=t.call(e,c)}catch(e){l=[6,e],r=0}finally{n=o=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}}(this,function(a){switch(a.label){case 0:return[4,m.submit()];case 1:a.sent(),e=m.values,a.label=2;case 2:return a.trys.push([2,4,,5]),[4,f.request({url:"external-mssql:testConnection",method:"post",data:e})];case 3:return a.sent(),c.message.success(d("Connection successful")),[3,5];case 4:return o=(null==(t=a.sent())||null==(r=t.response)||null==(n=r.data)?void 0:n.message)||t.message,c.message.error(o),[2];case 5:return[2]}})},function(){var e=this,t=arguments;return new Promise(function(r,o){var a=n.apply(e,t);function c(e){l(a,r,o,c,i,"next",e)}function i(e){l(a,r,o,c,i,"throw",e)}c(void 0)})}),[f,m,d]);return o().createElement(e.SchemaComponent,{scope:{CollectionsTableField:u,loadCollections:s,handleTestConnection:g,from:p,t:d,CollectionsTable:b,createCollectionsSchema:h,Text:v,addAllCollectionsSchema:x},components:{CollectionsTable:b,Text:v},schema:{type:"object",properties:{type:{type:"string","x-decorator":"FormItem","x-component":"Input","x-hidden":!0},key:{type:"string",title:d("Data source name"),required:!0,"x-decorator":"FormItem","x-component":"Input"},displayName:{type:"string",title:d("Display name"),required:!0,"x-decorator":"FormItem","x-component":"Input"},options:{type:"object",properties:{host:{type:"string",title:d("Host"),required:!0,"x-decorator":"FormItem","x-component":"Input","x-component-props":{placeholder:"localhost"}},port:{type:"number",title:d("Port"),required:!0,"x-decorator":"FormItem","x-component":"InputNumber","x-component-props":{min:1,max:65535},default:1433},database:{type:"string",title:d("Database"),required:!0,"x-decorator":"FormItem","x-component":"Input"},schema:{type:"string",title:d("Schema"),"x-decorator":"FormItem","x-component":"Input"},username:{type:"string",title:d("Username"),required:!0,"x-decorator":"FormItem","x-component":"Input"},password:{type:"string",title:d("Password"),"x-decorator":"FormItem","x-component":"Password"},encrypt:{type:"boolean",title:d("Encrypt"),"x-decorator":"FormItem","x-component":"Checkbox"},tablePrefix:{type:"string",title:d("Table prefix"),"x-decorator":"FormItem","x-component":"Input"},addAllCollections:{type:"boolean",title:d("Load all collections"),"x-decorator":"FormItem","x-component":"Checkbox",default:!0},collections:h(p,s)}}}}})},s=p(482),m=p(964),d=p(128);function y(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function b(e,t,n,r,o,a,c){try{var i=e[a](c),l=i.value}catch(e){n(e);return}i.done?t(l):Promise.resolve(l).then(r,o)}function h(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var a=e.apply(t,n);function c(e){b(a,r,o,c,i,"next",e)}function i(e){b(a,r,o,c,i,"throw",e)}c(void 0)})}}function v(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}function x(e,t){var n,r,o,a,c={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function i(a){return function(i){var l=[a,i];if(n)throw TypeError("Generator is already executing.");for(;c;)try{if(n=1,r&&(o=2&l[0]?r.return:l[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,l[1])).done)return o;switch(r=0,o&&(l=[2&l[0],o.value]),l[0]){case 0:case 1:o=l;break;case 4:return c.label++,{value:l[1],done:!1};case 5:c.label++,r=l[1],l=[0];continue;case 7:l=c.ops.pop(),c.trys.pop();continue;default:if(!(o=(o=c.trys).length>0&&o[o.length-1])&&(6===l[0]||2===l[0])){c=0;continue}if(3===l[0]&&(!o||l[1]>o[0]&&l[1]<o[3])){c.label=l[1];break}if(6===l[0]&&c.label<o[1]){c.label=o[1],o=l;break}if(o&&c.label<o[2]){c.label=o[2],c.ops.push(l);break}o[2]&&c.ops.pop(),c.trys.pop();continue}l=t.call(e,c)}catch(e){l=[6,e],r=0}finally{n=o=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}}function g(){var e,t,n=(e=["\n .ant-modal-body {\n margin-left: 35px;\n margin-bottom: 35px;\n .ant-checkbox-wrapper {\n height: 25px;\n }\n }\n "],t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}})));return g=function(){return n},n}var w=function(t){var n=(0,e.useRecord)();return o().createElement(O,v({item:n},t))},C=function(){var t=(0,e.useResourceActionContext)().refresh,n=(0,d.useParams)().name,r=(0,e.useRecord)(),o=(0,e.useAPIClient)(),i=(0,a.useForm)(),l=((null==i?void 0:i.values)||{}).cascade,u=null==r?void 0:r.name;return{run:function(){return h(function(){var e,r,a,i,s;return x(this,function(p){switch(p.label){case 0:if(!u)return c.message.error("Collection name is missing"),[2];p.label=1;case 1:return p.trys.push([1,3,,4]),[4,o.request({url:"dataSources/".concat(n,"/collections:destroy"),method:"post",params:{filterByTk:u,cascade:l}})];case 2:return p.sent(),c.message.success("Collection deleted successfully"),t(),[3,4];case 3:throw e=p.sent(),c.message.error((null==e||null==(s=e.response)||null==(i=s.data)||null==(a=i.errors)||null==(r=a[0])?void 0:r.message)||"Failed to delete collection"),e;case 4:return[2]}})})()}}},S=function(){var t=C().run,n=(0,e.useCollectionManager_deprecated)().refreshCM;return{run:function(){return h(function(){return x(this,function(e){switch(e.label){case 0:return[4,t()];case 1:return e.sent(),[4,n()];case 2:return e.sent(),[2]}})})()}}},O=function(t){var n,a=t.scope,l=t.getContainer,u=t.item,p=t.children,f=t.isBulk,d=t.useAction,b=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(t,["scope","getContainer","item","children","isBulk","useAction"]),h=(0,i.useTranslation)().t,x=(n=(0,r.useState)(!1),function(e){if(Array.isArray(e))return e}(n)||function(e,t){var n,r,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var a=[],c=!0,i=!1;try{for(o=o.call(e);!(c=(n=o.next()).done)&&(a.push(n.value),a.length!==t);c=!0);}catch(e){i=!0,r=e}finally{try{c||null==o.return||o.return()}finally{if(i)throw r}}return a}}(n,2)||function(e,t){if(e){if("string"==typeof e)return y(e,2);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return y(e,t)}}(n,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),w=x[0],C=x[1];return o().createElement(e.RecordProvider,{record:u},o().createElement(e.ActionContextProvider,{value:{visible:w,setVisible:C}},f?o().createElement(c.Button,{icon:o().createElement(s.DeleteOutlined,null),onClick:function(){return C(!0)}},p||h("Delete")):o().createElement("a",v({onClick:function(){return C(!0)}},b),p||h("Delete")),o().createElement(e.SchemaComponent,{schema:{type:"object",properties:{deleteCollection:{type:"void","x-decorator":"Form","x-component":"Action.Modal",title:o().createElement(function(){return o().createElement("span",null,o().createElement(s.ExclamationCircleFilled,{style:{color:"#faad14",marginRight:"12px",fontSize:"22px"}}),o().createElement("span",{style:{fontSize:"19px"}},h("Delete collection")))},null),"x-component-props":{width:520,getContainer:"{{ getContainer }}",className:(0,m.css)(g())},properties:{info:{type:"string","x-component":"div","x-content":"{{t('Are you sure you want to delete it?')}}"},cascade:{type:"boolean","x-decorator":"FormItem","x-component":"Checkbox",default:!1,"x-content":h("Automatically drop objects that depend on the collection (such as views), and in turn all objects that depend on those objects")},footer:{type:"void","x-component":"Action.Modal.Footer",properties:{action1:{title:'{{ t("Cancel") }}',"x-component":"Action","x-component-props":{useAction:"{{ useCancelAction }}"}},action2:{title:'{{ t("Ok") }}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ useDestroyCollectionAction }}",style:{marginLeft:"8px"}}}}}}}}},scope:v({getContainer:l,useDestroyCollectionAction:d||S,useCancelAction:e.useCancelAction},a)})))};function j(e,t,n,r,o,a,c){try{var i=e[a](c),l=i.value}catch(e){n(e);return}i.done?t(l):Promise.resolve(l).then(r,o)}function P(e,t,n){return(P=I()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&A(o,n.prototype),o}).apply(null,arguments)}O.displayName="MssqlDeleteCollectionAction";function q(e){return(q=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function A(e,t){return(A=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function k(e){var t="function"==typeof Map?new Map:void 0;return(k=function(e){if(null===e||-1===Function.toString.call(e).indexOf("[native code]"))return e;if("function"!=typeof e)throw TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return P(e,arguments,q(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),A(n,e)})(e)}function I(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(I=function(){return!!e})()}var E=function(e){var t;if("function"!=typeof e&&null!==e)throw TypeError("Super expression must either be null or a function");function r(){var e,t;if(!(this instanceof r))throw TypeError("Cannot call a class as a function");return e=r,t=arguments,e=q(e),function(e,t){var n;if(t&&("object"==((n=t)&&"undefined"!=typeof Symbol&&n.constructor===Symbol?"symbol":typeof n)||"function"==typeof t))return t;if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(this,I()?Reflect.construct(e,t||[],q(this).constructor):e.apply(this,t))}return r.prototype=Object.create(e&&e.prototype,{constructor:{value:r,writable:!0,configurable:!0}}),e&&A(r,e),t=[{key:"load",value:function(){var e,t=this;return(e=function(){return function(e,t){var n,r,o,a,c={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function i(a){return function(i){var l=[a,i];if(n)throw TypeError("Generator is already executing.");for(;c;)try{if(n=1,r&&(o=2&l[0]?r.return:l[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,l[1])).done)return o;switch(r=0,o&&(l=[2&l[0],o.value]),l[0]){case 0:case 1:o=l;break;case 4:return c.label++,{value:l[1],done:!1};case 5:c.label++,r=l[1],l=[0];continue;case 7:l=c.ops.pop(),c.trys.pop();continue;default:if(!(o=(o=c.trys).length>0&&o[o.length-1])&&(6===l[0]||2===l[0])){c=0;continue}if(3===l[0]&&(!o||l[1]>o[0]&&l[1]<o[3])){c.label=l[1];break}if(6===l[0]&&c.label<o[1]){c.label=o[1],o=l;break}if(o&&c.label<o[2]){c.label=o[2],c.ops.push(l);break}o[2]&&c.ops.pop(),c.trys.pop();continue}l=t.call(e,c)}catch(e){l=[6,e],r=0}finally{n=o=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}}(this,function(e){return console.log("[MSSQL Plugin] Client loading..."),t.app.pm.get(n()).registerType("mssql",{name:"mssql",label:"External MSSQL",icon:"DatabaseOutlined",color:"blue",DataSourceSettingsForm:u,DeleteCollection:w,disableTestConnection:!1,disableAddFields:!1,allowCollectionDeletion:!0}),[2]})},function(){var t=this,n=arguments;return new Promise(function(r,o){var a=e.apply(t,n);function c(e){j(a,r,o,c,i,"next",e)}function i(e){j(a,r,o,c,i,"throw",e)}c(void 0)})})()}}],function(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}(r.prototype,t),r}(k(e.Plugin)),F=E}(),f}()});
@@ -8,10 +8,10 @@
8
8
  */
9
9
 
10
10
  module.exports = {
11
- "@nocobase/client": "2.0.15",
12
- "@nocobase/plugin-data-source-manager": "2.0.15",
13
- "@nocobase/server": "2.0.15",
14
- "@nocobase/database": "2.0.15",
11
+ "@nocobase/client": "2.0.38",
12
+ "@nocobase/plugin-data-source-manager": "2.0.38",
13
+ "@nocobase/server": "2.0.38",
14
+ "@nocobase/database": "2.0.38",
15
15
  "react": "18.2.0",
16
16
  "@formily/react": "2.3.7",
17
17
  "antd": "5.24.2",
@@ -19,8 +19,8 @@ module.exports = {
19
19
  "@ant-design/icons": "5.6.1",
20
20
  "@emotion/css": "11.13.0",
21
21
  "react-router-dom": "6.30.1",
22
- "@nocobase/actions": "2.0.15",
23
- "@nocobase/data-source-manager": "2.0.15",
22
+ "@nocobase/actions": "2.0.38",
23
+ "@nocobase/data-source-manager": "2.0.38",
24
24
  "sequelize": "6.35.2",
25
25
  "lodash": "4.17.21"
26
26
  };
@@ -43,8 +43,12 @@ var import_database = require("@nocobase/database");
43
43
  var import_data_source_manager = require("@nocobase/data-source-manager");
44
44
  var import_MssqlCollectionManager = require("./MssqlCollectionManager");
45
45
  var import_MssqlIntrospector = require("./MssqlIntrospector");
46
+ var import_sequelize = require("sequelize");
46
47
  var import_fs = __toESM(require("fs"));
47
48
  var import_path = __toESM(require("path"));
49
+ function escapeLike(value) {
50
+ return value.replace(/[_%]/g, "\\$&");
51
+ }
48
52
  const MSSQL_DRIVER_NAME = "tedious";
49
53
  const resolveMssqlDriverPath = () => {
50
54
  const candidates = [
@@ -65,12 +69,10 @@ const resolveMssqlDriverPath = () => {
65
69
  const basePath = import_fs.default.existsSync(candidate) ? candidate : void 0;
66
70
  if (basePath) {
67
71
  if (candidate.endsWith("tedious") && import_fs.default.existsSync(import_path.default.join(candidate, "package.json"))) {
68
- console.log(`[MSSQL] Found bundled tedious at ${candidate}`);
69
72
  return require.resolve(candidate);
70
73
  }
71
74
  try {
72
75
  const resolved = require.resolve(MSSQL_DRIVER_NAME, { paths: [basePath] });
73
- console.log(`[MSSQL] Resolved tedious via ${candidate} at ${resolved}`);
74
76
  return resolved;
75
77
  } catch (e) {
76
78
  }
@@ -80,7 +82,6 @@ const resolveMssqlDriverPath = () => {
80
82
  }
81
83
  try {
82
84
  const resolved = require.resolve(MSSQL_DRIVER_NAME);
83
- console.log(`[MSSQL] Resolved tedious via standard node resolution at ${resolved}`);
84
85
  return resolved;
85
86
  } catch (error) {
86
87
  console.error(`[MSSQL] Failed to resolve tedious driver. Error: ${error.message}`);
@@ -141,8 +142,8 @@ const formatDatabaseOptions = (options = {}) => {
141
142
  // more connections than default 5
142
143
  min: 2,
143
144
  // keep 2 warm connections
144
- acquire: 6e4,
145
- // 60s to acquire connection
145
+ acquire: 3e4,
146
+ // 30s to acquire connection — fail fast instead of blocking 60s
146
147
  idle: 1e4,
147
148
  // 10s idle before release
148
149
  ...pool || {}
@@ -179,6 +180,79 @@ class MssqlExternalDataSource extends import_data_source_manager.SequelizeDataSo
179
180
  super(options);
180
181
  this.setupMssqlHooks();
181
182
  }
183
+ /**
184
+ * Register MSSQL-aware text search operators on the external database.
185
+ *
186
+ * Strategy per operator:
187
+ * $includes / $notIncludes → CONTAINS() when column has FTS index, else LIKE '%value%'
188
+ * $endWith / $notEndWith → always LIKE '%value' (FTS has no suffix-word search)
189
+ * $startsWith / $notStartsWith → unchanged (LIKE 'value%' already uses B-tree index)
190
+ *
191
+ * NOTE on CONTAINS() semantics:
192
+ * CONTAINS uses word-boundary matching, not pure substring matching.
193
+ * "barfoo" does NOT match CONTAINS(col, '"foo"'), but it does match LIKE '%foo%'.
194
+ * For most real-world search UIs (names, descriptions) this is an acceptable trade-off
195
+ * in exchange for O(log n) FTS index seeks vs O(n) full table scans.
196
+ */
197
+ registerMssqlTextOperators() {
198
+ const db = this.collectionManager.db;
199
+ const introspector = this.introspector;
200
+ const buildContains = (fieldName, tableName, value, negate = false) => {
201
+ const ftsValue = '"' + value.trim().replace(/"/g, '""') + '*"';
202
+ const escapedFts = db.sequelize.escape(ftsValue);
203
+ const expr = `CONTAINS([${fieldName}], ${escapedFts})`;
204
+ return (0, import_sequelize.literal)(negate ? `NOT (${expr})` : expr);
205
+ };
206
+ db.registerOperators({
207
+ $includes(value, ctx) {
208
+ var _a;
209
+ if (value === null) return { [import_sequelize.Op.is]: null };
210
+ const tableName = ((_a = ctx.model) == null ? void 0 : _a.tableName) ?? "";
211
+ const fieldName = ctx.fieldName ?? "";
212
+ if (typeof value === "string" && introspector.hasFTSIndex(tableName, fieldName)) {
213
+ if (!value.trim()) {
214
+ return { [import_sequelize.Op.like]: `%${escapeLike(value)}%` };
215
+ }
216
+ return buildContains(fieldName, tableName, value);
217
+ }
218
+ if (Array.isArray(value)) {
219
+ return { [import_sequelize.Op.or]: value.map((v) => ({ [import_sequelize.Op.like]: `%${escapeLike(v)}%` })) };
220
+ }
221
+ return { [import_sequelize.Op.like]: `%${escapeLike(value)}%` };
222
+ },
223
+ $notIncludes(value, ctx) {
224
+ var _a;
225
+ if (value === null) return { [import_sequelize.Op.not]: null };
226
+ const tableName = ((_a = ctx.model) == null ? void 0 : _a.tableName) ?? "";
227
+ const fieldName = ctx.fieldName ?? "";
228
+ if (typeof value === "string" && introspector.hasFTSIndex(tableName, fieldName)) {
229
+ if (!value.trim()) {
230
+ return { [import_sequelize.Op.notLike]: `%${escapeLike(value)}%` };
231
+ }
232
+ return buildContains(fieldName, tableName, value, true);
233
+ }
234
+ if (Array.isArray(value)) {
235
+ return { [import_sequelize.Op.and]: value.map((v) => ({ [import_sequelize.Op.notLike]: `%${escapeLike(v)}%` })) };
236
+ }
237
+ return { [import_sequelize.Op.notLike]: `%${escapeLike(value)}%` };
238
+ },
239
+ // $endWith / $notEndWith: FTS has no suffix-word search equivalent, keep LIKE
240
+ $endWith(value, _ctx) {
241
+ if (value === null) return { [import_sequelize.Op.is]: null };
242
+ if (Array.isArray(value)) {
243
+ return { [import_sequelize.Op.or]: value.map((v) => ({ [import_sequelize.Op.like]: `%${escapeLike(v)}` })) };
244
+ }
245
+ return { [import_sequelize.Op.like]: `%${escapeLike(value)}` };
246
+ },
247
+ $notEndWith(value, _ctx) {
248
+ if (value === null) return { [import_sequelize.Op.not]: null };
249
+ if (Array.isArray(value)) {
250
+ return { [import_sequelize.Op.and]: value.map((v) => ({ [import_sequelize.Op.notLike]: `%${escapeLike(v)}` })) };
251
+ }
252
+ return { [import_sequelize.Op.notLike]: `%${escapeLike(value)}` };
253
+ }
254
+ });
255
+ }
182
256
  /**
183
257
  * Set up MSSQL-specific Sequelize hooks for datetime handling.
184
258
  * MSSQL DATETIME doesn't support timezone offset format like '+00:00',
@@ -218,7 +292,7 @@ class MssqlExternalDataSource extends import_data_source_manager.SequelizeDataSo
218
292
  * the `dataSourcesCollections` / `dataSourcesFields` tables.
219
293
  */
220
294
  async load(options = {}) {
221
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n;
295
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l;
222
296
  const { localData = {} } = options;
223
297
  try {
224
298
  await this.collectionManager.db.sequelize.authenticate();
@@ -235,40 +309,50 @@ class MssqlExternalDataSource extends import_data_source_manager.SequelizeDataSo
235
309
  try {
236
310
  const tables = await this.introspector.getTables();
237
311
  (_h = (_g = this.logger) == null ? void 0 : _g.info) == null ? void 0 : _h.call(_g, `[MSSQL] Found ${tables.length} tables in database`);
238
- let loaded = 0;
312
+ const schema = this.collectionManager.db.options.schema || "dbo";
239
313
  const total = tables.length;
240
- for (const tableName of tables) {
241
- const tableInfo = {
242
- tableName,
243
- schema: this.collectionManager.db.options.schema || "dbo"
244
- };
245
- try {
246
- const collectionOptions = await this.introspector.getCollection({
247
- tableInfo,
248
- localOptions: localData[tableName] || {}
249
- });
250
- collectionOptions.introspected = true;
251
- collectionOptions.repository = "mssql-repo";
252
- collectionOptions.simplePaginate = true;
253
- this.collectionManager.defineCollection(collectionOptions);
254
- loaded++;
255
- this.emitLoadingProgress({ total, loaded });
256
- } catch (error) {
257
- (_j = (_i = this.logger) == null ? void 0 : _i.error) == null ? void 0 : _j.call(_i, `[MSSQL] Failed to introspect table ${tableName}:`, error);
258
- }
314
+ let loaded = 0;
315
+ await this.introspector.preloadAllPrimaryKeys(schema);
316
+ await this.introspector.preloadFTSIndexedColumns(schema);
317
+ this.registerMssqlTextOperators();
318
+ const BATCH_SIZE = 5;
319
+ for (let i = 0; i < tables.length; i += BATCH_SIZE) {
320
+ const batch = tables.slice(i, i + BATCH_SIZE);
321
+ await Promise.all(
322
+ batch.map(async (tableName) => {
323
+ var _a2, _b2;
324
+ const tableInfo = { tableName, schema };
325
+ try {
326
+ const collectionOptions = await this.introspector.getCollection({
327
+ tableInfo,
328
+ localOptions: localData[tableName] || {}
329
+ });
330
+ collectionOptions.introspected = true;
331
+ collectionOptions.repository = "mssql-repo";
332
+ collectionOptions.simplePaginate = true;
333
+ this.collectionManager.defineCollection(collectionOptions);
334
+ loaded++;
335
+ this.emitLoadingProgress({ total, loaded });
336
+ } catch (error) {
337
+ (_b2 = (_a2 = this.logger) == null ? void 0 : _a2.error) == null ? void 0 : _b2.call(_a2, `[MSSQL] Failed to introspect table ${tableName}:`, error);
338
+ }
339
+ })
340
+ );
259
341
  }
260
- (_l = (_k = this.logger) == null ? void 0 : _k.info) == null ? void 0 : _l.call(_k, `[MSSQL] Successfully loaded ${loaded}/${total} collections`);
342
+ (_j = (_i = this.logger) == null ? void 0 : _i.info) == null ? void 0 : _j.call(_i, `[MSSQL] Successfully loaded ${loaded}/${total} collections`);
261
343
  } catch (error) {
262
- (_n = (_m = this.logger) == null ? void 0 : _m.error) == null ? void 0 : _n.call(_m, "[MSSQL] Failed to introspect database", error);
344
+ (_l = (_k = this.logger) == null ? void 0 : _k.error) == null ? void 0 : _l.call(_k, "[MSSQL] Failed to introspect database", error);
263
345
  throw error;
264
346
  }
265
347
  }
266
348
  /**
267
349
  * Read all tables from the external MSSQL database.
268
350
  * Called by the core framework's loadDataSourceTablesIntoCollections middleware.
351
+ * Returns objects with { name } so the CollectionsTable UI component can render correctly.
269
352
  */
270
353
  async readTables() {
271
- return await this.introspector.getTables();
354
+ const tables = await this.introspector.getTables();
355
+ return tables.map((name) => ({ name }));
272
356
  }
273
357
  /**
274
358
  * Load specific tables from the external MSSQL database.
@@ -292,7 +376,7 @@ class MssqlExternalDataSource extends import_data_source_manager.SequelizeDataSo
292
376
  collectionOptions.repository = "mssql-repo";
293
377
  collectionOptions.simplePaginate = true;
294
378
  this.collectionManager.defineCollection(collectionOptions);
295
- (_d = (_c = this.logger) == null ? void 0 : _c.info) == null ? void 0 : _d.call(_c, `[MSSQL] Loaded table ${tableName} as collection`);
379
+ (_d = (_c = this.logger) == null ? void 0 : _c.debug) == null ? void 0 : _d.call(_c, `[MSSQL] Loaded table ${tableName} as collection`);
296
380
  } catch (error) {
297
381
  (_f = (_e = this.logger) == null ? void 0 : _e.error) == null ? void 0 : _f.call(_e, `[MSSQL] Failed to load table ${tableName}:`, error);
298
382
  throw error;
@@ -68,9 +68,85 @@ const mssqlFieldTypeMap = {
68
68
  xml: "text"
69
69
  };
70
70
  class MssqlIntrospector extends import_data_source_manager.DatabaseIntrospector {
71
+ /** Cache of { tableName → pk column names[] } loaded by preloadAllPrimaryKeys() */
72
+ primaryKeyCache = null;
73
+ /**
74
+ * Cache of { tableName → Set<columnName> } for columns with Full-Text Search indexes.
75
+ * null = not yet loaded; empty Map = loaded but no FTS columns found (or FTS not installed).
76
+ */
77
+ ftsColumnCache = null;
71
78
  getFieldTypeMap() {
72
79
  return mssqlFieldTypeMap;
73
80
  }
81
+ /**
82
+ * Load primary key info for ALL tables in one query and cache the result.
83
+ * Call this once before starting the parallel introspection loop so that
84
+ * getTableColumnsInfo() can use the cache instead of querying sys.indexes per table.
85
+ */
86
+ async preloadAllPrimaryKeys(schemaName = "dbo") {
87
+ try {
88
+ const sql = `
89
+ SELECT o.name AS table_name, c.name AS column_name
90
+ FROM sys.indexes i
91
+ INNER JOIN sys.index_columns ic ON i.object_id = ic.object_id AND i.index_id = ic.index_id
92
+ INNER JOIN sys.columns c ON ic.object_id = c.object_id AND c.column_id = ic.column_id
93
+ INNER JOIN sys.objects o ON i.object_id = o.object_id
94
+ INNER JOIN sys.schemas s ON o.schema_id = s.schema_id
95
+ WHERE i.is_primary_key = 1
96
+ AND s.name = ${this.db.sequelize.escape(schemaName)}
97
+ ORDER BY o.name, ic.key_ordinal
98
+ `;
99
+ const rows = await this.db.sequelize.query(sql, { type: "SELECT" });
100
+ const cache = /* @__PURE__ */ new Map();
101
+ for (const row of rows) {
102
+ const tbl = row.table_name;
103
+ if (!cache.has(tbl)) cache.set(tbl, []);
104
+ cache.get(tbl).push(row.column_name);
105
+ }
106
+ this.primaryKeyCache = cache;
107
+ this.db.logger.debug(`[MSSQL] Preloaded PK info for ${cache.size} tables`);
108
+ } catch (err) {
109
+ this.db.logger.warn("[MSSQL] Failed to preload primary keys, will fall back to per-table query:", err);
110
+ this.primaryKeyCache = null;
111
+ }
112
+ }
113
+ /**
114
+ * Load Full-Text Search index info for ALL columns in one query and cache the result.
115
+ * Call this once before queries run so that text operators can route to CONTAINS() vs LIKE.
116
+ */
117
+ async preloadFTSIndexedColumns(schemaName = "dbo") {
118
+ try {
119
+ const sql = `
120
+ SELECT t.name AS table_name, c.name AS column_name
121
+ FROM sys.fulltext_index_columns fic
122
+ INNER JOIN sys.columns c ON fic.object_id = c.object_id AND fic.column_id = c.column_id
123
+ INNER JOIN sys.tables t ON fic.object_id = t.object_id
124
+ INNER JOIN sys.schemas s ON t.schema_id = s.schema_id
125
+ WHERE s.name = ${this.db.sequelize.escape(schemaName)}
126
+ `;
127
+ const rows = await this.db.sequelize.query(sql, { type: "SELECT" });
128
+ const cache = /* @__PURE__ */ new Map();
129
+ for (const row of rows) {
130
+ const tbl = row.table_name;
131
+ if (!cache.has(tbl)) cache.set(tbl, /* @__PURE__ */ new Set());
132
+ cache.get(tbl).add(row.column_name);
133
+ }
134
+ this.ftsColumnCache = cache;
135
+ this.db.logger.debug(`[MSSQL] Preloaded FTS index info for ${cache.size} tables`);
136
+ } catch (err) {
137
+ this.db.logger.debug("[MSSQL] FTS preload skipped (FTS not installed or insufficient permissions):", err);
138
+ this.ftsColumnCache = /* @__PURE__ */ new Map();
139
+ }
140
+ }
141
+ /**
142
+ * Returns true if the given column has a Full-Text Search index.
143
+ * Used by text operators to decide between CONTAINS() and LIKE.
144
+ */
145
+ hasFTSIndex(tableName, columnName) {
146
+ var _a;
147
+ if (!this.ftsColumnCache) return false;
148
+ return ((_a = this.ftsColumnCache.get(tableName)) == null ? void 0 : _a.has(columnName)) ?? false;
149
+ }
74
150
  /**
75
151
  * Override getTableList to handle MSSQL's object-format table names.
76
152
  * MSSQL's showAllTables() may return {tableName: 'Name', schema: 'dbo'} objects.
@@ -95,31 +171,37 @@ class MssqlIntrospector extends import_data_source_manager.DatabaseIntrospector
95
171
  const columns = await this.db.sequelize.getQueryInterface().describeTable(tableInfo2);
96
172
  let hasPrimaryKey = Object.values(columns).some((col) => col.primaryKey);
97
173
  if (!hasPrimaryKey) {
98
- try {
99
- const tableName = typeof tableInfo2 === "string" ? tableInfo2 : tableInfo2.tableName;
100
- const schemaName = typeof tableInfo2 === "string" ? "dbo" : tableInfo2.schema || "dbo";
101
- const pkSql = `
102
- SELECT c.name AS column_name
103
- FROM sys.indexes i
104
- INNER JOIN sys.index_columns ic ON i.object_id = ic.object_id AND i.index_id = ic.index_id
105
- INNER JOIN sys.columns c ON ic.object_id = c.object_id AND c.column_id = ic.column_id
106
- INNER JOIN sys.objects o ON i.object_id = o.object_id
107
- INNER JOIN sys.schemas s ON o.schema_id = s.schema_id
108
- WHERE i.is_primary_key = 1
109
- AND o.name = ${this.db.sequelize.escape(tableName)}
110
- AND s.name = ${this.db.sequelize.escape(schemaName)}
111
- `;
112
- const pkResult = await this.db.sequelize.query(pkSql, { type: "SELECT" });
113
- if (pkResult && pkResult.length > 0) {
114
- for (const row of pkResult) {
115
- if (columns[row.column_name]) {
116
- columns[row.column_name].primaryKey = true;
117
- hasPrimaryKey = true;
118
- }
174
+ const tableName = typeof tableInfo2 === "string" ? tableInfo2 : tableInfo2.tableName;
175
+ const schemaName = typeof tableInfo2 === "string" ? "dbo" : tableInfo2.schema || "dbo";
176
+ let pkColumns;
177
+ if (this.primaryKeyCache !== null) {
178
+ pkColumns = this.primaryKeyCache.get(tableName);
179
+ } else {
180
+ try {
181
+ const pkSql = `
182
+ SELECT c.name AS column_name
183
+ FROM sys.indexes i
184
+ INNER JOIN sys.index_columns ic ON i.object_id = ic.object_id AND i.index_id = ic.index_id
185
+ INNER JOIN sys.columns c ON ic.object_id = c.object_id AND c.column_id = ic.column_id
186
+ INNER JOIN sys.objects o ON i.object_id = o.object_id
187
+ INNER JOIN sys.schemas s ON o.schema_id = s.schema_id
188
+ WHERE i.is_primary_key = 1
189
+ AND o.name = ${this.db.sequelize.escape(tableName)}
190
+ AND s.name = ${this.db.sequelize.escape(schemaName)}
191
+ `;
192
+ const pkResult = await this.db.sequelize.query(pkSql, { type: "SELECT" });
193
+ pkColumns = pkResult == null ? void 0 : pkResult.map((row) => row.column_name);
194
+ } catch (err) {
195
+ this.db.logger.warn(`[MSSQL] Failed to query PK for ${tableName}:`, err);
196
+ }
197
+ }
198
+ if (pkColumns == null ? void 0 : pkColumns.length) {
199
+ for (const colName of pkColumns) {
200
+ if (columns[colName]) {
201
+ columns[colName].primaryKey = true;
202
+ hasPrimaryKey = true;
119
203
  }
120
204
  }
121
- } catch (err) {
122
- this.db.logger.warn(`[MSSQL] Failed to query PK for ${typeof tableInfo2 === "string" ? tableInfo2 : tableInfo2.tableName}:`, err);
123
205
  }
124
206
  }
125
207
  if (!hasPrimaryKey && columns["id"]) {
@@ -141,7 +223,10 @@ class MssqlIntrospector extends import_data_source_manager.DatabaseIntrospector
141
223
  const tableName = typeof tableInfo2 === "string" ? tableInfo2 : tableInfo2.tableName;
142
224
  return await this.db.sequelize.getQueryInterface().showIndex(tableName);
143
225
  } catch (err) {
144
- this.db.logger.warn(`[MSSQL] Failed to get indexes for ${typeof tableInfo2 === "string" ? tableInfo2 : tableInfo2.tableName}:`, err);
226
+ this.db.logger.warn(
227
+ `[MSSQL] Failed to get indexes for ${typeof tableInfo2 === "string" ? tableInfo2 : tableInfo2.tableName}:`,
228
+ err
229
+ );
145
230
  return [];
146
231
  }
147
232
  }
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "displayName": "Data source: MSSQL",
4
4
  "displayName.ru-RU": "Источник данных: MSSQL",
5
5
  "displayName.zh-CN": "数据源:MSSQL",
6
- "version": "2.0.3",
6
+ "version": "2.0.5",
7
7
  "description": "External MSSQL data source support for NocoBase.",
8
8
  "license": "MIT",
9
9
  "main": "./dist/server/index.js",