@icure/api 4.2.31 → 5.0.3

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 (103) hide show
  1. package/icc-api/api/IccDeviceApi.d.ts +3 -3
  2. package/icc-api/api/IccDeviceApi.js.map +1 -1
  3. package/icc-api/api/IccHcpartyApi.d.ts +3 -3
  4. package/icc-api/api/IccHcpartyApi.js.map +1 -1
  5. package/icc-api/api/IccPatientApi.d.ts +3 -3
  6. package/icc-api/api/IccPatientApi.js.map +1 -1
  7. package/icc-api/api/IccUserApi.js +1 -1
  8. package/icc-api/api/IccUserApi.js.map +1 -1
  9. package/icc-api/api/XHR.js +2 -1
  10. package/icc-api/api/XHR.js.map +1 -1
  11. package/icc-api/iccApi.js +5 -1
  12. package/icc-api/iccApi.js.map +1 -1
  13. package/icc-api/index.js +5 -1
  14. package/icc-api/index.js.map +1 -1
  15. package/icc-api/model/Body.js +1 -1
  16. package/icc-api/model/Body.js.map +1 -1
  17. package/icc-api/model/Body1.js +1 -1
  18. package/icc-api/model/Body1.js.map +1 -1
  19. package/icc-api/model/Body2.js +1 -1
  20. package/icc-api/model/Body2.js.map +1 -1
  21. package/icc-api/model/Body3.js +1 -1
  22. package/icc-api/model/Body3.js.map +1 -1
  23. package/icc-api/model/ByteArray.js +1 -1
  24. package/icc-api/model/ByteArray.js.map +1 -1
  25. package/icc-api/model/Content.js +1 -1
  26. package/icc-api/model/Content.js.map +1 -1
  27. package/icc-api/model/Device.js +1 -1
  28. package/icc-api/model/Device.js.map +1 -1
  29. package/icc-api/model/Document.js +1 -1
  30. package/icc-api/model/Document.js.map +1 -1
  31. package/icc-api/model/DocumentTemplate.js +1 -1
  32. package/icc-api/model/DocumentTemplate.js.map +1 -1
  33. package/icc-api/model/HealthcareParty.js +1 -1
  34. package/icc-api/model/HealthcareParty.js.map +1 -1
  35. package/icc-api/model/MimeAttachment.js +1 -1
  36. package/icc-api/model/MimeAttachment.js.map +1 -1
  37. package/icc-api/model/Patient.js +1 -1
  38. package/icc-api/model/Patient.js.map +1 -1
  39. package/icc-api/model/models.d.ts +15 -0
  40. package/icc-api/model/models.js +5 -1
  41. package/icc-api/model/models.js.map +1 -1
  42. package/icc-x-api/crypto/AES.d.ts +2 -1
  43. package/icc-x-api/crypto/AES.js +37 -10
  44. package/icc-x-api/crypto/AES.js.map +1 -1
  45. package/icc-x-api/crypto/RSA.d.ts +0 -31
  46. package/icc-x-api/crypto/RSA.js +0 -64
  47. package/icc-x-api/crypto/RSA.js.map +1 -1
  48. package/icc-x-api/crypto/shamir.js.map +1 -1
  49. package/icc-x-api/filters/filters.js +7 -3
  50. package/icc-x-api/filters/filters.js.map +1 -1
  51. package/icc-x-api/icc-accesslog-x-api.js +25 -22
  52. package/icc-x-api/icc-accesslog-x-api.js.map +1 -1
  53. package/icc-x-api/icc-bekmehr-x-api.js +2 -2
  54. package/icc-x-api/icc-bekmehr-x-api.js.map +1 -1
  55. package/icc-x-api/icc-calendar-item-x-api.d.ts +2 -2
  56. package/icc-x-api/icc-calendar-item-x-api.js +43 -30
  57. package/icc-x-api/icc-calendar-item-x-api.js.map +1 -1
  58. package/icc-x-api/icc-contact-x-api.js +59 -45
  59. package/icc-x-api/icc-contact-x-api.js.map +1 -1
  60. package/icc-x-api/icc-crypto-x-api.d.ts +127 -54
  61. package/icc-x-api/icc-crypto-x-api.js +830 -393
  62. package/icc-x-api/icc-crypto-x-api.js.map +1 -1
  63. package/icc-x-api/icc-doctemplate-x-api.js +2 -2
  64. package/icc-x-api/icc-doctemplate-x-api.js.map +1 -1
  65. package/icc-x-api/icc-document-x-api.js +3 -3
  66. package/icc-x-api/icc-document-x-api.js.map +1 -1
  67. package/icc-x-api/icc-form-x-api.js +3 -3
  68. package/icc-x-api/icc-form-x-api.js.map +1 -1
  69. package/icc-x-api/icc-hcparty-x-api.js +4 -4
  70. package/icc-x-api/icc-hcparty-x-api.js.map +1 -1
  71. package/icc-x-api/icc-helement-x-api.d.ts +1 -1
  72. package/icc-x-api/icc-helement-x-api.js +34 -29
  73. package/icc-x-api/icc-helement-x-api.js.map +1 -1
  74. package/icc-x-api/icc-maintenance-task-x-api.js +5 -6
  75. package/icc-x-api/icc-maintenance-task-x-api.js.map +1 -1
  76. package/icc-x-api/icc-patient-x-api.d.ts +1 -1
  77. package/icc-x-api/icc-patient-x-api.js +65 -53
  78. package/icc-x-api/icc-patient-x-api.js.map +1 -1
  79. package/icc-x-api/index.d.ts +1 -2
  80. package/icc-x-api/index.js +9 -8
  81. package/icc-x-api/index.js.map +1 -1
  82. package/icc-x-api/utils/binary-utils.js +5 -5
  83. package/icc-x-api/utils/binary-utils.js.map +1 -1
  84. package/icc-x-api/utils/crypto-utils.d.ts +61 -0
  85. package/icc-x-api/utils/crypto-utils.js +245 -0
  86. package/icc-x-api/utils/crypto-utils.js.map +1 -0
  87. package/icc-x-api/utils/formatting-util.js +3 -3
  88. package/icc-x-api/utils/formatting-util.js.map +1 -1
  89. package/icc-x-api/utils/functional-util.d.ts +1 -0
  90. package/icc-x-api/utils/functional-util.js +8 -1
  91. package/icc-x-api/utils/functional-util.js.map +1 -1
  92. package/icc-x-api/utils/index.d.ts +1 -0
  93. package/icc-x-api/utils/index.js +6 -1
  94. package/icc-x-api/utils/index.js.map +1 -1
  95. package/index.js +5 -1
  96. package/index.js.map +1 -1
  97. package/node-compat.d.ts +1 -1
  98. package/node-compat.js +3 -3
  99. package/node-compat.js.map +1 -1
  100. package/package.json +2 -2
  101. package/icc-x-api/crypto/utils.d.ts +0 -68
  102. package/icc-x-api/crypto/utils.js +0 -239
  103. package/icc-x-api/crypto/utils.js.map +0 -1
@@ -134,7 +134,7 @@ function ua2hex(_ua) {
134
134
  exports.ua2hex = ua2hex;
135
135
  function b64_2uas(s) {
136
136
  const sliceSize = 1024;
137
- const byteCharacters = ModelHelper_1.a2b(s);
137
+ const byteCharacters = (0, ModelHelper_1.a2b)(s);
138
138
  const bytesLength = byteCharacters.length;
139
139
  const slicesCount = Math.ceil(bytesLength / sliceSize);
140
140
  const byteArrays = new Array(slicesCount);
@@ -151,19 +151,19 @@ function b64_2uas(s) {
151
151
  }
152
152
  exports.b64_2uas = b64_2uas;
153
153
  function ua2b64Url(ua) {
154
- return ModelHelper_1.ua2b64(ua).replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, '');
154
+ return (0, ModelHelper_1.ua2b64)(ua).replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, '');
155
155
  }
156
156
  exports.ua2b64Url = ua2b64Url;
157
157
  function b64Url2ua(ua) {
158
- return ModelHelper_1.b64_2ua(ua.replace(/-/g, '+').replace(/_/g, '/').replace(/=/g, '') + (ua.length % 4 === 3 ? '=' : ua.length % 4 === 2 ? '==' : ''));
158
+ return (0, ModelHelper_1.b64_2ua)(ua.replace(/-/g, '+').replace(/_/g, '/').replace(/=/g, '') + (ua.length % 4 === 3 ? '=' : ua.length % 4 === 2 ? '==' : ''));
159
159
  }
160
160
  exports.b64Url2ua = b64Url2ua;
161
161
  function hex2string(hexStr) {
162
- return ModelHelper_1.ua2string(hex2ua(hexStr));
162
+ return (0, ModelHelper_1.ua2string)(hex2ua(hexStr));
163
163
  }
164
164
  exports.hex2string = hex2string;
165
165
  function string2hex(text) {
166
- return ua2hex(ModelHelper_1.string2ua(text));
166
+ return ua2hex((0, ModelHelper_1.string2ua)(text));
167
167
  }
168
168
  exports.string2hex = string2hex;
