@nsshunt/stsutils 1.19.142 → 1.19.144

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/index.cjs CHANGED
@@ -749,6 +749,21 @@ function compareParameterTypes(source1, source2, authParameterTypes) {
749
749
  }
750
750
  //#endregion
751
751
  //#region src/di.ts
752
+ var SyncInjectionContextStore = class {
753
+ current;
754
+ run(injector, fn) {
755
+ const previous = this.current;
756
+ this.current = injector;
757
+ try {
758
+ return fn();
759
+ } finally {
760
+ this.current = previous;
761
+ }
762
+ }
763
+ get() {
764
+ return this.current;
765
+ }
766
+ };
752
767
  var InjectionToken = class {
753
768
  description;
754
769
  #type;
@@ -759,14 +774,19 @@ var InjectionToken = class {
759
774
  return `InjectionToken(${this.description})`;
760
775
  }
761
776
  };
762
- var currentInjector;
763
- function inject(token) {
764
- if (!currentInjector) throw new Error("inject() called outside an injection context");
765
- return currentInjector.get(token);
766
- }
777
+ var contextStore = new SyncInjectionContextStore();
778
+ var SetInjectionContextStore = (store) => {
779
+ contextStore = store;
780
+ };
781
+ var inject = (token) => {
782
+ const injector = contextStore.get();
783
+ if (!injector) throw new Error("inject() called outside an injection context");
784
+ return injector.get(token);
785
+ };
767
786
  function getCurrentInjector() {
768
- if (!currentInjector) throw new Error("getCurrentInjector() called outside an injection context");
769
- return currentInjector;
787
+ const injector = contextStore.get();
788
+ if (!injector) throw new Error("getCurrentInjector() called outside an injection context");
789
+ return injector;
770
790
  }
771
791
  var Injector = class Injector {
772
792
  parent;
@@ -809,20 +829,14 @@ var Injector = class Injector {
809
829
  return this.runInContext(() => new type());
810
830
  }
811
831
  runInContext(fn) {
812
- const previous = currentInjector;
813
- try {
814
- currentInjector = this;
815
- return fn();
816
- } finally {
817
- currentInjector = previous;
818
- }
832
+ return contextStore.run(this, fn);
819
833
  }
820
834
  tokenToString(token) {
821
835
  if (token instanceof InjectionToken) return token.toString();
822
836
  return token.name;
823
837
  }
824
838
  bootstrap(token) {
825
- return this.get(token);
839
+ return this.runInContext(() => this.get(token));
826
840
  }
827
841
  };
828
842
  //#endregion
@@ -839,7 +853,9 @@ exports.OAuth2ParameterType = OAuth2ParameterType;
839
853
  exports.OIDCAddressClaim = OIDCAddressClaim;
840
854
  exports.OIDCStandardClaim = OIDCStandardClaim;
841
855
  exports.STSAxiosConfig = STSAxiosConfig;
856
+ exports.SetInjectionContextStore = SetInjectionContextStore;
842
857
  exports.Sleep = Sleep;
858
+ exports.SyncInjectionContextStore = SyncInjectionContextStore;
843
859
  exports.compareParameterTypes = compareParameterTypes;
844
860
  exports.createAgentManager = createAgentManager;
