hana-kgvector 0.1.2 → 0.1.4
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/README.md +2 -3
- package/dist/index.d.ts +1 -3
- package/dist/index.js +2 -11
- package/dist/index.js.map +1 -1
- package/package.json +11 -11
- package/dist/Stream-JW2S2DUH.js +0 -6
- package/dist/Stream-JW2S2DUH.js.map +0 -1
- package/dist/chunk-I3F3SOHM.js +0 -726
- package/dist/chunk-I3F3SOHM.js.map +0 -1
- package/dist/chunk-VUNV25KB.js +0 -16
- package/dist/chunk-VUNV25KB.js.map +0 -1
- package/dist/lib-J24D2XQX.js +0 -1256
- package/dist/lib-J24D2XQX.js.map +0 -1
package/dist/lib-J24D2XQX.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../node_modules/.pnpm/ms@2.0.0/node_modules/ms/index.js","../node_modules/.pnpm/debug@3.1.0/node_modules/debug/src/debug.js","../node_modules/.pnpm/debug@3.1.0/node_modules/debug/src/browser.js","../node_modules/.pnpm/debug@3.1.0/node_modules/debug/src/node.js","../node_modules/.pnpm/debug@3.1.0/node_modules/debug/src/index.js","../node_modules/.pnpm/@sap+hana-client@2.27.19/node_modules/@sap/hana-client/lib/index.js"],"sourcesContent":["/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isNaN(val) === false) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^((?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n if (ms >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (ms >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (ms >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (ms >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n return plural(ms, d, 'day') ||\n plural(ms, h, 'hour') ||\n plural(ms, m, 'minute') ||\n plural(ms, s, 'second') ||\n ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, n, name) {\n if (ms < n) {\n return;\n }\n if (ms < n * 1.5) {\n return Math.floor(ms / n) + ' ' + name;\n }\n return Math.ceil(ms / n) + ' ' + name + 's';\n}\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = createDebug.debug = createDebug['default'] = createDebug;\nexports.coerce = coerce;\nexports.disable = disable;\nexports.enable = enable;\nexports.enabled = enabled;\nexports.humanize = require('ms');\n\n/**\n * Active `debug` instances.\n */\nexports.instances = [];\n\n/**\n * The currently active debug mode names, and names to skip.\n */\n\nexports.names = [];\nexports.skips = [];\n\n/**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n */\n\nexports.formatters = {};\n\n/**\n * Select a color.\n * @param {String} namespace\n * @return {Number}\n * @api private\n */\n\nfunction selectColor(namespace) {\n var hash = 0, i;\n\n for (i in namespace) {\n hash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n\n return exports.colors[Math.abs(hash) % exports.colors.length];\n}\n\n/**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */\n\nfunction createDebug(namespace) {\n\n var prevTime;\n\n function debug() {\n // disabled?\n if (!debug.enabled) return;\n\n var self = debug;\n\n // set `diff` timestamp\n var curr = +new Date();\n var ms = curr - (prevTime || curr);\n self.diff = ms;\n self.prev = prevTime;\n self.curr = curr;\n prevTime = curr;\n\n // turn the `arguments` into a proper Array\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n args[0] = exports.coerce(args[0]);\n\n if ('string' !== typeof args[0]) {\n // anything else let's inspect with %O\n args.unshift('%O');\n }\n\n // apply any `formatters` transformations\n var index = 0;\n args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {\n // if we encounter an escaped % then don't increase the array index\n if (match === '%%') return match;\n index++;\n var formatter = exports.formatters[format];\n if ('function' === typeof formatter) {\n var val = args[index];\n match = formatter.call(self, val);\n\n // now we need to remove `args[index]` since it's inlined in the `format`\n args.splice(index, 1);\n index--;\n }\n return match;\n });\n\n // apply env-specific formatting (colors, etc.)\n exports.formatArgs.call(self, args);\n\n var logFn = debug.log || exports.log || console.log.bind(console);\n logFn.apply(self, args);\n }\n\n debug.namespace = namespace;\n debug.enabled = exports.enabled(namespace);\n debug.useColors = exports.useColors();\n debug.color = selectColor(namespace);\n debug.destroy = destroy;\n\n // env-specific initialization logic for debug instances\n if ('function' === typeof exports.init) {\n exports.init(debug);\n }\n\n exports.instances.push(debug);\n\n return debug;\n}\n\nfunction destroy () {\n var index = exports.instances.indexOf(this);\n if (index !== -1) {\n exports.instances.splice(index, 1);\n return true;\n } else {\n return false;\n }\n}\n\n/**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */\n\nfunction enable(namespaces) {\n exports.save(namespaces);\n\n exports.names = [];\n exports.skips = [];\n\n var i;\n var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n var len = split.length;\n\n for (i = 0; i < len; i++) {\n if (!split[i]) continue; // ignore empty strings\n namespaces = split[i].replace(/\\*/g, '.*?');\n if (namespaces[0] === '-') {\n exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n } else {\n exports.names.push(new RegExp('^' + namespaces + '$'));\n }\n }\n\n for (i = 0; i < exports.instances.length; i++) {\n var instance = exports.instances[i];\n instance.enabled = exports.enabled(instance.namespace);\n }\n}\n\n/**\n * Disable debug output.\n *\n * @api public\n */\n\nfunction disable() {\n exports.enable('');\n}\n\n/**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */\n\nfunction enabled(name) {\n if (name[name.length - 1] === '*') {\n return true;\n }\n var i, len;\n for (i = 0, len = exports.skips.length; i < len; i++) {\n if (exports.skips[i].test(name)) {\n return false;\n }\n }\n for (i = 0, len = exports.names.length; i < len; i++) {\n if (exports.names[i].test(name)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */\n\nfunction coerce(val) {\n if (val instanceof Error) return val.stack || val.message;\n return val;\n}\n","/**\n * This is the web browser implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = require('./debug');\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = 'undefined' != typeof chrome\n && 'undefined' != typeof chrome.storage\n ? chrome.storage.local\n : localstorage();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n '#0000CC', '#0000FF', '#0033CC', '#0033FF', '#0066CC', '#0066FF', '#0099CC',\n '#0099FF', '#00CC00', '#00CC33', '#00CC66', '#00CC99', '#00CCCC', '#00CCFF',\n '#3300CC', '#3300FF', '#3333CC', '#3333FF', '#3366CC', '#3366FF', '#3399CC',\n '#3399FF', '#33CC00', '#33CC33', '#33CC66', '#33CC99', '#33CCCC', '#33CCFF',\n '#6600CC', '#6600FF', '#6633CC', '#6633FF', '#66CC00', '#66CC33', '#9900CC',\n '#9900FF', '#9933CC', '#9933FF', '#99CC00', '#99CC33', '#CC0000', '#CC0033',\n '#CC0066', '#CC0099', '#CC00CC', '#CC00FF', '#CC3300', '#CC3333', '#CC3366',\n '#CC3399', '#CC33CC', '#CC33FF', '#CC6600', '#CC6633', '#CC9900', '#CC9933',\n '#CCCC00', '#CCCC33', '#FF0000', '#FF0033', '#FF0066', '#FF0099', '#FF00CC',\n '#FF00FF', '#FF3300', '#FF3333', '#FF3366', '#FF3399', '#FF33CC', '#FF33FF',\n '#FF6600', '#FF6633', '#FF9900', '#FF9933', '#FFCC00', '#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\nfunction useColors() {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {\n return true;\n }\n\n // Internet Explorer and Edge do not support colors.\n if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n return false;\n }\n\n // is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n // is firebug? http://stackoverflow.com/a/398120/376773\n (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n // is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n // double check webkit in userAgent just in case we are in a worker\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nexports.formatters.j = function(v) {\n try {\n return JSON.stringify(v);\n } catch (err) {\n return '[UnexpectedJSONParseError]: ' + err.message;\n }\n};\n\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n var useColors = this.useColors;\n\n args[0] = (useColors ? '%c' : '')\n + this.namespace\n + (useColors ? ' %c' : ' ')\n + args[0]\n + (useColors ? '%c ' : ' ')\n + '+' + exports.humanize(this.diff);\n\n if (!useColors) return;\n\n var c = 'color: ' + this.color;\n args.splice(1, 0, c, 'color: inherit')\n\n // the final \"%c\" is somewhat tricky, because there could be other\n // arguments passed either before or after the %c, so we need to\n // figure out the correct index to insert the CSS into\n var index = 0;\n var lastC = 0;\n args[0].replace(/%[a-zA-Z%]/g, function(match) {\n if ('%%' === match) return;\n index++;\n if ('%c' === match) {\n // we only are interested in the *last* %c\n // (the user may have provided their own)\n lastC = index;\n }\n });\n\n args.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\nfunction log() {\n // this hackery is required for IE8/9, where\n // the `console.log` function doesn't have 'apply'\n return 'object' === typeof console\n && console.log\n && Function.prototype.apply.call(console.log, console, arguments);\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n try {\n if (null == namespaces) {\n exports.storage.removeItem('debug');\n } else {\n exports.storage.debug = namespaces;\n }\n } catch(e) {}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n var r;\n try {\n r = exports.storage.debug;\n } catch(e) {}\n\n // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n if (!r && typeof process !== 'undefined' && 'env' in process) {\n r = process.env.DEBUG;\n }\n\n return r;\n}\n\n/**\n * Enable namespaces listed in `localStorage.debug` initially.\n */\n\nexports.enable(load());\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n try {\n return window.localStorage;\n } catch (e) {}\n}\n","/**\n * Module dependencies.\n */\n\nvar tty = require('tty');\nvar util = require('util');\n\n/**\n * This is the Node.js implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = require('./debug');\nexports.init = init;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\n\n/**\n * Colors.\n */\n\nexports.colors = [ 6, 2, 3, 4, 5, 1 ];\n\ntry {\n var supportsColor = require('supports-color');\n if (supportsColor && supportsColor.level >= 2) {\n exports.colors = [\n 20, 21, 26, 27, 32, 33, 38, 39, 40, 41, 42, 43, 44, 45, 56, 57, 62, 63, 68,\n 69, 74, 75, 76, 77, 78, 79, 80, 81, 92, 93, 98, 99, 112, 113, 128, 129, 134,\n 135, 148, 149, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,\n 172, 173, 178, 179, 184, 185, 196, 197, 198, 199, 200, 201, 202, 203, 204,\n 205, 206, 207, 208, 209, 214, 215, 220, 221\n ];\n }\n} catch (err) {\n // swallow - we only care if `supports-color` is available; it doesn't have to be.\n}\n\n/**\n * Build up the default `inspectOpts` object from the environment variables.\n *\n * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js\n */\n\nexports.inspectOpts = Object.keys(process.env).filter(function (key) {\n return /^debug_/i.test(key);\n}).reduce(function (obj, key) {\n // camel-case\n var prop = key\n .substring(6)\n .toLowerCase()\n .replace(/_([a-z])/g, function (_, k) { return k.toUpperCase() });\n\n // coerce string value into JS value\n var val = process.env[key];\n if (/^(yes|on|true|enabled)$/i.test(val)) val = true;\n else if (/^(no|off|false|disabled)$/i.test(val)) val = false;\n else if (val === 'null') val = null;\n else val = Number(val);\n\n obj[prop] = val;\n return obj;\n}, {});\n\n/**\n * Is stdout a TTY? Colored output is enabled when `true`.\n */\n\nfunction useColors() {\n return 'colors' in exports.inspectOpts\n ? Boolean(exports.inspectOpts.colors)\n : tty.isatty(process.stderr.fd);\n}\n\n/**\n * Map %o to `util.inspect()`, all on a single line.\n */\n\nexports.formatters.o = function(v) {\n this.inspectOpts.colors = this.useColors;\n return util.inspect(v, this.inspectOpts)\n .split('\\n').map(function(str) {\n return str.trim()\n }).join(' ');\n};\n\n/**\n * Map %o to `util.inspect()`, allowing multiple lines if needed.\n */\n\nexports.formatters.O = function(v) {\n this.inspectOpts.colors = this.useColors;\n return util.inspect(v, this.inspectOpts);\n};\n\n/**\n * Adds ANSI color escape codes if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n var name = this.namespace;\n var useColors = this.useColors;\n\n if (useColors) {\n var c = this.color;\n var colorCode = '\\u001b[3' + (c < 8 ? c : '8;5;' + c);\n var prefix = ' ' + colorCode + ';1m' + name + ' ' + '\\u001b[0m';\n\n args[0] = prefix + args[0].split('\\n').join('\\n' + prefix);\n args.push(colorCode + 'm+' + exports.humanize(this.diff) + '\\u001b[0m');\n } else {\n args[0] = getDate() + name + ' ' + args[0];\n }\n}\n\nfunction getDate() {\n if (exports.inspectOpts.hideDate) {\n return '';\n } else {\n return new Date().toISOString() + ' ';\n }\n}\n\n/**\n * Invokes `util.format()` with the specified arguments and writes to stderr.\n */\n\nfunction log() {\n return process.stderr.write(util.format.apply(util, arguments) + '\\n');\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n if (null == namespaces) {\n // If you set a process.env field to null or undefined, it gets cast to the\n // string 'null' or 'undefined'. Just delete instead.\n delete process.env.DEBUG;\n } else {\n process.env.DEBUG = namespaces;\n }\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n return process.env.DEBUG;\n}\n\n/**\n * Init logic for `debug` instances.\n *\n * Create a new `inspectOpts` object in case `useColors` is set\n * differently for a particular `debug` instance.\n */\n\nfunction init (debug) {\n debug.inspectOpts = {};\n\n var keys = Object.keys(exports.inspectOpts);\n for (var i = 0; i < keys.length; i++) {\n debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];\n }\n}\n\n/**\n * Enable namespaces listed in `process.env.DEBUG` initially.\n */\n\nexports.enable(load());\n","/**\n * Detect Electron renderer process, which is node, but we should\n * treat as a browser.\n */\n\nif (typeof process === 'undefined' || process.type === 'renderer') {\n module.exports = require('./browser.js');\n} else {\n module.exports = require('./node.js');\n}\n","'use strict';\r\n\r\nvar fs = require('fs');\r\nvar path = require('path');\r\nvar os = require('os');\r\nvar net = require('net');\r\n\r\nconst debug = require('debug')('@sap/hana-client:index');\r\ndebug.log = console.info.bind(console);\r\n\r\nconst name = 'index.js';\r\nvar majorVersion = process.versions.node.split('.')[0];\r\n\r\ndebug('Starting %s', name);\r\n\r\nvar extensions = {\r\n 'darwin': '.dylib',\r\n 'linux': '.so',\r\n 'win32': '.dll'\r\n};\r\n\r\nvar db = null;\r\n\r\nfunction isMusl() {\r\n const output = require('child_process').spawnSync('ldd',['--version']).stderr\r\n if(output && output.toString('utf8').indexOf('musl') > -1) {\r\n return true;\r\n }\r\n return false;\r\n}\r\n\r\nvar readPipe = null;\r\n\r\nfunction refPipe() {\r\n readPipe.ref();\r\n}\r\n\r\nfunction unrefPipe() {\r\n readPipe.unref();\r\n}\r\n\r\nfunction setupPipe(pipeInfo) {\r\n if (!db) return;\r\n var ldb = db;\r\n if (process.platform === 'win32') {\r\n readPipe = net.createConnection(pipeInfo[\"IPCEndpoint\"]);\r\n } else {\r\n readPipe = net.Socket({fd : pipeInfo[\"fd\"],\r\n readable : true});\r\n }\r\n readPipe.unref();\r\n readPipe.on('data', function(data) {\r\n ldb.__runCallbacks();\r\n });\r\n ldb.__setRefFunctions(refPipe, unrefPipe);\r\n}\r\n\r\n/* Parse internal binary result set format created by N-API execute method.\r\n * Done this way since the performance of creating N-API objects for the result set\r\n * is very poor due to the N-API interaface itself.\r\n * See InternalResultSetBuilder comment in internal code for description of\r\n * the binary format.\r\n *\r\n * Usage:\r\n * var rs_parser = new InternalResultSetParser(rs_bin);\r\n * // at this point rs_parser.numberOfRows, rs_parser.numberOfColumns,\r\n * // rs_parser.columnNames and rs_parser.columnTableNames are all available\r\n * rows = [];\r\n * for(var i = 0; i < rs_parser.numberOfRows; i++) {\r\n * rows[i] = [];\r\n * for(var j = 0; j < rs_parser.numberOfColumns; j++) {\r\n * rows[i][j] = rs_parser.readValue();\r\n * }\r\n * }\r\n * rs_parser.verifyAtEnd();\r\n */\r\nclass InternalResultSetParser {\r\n\r\n // initialize and read header\r\n constructor(rs_bin) {\r\n if(!Buffer.isBuffer(rs_bin)) {\r\n this.throwError(\"rs_bin is not a Buffer in InternalResultSetParser constructor\");\r\n } else if(rs_bin.length < 16) {\r\n this.throwError(\"rs_bin length of \"+rs_bin.length+ \" is too small in InternalResultSetParser constructor\");\r\n }\r\n this.m_buffer = rs_bin;\r\n this.m_curr_offset = 0;\r\n this.m_in_array_value = false;\r\n var length_in_buffer = this.privateReadUInt64();\r\n //debug(\"length_in_buffer: \" + (Number(length_in_buffer)/1024/1024) + \"MB\");\r\n if(this.m_buffer.length != length_in_buffer) {\r\n this.throwError(\"rs_bin length of \"+this.m_buffer.length+\" does not match internal length of \"+length_in_buffer+\" in InternalResultSetParser constructor\");\r\n }\r\n this.numberOfRows = this.privateReadUInt32();\r\n this.numberOfColumns = this.privateReadUInt32();\r\n if(this.numberOfColumns < 1 || this.numberOfColumns > 65535) {\r\n this.throwError(\"Invalid numberOfColumns of \"+this.numberOfColumns+\" in InternalResultSetParser constructor\");\r\n }\r\n\r\n // read column names\r\n this.columnNames = [];\r\n for(var i = 0; i < this.numberOfColumns; i++) {\r\n var col_name = this.readValue();\r\n if(typeof col_name !== 'string') {\r\n this.throwError(\"Invalid column name type of \" + typeof col_name + \" in InternalResultSetParser constructor\");\r\n }\r\n this.columnNames.push(col_name);\r\n }\r\n\r\n // read column table names\r\n this.columnTableNames = [];\r\n for(var i = 0; i < this.numberOfColumns; i++) {\r\n var col_table_name = this.readValue();\r\n if(col_table_name !== null && typeof col_table_name !== 'string') {\r\n this.throwError(\"Invalid read column table name type of \" + typeof col_table_name + \" in InternalResultSetParser constructor\");\r\n }\r\n this.columnTableNames.push(col_table_name);\r\n }\r\n };\r\n\r\n throwError(msg) {\r\n var err = new Error(\"Error making result set Object: \" + msg);\r\n err.code = -20009;\r\n err.sqlState = 'HY000';\r\n throw(err);\r\n }\r\n\r\n // read the next value\r\n readValue() {\r\n const I_RS_NULL = 1;\r\n const I_RS_BOOLEAN = 2;\r\n const I_RS_INT32 = 3;\r\n const I_RS_DOUBLE = 4;\r\n const I_RS_STRING = 5;\r\n const I_RS_BINARY = 6;\r\n const I_RS_ARRAY = 7;\r\n\r\n if(this.m_curr_offset >= this.m_buffer_length) {\r\n this.throwError(\"InternalResultSetParser.readValue already at end of buffer\");\r\n }\r\n var type = this.m_buffer.readInt8(this.m_curr_offset++);\r\n switch(type) {\r\n case I_RS_NULL:\r\n return null;\r\n case I_RS_BOOLEAN:\r\n var val = this.m_buffer.readInt8(this.m_curr_offset++);\r\n return val ? true : false;\r\n case I_RS_INT32:\r\n var num = this.m_buffer.readInt32LE(this.m_curr_offset);\r\n this.m_curr_offset += 4;\r\n return num;\r\n case I_RS_DOUBLE:\r\n var num = this.m_buffer.readDoubleLE(this.m_curr_offset);\r\n this.m_curr_offset += 8;\r\n return num;\r\n case I_RS_STRING:\r\n var len = this.privateReadUInt32();\r\n var str = this.m_buffer.toString('utf8', this.m_curr_offset, this.m_curr_offset + len);\r\n this.m_curr_offset += len;\r\n return str;\r\n case I_RS_BINARY:\r\n var len = this.privateReadUInt32();\r\n var bin = this.m_buffer.subarray(this.m_curr_offset, this.m_curr_offset + len);\r\n this.m_curr_offset += len;\r\n return bin;\r\n case I_RS_ARRAY:\r\n // read array header\r\n var num_elements = this.m_buffer.readInt32LE(this.m_curr_offset);\r\n this.m_curr_offset += 4;\r\n if(this.m_in_array_value) {\r\n this.throwError(\"InternalResultSetParser.readValue nested array value\");\r\n }\r\n this.m_in_array_value = true;\r\n var array = [];\r\n // read array elements\r\n for(var i = 0; i < num_elements; i++) {\r\n array.push(this.readValue());\r\n }\r\n this.m_in_array_value = false;\r\n return array;\r\n };\r\n this.throwError(\"InternalResultSetParser.readValue unexpected value type code of \"+type);\r\n }\r\n\r\n // confirm that all data in the binary buffer was read\r\n verifyAtEnd() {\r\n if(this.m_curr_offset != this.m_buffer.length) {\r\n this.throwError(\"Verify at end failed. m_curr_offset:\" + this.m_curr_offset + \" m_buffer.length:\" + this.m_buffer.length);\r\n }\r\n }\r\n\r\n // internal method used to implement InternalResultSetParser itself\r\n privateReadUInt32() {\r\n var val = this.m_buffer.readInt32LE(this.m_curr_offset);\r\n this.m_curr_offset += 4;\r\n return val;\r\n }\r\n\r\n privateReadUInt64() {\r\n var val;\r\n if(majorVersion >= 12) {\r\n val = this.m_buffer.readBigUInt64LE(this.m_curr_offset);\r\n this.m_curr_offset += 8;\r\n } else {\r\n // node 11 and below don't support Buffer.readBigUInt64LE\r\n // (although some versions of node 10 do support it).\r\n var low_val = this.privateReadUInt32();\r\n var high_val = this.privateReadUInt32();\r\n val = low_val + high_val * 0x100000000;\r\n }\r\n return val;\r\n }\r\n\r\n /* member data:\r\n * numberOfRows: number of rows in result set\r\n * numberOfColumns: number of columns in result set\r\n * columnNames: array of strings of column names\r\n * columnTableNames: array of (strings or NULL) of column table names\r\n * member data that should be considered private:\r\n * m_buffer: the entire binary buffer we are parsing\r\n * m_curr_offset: current offset of m_buffer for next read\r\n * m_in_array_value: true when elements remain in I_RS_ARRAY\r\n */\r\n};\r\n\r\n\r\n// convert rs_bin in InternalResultSet binary format to row array object\r\n// returned by Statement::execute and Connection::execute\r\nfunction translateFromInternalResultSet(options, rs_bin) {\r\n var rowsAsArray = false;\r\n var nestTables = false;\r\n if(options !== null) {\r\n if(options.rowsAsArray) {\r\n rowsAsArray = true;\r\n }\r\n if(options.nestTables) {\r\n nestTables = true;\r\n }\r\n }\r\n var rs_parser = new InternalResultSetParser(rs_bin);\r\n var column_names = rs_parser.columnNames;\r\n var column_table_names = rs_parser.columnTableNames;\r\n var rows = []; // array of all rows\r\n var number_of_rows = rs_parser.numberOfRows;\r\n var number_of_columns = rs_parser.numberOfColumns;\r\n for(var i = 0; i < number_of_rows; i++) {\r\n var row;\r\n if(rowsAsArray) {\r\n row = []; // array of column values\r\n for(var j = 0; j < number_of_columns; j++) {\r\n row.push(rs_parser.readValue());\r\n }\r\n } else {\r\n row = {};\r\n for(var j = 0; j < number_of_columns; j++) {\r\n if(nestTables && column_table_names[j]) {\r\n // there is a key for each table name and the value is\r\n // an object with keys column name and values column value\r\n if(row[column_table_names[j]] === undefined) {\r\n row[column_table_names[j]] = {};\r\n }\r\n row[column_table_names[j]][column_names[j]] = rs_parser.readValue();\r\n } else {\r\n // each column value has key column name and value column value\r\n row[column_names[j]] = rs_parser.readValue();\r\n }\r\n }\r\n }\r\n rows.push(row);\r\n }\r\n rs_parser.verifyAtEnd();\r\n return rows;\r\n}\r\n\r\n// helper for StatementExec and ConnectionExec.\r\nclass ArgParser {\r\n constructor(argv) {\r\n this.argv = argv;\r\n this.next_idx = 0;\r\n }\r\n\r\n // Return the next arg, skipping args that are null or undefined,\r\n // return null if there is no more args\r\n getNext() {\r\n while(this.next_idx < this.argv.length) {\r\n var next_arg = this.argv[this.next_idx++];\r\n if(next_arg !== null && next_arg !== undefined) {\r\n return next_arg;\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n // return what the next arg will be, but do NOT advance next_idx\r\n peekNext() {\r\n var save_next_idx = this.next_idx;\r\n var peek_arg = this.getNext();\r\n this.next_idx = save_next_idx;\r\n return peek_arg;\r\n }\r\n\r\n\r\n // Helper for parseExecuteArgs to resolve ambiguity of first parameter being an\r\n // object, which could be named bind parameters or could be options (yuck!)\r\n // Return true if arg is bind parameters, false otherwise\r\n isBindParameter(arg) {\r\n if(arg === null) return false;\r\n if(Array.isArray(arg)) {\r\n // array can only be bind parameter\r\n return true;\r\n }\r\n if(typeof(arg) !== 'object') {\r\n // not array or object, cannot be either bind parameter or options\r\n // (could be a function if it is a valid arg)\r\n return false;\r\n }\r\n\r\n // the first arg is of type object, and could be either named bind parameters\r\n // or options\r\n var peek_arg = this.peekNext();\r\n if(peek_arg !== null && typeof(peek_arg) === 'object') {\r\n // arg after this must be options, so this must be named bind parameters\r\n return true;\r\n }\r\n // still ambiguous, check if it seems to be an options object\r\n if(arg.nestTables !== undefined ||\r\n arg.rowsAsArray !== undefined ||\r\n arg.queryTimeout !== undefined ||\r\n arg.communicationTimeout !== undefined ||\r\n arg.fastInternalRows !== undefined ||\r\n arg.returnMultipleResultSets !== undefined ||\r\n arg.vectorOutputType !== undefined) {\r\n // has a valid option key, so assume options\r\n return false;\r\n }\r\n // didn't have any valid option keys, assume named bind parameters\r\n return true;\r\n }\r\n\r\n // parse params, options and cbfunc args common to\r\n // Statement.execute and Connection.execute\r\n parseExecuteArgs() {\r\n this.params = null;\r\n this.options = null;\r\n this.cbfunc = null;\r\n\r\n var arg = this.getNext();\r\n\r\n // params arg must be first if specified\r\n if(this.isBindParameter(arg)) {\r\n this.params = arg;\r\n arg = this.getNext();\r\n }\r\n\r\n // options arg must be next if specified\r\n if(arg !== null && typeof(arg) === 'object' && !Array.isArray(arg)) {\r\n this.options = arg;\r\n arg = this.getNext();\r\n }\r\n\r\n // callback arg must be last if specified\r\n if(arg !== null && typeof(arg) === 'function') {\r\n this.cbfunc = arg;\r\n arg = this.getNext();\r\n }\r\n\r\n if(arg !== null) {\r\n // The user passed arguments in the wrong order or the wrong types of args\r\n // Even on invalid args, it is important to set cbfunc if one is\r\n // provided so that the cbfunc is called with the error.\r\n // Otherwise what was intended to be an async method will throw\r\n // an error that the app probably won't expect, crashing the app.\r\n while(arg !== null) {\r\n if(typeof(arg) === 'function') {\r\n this.cbfunc = arg;\r\n break;\r\n }\r\n arg = this.getNext();\r\n }\r\n throw(new Error());\r\n }\r\n }\r\n}\r\n\r\n// A pure JavaScript shim that the user calls instead of an N-API Statement.exec[ute]\r\n// (see dynamicallyAddStmtExecMethod).\r\n// This calls Statement.execInternal and then can use pure JavaScript\r\n// conversion of an intermediate result set to the JavaScript objects returned.\r\n// This eliminates the need to create the result set JavaScript objects inside\r\n// N-API (which can be very expensive).\r\n// see also ConnectionExec which has very similar code.\r\nfunction StatementExec(stmt, p1, p2, p3, execType) {\r\n var args = new ArgParser([p1, p2, p3]);\r\n var parseError;\r\n try {\r\n args.parseExecuteArgs();\r\n } catch(e) {\r\n var methodName;\r\n switch (execType) {\r\n case 2:\r\n methodName = \"exec[ute]Batch\";\r\n break;\r\n case 1:\r\n methodName = \"exec[ute]Query\";\r\n break;\r\n default:\r\n case 0:\r\n methodName = \"exec[ute]\";\r\n break;\r\n }\r\n parseError = new Error(\"Invalid parameter for function '\" + methodName + \"([params][, options][, callback])'\");\r\n parseError.code = -20002;\r\n parseError.sqlState = 'HY000';\r\n }\r\n\r\n var func;\r\n switch (execType) {\r\n case 2:\r\n func = stmt.execBatchInternal;\r\n break;\r\n case 1:\r\n func = stmt.execQueryInternal;\r\n break;\r\n case 0:\r\n default:\r\n func = stmt.execInternal;\r\n break;\r\n }\r\n if(args.cbfunc) {\r\n // async call, do result set conversion work after Statement.execInternal\r\n // but before calling the callback function passed in.\r\n if(parseError) {\r\n args.cbfunc(parseError);\r\n return;\r\n }\r\n func.call(stmt, args.params,\r\n args.options,\r\n function StatementExecCallback(e, rows) {\r\n if(!e) {\r\n // convert rows from InternalResultSet format\r\n // (Note rows can be a Number if stmt does not return a result set)\r\n if(Buffer.isBuffer(rows)) {\r\n try {\r\n rows = translateFromInternalResultSet(args.options, rows);\r\n } catch(err) {\r\n // The intermediate format of the result set could not\r\n // be converted to the JavaScript result set.\r\n e = err;\r\n rows = null;\r\n }\r\n }\r\n }\r\n // call callback function passed in\r\n if(arguments.length == 2) {\r\n args.cbfunc(e, rows);\r\n } else {\r\n // execInternal only provided one parameter to this callback.\r\n // For example, when there are no results due to DDL statement.\r\n args.cbfunc(e);\r\n }\r\n });\r\n } else {\r\n // sync call, just call directly...\r\n if(parseError) {\r\n throw parseError;\r\n }\r\n var rows = func.call(stmt, args.params, args.options, null);\r\n // convert rows from InternalResultSet format\r\n // (Note rows can be a Number if stmt does not return a result set)\r\n if(Buffer.isBuffer(rows)) {\r\n rows = translateFromInternalResultSet(args.options, rows);\r\n }\r\n return rows;\r\n }\r\n}\r\n\r\n// Add the exec pure JavaScript method into the stmt object.\r\n// This is called by the N-API portion of the driver\r\n// when creating each Statement object.\r\nfunction dynamicallyAddStmtExecMethod(stmt) {\r\n if(stmt.exec == null) {\r\n stmt.exec = function(p1 = null, p2 = null, p3 = null) {\r\n return StatementExec(this, p1, p2, p3, 0);\r\n }\r\n } // else case should never happen\r\n if(stmt.execute == null) {\r\n stmt.execute = function(p1 = null, p2 = null, p3 = null) {\r\n return StatementExec(this, p1, p2, p3, 0);\r\n }\r\n } // else case should never happen\r\n if(stmt.execQuery == null) {\r\n stmt.execQuery = function(p1 = null, p2 = null, p3 = null) {\r\n return StatementExec(this, p1, p2, p3, 1);\r\n }\r\n } // else case should never happen\r\n if(stmt.executeQuery == null) {\r\n stmt.executeQuery = function(p1 = null, p2 = null, p3 = null) {\r\n return StatementExec(this, p1, p2, p3, 1);\r\n }\r\n } // else case should never happen\r\n if(stmt.execBatch == null) {\r\n stmt.execBatch = function(p1 = null, p2 = null, p3 = null) {\r\n return StatementExec(this, p1, p2, p3, 2);\r\n }\r\n } // else case should never happen\r\n if(stmt.executeBatch == null) {\r\n stmt.executeBatch = function(p1 = null, p2 = null, p3 = null) {\r\n return StatementExec(this, p1, p2, p3, 2);\r\n }\r\n } // else case should never happen\r\n}\r\n\r\nfunction isPropertyTrue(obj, key) {\r\n if (typeof obj === 'object' && obj !== null) {\r\n const lowerKey = key.toLowerCase();\r\n for (const prop in obj) {\r\n if (prop.toLowerCase() === lowerKey) {\r\n const value = obj[prop];\r\n return (value === true) || (typeof value === 'string' && value.toLowerCase() === 'true');\r\n }\r\n }\r\n }\r\n return false;\r\n}\r\n\r\n// Similar to StatementExec except that this is for Connection.exec\r\n// and there is an extra sql parameter\r\n// When the user calls Connection.exec[ute], this is called.\r\nfunction ConnectionExec(conn, sql, p2, p3, p4) {\r\n var args = new ArgParser([p2, p3, p4]);\r\n var parseError;\r\n try {\r\n args.parseExecuteArgs();\r\n } catch(e) {\r\n parseError = new Error(\"Invalid parameter for function 'exec[ute](sql[, params][, options][, callback])'\");\r\n parseError.code = -20002;\r\n parseError.sqlState = 'HY000';\r\n }\r\n if(args.cbfunc) {\r\n // async call, do result set conversion work after Statement.execInternal\r\n // but before calling the callback function passed in.\r\n if(parseError) {\r\n args.cbfunc(parseError);\r\n return;\r\n }\r\n if (args.options !== undefined && args.options !== null && isPropertyTrue(args.options, 'returnMultipleResultSets')) {\r\n // returnMultipleResultSets is true, so use the stream extension\r\n const streamExt = require('../extension/Stream.js');\r\n streamExt.executeMultipleResultSets(conn, sql, args.params, args.options, args.cbfunc);\r\n return;\r\n }\r\n conn.execInternal(sql,\r\n args.params,\r\n args.options,\r\n function ConnectionExecCallback(e, rows) {\r\n if(!e) {\r\n // convert rows from InternalResultSet format\r\n // (Note rows can be a Number if sql does not return a result set)\r\n if(Buffer.isBuffer(rows)) {\r\n try {\r\n rows = translateFromInternalResultSet(args.options, rows);\r\n } catch(err) {\r\n // The intermediate format of the result set could not\r\n // be converted to the JavaScript result set.\r\n e = err;\r\n rows = null;\r\n }\r\n }\r\n }\r\n // call callback function passed in\r\n if(arguments.length == 2) {\r\n args.cbfunc(e, rows);\r\n } else {\r\n // execInternal only provided one parameter to this callback.\r\n // For example, when there are no results due to DDL statement.\r\n args.cbfunc(e);\r\n }\r\n });\r\n } else {\r\n // sync call, just call directly...\r\n if(parseError) {\r\n throw parseError;\r\n }\r\n var rows = conn.execInternal(sql, args.params, args.options, null);\r\n // convert rows from InternalResultSet format\r\n // (Note rows can be a Number if sql does not return a result set)\r\n if(Buffer.isBuffer(rows)) {\r\n rows = translateFromInternalResultSet(args.options, rows);\r\n }\r\n return rows;\r\n }\r\n}\r\n\r\n// Add the exec pure JavaScript method into the conn object.\r\n// This is called by the N-API portion of the driver\r\n// when creating each Connection object.\r\nfunction dynamicallyAddConnExecMethod(conn) {\r\n if(conn.exec == null) {\r\n conn.exec = function(sql, p2 = null, p3 = null, p4 = null) {\r\n return ConnectionExec(this, sql, p2, p3, p4);\r\n }\r\n } // else case should never happen\r\n if(conn.execute == null) {\r\n conn.execute = function(sql, p2 = null, p3 = null, p4 = null) {\r\n return ConnectionExec(this, sql, p2, p3, p4);\r\n }\r\n } // else case should never happen\r\n}\r\n\r\nvar modpath = path.dirname(__dirname);\r\nvar hanaDynatrace;\r\ntry {\r\n hanaDynatrace = require(path.join(modpath, 'extension', 'Dynatrace.js'));\r\n} catch (ex) {\r\n debug('Could not load Dynatrace.js:' + ex.message);\r\n}\r\nvar hanaOpenTelemetry;\r\ntry {\r\n hanaOpenTelemetry = require(path.join(modpath, 'extension', 'OpenTelemetry.js'));\r\n} catch (ex) {\r\n debug('Could not load OpenTelemetry.js:' + ex.message);\r\n}\r\n\r\nfunction dynamicallyAddExtTraceWrappers(conn, host, port, tenant, allowOpenTelemetry, allowDynatrace) {\r\n var destInfo = {host:host, port:port, tenant:tenant};\r\n // prefer OpenTelemetry over Dynatrace if both are enabled\r\n try {\r\n if(allowOpenTelemetry && hanaOpenTelemetry && hanaOpenTelemetry.isOpenTelemetryEnabled()) {\r\n hanaOpenTelemetry.openTelemetryConnection(conn, destInfo);\r\n return;\r\n }\r\n } catch(ex) {\r\n // should not happen unless the OpenTelemetry.js API changes\r\n debug('Error in dynamicallyAddExtTraceWrappers for OpenTelemetry: ' + ex.message);\r\n }\r\n try {\r\n if(allowDynatrace && hanaDynatrace && hanaDynatrace.isDynatraceEnabled()) {\r\n hanaDynatrace.dynatraceConnection(conn, destInfo);\r\n return;\r\n }\r\n } catch(ex) {\r\n // should not happen unless the Dynatrace.js API changes\r\n debug('Error in dynamicallyAddExtTraceWrappers for Dynatrace: ' + ex.message);\r\n }\r\n}\r\n\r\nprocess.on('exit', function() {\r\n db.__stopAllWork();\r\n});\r\n\r\ndebug('Detected os.arch=' + os.arch() + ', '\r\n + 'process.platform=' + process.platform + ', '\r\n + 'process.arch=' + process.arch + ', '\r\n + 'process.version=' + process.version );\r\n\r\nif (process.platform === 'win32' && process.arch != 'x64') {\r\n debug('ERROR: On Windows, this driver only supports the x64 architecture. ' +\r\n 'Your node process is: ' + process.arch );\r\n throw new Error('On Windows, this driver only supports the x64 architecture. ' +\r\n 'Your node process is: ' + process.arch );\r\n}\r\n\r\nif (majorVersion < 8) {\r\n throw new Error(\"Node version \" + process.version + \" is unsupported by @sap/hana-client. Only versions >=8 are supported\");\r\n}\r\n\r\n// Look for prebuilt binary and DBCAPI based on platform\r\nvar pb_subdir = null;\r\nvar dbcapi_name = 'libdbcapiHDB';\r\nif (process.platform === 'linux') {\r\n if ( isMusl() ) {\r\n pb_subdir = 'linuxx86_64_alpine-gcc6';\r\n } else if (process.arch === 'x64') {\r\n pb_subdir = 'linuxx86_64-gcc6';\r\n } else if (process.arch.toLowerCase().indexOf('ppc') != -1 && os.endianness() === 'LE') {\r\n pb_subdir = 'linuxppc64le-gcc6';\r\n } else if (process.arch === 'arm64') {\r\n pb_subdir = 'linuxaarch64-gcc9';\r\n } else {\r\n pb_subdir = 'unknown';\r\n }\r\n} else if (process.platform === 'win32') {\r\n pb_subdir = 'ntamd64-msvc2022';\r\n} else if (process.platform === 'darwin') {\r\n if (process.arch === 'arm64') {\r\n pb_subdir = 'darwinarm64-xcode12';\r\n } else {\r\n pb_subdir = 'darwinintel64-xcode7';\r\n }\r\n}\r\nvar dbcapi_env = 'DBCAPI_API_DLL';\r\n\r\nvar pb_path = path.join(modpath, 'prebuilt', pb_subdir);\r\nvar dll_path = pb_path;\r\nvar dbcapi = path.join(dll_path, dbcapi_name + extensions[process.platform]);\r\n\r\n\r\n// Remove unrelated native platform libraries\r\nconst removeDirectory = function (dir) {\r\n if (fs.existsSync(dir)) {\r\n fs.readdirSync(dir).forEach((file, index) => {\r\n const curPath = path.join(dir, file);\r\n if (fs.lstatSync(curPath).isDirectory()) { // recurse\r\n removeDirectory(curPath);\r\n } else { // delete file\r\n fs.unlinkSync(curPath);\r\n }\r\n });\r\n fs.rmdirSync(dir);\r\n }\r\n};\r\nconst getSubDirs = function (dir) {\r\n const isDirectory = source => fs.lstatSync(source).isDirectory();\r\n const getDirectories = source =>\r\n fs.readdirSync(source).map(name => path.join(source, name)).filter(isDirectory);\r\n return getDirectories(dir);\r\n};\r\nif (process.env['HDB_NODE_PLATFORM_CLEAN'] === '1') {\r\n var pb_path_all = getSubDirs(path.join(modpath, 'prebuilt'));\r\n pb_path_all.forEach((pbPath) => {\r\n if (pbPath !== pb_path) {\r\n try {\r\n removeDirectory(pbPath);\r\n } catch (ex) {\r\n debug(ex.message);\r\n debug(\"Failed to remove unrelated native platform libraries in '\" + pbPath + \"'.\");\r\n }\r\n }\r\n });\r\n} else if (process.env['HDB_NODEJS_INSTALL_PLATFORMS']) {\r\n var keep = process.env['HDB_NODEJS_INSTALL_PLATFORMS'].split(',').map(name => path.join(modpath, 'prebuilt', name));\r\n var pb_path_all = getSubDirs(path.join(modpath, 'prebuilt'))\r\n var pb_count = pb_path_all.length;\r\n pb_path_all.forEach((pbPath) => {\r\n if (keep.indexOf(pbPath) < 0) {\r\n try {\r\n removeDirectory(pbPath);\r\n pb_count -= 1;\r\n } catch (ex) {\r\n debug(ex.message);\r\n debug(\"Failed to remove unrelated native platform libraries in '\" + pbPath + \"'.\");\r\n }\r\n }\r\n });\r\n if (pb_count <= 0) {\r\n debug(\"WARNING: Environment variable HDB_NODEJS_INSTALL_PLATFORMS did not name any valid platforms. All native platform libraries have been removed.\");\r\n }\r\n}\r\n\r\n// Found dbcapi\r\n// Now find driver\r\nvar default_driver_file = 'hana-client';\r\nvar driver_file = default_driver_file;\r\n\r\nif (process.env['HDB_NODE_NO_NAPI_DRIVER'] === '1') {\r\n // Check if there is a node-version-specific driver\r\n // Fall back on hana-client.node\r\n var v = process.version;\r\n var match = v.match(/v([0-9]+)\\.([0-9]+)\\.[0-9]+/);\r\n driver_file += '_v' + match[1];\r\n if (match[1] + 0 == 0) {\r\n driver_file += '_' + match[2];\r\n }\r\n}\r\nvar driver_path = path.join(pb_path, driver_file + '.node');\r\n\r\ntry {\r\n debug(\"Checking for existence of \"+driver_path);\r\n fs.statSync(driver_path);\r\n} catch (ex) {\r\n debug(\"Did not find \"+driver_path);\r\n driver_path = path.join(pb_path, default_driver_file + '.node');\r\n try {\r\n debug(\"Checking for existence of \"+driver_path);\r\n fs.statSync(driver_path);\r\n } catch (ex) {\r\n debug(\"No prebuilt node driver found for platform: '\" +\r\n process.platform + \"', arch: '\" + process.arch +\r\n \"', endianness: '\" + os.endianness() + \"' for Node version: '\" +\r\n process.version + \"'\");\r\n }\r\n}\r\n\r\n// Try loading\r\n// 1. User's build\r\n// 2. Prebuilt\r\n\r\ndebug('Attempting to load Hana node-hdbcapi driver');\r\n\r\nvar userbld_driver_path = path.join(modpath, 'build', 'Release', 'hana-client.node');\r\ndebug('... Trying user-built copy...');\r\ntry {\r\n debug('... Looking for user-built copy in ' + userbld_driver_path + ' ... ');\r\n fs.statSync(userbld_driver_path);\r\n debug('Found.');\r\n try {\r\n debug('... Attempting to load user-built copy... ');\r\n db = require(userbld_driver_path);\r\n debug('Loaded.');\r\n } catch (ex) {\r\n debug(ex.message);\r\n debug('Could not load: User-built copy did not satisfy requirements.');\r\n throw ex;\r\n }\r\n} catch (ex) {\r\n debug('Not found.');\r\n}\r\n\r\nif (db === null) {\r\n debug('... Trying prebuilt copy...');\r\n try {\r\n debug('... Looking for prebuilt copy in ' + driver_path + ' ... ');\r\n db = require(driver_path);\r\n debug('Loaded.');\r\n } catch (ex) {\r\n debug(ex.message);\r\n debug('Could not load: Prebuilt copy did not satisfy requirements.');\r\n debug(\"Could not load modules for Platform: '\" +\r\n process.platform + \"', Process Arch: '\" + process.arch +\r\n \"', and Version: '\" + process.version + \"'\");\r\n throw ex;\r\n }\r\n}\r\n\r\ndb.__loadDbcapi(dbcapi);\r\nvar pipeInfo = db.__getPipe();\r\nsetupPipe(pipeInfo);\r\ndb.__setAddFnsThatAddMethodsToObjects(dynamicallyAddConnExecMethod,\r\n dynamicallyAddStmtExecMethod,\r\n dynamicallyAddExtTraceWrappers);\r\nif (db !== null) {\r\n // Does the driver support automatically adding ExtTrace wrappers?\r\n db.isDynatraceSupported = Boolean(hanaDynatrace);\r\n db.isOpenTelemetrySupported = Boolean(hanaOpenTelemetry);\r\n debug('Success.');\r\n}\r\nmodule.exports = db;\r\n"],"mappings":"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","names":["useColors","useColors","pipeInfo","rows","name","ex"]}
|