169
169
  //# sourceMappingURL=binary-utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"binary-utils.js","sourceRoot":"","sources":["../../../icc-x-api/utils/binary-utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { ua2string, string2ua, string2ab, ua2ab, b64_2ab, b64_2ua, ua2b64, b2a, a2b } from '../../icc-api/model/ModelHelper'\nexport { ua2string, string2ua, string2ab, ua2ab, b64_2ab, b64_2ua, ua2b64, b2a, a2b }\n\nconst textDecoder = typeof TextDecoder !== 'undefined' ? new TextDecoder() : null\nconst textEncoder = typeof TextEncoder !== 'undefined' ? new TextEncoder() : null\n\nexport function utf8_2ua(str: string): Uint8Array {\n if (textEncoder) {\n return textEncoder.encode(str)\n }\n\n const utf8 = new Uint8Array(4 * str.length)\n let j = 0\n for (let i = 0; i < str.length; i++) {\n let charcode = str.charCodeAt(i)\n if (charcode < 0x80) {\n utf8.set([charcode], j++)\n } else if (charcode < 0x800) {\n utf8.set([0xc0 | (charcode >> 6), 0x80 | (charcode & 0x3f)], j)\n j += 2\n } else if (charcode < 0xd800 || charcode >= 0xe000) {\n utf8.set([0xe0 | (charcode >> 12), 0x80 | ((charcode >> 6) & 0x3f), 0x80 | (charcode & 0x3f)], j)\n j += 3\n } else {\n i++\n // UTF-16 encodes 0x10000-0x10FFFF by\n // subtracting 0x10000 and splitting the\n // 20 bits of 0x0-0xFFFFF into two halves\n charcode = 0x10000 + (((charcode & 0x3ff) << 10) | (str.charCodeAt(i) & 0x3ff))\n utf8.set([0xf0 | (charcode >> 18), 0x80 | ((charcode >> 12) & 0x3f), 0x80 | ((charcode >> 6) & 0x3f), 0x80 | (charcode & 0x3f)], j)\n j += 4\n }\n }\n return utf8.subarray(0, j)\n}\n\n/**\n * Uint8Array/ArrayBuffer to utf-8 strring\n * @param _ua {Uint8Array} or ArrayBuffer\n * @returns {String} a UTF-8 encoded string\n */\nexport function ua2utf8(_ua: Uint8Array | ArrayBuffer): string {\n if (textDecoder) {\n // if _ua is undefined, imitate the JS implementation below which returns an empty string\n return _ua ? textDecoder.decode(_ua) : ''\n }\n\n let out, i, len, c, u\n let char2, char3, char4\n\n // avoid applying the Uint8Array constructor: on ArrayBuffer it creates a\n // view but on Uint8Array it creates a copy\n const array = ArrayBuffer.isView(_ua) ? _ua : new Uint8Array(_ua)\n\n out = ''\n len = array.length || array.byteLength\n i = 0\n while (i < len) {\n c = array[i++]\n switch (c >> 4) {\n case 0:\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n case 6:\n case 7:\n // 0xxxxxxx\n out += String.fromCharCode(c)\n break\n case 12:\n case 13:\n // 110x xxxx 10xx xxxx\n char2 = array[i++]\n out += String.fromCharCode(((c & 0x1f) << 6) | (char2 & 0x3f))\n break\n case 14:\n // 1110 xxxx 10xx xxxx 10xx xxxx\n char2 = array[i++]\n char3 = array[i++]\n out += String.fromCharCode(((c & 0x0f) << 12) | ((char2 & 0x3f) << 6) | ((char3 & 0x3f) << 0))\n break\n case 15:\n // 1111 xxxx 10xx xxxx 10xx xxxx 10xx xxxx\n char2 = array[i++]\n char3 = array[i++]\n char4 = array[i++]\n u = ((c & 0x07) << 18) | ((char2 & 0x3f) << 12) | ((char3 & 0x3f) << 6) | (((char4 & 0x3f) << 0) - 0x10000)\n out += String.fromCharCode(0xd800 + (u >> 10))\n out += String.fromCharCode(0xdc00 + (u & 1023))\n break\n }\n }\n\n return out\n}\n\nexport function hex2ua(s: string): Uint8Array {\n const ua = new Uint8Array(s.length / 2)\n s = s.toLowerCase()\n for (let i = 0; i < s.length; i += 2) {\n ua[i / 2] =\n (s.charCodeAt(i) < 58 ? s.charCodeAt(i) - 48 : s.charCodeAt(i) - 87) * 16 +\n (s.charCodeAt(i + 1) < 58 ? s.charCodeAt(i + 1) - 48 : s.charCodeAt(i + 1) - 87)\n }\n return ua\n}\n\n/**\n * Uint8Array/ArrayBuffer to hex String\n *\n * @param _ua {Uint8Array} or ArrayBuffer\n * @returns {String} Hex String\n */\nexport function ua2hex(_ua: Uint8Array | ArrayBuffer): string {\n let s = ''\n const ua = new Uint8Array(_ua)\n for (let i = 0; i < ua.length; i++) {\n const hhb = (ua[i] & 0xf0) >> 4\n const lhb = ua[i] & 0x0f\n s += String.fromCharCode(hhb > 9 ? hhb + 87 : hhb + 48)\n s += String.fromCharCode(lhb > 9 ? lhb + 87 : lhb + 48)\n }\n\n return s\n}\n\nexport function b64_2uas(s: string): Array<Uint8Array> {\n const sliceSize = 1024\n const byteCharacters = a2b(s)\n const bytesLength = byteCharacters.length\n const slicesCount = Math.ceil(bytesLength / sliceSize)\n const byteArrays = new Array(slicesCount)\n\n for (let sliceIndex = 0; sliceIndex < slicesCount; ++sliceIndex) {\n const begin = sliceIndex * sliceSize\n const end = Math.min(begin + sliceSize, bytesLength)\n\n const bytes = new Array(end - begin)\n for (let offset = begin, i = 0; offset < end; ++i, ++offset) {\n bytes[i] = byteCharacters[offset].charCodeAt(0)\n }\n byteArrays[sliceIndex] = new Uint8Array(bytes)\n }\n return byteArrays\n}\n\nexport function ua2b64Url(ua: Uint8Array | ArrayBuffer): string {\n return ua2b64(ua).replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=/g, '')\n}\n\nexport function b64Url2ua(ua: string): ArrayBuffer {\n return b64_2ua(ua.replace(/-/g, '+').replace(/_/g, '/').replace(/=/g, '') + (ua.length % 4 === 3 ? '=' : ua.length % 4 === 2 ? '==' : ''))\n}\n\nexport function hex2string(hexStr: string): string {\n return ua2string(hex2ua(hexStr))\n}\n\nexport function string2hex(text: string): string {\n return ua2hex(string2ua(text))\n}\n"]}
