@rockcarver/frodo-lib 2.0.0-1 → 2.0.0-2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/CHANGELOG.md +5 -1
  2. package/cjs/api/ApiTypes.js.map +1 -1
  3. package/cjs/index.js +1 -105
  4. package/cjs/index.js.map +1 -1
  5. package/cjs/lib/FrodoLib.js +20 -20
  6. package/cjs/lib/FrodoLib.js.map +1 -1
  7. package/cjs/ops/AgentOps.js +8 -0
  8. package/cjs/ops/AgentOps.js.map +1 -1
  9. package/cjs/ops/AuthenticateOps.js +33 -6
  10. package/cjs/ops/AuthenticateOps.js.map +1 -1
  11. package/cjs/ops/CirclesOfTrustOps.js +36 -10
  12. package/cjs/ops/CirclesOfTrustOps.js.map +1 -1
  13. package/cjs/ops/ConnectionProfileOps.js +13 -126
  14. package/cjs/ops/ConnectionProfileOps.js.map +1 -1
  15. package/cjs/ops/IdmOps.js.map +1 -1
  16. package/cjs/ops/JourneyOps.js.map +1 -1
  17. package/cjs/ops/OAuth2OidcOps.js +84 -0
  18. package/cjs/ops/OAuth2OidcOps.js.map +1 -0
  19. package/cjs/ops/ResourceTypeOps.js +65 -49
  20. package/cjs/ops/ResourceTypeOps.js.map +1 -1
  21. package/cjs/ops/ServiceOps.js +3 -0
  22. package/cjs/ops/ServiceOps.js.map +1 -1
  23. package/cjs/ops/ThemeOps.js +28 -14
  24. package/cjs/ops/ThemeOps.js.map +1 -1
  25. package/cjs/ops/cloud/LogOps.js +3 -13
  26. package/cjs/ops/cloud/LogOps.js.map +1 -1
  27. package/cjs/ops/utils/Console.js +7 -7
  28. package/cjs/ops/utils/Console.js.map +1 -1
  29. package/cjs/ops/utils/ExportImportUtils.js +109 -0
  30. package/cjs/ops/utils/ExportImportUtils.js.map +1 -1
  31. package/cjs/ops/utils/ExportImportUtils.test.js.map +1 -1
  32. package/cjs/ops/utils/Version.js +29 -6
  33. package/cjs/ops/utils/Version.js.map +1 -1
  34. package/cjs/ops/utils/Version.test.js.map +1 -1
  35. package/cjs/shared/State.js +0 -2
  36. package/cjs/shared/State.js.map +1 -1
  37. package/esm/index.mjs +1 -59
  38. package/esm/lib/FrodoLib.mjs +19 -18
  39. package/esm/ops/AgentOps.mjs +8 -0
  40. package/esm/ops/AuthenticateOps.mjs +24 -4
  41. package/esm/ops/CirclesOfTrustOps.mjs +18 -2
  42. package/esm/ops/ConnectionProfileOps.mjs +1 -105
  43. package/esm/ops/OAuth2OidcOps.mjs +40 -0
  44. package/esm/ops/ResourceTypeOps.mjs +14 -4
  45. package/esm/ops/ServiceOps.mjs +3 -0
  46. package/esm/ops/ThemeOps.mjs +7 -7
  47. package/esm/ops/cloud/LogOps.mjs +3 -13
  48. package/esm/ops/utils/Console.mjs +8 -8
  49. package/esm/ops/utils/ExportImportUtils.mjs +101 -0
  50. package/esm/ops/utils/ExportImportUtils.test.mjs +15 -2
  51. package/esm/ops/utils/Version.mjs +21 -4
  52. package/esm/ops/utils/Version.test.mjs +4 -1
  53. package/esm/shared/State.mjs +0 -2
  54. package/package.json +1 -1
  55. package/types/api/ApiTypes.d.ts +11 -11
  56. package/types/api/ApiTypes.d.ts.map +1 -1
  57. package/types/index.d.ts +1 -48
  58. package/types/index.d.ts.map +1 -1
  59. package/types/lib/FrodoLib.d.ts +13 -9
  60. package/types/lib/FrodoLib.d.ts.map +1 -1
  61. package/types/ops/AgentOps.d.ts +5 -0
  62. package/types/ops/AgentOps.d.ts.map +1 -1
  63. package/types/ops/AuthenticateOps.d.ts +11 -1
  64. package/types/ops/AuthenticateOps.d.ts.map +1 -1
  65. package/types/ops/CirclesOfTrustOps.d.ts +16 -2
  66. package/types/ops/CirclesOfTrustOps.d.ts.map +1 -1
  67. package/types/ops/ConnectionProfileOps.d.ts +0 -19
  68. package/types/ops/ConnectionProfileOps.d.ts.map +1 -1
  69. package/types/ops/IdmOps.d.ts +1 -1
  70. package/types/ops/IdmOps.d.ts.map +1 -1
  71. package/types/ops/JourneyOps.d.ts +2 -2
  72. package/types/ops/JourneyOps.d.ts.map +1 -1
  73. package/types/ops/OAuth2OidcOps.d.ts +11 -0
  74. package/types/ops/OAuth2OidcOps.d.ts.map +1 -0
  75. package/types/ops/ResourceTypeOps.d.ts +3 -3
  76. package/types/ops/ResourceTypeOps.d.ts.map +1 -1
  77. package/types/ops/ServiceOps.d.ts +1 -0
  78. package/types/ops/ServiceOps.d.ts.map +1 -1
  79. package/types/ops/ThemeOps.d.ts +14 -14
  80. package/types/ops/ThemeOps.d.ts.map +1 -1
  81. package/types/ops/cloud/LogOps.d.ts +1 -1
  82. package/types/ops/cloud/LogOps.d.ts.map +1 -1
  83. package/types/ops/utils/Console.d.ts.map +1 -1
  84. package/types/ops/utils/ExportImportUtils.d.ts +43 -0
  85. package/types/ops/utils/ExportImportUtils.d.ts.map +1 -1
  86. package/types/ops/utils/Version.d.ts +16 -2
  87. package/types/ops/utils/Version.d.ts.map +1 -1
  88. package/types/shared/State.d.ts.map +1 -1