845
861
  exports.defaultLogger = defaultLogger;
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":["styles"],"sources":["../node_modules/chalk/source/vendor/ansi-styles/index.js","../node_modules/chalk/source/vendor/supports-color/browser.js","../node_modules/chalk/source/utilities.js","../node_modules/chalk/source/index.js","../src/commonTypes.ts","../src/dataAccessTypes.ts","../src/sleep.ts","../src/stsAxiosConfig.ts","../src/agentManager.ts","../src/errorhandling.ts","../src/oauth2terms.ts","../src/di.ts","../src/index.ts"],"sourcesContent":["const ANSI_BACKGROUND_OFFSET = 10;\n\nconst wrapAnsi16 = (offset = 0) => code => `\\u001B[${code + offset}m`;\n\nconst wrapAnsi256 = (offset = 0) => code => `\\u001B[${38 + offset};5;${code}m`;\n\nconst wrapAnsi16m = (offset = 0) => (red, green, blue) => `\\u001B[${38 + offset};2;${red};${green};${blue}m`;\n\nconst styles = {\n\tmodifier: {\n\t\treset: [0, 0],\n\t\t// 21 isn't widely supported and 22 does the same thing\n\t\tbold: [1, 22],\n\t\tdim: [2, 22],\n\t\titalic: [3, 23],\n\t\tunderline: [4, 24],\n\t\toverline: [53, 55],\n\t\tinverse: [7, 27],\n\t\thidden: [8, 28],\n\t\tstrikethrough: [9, 29],\n\t},\n\tcolor: {\n\t\tblack: [30, 39],\n\t\tred: [31, 39],\n\t\tgreen: [32, 39],\n\t\tyellow: [33, 39],\n\t\tblue: [34, 39],\n\t\tmagenta: [35, 39],\n\t\tcyan: [36, 39],\n\t\twhite: [37, 39],\n\n\t\t// Bright color\n\t\tblackBright: [90, 39],\n\t\tgray: [90, 39], // Alias of `blackBright`\n\t\tgrey: [90, 39], // Alias of `blackBright`\n\t\tredBright: [91, 39],\n\t\tgreenBright: [92, 39],\n\t\tyellowBright: [93, 39],\n\t\tblueBright: [94, 39],\n\t\tmagentaBright: [95, 39],\n\t\tcyanBright: [96, 39],\n\t\twhiteBright: [97, 39],\n\t},\n\tbgColor: {\n\t\tbgBlack: [40, 49],\n\t\tbgRed: [41, 49],\n\t\tbgGreen: [42, 49],\n\t\tbgYellow: [43, 49],\n\t\tbgBlue: [44, 49],\n\t\tbgMagenta: [45, 49],\n\t\tbgCyan: [46, 49],\n\t\tbgWhite: [47, 49],\n\n\t\t// Bright color\n\t\tbgBlackBright: [100, 49],\n\t\tbgGray: [100, 49], // Alias of `bgBlackBright`\n\t\tbgGrey: [100, 49], // Alias of `bgBlackBright`\n\t\tbgRedBright: [101, 49],\n\t\tbgGreenBright: [102, 49],\n\t\tbgYellowBright: [103, 49],\n\t\tbgBlueBright: [104, 49],\n\t\tbgMagentaBright: [105, 49],\n\t\tbgCyanBright: [106, 49],\n\t\tbgWhiteBright: [107, 49],\n\t},\n};\n\nexport const modifierNames = Object.keys(styles.modifier);\nexport const foregroundColorNames = Object.keys(styles.color);\nexport const backgroundColorNames = Object.keys(styles.bgColor);\nexport const colorNames = [...foregroundColorNames, ...backgroundColorNames];\n\nfunction assembleStyles() {\n\tconst codes = new Map();\n\n\tfor (const [groupName, group] of Object.entries(styles)) {\n\t\tfor (const [styleName, style] of Object.entries(group)) {\n\t\t\tstyles[styleName] = {\n\t\t\t\topen: `\\u001B[${style[0]}m`,\n\t\t\t\tclose: `\\u001B[${style[1]}m`,\n\t\t\t};\n\n\t\t\tgroup[styleName] = styles[styleName];\n\n\t\t\tcodes.set(style[0], style[1]);\n\t\t}\n\n\t\tObject.defineProperty(styles, groupName, {\n\t\t\tvalue: group,\n\t\t\tenumerable: false,\n\t\t});\n\t}\n\n\tObject.defineProperty(styles, 'codes', {\n\t\tvalue: codes,\n\t\tenumerable: false,\n\t});\n\n\tstyles.color.close = '\\u001B[39m';\n\tstyles.bgColor.close = '\\u001B[49m';\n\n\tstyles.color.ansi = wrapAnsi16();\n\tstyles.color.ansi256 = wrapAnsi256();\n\tstyles.color.ansi16m = wrapAnsi16m();\n\tstyles.bgColor.ansi = wrapAnsi16(ANSI_BACKGROUND_OFFSET);\n\tstyles.bgColor.ansi256 = wrapAnsi256(ANSI_BACKGROUND_OFFSET);\n\tstyles.bgColor.ansi16m = wrapAnsi16m(ANSI_BACKGROUND_OFFSET);\n\n\t// From https://github.com/Qix-/color-convert/blob/3f0e0d4e92e235796ccb17f6e85c72094a651f49/conversions.js\n\tObject.defineProperties(styles, {\n\t\trgbToAnsi256: {\n\t\t\tvalue(red, green, blue) {\n\t\t\t\t// We use the extended greyscale palette here, with the exception of\n\t\t\t\t// black and white. normal palette only has 4 greyscale shades.\n\t\t\t\tif (red === green && green === blue) {\n\t\t\t\t\tif (red < 8) {\n\t\t\t\t\t\treturn 16;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (red > 248) {\n\t\t\t\t\t\treturn 231;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn Math.round(((red - 8) / 247) * 24) + 232;\n\t\t\t\t}\n\n\t\t\t\treturn 16\n\t\t\t\t\t+ (36 * Math.round(red / 255 * 5))\n\t\t\t\t\t+ (6 * Math.round(green / 255 * 5))\n\t\t\t\t\t+ Math.round(blue / 255 * 5);\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToRgb: {\n\t\t\tvalue(hex) {\n\t\t\t\tconst matches = /[a-f\\d]{6}|[a-f\\d]{3}/i.exec(hex.toString(16));\n\t\t\t\tif (!matches) {\n\t\t\t\t\treturn [0, 0, 0];\n\t\t\t\t}\n\n\t\t\t\tlet [colorString] = matches;\n\n\t\t\t\tif (colorString.length === 3) {\n\t\t\t\t\tcolorString = [...colorString].map(character => character + character).join('');\n\t\t\t\t}\n\n\t\t\t\tconst integer = Number.parseInt(colorString, 16);\n\n\t\t\t\treturn [\n\t\t\t\t\t/* eslint-disable no-bitwise */\n\t\t\t\t\t(integer >> 16) & 0xFF,\n\t\t\t\t\t(integer >> 8) & 0xFF,\n\t\t\t\t\tinteger & 0xFF,\n\t\t\t\t\t/* eslint-enable no-bitwise */\n\t\t\t\t];\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToAnsi256: {\n\t\t\tvalue: hex => styles.rgbToAnsi256(...styles.hexToRgb(hex)),\n\t\t\tenumerable: false,\n\t\t},\n\t\tansi256ToAnsi: {\n\t\t\tvalue(code) {\n\t\t\t\tif (code < 8) {\n\t\t\t\t\treturn 30 + code;\n\t\t\t\t}\n\n\t\t\t\tif (code < 16) {\n\t\t\t\t\treturn 90 + (code - 8);\n\t\t\t\t}\n\n\t\t\t\tlet red;\n\t\t\t\tlet green;\n\t\t\t\tlet blue;\n\n\t\t\t\tif (code >= 232) {\n\t\t\t\t\tred = (((code - 232) * 10) + 8) / 255;\n\t\t\t\t\tgreen = red;\n\t\t\t\t\tblue = red;\n\t\t\t\t} else {\n\t\t\t\t\tcode -= 16;\n\n\t\t\t\t\tconst remainder = code % 36;\n\n\t\t\t\t\tred = Math.floor(code / 36) / 5;\n\t\t\t\t\tgreen = Math.floor(remainder / 6) / 5;\n\t\t\t\t\tblue = (remainder % 6) / 5;\n\t\t\t\t}\n\n\t\t\t\tconst value = Math.max(red, green, blue) * 2;\n\n\t\t\t\tif (value === 0) {\n\t\t\t\t\treturn 30;\n\t\t\t\t}\n\n\t\t\t\t// eslint-disable-next-line no-bitwise\n\t\t\t\tlet result = 30 + ((Math.round(blue) << 2) | (Math.round(green) << 1) | Math.round(red));\n\n\t\t\t\tif (value === 2) {\n\t\t\t\t\tresult += 60;\n\t\t\t\t}\n\n\t\t\t\treturn result;\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\trgbToAnsi: {\n\t\t\tvalue: (red, green, blue) => styles.ansi256ToAnsi(styles.rgbToAnsi256(red, green, blue)),\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToAnsi: {\n\t\t\tvalue: hex => styles.ansi256ToAnsi(styles.hexToAnsi256(hex)),\n\t\t\tenumerable: false,\n\t\t},\n\t});\n\n\treturn styles;\n}\n\nconst ansiStyles = assembleStyles();\n\nexport default ansiStyles;\n","/* eslint-env browser */\n\nconst level = (() => {\n\tif (!('navigator' in globalThis)) {\n\t\treturn 0;\n\t}\n\n\tif (globalThis.navigator.userAgentData) {\n\t\tconst brand = navigator.userAgentData.brands.find(({brand}) => brand === 'Chromium');\n\t\tif (brand && brand.version > 93) {\n\t\t\treturn 3;\n\t\t}\n\t}\n\n\tif (/\\b(Chrome|Chromium)\\//.test(globalThis.navigator.userAgent)) {\n\t\treturn 1;\n\t}\n\n\treturn 0;\n})();\n\nconst colorSupport = level !== 0 && {\n\tlevel,\n\thasBasic: true,\n\thas256: level >= 2,\n\thas16m: level >= 3,\n};\n\nconst supportsColor = {\n\tstdout: colorSupport,\n\tstderr: colorSupport,\n};\n\nexport default supportsColor;\n","// TODO: When targeting Node.js 16, use `String.prototype.replaceAll`.\nexport function stringReplaceAll(string, substring, replacer) {\n\tlet index = string.indexOf(substring);\n\tif (index === -1) {\n\t\treturn string;\n\t}\n\n\tconst substringLength = substring.length;\n\tlet endIndex = 0;\n\tlet returnValue = '';\n\tdo {\n\t\treturnValue += string.slice(endIndex, index) + substring + replacer;\n\t\tendIndex = index + substringLength;\n\t\tindex = string.indexOf(substring, endIndex);\n\t} while (index !== -1);\n\n\treturnValue += string.slice(endIndex);\n\treturn returnValue;\n}\n\nexport function stringEncaseCRLFWithFirstIndex(string, prefix, postfix, index) {\n\tlet endIndex = 0;\n\tlet returnValue = '';\n\tdo {\n\t\tconst gotCR = string[index - 1] === '\\r';\n\t\treturnValue += string.slice(endIndex, (gotCR ? index - 1 : index)) + prefix + (gotCR ? '\\r\\n' : '\\n') + postfix;\n\t\tendIndex = index + 1;\n\t\tindex = string.indexOf('\\n', endIndex);\n\t} while (index !== -1);\n\n\treturnValue += string.slice(endIndex);\n\treturn returnValue;\n}\n","import ansiStyles from '#ansi-styles';\nimport supportsColor from '#supports-color';\nimport { // eslint-disable-line import/order\n\tstringReplaceAll,\n\tstringEncaseCRLFWithFirstIndex,\n} from './utilities.js';\n\nconst {stdout: stdoutColor, stderr: stderrColor} = supportsColor;\n\nconst GENERATOR = Symbol('GENERATOR');\nconst STYLER = Symbol('STYLER');\nconst IS_EMPTY = Symbol('IS_EMPTY');\n\n// `supportsColor.level` → `ansiStyles.color[name]` mapping\nconst levelMapping = [\n\t'ansi',\n\t'ansi',\n\t'ansi256',\n\t'ansi16m',\n];\n\nconst styles = Object.create(null);\n\nconst applyOptions = (object, options = {}) => {\n\tif (options.level && !(Number.isInteger(options.level) && options.level >= 0 && options.level <= 3)) {\n\t\tthrow new Error('The `level` option should be an integer from 0 to 3');\n\t}\n\n\t// Detect level if not set manually\n\tconst colorLevel = stdoutColor ? stdoutColor.level : 0;\n\tobject.level = options.level === undefined ? colorLevel : options.level;\n};\n\nexport class Chalk {\n\tconstructor(options) {\n\t\t// eslint-disable-next-line no-constructor-return\n\t\treturn chalkFactory(options);\n\t}\n}\n\nconst chalkFactory = options => {\n\tconst chalk = (...strings) => strings.join(' ');\n\tapplyOptions(chalk, options);\n\n\tObject.setPrototypeOf(chalk, createChalk.prototype);\n\n\treturn chalk;\n};\n\nfunction createChalk(options) {\n\treturn chalkFactory(options);\n}\n\nObject.setPrototypeOf(createChalk.prototype, Function.prototype);\n\nfor (const [styleName, style] of Object.entries(ansiStyles)) {\n\tstyles[styleName] = {\n\t\tget() {\n\t\t\tconst builder = createBuilder(this, createStyler(style.open, style.close, this[STYLER]), this[IS_EMPTY]);\n\t\t\tObject.defineProperty(this, styleName, {value: builder});\n\t\t\treturn builder;\n\t\t},\n\t};\n}\n\nstyles.visible = {\n\tget() {\n\t\tconst builder = createBuilder(this, this[STYLER], true);\n\t\tObject.defineProperty(this, 'visible', {value: builder});\n\t\treturn builder;\n\t},\n};\n\nconst getModelAnsi = (model, level, type, ...arguments_) => {\n\tif (model === 'rgb') {\n\t\tif (level === 'ansi16m') {\n\t\t\treturn ansiStyles[type].ansi16m(...arguments_);\n\t\t}\n\n\t\tif (level === 'ansi256') {\n\t\t\treturn ansiStyles[type].ansi256(ansiStyles.rgbToAnsi256(...arguments_));\n\t\t}\n\n\t\treturn ansiStyles[type].ansi(ansiStyles.rgbToAnsi(...arguments_));\n\t}\n\n\tif (model === 'hex') {\n\t\treturn getModelAnsi('rgb', level, type, ...ansiStyles.hexToRgb(...arguments_));\n\t}\n\n\treturn ansiStyles[type][model](...arguments_);\n};\n\nconst usedModels = ['rgb', 'hex', 'ansi256'];\n\nfor (const model of usedModels) {\n\tstyles[model] = {\n\t\tget() {\n\t\t\tconst {level} = this;\n\t\t\treturn function (...arguments_) {\n\t\t\t\tconst styler = createStyler(getModelAnsi(model, levelMapping[level], 'color', ...arguments_), ansiStyles.color.close, this[STYLER]);\n\t\t\t\treturn createBuilder(this, styler, this[IS_EMPTY]);\n\t\t\t};\n\t\t},\n\t};\n\n\tconst bgModel = 'bg' + model[0].toUpperCase() + model.slice(1);\n\tstyles[bgModel] = {\n\t\tget() {\n\t\t\tconst {level} = this;\n\t\t\treturn function (...arguments_) {\n\t\t\t\tconst styler = createStyler(getModelAnsi(model, levelMapping[level], 'bgColor', ...arguments_), ansiStyles.bgColor.close, this[STYLER]);\n\t\t\t\treturn createBuilder(this, styler, this[IS_EMPTY]);\n\t\t\t};\n\t\t},\n\t};\n}\n\nconst proto = Object.defineProperties(() => {}, {\n\t...styles,\n\tlevel: {\n\t\tenumerable: true,\n\t\tget() {\n\t\t\treturn this[GENERATOR].level;\n\t\t},\n\t\tset(level) {\n\t\t\tthis[GENERATOR].level = level;\n\t\t},\n\t},\n});\n\nconst createStyler = (open, close, parent) => {\n\tlet openAll;\n\tlet closeAll;\n\tif (parent === undefined) {\n\t\topenAll = open;\n\t\tcloseAll = close;\n\t} else {\n\t\topenAll = parent.openAll + open;\n\t\tcloseAll = close + parent.closeAll;\n\t}\n\n\treturn {\n\t\topen,\n\t\tclose,\n\t\topenAll,\n\t\tcloseAll,\n\t\tparent,\n\t};\n};\n\nconst createBuilder = (self, _styler, _isEmpty) => {\n\t// Single argument is hot path, implicit coercion is faster than anything\n\t// eslint-disable-next-line no-implicit-coercion\n\tconst builder = (...arguments_) => applyStyle(builder, (arguments_.length === 1) ? ('' + arguments_[0]) : arguments_.join(' '));\n\n\t// We alter the prototype because we must return a function, but there is\n\t// no way to create a function with a different prototype\n\tObject.setPrototypeOf(builder, proto);\n\n\tbuilder[GENERATOR] = self;\n\tbuilder[STYLER] = _styler;\n\tbuilder[IS_EMPTY] = _isEmpty;\n\n\treturn builder;\n};\n\nconst applyStyle = (self, string) => {\n\tif (self.level <= 0 || !string) {\n\t\treturn self[IS_EMPTY] ? '' : string;\n\t}\n\n\tlet styler = self[STYLER];\n\n\tif (styler === undefined) {\n\t\treturn string;\n\t}\n\n\tconst {openAll, closeAll} = styler;\n\tif (string.includes('\\u001B')) {\n\t\twhile (styler !== undefined) {\n\t\t\t// Replace any instances already present with a re-opening code\n\t\t\t// otherwise only the part of the string until said closing code\n\t\t\t// will be colored, and the rest will simply be 'plain'.\n\t\t\tstring = stringReplaceAll(string, styler.close, styler.open);\n\n\t\t\tstyler = styler.parent;\n\t\t}\n\t}\n\n\t// We can move both next actions out of loop, because remaining actions in loop won't have\n\t// any/visible effect on parts we add here. Close the styling before a linebreak and reopen\n\t// after next line to fix a bleed issue on macOS: https://github.com/chalk/chalk/pull/92\n\tconst lfIndex = string.indexOf('\\n');\n\tif (lfIndex !== -1) {\n\t\tstring = stringEncaseCRLFWithFirstIndex(string, closeAll, openAll, lfIndex);\n\t}\n\n\treturn openAll + string + closeAll;\n};\n\nObject.defineProperties(createChalk.prototype, styles);\n\nconst chalk = createChalk();\nexport const chalkStderr = createChalk({level: stderrColor ? stderrColor.level : 0});\n\nexport {\n\tmodifierNames,\n\tforegroundColorNames,\n\tbackgroundColorNames,\n\tcolorNames,\n\n\t// TODO: Remove these aliases in the next major version\n\tmodifierNames as modifiers,\n\tforegroundColorNames as foregroundColors,\n\tbackgroundColorNames as backgroundColors,\n\tcolorNames as colors,\n} from './vendor/ansi-styles/index.js';\n\nexport {\n\tstdoutColor as supportsColor,\n\tstderrColor as supportsColorStderr,\n};\n\nexport default chalk;\n","/* eslint @typescript-eslint/no-explicit-any: 0 */ // --> OFF\n/* eslint @typescript-eslint/no-unused-vars: 0 */ // --> OFF\nimport chalk from \"chalk\";\n\nexport interface JSONObject {\n [x: string]: any | JSONObject | undefined;\n}\n\nexport enum ModelDelimeter {\n ROOT = \"_\",\n SEPERATOR = \"|\",\n COMPONENT_SEPERATOR = \"@\",\n NID_SEPERATOR = \"^\", // This seperator splits the static and dynamic part of a context string (nid). Used for creating payload header for size optimisation.\n}\n\nexport const CheckValidChar = (checkParams: string[][]): void => {\n const invalidChars = [\n ModelDelimeter.ROOT,\n ModelDelimeter.SEPERATOR,\n ModelDelimeter.COMPONENT_SEPERATOR,\n ModelDelimeter.NID_SEPERATOR,\n ];\n\n checkParams.forEach((param) => {\n invalidChars.forEach((char) => {\n if (param[1].includes(char)) {\n throw new Error(\n `Invalid character inside [${param[0]}:${param[1]}], no [${char}] allowed`\n );\n }\n });\n });\n};\n\n// npm logging levels are prioritized from 0 to 6 (highest to lowest). This from Winston logger.\nexport interface ISTSLogger {\n error(message: any): void;\n warn(message: any): void;\n info(message: any): void;\n http(message: any): void;\n verbose(message: any): void;\n debug(message: any): void;\n silly(message: any): void;\n}\n\nexport const defaultLogger: ISTSLogger = {\n debug(message) {\n console.debug(chalk.grey(`debug: ${message}`));\n },\n error(message) {\n console.error(chalk.red(`error: ${message}`));\n },\n http(message) {\n console.log(chalk.cyan(`http: ${message}`));\n },\n info(message) {\n console.info(chalk.white(`info: ${message}`));\n },\n silly(message) {\n console.log(chalk.yellow(`silly: ${message}`));\n },\n verbose(message) {\n console.log(chalk.green(`verbose: ${message}`));\n },\n warn(message) {\n console.warn(chalk.magenta(`warn: ${message}`));\n },\n};\n\nexport const emptyLogger: ISTSLogger = {\n debug(message) {},\n error(message) {},\n http(message) {},\n info(message) {},\n silly(message) {},\n verbose(message) {},\n warn(message) {},\n};\n","import { StatusCodes } from \"http-status-codes\";\n\nimport { JSONObject } from \"./commonTypes.js\";\n\n//@@ These should be moved into the stsrest01client\nexport enum edbaction {\n created = 1,\n updated = 2,\n deleted = 3,\n}\n\nexport interface IDBResource<T> {\n oid: string;\n resname: string;\n resdesc: T;\n vnum: string;\n validfrom: string;\n validto: string | null;\n dbaction: edbaction;\n dbactionuser: string;\n}\n\nexport interface IDBEntity<T> {\n oid: string;\n resourceoid: string;\n entname: string;\n entvalue: T;\n vnum: string;\n validfrom: string;\n validto: string | null;\n dbaction: edbaction;\n dbactionuser: string;\n}\n\nexport interface IDBFilters {\n resname?: string;\n entname?: string;\n resvnum?: string;\n entvnum?: string;\n filter?: string;\n incdel?: string;\n startdate?: string;\n enddate?: string;\n resenddate?: string;\n dbaction?: string;\n dbactionuser?: string;\n limit?: string;\n}\n\nexport interface IAccessLayerErrorDetail {\n status: StatusCodes;\n error: Error;\n errorMessage: string;\n operation: string;\n}\n\nexport interface IDBOptions {\n filters?: IDBFilters;\n useCache?: boolean;\n useMultipleDatabases?: boolean;\n limit?: number;\n errorOnBatchUpdate?: boolean;\n}\n\nexport interface IDBReturnData<T> {\n status: StatusCodes;\n operation: string;\n detail:\n | IDBReturnData<T>[]\n | IDBResource<T>[]\n | IDBResource<T>\n | IDBEntity<T>[]\n | IDBEntity<T>\n | T\n | null;\n options: IDBOptions;\n error?: IAccessLayerErrorDetail;\n}\n\nexport interface IDBSearchOptions {\n queryFunctionName: string;\n searchParameters: JSONObject;\n returnsResourceList: boolean;\n}\n","export async function Sleep(milliseconds = 1000): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, milliseconds));\n}\n","import { JSONObject } from \"./commonTypes.js\";\nimport { IAgentManager } from \"./agentManager.js\";\n\nexport class STSAxiosConfig {\n #url: string;\n #method: string;\n #headers?: JSONObject;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n #data?: any;\n #agentManager?: IAgentManager;\n #timeout?: number;\n #withCredentials?: boolean;\n\n constructor(\n url: string,\n method: string,\n headers?: JSONObject,\n timeout?: number\n ) {\n this.#url = url;\n this.#method = method;\n if (headers !== undefined) {\n this.#headers = headers;\n }\n if (timeout !== undefined) {\n this.#timeout = timeout;\n }\n }\n\n /**\n *\n * @param cookies this.#headers['Cookie'] = cookies.join('; ')\n * @returns\n */\n withCookies(cookies: string[]) {\n if (!this.#headers) {\n this.#headers = {};\n }\n this.#headers[\"Cookie\"] = cookies.join(\"; \");\n return this;\n }\n\n /**\n *\n * @param data Add data to the body\n * @returns\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n withData(data: any) {\n this.#data = data;\n return this;\n }\n\n // 'Content-Type': 'application/json'\n\n /**\n *\n * @param accesssToken\n * @param stsUserId\n * @returns this.#headers['Authorization'] = 'Bearer ' + accesssToken; and this.#headers['x-sts_user_id'] = stsUserId;\n */\n withAuthHeaders(accesssToken: string, stsUserId?: string) {\n if (!this.#headers) {\n this.#headers = {};\n }\n this.#headers[\"Authorization\"] = \"Bearer \" + accesssToken;\n if (stsUserId) {\n this.#headers[\"x-sts_user_id\"] = stsUserId;\n }\n return this;\n }\n\n /**\n *\n * @param headers Add headers to the existing header\n * @returns\n */\n withHeaders(headers: JSONObject) {\n this.#headers = {\n ...(this.#headers ?? {}),\n ...headers,\n };\n return this;\n }\n\n /**\n *\n * @returns this.#headers['Content-Type'] = 'application/fhir+json';\n */\n withApplicationFhirAndJsonContentTypeHeaders() {\n if (!this.#headers) {\n this.#headers = {};\n }\n this.#headers[\"Content-Type\"] = \"application/fhir+json\";\n return this;\n }\n\n /**\n *\n * @returns this.#headers['Content-Type'] = 'application/merge-patch+json';\n */\n withApplicationMergePatchAndJsonContentTypeHeaders() {\n if (!this.#headers) {\n this.#headers = {};\n }\n this.#headers[\"Content-Type\"] = \"application/merge-patch+json\";\n return this;\n }\n\n /**\n *\n * @returns this.#headers['Content-Type'] = 'application/json-patch+json';\n */\n withApplicationJsonPatchAndJsonContentTypeHeaders() {\n if (!this.#headers) {\n this.#headers = {};\n }\n this.#headers[\"Content-Type\"] = \"application/json-patch+json\";\n return this;\n }\n\n /**\n *\n * @returns this.#headers['Content-Type'] = 'application/json';\n */\n withApplicationJsonContentTypeHeaders() {\n if (!this.#headers) {\n this.#headers = {};\n }\n this.#headers[\"Content-Type\"] = \"application/json\";\n return this;\n }\n\n /**\n *\n * @returns this.#headers['Content-Type'] = 'application/json';\n */\n withDefaultHeaders() {\n if (!this.#headers) {\n this.#headers = {};\n }\n this.#headers[\"Content-Type\"] = \"application/json\";\n return this;\n }\n\n /**\n *\n * @returns\n */\n withCredentials() {\n this.#withCredentials = true;\n return this;\n }\n\n /**\n *\n * @param timeout Add a connection timeout\n * @returns\n */\n withTimeout(timeout: number) {\n this.#timeout = timeout;\n return this;\n }\n\n /**\n *\n * @param agentManager Add the agent manager for each rest call. Only for nodejs not browser.\n * @returns\n */\n withAgentManager(agentManager: IAgentManager) {\n this.#agentManager = agentManager;\n return this;\n }\n\n /**\n * @returns Returns axios config object\n */\n get config(): JSONObject {\n const retVal: JSONObject = {\n url: this.#url,\n method: this.#method,\n };\n if (this.#headers) {\n retVal.headers = this.#headers;\n }\n if (this.#agentManager !== undefined) {\n if (this.#agentManager.IsHttps(this.#url)) {\n retVal.httpsAgent = this.#agentManager.GetAgent(this.#url);\n } else {\n retVal.httpAgent = this.#agentManager.GetAgent(this.#url);\n }\n }\n if (this.#data !== undefined) {\n retVal.data = this.#data;\n }\n if (this.#timeout !== undefined) {\n retVal.timeout = this.#timeout;\n }\n if (\n this.#withCredentials !== undefined &&\n this.#withCredentials === true\n ) {\n retVal.withCredentials = true;\n }\n return retVal;\n }\n}\n","export interface IAgentOptions {\n keepAlive: boolean;\n maxSockets: number;\n maxTotalSockets: number;\n maxFreeSockets: number;\n timeout: number;\n rejectUnauthorized?: boolean;\n}\n\nexport interface IAgentManagerOptions {\n httpAgentFactory: (options: IAgentOptions) => unknown;\n httpsAgentFactory: (options: IAgentOptions) => unknown;\n agentOptions?: IAgentOptions;\n agentResetInterval?: number;\n agentResetCount?: number;\n}\n\nexport interface IAgentManager {\n get agentResetInterval(): number | undefined;\n get agentResetCount(): number | undefined;\n UpdateAgentResetInterval(val: number): void;\n UpdateAgentResetCount(val: number): void;\n IncRequestCount(): void;\n IsHttps(protocol: string): boolean;\n GetAgent(protocol: string): unknown;\n ResetAgent(): void;\n Terminate(): void;\n}\n\nexport function createAgentManager(\n agentManagerOptions: IAgentManagerOptions\n): IAgentManager {\n return new AgentManager(agentManagerOptions);\n}\n\nclass AgentManager implements IAgentManager {\n #options: IAgentManagerOptions;\n #agentResetInterval: NodeJS.Timeout | null = null;\n #requestCount: number = 0;\n #httpAgent: unknown = undefined;\n #httpsAgent: unknown = undefined;\n\n constructor(agentManagerOptions: IAgentManagerOptions) {\n this.#options = agentManagerOptions;\n if (this.#options.agentResetInterval) {\n this.#SetupResetInterval();\n }\n }\n\n get agentResetInterval(): number | undefined {\n return this.#options.agentResetInterval;\n }\n\n UpdateAgentResetInterval(val: number): void {\n if (this.#agentResetInterval) {\n clearTimeout(this.#agentResetInterval);\n }\n this.#options.agentResetInterval = val;\n this.#SetupResetInterval();\n }\n\n get agentResetCount(): number | undefined {\n return this.#options.agentResetCount;\n }\n\n UpdateAgentResetCount(val: number): void {\n this.#options.agentResetCount = val;\n }\n\n #SetupResetInterval = () => {\n if (\n this.#options.agentResetInterval &&\n this.#options.agentResetInterval > 0\n ) {\n this.#agentResetInterval = setTimeout(() => {\n this.ResetAgent();\n this.#SetupResetInterval();\n }, this.#options.agentResetInterval).unref();\n }\n };\n\n IncRequestCount(): void {\n this.#requestCount++;\n if (this.#options.agentResetCount) {\n if (this.#requestCount % this.#options.agentResetCount === 0) {\n this.ResetAgent();\n }\n }\n }\n\n IsHttps(protocol: string): boolean {\n if (protocol.toLowerCase().startsWith(\"https:\")) {\n return true;\n }\n return false;\n }\n\n #GetAgentOptions = (https: boolean): IAgentOptions => {\n let options: IAgentOptions;\n if (this.#options.agentOptions) {\n options = {\n keepAlive: this.#options.agentOptions.keepAlive,\n maxSockets: this.#options.agentOptions.maxSockets,\n maxTotalSockets: this.#options.agentOptions.maxTotalSockets,\n maxFreeSockets: this.#options.agentOptions.maxFreeSockets,\n timeout: this.#options.agentOptions.timeout,\n };\n if (https === true) {\n options.rejectUnauthorized =\n this.#options.agentOptions.rejectUnauthorized; // Allows self signed certs in non production mode(s)\n }\n } else {\n // Defaults\n options = {\n keepAlive: true,\n maxSockets: 10,\n maxTotalSockets: 20,\n maxFreeSockets: 256,\n timeout: 30000,\n rejectUnauthorized: false,\n };\n }\n return options;\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n GetAgent(protocol: string): any {\n if (protocol.toLowerCase().startsWith(\"https:\")) {\n if (!this.#httpsAgent) {\n //this.#httpsAgent = new https.Agent(this.#GetAgentOptions(true));\n this.#httpsAgent = this.#options.httpsAgentFactory(\n this.#GetAgentOptions(true)\n );\n }\n return this.#httpsAgent;\n } else if (protocol.toLowerCase().startsWith(\"http:\")) {\n if (!this.#httpAgent) {\n //this.#httpAgent = new http.Agent(this.#GetAgentOptions(false));\n this.#httpAgent = this.#options.httpAgentFactory(\n this.#GetAgentOptions(false)\n );\n }\n return this.#httpAgent;\n } else {\n return null;\n }\n }\n\n ResetAgent(): void {\n this.#httpAgent = null;\n this.#httpsAgent = null;\n }\n\n Terminate(): void {\n if (this.#agentResetInterval) {\n clearTimeout(this.#agentResetInterval);\n this.#agentResetInterval = null;\n }\n\n if (this.#httpAgent) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (this.#httpAgent as any).destroy();\n this.#httpAgent = null;\n }\n\n if (this.#httpsAgent) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (this.#httpsAgent as any).destroy();\n this.#httpsAgent = null;\n }\n }\n}\n","export type errorCode = {\n code: string;\n description: string;\n};\n\nexport type errorPayload = {\n error: string;\n error_description: string;\n timestamp: number;\n //trace_id: \"255d1aef-8c98-452f-ac51-23d051240864\", //@@\n //correlation_id: \"fb3d2015-bc17-4bb9-bb85-30c5cf1aaaa7\", //@@\n details?: unknown;\n};\n\nexport function GetErrorPayload(\n errorCode: errorCode,\n details: unknown = null\n): errorPayload {\n return {\n error: errorCode.code,\n error_description: errorCode.description,\n timestamp: Date.now(),\n //trace_id: \"255d1aef-8c98-452f-ac51-23d051240864\", //@@\n //correlation_id: \"fb3d2015-bc17-4bb9-bb85-30c5cf1aaaa7\", //@@\n details: details,\n };\n}\n","import { errorCode, errorPayload } from \"./errorhandling.js\";\n\n// Ref: https://datatracker.ietf.org/doc/html/rfc6749#appendix-A\nexport enum OAuth2ParameterType {\n AUDIENCE = \"AUDIENCE\", // STS Extension\n CLIENT_ID = \"client_id\",\n CLIENT_SECRET = \"client_secret\",\n RESPONSE_TYPE = \"response_type\",\n SCOPE = \"scope\",\n STATE = \"state\",\n REDIRECT_URI = \"redirect_uri\",\n ERROR = \"error\",\n ERROR_DESCRIPTION = \"error_description\",\n ERROR_CODES = \"error_codes\", // STS Extension\n ERROR_URI = \"error_uri\",\n GRANT_TYPE = \"grant_type\",\n CODE = \"code\",\n ACCESS_TOKEN = \"access_token\",\n TOKEN_TYPE = \"token_type\",\n EXPIRES_IN = \"expires_in\",\n USERNAME = \"username\",\n PASSWORD = \"password\",\n REFRESH_TOKEN = \"refresh_token\",\n RESPONSE_MODE = \"response_mode\", // STS Extension\n TIMESTAMP = \"timestamp\", // STS Extension\n TRACE_ID = \"trace_id\", // STS Extension\n CORRELATION_ID = \"correlation_id\", // STS Extension\n}\n\n// Auth0 claim usage;\n// aud - api identifier\n// scope - list (space separated) of api permissions\n\n// Claims (Auth0)\n// https://auth0.com/docs/secure/tokens/json-web-tokens/json-web-token-claims\n\n// Reserved claims (IANA)\n// https://www.iana.org/assignments/jwt/jwt.xhtml#claims\n\n// Example scopes and claims (Auth0)\n// https://auth0.com/docs/get-started/apis/scopes/sample-use-cases-scopes-and-claims\n\n// OIDC Claims and Scopes\n// https://openid.net/specs/openid-connect-core-1_0.html#Claims\n// https://developer.okta.com/blog/2017/07/25/oidc-primer-part-1#:~:text=Simply%20put%2C%20claims%20are%20name,information%20asserted%20about%20an%20Entity.%E2%80%9D\n\n// OIDC Standard Claims\n// https://openid.net/specs/openid-connect-core-1_0.html#Claims\n// https://developer.okta.com/blog/2017/07/25/oidc-primer-part-1#:~:text=Simply%20put%2C%20claims%20are%20name,information%20asserted%20about%20an%20Entity.%E2%80%9D\nexport enum OIDCStandardClaim {\n SUB = \"sub\",\n NAME = \"name\",\n GIVEN_NAME = \"given_name\",\n FAMILY_NAME = \"family_name\",\n MIDDLE_NAME = \"middle_name\",\n NICKNAME = \"nickname\",\n PREFERRED_USERNAME = \"preferred_username\",\n PROFILE = \"profile\",\n PICTURE = \"picture\",\n WEBSITE = \"website\",\n EMAIL = \"email\",\n EMAIL_VERIFIED = \"email_verified\",\n GENDER = \"gender\",\n BIRTHDATE = \"birthdate\",\n ZONEINFO = \"zoneinfo\",\n LOCALE = \"locale\",\n PHONE_NUMBER = \"phone_number\",\n PHONE_NUMBER_VERIFIED = \"phone_number_verified\",\n ADDRESS = \"address\",\n CLIENT_SECRET = \"client_secret\",\n NONCE = \"nonce\", // STS Extension\n}\n\nexport enum OIDCAddressClaim {\n FORMATTED = \"formatted\",\n STREET_ADDRESS = \"street_address\",\n LOCALITY = \"locality\",\n REGION = \"region\",\n COUNTRY = \"country\",\n}\n\nexport class OAuth2ParameterErrorType {\n static readonly NOT_EQUAL: errorCode = {\n code: \"STS_OAUTH2_ERR_0001\",\n description: \"Parameter values not equal.\",\n };\n static readonly NOT_PRESENT: errorCode = {\n code: \"STS_OAUTH2_ERR_0002\",\n description: \"Parameter not provided.\",\n };\n static readonly INVALID_FORMAT: errorCode = {\n code: \"STS_OAUTH2_ERR_0003\",\n description: \"Parameter value format invalid.\",\n };\n static readonly EXPIRED: errorCode = {\n code: \"STS_OAUTH2_ERR_0004\",\n description: \"Parameter value expired.\",\n };\n}\n\nexport function compareParameterTypes(\n source1: string[],\n source2: string[],\n authParameterTypes: OAuth2ParameterType[]\n): errorPayload[] {\n const errors: errorPayload[] = [];\n for (let i = 0; i < authParameterTypes.length; i++) {\n const authParameterType = authParameterTypes[i];\n if (source1[i].localeCompare(source2[i]) !== 0) {\n const error: errorPayload = {\n error: OAuth2ParameterErrorType.NOT_EQUAL.code,\n error_description:\n OAuth2ParameterErrorType.NOT_EQUAL.description,\n timestamp: Date.now(),\n details: `${OAuth2ParameterErrorType.NOT_EQUAL.description}: Parameter: [${authParameterType}]`,\n };\n errors.push(error);\n }\n }\n return errors;\n}\n","/* eslint @typescript-eslint/no-explicit-any: 0 */ // --> OFF\n\n// di.ts\n\n// ============================================================\n// Constructor\n// ============================================================\n\nexport type Constructor<T = any> = (new (...args: any[]) => T) & {\n readonly name: string;\n};\n\n// ============================================================\n// Injection token\n// ============================================================\n\nexport class InjectionToken<T> {\n // This field makes T part of the structural type of InjectionToken<T>.\n //\n // It is never used at runtime.\n readonly #type!: T;\n\n constructor(public readonly description: string) {}\n\n toString(): string {\n return `InjectionToken(${this.description})`;\n }\n}\n\n// ============================================================\n// Token\n// ============================================================\n\nexport type Token<T> = Constructor<T> | InjectionToken<T>;\n\n// ============================================================\n// Providers\n// ============================================================\n\nexport type ClassProvider<T> = {\n provide: Token<T>;\n useClass: Constructor<T>;\n};\n\nexport type ValueProvider<T> = {\n provide: Token<T>;\n useValue: T;\n};\n\nexport type FactoryProvider<T> = {\n provide: Token<T>;\n useFactory: () => T;\n};\n\nexport type Provider<T = any> =\n | Constructor<T>\n | ClassProvider<T>\n | ValueProvider<T>\n | FactoryProvider<T>;\n\n// ============================================================\n// Current injection context\n// ============================================================\n\nlet currentInjector: Injector | undefined;\n\n// ============================================================\n// inject()\n// ============================================================\n\nexport function inject<T>(token: Token<T>): T {\n if (!currentInjector) {\n throw new Error(\"inject() called outside an injection context\");\n }\n\n return currentInjector.get(token);\n}\n\nexport function getCurrentInjector(): Injector {\n if (!currentInjector) {\n throw new Error(\n \"getCurrentInjector() called outside an injection context\"\n );\n }\n\n return currentInjector;\n}\n\n// ============================================================\n// Injector\n// ============================================================\n\nexport class Injector {\n private readonly providers = new Map<\n Token<any>,\n ClassProvider<any> | ValueProvider<any> | FactoryProvider<any>\n >();\n\n private readonly instances = new Map<Token<any>, any>();\n\n constructor(\n providers: Provider[] = [],\n private readonly parent?: Injector\n ) {\n for (const provider of providers) {\n this.register(provider);\n }\n }\n\n // --------------------------------------------------------\n // Create child injector\n // --------------------------------------------------------\n\n createChild(providers: Provider[] = []): Injector {\n return new Injector(providers, this);\n }\n\n // --------------------------------------------------------\n // Register provider\n // --------------------------------------------------------\n\n register(provider: Provider): void {\n // Nest/Angular-like shorthand:\n //\n // new Injector([\n // Logger,\n // UserService\n // ]);\n //\n // is equivalent to:\n //\n // new Injector([\n // {\n // provide: Logger,\n // useClass: Logger\n // },\n // {\n // provide: UserService,\n // useClass: UserService\n // }\n // ]);\n\n if (typeof provider === \"function\") {\n this.providers.set(provider, {\n provide: provider,\n useClass: provider,\n });\n\n return;\n }\n\n this.providers.set(provider.provide, provider);\n }\n\n // --------------------------------------------------------\n // Resolve token\n // --------------------------------------------------------\n\n get<T>(token: Token<T>): T {\n // Check whether THIS injector owns the provider.\n\n const provider = this.providers.get(token);\n\n if (provider) {\n // Providers are singletons within the injector\n // that owns them.\n\n if (this.instances.has(token)) {\n return this.instances.get(token) as T;\n }\n\n const instance = this.createProvider<T>(provider);\n\n this.instances.set(token, instance);\n\n return instance;\n }\n\n // Provider does not exist here.\n //\n // Search parent injector.\n\n if (this.parent) {\n return this.parent.get(token);\n }\n\n throw new Error(`No provider for ${this.tokenToString(token)}`);\n }\n\n // --------------------------------------------------------\n // Create provider\n // --------------------------------------------------------\n\n private createProvider<T>(\n provider: ClassProvider<any> | ValueProvider<any> | FactoryProvider<any>\n ): T {\n if (\"useValue\" in provider) {\n return provider.useValue as T;\n }\n\n if (\"useFactory\" in provider) {\n return this.runInContext(provider.useFactory) as T;\n }\n\n return this.construct(provider.useClass) as T;\n }\n\n // --------------------------------------------------------\n // Construct class\n // --------------------------------------------------------\n\n private construct<T>(type: Constructor<T>): T {\n return this.runInContext(() => new type());\n }\n\n // --------------------------------------------------------\n // Establish injection context\n // --------------------------------------------------------\n\n runInContext<T>(fn: () => T): T {\n const previous = currentInjector;\n\n try {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n currentInjector = this;\n\n return fn();\n } finally {\n currentInjector = previous;\n }\n }\n\n // --------------------------------------------------------\n // Token name for diagnostics\n // --------------------------------------------------------\n\n private tokenToString(token: Token<any>): string {\n if (token instanceof InjectionToken) {\n return token.toString();\n }\n\n return token.name;\n }\n\n // --------------------------------------------------------\n // Bootstrap\n // --------------------------------------------------------\n\n bootstrap<T>(token: Constructor<T>): T {\n return this.get(token);\n }\n}\n","export * from \"./commonTypes.js\";\nexport * from \"./dataAccessTypes.js\";\nexport * from \"./sleep.js\";\nexport * from \"./stsAxiosConfig.js\";\nexport * from \"./agentManager.js\";\nexport * from \"./errorhandling.js\";\nexport * from \"./oauth2terms.js\";\nexport * from \"./di.js\";\n\nexport const isNode =\n typeof process !== \"undefined\" &&\n typeof process.release !== \"undefined\" &&\n process.release.name === \"node\";\n"],"x_google_ignoreList":[0,1,2,3],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","names":["styles"],"sources":["../node_modules/chalk/source/vendor/ansi-styles/index.js","../node_modules/chalk/source/vendor/supports-color/browser.js","../node_modules/chalk/source/utilities.js","../node_modules/chalk/source/index.js","../src/commonTypes.ts","../src/dataAccessTypes.ts","../src/sleep.ts","../src/stsAxiosConfig.ts","../src/agentManager.ts","../src/errorhandling.ts","../src/oauth2terms.ts","../src/di.ts","../src/index.ts"],"sourcesContent":["const ANSI_BACKGROUND_OFFSET = 10;\n\nconst wrapAnsi16 = (offset = 0) => code => `\\u001B[${code + offset}m`;\n\nconst wrapAnsi256 = (offset = 0) => code => `\\u001B[${38 + offset};5;${code}m`;\n\nconst wrapAnsi16m = (offset = 0) => (red, green, blue) => `\\u001B[${38 + offset};2;${red};${green};${blue}m`;\n\nconst styles = {\n\tmodifier: {\n\t\treset: [0, 0],\n\t\t// 21 isn't widely supported and 22 does the same thing\n\t\tbold: [1, 22],\n\t\tdim: [2, 22],\n\t\titalic: [3, 23],\n\t\tunderline: [4, 24],\n\t\toverline: [53, 55],\n\t\tinverse: [7, 27],\n\t\thidden: [8, 28],\n\t\tstrikethrough: [9, 29],\n\t},\n\tcolor: {\n\t\tblack: [30, 39],\n\t\tred: [31, 39],\n\t\tgreen: [32, 39],\n\t\tyellow: [33, 39],\n\t\tblue: [34, 39],\n\t\tmagenta: [35, 39],\n\t\tcyan: [36, 39],\n\t\twhite: [37, 39],\n\n\t\t// Bright color\n\t\tblackBright: [90, 39],\n\t\tgray: [90, 39], // Alias of `blackBright`\n\t\tgrey: [90, 39], // Alias of `blackBright`\n\t\tredBright: [91, 39],\n\t\tgreenBright: [92, 39],\n\t\tyellowBright: [93, 39],\n\t\tblueBright: [94, 39],\n\t\tmagentaBright: [95, 39],\n\t\tcyanBright: [96, 39],\n\t\twhiteBright: [97, 39],\n\t},\n\tbgColor: {\n\t\tbgBlack: [40, 49],\n\t\tbgRed: [41, 49],\n\t\tbgGreen: [42, 49],\n\t\tbgYellow: [43, 49],\n\t\tbgBlue: [44, 49],\n\t\tbgMagenta: [45, 49],\n\t\tbgCyan: [46, 49],\n\t\tbgWhite: [47, 49],\n\n\t\t// Bright color\n\t\tbgBlackBright: [100, 49],\n\t\tbgGray: [100, 49], // Alias of `bgBlackBright`\n\t\tbgGrey: [100, 49], // Alias of `bgBlackBright`\n\t\tbgRedBright: [101, 49],\n\t\tbgGreenBright: [102, 49],\n\t\tbgYellowBright: [103, 49],\n\t\tbgBlueBright: [104, 49],\n\t\tbgMagentaBright: [105, 49],\n\t\tbgCyanBright: [106, 49],\n\t\tbgWhiteBright: [107, 49],\n\t},\n};\n\nexport const modifierNames = Object.keys(styles.modifier);\nexport const foregroundColorNames = Object.keys(styles.color);\nexport const backgroundColorNames = Object.keys(styles.bgColor);\nexport const colorNames = [...foregroundColorNames, ...backgroundColorNames];\n\nfunction assembleStyles() {\n\tconst codes = new Map();\n\n\tfor (const [groupName, group] of Object.entries(styles)) {\n\t\tfor (const [styleName, style] of Object.entries(group)) {\n\t\t\tstyles[styleName] = {\n\t\t\t\topen: `\\u001B[${style[0]}m`,\n\t\t\t\tclose: `\\u001B[${style[1]}m`,\n\t\t\t};\n\n\t\t\tgroup[styleName] = styles[styleName];\n\n\t\t\tcodes.set(style[0], style[1]);\n\t\t}\n\n\t\tObject.defineProperty(styles, groupName, {\n\t\t\tvalue: group,\n\t\t\tenumerable: false,\n\t\t});\n\t}\n\n\tObject.defineProperty(styles, 'codes', {\n\t\tvalue: codes,\n\t\tenumerable: false,\n\t});\n\n\tstyles.color.close = '\\u001B[39m';\n\tstyles.bgColor.close = '\\u001B[49m';\n\n\tstyles.color.ansi = wrapAnsi16();\n\tstyles.color.ansi256 = wrapAnsi256();\n\tstyles.color.ansi16m = wrapAnsi16m();\n\tstyles.bgColor.ansi = wrapAnsi16(ANSI_BACKGROUND_OFFSET);\n\tstyles.bgColor.ansi256 = wrapAnsi256(ANSI_BACKGROUND_OFFSET);\n\tstyles.bgColor.ansi16m = wrapAnsi16m(ANSI_BACKGROUND_OFFSET);\n\n\t// From https://github.com/Qix-/color-convert/blob/3f0e0d4e92e235796ccb17f6e85c72094a651f49/conversions.js\n\tObject.defineProperties(styles, {\n\t\trgbToAnsi256: {\n\t\t\tvalue(red, green, blue) {\n\t\t\t\t// We use the extended greyscale palette here, with the exception of\n\t\t\t\t// black and white. normal palette only has 4 greyscale shades.\n\t\t\t\tif (red === green && green === blue) {\n\t\t\t\t\tif (red < 8) {\n\t\t\t\t\t\treturn 16;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (red > 248) {\n\t\t\t\t\t\treturn 231;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn Math.round(((red - 8) / 247) * 24) + 232;\n\t\t\t\t}\n\n\t\t\t\treturn 16\n\t\t\t\t\t+ (36 * Math.round(red / 255 * 5))\n\t\t\t\t\t+ (6 * Math.round(green / 255 * 5))\n\t\t\t\t\t+ Math.round(blue / 255 * 5);\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToRgb: {\n\t\t\tvalue(hex) {\n\t\t\t\tconst matches = /[a-f\\d]{6}|[a-f\\d]{3}/i.exec(hex.toString(16));\n\t\t\t\tif (!matches) {\n\t\t\t\t\treturn [0, 0, 0];\n\t\t\t\t}\n\n\t\t\t\tlet [colorString] = matches;\n\n\t\t\t\tif (colorString.length === 3) {\n\t\t\t\t\tcolorString = [...colorString].map(character => character + character).join('');\n\t\t\t\t}\n\n\t\t\t\tconst integer = Number.parseInt(colorString, 16);\n\n\t\t\t\treturn [\n\t\t\t\t\t/* eslint-disable no-bitwise */\n\t\t\t\t\t(integer >> 16) & 0xFF,\n\t\t\t\t\t(integer >> 8) & 0xFF,\n\t\t\t\t\tinteger & 0xFF,\n\t\t\t\t\t/* eslint-enable no-bitwise */\n\t\t\t\t];\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToAnsi256: {\n\t\t\tvalue: hex => styles.rgbToAnsi256(...styles.hexToRgb(hex)),\n\t\t\tenumerable: false,\n\t\t},\n\t\tansi256ToAnsi: {\n\t\t\tvalue(code) {\n\t\t\t\tif (code < 8) {\n\t\t\t\t\treturn 30 + code;\n\t\t\t\t}\n\n\t\t\t\tif (code < 16) {\n\t\t\t\t\treturn 90 + (code - 8);\n\t\t\t\t}\n\n\t\t\t\tlet red;\n\t\t\t\tlet green;\n\t\t\t\tlet blue;\n\n\t\t\t\tif (code >= 232) {\n\t\t\t\t\tred = (((code - 232) * 10) + 8) / 255;\n\t\t\t\t\tgreen = red;\n\t\t\t\t\tblue = red;\n\t\t\t\t} else {\n\t\t\t\t\tcode -= 16;\n\n\t\t\t\t\tconst remainder = code % 36;\n\n\t\t\t\t\tred = Math.floor(code / 36) / 5;\n\t\t\t\t\tgreen = Math.floor(remainder / 6) / 5;\n\t\t\t\t\tblue = (remainder % 6) / 5;\n\t\t\t\t}\n\n\t\t\t\tconst value = Math.max(red, green, blue) * 2;\n\n\t\t\t\tif (value === 0) {\n\t\t\t\t\treturn 30;\n\t\t\t\t}\n\n\t\t\t\t// eslint-disable-next-line no-bitwise\n\t\t\t\tlet result = 30 + ((Math.round(blue) << 2) | (Math.round(green) << 1) | Math.round(red));\n\n\t\t\t\tif (value === 2) {\n\t\t\t\t\tresult += 60;\n\t\t\t\t}\n\n\t\t\t\treturn result;\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\trgbToAnsi: {\n\t\t\tvalue: (red, green, blue) => styles.ansi256ToAnsi(styles.rgbToAnsi256(red, green, blue)),\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToAnsi: {\n\t\t\tvalue: hex => styles.ansi256ToAnsi(styles.hexToAnsi256(hex)),\n\t\t\tenumerable: false,\n\t\t},\n\t});\n\n\treturn styles;\n}\n\nconst ansiStyles = assembleStyles();\n\nexport default ansiStyles;\n","/* eslint-env browser */\n\nconst level = (() => {\n\tif (!('navigator' in globalThis)) {\n\t\treturn 0;\n\t}\n\n\tif (globalThis.navigator.userAgentData) {\n\t\tconst brand = navigator.userAgentData.brands.find(({brand}) => brand === 'Chromium');\n\t\tif (brand && brand.version > 93) {\n\t\t\treturn 3;\n\t\t}\n\t}\n\n\tif (/\\b(Chrome|Chromium)\\//.test(globalThis.navigator.userAgent)) {\n\t\treturn 1;\n\t}\n\n\treturn 0;\n})();\n\nconst colorSupport = level !== 0 && {\n\tlevel,\n\thasBasic: true,\n\thas256: level >= 2,\n\thas16m: level >= 3,\n};\n\nconst supportsColor = {\n\tstdout: colorSupport,\n\tstderr: colorSupport,\n};\n\nexport default supportsColor;\n","// TODO: When targeting Node.js 16, use `String.prototype.replaceAll`.\nexport function stringReplaceAll(string, substring, replacer) {\n\tlet index = string.indexOf(substring);\n\tif (index === -1) {\n\t\treturn string;\n\t}\n\n\tconst substringLength = substring.length;\n\tlet endIndex = 0;\n\tlet returnValue = '';\n\tdo {\n\t\treturnValue += string.slice(endIndex, index) + substring + replacer;\n\t\tendIndex = index + substringLength;\n\t\tindex = string.indexOf(substring, endIndex);\n\t} while (index !== -1);\n\n\treturnValue += string.slice(endIndex);\n\treturn returnValue;\n}\n\nexport function stringEncaseCRLFWithFirstIndex(string, prefix, postfix, index) {\n\tlet endIndex = 0;\n\tlet returnValue = '';\n\tdo {\n\t\tconst gotCR = string[index - 1] === '\\r';\n\t\treturnValue += string.slice(endIndex, (gotCR ? index - 1 : index)) + prefix + (gotCR ? '\\r\\n' : '\\n') + postfix;\n\t\tendIndex = index + 1;\n\t\tindex = string.indexOf('\\n', endIndex);\n\t} while (index !== -1);\n\n\treturnValue += string.slice(endIndex);\n\treturn returnValue;\n}\n","import ansiStyles from '#ansi-styles';\nimport supportsColor from '#supports-color';\nimport { // eslint-disable-line import/order\n\tstringReplaceAll,\n\tstringEncaseCRLFWithFirstIndex,\n} from './utilities.js';\n\nconst {stdout: stdoutColor, stderr: stderrColor} = supportsColor;\n\nconst GENERATOR = Symbol('GENERATOR');\nconst STYLER = Symbol('STYLER');\nconst IS_EMPTY = Symbol('IS_EMPTY');\n\n// `supportsColor.level` → `ansiStyles.color[name]` mapping\nconst levelMapping = [\n\t'ansi',\n\t'ansi',\n\t'ansi256',\n\t'ansi16m',\n];\n\nconst styles = Object.create(null);\n\nconst applyOptions = (object, options = {}) => {\n\tif (options.level && !(Number.isInteger(options.level) && options.level >= 0 && options.level <= 3)) {\n\t\tthrow new Error('The `level` option should be an integer from 0 to 3');\n\t}\n\n\t// Detect level if not set manually\n\tconst colorLevel = stdoutColor ? stdoutColor.level : 0;\n\tobject.level = options.level === undefined ? colorLevel : options.level;\n};\n\nexport class Chalk {\n\tconstructor(options) {\n\t\t// eslint-disable-next-line no-constructor-return\n\t\treturn chalkFactory(options);\n\t}\n}\n\nconst chalkFactory = options => {\n\tconst chalk = (...strings) => strings.join(' ');\n\tapplyOptions(chalk, options);\n\n\tObject.setPrototypeOf(chalk, createChalk.prototype);\n\n\treturn chalk;\n};\n\nfunction createChalk(options) {\n\treturn chalkFactory(options);\n}\n\nObject.setPrototypeOf(createChalk.prototype, Function.prototype);\n\nfor (const [styleName, style] of Object.entries(ansiStyles)) {\n\tstyles[styleName] = {\n\t\tget() {\n\t\t\tconst builder = createBuilder(this, createStyler(style.open, style.close, this[STYLER]), this[IS_EMPTY]);\n\t\t\tObject.defineProperty(this, styleName, {value: builder});\n\t\t\treturn builder;\n\t\t},\n\t};\n}\n\nstyles.visible = {\n\tget() {\n\t\tconst builder = createBuilder(this, this[STYLER], true);\n\t\tObject.defineProperty(this, 'visible', {value: builder});\n\t\treturn builder;\n\t},\n};\n\nconst getModelAnsi = (model, level, type, ...arguments_) => {\n\tif (model === 'rgb') {\n\t\tif (level === 'ansi16m') {\n\t\t\treturn ansiStyles[type].ansi16m(...arguments_);\n\t\t}\n\n\t\tif (level === 'ansi256') {\n\t\t\treturn ansiStyles[type].ansi256(ansiStyles.rgbToAnsi256(...arguments_));\n\t\t}\n\n\t\treturn ansiStyles[type].ansi(ansiStyles.rgbToAnsi(...arguments_));\n\t}\n\n\tif (model === 'hex') {\n\t\treturn getModelAnsi('rgb', level, type, ...ansiStyles.hexToRgb(...arguments_));\n\t}\n\n\treturn ansiStyles[type][model](...arguments_);\n};\n\nconst usedModels = ['rgb', 'hex', 'ansi256'];\n\nfor (const model of usedModels) {\n\tstyles[model] = {\n\t\tget() {\n\t\t\tconst {level} = this;\n\t\t\treturn function (...arguments_) {\n\t\t\t\tconst styler = createStyler(getModelAnsi(model, levelMapping[level], 'color', ...arguments_), ansiStyles.color.close, this[STYLER]);\n\t\t\t\treturn createBuilder(this, styler, this[IS_EMPTY]);\n\t\t\t};\n\t\t},\n\t};\n\n\tconst bgModel = 'bg' + model[0].toUpperCase() + model.slice(1);\n\tstyles[bgModel] = {\n\t\tget() {\n\t\t\tconst {level} = this;\n\t\t\treturn function (...arguments_) {\n\t\t\t\tconst styler = createStyler(getModelAnsi(model, levelMapping[level], 'bgColor', ...arguments_), ansiStyles.bgColor.close, this[STYLER]);\n\t\t\t\treturn createBuilder(this, styler, this[IS_EMPTY]);\n\t\t\t};\n\t\t},\n\t};\n}\n\nconst proto = Object.defineProperties(() => {}, {\n\t...styles,\n\tlevel: {\n\t\tenumerable: true,\n\t\tget() {\n\t\t\treturn this[GENERATOR].level;\n\t\t},\n\t\tset(level) {\n\t\t\tthis[GENERATOR].level = level;\n\t\t},\n\t},\n});\n\nconst createStyler = (open, close, parent) => {\n\tlet openAll;\n\tlet closeAll;\n\tif (parent === undefined) {\n\t\topenAll = open;\n\t\tcloseAll = close;\n\t} else {\n\t\topenAll = parent.openAll + open;\n\t\tcloseAll = close + parent.closeAll;\n\t}\n\n\treturn {\n\t\topen,\n\t\tclose,\n\t\topenAll,\n\t\tcloseAll,\n\t\tparent,\n\t};\n};\n\nconst createBuilder = (self, _styler, _isEmpty) => {\n\t// Single argument is hot path, implicit coercion is faster than anything\n\t// eslint-disable-next-line no-implicit-coercion\n\tconst builder = (...arguments_) => applyStyle(builder, (arguments_.length === 1) ? ('' + arguments_[0]) : arguments_.join(' '));\n\n\t// We alter the prototype because we must return a function, but there is\n\t// no way to create a function with a different prototype\n\tObject.setPrototypeOf(builder, proto);\n\n\tbuilder[GENERATOR] = self;\n\tbuilder[STYLER] = _styler;\n\tbuilder[IS_EMPTY] = _isEmpty;\n\n\treturn builder;\n};\n\nconst applyStyle = (self, string) => {\n\tif (self.level <= 0 || !string) {\n\t\treturn self[IS_EMPTY] ? '' : string;\n\t}\n\n\tlet styler = self[STYLER];\n\n\tif (styler === undefined) {\n\t\treturn string;\n\t}\n\n\tconst {openAll, closeAll} = styler;\n\tif (string.includes('\\u001B')) {\n\t\twhile (styler !== undefined) {\n\t\t\t// Replace any instances already present with a re-opening code\n\t\t\t// otherwise only the part of the string until said closing code\n\t\t\t// will be colored, and the rest will simply be 'plain'.\n\t\t\tstring = stringReplaceAll(string, styler.close, styler.open);\n\n\t\t\tstyler = styler.parent;\n\t\t}\n\t}\n\n\t// We can move both next actions out of loop, because remaining actions in loop won't have\n\t// any/visible effect on parts we add here. Close the styling before a linebreak and reopen\n\t// after next line to fix a bleed issue on macOS: https://github.com/chalk/chalk/pull/92\n\tconst lfIndex = string.indexOf('\\n');\n\tif (lfIndex !== -1) {\n\t\tstring = stringEncaseCRLFWithFirstIndex(string, closeAll, openAll, lfIndex);\n\t}\n\n\treturn openAll + string + closeAll;\n};\n\nObject.defineProperties(createChalk.prototype, styles);\n\nconst chalk = createChalk();\nexport const chalkStderr = createChalk({level: stderrColor ? stderrColor.level : 0});\n\nexport {\n\tmodifierNames,\n\tforegroundColorNames,\n\tbackgroundColorNames,\n\tcolorNames,\n\n\t// TODO: Remove these aliases in the next major version\n\tmodifierNames as modifiers,\n\tforegroundColorNames as foregroundColors,\n\tbackgroundColorNames as backgroundColors,\n\tcolorNames as colors,\n} from './vendor/ansi-styles/index.js';\n\nexport {\n\tstdoutColor as supportsColor,\n\tstderrColor as supportsColorStderr,\n};\n\nexport default chalk;\n","/* eslint @typescript-eslint/no-explicit-any: 0 */ // --> OFF\n/* eslint @typescript-eslint/no-unused-vars: 0 */ // --> OFF\nimport chalk from \"chalk\";\n\nexport interface JSONObject {\n [x: string]: any | JSONObject | undefined;\n}\n\nexport enum ModelDelimeter {\n ROOT = \"_\",\n SEPERATOR = \"|\",\n COMPONENT_SEPERATOR = \"@\",\n NID_SEPERATOR = \"^\", // This seperator splits the static and dynamic part of a context string (nid). Used for creating payload header for size optimisation.\n}\n\nexport const CheckValidChar = (checkParams: string[][]): void => {\n const invalidChars = [\n ModelDelimeter.ROOT,\n ModelDelimeter.SEPERATOR,\n ModelDelimeter.COMPONENT_SEPERATOR,\n ModelDelimeter.NID_SEPERATOR,\n ];\n\n checkParams.forEach((param) => {\n invalidChars.forEach((char) => {\n if (param[1].includes(char)) {\n throw new Error(\n `Invalid character inside [${param[0]}:${param[1]}], no [${char}] allowed`\n );\n }\n });\n });\n};\n\n// npm logging levels are prioritized from 0 to 6 (highest to lowest). This from Winston logger.\nexport interface ISTSLogger {\n error(message: any): void;\n warn(message: any): void;\n info(message: any): void;\n http(message: any): void;\n verbose(message: any): void;\n debug(message: any): void;\n silly(message: any): void;\n}\n\nexport const defaultLogger: ISTSLogger = {\n debug(message) {\n console.debug(chalk.grey(`debug: ${message}`));\n },\n error(message) {\n console.error(chalk.red(`error: ${message}`));\n },\n http(message) {\n console.log(chalk.cyan(`http: ${message}`));\n },\n info(message) {\n console.info(chalk.white(`info: ${message}`));\n },\n silly(message) {\n console.log(chalk.yellow(`silly: ${message}`));\n },\n verbose(message) {\n console.log(chalk.green(`verbose: ${message}`));\n },\n warn(message) {\n console.warn(chalk.magenta(`warn: ${message}`));\n },\n};\n\nexport const emptyLogger: ISTSLogger = {\n debug(message) {},\n error(message) {},\n http(message) {},\n info(message) {},\n silly(message) {},\n verbose(message) {},\n warn(message) {},\n};\n","import { StatusCodes } from \"http-status-codes\";\n\nimport { JSONObject } from \"./commonTypes.js\";\n\n//@@ These should be moved into the stsrest01client\nexport enum edbaction {\n created = 1,\n updated = 2,\n deleted = 3,\n}\n\nexport interface IDBResource<T> {\n oid: string;\n resname: string;\n resdesc: T;\n vnum: string;\n validfrom: string;\n validto: string | null;\n dbaction: edbaction;\n dbactionuser: string;\n}\n\nexport interface IDBEntity<T> {\n oid: string;\n resourceoid: string;\n entname: string;\n entvalue: T;\n vnum: string;\n validfrom: string;\n validto: string | null;\n dbaction: edbaction;\n dbactionuser: string;\n}\n\nexport interface IDBFilters {\n resname?: string;\n entname?: string;\n resvnum?: string;\n entvnum?: string;\n filter?: string;\n incdel?: string;\n startdate?: string;\n enddate?: string;\n resenddate?: string;\n dbaction?: string;\n dbactionuser?: string;\n limit?: string;\n}\n\nexport interface IAccessLayerErrorDetail {\n status: StatusCodes;\n error: Error;\n errorMessage: string;\n operation: string;\n}\n\nexport interface IDBOptions {\n filters?: IDBFilters;\n useCache?: boolean;\n useMultipleDatabases?: boolean;\n limit?: number;\n errorOnBatchUpdate?: boolean;\n}\n\nexport interface IDBReturnData<T> {\n status: StatusCodes;\n operation: string;\n detail:\n | IDBReturnData<T>[]\n | IDBResource<T>[]\n | IDBResource<T>\n | IDBEntity<T>[]\n | IDBEntity<T>\n | T\n | null;\n options: IDBOptions;\n error?: IAccessLayerErrorDetail;\n}\n\nexport interface IDBSearchOptions {\n queryFunctionName: string;\n searchParameters: JSONObject;\n returnsResourceList: boolean;\n}\n","export async function Sleep(milliseconds = 1000): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, milliseconds));\n}\n","import { JSONObject } from \"./commonTypes.js\";\nimport { IAgentManager } from \"./agentManager.js\";\n\nexport class STSAxiosConfig {\n #url: string;\n #method: string;\n #headers?: JSONObject;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n #data?: any;\n #agentManager?: IAgentManager;\n #timeout?: number;\n #withCredentials?: boolean;\n\n constructor(\n url: string,\n method: string,\n headers?: JSONObject,\n timeout?: number\n ) {\n this.#url = url;\n this.#method = method;\n if (headers !== undefined) {\n this.#headers = headers;\n }\n if (timeout !== undefined) {\n this.#timeout = timeout;\n }\n }\n\n /**\n *\n * @param cookies this.#headers['Cookie'] = cookies.join('; ')\n * @returns\n */\n withCookies(cookies: string[]) {\n if (!this.#headers) {\n this.#headers = {};\n }\n this.#headers[\"Cookie\"] = cookies.join(\"; \");\n return this;\n }\n\n /**\n *\n * @param data Add data to the body\n * @returns\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n withData(data: any) {\n this.#data = data;\n return this;\n }\n\n // 'Content-Type': 'application/json'\n\n /**\n *\n * @param accesssToken\n * @param stsUserId\n * @returns this.#headers['Authorization'] = 'Bearer ' + accesssToken; and this.#headers['x-sts_user_id'] = stsUserId;\n */\n withAuthHeaders(accesssToken: string, stsUserId?: string) {\n if (!this.#headers) {\n this.#headers = {};\n }\n this.#headers[\"Authorization\"] = \"Bearer \" + accesssToken;\n if (stsUserId) {\n this.#headers[\"x-sts_user_id\"] = stsUserId;\n }\n return this;\n }\n\n /**\n *\n * @param headers Add headers to the existing header\n * @returns\n */\n withHeaders(headers: JSONObject) {\n this.#headers = {\n ...(this.#headers ?? {}),\n ...headers,\n };\n return this;\n }\n\n /**\n *\n * @returns this.#headers['Content-Type'] = 'application/fhir+json';\n */\n withApplicationFhirAndJsonContentTypeHeaders() {\n if (!this.#headers) {\n this.#headers = {};\n }\n this.#headers[\"Content-Type\"] = \"application/fhir+json\";\n return this;\n }\n\n /**\n *\n * @returns this.#headers['Content-Type'] = 'application/merge-patch+json';\n */\n withApplicationMergePatchAndJsonContentTypeHeaders() {\n if (!this.#headers) {\n this.#headers = {};\n }\n this.#headers[\"Content-Type\"] = \"application/merge-patch+json\";\n return this;\n }\n\n /**\n *\n * @returns this.#headers['Content-Type'] = 'application/json-patch+json';\n */\n withApplicationJsonPatchAndJsonContentTypeHeaders() {\n if (!this.#headers) {\n this.#headers = {};\n }\n this.#headers[\"Content-Type\"] = \"application/json-patch+json\";\n return this;\n }\n\n /**\n *\n * @returns this.#headers['Content-Type'] = 'application/json';\n */\n withApplicationJsonContentTypeHeaders() {\n if (!this.#headers) {\n this.#headers = {};\n }\n this.#headers[\"Content-Type\"] = \"application/json\";\n return this;\n }\n\n /**\n *\n * @returns this.#headers['Content-Type'] = 'application/json';\n */\n withDefaultHeaders() {\n if (!this.#headers) {\n this.#headers = {};\n }\n this.#headers[\"Content-Type\"] = \"application/json\";\n return this;\n }\n\n /**\n *\n * @returns\n */\n withCredentials() {\n this.#withCredentials = true;\n return this;\n }\n\n /**\n *\n * @param timeout Add a connection timeout\n * @returns\n */\n withTimeout(timeout: number) {\n this.#timeout = timeout;\n return this;\n }\n\n /**\n *\n * @param agentManager Add the agent manager for each rest call. Only for nodejs not browser.\n * @returns\n */\n withAgentManager(agentManager: IAgentManager) {\n this.#agentManager = agentManager;\n return this;\n }\n\n /**\n * @returns Returns axios config object\n */\n get config(): JSONObject {\n const retVal: JSONObject = {\n url: this.#url,\n method: this.#method,\n };\n if (this.#headers) {\n retVal.headers = this.#headers;\n }\n if (this.#agentManager !== undefined) {\n if (this.#agentManager.IsHttps(this.#url)) {\n retVal.httpsAgent = this.#agentManager.GetAgent(this.#url);\n } else {\n retVal.httpAgent = this.#agentManager.GetAgent(this.#url);\n }\n }\n if (this.#data !== undefined) {\n retVal.data = this.#data;\n }\n if (this.#timeout !== undefined) {\n retVal.timeout = this.#timeout;\n }\n if (\n this.#withCredentials !== undefined &&\n this.#withCredentials === true\n ) {\n retVal.withCredentials = true;\n }\n return retVal;\n }\n}\n","export interface IAgentOptions {\n keepAlive: boolean;\n maxSockets: number;\n maxTotalSockets: number;\n maxFreeSockets: number;\n timeout: number;\n rejectUnauthorized?: boolean;\n}\n\nexport interface IAgentManagerOptions {\n httpAgentFactory: (options: IAgentOptions) => unknown;\n httpsAgentFactory: (options: IAgentOptions) => unknown;\n agentOptions?: IAgentOptions;\n agentResetInterval?: number;\n agentResetCount?: number;\n}\n\nexport interface IAgentManager {\n get agentResetInterval(): number | undefined;\n get agentResetCount(): number | undefined;\n UpdateAgentResetInterval(val: number): void;\n UpdateAgentResetCount(val: number): void;\n IncRequestCount(): void;\n IsHttps(protocol: string): boolean;\n GetAgent(protocol: string): unknown;\n ResetAgent(): void;\n Terminate(): void;\n}\n\nexport function createAgentManager(\n agentManagerOptions: IAgentManagerOptions\n): IAgentManager {\n return new AgentManager(agentManagerOptions);\n}\n\nclass AgentManager implements IAgentManager {\n #options: IAgentManagerOptions;\n #agentResetInterval: NodeJS.Timeout | null = null;\n #requestCount: number = 0;\n #httpAgent: unknown = undefined;\n #httpsAgent: unknown = undefined;\n\n constructor(agentManagerOptions: IAgentManagerOptions) {\n this.#options = agentManagerOptions;\n if (this.#options.agentResetInterval) {\n this.#SetupResetInterval();\n }\n }\n\n get agentResetInterval(): number | undefined {\n return this.#options.agentResetInterval;\n }\n\n UpdateAgentResetInterval(val: number): void {\n if (this.#agentResetInterval) {\n clearTimeout(this.#agentResetInterval);\n }\n this.#options.agentResetInterval = val;\n this.#SetupResetInterval();\n }\n\n get agentResetCount(): number | undefined {\n return this.#options.agentResetCount;\n }\n\n UpdateAgentResetCount(val: number): void {\n this.#options.agentResetCount = val;\n }\n\n #SetupResetInterval = () => {\n if (\n this.#options.agentResetInterval &&\n this.#options.agentResetInterval > 0\n ) {\n this.#agentResetInterval = setTimeout(() => {\n this.ResetAgent();\n this.#SetupResetInterval();\n }, this.#options.agentResetInterval).unref();\n }\n };\n\n IncRequestCount(): void {\n this.#requestCount++;\n if (this.#options.agentResetCount) {\n if (this.#requestCount % this.#options.agentResetCount === 0) {\n this.ResetAgent();\n }\n }\n }\n\n IsHttps(protocol: string): boolean {\n if (protocol.toLowerCase().startsWith(\"https:\")) {\n return true;\n }\n return false;\n }\n\n #GetAgentOptions = (https: boolean): IAgentOptions => {\n let options: IAgentOptions;\n if (this.#options.agentOptions) {\n options = {\n keepAlive: this.#options.agentOptions.keepAlive,\n maxSockets: this.#options.agentOptions.maxSockets,\n maxTotalSockets: this.#options.agentOptions.maxTotalSockets,\n maxFreeSockets: this.#options.agentOptions.maxFreeSockets,\n timeout: this.#options.agentOptions.timeout,\n };\n if (https === true) {\n options.rejectUnauthorized =\n this.#options.agentOptions.rejectUnauthorized; // Allows self signed certs in non production mode(s)\n }\n } else {\n // Defaults\n options = {\n keepAlive: true,\n maxSockets: 10,\n maxTotalSockets: 20,\n maxFreeSockets: 256,\n timeout: 30000,\n rejectUnauthorized: false,\n };\n }\n return options;\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n GetAgent(protocol: string): any {\n if (protocol.toLowerCase().startsWith(\"https:\")) {\n if (!this.#httpsAgent) {\n //this.#httpsAgent = new https.Agent(this.#GetAgentOptions(true));\n this.#httpsAgent = this.#options.httpsAgentFactory(\n this.#GetAgentOptions(true)\n );\n }\n return this.#httpsAgent;\n } else if (protocol.toLowerCase().startsWith(\"http:\")) {\n if (!this.#httpAgent) {\n //this.#httpAgent = new http.Agent(this.#GetAgentOptions(false));\n this.#httpAgent = this.#options.httpAgentFactory(\n this.#GetAgentOptions(false)\n );\n }\n return this.#httpAgent;\n } else {\n return null;\n }\n }\n\n ResetAgent(): void {\n this.#httpAgent = null;\n this.#httpsAgent = null;\n }\n\n Terminate(): void {\n if (this.#agentResetInterval) {\n clearTimeout(this.#agentResetInterval);\n this.#agentResetInterval = null;\n }\n\n if (this.#httpAgent) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (this.#httpAgent as any).destroy();\n this.#httpAgent = null;\n }\n\n if (this.#httpsAgent) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (this.#httpsAgent as any).destroy();\n this.#httpsAgent = null;\n }\n }\n}\n","export type errorCode = {\n code: string;\n description: string;\n};\n\nexport type errorPayload = {\n error: string;\n error_description: string;\n timestamp: number;\n //trace_id: \"255d1aef-8c98-452f-ac51-23d051240864\", //@@\n //correlation_id: \"fb3d2015-bc17-4bb9-bb85-30c5cf1aaaa7\", //@@\n details?: unknown;\n};\n\nexport function GetErrorPayload(\n errorCode: errorCode,\n details: unknown = null\n): errorPayload {\n return {\n error: errorCode.code,\n error_description: errorCode.description,\n timestamp: Date.now(),\n //trace_id: \"255d1aef-8c98-452f-ac51-23d051240864\", //@@\n //correlation_id: \"fb3d2015-bc17-4bb9-bb85-30c5cf1aaaa7\", //@@\n details: details,\n };\n}\n","import { errorCode, errorPayload } from \"./errorhandling.js\";\n\n// Ref: https://datatracker.ietf.org/doc/html/rfc6749#appendix-A\nexport enum OAuth2ParameterType {\n AUDIENCE = \"AUDIENCE\", // STS Extension\n CLIENT_ID = \"client_id\",\n CLIENT_SECRET = \"client_secret\",\n RESPONSE_TYPE = \"response_type\",\n SCOPE = \"scope\",\n STATE = \"state\",\n REDIRECT_URI = \"redirect_uri\",\n ERROR = \"error\",\n ERROR_DESCRIPTION = \"error_description\",\n ERROR_CODES = \"error_codes\", // STS Extension\n ERROR_URI = \"error_uri\",\n GRANT_TYPE = \"grant_type\",\n CODE = \"code\",\n ACCESS_TOKEN = \"access_token\",\n TOKEN_TYPE = \"token_type\",\n EXPIRES_IN = \"expires_in\",\n USERNAME = \"username\",\n PASSWORD = \"password\",\n REFRESH_TOKEN = \"refresh_token\",\n RESPONSE_MODE = \"response_mode\", // STS Extension\n TIMESTAMP = \"timestamp\", // STS Extension\n TRACE_ID = \"trace_id\", // STS Extension\n CORRELATION_ID = \"correlation_id\", // STS Extension\n}\n\n// Auth0 claim usage;\n// aud - api identifier\n// scope - list (space separated) of api permissions\n\n// Claims (Auth0)\n// https://auth0.com/docs/secure/tokens/json-web-tokens/json-web-token-claims\n\n// Reserved claims (IANA)\n// https://www.iana.org/assignments/jwt/jwt.xhtml#claims\n\n// Example scopes and claims (Auth0)\n// https://auth0.com/docs/get-started/apis/scopes/sample-use-cases-scopes-and-claims\n\n// OIDC Claims and Scopes\n// https://openid.net/specs/openid-connect-core-1_0.html#Claims\n// https://developer.okta.com/blog/2017/07/25/oidc-primer-part-1#:~:text=Simply%20put%2C%20claims%20are%20name,information%20asserted%20about%20an%20Entity.%E2%80%9D\n\n// OIDC Standard Claims\n// https://openid.net/specs/openid-connect-core-1_0.html#Claims\n// https://developer.okta.com/blog/2017/07/25/oidc-primer-part-1#:~:text=Simply%20put%2C%20claims%20are%20name,information%20asserted%20about%20an%20Entity.%E2%80%9D\nexport enum OIDCStandardClaim {\n SUB = \"sub\",\n NAME = \"name\",\n GIVEN_NAME = \"given_name\",\n FAMILY_NAME = \"family_name\",\n MIDDLE_NAME = \"middle_name\",\n NICKNAME = \"nickname\",\n PREFERRED_USERNAME = \"preferred_username\",\n PROFILE = \"profile\",\n PICTURE = \"picture\",\n WEBSITE = \"website\",\n EMAIL = \"email\",\n EMAIL_VERIFIED = \"email_verified\",\n GENDER = \"gender\",\n BIRTHDATE = \"birthdate\",\n ZONEINFO = \"zoneinfo\",\n LOCALE = \"locale\",\n PHONE_NUMBER = \"phone_number\",\n PHONE_NUMBER_VERIFIED = \"phone_number_verified\",\n ADDRESS = \"address\",\n CLIENT_SECRET = \"client_secret\",\n NONCE = \"nonce\", // STS Extension\n}\n\nexport enum OIDCAddressClaim {\n FORMATTED = \"formatted\",\n STREET_ADDRESS = \"street_address\",\n LOCALITY = \"locality\",\n REGION = \"region\",\n COUNTRY = \"country\",\n}\n\nexport class OAuth2ParameterErrorType {\n static readonly NOT_EQUAL: errorCode = {\n code: \"STS_OAUTH2_ERR_0001\",\n description: \"Parameter values not equal.\",\n };\n static readonly NOT_PRESENT: errorCode = {\n code: \"STS_OAUTH2_ERR_0002\",\n description: \"Parameter not provided.\",\n };\n static readonly INVALID_FORMAT: errorCode = {\n code: \"STS_OAUTH2_ERR_0003\",\n description: \"Parameter value format invalid.\",\n };\n static readonly EXPIRED: errorCode = {\n code: \"STS_OAUTH2_ERR_0004\",\n description: \"Parameter value expired.\",\n };\n}\n\nexport function compareParameterTypes(\n source1: string[],\n source2: string[],\n authParameterTypes: OAuth2ParameterType[]\n): errorPayload[] {\n const errors: errorPayload[] = [];\n for (let i = 0; i < authParameterTypes.length; i++) {\n const authParameterType = authParameterTypes[i];\n if (source1[i].localeCompare(source2[i]) !== 0) {\n const error: errorPayload = {\n error: OAuth2ParameterErrorType.NOT_EQUAL.code,\n error_description:\n OAuth2ParameterErrorType.NOT_EQUAL.description,\n timestamp: Date.now(),\n details: `${OAuth2ParameterErrorType.NOT_EQUAL.description}: Parameter: [${authParameterType}]`,\n };\n errors.push(error);\n }\n }\n return errors;\n}\n","/* eslint @typescript-eslint/no-explicit-any: 0 */ // --> OFF\n\n// di.ts\n\n/* For nodejs startup;\n\nimport {\n SetInjectionContextStore,\n} from \"@nsshunt/stsutils\";\n\nimport {\n NodeInjectionContextStore,\n} from \"@nsshunt/stsutils/node\";\n\nSetInjectionContextStore(\n new NodeInjectionContextStore()\n);\n\nFor browser - the default mode (SyncInjectionContextStore) is fine - nothing special to do\n\n*/\n\n// ============================================================\n// Constructor\n// ============================================================\n\nexport interface InjectionContextStore {\n run<T>(injector: Injector, fn: () => T): T;\n get(): Injector | undefined;\n}\n\nexport class SyncInjectionContextStore implements InjectionContextStore {\n private current?: Injector;\n\n run<T>(injector: Injector, fn: () => T): T {\n const previous = this.current;\n\n this.current = injector;\n\n try {\n return fn();\n } finally {\n this.current = previous;\n }\n }\n\n get(): Injector | undefined {\n return this.current;\n }\n}\n\nexport type Constructor<T = any> = (new (...args: any[]) => T) & {\n readonly name: string;\n};\n\n// ============================================================\n// Injection token\n// ============================================================\n\nexport class InjectionToken<T> {\n // This field makes T part of the structural type of InjectionToken<T>.\n //\n // It is never used at runtime.\n readonly #type!: T;\n\n constructor(public readonly description: string) {}\n\n toString(): string {\n return `InjectionToken(${this.description})`;\n }\n}\n\n// ============================================================\n// Token\n// ============================================================\n\nexport type Token<T> = Constructor<T> | InjectionToken<T>;\n\n// ============================================================\n// Providers\n// ============================================================\n\nexport type ClassProvider<T> = {\n provide: Token<T>;\n useClass: Constructor<T>;\n};\n\nexport type ValueProvider<T> = {\n provide: Token<T>;\n useValue: T;\n};\n\nexport type FactoryProvider<T> = {\n provide: Token<T>;\n useFactory: () => T;\n};\n\nexport type Provider<T = any> =\n | Constructor<T>\n | ClassProvider<T>\n | ValueProvider<T>\n | FactoryProvider<T>;\n\n// ============================================================\n// Current injection context\n// ============================================================\n\nlet contextStore: InjectionContextStore = new SyncInjectionContextStore();\n\nexport const SetInjectionContextStore = (\n store: InjectionContextStore\n): void => {\n contextStore = store;\n};\n\n// ============================================================\n// inject()\n// ============================================================\n\nexport const inject = <T>(token: Token<T>): T => {\n const injector = contextStore.get();\n\n if (!injector) {\n throw new Error(\"inject() called outside an injection context\");\n }\n\n return injector.get(token);\n};\n\nexport function getCurrentInjector(): Injector {\n const injector = contextStore.get();\n\n if (!injector) {\n throw new Error(\n \"getCurrentInjector() called outside an injection context\"\n );\n }\n\n return injector;\n}\n\n// ============================================================\n// Injector\n// ============================================================\n\nexport class Injector {\n private readonly providers = new Map<\n Token<any>,\n ClassProvider<any> | ValueProvider<any> | FactoryProvider<any>\n >();\n\n private readonly instances = new Map<Token<any>, any>();\n\n constructor(\n providers: Provider[] = [],\n private readonly parent?: Injector\n ) {\n for (const provider of providers) {\n this.register(provider);\n }\n }\n\n // --------------------------------------------------------\n // Create child injector\n // --------------------------------------------------------\n\n createChild(providers: Provider[] = []): Injector {\n return new Injector(providers, this);\n }\n\n // --------------------------------------------------------\n // Register provider\n // --------------------------------------------------------\n\n register(provider: Provider): void {\n // Nest/Angular-like shorthand:\n //\n // new Injector([\n // Logger,\n // UserService\n // ]);\n //\n // is equivalent to:\n //\n // new Injector([\n // {\n // provide: Logger,\n // useClass: Logger\n // },\n // {\n // provide: UserService,\n // useClass: UserService\n // }\n // ]);\n\n if (typeof provider === \"function\") {\n this.providers.set(provider, {\n provide: provider,\n useClass: provider,\n });\n\n return;\n }\n\n this.providers.set(provider.provide, provider);\n }\n\n // --------------------------------------------------------\n // Resolve token\n // --------------------------------------------------------\n\n get<T>(token: Token<T>): T {\n // Check whether THIS injector owns the provider.\n\n const provider = this.providers.get(token);\n\n if (provider) {\n // Providers are singletons within the injector\n // that owns them.\n\n if (this.instances.has(token)) {\n return this.instances.get(token) as T;\n }\n\n const instance = this.createProvider<T>(provider);\n\n this.instances.set(token, instance);\n\n return instance;\n }\n\n // Provider does not exist here.\n //\n // Search parent injector.\n\n if (this.parent) {\n return this.parent.get(token);\n }\n\n throw new Error(`No provider for ${this.tokenToString(token)}`);\n }\n\n // --------------------------------------------------------\n // Create provider\n // --------------------------------------------------------\n\n private createProvider<T>(\n provider: ClassProvider<any> | ValueProvider<any> | FactoryProvider<any>\n ): T {\n if (\"useValue\" in provider) {\n return provider.useValue as T;\n }\n\n if (\"useFactory\" in provider) {\n return this.runInContext(provider.useFactory) as T;\n }\n\n return this.construct(provider.useClass) as T;\n }\n\n // --------------------------------------------------------\n // Construct class\n // --------------------------------------------------------\n\n private construct<T>(type: Constructor<T>): T {\n return this.runInContext(() => new type());\n }\n\n // --------------------------------------------------------\n // Establish injection context\n // --------------------------------------------------------\n\n runInContext<T>(fn: () => T): T {\n return contextStore.run(this, fn);\n }\n\n // --------------------------------------------------------\n // Token name for diagnostics\n // --------------------------------------------------------\n\n private tokenToString(token: Token<any>): string {\n if (token instanceof InjectionToken) {\n return token.toString();\n }\n\n return token.name;\n }\n\n // --------------------------------------------------------\n // Bootstrap\n // --------------------------------------------------------\n\n bootstrap<T>(token: Constructor<T>): T {\n return this.runInContext(() => this.get(token));\n }\n}\n","export * from \"./commonTypes.js\";\nexport * from \"./dataAccessTypes.js\";\nexport * from \"./sleep.js\";\nexport * from \"./stsAxiosConfig.js\";\nexport * from \"./agentManager.js\";\nexport * from \"./errorhandling.js\";\nexport * from \"./oauth2terms.js\";\nexport * from \"./di.js\";\n\nexport const isNode =\n typeof process !== \"undefined\" &&\n typeof process.release !== \"undefined\" &&\n process.release.name === \"node\";\n"],"x_google_ignoreList":[0,1,2,3],"mappings":"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"}
package/dist/index.mjs CHANGED
@@ -748,6 +748,21 @@ function compareParameterTypes(source1, source2, authParameterTypes) {
748
748
  }
749
749
  //#endregion
750
750
  //#region src/di.ts
751
+ var SyncInjectionContextStore = class {
752
+ current;
753
+ run(injector, fn) {
754
+ const previous = this.current;
755
+ this.current = injector;
756
+ try {
757
+ return fn();
758
+ } finally {
759
+ this.current = previous;
760
+ }
761
+ }
762
+ get() {
763
+ return this.current;
764
+ }
765
+ };
751
766
  var InjectionToken = class {
752
767
  description;
753
768
  #type;
@@ -758,14 +773,19 @@ var InjectionToken = class {
758
773
  return `InjectionToken(${this.description})`;
759
774
  }
760
775
  };
761
- var currentInjector;
762
- function inject(token) {
763
- if (!currentInjector) throw new Error("inject() called outside an injection context");
764
- return currentInjector.get(token);
765
- }
776
+ var contextStore = new SyncInjectionContextStore();
777
+ var SetInjectionContextStore = (store) => {
778
+ contextStore = store;
779
+ };
780
+ var inject = (token) => {
781
+ const injector = contextStore.get();
782
+ if (!injector) throw new Error("inject() called outside an injection context");
783
+ return injector.get(token);
784
+ };
766
785
  function getCurrentInjector() {
767
- if (!currentInjector) throw new Error("getCurrentInjector() called outside an injection context");
768
- return currentInjector;
786
+ const injector = contextStore.get();
787
+ if (!injector) throw new Error("getCurrentInjector() called outside an injection context");
788
+ return injector;
769
789
  }
770
790
  var Injector = class Injector {
771
791
  parent;
@@ -808,26 +828,20 @@ var Injector = class Injector {
808
828
  return this.runInContext(() => new type());
809
829
  }
810
830
  runInContext(fn) {
811
- const previous = currentInjector;
812
- try {
813
- currentInjector = this;
814
- return fn();
815
- } finally {
816
- currentInjector = previous;
817
- }
831
+ return contextStore.run(this, fn);
818
832
  }
819
833
  tokenToString(token) {
820
834
  if (token instanceof InjectionToken) return token.toString();
821
835
  return token.name;
822
836
  }
823
837
  bootstrap(token) {
824
- return this.get(token);
838
+ return this.runInContext(() => this.get(token));
825
839
  }
826
840
  };
827
841
  //#endregion
828
842
  //#region src/index.ts
829
843
  var isNode = typeof process !== "undefined" && typeof process.release !== "undefined" && process.release.name === "node";
830
844
  //#endregion
831
- export { CheckValidChar, GetErrorPayload, InjectionToken, Injector, ModelDelimeter, OAuth2ParameterErrorType, OAuth2ParameterType, OIDCAddressClaim, OIDCStandardClaim, STSAxiosConfig, Sleep, compareParameterTypes, createAgentManager, defaultLogger, edbaction, emptyLogger, getCurrentInjector, inject, isNode };
845
+ export { CheckValidChar, GetErrorPayload, InjectionToken, Injector, ModelDelimeter, OAuth2ParameterErrorType, OAuth2ParameterType, OIDCAddressClaim, OIDCStandardClaim, STSAxiosConfig, SetInjectionContextStore, Sleep, SyncInjectionContextStore, compareParameterTypes, createAgentManager, defaultLogger, edbaction, emptyLogger, getCurrentInjector, inject, isNode };
832
846
 
833
847
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":["styles"],"sources":["../node_modules/chalk/source/vendor/ansi-styles/index.js","../node_modules/chalk/source/vendor/supports-color/browser.js","../node_modules/chalk/source/utilities.js","../node_modules/chalk/source/index.js","../src/commonTypes.ts","../src/dataAccessTypes.ts","../src/sleep.ts","../src/stsAxiosConfig.ts","../src/agentManager.ts","../src/errorhandling.ts","../src/oauth2terms.ts","../src/di.ts","../src/index.ts"],"sourcesContent":["const ANSI_BACKGROUND_OFFSET = 10;\n\nconst wrapAnsi16 = (offset = 0) => code => `\\u001B[${code + offset}m`;\n\nconst wrapAnsi256 = (offset = 0) => code => `\\u001B[${38 + offset};5;${code}m`;\n\nconst wrapAnsi16m = (offset = 0) => (red, green, blue) => `\\u001B[${38 + offset};2;${red};${green};${blue}m`;\n\nconst styles = {\n\tmodifier: {\n\t\treset: [0, 0],\n\t\t// 21 isn't widely supported and 22 does the same thing\n\t\tbold: [1, 22],\n\t\tdim: [2, 22],\n\t\titalic: [3, 23],\n\t\tunderline: [4, 24],\n\t\toverline: [53, 55],\n\t\tinverse: [7, 27],\n\t\thidden: [8, 28],\n\t\tstrikethrough: [9, 29],\n\t},\n\tcolor: {\n\t\tblack: [30, 39],\n\t\tred: [31, 39],\n\t\tgreen: [32, 39],\n\t\tyellow: [33, 39],\n\t\tblue: [34, 39],\n\t\tmagenta: [35, 39],\n\t\tcyan: [36, 39],\n\t\twhite: [37, 39],\n\n\t\t// Bright color\n\t\tblackBright: [90, 39],\n\t\tgray: [90, 39], // Alias of `blackBright`\n\t\tgrey: [90, 39], // Alias of `blackBright`\n\t\tredBright: [91, 39],\n\t\tgreenBright: [92, 39],\n\t\tyellowBright: [93, 39],\n\t\tblueBright: [94, 39],\n\t\tmagentaBright: [95, 39],\n\t\tcyanBright: [96, 39],\n\t\twhiteBright: [97, 39],\n\t},\n\tbgColor: {\n\t\tbgBlack: [40, 49],\n\t\tbgRed: [41, 49],\n\t\tbgGreen: [42, 49],\n\t\tbgYellow: [43, 49],\n\t\tbgBlue: [44, 49],\n\t\tbgMagenta: [45, 49],\n\t\tbgCyan: [46, 49],\n\t\tbgWhite: [47, 49],\n\n\t\t// Bright color\n\t\tbgBlackBright: [100, 49],\n\t\tbgGray: [100, 49], // Alias of `bgBlackBright`\n\t\tbgGrey: [100, 49], // Alias of `bgBlackBright`\n\t\tbgRedBright: [101, 49],\n\t\tbgGreenBright: [102, 49],\n\t\tbgYellowBright: [103, 49],\n\t\tbgBlueBright: [104, 49],\n\t\tbgMagentaBright: [105, 49],\n\t\tbgCyanBright: [106, 49],\n\t\tbgWhiteBright: [107, 49],\n\t},\n};\n\nexport const modifierNames = Object.keys(styles.modifier);\nexport const foregroundColorNames = Object.keys(styles.color);\nexport const backgroundColorNames = Object.keys(styles.bgColor);\nexport const colorNames = [...foregroundColorNames, ...backgroundColorNames];\n\nfunction assembleStyles() {\n\tconst codes = new Map();\n\n\tfor (const [groupName, group] of Object.entries(styles)) {\n\t\tfor (const [styleName, style] of Object.entries(group)) {\n\t\t\tstyles[styleName] = {\n\t\t\t\topen: `\\u001B[${style[0]}m`,\n\t\t\t\tclose: `\\u001B[${style[1]}m`,\n\t\t\t};\n\n\t\t\tgroup[styleName] = styles[styleName];\n\n\t\t\tcodes.set(style[0], style[1]);\n\t\t}\n\n\t\tObject.defineProperty(styles, groupName, {\n\t\t\tvalue: group,\n\t\t\tenumerable: false,\n\t\t});\n\t}\n\n\tObject.defineProperty(styles, 'codes', {\n\t\tvalue: codes,\n\t\tenumerable: false,\n\t});\n\n\tstyles.color.close = '\\u001B[39m';\n\tstyles.bgColor.close = '\\u001B[49m';\n\n\tstyles.color.ansi = wrapAnsi16();\n\tstyles.color.ansi256 = wrapAnsi256();\n\tstyles.color.ansi16m = wrapAnsi16m();\n\tstyles.bgColor.ansi = wrapAnsi16(ANSI_BACKGROUND_OFFSET);\n\tstyles.bgColor.ansi256 = wrapAnsi256(ANSI_BACKGROUND_OFFSET);\n\tstyles.bgColor.ansi16m = wrapAnsi16m(ANSI_BACKGROUND_OFFSET);\n\n\t// From https://github.com/Qix-/color-convert/blob/3f0e0d4e92e235796ccb17f6e85c72094a651f49/conversions.js\n\tObject.defineProperties(styles, {\n\t\trgbToAnsi256: {\n\t\t\tvalue(red, green, blue) {\n\t\t\t\t// We use the extended greyscale palette here, with the exception of\n\t\t\t\t// black and white. normal palette only has 4 greyscale shades.\n\t\t\t\tif (red === green && green === blue) {\n\t\t\t\t\tif (red < 8) {\n\t\t\t\t\t\treturn 16;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (red > 248) {\n\t\t\t\t\t\treturn 231;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn Math.round(((red - 8) / 247) * 24) + 232;\n\t\t\t\t}\n\n\t\t\t\treturn 16\n\t\t\t\t\t+ (36 * Math.round(red / 255 * 5))\n\t\t\t\t\t+ (6 * Math.round(green / 255 * 5))\n\t\t\t\t\t+ Math.round(blue / 255 * 5);\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToRgb: {\n\t\t\tvalue(hex) {\n\t\t\t\tconst matches = /[a-f\\d]{6}|[a-f\\d]{3}/i.exec(hex.toString(16));\n\t\t\t\tif (!matches) {\n\t\t\t\t\treturn [0, 0, 0];\n\t\t\t\t}\n\n\t\t\t\tlet [colorString] = matches;\n\n\t\t\t\tif (colorString.length === 3) {\n\t\t\t\t\tcolorString = [...colorString].map(character => character + character).join('');\n\t\t\t\t}\n\n\t\t\t\tconst integer = Number.parseInt(colorString, 16);\n\n\t\t\t\treturn [\n\t\t\t\t\t/* eslint-disable no-bitwise */\n\t\t\t\t\t(integer >> 16) & 0xFF,\n\t\t\t\t\t(integer >> 8) & 0xFF,\n\t\t\t\t\tinteger & 0xFF,\n\t\t\t\t\t/* eslint-enable no-bitwise */\n\t\t\t\t];\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToAnsi256: {\n\t\t\tvalue: hex => styles.rgbToAnsi256(...styles.hexToRgb(hex)),\n\t\t\tenumerable: false,\n\t\t},\n\t\tansi256ToAnsi: {\n\t\t\tvalue(code) {\n\t\t\t\tif (code < 8) {\n\t\t\t\t\treturn 30 + code;\n\t\t\t\t}\n\n\t\t\t\tif (code < 16) {\n\t\t\t\t\treturn 90 + (code - 8);\n\t\t\t\t}\n\n\t\t\t\tlet red;\n\t\t\t\tlet green;\n\t\t\t\tlet blue;\n\n\t\t\t\tif (code >= 232) {\n\t\t\t\t\tred = (((code - 232) * 10) + 8) / 255;\n\t\t\t\t\tgreen = red;\n\t\t\t\t\tblue = red;\n\t\t\t\t} else {\n\t\t\t\t\tcode -= 16;\n\n\t\t\t\t\tconst remainder = code % 36;\n\n\t\t\t\t\tred = Math.floor(code / 36) / 5;\n\t\t\t\t\tgreen = Math.floor(remainder / 6) / 5;\n\t\t\t\t\tblue = (remainder % 6) / 5;\n\t\t\t\t}\n\n\t\t\t\tconst value = Math.max(red, green, blue) * 2;\n\n\t\t\t\tif (value === 0) {\n\t\t\t\t\treturn 30;\n\t\t\t\t}\n\n\t\t\t\t// eslint-disable-next-line no-bitwise\n\t\t\t\tlet result = 30 + ((Math.round(blue) << 2) | (Math.round(green) << 1) | Math.round(red));\n\n\t\t\t\tif (value === 2) {\n\t\t\t\t\tresult += 60;\n\t\t\t\t}\n\n\t\t\t\treturn result;\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\trgbToAnsi: {\n\t\t\tvalue: (red, green, blue) => styles.ansi256ToAnsi(styles.rgbToAnsi256(red, green, blue)),\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToAnsi: {\n\t\t\tvalue: hex => styles.ansi256ToAnsi(styles.hexToAnsi256(hex)),\n\t\t\tenumerable: false,\n\t\t},\n\t});\n\n\treturn styles;\n}\n\nconst ansiStyles = assembleStyles();\n\nexport default ansiStyles;\n","/* eslint-env browser */\n\nconst level = (() => {\n\tif (!('navigator' in globalThis)) {\n\t\treturn 0;\n\t}\n\n\tif (globalThis.navigator.userAgentData) {\n\t\tconst brand = navigator.userAgentData.brands.find(({brand}) => brand === 'Chromium');\n\t\tif (brand && brand.version > 93) {\n\t\t\treturn 3;\n\t\t}\n\t}\n\n\tif (/\\b(Chrome|Chromium)\\//.test(globalThis.navigator.userAgent)) {\n\t\treturn 1;\n\t}\n\n\treturn 0;\n})();\n\nconst colorSupport = level !== 0 && {\n\tlevel,\n\thasBasic: true,\n\thas256: level >= 2,\n\thas16m: level >= 3,\n};\n\nconst supportsColor = {\n\tstdout: colorSupport,\n\tstderr: colorSupport,\n};\n\nexport default supportsColor;\n","// TODO: When targeting Node.js 16, use `String.prototype.replaceAll`.\nexport function stringReplaceAll(string, substring, replacer) {\n\tlet index = string.indexOf(substring);\n\tif (index === -1) {\n\t\treturn string;\n\t}\n\n\tconst substringLength = substring.length;\n\tlet endIndex = 0;\n\tlet returnValue = '';\n\tdo {\n\t\treturnValue += string.slice(endIndex, index) + substring + replacer;\n\t\tendIndex = index + substringLength;\n\t\tindex = string.indexOf(substring, endIndex);\n\t} while (index !== -1);\n\n\treturnValue += string.slice(endIndex);\n\treturn returnValue;\n}\n\nexport function stringEncaseCRLFWithFirstIndex(string, prefix, postfix, index) {\n\tlet endIndex = 0;\n\tlet returnValue = '';\n\tdo {\n\t\tconst gotCR = string[index - 1] === '\\r';\n\t\treturnValue += string.slice(endIndex, (gotCR ? index - 1 : index)) + prefix + (gotCR ? '\\r\\n' : '\\n') + postfix;\n\t\tendIndex = index + 1;\n\t\tindex = string.indexOf('\\n', endIndex);\n\t} while (index !== -1);\n\n\treturnValue += string.slice(endIndex);\n\treturn returnValue;\n}\n","import ansiStyles from '#ansi-styles';\nimport supportsColor from '#supports-color';\nimport { // eslint-disable-line import/order\n\tstringReplaceAll,\n\tstringEncaseCRLFWithFirstIndex,\n} from './utilities.js';\n\nconst {stdout: stdoutColor, stderr: stderrColor} = supportsColor;\n\nconst GENERATOR = Symbol('GENERATOR');\nconst STYLER = Symbol('STYLER');\nconst IS_EMPTY = Symbol('IS_EMPTY');\n\n// `supportsColor.level` → `ansiStyles.color[name]` mapping\nconst levelMapping = [\n\t'ansi',\n\t'ansi',\n\t'ansi256',\n\t'ansi16m',\n];\n\nconst styles = Object.create(null);\n\nconst applyOptions = (object, options = {}) => {\n\tif (options.level && !(Number.isInteger(options.level) && options.level >= 0 && options.level <= 3)) {\n\t\tthrow new Error('The `level` option should be an integer from 0 to 3');\n\t}\n\n\t// Detect level if not set manually\n\tconst colorLevel = stdoutColor ? stdoutColor.level : 0;\n\tobject.level = options.level === undefined ? colorLevel : options.level;\n};\n\nexport class Chalk {\n\tconstructor(options) {\n\t\t// eslint-disable-next-line no-constructor-return\n\t\treturn chalkFactory(options);\n\t}\n}\n\nconst chalkFactory = options => {\n\tconst chalk = (...strings) => strings.join(' ');\n\tapplyOptions(chalk, options);\n\n\tObject.setPrototypeOf(chalk, createChalk.prototype);\n\n\treturn chalk;\n};\n\nfunction createChalk(options) {\n\treturn chalkFactory(options);\n}\n\nObject.setPrototypeOf(createChalk.prototype, Function.prototype);\n\nfor (const [styleName, style] of Object.entries(ansiStyles)) {\n\tstyles[styleName] = {\n\t\tget() {\n\t\t\tconst builder = createBuilder(this, createStyler(style.open, style.close, this[STYLER]), this[IS_EMPTY]);\n\t\t\tObject.defineProperty(this, styleName, {value: builder});\n\t\t\treturn builder;\n\t\t},\n\t};\n}\n\nstyles.visible = {\n\tget() {\n\t\tconst builder = createBuilder(this, this[STYLER], true);\n\t\tObject.defineProperty(this, 'visible', {value: builder});\n\t\treturn builder;\n\t},\n};\n\nconst getModelAnsi = (model, level, type, ...arguments_) => {\n\tif (model === 'rgb') {\n\t\tif (level === 'ansi16m') {\n\t\t\treturn ansiStyles[type].ansi16m(...arguments_);\n\t\t}\n\n\t\tif (level === 'ansi256') {\n\t\t\treturn ansiStyles[type].ansi256(ansiStyles.rgbToAnsi256(...arguments_));\n\t\t}\n\n\t\treturn ansiStyles[type].ansi(ansiStyles.rgbToAnsi(...arguments_));\n\t}\n\n\tif (model === 'hex') {\n\t\treturn getModelAnsi('rgb', level, type, ...ansiStyles.hexToRgb(...arguments_));\n\t}\n\n\treturn ansiStyles[type][model](...arguments_);\n};\n\nconst usedModels = ['rgb', 'hex', 'ansi256'];\n\nfor (const model of usedModels) {\n\tstyles[model] = {\n\t\tget() {\n\t\t\tconst {level} = this;\n\t\t\treturn function (...arguments_) {\n\t\t\t\tconst styler = createStyler(getModelAnsi(model, levelMapping[level], 'color', ...arguments_), ansiStyles.color.close, this[STYLER]);\n\t\t\t\treturn createBuilder(this, styler, this[IS_EMPTY]);\n\t\t\t};\n\t\t},\n\t};\n\n\tconst bgModel = 'bg' + model[0].toUpperCase() + model.slice(1);\n\tstyles[bgModel] = {\n\t\tget() {\n\t\t\tconst {level} = this;\n\t\t\treturn function (...arguments_) {\n\t\t\t\tconst styler = createStyler(getModelAnsi(model, levelMapping[level], 'bgColor', ...arguments_), ansiStyles.bgColor.close, this[STYLER]);\n\t\t\t\treturn createBuilder(this, styler, this[IS_EMPTY]);\n\t\t\t};\n\t\t},\n\t};\n}\n\nconst proto = Object.defineProperties(() => {}, {\n\t...styles,\n\tlevel: {\n\t\tenumerable: true,\n\t\tget() {\n\t\t\treturn this[GENERATOR].level;\n\t\t},\n\t\tset(level) {\n\t\t\tthis[GENERATOR].level = level;\n\t\t},\n\t},\n});\n\nconst createStyler = (open, close, parent) => {\n\tlet openAll;\n\tlet closeAll;\n\tif (parent === undefined) {\n\t\topenAll = open;\n\t\tcloseAll = close;\n\t} else {\n\t\topenAll = parent.openAll + open;\n\t\tcloseAll = close + parent.closeAll;\n\t}\n\n\treturn {\n\t\topen,\n\t\tclose,\n\t\topenAll,\n\t\tcloseAll,\n\t\tparent,\n\t};\n};\n\nconst createBuilder = (self, _styler, _isEmpty) => {\n\t// Single argument is hot path, implicit coercion is faster than anything\n\t// eslint-disable-next-line no-implicit-coercion\n\tconst builder = (...arguments_) => applyStyle(builder, (arguments_.length === 1) ? ('' + arguments_[0]) : arguments_.join(' '));\n\n\t// We alter the prototype because we must return a function, but there is\n\t// no way to create a function with a different prototype\n\tObject.setPrototypeOf(builder, proto);\n\n\tbuilder[GENERATOR] = self;\n\tbuilder[STYLER] = _styler;\n\tbuilder[IS_EMPTY] = _isEmpty;\n\n\treturn builder;\n};\n\nconst applyStyle = (self, string) => {\n\tif (self.level <= 0 || !string) {\n\t\treturn self[IS_EMPTY] ? '' : string;\n\t}\n\n\tlet styler = self[STYLER];\n\n\tif (styler === undefined) {\n\t\treturn string;\n\t}\n\n\tconst {openAll, closeAll} = styler;\n\tif (string.includes('\\u001B')) {\n\t\twhile (styler !== undefined) {\n\t\t\t// Replace any instances already present with a re-opening code\n\t\t\t// otherwise only the part of the string until said closing code\n\t\t\t// will be colored, and the rest will simply be 'plain'.\n\t\t\tstring = stringReplaceAll(string, styler.close, styler.open);\n\n\t\t\tstyler = styler.parent;\n\t\t}\n\t}\n\n\t// We can move both next actions out of loop, because remaining actions in loop won't have\n\t// any/visible effect on parts we add here. Close the styling before a linebreak and reopen\n\t// after next line to fix a bleed issue on macOS: https://github.com/chalk/chalk/pull/92\n\tconst lfIndex = string.indexOf('\\n');\n\tif (lfIndex !== -1) {\n\t\tstring = stringEncaseCRLFWithFirstIndex(string, closeAll, openAll, lfIndex);\n\t}\n\n\treturn openAll + string + closeAll;\n};\n\nObject.defineProperties(createChalk.prototype, styles);\n\nconst chalk = createChalk();\nexport const chalkStderr = createChalk({level: stderrColor ? stderrColor.level : 0});\n\nexport {\n\tmodifierNames,\n\tforegroundColorNames,\n\tbackgroundColorNames,\n\tcolorNames,\n\n\t// TODO: Remove these aliases in the next major version\n\tmodifierNames as modifiers,\n\tforegroundColorNames as foregroundColors,\n\tbackgroundColorNames as backgroundColors,\n\tcolorNames as colors,\n} from './vendor/ansi-styles/index.js';\n\nexport {\n\tstdoutColor as supportsColor,\n\tstderrColor as supportsColorStderr,\n};\n\nexport default chalk;\n","/* eslint @typescript-eslint/no-explicit-any: 0 */ // --> OFF\n/* eslint @typescript-eslint/no-unused-vars: 0 */ // --> OFF\nimport chalk from \"chalk\";\n\nexport interface JSONObject {\n [x: string]: any | JSONObject | undefined;\n}\n\nexport enum ModelDelimeter {\n ROOT = \"_\",\n SEPERATOR = \"|\",\n COMPONENT_SEPERATOR = \"@\",\n NID_SEPERATOR = \"^\", // This seperator splits the static and dynamic part of a context string (nid). Used for creating payload header for size optimisation.\n}\n\nexport const CheckValidChar = (checkParams: string[][]): void => {\n const invalidChars = [\n ModelDelimeter.ROOT,\n ModelDelimeter.SEPERATOR,\n ModelDelimeter.COMPONENT_SEPERATOR,\n ModelDelimeter.NID_SEPERATOR,\n ];\n\n checkParams.forEach((param) => {\n invalidChars.forEach((char) => {\n if (param[1].includes(char)) {\n throw new Error(\n `Invalid character inside [${param[0]}:${param[1]}], no [${char}] allowed`\n );\n }\n });\n });\n};\n\n// npm logging levels are prioritized from 0 to 6 (highest to lowest). This from Winston logger.\nexport interface ISTSLogger {\n error(message: any): void;\n warn(message: any): void;\n info(message: any): void;\n http(message: any): void;\n verbose(message: any): void;\n debug(message: any): void;\n silly(message: any): void;\n}\n\nexport const defaultLogger: ISTSLogger = {\n debug(message) {\n console.debug(chalk.grey(`debug: ${message}`));\n },\n error(message) {\n console.error(chalk.red(`error: ${message}`));\n },\n http(message) {\n console.log(chalk.cyan(`http: ${message}`));\n },\n info(message) {\n console.info(chalk.white(`info: ${message}`));\n },\n silly(message) {\n console.log(chalk.yellow(`silly: ${message}`));\n },\n verbose(message) {\n console.log(chalk.green(`verbose: ${message}`));\n },\n warn(message) {\n console.warn(chalk.magenta(`warn: ${message}`));\n },\n};\n\nexport const emptyLogger: ISTSLogger = {\n debug(message) {},\n error(message) {},\n http(message) {},\n info(message) {},\n silly(message) {},\n verbose(message) {},\n warn(message) {},\n};\n","import { StatusCodes } from \"http-status-codes\";\n\nimport { JSONObject } from \"./commonTypes.js\";\n\n//@@ These should be moved into the stsrest01client\nexport enum edbaction {\n created = 1,\n updated = 2,\n deleted = 3,\n}\n\nexport interface IDBResource<T> {\n oid: string;\n resname: string;\n resdesc: T;\n vnum: string;\n validfrom: string;\n validto: string | null;\n dbaction: edbaction;\n dbactionuser: string;\n}\n\nexport interface IDBEntity<T> {\n oid: string;\n resourceoid: string;\n entname: string;\n entvalue: T;\n vnum: string;\n validfrom: string;\n validto: string | null;\n dbaction: edbaction;\n dbactionuser: string;\n}\n\nexport interface IDBFilters {\n resname?: string;\n entname?: string;\n resvnum?: string;\n entvnum?: string;\n filter?: string;\n incdel?: string;\n startdate?: string;\n enddate?: string;\n resenddate?: string;\n dbaction?: string;\n dbactionuser?: string;\n limit?: string;\n}\n\nexport interface IAccessLayerErrorDetail {\n status: StatusCodes;\n error: Error;\n errorMessage: string;\n operation: string;\n}\n\nexport interface IDBOptions {\n filters?: IDBFilters;\n useCache?: boolean;\n useMultipleDatabases?: boolean;\n limit?: number;\n errorOnBatchUpdate?: boolean;\n}\n\nexport interface IDBReturnData<T> {\n status: StatusCodes;\n operation: string;\n detail:\n | IDBReturnData<T>[]\n | IDBResource<T>[]\n | IDBResource<T>\n | IDBEntity<T>[]\n | IDBEntity<T>\n | T\n | null;\n options: IDBOptions;\n error?: IAccessLayerErrorDetail;\n}\n\nexport interface IDBSearchOptions {\n queryFunctionName: string;\n searchParameters: JSONObject;\n returnsResourceList: boolean;\n}\n","export async function Sleep(milliseconds = 1000): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, milliseconds));\n}\n","import { JSONObject } from \"./commonTypes.js\";\nimport { IAgentManager } from \"./agentManager.js\";\n\nexport class STSAxiosConfig {\n #url: string;\n #method: string;\n #headers?: JSONObject;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n #data?: any;\n #agentManager?: IAgentManager;\n #timeout?: number;\n #withCredentials?: boolean;\n\n constructor(\n url: string,\n method: string,\n headers?: JSONObject,\n timeout?: number\n ) {\n this.#url = url;\n this.#method = method;\n if (headers !== undefined) {\n this.#headers = headers;\n }\n if (timeout !== undefined) {\n this.#timeout = timeout;\n }\n }\n\n /**\n *\n * @param cookies this.#headers['Cookie'] = cookies.join('; ')\n * @returns\n */\n withCookies(cookies: string[]) {\n if (!this.#headers) {\n this.#headers = {};\n }\n this.#headers[\"Cookie\"] = cookies.join(\"; \");\n return this;\n }\n\n /**\n *\n * @param data Add data to the body\n * @returns\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n withData(data: any) {\n this.#data = data;\n return this;\n }\n\n // 'Content-Type': 'application/json'\n\n /**\n *\n * @param accesssToken\n * @param stsUserId\n * @returns this.#headers['Authorization'] = 'Bearer ' + accesssToken; and this.#headers['x-sts_user_id'] = stsUserId;\n */\n withAuthHeaders(accesssToken: string, stsUserId?: string) {\n if (!this.#headers) {\n this.#headers = {};\n }\n this.#headers[\"Authorization\"] = \"Bearer \" + accesssToken;\n if (stsUserId) {\n this.#headers[\"x-sts_user_id\"] = stsUserId;\n }\n return this;\n }\n\n /**\n *\n * @param headers Add headers to the existing header\n * @returns\n */\n withHeaders(headers: JSONObject) {\n this.#headers = {\n ...(this.#headers ?? {}),\n ...headers,\n };\n return this;\n }\n\n /**\n *\n * @returns this.#headers['Content-Type'] = 'application/fhir+json';\n */\n withApplicationFhirAndJsonContentTypeHeaders() {\n if (!this.#headers) {\n this.#headers = {};\n }\n this.#headers[\"Content-Type\"] = \"application/fhir+json\";\n return this;\n }\n\n /**\n *\n * @returns this.#headers['Content-Type'] = 'application/merge-patch+json';\n */\n withApplicationMergePatchAndJsonContentTypeHeaders() {\n if (!this.#headers) {\n this.#headers = {};\n }\n this.#headers[\"Content-Type\"] = \"application/merge-patch+json\";\n return this;\n }\n\n /**\n *\n * @returns this.#headers['Content-Type'] = 'application/json-patch+json';\n */\n withApplicationJsonPatchAndJsonContentTypeHeaders() {\n if (!this.#headers) {\n this.#headers = {};\n }\n this.#headers[\"Content-Type\"] = \"application/json-patch+json\";\n return this;\n }\n\n /**\n *\n * @returns this.#headers['Content-Type'] = 'application/json';\n */\n withApplicationJsonContentTypeHeaders() {\n if (!this.#headers) {\n this.#headers = {};\n }\n this.#headers[\"Content-Type\"] = \"application/json\";\n return this;\n }\n\n /**\n *\n * @returns this.#headers['Content-Type'] = 'application/json';\n */\n withDefaultHeaders() {\n if (!this.#headers) {\n this.#headers = {};\n }\n this.#headers[\"Content-Type\"] = \"application/json\";\n return this;\n }\n\n /**\n *\n * @returns\n */\n withCredentials() {\n this.#withCredentials = true;\n return this;\n }\n\n /**\n *\n * @param timeout Add a connection timeout\n * @returns\n */\n withTimeout(timeout: number) {\n this.#timeout = timeout;\n return this;\n }\n\n /**\n *\n * @param agentManager Add the agent manager for each rest call. Only for nodejs not browser.\n * @returns\n */\n withAgentManager(agentManager: IAgentManager) {\n this.#agentManager = agentManager;\n return this;\n }\n\n /**\n * @returns Returns axios config object\n */\n get config(): JSONObject {\n const retVal: JSONObject = {\n url: this.#url,\n method: this.#method,\n };\n if (this.#headers) {\n retVal.headers = this.#headers;\n }\n if (this.#agentManager !== undefined) {\n if (this.#agentManager.IsHttps(this.#url)) {\n retVal.httpsAgent = this.#agentManager.GetAgent(this.#url);\n } else {\n retVal.httpAgent = this.#agentManager.GetAgent(this.#url);\n }\n }\n if (this.#data !== undefined) {\n retVal.data = this.#data;\n }\n if (this.#timeout !== undefined) {\n retVal.timeout = this.#timeout;\n }\n if (\n this.#withCredentials !== undefined &&\n this.#withCredentials === true\n ) {\n retVal.withCredentials = true;\n }\n return retVal;\n }\n}\n","export interface IAgentOptions {\n keepAlive: boolean;\n maxSockets: number;\n maxTotalSockets: number;\n maxFreeSockets: number;\n timeout: number;\n rejectUnauthorized?: boolean;\n}\n\nexport interface IAgentManagerOptions {\n httpAgentFactory: (options: IAgentOptions) => unknown;\n httpsAgentFactory: (options: IAgentOptions) => unknown;\n agentOptions?: IAgentOptions;\n agentResetInterval?: number;\n agentResetCount?: number;\n}\n\nexport interface IAgentManager {\n get agentResetInterval(): number | undefined;\n get agentResetCount(): number | undefined;\n UpdateAgentResetInterval(val: number): void;\n UpdateAgentResetCount(val: number): void;\n IncRequestCount(): void;\n IsHttps(protocol: string): boolean;\n GetAgent(protocol: string): unknown;\n ResetAgent(): void;\n Terminate(): void;\n}\n\nexport function createAgentManager(\n agentManagerOptions: IAgentManagerOptions\n): IAgentManager {\n return new AgentManager(agentManagerOptions);\n}\n\nclass AgentManager implements IAgentManager {\n #options: IAgentManagerOptions;\n #agentResetInterval: NodeJS.Timeout | null = null;\n #requestCount: number = 0;\n #httpAgent: unknown = undefined;\n #httpsAgent: unknown = undefined;\n\n constructor(agentManagerOptions: IAgentManagerOptions) {\n this.#options = agentManagerOptions;\n if (this.#options.agentResetInterval) {\n this.#SetupResetInterval();\n }\n }\n\n get agentResetInterval(): number | undefined {\n return this.#options.agentResetInterval;\n }\n\n UpdateAgentResetInterval(val: number): void {\n if (this.#agentResetInterval) {\n clearTimeout(this.#agentResetInterval);\n }\n this.#options.agentResetInterval = val;\n this.#SetupResetInterval();\n }\n\n get agentResetCount(): number | undefined {\n return this.#options.agentResetCount;\n }\n\n UpdateAgentResetCount(val: number): void {\n this.#options.agentResetCount = val;\n }\n\n #SetupResetInterval = () => {\n if (\n this.#options.agentResetInterval &&\n this.#options.agentResetInterval > 0\n ) {\n this.#agentResetInterval = setTimeout(() => {\n this.ResetAgent();\n this.#SetupResetInterval();\n }, this.#options.agentResetInterval).unref();\n }\n };\n\n IncRequestCount(): void {\n this.#requestCount++;\n if (this.#options.agentResetCount) {\n if (this.#requestCount % this.#options.agentResetCount === 0) {\n this.ResetAgent();\n }\n }\n }\n\n IsHttps(protocol: string): boolean {\n if (protocol.toLowerCase().startsWith(\"https:\")) {\n return true;\n }\n return false;\n }\n\n #GetAgentOptions = (https: boolean): IAgentOptions => {\n let options: IAgentOptions;\n if (this.#options.agentOptions) {\n options = {\n keepAlive: this.#options.agentOptions.keepAlive,\n maxSockets: this.#options.agentOptions.maxSockets,\n maxTotalSockets: this.#options.agentOptions.maxTotalSockets,\n maxFreeSockets: this.#options.agentOptions.maxFreeSockets,\n timeout: this.#options.agentOptions.timeout,\n };\n if (https === true) {\n options.rejectUnauthorized =\n this.#options.agentOptions.rejectUnauthorized; // Allows self signed certs in non production mode(s)\n }\n } else {\n // Defaults\n options = {\n keepAlive: true,\n maxSockets: 10,\n maxTotalSockets: 20,\n maxFreeSockets: 256,\n timeout: 30000,\n rejectUnauthorized: false,\n };\n }\n return options;\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n GetAgent(protocol: string): any {\n if (protocol.toLowerCase().startsWith(\"https:\")) {\n if (!this.#httpsAgent) {\n //this.#httpsAgent = new https.Agent(this.#GetAgentOptions(true));\n this.#httpsAgent = this.#options.httpsAgentFactory(\n this.#GetAgentOptions(true)\n );\n }\n return this.#httpsAgent;\n } else if (protocol.toLowerCase().startsWith(\"http:\")) {\n if (!this.#httpAgent) {\n //this.#httpAgent = new http.Agent(this.#GetAgentOptions(false));\n this.#httpAgent = this.#options.httpAgentFactory(\n this.#GetAgentOptions(false)\n );\n }\n return this.#httpAgent;\n } else {\n return null;\n }\n }\n\n ResetAgent(): void {\n this.#httpAgent = null;\n this.#httpsAgent = null;\n }\n\n Terminate(): void {\n if (this.#agentResetInterval) {\n clearTimeout(this.#agentResetInterval);\n this.#agentResetInterval = null;\n }\n\n if (this.#httpAgent) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (this.#httpAgent as any).destroy();\n this.#httpAgent = null;\n }\n\n if (this.#httpsAgent) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (this.#httpsAgent as any).destroy();\n this.#httpsAgent = null;\n }\n }\n}\n","export type errorCode = {\n code: string;\n description: string;\n};\n\nexport type errorPayload = {\n error: string;\n error_description: string;\n timestamp: number;\n //trace_id: \"255d1aef-8c98-452f-ac51-23d051240864\", //@@\n //correlation_id: \"fb3d2015-bc17-4bb9-bb85-30c5cf1aaaa7\", //@@\n details?: unknown;\n};\n\nexport function GetErrorPayload(\n errorCode: errorCode,\n details: unknown = null\n): errorPayload {\n return {\n error: errorCode.code,\n error_description: errorCode.description,\n timestamp: Date.now(),\n //trace_id: \"255d1aef-8c98-452f-ac51-23d051240864\", //@@\n //correlation_id: \"fb3d2015-bc17-4bb9-bb85-30c5cf1aaaa7\", //@@\n details: details,\n };\n}\n","import { errorCode, errorPayload } from \"./errorhandling.js\";\n\n// Ref: https://datatracker.ietf.org/doc/html/rfc6749#appendix-A\nexport enum OAuth2ParameterType {\n AUDIENCE = \"AUDIENCE\", // STS Extension\n CLIENT_ID = \"client_id\",\n CLIENT_SECRET = \"client_secret\",\n RESPONSE_TYPE = \"response_type\",\n SCOPE = \"scope\",\n STATE = \"state\",\n REDIRECT_URI = \"redirect_uri\",\n ERROR = \"error\",\n ERROR_DESCRIPTION = \"error_description\",\n ERROR_CODES = \"error_codes\", // STS Extension\n ERROR_URI = \"error_uri\",\n GRANT_TYPE = \"grant_type\",\n CODE = \"code\",\n ACCESS_TOKEN = \"access_token\",\n TOKEN_TYPE = \"token_type\",\n EXPIRES_IN = \"expires_in\",\n USERNAME = \"username\",\n PASSWORD = \"password\",\n REFRESH_TOKEN = \"refresh_token\",\n RESPONSE_MODE = \"response_mode\", // STS Extension\n TIMESTAMP = \"timestamp\", // STS Extension\n TRACE_ID = \"trace_id\", // STS Extension\n CORRELATION_ID = \"correlation_id\", // STS Extension\n}\n\n// Auth0 claim usage;\n// aud - api identifier\n// scope - list (space separated) of api permissions\n\n// Claims (Auth0)\n// https://auth0.com/docs/secure/tokens/json-web-tokens/json-web-token-claims\n\n// Reserved claims (IANA)\n// https://www.iana.org/assignments/jwt/jwt.xhtml#claims\n\n// Example scopes and claims (Auth0)\n// https://auth0.com/docs/get-started/apis/scopes/sample-use-cases-scopes-and-claims\n\n// OIDC Claims and Scopes\n// https://openid.net/specs/openid-connect-core-1_0.html#Claims\n// https://developer.okta.com/blog/2017/07/25/oidc-primer-part-1#:~:text=Simply%20put%2C%20claims%20are%20name,information%20asserted%20about%20an%20Entity.%E2%80%9D\n\n// OIDC Standard Claims\n// https://openid.net/specs/openid-connect-core-1_0.html#Claims\n// https://developer.okta.com/blog/2017/07/25/oidc-primer-part-1#:~:text=Simply%20put%2C%20claims%20are%20name,information%20asserted%20about%20an%20Entity.%E2%80%9D\nexport enum OIDCStandardClaim {\n SUB = \"sub\",\n NAME = \"name\",\n GIVEN_NAME = \"given_name\",\n FAMILY_NAME = \"family_name\",\n MIDDLE_NAME = \"middle_name\",\n NICKNAME = \"nickname\",\n PREFERRED_USERNAME = \"preferred_username\",\n PROFILE = \"profile\",\n PICTURE = \"picture\",\n WEBSITE = \"website\",\n EMAIL = \"email\",\n EMAIL_VERIFIED = \"email_verified\",\n GENDER = \"gender\",\n BIRTHDATE = \"birthdate\",\n ZONEINFO = \"zoneinfo\",\n LOCALE = \"locale\",\n PHONE_NUMBER = \"phone_number\",\n PHONE_NUMBER_VERIFIED = \"phone_number_verified\",\n ADDRESS = \"address\",\n CLIENT_SECRET = \"client_secret\",\n NONCE = \"nonce\", // STS Extension\n}\n\nexport enum OIDCAddressClaim {\n FORMATTED = \"formatted\",\n STREET_ADDRESS = \"street_address\",\n LOCALITY = \"locality\",\n REGION = \"region\",\n COUNTRY = \"country\",\n}\n\nexport class OAuth2ParameterErrorType {\n static readonly NOT_EQUAL: errorCode = {\n code: \"STS_OAUTH2_ERR_0001\",\n description: \"Parameter values not equal.\",\n };\n static readonly NOT_PRESENT: errorCode = {\n code: \"STS_OAUTH2_ERR_0002\",\n description: \"Parameter not provided.\",\n };\n static readonly INVALID_FORMAT: errorCode = {\n code: \"STS_OAUTH2_ERR_0003\",\n description: \"Parameter value format invalid.\",\n };\n static readonly EXPIRED: errorCode = {\n code: \"STS_OAUTH2_ERR_0004\",\n description: \"Parameter value expired.\",\n };\n}\n\nexport function compareParameterTypes(\n source1: string[],\n source2: string[],\n authParameterTypes: OAuth2ParameterType[]\n): errorPayload[] {\n const errors: errorPayload[] = [];\n for (let i = 0; i < authParameterTypes.length; i++) {\n const authParameterType = authParameterTypes[i];\n if (source1[i].localeCompare(source2[i]) !== 0) {\n const error: errorPayload = {\n error: OAuth2ParameterErrorType.NOT_EQUAL.code,\n error_description:\n OAuth2ParameterErrorType.NOT_EQUAL.description,\n timestamp: Date.now(),\n details: `${OAuth2ParameterErrorType.NOT_EQUAL.description}: Parameter: [${authParameterType}]`,\n };\n errors.push(error);\n }\n }\n return errors;\n}\n","/* eslint @typescript-eslint/no-explicit-any: 0 */ // --> OFF\n\n// di.ts\n\n// ============================================================\n// Constructor\n// ============================================================\n\nexport type Constructor<T = any> = (new (...args: any[]) => T) & {\n readonly name: string;\n};\n\n// ============================================================\n// Injection token\n// ============================================================\n\nexport class InjectionToken<T> {\n // This field makes T part of the structural type of InjectionToken<T>.\n //\n // It is never used at runtime.\n readonly #type!: T;\n\n constructor(public readonly description: string) {}\n\n toString(): string {\n return `InjectionToken(${this.description})`;\n }\n}\n\n// ============================================================\n// Token\n// ============================================================\n\nexport type Token<T> = Constructor<T> | InjectionToken<T>;\n\n// ============================================================\n// Providers\n// ============================================================\n\nexport type ClassProvider<T> = {\n provide: Token<T>;\n useClass: Constructor<T>;\n};\n\nexport type ValueProvider<T> = {\n provide: Token<T>;\n useValue: T;\n};\n\nexport type FactoryProvider<T> = {\n provide: Token<T>;\n useFactory: () => T;\n};\n\nexport type Provider<T = any> =\n | Constructor<T>\n | ClassProvider<T>\n | ValueProvider<T>\n | FactoryProvider<T>;\n\n// ============================================================\n// Current injection context\n// ============================================================\n\nlet currentInjector: Injector | undefined;\n\n// ============================================================\n// inject()\n// ============================================================\n\nexport function inject<T>(token: Token<T>): T {\n if (!currentInjector) {\n throw new Error(\"inject() called outside an injection context\");\n }\n\n return currentInjector.get(token);\n}\n\nexport function getCurrentInjector(): Injector {\n if (!currentInjector) {\n throw new Error(\n \"getCurrentInjector() called outside an injection context\"\n );\n }\n\n return currentInjector;\n}\n\n// ============================================================\n// Injector\n// ============================================================\n\nexport class Injector {\n private readonly providers = new Map<\n Token<any>,\n ClassProvider<any> | ValueProvider<any> | FactoryProvider<any>\n >();\n\n private readonly instances = new Map<Token<any>, any>();\n\n constructor(\n providers: Provider[] = [],\n private readonly parent?: Injector\n ) {\n for (const provider of providers) {\n this.register(provider);\n }\n }\n\n // --------------------------------------------------------\n // Create child injector\n // --------------------------------------------------------\n\n createChild(providers: Provider[] = []): Injector {\n return new Injector(providers, this);\n }\n\n // --------------------------------------------------------\n // Register provider\n // --------------------------------------------------------\n\n register(provider: Provider): void {\n // Nest/Angular-like shorthand:\n //\n // new Injector([\n // Logger,\n // UserService\n // ]);\n //\n // is equivalent to:\n //\n // new Injector([\n // {\n // provide: Logger,\n // useClass: Logger\n // },\n // {\n // provide: UserService,\n // useClass: UserService\n // }\n // ]);\n\n if (typeof provider === \"function\") {\n this.providers.set(provider, {\n provide: provider,\n useClass: provider,\n });\n\n return;\n }\n\n this.providers.set(provider.provide, provider);\n }\n\n // --------------------------------------------------------\n // Resolve token\n // --------------------------------------------------------\n\n get<T>(token: Token<T>): T {\n // Check whether THIS injector owns the provider.\n\n const provider = this.providers.get(token);\n\n if (provider) {\n // Providers are singletons within the injector\n // that owns them.\n\n if (this.instances.has(token)) {\n return this.instances.get(token) as T;\n }\n\n const instance = this.createProvider<T>(provider);\n\n this.instances.set(token, instance);\n\n return instance;\n }\n\n // Provider does not exist here.\n //\n // Search parent injector.\n\n if (this.parent) {\n return this.parent.get(token);\n }\n\n throw new Error(`No provider for ${this.tokenToString(token)}`);\n }\n\n // --------------------------------------------------------\n // Create provider\n // --------------------------------------------------------\n\n private createProvider<T>(\n provider: ClassProvider<any> | ValueProvider<any> | FactoryProvider<any>\n ): T {\n if (\"useValue\" in provider) {\n return provider.useValue as T;\n }\n\n if (\"useFactory\" in provider) {\n return this.runInContext(provider.useFactory) as T;\n }\n\n return this.construct(provider.useClass) as T;\n }\n\n // --------------------------------------------------------\n // Construct class\n // --------------------------------------------------------\n\n private construct<T>(type: Constructor<T>): T {\n return this.runInContext(() => new type());\n }\n\n // --------------------------------------------------------\n // Establish injection context\n // --------------------------------------------------------\n\n runInContext<T>(fn: () => T): T {\n const previous = currentInjector;\n\n try {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n currentInjector = this;\n\n return fn();\n } finally {\n currentInjector = previous;\n }\n }\n\n // --------------------------------------------------------\n // Token name for diagnostics\n // --------------------------------------------------------\n\n private tokenToString(token: Token<any>): string {\n if (token instanceof InjectionToken) {\n return token.toString();\n }\n\n return token.name;\n }\n\n // --------------------------------------------------------\n // Bootstrap\n // --------------------------------------------------------\n\n bootstrap<T>(token: Constructor<T>): T {\n return this.get(token);\n }\n}\n","export * from \"./commonTypes.js\";\nexport * from \"./dataAccessTypes.js\";\nexport * from \"./sleep.js\";\nexport * from \"./stsAxiosConfig.js\";\nexport * from \"./agentManager.js\";\nexport * from \"./errorhandling.js\";\nexport * from \"./oauth2terms.js\";\nexport * from \"./di.js\";\n\nexport const isNode =\n typeof process !== \"undefined\" &&\n typeof process.release !== \"undefined\" &&\n process.release.name === \"node\";\n"],"x_google_ignoreList":[0,1,2,3],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","names":["styles"],"sources":["../node_modules/chalk/source/vendor/ansi-styles/index.js","../node_modules/chalk/source/vendor/supports-color/browser.js","../node_modules/chalk/source/utilities.js","../node_modules/chalk/source/index.js","../src/commonTypes.ts","../src/dataAccessTypes.ts","../src/sleep.ts","../src/stsAxiosConfig.ts","../src/agentManager.ts","../src/errorhandling.ts","../src/oauth2terms.ts","../src/di.ts","../src/index.ts"],"sourcesContent":["const ANSI_BACKGROUND_OFFSET = 10;\n\nconst wrapAnsi16 = (offset = 0) => code => `\\u001B[${code + offset}m`;\n\nconst wrapAnsi256 = (offset = 0) => code => `\\u001B[${38 + offset};5;${code}m`;\n\nconst wrapAnsi16m = (offset = 0) => (red, green, blue) => `\\u001B[${38 + offset};2;${red};${green};${blue}m`;\n\nconst styles = {\n\tmodifier: {\n\t\treset: [0, 0],\n\t\t// 21 isn't widely supported and 22 does the same thing\n\t\tbold: [1, 22],\n\t\tdim: [2, 22],\n\t\titalic: [3, 23],\n\t\tunderline: [4, 24],\n\t\toverline: [53, 55],\n\t\tinverse: [7, 27],\n\t\thidden: [8, 28],\n\t\tstrikethrough: [9, 29],\n\t},\n\tcolor: {\n\t\tblack: [30, 39],\n\t\tred: [31, 39],\n\t\tgreen: [32, 39],\n\t\tyellow: [33, 39],\n\t\tblue: [34, 39],\n\t\tmagenta: [35, 39],\n\t\tcyan: [36, 39],\n\t\twhite: [37, 39],\n\n\t\t// Bright color\n\t\tblackBright: [90, 39],\n\t\tgray: [90, 39], // Alias of `blackBright`\n\t\tgrey: [90, 39], // Alias of `blackBright`\n\t\tredBright: [91, 39],\n\t\tgreenBright: [92, 39],\n\t\tyellowBright: [93, 39],\n\t\tblueBright: [94, 39],\n\t\tmagentaBright: [95, 39],\n\t\tcyanBright: [96, 39],\n\t\twhiteBright: [97, 39],\n\t},\n\tbgColor: {\n\t\tbgBlack: [40, 49],\n\t\tbgRed: [41, 49],\n\t\tbgGreen: [42, 49],\n\t\tbgYellow: [43, 49],\n\t\tbgBlue: [44, 49],\n\t\tbgMagenta: [45, 49],\n\t\tbgCyan: [46, 49],\n\t\tbgWhite: [47, 49],\n\n\t\t// Bright color\n\t\tbgBlackBright: [100, 49],\n\t\tbgGray: [100, 49], // Alias of `bgBlackBright`\n\t\tbgGrey: [100, 49], // Alias of `bgBlackBright`\n\t\tbgRedBright: [101, 49],\n\t\tbgGreenBright: [102, 49],\n\t\tbgYellowBright: [103, 49],\n\t\tbgBlueBright: [104, 49],\n\t\tbgMagentaBright: [105, 49],\n\t\tbgCyanBright: [106, 49],\n\t\tbgWhiteBright: [107, 49],\n\t},\n};\n\nexport const modifierNames = Object.keys(styles.modifier);\nexport const foregroundColorNames = Object.keys(styles.color);\nexport const backgroundColorNames = Object.keys(styles.bgColor);\nexport const colorNames = [...foregroundColorNames, ...backgroundColorNames];\n\nfunction assembleStyles() {\n\tconst codes = new Map();\n\n\tfor (const [groupName, group] of Object.entries(styles)) {\n\t\tfor (const [styleName, style] of Object.entries(group)) {\n\t\t\tstyles[styleName] = {\n\t\t\t\topen: `\\u001B[${style[0]}m`,\n\t\t\t\tclose: `\\u001B[${style[1]}m`,\n\t\t\t};\n\n\t\t\tgroup[styleName] = styles[styleName];\n\n\t\t\tcodes.set(style[0], style[1]);\n\t\t}\n\n\t\tObject.defineProperty(styles, groupName, {\n\t\t\tvalue: group,\n\t\t\tenumerable: false,\n\t\t});\n\t}\n\n\tObject.defineProperty(styles, 'codes', {\n\t\tvalue: codes,\n\t\tenumerable: false,\n\t});\n\n\tstyles.color.close = '\\u001B[39m';\n\tstyles.bgColor.close = '\\u001B[49m';\n\n\tstyles.color.ansi = wrapAnsi16();\n\tstyles.color.ansi256 = wrapAnsi256();\n\tstyles.color.ansi16m = wrapAnsi16m();\n\tstyles.bgColor.ansi = wrapAnsi16(ANSI_BACKGROUND_OFFSET);\n\tstyles.bgColor.ansi256 = wrapAnsi256(ANSI_BACKGROUND_OFFSET);\n\tstyles.bgColor.ansi16m = wrapAnsi16m(ANSI_BACKGROUND_OFFSET);\n\n\t// From https://github.com/Qix-/color-convert/blob/3f0e0d4e92e235796ccb17f6e85c72094a651f49/conversions.js\n\tObject.defineProperties(styles, {\n\t\trgbToAnsi256: {\n\t\t\tvalue(red, green, blue) {\n\t\t\t\t// We use the extended greyscale palette here, with the exception of\n\t\t\t\t// black and white. normal palette only has 4 greyscale shades.\n\t\t\t\tif (red === green && green === blue) {\n\t\t\t\t\tif (red < 8) {\n\t\t\t\t\t\treturn 16;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (red > 248) {\n\t\t\t\t\t\treturn 231;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn Math.round(((red - 8) / 247) * 24) + 232;\n\t\t\t\t}\n\n\t\t\t\treturn 16\n\t\t\t\t\t+ (36 * Math.round(red / 255 * 5))\n\t\t\t\t\t+ (6 * Math.round(green / 255 * 5))\n\t\t\t\t\t+ Math.round(blue / 255 * 5);\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToRgb: {\n\t\t\tvalue(hex) {\n\t\t\t\tconst matches = /[a-f\\d]{6}|[a-f\\d]{3}/i.exec(hex.toString(16));\n\t\t\t\tif (!matches) {\n\t\t\t\t\treturn [0, 0, 0];\n\t\t\t\t}\n\n\t\t\t\tlet [colorString] = matches;\n\n\t\t\t\tif (colorString.length === 3) {\n\t\t\t\t\tcolorString = [...colorString].map(character => character + character).join('');\n\t\t\t\t}\n\n\t\t\t\tconst integer = Number.parseInt(colorString, 16);\n\n\t\t\t\treturn [\n\t\t\t\t\t/* eslint-disable no-bitwise */\n\t\t\t\t\t(integer >> 16) & 0xFF,\n\t\t\t\t\t(integer >> 8) & 0xFF,\n\t\t\t\t\tinteger & 0xFF,\n\t\t\t\t\t/* eslint-enable no-bitwise */\n\t\t\t\t];\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToAnsi256: {\n\t\t\tvalue: hex => styles.rgbToAnsi256(...styles.hexToRgb(hex)),\n\t\t\tenumerable: false,\n\t\t},\n\t\tansi256ToAnsi: {\n\t\t\tvalue(code) {\n\t\t\t\tif (code < 8) {\n\t\t\t\t\treturn 30 + code;\n\t\t\t\t}\n\n\t\t\t\tif (code < 16) {\n\t\t\t\t\treturn 90 + (code - 8);\n\t\t\t\t}\n\n\t\t\t\tlet red;\n\t\t\t\tlet green;\n\t\t\t\tlet blue;\n\n\t\t\t\tif (code >= 232) {\n\t\t\t\t\tred = (((code - 232) * 10) + 8) / 255;\n\t\t\t\t\tgreen = red;\n\t\t\t\t\tblue = red;\n\t\t\t\t} else {\n\t\t\t\t\tcode -= 16;\n\n\t\t\t\t\tconst remainder = code % 36;\n\n\t\t\t\t\tred = Math.floor(code / 36) / 5;\n\t\t\t\t\tgreen = Math.floor(remainder / 6) / 5;\n\t\t\t\t\tblue = (remainder % 6) / 5;\n\t\t\t\t}\n\n\t\t\t\tconst value = Math.max(red, green, blue) * 2;\n\n\t\t\t\tif (value === 0) {\n\t\t\t\t\treturn 30;\n\t\t\t\t}\n\n\t\t\t\t// eslint-disable-next-line no-bitwise\n\t\t\t\tlet result = 30 + ((Math.round(blue) << 2) | (Math.round(green) << 1) | Math.round(red));\n\n\t\t\t\tif (value === 2) {\n\t\t\t\t\tresult += 60;\n\t\t\t\t}\n\n\t\t\t\treturn result;\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\trgbToAnsi: {\n\t\t\tvalue: (red, green, blue) => styles.ansi256ToAnsi(styles.rgbToAnsi256(red, green, blue)),\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToAnsi: {\n\t\t\tvalue: hex => styles.ansi256ToAnsi(styles.hexToAnsi256(hex)),\n\t\t\tenumerable: false,\n\t\t},\n\t});\n\n\treturn styles;\n}\n\nconst ansiStyles = assembleStyles();\n\nexport default ansiStyles;\n","/* eslint-env browser */\n\nconst level = (() => {\n\tif (!('navigator' in globalThis)) {\n\t\treturn 0;\n\t}\n\n\tif (globalThis.navigator.userAgentData) {\n\t\tconst brand = navigator.userAgentData.brands.find(({brand}) => brand === 'Chromium');\n\t\tif (brand && brand.version > 93) {\n\t\t\treturn 3;\n\t\t}\n\t}\n\n\tif (/\\b(Chrome|Chromium)\\//.test(globalThis.navigator.userAgent)) {\n\t\treturn 1;\n\t}\n\n\treturn 0;\n})();\n\nconst colorSupport = level !== 0 && {\n\tlevel,\n\thasBasic: true,\n\thas256: level >= 2,\n\thas16m: level >= 3,\n};\n\nconst supportsColor = {\n\tstdout: colorSupport,\n\tstderr: colorSupport,\n};\n\nexport default supportsColor;\n","// TODO: When targeting Node.js 16, use `String.prototype.replaceAll`.\nexport function stringReplaceAll(string, substring, replacer) {\n\tlet index = string.indexOf(substring);\n\tif (index === -1) {\n\t\treturn string;\n\t}\n\n\tconst substringLength = substring.length;\n\tlet endIndex = 0;\n\tlet returnValue = '';\n\tdo {\n\t\treturnValue += string.slice(endIndex, index) + substring + replacer;\n\t\tendIndex = index + substringLength;\n\t\tindex = string.indexOf(substring, endIndex);\n\t} while (index !== -1);\n\n\treturnValue += string.slice(endIndex);\n\treturn returnValue;\n}\n\nexport function stringEncaseCRLFWithFirstIndex(string, prefix, postfix, index) {\n\tlet endIndex = 0;\n\tlet returnValue = '';\n\tdo {\n\t\tconst gotCR = string[index - 1] === '\\r';\n\t\treturnValue += string.slice(endIndex, (gotCR ? index - 1 : index)) + prefix + (gotCR ? '\\r\\n' : '\\n') + postfix;\n\t\tendIndex = index + 1;\n\t\tindex = string.indexOf('\\n', endIndex);\n\t} while (index !== -1);\n\n\treturnValue += string.slice(endIndex);\n\treturn returnValue;\n}\n","import ansiStyles from '#ansi-styles';\nimport supportsColor from '#supports-color';\nimport { // eslint-disable-line import/order\n\tstringReplaceAll,\n\tstringEncaseCRLFWithFirstIndex,\n} from './utilities.js';\n\nconst {stdout: stdoutColor, stderr: stderrColor} = supportsColor;\n\nconst GENERATOR = Symbol('GENERATOR');\nconst STYLER = Symbol('STYLER');\nconst IS_EMPTY = Symbol('IS_EMPTY');\n\n// `supportsColor.level` → `ansiStyles.color[name]` mapping\nconst levelMapping = [\n\t'ansi',\n\t'ansi',\n\t'ansi256',\n\t'ansi16m',\n];\n\nconst styles = Object.create(null);\n\nconst applyOptions = (object, options = {}) => {\n\tif (options.level && !(Number.isInteger(options.level) && options.level >= 0 && options.level <= 3)) {\n\t\tthrow new Error('The `level` option should be an integer from 0 to 3');\n\t}\n\n\t// Detect level if not set manually\n\tconst colorLevel = stdoutColor ? stdoutColor.level : 0;\n\tobject.level = options.level === undefined ? colorLevel : options.level;\n};\n\nexport class Chalk {\n\tconstructor(options) {\n\t\t// eslint-disable-next-line no-constructor-return\n\t\treturn chalkFactory(options);\n\t}\n}\n\nconst chalkFactory = options => {\n\tconst chalk = (...strings) => strings.join(' ');\n\tapplyOptions(chalk, options);\n\n\tObject.setPrototypeOf(chalk, createChalk.prototype);\n\n\treturn chalk;\n};\n\nfunction createChalk(options) {\n\treturn chalkFactory(options);\n}\n\nObject.setPrototypeOf(createChalk.prototype, Function.prototype);\n\nfor (const [styleName, style] of Object.entries(ansiStyles)) {\n\tstyles[styleName] = {\n\t\tget() {\n\t\t\tconst builder = createBuilder(this, createStyler(style.open, style.close, this[STYLER]), this[IS_EMPTY]);\n\t\t\tObject.defineProperty(this, styleName, {value: builder});\n\t\t\treturn builder;\n\t\t},\n\t};\n}\n\nstyles.visible = {\n\tget() {\n\t\tconst builder = createBuilder(this, this[STYLER], true);\n\t\tObject.defineProperty(this, 'visible', {value: builder});\n\t\treturn builder;\n\t},\n};\n\nconst getModelAnsi = (model, level, type, ...arguments_) => {\n\tif (model === 'rgb') {\n\t\tif (level === 'ansi16m') {\n\t\t\treturn ansiStyles[type].ansi16m(...arguments_);\n\t\t}\n\n\t\tif (level === 'ansi256') {\n\t\t\treturn ansiStyles[type].ansi256(ansiStyles.rgbToAnsi256(...arguments_));\n\t\t}\n\n\t\treturn ansiStyles[type].ansi(ansiStyles.rgbToAnsi(...arguments_));\n\t}\n\n\tif (model === 'hex') {\n\t\treturn getModelAnsi('rgb', level, type, ...ansiStyles.hexToRgb(...arguments_));\n\t}\n\n\treturn ansiStyles[type][model](...arguments_);\n};\n\nconst usedModels = ['rgb', 'hex', 'ansi256'];\n\nfor (const model of usedModels) {\n\tstyles[model] = {\n\t\tget() {\n\t\t\tconst {level} = this;\n\t\t\treturn function (...arguments_) {\n\t\t\t\tconst styler = createStyler(getModelAnsi(model, levelMapping[level], 'color', ...arguments_), ansiStyles.color.close, this[STYLER]);\n\t\t\t\treturn createBuilder(this, styler, this[IS_EMPTY]);\n\t\t\t};\n\t\t},\n\t};\n\n\tconst bgModel = 'bg' + model[0].toUpperCase() + model.slice(1);\n\tstyles[bgModel] = {\n\t\tget() {\n\t\t\tconst {level} = this;\n\t\t\treturn function (...arguments_) {\n\t\t\t\tconst styler = createStyler(getModelAnsi(model, levelMapping[level], 'bgColor', ...arguments_), ansiStyles.bgColor.close, this[STYLER]);\n\t\t\t\treturn createBuilder(this, styler, this[IS_EMPTY]);\n\t\t\t};\n\t\t},\n\t};\n}\n\nconst proto = Object.defineProperties(() => {}, {\n\t...styles,\n\tlevel: {\n\t\tenumerable: true,\n\t\tget() {\n\t\t\treturn this[GENERATOR].level;\n\t\t},\n\t\tset(level) {\n\t\t\tthis[GENERATOR].level = level;\n\t\t},\n\t},\n});\n\nconst createStyler = (open, close, parent) => {\n\tlet openAll;\n\tlet closeAll;\n\tif (parent === undefined) {\n\t\topenAll = open;\n\t\tcloseAll = close;\n\t} else {\n\t\topenAll = parent.openAll + open;\n\t\tcloseAll = close + parent.closeAll;\n\t}\n\n\treturn {\n\t\topen,\n\t\tclose,\n\t\topenAll,\n\t\tcloseAll,\n\t\tparent,\n\t};\n};\n\nconst createBuilder = (self, _styler, _isEmpty) => {\n\t// Single argument is hot path, implicit coercion is faster than anything\n\t// eslint-disable-next-line no-implicit-coercion\n\tconst builder = (...arguments_) => applyStyle(builder, (arguments_.length === 1) ? ('' + arguments_[0]) : arguments_.join(' '));\n\n\t// We alter the prototype because we must return a function, but there is\n\t// no way to create a function with a different prototype\n\tObject.setPrototypeOf(builder, proto);\n\n\tbuilder[GENERATOR] = self;\n\tbuilder[STYLER] = _styler;\n\tbuilder[IS_EMPTY] = _isEmpty;\n\n\treturn builder;\n};\n\nconst applyStyle = (self, string) => {\n\tif (self.level <= 0 || !string) {\n\t\treturn self[IS_EMPTY] ? '' : string;\n\t}\n\n\tlet styler = self[STYLER];\n\n\tif (styler === undefined) {\n\t\treturn string;\n\t}\n\n\tconst {openAll, closeAll} = styler;\n\tif (string.includes('\\u001B')) {\n\t\twhile (styler !== undefined) {\n\t\t\t// Replace any instances already present with a re-opening code\n\t\t\t// otherwise only the part of the string until said closing code\n\t\t\t// will be colored, and the rest will simply be 'plain'.\n\t\t\tstring = stringReplaceAll(string, styler.close, styler.open);\n\n\t\t\tstyler = styler.parent;\n\t\t}\n\t}\n\n\t// We can move both next actions out of loop, because remaining actions in loop won't have\n\t// any/visible effect on parts we add here. Close the styling before a linebreak and reopen\n\t// after next line to fix a bleed issue on macOS: https://github.com/chalk/chalk/pull/92\n\tconst lfIndex = string.indexOf('\\n');\n\tif (lfIndex !== -1) {\n\t\tstring = stringEncaseCRLFWithFirstIndex(string, closeAll, openAll, lfIndex);\n\t}\n\n\treturn openAll + string + closeAll;\n};\n\nObject.defineProperties(createChalk.prototype, styles);\n\nconst chalk = createChalk();\nexport const chalkStderr = createChalk({level: stderrColor ? stderrColor.level : 0});\n\nexport {\n\tmodifierNames,\n\tforegroundColorNames,\n\tbackgroundColorNames,\n\tcolorNames,\n\n\t// TODO: Remove these aliases in the next major version\n\tmodifierNames as modifiers,\n\tforegroundColorNames as foregroundColors,\n\tbackgroundColorNames as backgroundColors,\n\tcolorNames as colors,\n} from './vendor/ansi-styles/index.js';\n\nexport {\n\tstdoutColor as supportsColor,\n\tstderrColor as supportsColorStderr,\n};\n\nexport default chalk;\n","/* eslint @typescript-eslint/no-explicit-any: 0 */ // --> OFF\n/* eslint @typescript-eslint/no-unused-vars: 0 */ // --> OFF\nimport chalk from \"chalk\";\n\nexport interface JSONObject {\n [x: string]: any | JSONObject | undefined;\n}\n\nexport enum ModelDelimeter {\n ROOT = \"_\",\n SEPERATOR = \"|\",\n COMPONENT_SEPERATOR = \"@\",\n NID_SEPERATOR = \"^\", // This seperator splits the static and dynamic part of a context string (nid). Used for creating payload header for size optimisation.\n}\n\nexport const CheckValidChar = (checkParams: string[][]): void => {\n const invalidChars = [\n ModelDelimeter.ROOT,\n ModelDelimeter.SEPERATOR,\n ModelDelimeter.COMPONENT_SEPERATOR,\n ModelDelimeter.NID_SEPERATOR,\n ];\n\n checkParams.forEach((param) => {\n invalidChars.forEach((char) => {\n if (param[1].includes(char)) {\n throw new Error(\n `Invalid character inside [${param[0]}:${param[1]}], no [${char}] allowed`\n );\n }\n });\n });\n};\n\n// npm logging levels are prioritized from 0 to 6 (highest to lowest). This from Winston logger.\nexport interface ISTSLogger {\n error(message: any): void;\n warn(message: any): void;\n info(message: any): void;\n http(message: any): void;\n verbose(message: any): void;\n debug(message: any): void;\n silly(message: any): void;\n}\n\nexport const defaultLogger: ISTSLogger = {\n debug(message) {\n console.debug(chalk.grey(`debug: ${message}`));\n },\n error(message) {\n console.error(chalk.red(`error: ${message}`));\n },\n http(message) {\n console.log(chalk.cyan(`http: ${message}`));\n },\n info(message) {\n console.info(chalk.white(`info: ${message}`));\n },\n silly(message) {\n console.log(chalk.yellow(`silly: ${message}`));\n },\n verbose(message) {\n console.log(chalk.green(`verbose: ${message}`));\n },\n warn(message) {\n console.warn(chalk.magenta(`warn: ${message}`));\n },\n};\n\nexport const emptyLogger: ISTSLogger = {\n debug(message) {},\n error(message) {},\n http(message) {},\n info(message) {},\n silly(message) {},\n verbose(message) {},\n warn(message) {},\n};\n","import { StatusCodes } from \"http-status-codes\";\n\nimport { JSONObject } from \"./commonTypes.js\";\n\n//@@ These should be moved into the stsrest01client\nexport enum edbaction {\n created = 1,\n updated = 2,\n deleted = 3,\n}\n\nexport interface IDBResource<T> {\n oid: string;\n resname: string;\n resdesc: T;\n vnum: string;\n validfrom: string;\n validto: string | null;\n dbaction: edbaction;\n dbactionuser: string;\n}\n\nexport interface IDBEntity<T> {\n oid: string;\n resourceoid: string;\n entname: string;\n entvalue: T;\n vnum: string;\n validfrom: string;\n validto: string | null;\n dbaction: edbaction;\n dbactionuser: string;\n}\n\nexport interface IDBFilters {\n resname?: string;\n entname?: string;\n resvnum?: string;\n entvnum?: string;\n filter?: string;\n incdel?: string;\n startdate?: string;\n enddate?: string;\n resenddate?: string;\n dbaction?: string;\n dbactionuser?: string;\n limit?: string;\n}\n\nexport interface IAccessLayerErrorDetail {\n status: StatusCodes;\n error: Error;\n errorMessage: string;\n operation: string;\n}\n\nexport interface IDBOptions {\n filters?: IDBFilters;\n useCache?: boolean;\n useMultipleDatabases?: boolean;\n limit?: number;\n errorOnBatchUpdate?: boolean;\n}\n\nexport interface IDBReturnData<T> {\n status: StatusCodes;\n operation: string;\n detail:\n | IDBReturnData<T>[]\n | IDBResource<T>[]\n | IDBResource<T>\n | IDBEntity<T>[]\n | IDBEntity<T>\n | T\n | null;\n options: IDBOptions;\n error?: IAccessLayerErrorDetail;\n}\n\nexport interface IDBSearchOptions {\n queryFunctionName: string;\n searchParameters: JSONObject;\n returnsResourceList: boolean;\n}\n","export async function Sleep(milliseconds = 1000): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, milliseconds));\n}\n","import { JSONObject } from \"./commonTypes.js\";\nimport { IAgentManager } from \"./agentManager.js\";\n\nexport class STSAxiosConfig {\n #url: string;\n #method: string;\n #headers?: JSONObject;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n #data?: any;\n #agentManager?: IAgentManager;\n #timeout?: number;\n #withCredentials?: boolean;\n\n constructor(\n url: string,\n method: string,\n headers?: JSONObject,\n timeout?: number\n ) {\n this.#url = url;\n this.#method = method;\n if (headers !== undefined) {\n this.#headers = headers;\n }\n if (timeout !== undefined) {\n this.#timeout = timeout;\n }\n }\n\n /**\n *\n * @param cookies this.#headers['Cookie'] = cookies.join('; ')\n * @returns\n */\n withCookies(cookies: string[]) {\n if (!this.#headers) {\n this.#headers = {};\n }\n this.#headers[\"Cookie\"] = cookies.join(\"; \");\n return this;\n }\n\n /**\n *\n * @param data Add data to the body\n * @returns\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n withData(data: any) {\n this.#data = data;\n return this;\n }\n\n // 'Content-Type': 'application/json'\n\n /**\n *\n * @param accesssToken\n * @param stsUserId\n * @returns this.#headers['Authorization'] = 'Bearer ' + accesssToken; and this.#headers['x-sts_user_id'] = stsUserId;\n */\n withAuthHeaders(accesssToken: string, stsUserId?: string) {\n if (!this.#headers) {\n this.#headers = {};\n }\n this.#headers[\"Authorization\"] = \"Bearer \" + accesssToken;\n if (stsUserId) {\n this.#headers[\"x-sts_user_id\"] = stsUserId;\n }\n return this;\n }\n\n /**\n *\n * @param headers Add headers to the existing header\n * @returns\n */\n withHeaders(headers: JSONObject) {\n this.#headers = {\n ...(this.#headers ?? {}),\n ...headers,\n };\n return this;\n }\n\n /**\n *\n * @returns this.#headers['Content-Type'] = 'application/fhir+json';\n */\n withApplicationFhirAndJsonContentTypeHeaders() {\n if (!this.#headers) {\n this.#headers = {};\n }\n this.#headers[\"Content-Type\"] = \"application/fhir+json\";\n return this;\n }\n\n /**\n *\n * @returns this.#headers['Content-Type'] = 'application/merge-patch+json';\n */\n withApplicationMergePatchAndJsonContentTypeHeaders() {\n if (!this.#headers) {\n this.#headers = {};\n }\n this.#headers[\"Content-Type\"] = \"application/merge-patch+json\";\n return this;\n }\n\n /**\n *\n * @returns this.#headers['Content-Type'] = 'application/json-patch+json';\n */\n withApplicationJsonPatchAndJsonContentTypeHeaders() {\n if (!this.#headers) {\n this.#headers = {};\n }\n this.#headers[\"Content-Type\"] = \"application/json-patch+json\";\n return this;\n }\n\n /**\n *\n * @returns this.#headers['Content-Type'] = 'application/json';\n */\n withApplicationJsonContentTypeHeaders() {\n if (!this.#headers) {\n this.#headers = {};\n }\n this.#headers[\"Content-Type\"] = \"application/json\";\n return this;\n }\n\n /**\n *\n * @returns this.#headers['Content-Type'] = 'application/json';\n */\n withDefaultHeaders() {\n if (!this.#headers) {\n this.#headers = {};\n }\n this.#headers[\"Content-Type\"] = \"application/json\";\n return this;\n }\n\n /**\n *\n * @returns\n */\n withCredentials() {\n this.#withCredentials = true;\n return this;\n }\n\n /**\n *\n * @param timeout Add a connection timeout\n * @returns\n */\n withTimeout(timeout: number) {\n this.#timeout = timeout;\n return this;\n }\n\n /**\n *\n * @param agentManager Add the agent manager for each rest call. Only for nodejs not browser.\n * @returns\n */\n withAgentManager(agentManager: IAgentManager) {\n this.#agentManager = agentManager;\n return this;\n }\n\n /**\n * @returns Returns axios config object\n */\n get config(): JSONObject {\n const retVal: JSONObject = {\n url: this.#url,\n method: this.#method,\n };\n if (this.#headers) {\n retVal.headers = this.#headers;\n }\n if (this.#agentManager !== undefined) {\n if (this.#agentManager.IsHttps(this.#url)) {\n retVal.httpsAgent = this.#agentManager.GetAgent(this.#url);\n } else {\n retVal.httpAgent = this.#agentManager.GetAgent(this.#url);\n }\n }\n if (this.#data !== undefined) {\n retVal.data = this.#data;\n }\n if (this.#timeout !== undefined) {\n retVal.timeout = this.#timeout;\n }\n if (\n this.#withCredentials !== undefined &&\n this.#withCredentials === true\n ) {\n retVal.withCredentials = true;\n }\n return retVal;\n }\n}\n","export interface IAgentOptions {\n keepAlive: boolean;\n maxSockets: number;\n maxTotalSockets: number;\n maxFreeSockets: number;\n timeout: number;\n rejectUnauthorized?: boolean;\n}\n\nexport interface IAgentManagerOptions {\n httpAgentFactory: (options: IAgentOptions) => unknown;\n httpsAgentFactory: (options: IAgentOptions) => unknown;\n agentOptions?: IAgentOptions;\n agentResetInterval?: number;\n agentResetCount?: number;\n}\n\nexport interface IAgentManager {\n get agentResetInterval(): number | undefined;\n get agentResetCount(): number | undefined;\n UpdateAgentResetInterval(val: number): void;\n UpdateAgentResetCount(val: number): void;\n IncRequestCount(): void;\n IsHttps(protocol: string): boolean;\n GetAgent(protocol: string): unknown;\n ResetAgent(): void;\n Terminate(): void;\n}\n\nexport function createAgentManager(\n agentManagerOptions: IAgentManagerOptions\n): IAgentManager {\n return new AgentManager(agentManagerOptions);\n}\n\nclass AgentManager implements IAgentManager {\n #options: IAgentManagerOptions;\n #agentResetInterval: NodeJS.Timeout | null = null;\n #requestCount: number = 0;\n #httpAgent: unknown = undefined;\n #httpsAgent: unknown = undefined;\n\n constructor(agentManagerOptions: IAgentManagerOptions) {\n this.#options = agentManagerOptions;\n if (this.#options.agentResetInterval) {\n this.#SetupResetInterval();\n }\n }\n\n get agentResetInterval(): number | undefined {\n return this.#options.agentResetInterval;\n }\n\n UpdateAgentResetInterval(val: number): void {\n if (this.#agentResetInterval) {\n clearTimeout(this.#agentResetInterval);\n }\n this.#options.agentResetInterval = val;\n this.#SetupResetInterval();\n }\n\n get agentResetCount(): number | undefined {\n return this.#options.agentResetCount;\n }\n\n UpdateAgentResetCount(val: number): void {\n this.#options.agentResetCount = val;\n }\n\n #SetupResetInterval = () => {\n if (\n this.#options.agentResetInterval &&\n this.#options.agentResetInterval > 0\n ) {\n this.#agentResetInterval = setTimeout(() => {\n this.ResetAgent();\n this.#SetupResetInterval();\n }, this.#options.agentResetInterval).unref();\n }\n };\n\n IncRequestCount(): void {\n this.#requestCount++;\n if (this.#options.agentResetCount) {\n if (this.#requestCount % this.#options.agentResetCount === 0) {\n this.ResetAgent();\n }\n }\n }\n\n IsHttps(protocol: string): boolean {\n if (protocol.toLowerCase().startsWith(\"https:\")) {\n return true;\n }\n return false;\n }\n\n #GetAgentOptions = (https: boolean): IAgentOptions => {\n let options: IAgentOptions;\n if (this.#options.agentOptions) {\n options = {\n keepAlive: this.#options.agentOptions.keepAlive,\n maxSockets: this.#options.agentOptions.maxSockets,\n maxTotalSockets: this.#options.agentOptions.maxTotalSockets,\n maxFreeSockets: this.#options.agentOptions.maxFreeSockets,\n timeout: this.#options.agentOptions.timeout,\n };\n if (https === true) {\n options.rejectUnauthorized =\n this.#options.agentOptions.rejectUnauthorized; // Allows self signed certs in non production mode(s)\n }\n } else {\n // Defaults\n options = {\n keepAlive: true,\n maxSockets: 10,\n maxTotalSockets: 20,\n maxFreeSockets: 256,\n timeout: 30000,\n rejectUnauthorized: false,\n };\n }\n return options;\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n GetAgent(protocol: string): any {\n if (protocol.toLowerCase().startsWith(\"https:\")) {\n if (!this.#httpsAgent) {\n //this.#httpsAgent = new https.Agent(this.#GetAgentOptions(true));\n this.#httpsAgent = this.#options.httpsAgentFactory(\n this.#GetAgentOptions(true)\n );\n }\n return this.#httpsAgent;\n } else if (protocol.toLowerCase().startsWith(\"http:\")) {\n if (!this.#httpAgent) {\n //this.#httpAgent = new http.Agent(this.#GetAgentOptions(false));\n this.#httpAgent = this.#options.httpAgentFactory(\n this.#GetAgentOptions(false)\n );\n }\n return this.#httpAgent;\n } else {\n return null;\n }\n }\n\n ResetAgent(): void {\n this.#httpAgent = null;\n this.#httpsAgent = null;\n }\n\n Terminate(): void {\n if (this.#agentResetInterval) {\n clearTimeout(this.#agentResetInterval);\n this.#agentResetInterval = null;\n }\n\n if (this.#httpAgent) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (this.#httpAgent as any).destroy();\n this.#httpAgent = null;\n }\n\n if (this.#httpsAgent) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (this.#httpsAgent as any).destroy();\n this.#httpsAgent = null;\n }\n }\n}\n","export type errorCode = {\n code: string;\n description: string;\n};\n\nexport type errorPayload = {\n error: string;\n error_description: string;\n timestamp: number;\n //trace_id: \"255d1aef-8c98-452f-ac51-23d051240864\", //@@\n //correlation_id: \"fb3d2015-bc17-4bb9-bb85-30c5cf1aaaa7\", //@@\n details?: unknown;\n};\n\nexport function GetErrorPayload(\n errorCode: errorCode,\n details: unknown = null\n): errorPayload {\n return {\n error: errorCode.code,\n error_description: errorCode.description,\n timestamp: Date.now(),\n //trace_id: \"255d1aef-8c98-452f-ac51-23d051240864\", //@@\n //correlation_id: \"fb3d2015-bc17-4bb9-bb85-30c5cf1aaaa7\", //@@\n details: details,\n };\n}\n","import { errorCode, errorPayload } from \"./errorhandling.js\";\n\n// Ref: https://datatracker.ietf.org/doc/html/rfc6749#appendix-A\nexport enum OAuth2ParameterType {\n AUDIENCE = \"AUDIENCE\", // STS Extension\n CLIENT_ID = \"client_id\",\n CLIENT_SECRET = \"client_secret\",\n RESPONSE_TYPE = \"response_type\",\n SCOPE = \"scope\",\n STATE = \"state\",\n REDIRECT_URI = \"redirect_uri\",\n ERROR = \"error\",\n ERROR_DESCRIPTION = \"error_description\",\n ERROR_CODES = \"error_codes\", // STS Extension\n ERROR_URI = \"error_uri\",\n GRANT_TYPE = \"grant_type\",\n CODE = \"code\",\n ACCESS_TOKEN = \"access_token\",\n TOKEN_TYPE = \"token_type\",\n EXPIRES_IN = \"expires_in\",\n USERNAME = \"username\",\n PASSWORD = \"password\",\n REFRESH_TOKEN = \"refresh_token\",\n RESPONSE_MODE = \"response_mode\", // STS Extension\n TIMESTAMP = \"timestamp\", // STS Extension\n TRACE_ID = \"trace_id\", // STS Extension\n CORRELATION_ID = \"correlation_id\", // STS Extension\n}\n\n// Auth0 claim usage;\n// aud - api identifier\n// scope - list (space separated) of api permissions\n\n// Claims (Auth0)\n// https://auth0.com/docs/secure/tokens/json-web-tokens/json-web-token-claims\n\n// Reserved claims (IANA)\n// https://www.iana.org/assignments/jwt/jwt.xhtml#claims\n\n// Example scopes and claims (Auth0)\n// https://auth0.com/docs/get-started/apis/scopes/sample-use-cases-scopes-and-claims\n\n// OIDC Claims and Scopes\n// https://openid.net/specs/openid-connect-core-1_0.html#Claims\n// https://developer.okta.com/blog/2017/07/25/oidc-primer-part-1#:~:text=Simply%20put%2C%20claims%20are%20name,information%20asserted%20about%20an%20Entity.%E2%80%9D\n\n// OIDC Standard Claims\n// https://openid.net/specs/openid-connect-core-1_0.html#Claims\n// https://developer.okta.com/blog/2017/07/25/oidc-primer-part-1#:~:text=Simply%20put%2C%20claims%20are%20name,information%20asserted%20about%20an%20Entity.%E2%80%9D\nexport enum OIDCStandardClaim {\n SUB = \"sub\",\n NAME = \"name\",\n GIVEN_NAME = \"given_name\",\n FAMILY_NAME = \"family_name\",\n MIDDLE_NAME = \"middle_name\",\n NICKNAME = \"nickname\",\n PREFERRED_USERNAME = \"preferred_username\",\n PROFILE = \"profile\",\n PICTURE = \"picture\",\n WEBSITE = \"website\",\n EMAIL = \"email\",\n EMAIL_VERIFIED = \"email_verified\",\n GENDER = \"gender\",\n BIRTHDATE = \"birthdate\",\n ZONEINFO = \"zoneinfo\",\n LOCALE = \"locale\",\n PHONE_NUMBER = \"phone_number\",\n PHONE_NUMBER_VERIFIED = \"phone_number_verified\",\n ADDRESS = \"address\",\n CLIENT_SECRET = \"client_secret\",\n NONCE = \"nonce\", // STS Extension\n}\n\nexport enum OIDCAddressClaim {\n FORMATTED = \"formatted\",\n STREET_ADDRESS = \"street_address\",\n LOCALITY = \"locality\",\n REGION = \"region\",\n COUNTRY = \"country\",\n}\n\nexport class OAuth2ParameterErrorType {\n static readonly NOT_EQUAL: errorCode = {\n code: \"STS_OAUTH2_ERR_0001\",\n description: \"Parameter values not equal.\",\n };\n static readonly NOT_PRESENT: errorCode = {\n code: \"STS_OAUTH2_ERR_0002\",\n description: \"Parameter not provided.\",\n };\n static readonly INVALID_FORMAT: errorCode = {\n code: \"STS_OAUTH2_ERR_0003\",\n description: \"Parameter value format invalid.\",\n };\n static readonly EXPIRED: errorCode = {\n code: \"STS_OAUTH2_ERR_0004\",\n description: \"Parameter value expired.\",\n };\n}\n\nexport function compareParameterTypes(\n source1: string[],\n source2: string[],\n authParameterTypes: OAuth2ParameterType[]\n): errorPayload[] {\n const errors: errorPayload[] = [];\n for (let i = 0; i < authParameterTypes.length; i++) {\n const authParameterType = authParameterTypes[i];\n if (source1[i].localeCompare(source2[i]) !== 0) {\n const error: errorPayload = {\n error: OAuth2ParameterErrorType.NOT_EQUAL.code,\n error_description:\n OAuth2ParameterErrorType.NOT_EQUAL.description,\n timestamp: Date.now(),\n details: `${OAuth2ParameterErrorType.NOT_EQUAL.description}: Parameter: [${authParameterType}]`,\n };\n errors.push(error);\n }\n }\n return errors;\n}\n","/* eslint @typescript-eslint/no-explicit-any: 0 */ // --> OFF\n\n// di.ts\n\n/* For nodejs startup;\n\nimport {\n SetInjectionContextStore,\n} from \"@nsshunt/stsutils\";\n\nimport {\n NodeInjectionContextStore,\n} from \"@nsshunt/stsutils/node\";\n\nSetInjectionContextStore(\n new NodeInjectionContextStore()\n);\n\nFor browser - the default mode (SyncInjectionContextStore) is fine - nothing special to do\n\n*/\n\n// ============================================================\n// Constructor\n// ============================================================\n\nexport interface InjectionContextStore {\n run<T>(injector: Injector, fn: () => T): T;\n get(): Injector | undefined;\n}\n\nexport class SyncInjectionContextStore implements InjectionContextStore {\n private current?: Injector;\n\n run<T>(injector: Injector, fn: () => T): T {\n const previous = this.current;\n\n this.current = injector;\n\n try {\n return fn();\n } finally {\n this.current = previous;\n }\n }\n\n get(): Injector | undefined {\n return this.current;\n }\n}\n\nexport type Constructor<T = any> = (new (...args: any[]) => T) & {\n readonly name: string;\n};\n\n// ============================================================\n// Injection token\n// ============================================================\n\nexport class InjectionToken<T> {\n // This field makes T part of the structural type of InjectionToken<T>.\n //\n // It is never used at runtime.\n readonly #type!: T;\n\n constructor(public readonly description: string) {}\n\n toString(): string {\n return `InjectionToken(${this.description})`;\n }\n}\n\n// ============================================================\n// Token\n// ============================================================\n\nexport type Token<T> = Constructor<T> | InjectionToken<T>;\n\n// ============================================================\n// Providers\n// ============================================================\n\nexport type ClassProvider<T> = {\n provide: Token<T>;\n useClass: Constructor<T>;\n};\n\nexport type ValueProvider<T> = {\n provide: Token<T>;\n useValue: T;\n};\n\nexport type FactoryProvider<T> = {\n provide: Token<T>;\n useFactory: () => T;\n};\n\nexport type Provider<T = any> =\n | Constructor<T>\n | ClassProvider<T>\n | ValueProvider<T>\n | FactoryProvider<T>;\n\n// ============================================================\n// Current injection context\n// ============================================================\n\nlet contextStore: InjectionContextStore = new SyncInjectionContextStore();\n\nexport const SetInjectionContextStore = (\n store: InjectionContextStore\n): void => {\n contextStore = store;\n};\n\n// ============================================================\n// inject()\n// ============================================================\n\nexport const inject = <T>(token: Token<T>): T => {\n const injector = contextStore.get();\n\n if (!injector) {\n throw new Error(\"inject() called outside an injection context\");\n }\n\n return injector.get(token);\n};\n\nexport function getCurrentInjector(): Injector {\n const injector = contextStore.get();\n\n if (!injector) {\n throw new Error(\n \"getCurrentInjector() called outside an injection context\"\n );\n }\n\n return injector;\n}\n\n// ============================================================\n// Injector\n// ============================================================\n\nexport class Injector {\n private readonly providers = new Map<\n Token<any>,\n ClassProvider<any> | ValueProvider<any> | FactoryProvider<any>\n >();\n\n private readonly instances = new Map<Token<any>, any>();\n\n constructor(\n providers: Provider[] = [],\n private readonly parent?: Injector\n ) {\n for (const provider of providers) {\n this.register(provider);\n }\n }\n\n // --------------------------------------------------------\n // Create child injector\n // --------------------------------------------------------\n\n createChild(providers: Provider[] = []): Injector {\n return new Injector(providers, this);\n }\n\n // --------------------------------------------------------\n // Register provider\n // --------------------------------------------------------\n\n register(provider: Provider): void {\n // Nest/Angular-like shorthand:\n //\n // new Injector([\n // Logger,\n // UserService\n // ]);\n //\n // is equivalent to:\n //\n // new Injector([\n // {\n // provide: Logger,\n // useClass: Logger\n // },\n // {\n // provide: UserService,\n // useClass: UserService\n // }\n // ]);\n\n if (typeof provider === \"function\") {\n this.providers.set(provider, {\n provide: provider,\n useClass: provider,\n });\n\n return;\n }\n\n this.providers.set(provider.provide, provider);\n }\n\n // --------------------------------------------------------\n // Resolve token\n // --------------------------------------------------------\n\n get<T>(token: Token<T>): T {\n // Check whether THIS injector owns the provider.\n\n const provider = this.providers.get(token);\n\n if (provider) {\n // Providers are singletons within the injector\n // that owns them.\n\n if (this.instances.has(token)) {\n return this.instances.get(token) as T;\n }\n\n const instance = this.createProvider<T>(provider);\n\n this.instances.set(token, instance);\n\n return instance;\n }\n\n // Provider does not exist here.\n //\n // Search parent injector.\n\n if (this.parent) {\n return this.parent.get(token);\n }\n\n throw new Error(`No provider for ${this.tokenToString(token)}`);\n }\n\n // --------------------------------------------------------\n // Create provider\n // --------------------------------------------------------\n\n private createProvider<T>(\n provider: ClassProvider<any> | ValueProvider<any> | FactoryProvider<any>\n ): T {\n if (\"useValue\" in provider) {\n return provider.useValue as T;\n }\n\n if (\"useFactory\" in provider) {\n return this.runInContext(provider.useFactory) as T;\n }\n\n return this.construct(provider.useClass) as T;\n }\n\n // --------------------------------------------------------\n // Construct class\n // --------------------------------------------------------\n\n private construct<T>(type: Constructor<T>): T {\n return this.runInContext(() => new type());\n }\n\n // --------------------------------------------------------\n // Establish injection context\n // --------------------------------------------------------\n\n runInContext<T>(fn: () => T): T {\n return contextStore.run(this, fn);\n }\n\n // --------------------------------------------------------\n // Token name for diagnostics\n // --------------------------------------------------------\n\n private tokenToString(token: Token<any>): string {\n if (token instanceof InjectionToken) {\n return token.toString();\n }\n\n return token.name;\n }\n\n // --------------------------------------------------------\n // Bootstrap\n // --------------------------------------------------------\n\n bootstrap<T>(token: Constructor<T>): T {\n return this.runInContext(() => this.get(token));\n }\n}\n","export * from \"./commonTypes.js\";\nexport * from \"./dataAccessTypes.js\";\nexport * from \"./sleep.js\";\nexport * from \"./stsAxiosConfig.js\";\nexport * from \"./agentManager.js\";\nexport * from \"./errorhandling.js\";\nexport * from \"./oauth2terms.js\";\nexport * from \"./di.js\";\n\nexport const isNode =\n typeof process !== \"undefined\" &&\n typeof process.release !== \"undefined\" &&\n process.release.name === \"node\";\n"],"x_google_ignoreList":[0,1,2,3],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nsshunt/stsutils",
3
- "version": "1.19.142",
3
+ "version": "1.19.144",
4
4
  "description": "STS Utils",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -46,14 +46,14 @@
46
46
  "build2": "tsc"
47
47
  },
48
48
  "devDependencies": {
49
- "@types/node": "^26.6.1",
50
- "@typescript-eslint/eslint-plugin": "^8.70.0",
51
- "@typescript-eslint/parser": "^8.70.0",
52
- "eslint": "^10.10.0",
49
+ "@types/node": "^26.6.3",
50
+ "@typescript-eslint/eslint-plugin": "^8.70.1",
51
+ "@typescript-eslint/parser": "^8.70.1",
52
+ "eslint": "^10.11.0",
53
53
  "globals": "^17.12.0",
54
54
  "typescript": "^6.0.3",
55
- "vite": "^8.3.0",
56
- "vitest": "^5.0.1"
55
+ "vite": "^8.3.1",
56
+ "vitest": "^5.0.2"
57
57
  },
58
58
  "dependencies": {
59
59
  "chalk": "^5.6.2",
@@ -0,0 +1,7 @@
1
+ import { Injector, InjectionContextStore } from "./di.js";
2
+ export declare class NodeInjectionContextStore implements InjectionContextStore {
3
+ private readonly storage;
4
+ run<T>(injector: Injector, fn: () => T): T;
5
+ get(): Injector | undefined;
6
+ }
7
+ //# sourceMappingURL=di-node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"di-node.d.ts","sourceRoot":"","sources":["../src/di-node.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAE1D,qBAAa,yBAA0B,YAAW,qBAAqB;IACnE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqC;IAE7D,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC;IAI1C,GAAG,IAAI,QAAQ,GAAG,SAAS;CAG9B"}
package/types/di.d.ts CHANGED
@@ -1,4 +1,13 @@
1
1
 
2
+ export interface InjectionContextStore {
3
+ run<T>(injector: Injector, fn: () => T): T;
4
+ get(): Injector | undefined;
5
+ }
6
+ export declare class SyncInjectionContextStore implements InjectionContextStore {
7
+ private current?;
8
+ run<T>(injector: Injector, fn: () => T): T;
9
+ get(): Injector | undefined;
10
+ }
2
11
  export type Constructor<T = any> = (new (...args: any[]) => T) & {
3
12
  readonly name: string;
4
13
  };
@@ -22,7 +31,8 @@ export type FactoryProvider<T> = {
22
31
  useFactory: () => T;
23
32
  };
24
33
  export type Provider<T = any> = Constructor<T> | ClassProvider<T> | ValueProvider<T> | FactoryProvider<T>;
25
- export declare function inject<T>(token: Token<T>): T;
34
+ export declare const SetInjectionContextStore: (store: InjectionContextStore) => void;
35
+ export declare const inject: <T>(token: Token<T>) => T;
26
36
  export declare function getCurrentInjector(): Injector;
27
37
  export declare class Injector {
28
38
  private readonly parent?;
package/types/di.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"di.d.ts","sourceRoot":"","sources":["../src/di.ts"],"names":[],"mappings":";AAQA,MAAM,MAAM,WAAW,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,GAAG;IAC7D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACzB,CAAC;AAMF,qBAAa,cAAc,CAAC,CAAC;;aAMG,WAAW,EAAE,MAAM;gBAAnB,WAAW,EAAE,MAAM;IAE/C,QAAQ,IAAI,MAAM;CAGrB;AAMD,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;AAM1D,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI;IAC3B,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAClB,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI;IAC3B,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAClB,QAAQ,EAAE,CAAC,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI;IAC7B,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,QAAQ,CAAC,CAAC,GAAG,GAAG,IACtB,WAAW,CAAC,CAAC,CAAC,GACd,aAAa,CAAC,CAAC,CAAC,GAChB,aAAa,CAAC,CAAC,CAAC,GAChB,eAAe,CAAC,CAAC,CAAC,CAAC;AAYzB,wBAAgB,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAM5C;AAED,wBAAgB,kBAAkB,IAAI,QAAQ,CAQ7C;AAMD,qBAAa,QAAQ;IAUb,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IAT5B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAGtB;IAEJ,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA8B;gBAGpD,SAAS,GAAE,QAAQ,EAAO,EACT,MAAM,CAAC,EAAE,QAAQ,YAAA;IAWtC,WAAW,CAAC,SAAS,GAAE,QAAQ,EAAO,GAAG,QAAQ;IAQjD,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAqClC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;IAmC1B,OAAO,CAAC,cAAc;IAkBtB,OAAO,CAAC,SAAS;IAQjB,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC;IAiB/B,OAAO,CAAC,aAAa;IAYrB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC;CAGzC"}
1
+ {"version":3,"file":"di.d.ts","sourceRoot":"","sources":["../src/di.ts"],"names":[],"mappings":";AA0BA,MAAM,WAAW,qBAAqB;IAClC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3C,GAAG,IAAI,QAAQ,GAAG,SAAS,CAAC;CAC/B;AAED,qBAAa,yBAA0B,YAAW,qBAAqB;IACnE,OAAO,CAAC,OAAO,CAAC,CAAW;IAE3B,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC;IAY1C,GAAG,IAAI,QAAQ,GAAG,SAAS;CAG9B;AAED,MAAM,MAAM,WAAW,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,GAAG;IAC7D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACzB,CAAC;AAMF,qBAAa,cAAc,CAAC,CAAC;;aAMG,WAAW,EAAE,MAAM;gBAAnB,WAAW,EAAE,MAAM;IAE/C,QAAQ,IAAI,MAAM;CAGrB;AAMD,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;AAM1D,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI;IAC3B,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAClB,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI;IAC3B,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAClB,QAAQ,EAAE,CAAC,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI;IAC7B,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,QAAQ,CAAC,CAAC,GAAG,GAAG,IACtB,WAAW,CAAC,CAAC,CAAC,GACd,aAAa,CAAC,CAAC,CAAC,GAChB,aAAa,CAAC,CAAC,CAAC,GAChB,eAAe,CAAC,CAAC,CAAC,CAAC;AAQzB,eAAO,MAAM,wBAAwB,GACjC,OAAO,qBAAqB,KAC7B,IAEF,CAAC;AAMF,eAAO,MAAM,MAAM,GAAI,CAAC,EAAE,OAAO,KAAK,CAAC,CAAC,CAAC,KAAG,CAQ3C,CAAC;AAEF,wBAAgB,kBAAkB,IAAI,QAAQ,CAU7C;AAMD,qBAAa,QAAQ;IAUb,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IAT5B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAGtB;IAEJ,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA8B;gBAGpD,SAAS,GAAE,QAAQ,EAAO,EACT,MAAM,CAAC,EAAE,QAAQ,YAAA;IAWtC,WAAW,CAAC,SAAS,GAAE,QAAQ,EAAO,GAAG,QAAQ;IAQjD,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAqClC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;IAmC1B,OAAO,CAAC,cAAc;IAkBtB,OAAO,CAAC,SAAS;IAQjB,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC;IAQ/B,OAAO,CAAC,aAAa;IAYrB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC;CAGzC"}