1
+ {"version":3,"file":"binary-utils.js","sourceRoot":"","sources":["../../../icc-x-api/utils/binary-utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { ua2string, string2ua, string2ab, ua2ab, b64_2ab, b64_2ua, ua2b64, b2a, a2b } from '../../icc-api/model/ModelHelper'\nexport { ua2string, string2ua, string2ab, ua2ab, b64_2ab, b64_2ua, ua2b64, b2a, a2b }\n\nconst textDecoder = typeof TextDecoder !== 'undefined' ? new TextDecoder() : null\nconst textEncoder = typeof TextEncoder !== 'undefined' ? new TextEncoder() : null\n\nexport function utf8_2ua(str: string): Uint8Array {\n if (textEncoder) {\n return textEncoder.encode(str)\n }\n\n const utf8 = new Uint8Array(4 * str.length)\n let j = 0\n for (let i = 0; i < str.length; i++) {\n let charcode = str.charCodeAt(i)\n if (charcode < 0x80) {\n utf8.set([charcode], j++)\n } else if (charcode < 0x800) {\n utf8.set([0xc0 | (charcode >> 6), 0x80 | (charcode & 0x3f)], j)\n j += 2\n } else if (charcode < 0xd800 || charcode >= 0xe000) {\n utf8.set([0xe0 | (charcode >> 12), 0x80 | ((charcode >> 6) & 0x3f), 0x80 | (charcode & 0x3f)], j)\n j += 3\n } else {\n i++\n // UTF-16 encodes 0x10000-0x10FFFF by\n // subtracting 0x10000 and splitting the\n // 20 bits of 0x0-0xFFFFF into two halves\n charcode = 0x10000 + (((charcode & 0x3ff) << 10) | (str.charCodeAt(i) & 0x3ff))\n utf8.set([0xf0 | (charcode >> 18), 0x80 | ((charcode >> 12) & 0x3f), 0x80 | ((charcode >> 6) & 0x3f), 0x80 | (charcode & 0x3f)], j)\n j += 4\n }\n }\n return utf8.subarray(0, j)\n}\n\n/**\n * Uint8Array/ArrayBuffer to utf-8 strring\n * @param _ua {Uint8Array} or ArrayBuffer\n * @returns {String} a UTF-8 encoded string\n */\nexport function ua2utf8(_ua: Uint8Array | ArrayBuffer): string {\n if (textDecoder) {\n // if _ua is undefined, imitate the JS implementation below which returns an empty string\n return _ua ? textDecoder.decode(_ua) : ''\n }\n\n let out, i, len, c, u\n let char2, char3, char4\n\n // avoid applying the Uint8Array constructor: on ArrayBuffer it creates a\n // view but on Uint8Array it creates a copy\n const array = ArrayBuffer.isView(_ua) ? _ua : new Uint8Array(_ua)\n\n out = ''\n len = array.length || array.byteLength\n i = 0\n while (i < len) {\n c = array[i++]\n switch (c >> 4) {\n case 0:\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n case 6:\n case 7:\n // 0xxxxxxx\n out += String.fromCharCode(c)\n break\n case 12:\n case 13:\n // 110x xxxx 10xx xxxx\n char2 = array[i++]\n out += String.fromCharCode(((c & 0x1f) << 6) | (char2 & 0x3f))\n break\n case 14:\n // 1110 xxxx 10xx xxxx 10xx xxxx\n char2 = array[i++]\n char3 = array[i++]\n out += String.fromCharCode(((c & 0x0f) << 12) | ((char2 & 0x3f) << 6) | ((char3 & 0x3f) << 0))\n break\n case 15:\n // 1111 xxxx 10xx xxxx 10xx xxxx 10xx xxxx\n char2 = array[i++]\n char3 = array[i++]\n char4 = array[i++]\n u = ((c & 0x07) << 18) | ((char2 & 0x3f) << 12) | ((char3 & 0x3f) << 6) | (((char4 & 0x3f) << 0) - 0x10000)\n out += String.fromCharCode(0xd800 + (u >> 10))\n out += String.fromCharCode(0xdc00 + (u & 1023))\n break\n }\n }\n\n return out\n}\n\nexport function hex2ua(s: string): Uint8Array {\n const ua = new Uint8Array(s.length / 2)\n s = s.toLowerCase()\n for (let i = 0; i < s.length; i += 2) {\n ua[i / 2] =\n (s.charCodeAt(i) < 58 ? s.charCodeAt(i) - 48 : s.charCodeAt(i) - 87) * 16 +\n (s.charCodeAt(i + 1) < 58 ? s.charCodeAt(i + 1) - 48 : s.charCodeAt(i + 1) - 87)\n }\n return ua\n}\n\n/**\n * Uint8Array/ArrayBuffer to hex String\n *\n * @param _ua {Uint8Array} or ArrayBuffer\n * @returns {String} Hex String\n */\nexport function ua2hex(_ua: Uint8Array | ArrayBuffer): string {\n let s = ''\n const ua = new Uint8Array(_ua)\n for (let i = 0; i < ua.length; i++) {\n const hhb = (ua[i] & 0xf0) >> 4\n const lhb = ua[i] & 0x0f\n s += String.fromCharCode(hhb > 9 ? hhb + 87 : hhb + 48)\n s += String.fromCharCode(lhb > 9 ? lhb + 87 : lhb + 48)\n }\n\n return s\n}\n\nexport function b64_2uas(s: string): Array<Uint8Array> {\n const sliceSize = 1024\n const byteCharacters = a2b(s)\n const bytesLength = byteCharacters.length\n const slicesCount = Math.ceil(bytesLength / sliceSize)\n const byteArrays = new Array(slicesCount)\n\n for (let sliceIndex = 0; sliceIndex < slicesCount; ++sliceIndex) {\n const begin = sliceIndex * sliceSize\n const end = Math.min(begin + sliceSize, bytesLength)\n\n const bytes = new Array(end - begin)\n for (let offset = begin, i = 0; offset < end; ++i, ++offset) {\n bytes[i] = byteCharacters[offset].charCodeAt(0)\n }\n byteArrays[sliceIndex] = new Uint8Array(bytes)\n }\n return byteArrays\n}\n\nexport function ua2b64Url(ua: Uint8Array | ArrayBuffer): string {\n return ua2b64(ua).replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=/g, '')\n}\n\nexport function b64Url2ua(ua: string): ArrayBuffer {\n return b64_2ua(ua.replace(/-/g, '+').replace(/_/g, '/').replace(/=/g, '') + (ua.length % 4 === 3 ? '=' : ua.length % 4 === 2 ? '==' : ''))\n}\n\nexport function hex2string(hexStr: string): string {\n return ua2string(hex2ua(hexStr))\n}\n\nexport function string2hex(text: string): string {\n return ua2hex(string2ua(text))\n}\n"]}
@@ -0,0 +1,61 @@
1
+ export declare function notConcurrent<T>(concurrencyMap: {
2
+ [key: string]: PromiseLike<T>;
3
+ }, key: string, proc: () => PromiseLike<T>): PromiseLike<T>;
4
+ export declare function jwk2pkcs8(jwk: any): string;
5
+ export declare function jwk2spki(jwk: any): string;
6
+ export declare function spkiToJwk(buf: Uint8Array): {
7
+ kty: string;
8
+ alg: string;
9
+ n: string;
10
+ e: string;
11
+ ext: boolean;
12
+ };
13
+ export declare function pkcs8ToJwk(buf: Uint8Array | ArrayBuffer): {
14
+ kty: string;
15
+ n: string;
16
+ e: string;
17
+ d: string;
18
+ p: string;
19
+ q: string;
20
+ dp: string;
21
+ dq: string;
22
+ qi: string;
23
+ };
24
+ /**
25
+ * Provide a view over the given Uint8Array where any trailing null bytes at
26
+ * the end are truncated.
27
+ *
28
+ * This can be used to ignore null bytes at the end of a padded UTF-8 string
29
+ * without needing to copy that string, assuming code point U+0000 is encoded
30
+ * in one null byte according to standards rather than in a multi-byte
31
+ * overlong form.
32
+ */
33
+ export declare function truncateTrailingNulls(a: Uint8Array): Uint8Array;
34
+ /**
35
+ *
36
+ * @param buffer1 {Uint8Array}
37
+ * @param buffer2{ Uint8Array}
38
+ * @returns {ArrayBuffer}
39
+ */
40
+ export declare function appendBuffer(buffer1: ArrayBuffer, buffer2: ArrayBuffer): ArrayBuffer;
41
+ export declare function after(d1: number | null | undefined, d2: number | null | undefined): boolean;
42
+ export declare function before(d1: number | null | undefined, d2: number | null | undefined): boolean;
43
+ /**
44
+ * Encrypt object graph recursively
45
+ *
46
+ * @param obj the object to encrypt
47
+ * @param cryptor the cryptor function (returns a promise)
48
+ * @param keys the keys to be crypted: ex for a Patient ['note', 'addresses.*.["street", "houseNumber", "telecoms.*.telecomNumber"]']
49
+ */
50
+ export declare function crypt(obj: any, cryptor: (obj: {
51
+ [key: string]: string;
52
+ }) => Promise<ArrayBuffer>, keys: Array<string>): Promise<any>;
53
+ /**
54
+ * Decrypt object graph recursively
55
+ *
56
+ * @param obj the object to encrypt
57
+ * @param decryptor the decryptor function (returns a promise)
58
+ */
59
+ export declare function decrypt(obj: any, decryptor: (obj: Uint8Array) => Promise<{
60
+ [key: string]: string;
61
+ }>): Promise<any>;
@@ -0,0 +1,245 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.decrypt = exports.crypt = exports.before = exports.after = exports.appendBuffer = exports.truncateTrailingNulls = exports.pkcs8ToJwk = exports.spkiToJwk = exports.jwk2spki = exports.jwk2pkcs8 = exports.notConcurrent = void 0;
13
+ const mm = require("moment");
14
+ const _ = require("lodash");
15
+ const binary_utils_1 = require("../utils/binary-utils");
16
+ const asn1_packer_1 = require("./asn1-packer");
17
+ const asn1_parser_1 = require("./asn1-parser");
18
+ function notConcurrent(concurrencyMap, key, proc) {
19
+ const inFlight = concurrencyMap[key];
20
+ if (!inFlight) {
21
+ return (concurrencyMap[key] = (() => __awaiter(this, void 0, void 0, function* () {
22
+ try {
23
+ return yield proc();
24
+ }
25
+ finally {
26
+ delete concurrencyMap[key];
27
+ }
28
+ }))());
29
+ }
30
+ else {
31
+ return concurrencyMap[key].then(() => notConcurrent(concurrencyMap, key, proc));
32
+ }
33
+ }
34
+ exports.notConcurrent = notConcurrent;
35
+ function jwk2pkcs8(jwk) {
36
+ return (0, asn1_packer_1.pack)([
37
+ 0x30,
38
+ [
39
+ [0x02, '00'],
40
+ [0x30, [[0x06, '2a864886f70d010101'], [0x05]]],
41
+ [
42
+ 0x04,
43
+ [
44
+ [
45
+ 0x30,
46
+ [
47
+ [0x02, '00'],
48
+ [0x02, (0, binary_utils_1.ua2hex)((0, binary_utils_1.b64Url2ua)(jwk.n))],
49
+ [0x02, (0, binary_utils_1.ua2hex)((0, binary_utils_1.b64Url2ua)(jwk.e))],
50
+ [0x02, (0, binary_utils_1.ua2hex)((0, binary_utils_1.b64Url2ua)(jwk.d))],
51
+ [0x02, (0, binary_utils_1.ua2hex)((0, binary_utils_1.b64Url2ua)(jwk.p))],
52
+ [0x02, (0, binary_utils_1.ua2hex)((0, binary_utils_1.b64Url2ua)(jwk.q))],
53
+ [0x02, (0, binary_utils_1.ua2hex)((0, binary_utils_1.b64Url2ua)(jwk.dp))],
54
+ [0x02, (0, binary_utils_1.ua2hex)((0, binary_utils_1.b64Url2ua)(jwk.dq))],
55
+ [0x02, (0, binary_utils_1.ua2hex)((0, binary_utils_1.b64Url2ua)(jwk.qi))],
56
+ ],
57
+ ],
58
+ ],
59
+ ],
60
+ ],
61
+ ]);
62
+ }
63
+ exports.jwk2pkcs8 = jwk2pkcs8;
64
+ function jwk2spki(jwk) {
65
+ return (0, asn1_packer_1.pack)([
66
+ 0x30,
67
+ [
68
+ [0x30, [[0x06, '2a864886f70d010101'], [0x05]]],
69
+ [
70
+ 0x03,
71
+ [
72
+ [
73
+ 0x30,
74
+ [
75
+ [0x02, (0, binary_utils_1.ua2hex)((0, binary_utils_1.b64Url2ua)(jwk.n))],
76
+ [0x02, (0, binary_utils_1.ua2hex)((0, binary_utils_1.b64Url2ua)(jwk.e))],
77
+ ],
78
+ ],
79
+ ],
80
+ ],
81
+ ],
82
+ ]);
83
+ }
84
+ exports.jwk2spki = jwk2spki;
85
+ function spkiToJwk(buf) {
86
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6;
87
+ const asn1 = (0, asn1_parser_1.parseAsn1)(new Uint8Array(buf));
88
+ var modulus = undefined;
89
+ var exponent = undefined;
90
+ if (asn1.type === 0x30 &&
91
+ ((_b = (_a = asn1.children) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.type) === 0x30 &&
92
+ ((_f = (_e = (_d = (_c = asn1.children) === null || _c === void 0 ? void 0 : _c[0]) === null || _d === void 0 ? void 0 : _d.children) === null || _e === void 0 ? void 0 : _e[0]) === null || _f === void 0 ? void 0 : _f.type) === 0x06 &&
93
+ (0, binary_utils_1.ua2hex)((_l = (_k = (_j = (_h = (_g = asn1.children) === null || _g === void 0 ? void 0 : _g[0]) === null || _h === void 0 ? void 0 : _h.children) === null || _j === void 0 ? void 0 : _j[0]) === null || _k === void 0 ? void 0 : _k.value) !== null && _l !== void 0 ? _l : new Uint8Array(0)) === '2a864886f70d010101') {
94
+ modulus = (_s = (_r = (_q = (_p = (_o = (_m = asn1.children) === null || _m === void 0 ? void 0 : _m[1]) === null || _o === void 0 ? void 0 : _o.children) === null || _p === void 0 ? void 0 : _p[0]) === null || _q === void 0 ? void 0 : _q.children) === null || _r === void 0 ? void 0 : _r[0]) === null || _s === void 0 ? void 0 : _s.value;
95
+ exponent = (_y = (_x = (_w = (_v = (_u = (_t = asn1.children) === null || _t === void 0 ? void 0 : _t[1]) === null || _u === void 0 ? void 0 : _u.children) === null || _v === void 0 ? void 0 : _v[0]) === null || _w === void 0 ? void 0 : _w.children) === null || _x === void 0 ? void 0 : _x[1]) === null || _y === void 0 ? void 0 : _y.value;
96
+ }
97
+ else if (asn1.type === 0x30 && ((_0 = (_z = asn1.children) === null || _z === void 0 ? void 0 : _z[0]) === null || _0 === void 0 ? void 0 : _0.type) === 0x02 && ((_2 = (_1 = asn1.children) === null || _1 === void 0 ? void 0 : _1[1]) === null || _2 === void 0 ? void 0 : _2.type) === 0x02) {
98
+ modulus = (_4 = (_3 = asn1.children) === null || _3 === void 0 ? void 0 : _3[0]) === null || _4 === void 0 ? void 0 : _4.value;
99
+ exponent = (_6 = (_5 = asn1.children) === null || _5 === void 0 ? void 0 : _5[1]) === null || _6 === void 0 ? void 0 : _6.value;
100
+ }
101
+ if (!modulus || !exponent) {
102
+ throw new Error('Invalid spki format');
103
+ }
104
+ return {
105
+ kty: 'RSA',
106
+ alg: 'RSA-OAEP',
107
+ ext: true,
108
+ n: (0, binary_utils_1.ua2b64Url)(minimalRep(modulus)),
109
+ e: (0, binary_utils_1.ua2b64Url)(minimalRep(exponent)),
110
+ };
111
+ }
112
+ exports.spkiToJwk = spkiToJwk;
113
+ function pkcs8ToJwk(buf) {
114
+ var _a, _b;
115
+ const parsed = (0, asn1_parser_1.parseAsn1)(new Uint8Array(buf));
116
+ const seq = ((_a = parsed.children) === null || _a === void 0 ? void 0 : _a.length) === 3 && parsed.children[2].type === 0x04 && ((_b = parsed.children[2].children) === null || _b === void 0 ? void 0 : _b.length) === 1
117
+ ? parsed.children[2].children[0]
118
+ : parsed;
119
+ return {
120
+ kty: 'RSA',
121
+ n: (0, binary_utils_1.ua2b64Url)(minimalRep(seq.children[1].value)),
122
+ e: (0, binary_utils_1.ua2b64Url)(minimalRep(seq.children[2].value)),
123
+ d: (0, binary_utils_1.ua2b64Url)(minimalRep(seq.children[3].value)),
124
+ p: (0, binary_utils_1.ua2b64Url)(minimalRep(seq.children[4].value)),
125
+ q: (0, binary_utils_1.ua2b64Url)(minimalRep(seq.children[5].value)),
126
+ dp: (0, binary_utils_1.ua2b64Url)(minimalRep(seq.children[6].value)),
127
+ dq: (0, binary_utils_1.ua2b64Url)(minimalRep(seq.children[7].value)),
128
+ qi: (0, binary_utils_1.ua2b64Url)(minimalRep(seq.children[8].value)),
129
+ };
130
+ }
131
+ exports.pkcs8ToJwk = pkcs8ToJwk;
132
+ function minimalRep(b) {
133
+ let i = 0;
134
+ while (b[i] === 0) {
135
+ i++;
136
+ }
137
+ return b.slice(i);
138
+ }
139
+ /**
140
+ * Provide a view over the given Uint8Array where any trailing null bytes at
141
+ * the end are truncated.
142
+ *
143
+ * This can be used to ignore null bytes at the end of a padded UTF-8 string
144
+ * without needing to copy that string, assuming code point U+0000 is encoded
145
+ * in one null byte according to standards rather than in a multi-byte
146
+ * overlong form.
147
+ */
148
+ function truncateTrailingNulls(a) {
149
+ let end = a.byteLength - 1;
150
+ while (a[end] === 0 && end >= 0) {
151
+ end--;
152
+ }
153
+ // end is now either the last non-null position in a or -1; in the latter
154
+ // case the returned array will have length 0.
155
+ return a.subarray(0, end + 1);
156
+ }
157
+ exports.truncateTrailingNulls = truncateTrailingNulls;
158
+ /**
159
+ *
160
+ * @param buffer1 {Uint8Array}
161
+ * @param buffer2{ Uint8Array}
162
+ * @returns {ArrayBuffer}
163
+ */
164
+ function appendBuffer(buffer1, buffer2) {
165
+ const tmp = new Uint8Array(buffer1.byteLength + buffer2.byteLength);
166
+ tmp.set(new Uint8Array(buffer1), 0);
167
+ tmp.set(new Uint8Array(buffer2), buffer1.byteLength);
168
+ return tmp.buffer;
169
+ }
170
+ exports.appendBuffer = appendBuffer;
171
+ //Convenience methods for dates management
172
+ function after(d1, d2) {
173
+ return d1 === null || d2 === null || d1 === undefined || d2 === undefined || moment(d1).isAfter(moment(d2));
174
+ }
175
+ exports.after = after;
176
+ function before(d1, d2) {
177
+ return d1 === null || d2 === null || d1 === undefined || d2 === undefined || moment(d1).isBefore(moment(d2));
178
+ }
179
+ exports.before = before;
180
+ function moment(epochOrLongCalendar) {
181
+ if (!epochOrLongCalendar && epochOrLongCalendar !== 0) {
182
+ return null;
183
+ }
184
+ if (epochOrLongCalendar >= 18000101 && epochOrLongCalendar < 25400000) {
185
+ return mm('' + epochOrLongCalendar, 'YYYYMMDD');
186
+ }
187
+ else if (epochOrLongCalendar >= 18000101000000) {
188
+ return mm('' + epochOrLongCalendar, 'YYYYMMDDHHmmss');
189
+ }
190
+ else {
191
+ return mm(epochOrLongCalendar);
192
+ }
193
+ }
194
+ /**
195
+ * Encrypt object graph recursively
196
+ *
197
+ * @param obj the object to encrypt
198
+ * @param cryptor the cryptor function (returns a promise)
199
+ * @param keys the keys to be crypted: ex for a Patient ['note', 'addresses.*.["street", "houseNumber", "telecoms.*.telecomNumber"]']
200
+ */
201
+ function crypt(obj, cryptor, keys) {
202
+ return __awaiter(this, void 0, void 0, function* () {
203
+ const subObj = _.pick(obj, keys.filter((k) => !k.includes('*')));
204
+ obj.encryptedSelf = (0, binary_utils_1.b2a)((0, binary_utils_1.ua2string)(yield cryptor(subObj)));
205
+ Object.keys(subObj).forEach((k) => delete obj[k]);
206
+ yield keys
207
+ .filter((k) => k.includes('*'))
208
+ .reduce((prev, k) => __awaiter(this, void 0, void 0, function* () {
209
+ yield prev;
210
+ const k1 = k.split('.*.')[0];
211
+ const k2 = k.substr(k1.length + 3);
212
+ const mapped = yield Promise.all((_.get(obj, k1) || []).map((so) => crypt(so, cryptor, k2.startsWith('[') ? JSON.parse(k2) : [k2])));
213
+ _.set(obj, k1, mapped);
214
+ }), Promise.resolve());
215
+ return obj;
216
+ });
217
+ }
218
+ exports.crypt = crypt;
219
+ /**
220
+ * Decrypt object graph recursively
221
+ *
222
+ * @param obj the object to encrypt
223
+ * @param decryptor the decryptor function (returns a promise)
224
+ */
225
+ function decrypt(obj, decryptor) {
226
+ return __awaiter(this, void 0, void 0, function* () {
227
+ yield Object.keys(obj).reduce((prev, k) => __awaiter(this, void 0, void 0, function* () {
228
+ yield prev;
229
+ if (Array.isArray(obj[k])) {
230
+ yield obj[k]
231
+ .filter((o) => typeof o === 'object' && o !== null)
232
+ .reduce((prev, so) => __awaiter(this, void 0, void 0, function* () {
233
+ yield prev;
234
+ yield decrypt(so, decryptor);
235
+ }), Promise.resolve());
236
+ }
237
+ }), Promise.resolve());
238
+ if (obj.encryptedSelf) {
239
+ Object.assign(obj, yield decryptor((0, binary_utils_1.string2ua)((0, binary_utils_1.a2b)(obj.encryptedSelf))));
240
+ }
241
+ return obj;
242
+ });
243
+ }
244
+ exports.decrypt = decrypt;
245
+ //# sourceMappingURL=crypto-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto-utils.js","sourceRoot":"","sources":["../../../icc-x-api/utils/crypto-utils.ts"],"names":[],"mappings":"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","sourcesContent":["import * as mm from 'moment'\nimport { Moment } from 'moment'\nimport * as _ from 'lodash'\nimport { a2b, b2a, b64Url2ua, string2ua, ua2b64Url, ua2hex, ua2string } from '../utils/binary-utils'\nimport { pack } from './asn1-packer'\nimport { parseAsn1 } from './asn1-parser'\n\nexport function notConcurrent<T>(concurrencyMap: { [key: string]: PromiseLike<T> }, key: string, proc: () => PromiseLike<T>): PromiseLike<T> {\n const inFlight = concurrencyMap[key]\n if (!inFlight) {\n return (concurrencyMap[key] = (async () => {\n try {\n return await proc()\n } finally {\n delete concurrencyMap[key]\n }\n })())\n } else {\n return concurrencyMap[key].then(() => notConcurrent(concurrencyMap, key, proc))\n }\n}\n\nexport function jwk2pkcs8(jwk: any): string {\n return pack([\n 0x30,\n [\n [0x02, '00'],\n [0x30, [[0x06, '2a864886f70d010101'], [0x05]]],\n [\n 0x04,\n [\n [\n 0x30,\n [\n [0x02, '00'],\n [0x02, ua2hex(b64Url2ua(jwk.n))],\n [0x02, ua2hex(b64Url2ua(jwk.e))],\n [0x02, ua2hex(b64Url2ua(jwk.d))],\n [0x02, ua2hex(b64Url2ua(jwk.p))],\n [0x02, ua2hex(b64Url2ua(jwk.q))],\n [0x02, ua2hex(b64Url2ua(jwk.dp))],\n [0x02, ua2hex(b64Url2ua(jwk.dq))],\n [0x02, ua2hex(b64Url2ua(jwk.qi))],\n ],\n ],\n ],\n ],\n ],\n ])\n}\n\nexport function jwk2spki(jwk: any): string {\n return pack([\n 0x30,\n [\n [0x30, [[0x06, '2a864886f70d010101'], [0x05]]],\n [\n 0x03,\n [\n [\n 0x30,\n [\n [0x02, ua2hex(b64Url2ua(jwk.n))],\n [0x02, ua2hex(b64Url2ua(jwk.e))],\n ],\n ],\n ],\n ],\n ],\n ])\n}\n\nexport function spkiToJwk(buf: Uint8Array): { kty: string; alg: string; n: string; e: string; ext: boolean } {\n const asn1 = parseAsn1(new Uint8Array(buf))\n\n var modulus: Uint8Array | undefined = undefined\n var exponent: Uint8Array | undefined = undefined\n if (\n asn1.type === 0x30 &&\n asn1.children?.[0]?.type === 0x30 &&\n asn1.children?.[0]?.children?.[0]?.type === 0x06 &&\n ua2hex(asn1.children?.[0]?.children?.[0]?.value ?? new Uint8Array(0)) === '2a864886f70d010101'\n ) {\n modulus = asn1.children?.[1]?.children?.[0]?.children?.[0]?.value\n exponent = asn1.children?.[1]?.children?.[0]?.children?.[1]?.value\n } else if (asn1.type === 0x30 && asn1.children?.[0]?.type === 0x02 && asn1.children?.[1]?.type === 0x02) {\n modulus = asn1.children?.[0]?.value\n exponent = asn1.children?.[1]?.value\n }\n\n if (!modulus || !exponent) {\n throw new Error('Invalid spki format')\n }\n return {\n kty: 'RSA',\n alg: 'RSA-OAEP',\n ext: true,\n n: ua2b64Url(minimalRep(modulus)),\n e: ua2b64Url(minimalRep(exponent)),\n }\n}\n\nexport function pkcs8ToJwk(buf: Uint8Array | ArrayBuffer) {\n const parsed = parseAsn1(new Uint8Array(buf))\n const seq =\n parsed.children?.length === 3 && parsed.children[2].type === 0x04 && parsed.children[2].children?.length === 1\n ? parsed.children[2].children[0]\n : parsed\n return {\n kty: 'RSA',\n n: ua2b64Url(minimalRep(seq.children![1].value as Uint8Array)),\n e: ua2b64Url(minimalRep(seq.children![2].value as Uint8Array)),\n d: ua2b64Url(minimalRep(seq.children![3].value as Uint8Array)),\n p: ua2b64Url(minimalRep(seq.children![4].value as Uint8Array)),\n q: ua2b64Url(minimalRep(seq.children![5].value as Uint8Array)),\n dp: ua2b64Url(minimalRep(seq.children![6].value as Uint8Array)),\n dq: ua2b64Url(minimalRep(seq.children![7].value as Uint8Array)),\n qi: ua2b64Url(minimalRep(seq.children![8].value as Uint8Array)),\n }\n}\n\nfunction minimalRep(b: Uint8Array) {\n let i = 0\n while (b[i] === 0) {\n i++\n }\n return b.slice(i)\n}\n\n/**\n * Provide a view over the given Uint8Array where any trailing null bytes at\n * the end are truncated.\n *\n * This can be used to ignore null bytes at the end of a padded UTF-8 string\n * without needing to copy that string, assuming code point U+0000 is encoded\n * in one null byte according to standards rather than in a multi-byte\n * overlong form.\n */\nexport function truncateTrailingNulls(a: Uint8Array) {\n let end = a.byteLength - 1\n while (a[end] === 0 && end >= 0) {\n end--\n }\n // end is now either the last non-null position in a or -1; in the latter\n // case the returned array will have length 0.\n return a.subarray(0, end + 1)\n}\n\n/**\n *\n * @param buffer1 {Uint8Array}\n * @param buffer2{ Uint8Array}\n * @returns {ArrayBuffer}\n */\nexport function appendBuffer(buffer1: ArrayBuffer, buffer2: ArrayBuffer): ArrayBuffer {\n const tmp = new Uint8Array(buffer1.byteLength + buffer2.byteLength)\n tmp.set(new Uint8Array(buffer1), 0)\n tmp.set(new Uint8Array(buffer2), buffer1.byteLength)\n return tmp.buffer as ArrayBuffer\n}\n\n//Convenience methods for dates management\nexport function after(d1: number | null | undefined, d2: number | null | undefined): boolean {\n return d1 === null || d2 === null || d1 === undefined || d2 === undefined || moment(d1)!.isAfter(moment(d2)!)\n}\n\nexport function before(d1: number | null | undefined, d2: number | null | undefined): boolean {\n return d1 === null || d2 === null || d1 === undefined || d2 === undefined || moment(d1)!.isBefore(moment(d2)!)\n}\n\nfunction moment(epochOrLongCalendar: number): Moment | null {\n if (!epochOrLongCalendar && epochOrLongCalendar !== 0) {\n return null\n }\n if (epochOrLongCalendar >= 18000101 && epochOrLongCalendar < 25400000) {\n return mm('' + epochOrLongCalendar, 'YYYYMMDD')\n } else if (epochOrLongCalendar >= 18000101000000) {\n return mm('' + epochOrLongCalendar, 'YYYYMMDDHHmmss')\n } else {\n return mm(epochOrLongCalendar)\n }\n}\n\n/**\n * Encrypt object graph recursively\n *\n * @param obj the object to encrypt\n * @param cryptor the cryptor function (returns a promise)\n * @param keys the keys to be crypted: ex for a Patient ['note', 'addresses.*.[\"street\", \"houseNumber\", \"telecoms.*.telecomNumber\"]']\n */\nexport async function crypt(obj: any, cryptor: (obj: { [key: string]: string }) => Promise<ArrayBuffer>, keys: Array<string>) {\n const subObj = _.pick(\n obj,\n keys.filter((k) => !k.includes('*'))\n )\n obj.encryptedSelf = b2a(ua2string(await cryptor(subObj)))\n Object.keys(subObj).forEach((k) => delete obj[k])\n\n await keys\n .filter((k) => k.includes('*'))\n .reduce(async (prev: Promise<void>, k: any) => {\n await prev\n const k1 = k.split('.*.')[0]\n const k2 = k.substr(k1.length + 3)\n\n const mapped = await Promise.all((_.get(obj, k1) || []).map((so: any) => crypt(so, cryptor, k2.startsWith('[') ? JSON.parse(k2) : [k2])))\n _.set(obj, k1, mapped)\n }, Promise.resolve())\n\n return obj\n}\n\n/**\n * Decrypt object graph recursively\n *\n * @param obj the object to encrypt\n * @param decryptor the decryptor function (returns a promise)\n */\nexport async function decrypt(obj: any, decryptor: (obj: Uint8Array) => Promise<{ [key: string]: string }>) {\n await Object.keys(obj).reduce(async (prev: Promise<void>, k: any) => {\n await prev\n if (Array.isArray(obj[k])) {\n await (obj[k] as Array<any>)\n .filter((o) => typeof o === 'object' && o !== null)\n .reduce(async (prev: Promise<void>, so: any) => {\n await prev\n await decrypt(so, decryptor)\n }, Promise.resolve())\n }\n }, Promise.resolve())\n if (obj.encryptedSelf) {\n Object.assign(obj, await decryptor(string2ua(a2b(obj.encryptedSelf))))\n }\n return obj\n}\n"]}
@@ -78,16 +78,16 @@ export function phoneNumberFormat(phoneNumber: string): string {
78
78
  }
79
79
  */
80
80
  function phoneNumberValidate(phoneNumber) {
81
- return libphonenumber_js_1.isValidNumber(phoneNumber);
81
+ return (0, libphonenumber_js_1.isValidNumber)(phoneNumber);
82
82
  }
83
83
  exports.phoneNumberValidate = phoneNumberValidate;
84
84
  function phoneNumberFormat(phoneNumber) {
85
- const parsedPhoneNumber = libphonenumber_js_1.parseNumber(phoneNumber, DEFAULT_COUNTRY);
85
+ const parsedPhoneNumber = (0, libphonenumber_js_1.parseNumber)(phoneNumber, DEFAULT_COUNTRY);
86
86
  if (_.isEmpty(parsedPhoneNumber)) {
87
87
  // The number is not valid, so we leave the input string as-is.
88
88
  return phoneNumber;
89
89
  }
90
- return libphonenumber_js_1.formatNumber(parsedPhoneNumber, 'International');
90
+ return (0, libphonenumber_js_1.formatNumber)(parsedPhoneNumber, 'International');
91
91
  }
92
92
  exports.phoneNumberFormat = phoneNumberFormat;
93
93
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"formatting-util.js","sourceRoot":"","sources":["../../../icc-x-api/utils/formatting-util.ts"],"names":[],"mappings":"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","sourcesContent":["import { parseNumber, formatNumber, isValidNumber, ParsedNumber } from 'libphonenumber-js'\n\nimport * as moment from 'moment'\nimport * as _ from 'lodash'\nimport { Moment } from 'moment'\n\n// TODO: move this to env.js?\nconst DEFAULT_COUNTRY = 'BE'\n\nexport const nihiiRegExp = new RegExp('^(\\\\d{1})(\\\\d{5})(\\\\d{2})(\\\\d{3})$')\nexport const ssinRegExp = new RegExp('^(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{2})$')\nexport const ibanRegExp = new RegExp('^(\\\\d{4})(\\\\d{4})(\\\\d{4})(\\\\d{4})$')\n\nconst patterns = {\n IBAN: (iban: string) => /^BE\\d{14}$/.test(iban) && isValidIBAN(iban),\n IBANBE: (iban: string) => /^BE\\d{14}$/.test(iban) && isValidIBAN(iban),\n}\n\n//http://ht5ifv.serprest.pt/extensions/tools/IBAN/\nexport function isValidIBAN(iban: string) {\n //This function check if the checksum if correct\n iban = iban.replace(/^(.{4})(.*)$/, '$2$1') //Move the first 4 chars from left to the right\n const fun = (e: string) => (e.charCodeAt(0) - 'A'.charCodeAt(0) + 10).toString()\n iban = iban.replace(/[A-Z]/g, fun) //Convert A-Z to 10-25\n let $sum = 0\n let $ei = 1 //First exponent\n for (let $i = iban.length - 1; $i >= 0; $i--) {\n $sum += $ei * parseInt(iban.charAt($i), 10) //multiply the digit by it's exponent\n $ei = ($ei * 10) % 97 //compute next base 10 exponent in modulus 97\n }\n return $sum % 97 === 1\n}\n\nexport function ibanValidate(iban: string) {\n if (iban.startsWith('BE')) {\n return patterns.IBANBE(iban)\n } else {\n return patterns.IBAN(iban)\n }\n}\n\nexport function ibanFormat(iban: string): string {\n return iban.replace(ibanRegExp, '$1 $2 $3 $4')\n}\n\nexport function nihiiFormat(nihii: string): string {\n return nihii.replace(nihiiRegExp, '$1 $2 $3 $4')\n}\n\nexport function nihiiValidate(nihii: string): boolean {\n return !!nihii.match(nihiiRegExp)\n}\n\nexport function ssinFormat(ssin: string): string {\n return ssin.replace(ssinRegExp, '$1 $2 $3 $4 $5')\n}\n\nexport function ssinValidate(ssin: string): boolean {\n return !!ssin.match(ssinRegExp)\n}\n\n/* Alternate lib free version\nexport function phoneNumberValidate(phoneNumber: string): boolean {\n return (\n !!phoneNumber.match(/(?:\\+|00)([1-9][0-9]{1-2})([- /.]*([0-9]+))+/) ||\n !!phoneNumber.match(/(0[1-9][0-9]*)([- /.]*([0-9]+))+/)\n )\n}\n\nexport function phoneNumberFormat(phoneNumber: string): string {\n let match = phoneNumber.match(/(?:\\+|00)([1-9][0-9]{1-2})([- /.]*([0-9]+))+/)\n if (match) {\n return `+${match[1]} ${match[2].replace(/[- /.]/g, \" \")}`.replace(/ /g, \" \")\n }\n match = phoneNumber.match(/0([1-9][0-9]*)([- /.]*([0-9]+))+/)\n if (match) {\n return `+32 ${match[1]} ${match[2].replace(/[- /.]/g, \" \")}`.replace(/ /g, \" \")\n }\n return phoneNumber\n}\n*/\n\nexport function phoneNumberValidate(phoneNumber: string): boolean {\n return isValidNumber(phoneNumber)\n}\n\nexport function phoneNumberFormat(phoneNumber: string): string {\n const parsedPhoneNumber = parseNumber(phoneNumber, DEFAULT_COUNTRY) as ParsedNumber\n if (_.isEmpty(parsedPhoneNumber)) {\n // The number is not valid, so we leave the input string as-is.\n return phoneNumber\n }\n return formatNumber(parsedPhoneNumber, 'International')\n}\n\n/**\n * Converts a backend date number (e.g., patient birth date) into a Date object.\n * @param dateNumber a YYYYMMDD date number from the backend\n * @return a Date object\n * @throws Error if it is impossible to create a date from the number, other if dateNumber is negative.\n * @see #dateEncode\n * @see #timeDecode\n */\nexport function dateDecode(dateNumber: number): Date | undefined {\n if (!dateNumber) {\n return undefined\n }\n\n if (dateNumber < 0) {\n throw new Error(\"We don't decode negative dates. Please make sure you have valid data.\")\n }\n const dateNumberStr: string = _.padStart(dateNumber.toString(), 8, '19700101')\n if (dateNumberStr.length > 8) {\n if (dateNumberStr.endsWith('000000')) {\n return dateNumber ? moment(dateNumberStr, 'YYYYMMDD000000').toDate() : undefined\n }\n\n throw Error(\"Decoded date is over year 9999. We can't format it properly.\")\n }\n return dateNumber ? moment(dateNumberStr, 'YYYYMMDD').toDate() : undefined\n}\n\n/**\n * Converts a backend time number (e.g., health element openingDate) into a Date object.\n * @param timeNumber a YYYYMMDD date number from the backend\n * @return a Date object\n * @see #timeEncode\n * @see #dateDecode\n */\nexport function timeDecode(timeNumber: number): Date | undefined {\n return timeNumber ? moment(timeNumber.toString(), 'YYYYMMDDHHmmss').toDate() : undefined\n}\n\n/**\n * Encodes a Date object into a backend date number (e.g., patient birth date).\n * @param date a Date object\n * @return a YYYYMMDD date number for the backend\n * @see #dateDecode\n * @see #timeEncode\n */\nexport function dateEncode(date: Date): number | undefined {\n const dateStr = _.padStart(moment(date).format('YYYYMMDD'), 8, '19700101')\n // date is null if the field is not set\n return date ? Number(dateStr) : undefined\n}\n\n/**\n * Encodes a Date object into a backend time number (e.g., health element openingDate).\n * @param date a Date object\n * @return a YYYYMMDDHHmmss date number for the backend\n * @see #timeDecode\n * @see #dateEncode\n */\nexport function timeEncode(date: Date): number | undefined {\n return date ? Number(moment(date).format('YYYYMMDDHHmmss')) : undefined\n}\n\n/**\n * Formats a value and a physical unit into text.\n * @param value the numerical or string value to encode\n * @param unit the unit represented as a string (an empty string is also supported)\n */\nexport function unit(value: number | string, unit: string | null): string {\n unit = unit || ''\n let separator: string\n if (!unit || unit.startsWith('°')) {\n separator = ''\n } else {\n // including '%'\n separator = '\\xa0'\n }\n return value + separator + unit\n}\n\n/**\n * 0.1 + 0.2 = 0.30000000000000004. Use this function to be better at maths.\n * @param a number\n * @return the rounded number, two after the comma\n */\nexport function amount(value: number): number {\n return Number((value || 0).toFixed(2))\n}\n\n/**\n * A simple formatter to keep the logic across the app.\n * Input: 2.1 ; Output: 2.10€\n */\nexport function money(value: number): string {\n return [(value || 0).toFixed(2), '€'].join('')\n}\n\n/**\n * Transform a dictionary to a url params.\n * From { key1: value1, key2: value2, ... } returns key1=value1&key2=value2&...=...\n */\nexport function toUrlParams(params: { [key: string]: string }): string {\n return _.filter(_.map(params, (value, key) => (value ? key + '=' + value : undefined))).join('&')\n}\n\nexport function personName(person: { firstName?: string; lastName?: string }): string {\n return `${person.firstName || ''} ${person.lastName || ''}`.trim()\n}\n\nexport function personNameAbbrev(person: { firstName?: string; lastName?: string }): string {\n const firstName = person.firstName ? person.firstName[0] + '.' : undefined\n return personName({ ...person, firstName })\n}\n\nexport function toMoment(epochOrLongCalendar: number): Moment | null {\n if (!epochOrLongCalendar && epochOrLongCalendar !== 0) {\n return null\n }\n if (epochOrLongCalendar >= 18000101 && epochOrLongCalendar < 25400000) {\n return moment('' + epochOrLongCalendar, 'YYYYMMDD')\n } else if (epochOrLongCalendar >= 18000101000000) {\n return moment('' + epochOrLongCalendar, 'YYYYMMDDhhmmss')\n } else {\n return moment(epochOrLongCalendar)\n }\n}\n"]}
1
+ {"version":3,"file":"formatting-util.js","sourceRoot":"","sources":["../../../icc-x-api/utils/formatting-util.ts"],"names":[],"mappings":"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","sourcesContent":["import { parseNumber, formatNumber, isValidNumber, ParsedNumber } from 'libphonenumber-js'\n\nimport * as moment from 'moment'\nimport * as _ from 'lodash'\nimport { Moment } from 'moment'\n\n// TODO: move this to env.js?\nconst DEFAULT_COUNTRY = 'BE'\n\nexport const nihiiRegExp = new RegExp('^(\\\\d{1})(\\\\d{5})(\\\\d{2})(\\\\d{3})$')\nexport const ssinRegExp = new RegExp('^(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{2})$')\nexport const ibanRegExp = new RegExp('^(\\\\d{4})(\\\\d{4})(\\\\d{4})(\\\\d{4})$')\n\nconst patterns = {\n IBAN: (iban: string) => /^BE\\d{14}$/.test(iban) && isValidIBAN(iban),\n IBANBE: (iban: string) => /^BE\\d{14}$/.test(iban) && isValidIBAN(iban),\n}\n\n//http://ht5ifv.serprest.pt/extensions/tools/IBAN/\nexport function isValidIBAN(iban: string) {\n //This function check if the checksum if correct\n iban = iban.replace(/^(.{4})(.*)$/, '$2$1') //Move the first 4 chars from left to the right\n const fun = (e: string) => (e.charCodeAt(0) - 'A'.charCodeAt(0) + 10).toString()\n iban = iban.replace(/[A-Z]/g, fun) //Convert A-Z to 10-25\n let $sum = 0\n let $ei = 1 //First exponent\n for (let $i = iban.length - 1; $i >= 0; $i--) {\n $sum += $ei * parseInt(iban.charAt($i), 10) //multiply the digit by it's exponent\n $ei = ($ei * 10) % 97 //compute next base 10 exponent in modulus 97\n }\n return $sum % 97 === 1\n}\n\nexport function ibanValidate(iban: string) {\n if (iban.startsWith('BE')) {\n return patterns.IBANBE(iban)\n } else {\n return patterns.IBAN(iban)\n }\n}\n\nexport function ibanFormat(iban: string): string {\n return iban.replace(ibanRegExp, '$1 $2 $3 $4')\n}\n\nexport function nihiiFormat(nihii: string): string {\n return nihii.replace(nihiiRegExp, '$1 $2 $3 $4')\n}\n\nexport function nihiiValidate(nihii: string): boolean {\n return !!nihii.match(nihiiRegExp)\n}\n\nexport function ssinFormat(ssin: string): string {\n return ssin.replace(ssinRegExp, '$1 $2 $3 $4 $5')\n}\n\nexport function ssinValidate(ssin: string): boolean {\n return !!ssin.match(ssinRegExp)\n}\n\n/* Alternate lib free version\nexport function phoneNumberValidate(phoneNumber: string): boolean {\n return (\n !!phoneNumber.match(/(?:\\+|00)([1-9][0-9]{1-2})([- /.]*([0-9]+))+/) ||\n !!phoneNumber.match(/(0[1-9][0-9]*)([- /.]*([0-9]+))+/)\n )\n}\n\nexport function phoneNumberFormat(phoneNumber: string): string {\n let match = phoneNumber.match(/(?:\\+|00)([1-9][0-9]{1-2})([- /.]*([0-9]+))+/)\n if (match) {\n return `+${match[1]} ${match[2].replace(/[- /.]/g, \" \")}`.replace(/ /g, \" \")\n }\n match = phoneNumber.match(/0([1-9][0-9]*)([- /.]*([0-9]+))+/)\n if (match) {\n return `+32 ${match[1]} ${match[2].replace(/[- /.]/g, \" \")}`.replace(/ /g, \" \")\n }\n return phoneNumber\n}\n*/\n\nexport function phoneNumberValidate(phoneNumber: string): boolean {\n return isValidNumber(phoneNumber)\n}\n\nexport function phoneNumberFormat(phoneNumber: string): string {\n const parsedPhoneNumber = parseNumber(phoneNumber, DEFAULT_COUNTRY) as ParsedNumber\n if (_.isEmpty(parsedPhoneNumber)) {\n // The number is not valid, so we leave the input string as-is.\n return phoneNumber\n }\n return formatNumber(parsedPhoneNumber, 'International')\n}\n\n/**\n * Converts a backend date number (e.g., patient birth date) into a Date object.\n * @param dateNumber a YYYYMMDD date number from the backend\n * @return a Date object\n * @throws Error if it is impossible to create a date from the number, other if dateNumber is negative.\n * @see #dateEncode\n * @see #timeDecode\n */\nexport function dateDecode(dateNumber: number): Date | undefined {\n if (!dateNumber) {\n return undefined\n }\n\n if (dateNumber < 0) {\n throw new Error(\"We don't decode negative dates. Please make sure you have valid data.\")\n }\n const dateNumberStr: string = _.padStart(dateNumber.toString(), 8, '19700101')\n if (dateNumberStr.length > 8) {\n if (dateNumberStr.endsWith('000000')) {\n return dateNumber ? moment(dateNumberStr, 'YYYYMMDD000000').toDate() : undefined\n }\n\n throw Error(\"Decoded date is over year 9999. We can't format it properly.\")\n }\n return dateNumber ? moment(dateNumberStr, 'YYYYMMDD').toDate() : undefined\n}\n\n/**\n * Converts a backend time number (e.g., health element openingDate) into a Date object.\n * @param timeNumber a YYYYMMDD date number from the backend\n * @return a Date object\n * @see #timeEncode\n * @see #dateDecode\n */\nexport function timeDecode(timeNumber: number): Date | undefined {\n return timeNumber ? moment(timeNumber.toString(), 'YYYYMMDDHHmmss').toDate() : undefined\n}\n\n/**\n * Encodes a Date object into a backend date number (e.g., patient birth date).\n * @param date a Date object\n * @return a YYYYMMDD date number for the backend\n * @see #dateDecode\n * @see #timeEncode\n */\nexport function dateEncode(date: Date): number | undefined {\n const dateStr = _.padStart(moment(date).format('YYYYMMDD'), 8, '19700101')\n // date is null if the field is not set\n return date ? Number(dateStr) : undefined\n}\n\n/**\n * Encodes a Date object into a backend time number (e.g., health element openingDate).\n * @param date a Date object\n * @return a YYYYMMDDHHmmss date number for the backend\n * @see #timeDecode\n * @see #dateEncode\n */\nexport function timeEncode(date: Date): number | undefined {\n return date ? Number(moment(date).format('YYYYMMDDHHmmss')) : undefined\n}\n\n/**\n * Formats a value and a physical unit into text.\n * @param value the numerical or string value to encode\n * @param unit the unit represented as a string (an empty string is also supported)\n */\nexport function unit(value: number | string, unit: string | null): string {\n unit = unit || ''\n let separator: string\n if (!unit || unit.startsWith('°')) {\n separator = ''\n } else {\n // including '%'\n separator = '\\xa0'\n }\n return value + separator + unit\n}\n\n/**\n * 0.1 + 0.2 = 0.30000000000000004. Use this function to be better at maths.\n * @param a number\n * @return the rounded number, two after the comma\n */\nexport function amount(value: number): number {\n return Number((value || 0).toFixed(2))\n}\n\n/**\n * A simple formatter to keep the logic across the app.\n * Input: 2.1 ; Output: 2.10€\n */\nexport function money(value: number): string {\n return [(value || 0).toFixed(2), '€'].join('')\n}\n\n/**\n * Transform a dictionary to a url params.\n * From { key1: value1, key2: value2, ... } returns key1=value1&key2=value2&...=...\n */\nexport function toUrlParams(params: { [key: string]: string }): string {\n return _.filter(_.map(params, (value, key) => (value ? key + '=' + value : undefined))).join('&')\n}\n\nexport function personName(person: { firstName?: string; lastName?: string }): string {\n return `${person.firstName || ''} ${person.lastName || ''}`.trim()\n}\n\nexport function personNameAbbrev(person: { firstName?: string; lastName?: string }): string {\n const firstName = person.firstName ? person.firstName[0] + '.' : undefined\n return personName({ ...person, firstName })\n}\n\nexport function toMoment(epochOrLongCalendar: number): Moment | null {\n if (!epochOrLongCalendar && epochOrLongCalendar !== 0) {\n return null\n }\n if (epochOrLongCalendar >= 18000101 && epochOrLongCalendar < 25400000) {\n return moment('' + epochOrLongCalendar, 'YYYYMMDD')\n } else if (epochOrLongCalendar >= 18000101000000) {\n return moment('' + epochOrLongCalendar, 'YYYYMMDDhhmmss')\n } else {\n return moment(epochOrLongCalendar)\n }\n}\n"]}
@@ -1 +1,2 @@
1
1
  export declare function also<T>(value: T, lambda: (it: T) => void): T;