@@ -31,7 +31,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
31
31
  function printMessage(message) {
32
32
  var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'text';
33
33
  var newline = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
34
- var handler = _FrodoLib.globalState.getPrintHandler();
34
+ var handler = _FrodoLib.state.getPrintHandler();
35
35
  if (handler) {
36
36
  handler(message, type, newline);
37
37
  }
@@ -45,7 +45,7 @@ function printMessage(message) {
45
45
  * @param {string | unknown} message The verbose output message
46
46
  */
47
47
  function verboseMessage(message) {
48
- var handler = _FrodoLib.globalState.getVerboseHandler();
48
+ var handler = _FrodoLib.state.getVerboseHandler();
49
49
  if (handler) {
50
50
  handler(message);
51
51
  }
@@ -59,7 +59,7 @@ function verboseMessage(message) {
59
59
  * @param {string | object} message The debug output message
60
60
  */
61
61
  function debugMessage(message) {
62
- var handler = _FrodoLib.globalState.getDebugHandler();
62
+ var handler = _FrodoLib.state.getDebugHandler();
63
63
  if (handler) {
64
64
  handler(message);
65
65
  }
@@ -86,7 +86,7 @@ function maskPasswordHeader(curlCommand) {
86
86
  * @param {string} message The curlirize output message
87
87
  */
88
88
  function curlirizeMessage(message) {
89
- var handler = _FrodoLib.globalState.getCurlirizeHandler();
89
+ var handler = _FrodoLib.state.getCurlirizeHandler();
90
90
  if (handler) {
91
91
  handler(maskPasswordHeader(message));
92
92
  }
@@ -113,7 +113,7 @@ function curlirizeMessage(message) {
113
113
  function createProgressIndicator(total) {
114
114
  var message = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
115
115
  var type = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'determinate';
116
- var handler = _FrodoLib.globalState.getCreateProgressHandler();
116
+ var handler = _FrodoLib.state.getCreateProgressHandler();
117
117
  if (handler) {
118
118
  handler(type, total, message);
119
119
  }
@@ -126,7 +126,7 @@ function createProgressIndicator(total) {
126
126
  */
127
127
  function updateProgressIndicator() {
128
128
  var message = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
129
- var handler = _FrodoLib.globalState.getUpdateProgressHandler();
129
+ var handler = _FrodoLib.state.getUpdateProgressHandler();
130
130
  if (handler) {
131
131
  handler(message);
132
132
  }
@@ -140,7 +140,7 @@ function updateProgressIndicator() {
140
140
  function stopProgressIndicator() {
141
141
  var message = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
142
142
  var status = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'none';
143
- var handler = _FrodoLib.globalState.getStopProgressHandler();
143
+ var handler = _FrodoLib.state.getStopProgressHandler();
144
144
  if (handler) {
145
145
  handler(message, status);
146
146
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Console.js","names":["_cliTable","_interopRequireDefault","require","_FrodoLib","obj","__esModule","default","printMessage","message","type","arguments","length","undefined","newline","handler","globalState","getPrintHandler","verboseMessage","getVerboseHandler","debugMessage","getDebugHandler","maskPasswordHeader","curlCommand","header","mask","regex","RegExp","replace","curlirizeMessage","getCurlirizeHandler","createProgressIndicator","total","getCreateProgressHandler","updateProgressIndicator","getUpdateProgressHandler","stopProgressIndicator","status","getStopProgressHandler","createTable","head","Table","chars","top","bottom","left","mid","right","style","createKeyValueTable","wordWrap","getObjectDepth","object","Object","Math","max","values","map","hasValues","has","keys","key","addRows","depth","level","table","keyMap","space","push","hAlign","content","indention","Array","fill","join","concat","createObjectTable"],"sources":["ops/utils/Console.ts"],"sourcesContent":["import Table from 'cli-table3';\nimport { globalState } from '../../lib/FrodoLib';\n\n/**\n * Handles data / messages output. The caller decides and implements how\n * the data and messages are handled, by implementing the handler function\n * on its side. `handler` is optional, and if not included by the caller,\n * the data and messages will be lost.\n *\n * @param {string | unknown} message The string message to return\n * @param {string} [type=text] \"text\", \"info\", \"warn\", \"error\" or \"data\". All but\n * type=\"data\" will be written to stderr.\n * @param {boolean} [newline=true] Whether to add a newline at the end of message\n * messages returned\n */\nexport function printMessage(\n message: string | object,\n type = 'text',\n newline = true\n) {\n const handler = globalState.getPrintHandler();\n if (handler) {\n handler(message, type, newline);\n }\n}\n\n/**\n * Handles verbose output. The caller decides and implements how\n * the messages are handled, by implementing the handler function\n * on its side. Implementing and registering a `handler` is optional.\n *\n * @param {string | unknown} message The verbose output message\n */\nexport function verboseMessage(message: string | object) {\n const handler = globalState.getVerboseHandler();\n if (handler) {\n handler(message);\n }\n}\n\n/**\n * Handles debug output. The caller decides and implements how\n * the messages are handled, by implementing the handler function\n * on its side. Implementing and registering a `handler` is optional.\n *\n * @param {string | object} message The debug output message\n */\nexport function debugMessage(message: string | object) {\n const handler = globalState.getDebugHandler();\n if (handler) {\n handler(message);\n }\n}\n\n/**\n * Helper function to mask password header in curl command\n * @param curlCommand curl command to mask\n * @param {State} state library state\n * @returns masked curl command\n */\nfunction maskPasswordHeader(curlCommand: string) {\n const header = 'X-OpenAM-Password:';\n const mask = '<suppressed>';\n const regex = new RegExp('\"' + header + '.+?\"', 'g');\n return curlCommand.replace(regex, '\"' + header + mask + '\"');\n}\n\n/**\n * Handles curlirize output. The caller decides and implements how\n * the messages are handled, by implementing the handler function\n * on its side. Implementing and registering a `handler` is optional.\n *\n * @param {string} message The curlirize output message\n */\nexport function curlirizeMessage(message: string) {\n const handler = globalState.getCurlirizeHandler();\n if (handler) {\n handler(maskPasswordHeader(message));\n }\n}\n\n/**\n * Calls a callback on client to create a progress indicator.\n * The actual implementation of the indicator is left to the client\n * Two types of indicators are supported:\n * - determinate: should be used when the process completion rate\n * can be detected (example: progress bar showing percentage or count)\n * - indeterminate: used when progress isn’t detectable, or if\n * it’s not necessary to indicate how long an activity will take.\n * (example: spinner showing progress, but not quantifying the progress)\n *\n * Example:\n * [========================================] 100% | 49/49 | Analyzing journey - transactional_auth\n *\n * @param {Number} total The total number of entries to track progress for\n * @param {String} message optional progress bar message\n * @param {String} type optional type of progress indicator. default is 'determinate'\n *\n */\nexport function createProgressIndicator(\n total,\n message: string = null,\n type = 'determinate'\n) {\n const handler = globalState.getCreateProgressHandler();\n if (handler) {\n handler(type, total, message);\n }\n}\n\n/**\n * Updates the progress indicator with new data/updated status.\n * @param {string} message optional message to show with the indicator\n *\n */\nexport function updateProgressIndicator(message: string = null) {\n const handler = globalState.getUpdateProgressHandler();\n if (handler) {\n handler(message);\n }\n}\n\n/**\n * Stop and hide the progress indicator\n * @param {string} message optional message to show with the indicator\n * @param {string} status one of 'none', 'success', 'warn', 'fail'\n */\nexport function stopProgressIndicator(message: string = null, status = 'none') {\n const handler = globalState.getStopProgressHandler();\n if (handler) {\n handler(message, status);\n }\n}\n\n/**\n * Create an empty table\n * @param {[String]} head header row as an array of strings\n * @returns {CliTable3} an empty table\n */\nexport function createTable(head) {\n return new Table({\n head,\n chars: {\n top: '',\n 'top-mid': '',\n 'top-left': '',\n 'top-right': '',\n bottom: '',\n 'bottom-mid': '',\n 'bottom-left': '',\n 'bottom-right': '',\n left: '',\n 'left-mid': '',\n mid: '',\n 'mid-mid': '',\n right: '',\n 'right-mid': '',\n },\n style: { 'padding-left': 0, 'padding-right': 0, head: ['brightCyan'] },\n });\n}\n\n/**\n * Create a new key/value table\n * @returns {CliTable3} an empty key/value table\n */\nexport function createKeyValueTable() {\n return new Table({\n chars: {\n top: '',\n 'top-mid': '',\n 'top-left': '',\n 'top-right': '',\n bottom: '',\n 'bottom-mid': '',\n 'bottom-left': '',\n 'bottom-right': '',\n left: '',\n 'left-mid': '',\n mid: '',\n 'mid-mid': '',\n right: '',\n 'right-mid': '',\n },\n style: { 'padding-left': 0, 'padding-right': 0 },\n wordWrap: true,\n });\n}\n\n/**\n * Helper function to determine the total depth of an object\n * @param {Object} object input object\n * @returns {Number} total depth of the input object\n */\nfunction getObjectDepth(object) {\n return Object(object) === object\n ? 1 + Math.max(-1, ...Object.values(object).map(getObjectDepth))\n : 0;\n}\n\n/**\n * Helper function to determine if an object has values\n * @param {Object} object input object\n * @returns {boolean} true of the object or any of its sub-objects contain values, false otherwise\n */\nfunction hasValues(object) {\n let has = false;\n const keys = Object.keys(object);\n for (const key of keys) {\n if (Object(object[key]) !== object[key]) {\n return true;\n }\n has = has || hasValues(object[key]);\n }\n return has;\n}\n\n/**\n * Helper function (recursive) to add rows to an object table\n * @param {Object} object object to render\n * @param {Number} depth total depth of initial object\n * @param {Number} level current level\n * @param {CliTable3} table the object table to add the rows to\n * @returns the updated object table\n */\nfunction addRows(object, depth, level, table, keyMap) {\n const space = ' ';\n const keys = Object.keys(object);\n for (const key of keys) {\n if (Object(object[key]) !== object[key]) {\n if (level === 1) {\n table.push([\n keyMap[key] ? keyMap[key]['brightCyan'] : key['brightCyan'],\n object[key],\n ]);\n } else {\n table.push([\n {\n hAlign: 'right',\n content: keyMap[key] ? keyMap[key]['gray'] : key['gray'],\n },\n object[key],\n ]);\n }\n }\n }\n for (const key of keys) {\n if (Object(object[key]) === object[key]) {\n // only print header if there are any values below\n if (hasValues(object[key])) {\n let indention = new Array(level).fill(space).join('');\n if (level < 3) indention = `\\n${indention}`;\n table.push([\n indention.concat(\n keyMap[key] ? keyMap[key]['brightCyan'] : key['brightCyan']\n ),\n '',\n ]);\n }\n // eslint-disable-next-line no-param-reassign\n table = addRows(object[key], depth, level + 1, table, keyMap);\n }\n }\n return table;\n}\n\n/**\n * Create and populate an object table from any JSON object. Use for describe commands.\n * @param {Object} object JSON object to create\n * @returns {CliTable3} a table that can be printed to the console\n */\nexport function createObjectTable(object, keyMap = {}) {\n // eslint-disable-next-line no-param-reassign\n const depth = getObjectDepth(object);\n // eslint-disable-next-line no-param-reassign\n const level = 0;\n // eslint-disable-next-line no-param-reassign\n const table = new Table({\n chars: {\n top: '',\n 'top-mid': '',\n 'top-left': '',\n 'top-right': '',\n bottom: '',\n 'bottom-mid': '',\n 'bottom-left': '',\n 'bottom-right': '',\n left: '',\n 'left-mid': '',\n mid: '',\n 'mid-mid': '',\n right: '',\n 'right-mid': '',\n },\n style: { 'padding-left': 0, 'padding-right': 0, head: ['brightCyan'] },\n });\n addRows(object, depth, level + 1, table, keyMap);\n return table;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Console.js","names":["_cliTable","_interopRequireDefault","require","_FrodoLib","obj","__esModule","default","printMessage","message","type","arguments","length","undefined","newline","handler","state","getPrintHandler","verboseMessage","getVerboseHandler","debugMessage","getDebugHandler","maskPasswordHeader","curlCommand","header","mask","regex","RegExp","replace","curlirizeMessage","getCurlirizeHandler","createProgressIndicator","total","getCreateProgressHandler","updateProgressIndicator","getUpdateProgressHandler","stopProgressIndicator","status","getStopProgressHandler","createTable","head","Table","chars","top","bottom","left","mid","right","style","createKeyValueTable","wordWrap","getObjectDepth","object","Object","Math","max","values","map","hasValues","has","keys","key","addRows","depth","level","table","keyMap","space","push","hAlign","content","indention","Array","fill","join","concat","createObjectTable"],"sources":["ops/utils/Console.ts"],"sourcesContent":["import Table from 'cli-table3';\nimport { state } from '../../lib/FrodoLib';\n\n/**\n * Handles data / messages output. The caller decides and implements how\n * the data and messages are handled, by implementing the handler function\n * on its side. `handler` is optional, and if not included by the caller,\n * the data and messages will be lost.\n *\n * @param {string | unknown} message The string message to return\n * @param {string} [type=text] \"text\", \"info\", \"warn\", \"error\" or \"data\". All but\n * type=\"data\" will be written to stderr.\n * @param {boolean} [newline=true] Whether to add a newline at the end of message\n * messages returned\n */\nexport function printMessage(\n message: string | object,\n type = 'text',\n newline = true\n) {\n const handler = state.getPrintHandler();\n if (handler) {\n handler(message, type, newline);\n }\n}\n\n/**\n * Handles verbose output. The caller decides and implements how\n * the messages are handled, by implementing the handler function\n * on its side. Implementing and registering a `handler` is optional.\n *\n * @param {string | unknown} message The verbose output message\n */\nexport function verboseMessage(message: string | object) {\n const handler = state.getVerboseHandler();\n if (handler) {\n handler(message);\n }\n}\n\n/**\n * Handles debug output. The caller decides and implements how\n * the messages are handled, by implementing the handler function\n * on its side. Implementing and registering a `handler` is optional.\n *\n * @param {string | object} message The debug output message\n */\nexport function debugMessage(message: string | object) {\n const handler = state.getDebugHandler();\n if (handler) {\n handler(message);\n }\n}\n\n/**\n * Helper function to mask password header in curl command\n * @param curlCommand curl command to mask\n * @param {State} state library state\n * @returns masked curl command\n */\nfunction maskPasswordHeader(curlCommand: string) {\n const header = 'X-OpenAM-Password:';\n const mask = '<suppressed>';\n const regex = new RegExp('\"' + header + '.+?\"', 'g');\n return curlCommand.replace(regex, '\"' + header + mask + '\"');\n}\n\n/**\n * Handles curlirize output. The caller decides and implements how\n * the messages are handled, by implementing the handler function\n * on its side. Implementing and registering a `handler` is optional.\n *\n * @param {string} message The curlirize output message\n */\nexport function curlirizeMessage(message: string) {\n const handler = state.getCurlirizeHandler();\n if (handler) {\n handler(maskPasswordHeader(message));\n }\n}\n\n/**\n * Calls a callback on client to create a progress indicator.\n * The actual implementation of the indicator is left to the client\n * Two types of indicators are supported:\n * - determinate: should be used when the process completion rate\n * can be detected (example: progress bar showing percentage or count)\n * - indeterminate: used when progress isn’t detectable, or if\n * it’s not necessary to indicate how long an activity will take.\n * (example: spinner showing progress, but not quantifying the progress)\n *\n * Example:\n * [========================================] 100% | 49/49 | Analyzing journey - transactional_auth\n *\n * @param {Number} total The total number of entries to track progress for\n * @param {String} message optional progress bar message\n * @param {String} type optional type of progress indicator. default is 'determinate'\n *\n */\nexport function createProgressIndicator(\n total,\n message: string = null,\n type = 'determinate'\n) {\n const handler = state.getCreateProgressHandler();\n if (handler) {\n handler(type, total, message);\n }\n}\n\n/**\n * Updates the progress indicator with new data/updated status.\n * @param {string} message optional message to show with the indicator\n *\n */\nexport function updateProgressIndicator(message: string = null) {\n const handler = state.getUpdateProgressHandler();\n if (handler) {\n handler(message);\n }\n}\n\n/**\n * Stop and hide the progress indicator\n * @param {string} message optional message to show with the indicator\n * @param {string} status one of 'none', 'success', 'warn', 'fail'\n */\nexport function stopProgressIndicator(message: string = null, status = 'none') {\n const handler = state.getStopProgressHandler();\n if (handler) {\n handler(message, status);\n }\n}\n\n/**\n * Create an empty table\n * @param {[String]} head header row as an array of strings\n * @returns {CliTable3} an empty table\n */\nexport function createTable(head) {\n return new Table({\n head,\n chars: {\n top: '',\n 'top-mid': '',\n 'top-left': '',\n 'top-right': '',\n bottom: '',\n 'bottom-mid': '',\n 'bottom-left': '',\n 'bottom-right': '',\n left: '',\n 'left-mid': '',\n mid: '',\n 'mid-mid': '',\n right: '',\n 'right-mid': '',\n },\n style: { 'padding-left': 0, 'padding-right': 0, head: ['brightCyan'] },\n });\n}\n\n/**\n * Create a new key/value table\n * @returns {CliTable3} an empty key/value table\n */\nexport function createKeyValueTable() {\n return new Table({\n chars: {\n top: '',\n 'top-mid': '',\n 'top-left': '',\n 'top-right': '',\n bottom: '',\n 'bottom-mid': '',\n 'bottom-left': '',\n 'bottom-right': '',\n left: '',\n 'left-mid': '',\n mid: '',\n 'mid-mid': '',\n right: '',\n 'right-mid': '',\n },\n style: { 'padding-left': 0, 'padding-right': 0 },\n wordWrap: true,\n });\n}\n\n/**\n * Helper function to determine the total depth of an object\n * @param {Object} object input object\n * @returns {Number} total depth of the input object\n */\nfunction getObjectDepth(object) {\n return Object(object) === object\n ? 1 + Math.max(-1, ...Object.values(object).map(getObjectDepth))\n : 0;\n}\n\n/**\n * Helper function to determine if an object has values\n * @param {Object} object input object\n * @returns {boolean} true of the object or any of its sub-objects contain values, false otherwise\n */\nfunction hasValues(object) {\n let has = false;\n const keys = Object.keys(object);\n for (const key of keys) {\n if (Object(object[key]) !== object[key]) {\n return true;\n }\n has = has || hasValues(object[key]);\n }\n return has;\n}\n\n/**\n * Helper function (recursive) to add rows to an object table\n * @param {Object} object object to render\n * @param {Number} depth total depth of initial object\n * @param {Number} level current level\n * @param {CliTable3} table the object table to add the rows to\n * @returns the updated object table\n */\nfunction addRows(object, depth, level, table, keyMap) {\n const space = ' ';\n const keys = Object.keys(object);\n for (const key of keys) {\n if (Object(object[key]) !== object[key]) {\n if (level === 1) {\n table.push([\n keyMap[key] ? keyMap[key]['brightCyan'] : key['brightCyan'],\n object[key],\n ]);\n } else {\n table.push([\n {\n hAlign: 'right',\n content: keyMap[key] ? keyMap[key]['gray'] : key['gray'],\n },\n object[key],\n ]);\n }\n }\n }\n for (const key of keys) {\n if (Object(object[key]) === object[key]) {\n // only print header if there are any values below\n if (hasValues(object[key])) {\n let indention = new Array(level).fill(space).join('');\n if (level < 3) indention = `\\n${indention}`;\n table.push([\n indention.concat(\n keyMap[key] ? keyMap[key]['brightCyan'] : key['brightCyan']\n ),\n '',\n ]);\n }\n // eslint-disable-next-line no-param-reassign\n table = addRows(object[key], depth, level + 1, table, keyMap);\n }\n }\n return table;\n}\n\n/**\n * Create and populate an object table from any JSON object. Use for describe commands.\n * @param {Object} object JSON object to create\n * @returns {CliTable3} a table that can be printed to the console\n */\nexport function createObjectTable(object, keyMap = {}) {\n // eslint-disable-next-line no-param-reassign\n const depth = getObjectDepth(object);\n // eslint-disable-next-line no-param-reassign\n const level = 0;\n // eslint-disable-next-line no-param-reassign\n const table = new Table({\n chars: {\n top: '',\n 'top-mid': '',\n 'top-left': '',\n 'top-right': '',\n bottom: '',\n 'bottom-mid': '',\n 'bottom-left': '',\n 'bottom-right': '',\n left: '',\n 'left-mid': '',\n mid: '',\n 'mid-mid': '',\n right: '',\n 'right-mid': '',\n },\n style: { 'padding-left': 0, 'padding-right': 0, head: ['brightCyan'] },\n });\n addRows(object, depth, level + 1, table, keyMap);\n return table;\n}\n"],"mappings":"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"}
@@ -8,6 +8,7 @@ exports.convertBase64TextToArray = convertBase64TextToArray;
8
8
  exports.convertBase64UrlTextToArray = convertBase64UrlTextToArray;
9
9
  exports.convertTextArrayToBase64 = convertTextArrayToBase64;
10
10
  exports.convertTextArrayToBase64Url = convertTextArrayToBase64Url;
11
+ exports.default = void 0;
11
12
  exports.findFilesByName = findFilesByName;
12
13
  exports.getMetadata = getMetadata;
13
14
  exports.getRealmString = getRealmString;
@@ -28,6 +29,114 @@ var _Console = require("./Console");
28
29
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
29
30
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
30
31
  function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
32
+ class ExportImportUtils {
33
+ constructor(state) {
34
+ this.state = state;
35
+ }
36
+ getMetadata() {
37
+ return getMetadata({
38
+ state: this.state
39
+ });
40
+ }
41
+
42
+ /*
43
+ * Output str in title case
44
+ *
45
+ * e.g.: 'ALL UPPERCASE AND all lowercase' = 'All Uppercase And All Lowercase'
46
+ */
47
+ titleCase(input) {
48
+ return titleCase(input);
49
+ }
50
+ getRealmString() {
51
+ return getRealmString({
52
+ state: this.state
53
+ });
54
+ }
55
+ convertBase64TextToArray(b64text) {
56
+ return convertBase64TextToArray(b64text);
57
+ }
58
+ convertBase64UrlTextToArray(b64UTF8Text) {
59
+ return convertBase64UrlTextToArray(b64UTF8Text);
60
+ }
61
+ convertTextArrayToBase64(textArray) {
62
+ return convertTextArrayToBase64(textArray);
63
+ }
64
+ convertTextArrayToBase64Url(textArray) {
65
+ return convertTextArrayToBase64Url(textArray);
66
+ }
67
+ validateImport(metadata) {
68
+ return validateImport(metadata);
69
+ }
70
+ getTypedFilename(name, type) {
71
+ var suffix = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'json';
72
+ return getTypedFilename(name, type, suffix);
73
+ }
74
+ getWorkingDirectory() {
75
+ return getWorkingDirectory({
76
+ state: this.state
77
+ });
78
+ }
79
+ saveToFile(type, data, identifier, filename) {
80
+ return saveToFile({
81
+ type,
82
+ data,
83
+ identifier,
84
+ filename,
85
+ state: this.state
86
+ });
87
+ }
88
+
89
+ /**
90
+ * Save JSON object to file
91
+ * @param {Object} data data object
92
+ * @param {String} filename file name
93
+ * @return {boolean} true if successful, false otherwise
94
+ */
95
+ saveJsonToFile(data, filename) {
96
+ var includeMeta = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
97
+ return saveJsonToFile({
98
+ data,
99
+ filename,
100
+ includeMeta,
101
+ state: this.state
102
+ });
103
+ }
104
+
105
+ /**
106
+ * Append text data to file
107
+ * @param {String} data text data
108
+ * @param {String} filename file name
109
+ */
110
+ appendTextToFile(data, filename) {
111
+ return appendTextToFile(data, filename);
112
+ }
113
+
114
+ /**
115
+ * Find files by name
116
+ * @param {string} fileName file name to search for
117
+ * @param {boolean} fast return first result and stop search
118
+ * @param {string} path path to directory where to start the search
119
+ * @returns {string[]} array of found file paths relative to starting directory
120
+ */
121
+ findFilesByName(fileName) {
122
+ var fast = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
123
+ var path = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : './';
124
+ return findFilesByName(fileName, fast, path);
125
+ }
126
+
127
+ /**
128
+ * find all (nested) files in a directory
129
+ *
130
+ * @param directory directory to search
131
+ * @returns list of files
132
+ */
133
+ readFilesRecursive(directory) {
134
+ return _asyncToGenerator(function* () {
135
+ return readFilesRecursive(directory);
136
+ })();
137
+ }
138
+ }
139
+ exports.default = ExportImportUtils;
31
140
  function getMetadata(_ref) {
32
141
  var {
33
142
  state
@@ -1 +1 @@
1
- {"version":3,"file":"ExportImportUtils.js","names":["_fs","_interopRequireDefault","require","_promises","_path","_slugify","_Base","_StaticStorage","_Console","obj","__esModule","default","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","getMetadata","_ref","state","metadata","origin","getHost","originAmVersion","getAmVersion","exportedBy","getUsername","exportDate","Date","toISOString","exportTool","FRODO_METADATA_ID","exportToolVersion","getFrodoVersion","titleCase","input","str","toString","splitStr","toLowerCase","split","i","length","charAt","toUpperCase","slice","join","getRealmString","_ref2","realm","getRealm","reduce","result","item","concat","convertBase64TextToArray","b64text","arrayOut","plainText","decode","replace","convertBase64UrlTextToArray","b64UTF8Text","decodeBase64Url","convertTextArrayToBase64","textArray","joinedText","b64encodedScript","encode","convertTextArrayToBase64Url","encodeBase64Url","validateImport","getTypedFilename","name","type","suffix","slug","slugify","getWorkingDirectory","_ref3","wd","getDirectory","fs","existsSync","debugMessage","mkdirSync","recursive","saveToFile","_ref4","data","identifier","filename","exportData","Array","isArray","forEach","element","writeFile","JSON","stringify","printMessage","saveJsonToFile","_ref5","includeMeta","writeFileSync","appendTextToFile","appendFileSync","message","findFilesByName","fileName","fast","path","entries","readdirSync","encoding","withFileTypes","files","filter","entry","isDirectory","file","map","folders","folder","push","readFilesRecursive","_x","_readFilesRecursive","directory","items","readdir","filePathsNested","all","_ref6","entity","lstat","_x2","flat"],"sources":["ops/utils/ExportImportUtils.ts"],"sourcesContent":["import fs from 'fs';\nimport { lstat, readdir } from 'fs/promises';\nimport { join } from 'path';\nimport slugify from 'slugify';\nimport {\n decode,\n decodeBase64Url,\n encode,\n encodeBase64Url,\n} from '../../api/utils/Base64';\nimport State from '../../shared/State';\nimport { FRODO_METADATA_ID } from '../../storage/StaticStorage';\nimport { ExportMetaData } from '../OpsTypes';\nimport { debugMessage, printMessage } from './Console';\n\nexport function getMetadata({ state }: { state: State }): ExportMetaData {\n const metadata: ExportMetaData = {\n origin: state.getHost(),\n originAmVersion: state.getAmVersion(),\n exportedBy: state.getUsername(),\n exportDate: new Date().toISOString(),\n exportTool: FRODO_METADATA_ID,\n exportToolVersion: state.getFrodoVersion(),\n };\n return metadata;\n}\n\n/*\n * Output str in title case\n *\n * e.g.: 'ALL UPPERCASE AND all lowercase' = 'All Uppercase And All Lowercase'\n */\nexport function titleCase(input: string) {\n const str = input.toString();\n const splitStr = str.toLowerCase().split(' ');\n for (let i = 0; i < splitStr.length; i += 1) {\n splitStr[i] = splitStr[i].charAt(0).toUpperCase() + splitStr[i].slice(1);\n }\n return splitStr.join(' ');\n}\n\nexport function getRealmString({ state }: { state: State }) {\n const realm = state.getRealm();\n return realm\n .split('/')\n .reduce((result, item) => `${result}${titleCase(item)}`, '');\n}\n\nexport function convertBase64TextToArray(b64text: string) {\n let arrayOut = [];\n let plainText = decode(b64text);\n plainText = plainText.replace(/\\t/g, ' ');\n arrayOut = plainText.split('\\n');\n return arrayOut;\n}\n\nexport function convertBase64UrlTextToArray(b64UTF8Text: string) {\n let arrayOut = [];\n let plainText = decodeBase64Url(b64UTF8Text);\n plainText = plainText.replace(/\\t/g, ' ');\n arrayOut = plainText.split('\\n');\n return arrayOut;\n}\n\nexport function convertTextArrayToBase64(textArray: string[]) {\n const joinedText = textArray.join('\\n');\n const b64encodedScript = encode(joinedText);\n return b64encodedScript;\n}\n\nexport function convertTextArrayToBase64Url(textArray: string[]) {\n const joinedText = textArray.join('\\n');\n const b64encodedScript = encodeBase64Url(joinedText);\n return b64encodedScript;\n}\n\n// eslint-disable-next-line no-unused-vars\nexport function validateImport(metadata): boolean {\n return metadata || true;\n}\n\nexport function getTypedFilename(name: string, type: string, suffix = 'json') {\n const slug = slugify(name.replace(/^http(s?):\\/\\//, ''));\n return `${slug}.${type}.${suffix}`;\n}\n\nexport function getWorkingDirectory({ state }: { state: State }) {\n let wd = '.';\n if (state.getDirectory()) {\n wd = state.getDirectory().replace(/\\/$/, '');\n // create directory if it doesn't exist\n if (!fs.existsSync(wd)) {\n debugMessage(\n `ExportImportUtils.getWorkingDirectory: creating directory '${wd}'`\n );\n fs.mkdirSync(wd, { recursive: true });\n }\n }\n return wd;\n}\n\nexport function saveToFile({\n type,\n data,\n identifier,\n filename,\n state,\n}: {\n type: string;\n data: object;\n identifier: string;\n filename: string;\n state: State;\n}) {\n const exportData = {};\n exportData['meta'] = getMetadata({ state });\n exportData[type] = {};\n\n if (Array.isArray(data)) {\n data.forEach((element) => {\n exportData[type][element[identifier]] = element;\n });\n } else {\n exportData[type][data[identifier]] = data;\n }\n fs.writeFile(filename, JSON.stringify(exportData, null, 2), (err) => {\n if (err) {\n return printMessage(`ERROR - can't save ${type} to file`, 'error');\n }\n return '';\n });\n}\n\n/**\n * Save JSON object to file\n * @param {Object} data data object\n * @param {String} filename file name\n * @return {boolean} true if successful, false otherwise\n */\nexport function saveJsonToFile({\n data,\n filename,\n includeMeta = true,\n state,\n}: {\n data: object;\n filename: string;\n includeMeta?: boolean;\n state: State;\n}): boolean {\n const exportData = data;\n if (includeMeta) exportData['meta'] = getMetadata({ state });\n try {\n fs.writeFileSync(filename, JSON.stringify(exportData, null, 2));\n return true;\n } catch (err) {\n printMessage(`ERROR - can't save ${filename}`, 'error');\n return false;\n }\n}\n\n/**\n * Append text data to file\n * @param {String} data text data\n * @param {String} filename file name\n */\nexport function appendTextToFile(data: string, filename: string) {\n try {\n fs.appendFileSync(filename, data);\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n }\n}\n\n/**\n * Find files by name\n * @param {string} fileName file name to search for\n * @param {boolean} fast return first result and stop search\n * @param {string} path path to directory where to start the search\n * @returns {string[]} array of found file paths relative to starting directory\n */\nexport function findFilesByName(\n fileName: string,\n fast = true,\n path = './'\n): string[] {\n const entries = fs.readdirSync(path, {\n encoding: 'utf8',\n withFileTypes: true,\n });\n\n // Get files within the current directory and add a path key to the file objects\n const files: string[] = entries\n .filter((entry) => !entry.isDirectory())\n .filter((file) => file.name === fileName)\n // .map((file) => ({ ...file, path: path + file.name }));\n .map((file) => path + file.name);\n\n if (fast && files.length > 0) return files;\n\n // search sub-folders\n const folders = entries.filter((entry) => entry.isDirectory());\n for (const folder of folders)\n files.push(...findFilesByName(fileName, fast, `${path}${folder.name}/`));\n\n return files;\n}\n\n/**\n * find all (nested) files in a directory\n *\n * @param directory directory to search\n * @returns list of files\n */\nexport async function readFilesRecursive(directory: string): Promise<string[]> {\n const items = await readdir(directory);\n\n const filePathsNested = await Promise.all(\n items.map(async (entity) => {\n const path = join(directory, entity);\n const isDirectory = (await lstat(path)).isDirectory();\n\n if (isDirectory) {\n return readFilesRecursive(path);\n }\n return path;\n })\n );\n\n return filePathsNested.flat();\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"ExportImportUtils.js","names":["_fs","_interopRequireDefault","require","_promises","_path","_slugify","_Base","_StaticStorage","_Console","obj","__esModule","default","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","ExportImportUtils","constructor","state","getMetadata","titleCase","input","getRealmString","convertBase64TextToArray","b64text","convertBase64UrlTextToArray","b64UTF8Text","convertTextArrayToBase64","textArray","convertTextArrayToBase64Url","validateImport","metadata","getTypedFilename","name","type","suffix","length","getWorkingDirectory","saveToFile","data","identifier","filename","saveJsonToFile","includeMeta","appendTextToFile","findFilesByName","fileName","fast","path","readFilesRecursive","directory","exports","_ref","origin","getHost","originAmVersion","getAmVersion","exportedBy","getUsername","exportDate","Date","toISOString","exportTool","FRODO_METADATA_ID","exportToolVersion","getFrodoVersion","str","toString","splitStr","toLowerCase","split","i","charAt","toUpperCase","slice","join","_ref2","realm","getRealm","reduce","result","item","concat","arrayOut","plainText","decode","replace","decodeBase64Url","joinedText","b64encodedScript","encode","encodeBase64Url","slug","slugify","_ref3","wd","getDirectory","fs","existsSync","debugMessage","mkdirSync","recursive","_ref4","exportData","Array","isArray","forEach","element","writeFile","JSON","stringify","printMessage","_ref5","writeFileSync","appendFileSync","message","entries","readdirSync","encoding","withFileTypes","files","filter","entry","isDirectory","file","map","folders","folder","push","_x","_readFilesRecursive","items","readdir","filePathsNested","all","_ref6","entity","lstat","_x2","flat"],"sources":["ops/utils/ExportImportUtils.ts"],"sourcesContent":["import fs from 'fs';\nimport { lstat, readdir } from 'fs/promises';\nimport { join } from 'path';\nimport slugify from 'slugify';\nimport {\n decode,\n decodeBase64Url,\n encode,\n encodeBase64Url,\n} from '../../api/utils/Base64';\nimport State from '../../shared/State';\nimport { FRODO_METADATA_ID } from '../../storage/StaticStorage';\nimport { ExportMetaData } from '../OpsTypes';\nimport { debugMessage, printMessage } from './Console';\n\nexport default class ExportImportUtils {\n state: State;\n constructor(state: State) {\n this.state = state;\n }\n\n getMetadata(): ExportMetaData {\n return getMetadata({ state: this.state });\n }\n\n /*\n * Output str in title case\n *\n * e.g.: 'ALL UPPERCASE AND all lowercase' = 'All Uppercase And All Lowercase'\n */\n titleCase(input: string) {\n return titleCase(input);\n }\n\n getRealmString() {\n return getRealmString({ state: this.state });\n }\n\n convertBase64TextToArray(b64text: string) {\n return convertBase64TextToArray(b64text);\n }\n\n convertBase64UrlTextToArray(b64UTF8Text: string) {\n return convertBase64UrlTextToArray(b64UTF8Text);\n }\n\n convertTextArrayToBase64(textArray: string[]) {\n return convertTextArrayToBase64(textArray);\n }\n\n convertTextArrayToBase64Url(textArray: string[]) {\n return convertTextArrayToBase64Url(textArray);\n }\n\n validateImport(metadata): boolean {\n return validateImport(metadata);\n }\n\n getTypedFilename(name: string, type: string, suffix = 'json') {\n return getTypedFilename(name, type, suffix);\n }\n\n getWorkingDirectory() {\n return getWorkingDirectory({ state: this.state });\n }\n\n saveToFile(type: string, data: object, identifier: string, filename: string) {\n return saveToFile({ type, data, identifier, filename, state: this.state });\n }\n\n /**\n * Save JSON object to file\n * @param {Object} data data object\n * @param {String} filename file name\n * @return {boolean} true if successful, false otherwise\n */\n saveJsonToFile(data: object, filename: string, includeMeta = true): boolean {\n return saveJsonToFile({ data, filename, includeMeta, state: this.state });\n }\n\n /**\n * Append text data to file\n * @param {String} data text data\n * @param {String} filename file name\n */\n appendTextToFile(data: string, filename: string) {\n return appendTextToFile(data, filename);\n }\n\n /**\n * Find files by name\n * @param {string} fileName file name to search for\n * @param {boolean} fast return first result and stop search\n * @param {string} path path to directory where to start the search\n * @returns {string[]} array of found file paths relative to starting directory\n */\n findFilesByName(fileName: string, fast = true, path = './'): string[] {\n return findFilesByName(fileName, fast, path);\n }\n\n /**\n * find all (nested) files in a directory\n *\n * @param directory directory to search\n * @returns list of files\n */\n async readFilesRecursive(directory: string): Promise<string[]> {\n return readFilesRecursive(directory);\n }\n}\n\nexport function getMetadata({ state }: { state: State }): ExportMetaData {\n const metadata: ExportMetaData = {\n origin: state.getHost(),\n originAmVersion: state.getAmVersion(),\n exportedBy: state.getUsername(),\n exportDate: new Date().toISOString(),\n exportTool: FRODO_METADATA_ID,\n exportToolVersion: state.getFrodoVersion(),\n };\n return metadata;\n}\n\n/*\n * Output str in title case\n *\n * e.g.: 'ALL UPPERCASE AND all lowercase' = 'All Uppercase And All Lowercase'\n */\nexport function titleCase(input: string) {\n const str = input.toString();\n const splitStr = str.toLowerCase().split(' ');\n for (let i = 0; i < splitStr.length; i += 1) {\n splitStr[i] = splitStr[i].charAt(0).toUpperCase() + splitStr[i].slice(1);\n }\n return splitStr.join(' ');\n}\n\nexport function getRealmString({ state }: { state: State }) {\n const realm = state.getRealm();\n return realm\n .split('/')\n .reduce((result, item) => `${result}${titleCase(item)}`, '');\n}\n\nexport function convertBase64TextToArray(b64text: string) {\n let arrayOut = [];\n let plainText = decode(b64text);\n plainText = plainText.replace(/\\t/g, ' ');\n arrayOut = plainText.split('\\n');\n return arrayOut;\n}\n\nexport function convertBase64UrlTextToArray(b64UTF8Text: string) {\n let arrayOut = [];\n let plainText = decodeBase64Url(b64UTF8Text);\n plainText = plainText.replace(/\\t/g, ' ');\n arrayOut = plainText.split('\\n');\n return arrayOut;\n}\n\nexport function convertTextArrayToBase64(textArray: string[]) {\n const joinedText = textArray.join('\\n');\n const b64encodedScript = encode(joinedText);\n return b64encodedScript;\n}\n\nexport function convertTextArrayToBase64Url(textArray: string[]) {\n const joinedText = textArray.join('\\n');\n const b64encodedScript = encodeBase64Url(joinedText);\n return b64encodedScript;\n}\n\n// eslint-disable-next-line no-unused-vars\nexport function validateImport(metadata): boolean {\n return metadata || true;\n}\n\nexport function getTypedFilename(name: string, type: string, suffix = 'json') {\n const slug = slugify(name.replace(/^http(s?):\\/\\//, ''));\n return `${slug}.${type}.${suffix}`;\n}\n\nexport function getWorkingDirectory({ state }: { state: State }) {\n let wd = '.';\n if (state.getDirectory()) {\n wd = state.getDirectory().replace(/\\/$/, '');\n // create directory if it doesn't exist\n if (!fs.existsSync(wd)) {\n debugMessage(\n `ExportImportUtils.getWorkingDirectory: creating directory '${wd}'`\n );\n fs.mkdirSync(wd, { recursive: true });\n }\n }\n return wd;\n}\n\nexport function saveToFile({\n type,\n data,\n identifier,\n filename,\n state,\n}: {\n type: string;\n data: object;\n identifier: string;\n filename: string;\n state: State;\n}) {\n const exportData = {};\n exportData['meta'] = getMetadata({ state });\n exportData[type] = {};\n\n if (Array.isArray(data)) {\n data.forEach((element) => {\n exportData[type][element[identifier]] = element;\n });\n } else {\n exportData[type][data[identifier]] = data;\n }\n fs.writeFile(filename, JSON.stringify(exportData, null, 2), (err) => {\n if (err) {\n return printMessage(`ERROR - can't save ${type} to file`, 'error');\n }\n return '';\n });\n}\n\n/**\n * Save JSON object to file\n * @param {Object} data data object\n * @param {String} filename file name\n * @return {boolean} true if successful, false otherwise\n */\nexport function saveJsonToFile({\n data,\n filename,\n includeMeta = true,\n state,\n}: {\n data: object;\n filename: string;\n includeMeta?: boolean;\n state: State;\n}): boolean {\n const exportData = data;\n if (includeMeta) exportData['meta'] = getMetadata({ state });\n try {\n fs.writeFileSync(filename, JSON.stringify(exportData, null, 2));\n return true;\n } catch (err) {\n printMessage(`ERROR - can't save ${filename}`, 'error');\n return false;\n }\n}\n\n/**\n * Append text data to file\n * @param {String} data text data\n * @param {String} filename file name\n */\nexport function appendTextToFile(data: string, filename: string) {\n try {\n fs.appendFileSync(filename, data);\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n }\n}\n\n/**\n * Find files by name\n * @param {string} fileName file name to search for\n * @param {boolean} fast return first result and stop search\n * @param {string} path path to directory where to start the search\n * @returns {string[]} array of found file paths relative to starting directory\n */\nexport function findFilesByName(\n fileName: string,\n fast = true,\n path = './'\n): string[] {\n const entries = fs.readdirSync(path, {\n encoding: 'utf8',\n withFileTypes: true,\n });\n\n // Get files within the current directory and add a path key to the file objects\n const files: string[] = entries\n .filter((entry) => !entry.isDirectory())\n .filter((file) => file.name === fileName)\n // .map((file) => ({ ...file, path: path + file.name }));\n .map((file) => path + file.name);\n\n if (fast && files.length > 0) return files;\n\n // search sub-folders\n const folders = entries.filter((entry) => entry.isDirectory());\n for (const folder of folders)\n files.push(...findFilesByName(fileName, fast, `${path}${folder.name}/`));\n\n return files;\n}\n\n/**\n * find all (nested) files in a directory\n *\n * @param directory directory to search\n * @returns list of files\n */\nexport async function readFilesRecursive(directory: string): Promise<string[]> {\n const items = await readdir(directory);\n\n const filePathsNested = await Promise.all(\n items.map(async (entity) => {\n const path = join(directory, entity);\n const isDirectory = (await lstat(path)).isDirectory();\n\n if (isDirectory) {\n return readFilesRecursive(path);\n }\n return path;\n })\n );\n\n return filePathsNested.flat();\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ExportImportUtils.test.js","names":["_path","require","_fs","_ExportImportUtils","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","FS_TMP_DIR","PATH_TO_ARTIFACT","test","originalScript","base64Script","Buffer","from","toString","result","convertBase64TextToArray","expect","toEqual","split","originalArrayOfScriptLines","expected","convertTextArrayToBase64","validateImport","not","toBe","describe","skip","afterAll","existsSync","rmSync","id","data","location","character","words","lotr","saveToFile","resultingJSON","JSON","parse","readFileSync","Object","keys","meta"],"sources":["ops/utils/ExportImportUtils.test.ts"],"sourcesContent":["import { resolve } from 'path';\nimport { rmSync, existsSync, readFileSync } from 'fs';\nimport {\n convertTextArrayToBase64,\n convertBase64TextToArray,\n saveToFile,\n validateImport,\n} from './ExportImportUtils';\n// Warning! implimentation file contains non determinisitc functions which are either; not reasonable to test or imposible\n// Cause: date based non overidable functions\n// Not tested: getCurrentTimestamp\n\nconst FS_TMP_DIR = resolve('.', 'test', 'fs_tmp');\nconst PATH_TO_ARTIFACT = resolve(FS_TMP_DIR, 'export.json');\n\ntest('convertBase64TextToArray returns an array of text lines in base64 encoding', () => {\n // Arrange\n const originalScript = `\n function frodo() {\n return 'ring to mt doom';\n }\n `;\n const base64Script = Buffer.from(originalScript).toString('base64');\n // Act\n const result = convertBase64TextToArray(base64Script);\n // Assert\n expect(result).toEqual(originalScript.split('\\n'));\n});\n\ntest('convertTextArrayToBase64', () => {\n // Arrange\n const originalArrayOfScriptLines = `\n function frodo() {\n return 'ring to mt doom';\n }\n `;\n const expected = Buffer.from(originalArrayOfScriptLines).toString('base64');\n // Act\n const result = convertTextArrayToBase64(\n originalArrayOfScriptLines.split('\\n')\n );\n // Assert\n expect(result).toEqual(expected);\n});\n\ntest('validateImport should always return true', () => {\n expect(validateImport(null)).not.toBe(false);\n});\n\n// This function has no way to determine when its asnyc task is complete, suggest using callback or promises to allow for testing\ndescribe.skip('file system based tests', () => {\n afterAll(() => {\n if (existsSync(PATH_TO_ARTIFACT)) {\n rmSync(PATH_TO_ARTIFACT);\n }\n });\n\n test('saveToFile should save a file to specified tmp directory with expected data format', async () => {\n // Arrange\n const id = `id-3021`;\n const data = [\n {\n id,\n location: 'The Shire',\n character: 'Gandalf',\n words: 1064,\n },\n ];\n\n const expected = {\n lotr: {\n 'id-3021': {\n id: 'id-3021',\n location: 'The Shire',\n character: 'Gandalf',\n words: 1064,\n },\n },\n };\n // Act\n saveToFile('lotr', data, 'id', PATH_TO_ARTIFACT);\n const resultingJSON = JSON.parse(readFileSync(PATH_TO_ARTIFACT, 'utf8'));\n // Assert\n expect(resultingJSON.lotr).toEqual(expected.lotr);\n });\n\n test('saveToFile should save a file with metadata', async () => {\n // Arrange\n const id = `id-3021`;\n const data = [\n {\n id,\n location: 'The Shire',\n character: 'Gandalf',\n words: 1064,\n },\n ];\n // Act\n saveToFile('lotr', data, 'id', PATH_TO_ARTIFACT);\n const resultingJSON = JSON.parse(readFileSync(PATH_TO_ARTIFACT, 'utf8'));\n // Assert\n expect(Object.keys(resultingJSON.meta)).toEqual([\n 'origin',\n 'exportedBy',\n 'exportDate',\n 'exportTool',\n 'exportToolVersion',\n ]);\n });\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"ExportImportUtils.test.js","names":["_index","require","_path","_fs","_ExportImportUtils","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","FS_TMP_DIR","PATH_TO_ARTIFACT","test","originalScript","base64Script","Buffer","from","toString","result","convertBase64TextToArray","expect","toEqual","split","originalArrayOfScriptLines","expected","convertTextArrayToBase64","validateImport","not","toBe","describe","skip","afterAll","existsSync","rmSync","id","data","location","character","words","lotr","saveToFile","type","identifier","filename","state","resultingJSON","JSON","parse","readFileSync","Object","keys","meta"],"sources":["ops/utils/ExportImportUtils.test.ts"],"sourcesContent":["import { state } from '../../index';\nimport { resolve } from 'path';\nimport { rmSync, existsSync, readFileSync } from 'fs';\nimport {\n convertTextArrayToBase64,\n convertBase64TextToArray,\n saveToFile,\n validateImport,\n} from './ExportImportUtils';\n// Warning! implimentation file contains non determinisitc functions which are either; not reasonable to test or imposible\n// Cause: date based non overidable functions\n// Not tested: getCurrentTimestamp\n\nconst FS_TMP_DIR = resolve('.', 'test', 'fs_tmp');\nconst PATH_TO_ARTIFACT = resolve(FS_TMP_DIR, 'export.json');\n\ntest('convertBase64TextToArray returns an array of text lines in base64 encoding', () => {\n // Arrange\n const originalScript = `\n function frodo() {\n return 'ring to mt doom';\n }\n `;\n const base64Script = Buffer.from(originalScript).toString('base64');\n // Act\n const result = convertBase64TextToArray(base64Script);\n // Assert\n expect(result).toEqual(originalScript.split('\\n'));\n});\n\ntest('convertTextArrayToBase64', () => {\n // Arrange\n const originalArrayOfScriptLines = `\n function frodo() {\n return 'ring to mt doom';\n }\n `;\n const expected = Buffer.from(originalArrayOfScriptLines).toString('base64');\n // Act\n const result = convertTextArrayToBase64(\n originalArrayOfScriptLines.split('\\n')\n );\n // Assert\n expect(result).toEqual(expected);\n});\n\ntest('validateImport should always return true', () => {\n expect(validateImport(null)).not.toBe(false);\n});\n\n// This function has no way to determine when its asnyc task is complete, suggest using callback or promises to allow for testing\ndescribe.skip('file system based tests', () => {\n afterAll(() => {\n if (existsSync(PATH_TO_ARTIFACT)) {\n rmSync(PATH_TO_ARTIFACT);\n }\n });\n\n test('saveToFile should save a file to specified tmp directory with expected data format', async () => {\n // Arrange\n const id = `id-3021`;\n const data = [\n {\n id,\n location: 'The Shire',\n character: 'Gandalf',\n words: 1064,\n },\n ];\n\n const expected = {\n lotr: {\n 'id-3021': {\n id: 'id-3021',\n location: 'The Shire',\n character: 'Gandalf',\n words: 1064,\n },\n },\n };\n // Act\n saveToFile({\n type: 'lotr',\n data,\n identifier: 'id',\n filename: PATH_TO_ARTIFACT,\n state,\n });\n const resultingJSON = JSON.parse(readFileSync(PATH_TO_ARTIFACT, 'utf8'));\n // Assert\n expect(resultingJSON.lotr).toEqual(expected.lotr);\n });\n\n test('saveToFile should save a file with metadata', async () => {\n // Arrange\n const id = `id-3021`;\n const data = [\n {\n id,\n location: 'The Shire',\n character: 'Gandalf',\n words: 1064,\n },\n ];\n // Act\n saveToFile({\n type: 'lotr',\n data,\n identifier: 'id',\n filename: PATH_TO_ARTIFACT,\n state,\n });\n const resultingJSON = JSON.parse(readFileSync(PATH_TO_ARTIFACT, 'utf8'));\n // Assert\n expect(Object.keys(resultingJSON.meta)).toEqual([\n 'origin',\n 'exportedBy',\n 'exportDate',\n 'exportTool',\n 'exportToolVersion',\n ]);\n });\n});\n"],"mappings":"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"}
@@ -3,6 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.default = void 0;
6
7
  exports.getAllVersions = getAllVersions;
7
8
  exports.getVersion = getVersion;
8
9
  var _fs = _interopRequireDefault(require("fs"));
@@ -12,22 +13,44 @@ var _url = require("url");
12
13
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
14
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
14
15
  function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
16
+ class Version {
17
+ constructor(state) {
18
+ this.state = state;
19
+ }
20
+ getVersion() {
21
+ return getVersion({
22
+ state: this.state
23
+ });
24
+ }
25
+ getAllVersions(endpoints) {
26
+ var _this = this;
27
+ return _asyncToGenerator(function* () {
28
+ return getAllVersions({
29
+ endpoints,
30
+ state: _this.state
31
+ });
32
+ })();
33
+ }
34
+ }
35
+ exports.default = Version;
15
36
  var _dirname = _path.default.dirname((0, _url.fileURLToPath)(require('url').pathToFileURL(__filename).toString()));
16
37
  var pkg = JSON.parse(_fs.default.readFileSync(_path.default.resolve(_dirname, '../../../package.json'), 'utf8'));
17
- // const userAgent = `${pkg.name}/${pkg.version}`;
18
-
19
- function getVersion() {
20
- return "".concat(pkg.version);
38
+ function getVersion(_ref) {
39
+ var {
40
+ state
41
+ } = _ref;
42
+ // must initialize state to avoid library initialization issues
43
+ if (state) return "".concat(pkg.version);
21
44
  }
22
45
  function getAllVersions(_x) {
23
46
  return _getAllVersions.apply(this, arguments);
24
47
  }
25
48
  function _getAllVersions() {
26
- _getAllVersions = _asyncToGenerator(function* (_ref) {
49
+ _getAllVersions = _asyncToGenerator(function* (_ref2) {
27
50
  var {
28
51
  endpoints,
29
52
  state
30
- } = _ref;
53
+ } = _ref2;
31
54
  var reqPromises = [];
32
55
  endpoints.forEach(item => {
33
56
  reqPromises.push((0, _BaseApi.generateReleaseApi)({
@@ -1 +1 @@
1
- {"version":3,"file":"Version.js","names":["_fs","_interopRequireDefault","require","_path","_BaseApi","_url","obj","__esModule","default","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","__dirname","path","dirname","fileURLToPath","pathToFileURL","__filename","toString","pkg","JSON","parse","fs","readFileSync","getVersion","concat","version","getAllVersions","_x","_getAllVersions","_ref","endpoints","state","reqPromises","forEach","item","push","generateReleaseApi","baseUrl","base","get","result","allSettled"],"sources":["ops/utils/Version.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport { generateReleaseApi } from '../../api/BaseApi';\n\nimport { fileURLToPath } from 'url';\nimport State from '../../shared/State';\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\n\nconst pkg = JSON.parse(\n fs.readFileSync(path.resolve(__dirname, '../../../package.json'), 'utf8')\n);\n// const userAgent = `${pkg.name}/${pkg.version}`;\n\nexport function getVersion() {\n return `${pkg.version}`;\n}\n\nexport async function getAllVersions({\n endpoints,\n state,\n}: {\n endpoints;\n state: State;\n}) {\n const reqPromises = [];\n endpoints.forEach((item) => {\n reqPromises.push(\n generateReleaseApi({ baseUrl: item.base, state }).get(item.path)\n );\n });\n const result = await Promise.allSettled(reqPromises);\n return result;\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,GAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,KAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAEA,IAAAG,IAAA,GAAAH,OAAA;AAAoC,SAAAD,uBAAAK,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,mBAAAC,GAAA,EAAAC,OAAA,EAAAC,MAAA,EAAAC,KAAA,EAAAC,MAAA,EAAAC,GAAA,EAAAC,GAAA,cAAAC,IAAA,GAAAP,GAAA,CAAAK,GAAA,EAAAC,GAAA,OAAAE,KAAA,GAAAD,IAAA,CAAAC,KAAA,WAAAC,KAAA,IAAAP,MAAA,CAAAO,KAAA,iBAAAF,IAAA,CAAAG,IAAA,IAAAT,OAAA,CAAAO,KAAA,YAAAG,OAAA,CAAAV,OAAA,CAAAO,KAAA,EAAAI,IAAA,CAAAT,KAAA,EAAAC,MAAA;AAAA,SAAAS,kBAAAC,EAAA,6BAAAC,IAAA,SAAAC,IAAA,GAAAC,SAAA,aAAAN,OAAA,WAAAV,OAAA,EAAAC,MAAA,QAAAF,GAAA,GAAAc,EAAA,CAAAI,KAAA,CAAAH,IAAA,EAAAC,IAAA,YAAAb,MAAAK,KAAA,IAAAT,kBAAA,CAAAC,GAAA,EAAAC,OAAA,EAAAC,MAAA,EAAAC,KAAA,EAAAC,MAAA,UAAAI,KAAA,cAAAJ,OAAAe,GAAA,IAAApB,kBAAA,CAAAC,GAAA,EAAAC,OAAA,EAAAC,MAAA,EAAAC,KAAA,EAAAC,MAAA,WAAAe,GAAA,KAAAhB,KAAA,CAAAiB,SAAA;AAGpC,IAAMC,QAAS,GAAGC,aAAI,CAACC,OAAO,CAAC,IAAAC,kBAAa,EAAAhC,OAAA,QAAAiC,aAAA,CAAAC,UAAA,EAAAC,QAAA,EAAgB,CAAC,CAAC;AAE9D,IAAMC,GAAG,GAAGC,IAAI,CAACC,KAAK,CACpBC,WAAE,CAACC,YAAY,CAACV,aAAI,CAACrB,OAAO,CAACoB,QAAS,EAAE,uBAAuB,CAAC,EAAE,MAAM,CAC1E,CAAC;AACD;;AAEO,SAASY,UAAUA,CAAA,EAAG;EAC3B,UAAAC,MAAA,CAAUN,GAAG,CAACO,OAAO;AACvB;AAAC,SAEqBC,cAAcA,CAAAC,EAAA;EAAA,OAAAC,eAAA,CAAApB,KAAA,OAAAD,SAAA;AAAA;AAAA,SAAAqB,gBAAA;EAAAA,eAAA,GAAAzB,iBAAA,CAA7B,WAAA0B,IAAA,EAMJ;IAAA,IANkC;MACnCC,SAAS;MACTC;IAIF,CAAC,GAAAF,IAAA;IACC,IAAMG,WAAW,GAAG,EAAE;IACtBF,SAAS,CAACG,OAAO,CAAEC,IAAI,IAAK;MAC1BF,WAAW,CAACG,IAAI,CACd,IAAAC,2BAAkB,EAAC;QAAEC,OAAO,EAAEH,IAAI,CAACI,IAAI;QAAEP;MAAM,CAAC,CAAC,CAACQ,GAAG,CAACL,IAAI,CAACtB,IAAI,CACjE,CAAC;IACH,CAAC,CAAC;IACF,IAAM4B,MAAM,SAASvC,OAAO,CAACwC,UAAU,CAACT,WAAW,CAAC;IACpD,OAAOQ,MAAM;EACf,CAAC;EAAA,OAAAZ,eAAA,CAAApB,KAAA,OAAAD,SAAA;AAAA"}
1
+ {"version":3,"file":"Version.js","names":["_fs","_interopRequireDefault","require","_path","_BaseApi","_url","obj","__esModule","default","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","Version","constructor","state","getVersion","getAllVersions","endpoints","_this","exports","__dirname","path","dirname","fileURLToPath","pathToFileURL","__filename","toString","pkg","JSON","parse","fs","readFileSync","_ref","concat","version","_x","_getAllVersions","_ref2","reqPromises","forEach","item","push","generateReleaseApi","baseUrl","base","get","result","allSettled"],"sources":["ops/utils/Version.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport { generateReleaseApi } from '../../api/BaseApi';\n\nimport { fileURLToPath } from 'url';\nimport State from '../../shared/State';\n\nexport default class Version {\n state: State;\n constructor(state: State) {\n this.state = state;\n }\n\n getVersion() {\n return getVersion({ state: this.state });\n }\n\n async getAllVersions(endpoints: { base: string; path: string }[]) {\n return getAllVersions({ endpoints, state: this.state });\n }\n}\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\n\nconst pkg = JSON.parse(\n fs.readFileSync(path.resolve(__dirname, '../../../package.json'), 'utf8')\n);\n\nexport function getVersion({ state }: { state: State }) {\n // must initialize state to avoid library initialization issues\n if (state) return `${pkg.version}`;\n}\n\nexport async function getAllVersions({\n endpoints,\n state,\n}: {\n endpoints: { base: string; path: string }[];\n state: State;\n}) {\n const reqPromises = [];\n endpoints.forEach((item) => {\n reqPromises.push(\n generateReleaseApi({ baseUrl: item.base, state }).get(item.path)\n );\n });\n const result = await Promise.allSettled(reqPromises);\n return result;\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Version.test.js","names":["_fs","_interopRequireDefault","require","_path","_Version","_url","obj","__esModule","default","__dirname","path","dirname","fileURLToPath","pathToFileURL","__filename","toString","pkg","JSON","parse","fs","readFileSync","resolve","describe","test","result","getVersion","expect","toEqual","concat","version"],"sources":["ops/utils/Version.test.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport { getVersion } from './Version';\nimport { fileURLToPath } from 'url';\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\n\nconst pkg = JSON.parse(\n fs.readFileSync(path.resolve(__dirname, '../../../package.json'), 'utf8')\n);\n\ndescribe('index', () => {\n test('get library version', () => {\n const result = getVersion();\n expect(result).toEqual(`${pkg.version}`);\n });\n});\n"],"mappings":";;AAAA,IAAAA,GAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,KAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AACA,IAAAG,IAAA,GAAAH,OAAA;AAAoC,SAAAD,uBAAAK,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAEpC,IAAMG,QAAS,GAAGC,aAAI,CAACC,OAAO,CAAC,IAAAC,kBAAa,EAAAV,OAAA,QAAAW,aAAA,CAAAC,UAAA,EAAAC,QAAA,EAAgB,CAAC,CAAC;AAE9D,IAAMC,GAAG,GAAGC,IAAI,CAACC,KAAK,CACpBC,WAAE,CAACC,YAAY,CAACV,aAAI,CAACW,OAAO,CAACZ,QAAS,EAAE,uBAAuB,CAAC,EAAE,MAAM,CAC1E,CAAC;AAEDa,QAAQ,CAAC,OAAO,EAAE,MAAM;EACtBC,IAAI,CAAC,qBAAqB,EAAE,MAAM;IAChC,IAAMC,MAAM,GAAG,IAAAC,mBAAU,EAAC,CAAC;IAC3BC,MAAM,CAACF,MAAM,CAAC,CAACG,OAAO,IAAAC,MAAA,CAAIZ,GAAG,CAACa,OAAO,CAAE,CAAC;EAC1C,CAAC,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"Version.test.js","names":["_index","require","_fs","_interopRequireDefault","_path","_Version","_url","obj","__esModule","default","__dirname","path","dirname","fileURLToPath","pathToFileURL","__filename","toString","pkg","JSON","parse","fs","readFileSync","resolve","describe","test","result","getVersion","state","expect","toEqual","concat","version"],"sources":["ops/utils/Version.test.ts"],"sourcesContent":["import { state } from '../../index';\nimport fs from 'fs';\nimport path from 'path';\nimport { getVersion } from './Version';\nimport { fileURLToPath } from 'url';\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\n\nconst pkg = JSON.parse(\n fs.readFileSync(path.resolve(__dirname, '../../../package.json'), 'utf8')\n);\n\ndescribe('index', () => {\n test('get library version', () => {\n const result = getVersion({ state });\n expect(result).toEqual(`${pkg.version}`);\n });\n});\n"],"mappings":";;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,GAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,KAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AACA,IAAAK,IAAA,GAAAL,OAAA;AAAoC,SAAAE,uBAAAI,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAEpC,IAAMG,QAAS,GAAGC,aAAI,CAACC,OAAO,CAAC,IAAAC,kBAAa,EAAAZ,OAAA,QAAAa,aAAA,CAAAC,UAAA,EAAAC,QAAA,EAAgB,CAAC,CAAC;AAE9D,IAAMC,GAAG,GAAGC,IAAI,CAACC,KAAK,CACpBC,WAAE,CAACC,YAAY,CAACV,aAAI,CAACW,OAAO,CAACZ,QAAS,EAAE,uBAAuB,CAAC,EAAE,MAAM,CAC1E,CAAC;AAEDa,QAAQ,CAAC,OAAO,EAAE,MAAM;EACtBC,IAAI,CAAC,qBAAqB,EAAE,MAAM;IAChC,IAAMC,MAAM,GAAG,IAAAC,mBAAU,EAAC;MAAEC,KAAK,EAALA;IAAM,CAAC,CAAC;IACpCC,MAAM,CAACH,MAAM,CAAC,CAACI,OAAO,IAAAC,MAAA,CAAIb,GAAG,CAACc,OAAO,CAAE,CAAC;EAC1C,CAAC,CAAC;AACJ,CAAC,CAAC"}
@@ -62,8 +62,6 @@ class State {
62
62
  constructor(initialState) {
63
63
  _defineProperty(this, "state", _objectSpread({}, globalState));
64
64
  this.state = _objectSpread(_objectSpread({}, this.state), initialState);
65
- console.log("state:");
66
- console.dir(this.state);
67
65
  }
68
66
  setHost(host) {
69
67
  this.state.host = host;