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.
- package/dist/client/index.js +1 -1
- package/dist/externalVersion.js +6 -6
- package/dist/server/data-source/MssqlExternalDataSource.js +114 -30
- package/dist/server/data-source/MssqlIntrospector.js +109 -24
- package/package.json +1 -1
- package/dist/node_modules/tedious/245.index.js +0 -741
- package/dist/node_modules/tedious/LICENSE +0 -21
- package/dist/node_modules/tedious/appveyor.yml +0 -67
- package/dist/node_modules/tedious/benchmarks/bulk-load/iterable.js +0 -61
- package/dist/node_modules/tedious/benchmarks/common.js +0 -287
- package/dist/node_modules/tedious/benchmarks/connection/open.js +0 -26
- package/dist/node_modules/tedious/benchmarks/package-lock.json +0 -21173
- package/dist/node_modules/tedious/benchmarks/package.json +0 -11
- package/dist/node_modules/tedious/benchmarks/query/call-tvp.js +0 -105
- package/dist/node_modules/tedious/benchmarks/query/insert-varbinary.js +0 -46
- package/dist/node_modules/tedious/benchmarks/query/select-many-rows.js +0 -63
- package/dist/node_modules/tedious/benchmarks/query/select-nvarchar.js +0 -50
- package/dist/node_modules/tedious/benchmarks/query/select-varbinary.js +0 -50
- package/dist/node_modules/tedious/benchmarks/request/rpcrequest-payload-tvp.js +0 -45
- package/dist/node_modules/tedious/benchmarks/request/rpcrequest-payload-varbinary.js +0 -37
- package/dist/node_modules/tedious/benchmarks/token-parser/colmetadata-token.js +0 -27
- package/dist/node_modules/tedious/benchmarks/token-parser/done-token.js +0 -28
- package/dist/node_modules/tedious/benchmarks/token-parser/simple-tokens.js +0 -363
- package/dist/node_modules/tedious/lib/all-headers.d.ts +0 -2
- package/dist/node_modules/tedious/lib/all-headers.js +0 -24
- package/dist/node_modules/tedious/lib/always-encrypted/aead-aes-256-cbc-hmac-algorithm.js +0 -82
- package/dist/node_modules/tedious/lib/always-encrypted/aead-aes-256-cbc-hmac-encryption-key.js +0 -55
- package/dist/node_modules/tedious/lib/always-encrypted/cek-entry.d.ts +0 -11
- package/dist/node_modules/tedious/lib/always-encrypted/cek-entry.js +0 -42
- package/dist/node_modules/tedious/lib/always-encrypted/get-parameter-encryption-metadata.js +0 -90
- package/dist/node_modules/tedious/lib/always-encrypted/key-crypto.js +0 -94
- package/dist/node_modules/tedious/lib/always-encrypted/keystore-provider-azure-key-vault.d.ts +0 -21
- package/dist/node_modules/tedious/lib/always-encrypted/keystore-provider-azure-key-vault.js +0 -247
- package/dist/node_modules/tedious/lib/always-encrypted/symmetric-key-cache.js +0 -36
- package/dist/node_modules/tedious/lib/always-encrypted/symmetric-key.js +0 -25
- package/dist/node_modules/tedious/lib/always-encrypted/types.d.ts +0 -73
- package/dist/node_modules/tedious/lib/always-encrypted/types.js +0 -48
- package/dist/node_modules/tedious/lib/always-encrypted/utils.js +0 -23
- package/dist/node_modules/tedious/lib/bulk-load-payload.d.ts +0 -8
- package/dist/node_modules/tedious/lib/bulk-load-payload.js +0 -23
- package/dist/node_modules/tedious/lib/bulk-load.d.ts +0 -275
- package/dist/node_modules/tedious/lib/bulk-load.js +0 -516
- package/dist/node_modules/tedious/lib/collation.d.ts +0 -28
- package/dist/node_modules/tedious/lib/collation.js +0 -348
- package/dist/node_modules/tedious/lib/connection.d.ts +0 -1310
- package/dist/node_modules/tedious/lib/connection.js +0 -2730
- package/dist/node_modules/tedious/lib/connector.d.ts +0 -18
- package/dist/node_modules/tedious/lib/connector.js +0 -150
- package/dist/node_modules/tedious/lib/data-type.d.ts +0 -455
- package/dist/node_modules/tedious/lib/data-type.js +0 -428
- package/dist/node_modules/tedious/lib/data-types/bigint.d.ts +0 -3
- package/dist/node_modules/tedious/lib/data-types/bigint.js +0 -53
- package/dist/node_modules/tedious/lib/data-types/binary.d.ts +0 -5
- package/dist/node_modules/tedious/lib/data-types/binary.js +0 -67
- package/dist/node_modules/tedious/lib/data-types/bit.d.ts +0 -3
- package/dist/node_modules/tedious/lib/data-types/bit.js +0 -46
- package/dist/node_modules/tedious/lib/data-types/bitn.d.ts +0 -3
- package/dist/node_modules/tedious/lib/data-types/bitn.js +0 -29
- package/dist/node_modules/tedious/lib/data-types/char.d.ts +0 -5
- package/dist/node_modules/tedious/lib/data-types/char.js +0 -86
- package/dist/node_modules/tedious/lib/data-types/date.d.ts +0 -3
- package/dist/node_modules/tedious/lib/data-types/date.js +0 -72
- package/dist/node_modules/tedious/lib/data-types/datetime.d.ts +0 -3
- package/dist/node_modules/tedious/lib/data-types/datetime.js +0 -93
- package/dist/node_modules/tedious/lib/data-types/datetime2.d.ts +0 -5
- package/dist/node_modules/tedious/lib/data-types/datetime2.js +0 -118
- package/dist/node_modules/tedious/lib/data-types/datetimen.d.ts +0 -3
- package/dist/node_modules/tedious/lib/data-types/datetimen.js +0 -29
- package/dist/node_modules/tedious/lib/data-types/datetimeoffset.d.ts +0 -5
- package/dist/node_modules/tedious/lib/data-types/datetimeoffset.js +0 -111
- package/dist/node_modules/tedious/lib/data-types/decimal.d.ts +0 -6
- package/dist/node_modules/tedious/lib/data-types/decimal.js +0 -107
- package/dist/node_modules/tedious/lib/data-types/decimaln.d.ts +0 -3
- package/dist/node_modules/tedious/lib/data-types/decimaln.js +0 -29
- package/dist/node_modules/tedious/lib/data-types/float.d.ts +0 -3
- package/dist/node_modules/tedious/lib/data-types/float.js +0 -47
- package/dist/node_modules/tedious/lib/data-types/floatn.d.ts +0 -3
- package/dist/node_modules/tedious/lib/data-types/floatn.js +0 -29
- package/dist/node_modules/tedious/lib/data-types/image.d.ts +0 -3
- package/dist/node_modules/tedious/lib/data-types/image.js +0 -56
- package/dist/node_modules/tedious/lib/data-types/int.d.ts +0 -3
- package/dist/node_modules/tedious/lib/data-types/int.js +0 -53
- package/dist/node_modules/tedious/lib/data-types/intn.d.ts +0 -3
- package/dist/node_modules/tedious/lib/data-types/intn.js +0 -29
- package/dist/node_modules/tedious/lib/data-types/money.d.ts +0 -3
- package/dist/node_modules/tedious/lib/data-types/money.js +0 -59
- package/dist/node_modules/tedious/lib/data-types/moneyn.d.ts +0 -3
- package/dist/node_modules/tedious/lib/data-types/moneyn.js +0 -29
- package/dist/node_modules/tedious/lib/data-types/nchar.d.ts +0 -5
- package/dist/node_modules/tedious/lib/data-types/nchar.js +0 -100
- package/dist/node_modules/tedious/lib/data-types/ntext.d.ts +0 -3
- package/dist/node_modules/tedious/lib/data-types/ntext.js +0 -60
- package/dist/node_modules/tedious/lib/data-types/null.d.ts +0 -3
- package/dist/node_modules/tedious/lib/data-types/null.js +0 -29
- package/dist/node_modules/tedious/lib/data-types/numeric.d.ts +0 -6
- package/dist/node_modules/tedious/lib/data-types/numeric.js +0 -106
- package/dist/node_modules/tedious/lib/data-types/numericn.d.ts +0 -3
- package/dist/node_modules/tedious/lib/data-types/numericn.js +0 -29
- package/dist/node_modules/tedious/lib/data-types/nvarchar.d.ts +0 -5
- package/dist/node_modules/tedious/lib/data-types/nvarchar.js +0 -133
- package/dist/node_modules/tedious/lib/data-types/real.d.ts +0 -3
- package/dist/node_modules/tedious/lib/data-types/real.js +0 -48
- package/dist/node_modules/tedious/lib/data-types/smalldatetime.d.ts +0 -3
- package/dist/node_modules/tedious/lib/data-types/smalldatetime.js +0 -83
- package/dist/node_modules/tedious/lib/data-types/smallint.d.ts +0 -3
- package/dist/node_modules/tedious/lib/data-types/smallint.js +0 -53
- package/dist/node_modules/tedious/lib/data-types/smallmoney.d.ts +0 -3
- package/dist/node_modules/tedious/lib/data-types/smallmoney.js +0 -51
- package/dist/node_modules/tedious/lib/data-types/sql-variant.d.ts +0 -3
- package/dist/node_modules/tedious/lib/data-types/sql-variant.js +0 -29
- package/dist/node_modules/tedious/lib/data-types/text.d.ts +0 -3
- package/dist/node_modules/tedious/lib/data-types/text.js +0 -69
- package/dist/node_modules/tedious/lib/data-types/time.d.ts +0 -3
- package/dist/node_modules/tedious/lib/data-types/time.js +0 -96
- package/dist/node_modules/tedious/lib/data-types/tinyint.d.ts +0 -3
- package/dist/node_modules/tedious/lib/data-types/tinyint.js +0 -53
- package/dist/node_modules/tedious/lib/data-types/tvp.d.ts +0 -3
- package/dist/node_modules/tedious/lib/data-types/tvp.js +0 -117
- package/dist/node_modules/tedious/lib/data-types/udt.d.ts +0 -3
- package/dist/node_modules/tedious/lib/data-types/udt.js +0 -29
- package/dist/node_modules/tedious/lib/data-types/uniqueidentifier.d.ts +0 -3
- package/dist/node_modules/tedious/lib/data-types/uniqueidentifier.js +0 -50
- package/dist/node_modules/tedious/lib/data-types/varbinary.d.ts +0 -5
- package/dist/node_modules/tedious/lib/data-types/varbinary.js +0 -119
- package/dist/node_modules/tedious/lib/data-types/varchar.d.ts +0 -5
- package/dist/node_modules/tedious/lib/data-types/varchar.js +0 -112
- package/dist/node_modules/tedious/lib/data-types/xml.d.ts +0 -3
- package/dist/node_modules/tedious/lib/data-types/xml.js +0 -29
- package/dist/node_modules/tedious/lib/debug.d.ts +0 -25
- package/dist/node_modules/tedious/lib/debug.js +0 -67
- package/dist/node_modules/tedious/lib/errors/abort-error.d.ts +0 -4
- package/dist/node_modules/tedious/lib/errors/abort-error.js +0 -15
- package/dist/node_modules/tedious/lib/errors/timeout-error.d.ts +0 -4
- package/dist/node_modules/tedious/lib/errors/timeout-error.js +0 -15
- package/dist/node_modules/tedious/lib/errors.d.ts +0 -17
- package/dist/node_modules/tedious/lib/errors.js +0 -23
- package/dist/node_modules/tedious/lib/guid-parser.d.ts +0 -3
- package/dist/node_modules/tedious/lib/guid-parser.js +0 -30
- package/dist/node_modules/tedious/lib/incoming-message-stream.d.ts +0 -19
- package/dist/node_modules/tedious/lib/incoming-message-stream.js +0 -97
- package/dist/node_modules/tedious/lib/instance-lookup.d.ts +0 -13
- package/dist/node_modules/tedious/lib/instance-lookup.js +0 -96
- package/dist/node_modules/tedious/lib/library.d.ts +0 -1
- package/dist/node_modules/tedious/lib/library.js +0 -8
- package/dist/node_modules/tedious/lib/login7-payload.d.ts +0 -51
- package/dist/node_modules/tedious/lib/login7-payload.js +0 -402
- package/dist/node_modules/tedious/lib/message-io.d.ts +0 -28
- package/dist/node_modules/tedious/lib/message-io.js +0 -153
- package/dist/node_modules/tedious/lib/message.d.ts +0 -11
- package/dist/node_modules/tedious/lib/message.js +0 -21
- package/dist/node_modules/tedious/lib/metadata-parser.d.ts +0 -48
- package/dist/node_modules/tedious/lib/metadata-parser.js +0 -380
- package/dist/node_modules/tedious/lib/ntlm-payload.d.ts +0 -23
- package/dist/node_modules/tedious/lib/ntlm-payload.js +0 -136
- package/dist/node_modules/tedious/lib/ntlm.d.ts +0 -4
- package/dist/node_modules/tedious/lib/ntlm.js +0 -72
- package/dist/node_modules/tedious/lib/outgoing-message-stream.d.ts +0 -15
- package/dist/node_modules/tedious/lib/outgoing-message-stream.js +0 -81
- package/dist/node_modules/tedious/lib/packet.d.ts +0 -33
- package/dist/node_modules/tedious/lib/packet.js +0 -191
- package/dist/node_modules/tedious/lib/prelogin-payload.d.ts +0 -61
- package/dist/node_modules/tedious/lib/prelogin-payload.js +0 -209
- package/dist/node_modules/tedious/lib/request.d.ts +0 -370
- package/dist/node_modules/tedious/lib/request.js +0 -387
- package/dist/node_modules/tedious/lib/rpcrequest-payload.d.ts +0 -16
- package/dist/node_modules/tedious/lib/rpcrequest-payload.js +0 -109
- package/dist/node_modules/tedious/lib/sender.d.ts +0 -5
- package/dist/node_modules/tedious/lib/sender.js +0 -83
- package/dist/node_modules/tedious/lib/special-stored-procedure.d.ts +0 -18
- package/dist/node_modules/tedious/lib/special-stored-procedure.js +0 -26
- package/dist/node_modules/tedious/lib/sqlbatch-payload.d.ts +0 -13
- package/dist/node_modules/tedious/lib/sqlbatch-payload.js +0 -34
- package/dist/node_modules/tedious/lib/tds-versions.d.ts +0 -6
- package/dist/node_modules/tedious/lib/tds-versions.js +0 -19
- package/dist/node_modules/tedious/lib/tedious.d.ts +0 -13
- package/dist/node_modules/tedious/lib/tedious.js +0 -249
- package/dist/node_modules/tedious/lib/token/colmetadata-token-parser.d.ts +0 -12
- package/dist/node_modules/tedious/lib/token/colmetadata-token-parser.js +0 -124
- package/dist/node_modules/tedious/lib/token/done-token-parser.d.ts +0 -6
- package/dist/node_modules/tedious/lib/token/done-token-parser.js +0 -76
- package/dist/node_modules/tedious/lib/token/env-change-token-parser.d.ts +0 -5
- package/dist/node_modules/tedious/lib/token/env-change-token-parser.js +0 -190
- package/dist/node_modules/tedious/lib/token/feature-ext-ack-parser.d.ts +0 -5
- package/dist/node_modules/tedious/lib/token/feature-ext-ack-parser.js +0 -52
- package/dist/node_modules/tedious/lib/token/fedauth-info-parser.d.ts +0 -5
- package/dist/node_modules/tedious/lib/token/fedauth-info-parser.js +0 -62
- package/dist/node_modules/tedious/lib/token/handler.d.ts +0 -135
- package/dist/node_modules/tedious/lib/token/handler.js +0 -444
- package/dist/node_modules/tedious/lib/token/helpers.d.ts +0 -28
- package/dist/node_modules/tedious/lib/token/helpers.js +0 -205
- package/dist/node_modules/tedious/lib/token/infoerror-token-parser.d.ts +0 -5
- package/dist/node_modules/tedious/lib/token/infoerror-token-parser.js +0 -80
- package/dist/node_modules/tedious/lib/token/loginack-token-parser.d.ts +0 -5
- package/dist/node_modules/tedious/lib/token/loginack-token-parser.js +0 -75
- package/dist/node_modules/tedious/lib/token/nbcrow-token-parser.d.ts +0 -4
- package/dist/node_modules/tedious/lib/token/nbcrow-token-parser.js +0 -104
- package/dist/node_modules/tedious/lib/token/order-token-parser.d.ts +0 -5
- package/dist/node_modules/tedious/lib/token/order-token-parser.js +0 -34
- package/dist/node_modules/tedious/lib/token/returnstatus-token-parser.d.ts +0 -5
- package/dist/node_modules/tedious/lib/token/returnstatus-token-parser.js +0 -21
- package/dist/node_modules/tedious/lib/token/returnvalue-token-parser.d.ts +0 -4
- package/dist/node_modules/tedious/lib/token/returnvalue-token-parser.js +0 -94
- package/dist/node_modules/tedious/lib/token/row-token-parser.d.ts +0 -4
- package/dist/node_modules/tedious/lib/token/row-token-parser.js +0 -77
- package/dist/node_modules/tedious/lib/token/sspi-token-parser.d.ts +0 -5
- package/dist/node_modules/tedious/lib/token/sspi-token-parser.js +0 -42
- package/dist/node_modules/tedious/lib/token/stream-parser.d.ts +0 -34
- package/dist/node_modules/tedious/lib/token/stream-parser.js +0 -341
- package/dist/node_modules/tedious/lib/token/token-stream-parser.d.ts +0 -15
- package/dist/node_modules/tedious/lib/token/token-stream-parser.js +0 -36
- package/dist/node_modules/tedious/lib/token/token.d.ts +0 -312
- package/dist/node_modules/tedious/lib/token/token.js +0 -328
- package/dist/node_modules/tedious/lib/tracking-buffer/writable-tracking-buffer.d.ts +0 -47
- package/dist/node_modules/tedious/lib/tracking-buffer/writable-tracking-buffer.js +0 -249
- package/dist/node_modules/tedious/lib/transaction.d.ts +0 -39
- package/dist/node_modules/tedious/lib/transaction.js +0 -137
- package/dist/node_modules/tedious/lib/transient-error-lookup.d.ts +0 -3
- package/dist/node_modules/tedious/lib/transient-error-lookup.js +0 -19
- package/dist/node_modules/tedious/lib/utils/with-timeout.d.ts +0 -7
- package/dist/node_modules/tedious/lib/utils/with-timeout.js +0 -36
- package/dist/node_modules/tedious/lib/value-parser.d.ts +0 -7
- package/dist/node_modules/tedious/lib/value-parser.js +0 -813
- package/dist/node_modules/tedious/node_modules/@types/node/assert/strict.d.ts +0 -105
- package/dist/node_modules/tedious/node_modules/@types/node/assert.d.ts +0 -955
- package/dist/node_modules/tedious/node_modules/@types/node/async_hooks.d.ts +0 -623
- package/dist/node_modules/tedious/node_modules/@types/node/buffer.buffer.d.ts +0 -466
- package/dist/node_modules/tedious/node_modules/@types/node/buffer.d.ts +0 -1810
- package/dist/node_modules/tedious/node_modules/@types/node/child_process.d.ts +0 -1428
- package/dist/node_modules/tedious/node_modules/@types/node/cluster.d.ts +0 -486
- package/dist/node_modules/tedious/node_modules/@types/node/compatibility/iterators.d.ts +0 -21
- package/dist/node_modules/tedious/node_modules/@types/node/console.d.ts +0 -151
- package/dist/node_modules/tedious/node_modules/@types/node/constants.d.ts +0 -20
- package/dist/node_modules/tedious/node_modules/@types/node/crypto.d.ts +0 -4065
- package/dist/node_modules/tedious/node_modules/@types/node/dgram.d.ts +0 -564
- package/dist/node_modules/tedious/node_modules/@types/node/diagnostics_channel.d.ts +0 -576
- package/dist/node_modules/tedious/node_modules/@types/node/dns/promises.d.ts +0 -503
- package/dist/node_modules/tedious/node_modules/@types/node/dns.d.ts +0 -922
- package/dist/node_modules/tedious/node_modules/@types/node/domain.d.ts +0 -166
- package/dist/node_modules/tedious/node_modules/@types/node/events.d.ts +0 -1054
- package/dist/node_modules/tedious/node_modules/@types/node/fs/promises.d.ts +0 -1329
- package/dist/node_modules/tedious/node_modules/@types/node/fs.d.ts +0 -4676
- package/dist/node_modules/tedious/node_modules/@types/node/globals.d.ts +0 -150
- package/dist/node_modules/tedious/node_modules/@types/node/globals.typedarray.d.ts +0 -101
- package/dist/node_modules/tedious/node_modules/@types/node/http.d.ts +0 -2167
- package/dist/node_modules/tedious/node_modules/@types/node/http2.d.ts +0 -2480
- package/dist/node_modules/tedious/node_modules/@types/node/https.d.ts +0 -405
- package/dist/node_modules/tedious/node_modules/@types/node/index.d.ts +0 -115
- package/dist/node_modules/tedious/node_modules/@types/node/inspector/promises.d.ts +0 -41
- package/dist/node_modules/tedious/node_modules/@types/node/inspector.d.ts +0 -224
- package/dist/node_modules/tedious/node_modules/@types/node/inspector.generated.d.ts +0 -4226
- package/dist/node_modules/tedious/node_modules/@types/node/module.d.ts +0 -819
- package/dist/node_modules/tedious/node_modules/@types/node/net.d.ts +0 -933
- package/dist/node_modules/tedious/node_modules/@types/node/os.d.ts +0 -507
- package/dist/node_modules/tedious/node_modules/@types/node/package.json +0 -155
- package/dist/node_modules/tedious/node_modules/@types/node/path/posix.d.ts +0 -8
- package/dist/node_modules/tedious/node_modules/@types/node/path/win32.d.ts +0 -8
- package/dist/node_modules/tedious/node_modules/@types/node/path.d.ts +0 -187
- package/dist/node_modules/tedious/node_modules/@types/node/perf_hooks.d.ts +0 -643
- package/dist/node_modules/tedious/node_modules/@types/node/process.d.ts +0 -2161
- package/dist/node_modules/tedious/node_modules/@types/node/punycode.d.ts +0 -117
- package/dist/node_modules/tedious/node_modules/@types/node/querystring.d.ts +0 -152
- package/dist/node_modules/tedious/node_modules/@types/node/quic.d.ts +0 -910
- package/dist/node_modules/tedious/node_modules/@types/node/readline/promises.d.ts +0 -161
- package/dist/node_modules/tedious/node_modules/@types/node/readline.d.ts +0 -541
- package/dist/node_modules/tedious/node_modules/@types/node/repl.d.ts +0 -415
- package/dist/node_modules/tedious/node_modules/@types/node/sea.d.ts +0 -162
- package/dist/node_modules/tedious/node_modules/@types/node/sqlite.d.ts +0 -955
- package/dist/node_modules/tedious/node_modules/@types/node/stream/consumers.d.ts +0 -38
- package/dist/node_modules/tedious/node_modules/@types/node/stream/promises.d.ts +0 -211
- package/dist/node_modules/tedious/node_modules/@types/node/stream/web.d.ts +0 -296
- package/dist/node_modules/tedious/node_modules/@types/node/stream.d.ts +0 -1760
- package/dist/node_modules/tedious/node_modules/@types/node/string_decoder.d.ts +0 -67
- package/dist/node_modules/tedious/node_modules/@types/node/test/reporters.d.ts +0 -96
- package/dist/node_modules/tedious/node_modules/@types/node/test.d.ts +0 -2240
- package/dist/node_modules/tedious/node_modules/@types/node/timers/promises.d.ts +0 -108
- package/dist/node_modules/tedious/node_modules/@types/node/timers.d.ts +0 -159
- package/dist/node_modules/tedious/node_modules/@types/node/tls.d.ts +0 -1198
- package/dist/node_modules/tedious/node_modules/@types/node/trace_events.d.ts +0 -197
- package/dist/node_modules/tedious/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +0 -462
- package/dist/node_modules/tedious/node_modules/@types/node/ts5.6/compatibility/float16array.d.ts +0 -71
- package/dist/node_modules/tedious/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +0 -36
- package/dist/node_modules/tedious/node_modules/@types/node/ts5.6/index.d.ts +0 -117
- package/dist/node_modules/tedious/node_modules/@types/node/ts5.7/compatibility/float16array.d.ts +0 -72
- package/dist/node_modules/tedious/node_modules/@types/node/ts5.7/index.d.ts +0 -117
- package/dist/node_modules/tedious/node_modules/@types/node/tty.d.ts +0 -250
- package/dist/node_modules/tedious/node_modules/@types/node/url.d.ts +0 -519
- package/dist/node_modules/tedious/node_modules/@types/node/util/types.d.ts +0 -558
- package/dist/node_modules/tedious/node_modules/@types/node/util.d.ts +0 -1662
- package/dist/node_modules/tedious/node_modules/@types/node/v8.d.ts +0 -983
- package/dist/node_modules/tedious/node_modules/@types/node/vm.d.ts +0 -1208
- package/dist/node_modules/tedious/node_modules/@types/node/wasi.d.ts +0 -202
- package/dist/node_modules/tedious/node_modules/@types/node/web-globals/abortcontroller.d.ts +0 -59
- package/dist/node_modules/tedious/node_modules/@types/node/web-globals/blob.d.ts +0 -23
- package/dist/node_modules/tedious/node_modules/@types/node/web-globals/console.d.ts +0 -9
- package/dist/node_modules/tedious/node_modules/@types/node/web-globals/crypto.d.ts +0 -39
- package/dist/node_modules/tedious/node_modules/@types/node/web-globals/domexception.d.ts +0 -68
- package/dist/node_modules/tedious/node_modules/@types/node/web-globals/encoding.d.ts +0 -11
- package/dist/node_modules/tedious/node_modules/@types/node/web-globals/events.d.ts +0 -106
- package/dist/node_modules/tedious/node_modules/@types/node/web-globals/fetch.d.ts +0 -69
- package/dist/node_modules/tedious/node_modules/@types/node/web-globals/importmeta.d.ts +0 -13
- package/dist/node_modules/tedious/node_modules/@types/node/web-globals/messaging.d.ts +0 -23
- package/dist/node_modules/tedious/node_modules/@types/node/web-globals/navigator.d.ts +0 -25
- package/dist/node_modules/tedious/node_modules/@types/node/web-globals/performance.d.ts +0 -45
- package/dist/node_modules/tedious/node_modules/@types/node/web-globals/storage.d.ts +0 -24
- package/dist/node_modules/tedious/node_modules/@types/node/web-globals/streams.d.ts +0 -115
- package/dist/node_modules/tedious/node_modules/@types/node/web-globals/timers.d.ts +0 -44
- package/dist/node_modules/tedious/node_modules/@types/node/web-globals/url.d.ts +0 -24
- package/dist/node_modules/tedious/node_modules/@types/node/worker_threads.d.ts +0 -717
- package/dist/node_modules/tedious/node_modules/@types/node/zlib.d.ts +0 -618
- package/dist/node_modules/tedious/node_modules/bl/.github/dependabot.yml +0 -16
- package/dist/node_modules/tedious/node_modules/bl/.github/workflows/test-and-release.yml +0 -61
- package/dist/node_modules/tedious/node_modules/bl/BufferList.d.ts +0 -431
- package/dist/node_modules/tedious/node_modules/bl/BufferList.js +0 -421
- package/dist/node_modules/tedious/node_modules/bl/bl.js +0 -84
- package/dist/node_modules/tedious/node_modules/bl/index.d.ts +0 -88
- package/dist/node_modules/tedious/node_modules/bl/package.json +0 -123
- package/dist/node_modules/tedious/node_modules/bl/test/convert.js +0 -21
- package/dist/node_modules/tedious/node_modules/bl/test/indexOf.js +0 -492
- package/dist/node_modules/tedious/node_modules/bl/test/isBufferList.js +0 -32
- package/dist/node_modules/tedious/node_modules/bl/test/test.js +0 -1032
- package/dist/node_modules/tedious/node_modules/buffer/index.d.ts +0 -194
- package/dist/node_modules/tedious/node_modules/buffer/index.js +0 -2106
- package/dist/node_modules/tedious/node_modules/buffer/package.json +0 -93
- package/dist/node_modules/tedious/node_modules/readable-stream/lib/_stream_duplex.js +0 -4
- package/dist/node_modules/tedious/node_modules/readable-stream/lib/_stream_passthrough.js +0 -4
- package/dist/node_modules/tedious/node_modules/readable-stream/lib/_stream_readable.js +0 -4
- package/dist/node_modules/tedious/node_modules/readable-stream/lib/_stream_transform.js +0 -4
- package/dist/node_modules/tedious/node_modules/readable-stream/lib/_stream_writable.js +0 -4
- package/dist/node_modules/tedious/node_modules/readable-stream/lib/internal/streams/add-abort-signal.js +0 -52
- package/dist/node_modules/tedious/node_modules/readable-stream/lib/internal/streams/buffer_list.js +0 -157
- package/dist/node_modules/tedious/node_modules/readable-stream/lib/internal/streams/compose.js +0 -194
- package/dist/node_modules/tedious/node_modules/readable-stream/lib/internal/streams/destroy.js +0 -290
- package/dist/node_modules/tedious/node_modules/readable-stream/lib/internal/streams/duplex.js +0 -143
- package/dist/node_modules/tedious/node_modules/readable-stream/lib/internal/streams/duplexify.js +0 -378
- package/dist/node_modules/tedious/node_modules/readable-stream/lib/internal/streams/end-of-stream.js +0 -286
- package/dist/node_modules/tedious/node_modules/readable-stream/lib/internal/streams/from.js +0 -98
- package/dist/node_modules/tedious/node_modules/readable-stream/lib/internal/streams/lazy_transform.js +0 -51
- package/dist/node_modules/tedious/node_modules/readable-stream/lib/internal/streams/legacy.js +0 -89
- package/dist/node_modules/tedious/node_modules/readable-stream/lib/internal/streams/operators.js +0 -457
- package/dist/node_modules/tedious/node_modules/readable-stream/lib/internal/streams/passthrough.js +0 -39
- package/dist/node_modules/tedious/node_modules/readable-stream/lib/internal/streams/pipeline.js +0 -471
- package/dist/node_modules/tedious/node_modules/readable-stream/lib/internal/streams/readable.js +0 -1290
- package/dist/node_modules/tedious/node_modules/readable-stream/lib/internal/streams/state.js +0 -39
- package/dist/node_modules/tedious/node_modules/readable-stream/lib/internal/streams/transform.js +0 -180
- package/dist/node_modules/tedious/node_modules/readable-stream/lib/internal/streams/utils.js +0 -327
- package/dist/node_modules/tedious/node_modules/readable-stream/lib/internal/streams/writable.js +0 -819
- package/dist/node_modules/tedious/node_modules/readable-stream/lib/internal/validators.js +0 -530
- package/dist/node_modules/tedious/node_modules/readable-stream/lib/ours/browser.js +0 -35
- package/dist/node_modules/tedious/node_modules/readable-stream/lib/ours/errors.js +0 -343
- package/dist/node_modules/tedious/node_modules/readable-stream/lib/ours/index.js +0 -65
- package/dist/node_modules/tedious/node_modules/readable-stream/lib/ours/primordials.js +0 -124
- package/dist/node_modules/tedious/node_modules/readable-stream/lib/ours/util/inspect.js +0 -55
- package/dist/node_modules/tedious/node_modules/readable-stream/lib/ours/util.js +0 -148
- package/dist/node_modules/tedious/node_modules/readable-stream/lib/stream/promises.js +0 -43
- package/dist/node_modules/tedious/node_modules/readable-stream/lib/stream.js +0 -143
- package/dist/node_modules/tedious/node_modules/readable-stream/package.json +0 -88
- package/dist/node_modules/tedious/node_modules/sprintf-js/dist/.gitattributes +0 -4
- package/dist/node_modules/tedious/node_modules/sprintf-js/dist/angular-sprintf.min.js +0 -3
- package/dist/node_modules/tedious/node_modules/sprintf-js/dist/sprintf.min.js +0 -3
- package/dist/node_modules/tedious/node_modules/sprintf-js/package.json +0 -35
- package/dist/node_modules/tedious/node_modules/sprintf-js/src/angular-sprintf.js +0 -24
- package/dist/node_modules/tedious/node_modules/sprintf-js/src/sprintf.js +0 -231
- package/dist/node_modules/tedious/node_modules/undici-types/agent.d.ts +0 -32
- package/dist/node_modules/tedious/node_modules/undici-types/api.d.ts +0 -43
- package/dist/node_modules/tedious/node_modules/undici-types/balanced-pool.d.ts +0 -29
- package/dist/node_modules/tedious/node_modules/undici-types/cache-interceptor.d.ts +0 -172
- package/dist/node_modules/tedious/node_modules/undici-types/cache.d.ts +0 -36
- package/dist/node_modules/tedious/node_modules/undici-types/client-stats.d.ts +0 -15
- package/dist/node_modules/tedious/node_modules/undici-types/client.d.ts +0 -108
- package/dist/node_modules/tedious/node_modules/undici-types/connector.d.ts +0 -34
- package/dist/node_modules/tedious/node_modules/undici-types/content-type.d.ts +0 -21
- package/dist/node_modules/tedious/node_modules/undici-types/cookies.d.ts +0 -30
- package/dist/node_modules/tedious/node_modules/undici-types/diagnostics-channel.d.ts +0 -74
- package/dist/node_modules/tedious/node_modules/undici-types/dispatcher.d.ts +0 -276
- package/dist/node_modules/tedious/node_modules/undici-types/env-http-proxy-agent.d.ts +0 -22
- package/dist/node_modules/tedious/node_modules/undici-types/errors.d.ts +0 -161
- package/dist/node_modules/tedious/node_modules/undici-types/eventsource.d.ts +0 -66
- package/dist/node_modules/tedious/node_modules/undici-types/fetch.d.ts +0 -211
- package/dist/node_modules/tedious/node_modules/undici-types/formdata.d.ts +0 -108
- package/dist/node_modules/tedious/node_modules/undici-types/global-dispatcher.d.ts +0 -9
- package/dist/node_modules/tedious/node_modules/undici-types/global-origin.d.ts +0 -7
- package/dist/node_modules/tedious/node_modules/undici-types/h2c-client.d.ts +0 -73
- package/dist/node_modules/tedious/node_modules/undici-types/handlers.d.ts +0 -15
- package/dist/node_modules/tedious/node_modules/undici-types/header.d.ts +0 -160
- package/dist/node_modules/tedious/node_modules/undici-types/index.d.ts +0 -80
- package/dist/node_modules/tedious/node_modules/undici-types/interceptors.d.ts +0 -39
- package/dist/node_modules/tedious/node_modules/undici-types/mock-agent.d.ts +0 -68
- package/dist/node_modules/tedious/node_modules/undici-types/mock-call-history.d.ts +0 -111
- package/dist/node_modules/tedious/node_modules/undici-types/mock-client.d.ts +0 -27
- package/dist/node_modules/tedious/node_modules/undici-types/mock-errors.d.ts +0 -12
- package/dist/node_modules/tedious/node_modules/undici-types/mock-interceptor.d.ts +0 -94
- package/dist/node_modules/tedious/node_modules/undici-types/mock-pool.d.ts +0 -27
- package/dist/node_modules/tedious/node_modules/undici-types/package.json +0 -55
- package/dist/node_modules/tedious/node_modules/undici-types/patch.d.ts +0 -29
- package/dist/node_modules/tedious/node_modules/undici-types/pool-stats.d.ts +0 -19
- package/dist/node_modules/tedious/node_modules/undici-types/pool.d.ts +0 -41
- package/dist/node_modules/tedious/node_modules/undici-types/proxy-agent.d.ts +0 -29
- package/dist/node_modules/tedious/node_modules/undici-types/readable.d.ts +0 -68
- package/dist/node_modules/tedious/node_modules/undici-types/retry-agent.d.ts +0 -8
- package/dist/node_modules/tedious/node_modules/undici-types/retry-handler.d.ts +0 -125
- package/dist/node_modules/tedious/node_modules/undici-types/snapshot-agent.d.ts +0 -109
- package/dist/node_modules/tedious/node_modules/undici-types/util.d.ts +0 -18
- package/dist/node_modules/tedious/node_modules/undici-types/utility.d.ts +0 -7
- package/dist/node_modules/tedious/node_modules/undici-types/webidl.d.ts +0 -341
- package/dist/node_modules/tedious/node_modules/undici-types/websocket.d.ts +0 -186
- package/dist/node_modules/tedious/package.json +0 -1
- package/dist/node_modules/tedious/tsconfig.build-types.json +0 -15
- package/dist/node_modules/tedious/tsconfig.json +0 -29
- package/dist/node_modules/tedious/types/js-md4.d.ts +0 -7
- package/dist/node_modules/tedious/types/native-duplexpair.d.ts +0 -12
package/dist/client/index.js
CHANGED
|
@@ -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}()});
|
package/dist/externalVersion.js
CHANGED
|
@@ -8,10 +8,10 @@
|
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
module.exports = {
|
|
11
|
-
"@nocobase/client": "2.0.
|
|
12
|
-
"@nocobase/plugin-data-source-manager": "2.0.
|
|
13
|
-
"@nocobase/server": "2.0.
|
|
14
|
-
"@nocobase/database": "2.0.
|
|
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.
|
|
23
|
-
"@nocobase/data-source-manager": "2.0.
|
|
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:
|
|
145
|
-
//
|
|
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
|
|
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
|
-
|
|
312
|
+
const schema = this.collectionManager.db.options.schema || "dbo";
|
|
239
313
|
const total = tables.length;
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
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
|
-
(
|
|
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
|
-
(
|
|
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
|
-
|
|
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.
|
|
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
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
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(
|
|
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.
|
|
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",
|