2
+ export declare function fold<T, R>(whereToFold: Array<T>, initial: R, operation: (acc: R, element: T) => R): R;
@@ -1,9 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.also = void 0;
3
+ exports.fold = exports.also = void 0;
4
4
  function also(value, lambda) {
5
5
  lambda(value);
6
6
  return value;
7
7
  }
8
8
  exports.also = also;
9
+ function fold(whereToFold, initial, operation) {
10
+ let accumulator = initial;
11
+ for (let i = 0; i < whereToFold.length; i++)
12
+ accumulator = operation(accumulator, whereToFold[i]);
13
+ return accumulator;
14
+ }
15
+ exports.fold = fold;
9
16
  //# sourceMappingURL=functional-util.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"functional-util.js","sourceRoot":"","sources":["../../../icc-x-api/utils/functional-util.ts"],"names":[],"mappings":";;;AAAA,SAAgB,IAAI,CAAI,KAAQ,EAAE,MAAuB;IACvD,MAAM,CAAC,KAAK,CAAC,CAAA;IACb,OAAO,KAAK,CAAA;AACd,CAAC;AAHD,oBAGC","sourcesContent":["export function also<T>(value: T, lambda: (it: T) => void) {\n lambda(value)\n return value\n}\n"]}
1
+ {"version":3,"file":"functional-util.js","sourceRoot":"","sources":["../../../icc-x-api/utils/functional-util.ts"],"names":[],"mappings":";;;AAAA,SAAgB,IAAI,CAAI,KAAQ,EAAE,MAAuB;IACvD,MAAM,CAAC,KAAK,CAAC,CAAA;IACb,OAAO,KAAK,CAAA;AACd,CAAC;AAHD,oBAGC;AAED,SAAgB,IAAI,CAAO,WAAqB,EAAE,OAAU,EAAE,SAAoC;IAChG,IAAI,WAAW,GAAG,OAAO,CAAA;IACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE;QAAE,WAAW,GAAG,SAAS,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;IACjG,OAAO,WAAW,CAAA;AACpB,CAAC;AAJD,oBAIC","sourcesContent":["export function also<T>(value: T, lambda: (it: T) => void) {\n lambda(value)\n return value\n}\n\nexport function fold<T, R>(whereToFold: Array<T>, initial: R, operation: (acc: R, element: T) => R): R {\n let accumulator = initial\n for (let i = 0; i < whereToFold.length; i++) accumulator = operation(accumulator, whereToFold[i])\n return accumulator\n}\n"]}
@@ -1,5 +1,6 @@
1
1
  export * from './code-util';
2
2
  export * from './net-utils';
3
+ export * from './crypto-utils';
3
4
  export * from './formatting-util';
4
5
  export * from './binary-utils';
5
6
  export * from './hcp-util';
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -12,6 +16,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
12
16
  Object.defineProperty(exports, "__esModule", { value: true });
13
17
  __exportStar(require("./code-util"), exports);
14
18
  __exportStar(require("./net-utils"), exports);
19
+ __exportStar(require("./crypto-utils"), exports);
15
20
  __exportStar(require("./formatting-util"), exports);
16
21
  __exportStar(require("./binary-utils"), exports);
17
22
  __exportStar(require("./hcp-util"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../icc-x-api/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8CAA2B;AAC3B,8CAA2B;AAC3B,oDAAiC;AACjC,iDAA8B;AAC9B,6CAA0B;AAC1B,oDAAiC","sourcesContent":["export * from './code-util'\nexport * from './net-utils'\nexport * from './formatting-util'\nexport * from './binary-utils'\nexport * from './hcp-util'\nexport * from './functional-util'\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../icc-x-api/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA2B;AAC3B,8CAA2B;AAC3B,iDAA8B;AAC9B,oDAAiC;AACjC,iDAA8B;AAC9B,6CAA0B;AAC1B,oDAAiC","sourcesContent":["export * from './code-util'\nexport * from './net-utils'\nexport * from './crypto-utils'\nexport * from './formatting-util'\nexport * from './binary-utils'\nexport * from './hcp-util'\nexport * from './functional-util'\n"]}
package/index.js CHANGED
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,8CAA2B;AAC3B,4CAAyB;AACzB,yDAAsC;AAEtC,oDAAiC;AACjC,8DAA2C;AAE3C,yCAAuC;AAA9B,0FAAA,GAAG,OAAA","sourcesContent":["export * from './icc-x-api'\nexport * from './icc-api'\nexport * from './icc-api/model/models'\n\nexport * from './icc-x-api/utils'\nexport * from './icc-x-api/filters/filters'\n\nexport { XHR } from './icc-api/api/XHR'\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,8CAA2B;AAC3B,4CAAyB;AACzB,yDAAsC;AAEtC,oDAAiC;AACjC,8DAA2C;AAE3C,yCAAuC;AAA9B,0FAAA,GAAG,OAAA","sourcesContent":["export * from './icc-x-api'\nexport * from './icc-api'\nexport * from './icc-api/model/models'\n\nexport * from './icc-x-api/utils'\nexport * from './icc-x-api/filters/filters'\n\nexport { XHR } from './icc-api/api/XHR'\n"]}
package/node-compat.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  export declare const crypto: any;
2
- import fetch from 'node-fetch';
2
+ import 'isomorphic-fetch';
3
3
  export declare const nodeFetch: typeof fetch;