@icure/api 4.2.32 → 4.2.33

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 (91) hide show
  1. package/icc-api/api/IccCodeApi.d.ts +14 -1
  2. package/icc-api/api/IccCodeApi.js +33 -1
  3. package/icc-api/api/IccCodeApi.js.map +1 -1
  4. package/icc-api/api/XHR.js +1 -1
  5. package/icc-api/api/XHR.js.map +1 -1
  6. package/icc-api/iccApi.js +1 -5
  7. package/icc-api/iccApi.js.map +1 -1
  8. package/icc-api/index.js +1 -5
  9. package/icc-api/index.js.map +1 -1
  10. package/icc-api/model/Body.js +1 -1
  11. package/icc-api/model/Body.js.map +1 -1
  12. package/icc-api/model/Body1.js +1 -1
  13. package/icc-api/model/Body1.js.map +1 -1
  14. package/icc-api/model/Body2.js +1 -1
  15. package/icc-api/model/Body2.js.map +1 -1
  16. package/icc-api/model/Body3.js +1 -1
  17. package/icc-api/model/Body3.js.map +1 -1
  18. package/icc-api/model/ByteArray.js +1 -1
  19. package/icc-api/model/ByteArray.js.map +1 -1
  20. package/icc-api/model/Content.js +1 -1
  21. package/icc-api/model/Content.js.map +1 -1
  22. package/icc-api/model/Device.js +1 -1
  23. package/icc-api/model/Device.js.map +1 -1
  24. package/icc-api/model/Document.js +1 -1
  25. package/icc-api/model/Document.js.map +1 -1
  26. package/icc-api/model/DocumentTemplate.js +1 -1
  27. package/icc-api/model/DocumentTemplate.js.map +1 -1
  28. package/icc-api/model/HealthcareParty.js +1 -1
  29. package/icc-api/model/HealthcareParty.js.map +1 -1
  30. package/icc-api/model/MimeAttachment.js +1 -1
  31. package/icc-api/model/MimeAttachment.js.map +1 -1
  32. package/icc-api/model/Patient.js +1 -1
  33. package/icc-api/model/Patient.js.map +1 -1
  34. package/icc-api/model/UserGroup.d.ts +3 -0
  35. package/icc-api/model/UserGroup.js.map +1 -1
  36. package/icc-api/model/models.js +1 -5
  37. package/icc-api/model/models.js.map +1 -1
  38. package/icc-x-api/crypto/AES.js +1 -1
  39. package/icc-x-api/crypto/AES.js.map +1 -1
  40. package/icc-x-api/crypto/shamir.js +1 -1
  41. package/icc-x-api/crypto/shamir.js.map +1 -1
  42. package/icc-x-api/crypto/utils.js +36 -36
  43. package/icc-x-api/crypto/utils.js.map +1 -1
  44. package/icc-x-api/filters/CodeIdsByTypeCodeVersionIntervalFilter.d.ts +23 -0
  45. package/icc-x-api/filters/CodeIdsByTypeCodeVersionIntervalFilter.js +24 -0
  46. package/icc-x-api/filters/CodeIdsByTypeCodeVersionIntervalFilter.js.map +1 -0
  47. package/icc-x-api/filters/PatientByHcPartyGenderEducationProfession.js +0 -1
  48. package/icc-x-api/filters/PatientByHcPartyGenderEducationProfession.js.map +1 -1
  49. package/icc-x-api/filters/UsersByPatientIdFilter.d.ts +18 -0
  50. package/icc-x-api/filters/UsersByPatientIdFilter.js +24 -0
  51. package/icc-x-api/filters/UsersByPatientIdFilter.js.map +1 -0
  52. package/icc-x-api/filters/filters.js +3 -7
  53. package/icc-x-api/filters/filters.js.map +1 -1
  54. package/icc-x-api/icc-accesslog-x-api.js +4 -4
  55. package/icc-x-api/icc-accesslog-x-api.js.map +1 -1
  56. package/icc-x-api/icc-bekmehr-x-api.js +2 -2
  57. package/icc-x-api/icc-bekmehr-x-api.js.map +1 -1
  58. package/icc-x-api/icc-calendar-item-x-api.js +4 -4
  59. package/icc-x-api/icc-calendar-item-x-api.js.map +1 -1
  60. package/icc-x-api/icc-contact-x-api.js +11 -11
  61. package/icc-x-api/icc-contact-x-api.js.map +1 -1
  62. package/icc-x-api/icc-crypto-x-api.d.ts +1 -2
  63. package/icc-x-api/icc-crypto-x-api.js +48 -48
  64. package/icc-x-api/icc-crypto-x-api.js.map +1 -1
  65. package/icc-x-api/icc-doctemplate-x-api.js +2 -2
  66. package/icc-x-api/icc-doctemplate-x-api.js.map +1 -1
  67. package/icc-x-api/icc-document-x-api.js +3 -3
  68. package/icc-x-api/icc-document-x-api.js.map +1 -1
  69. package/icc-x-api/icc-form-x-api.js +3 -3
  70. package/icc-x-api/icc-form-x-api.js.map +1 -1
  71. package/icc-x-api/icc-hcparty-x-api.js +4 -4
  72. package/icc-x-api/icc-hcparty-x-api.js.map +1 -1
  73. package/icc-x-api/icc-helement-x-api.js +5 -5
  74. package/icc-x-api/icc-helement-x-api.js.map +1 -1
  75. package/icc-x-api/icc-maintenance-task-x-api.d.ts +2 -2
  76. package/icc-x-api/icc-maintenance-task-x-api.js +9 -9
  77. package/icc-x-api/icc-maintenance-task-x-api.js.map +1 -1
  78. package/icc-x-api/icc-patient-x-api.js +36 -36
  79. package/icc-x-api/icc-patient-x-api.js.map +1 -1
  80. package/icc-x-api/index.d.ts +1 -1
  81. package/icc-x-api/index.js +2 -6
  82. package/icc-x-api/index.js.map +1 -1
  83. package/icc-x-api/utils/binary-utils.js +5 -5
  84. package/icc-x-api/utils/binary-utils.js.map +1 -1
  85. package/icc-x-api/utils/formatting-util.js +3 -3
  86. package/icc-x-api/utils/formatting-util.js.map +1 -1
  87. package/icc-x-api/utils/index.js +1 -5
  88. package/icc-x-api/utils/index.js.map +1 -1
  89. package/index.js +1 -5
  90. package/index.js.map +1 -1
  91. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"shamir.js","sourceRoot":"","sources":["../../../icc-x-api/crypto/shamir.ts"],"names":[],"mappings":"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","sourcesContent":["import { utils } from './utils'\n\nexport class ShamirClass {\n // Protected settings object\n config = {\n bits: 8, // default number of bits\n radix: 16, // work with HEX by default\n size: Math.pow(2, 8 /* config.bits */),\n max: Math.pow(2, 8 /* config.bits */) - 1,\n minBits: 3,\n maxBits: 16, // this permits 65,535 shares, though going this high is NOT recommended in JS!\n bytesPerChar: 2,\n maxBytesPerChar: 6, // Math.pow(256,7) > Math.pow(2,53)\n // Primitive polynomials (in decimal form) for Galois Fields GF(2^n), for 2 <= n <= 30\n // The index of each term in the array corresponds to the n for that polynomial\n // i.e. to get the polynomial for n=16, use primitivePolynomials[16]\n primitivePolynomials: [null, null, 1, 3, 3, 5, 3, 3, 29, 17, 9, 5, 83, 27, 43, 3, 45, 9, 39, 39, 9, 5, 3, 33, 27, 9, 71, 39, 9, 5, 83],\n // warning for insecure PRNG\n warning: 'WARNING:\\nA secure random number generator was not found.\\nUsing Math.random(), which is NOT cryptographically strong!',\n logs: [] as Array<number>,\n exps: [] as Array<number>,\n }\n private crypto: Crypto\n\n constructor(crypto: Crypto = typeof window !== 'undefined' ? window.crypto : typeof self !== 'undefined' ? self.crypto : ({} as Crypto)) {\n this.crypto = crypto\n }\n\n init() {\n const primitive = this.config.primitivePolynomials[this.config.bits]!\n let x = 1\n\n for (let i = 0; i < this.config.size; i++) {\n this.config.exps[i] = x\n this.config.logs[x] = i\n x <<= 1\n if (x >= this.config.size) {\n x ^= primitive\n x &= this.config.max\n }\n }\n }\n\n // Splits a number string `bits`-length segments, after first\n // optionally zero-padding it to a length that is a multiple of `padLength.\n // Returns array of integers (each less than 2^bits-1), with each element\n // representing a `bits`-length segment of the input string from right to left,\n // i.e. parts[0] represents the right-most `bits`-length segment of the input string.\n split(str: string, padLength = 0) {\n if (padLength) {\n str = this.padLeft(str, padLength)\n }\n const parts = []\n for (var i = str.length; i > this.config.bits; i -= this.config.bits) {\n parts.push(parseInt(str.slice(i - this.config.bits, i), 2))\n }\n parts.push(parseInt(str.slice(0, i), 2))\n return parts\n }\n\n bin2hex(str: string) {\n let hex = '',\n num\n str = this.padLeft(str, 4)\n for (let i = str.length; i >= 4; i -= 4) {\n num = parseInt(str.slice(i - 4, i), 2)\n if (isNaN(num)) {\n throw new Error('Invalid binary character.')\n }\n hex = num.toString(16) + hex\n }\n return hex\n }\n\n hex2bin(str: string) {\n let bin = '',\n num\n for (let i = str.length - 1; i >= 0; i--) {\n num = parseInt(str[i], 16)\n if (isNaN(num)) {\n throw new Error('Invalid hex character.')\n }\n bin = this.padLeft(num.toString(2), 4) + bin\n }\n\n return bin\n }\n\n padLeft(str: string, bits: number = this.config.bits) {\n const missing = str.length % bits\n return (missing ? new Array(bits - missing + 1).join('0') : '') + str\n }\n\n random(bits: number) {\n const construct = (bits: number, arr: Uint32Array, size: number) => {\n let str = '',\n i = 0\n const len = arr.length - 1\n while (i < len || str.length < bits) {\n str += this.padLeft(arr[i].toString(16), size)\n i++\n }\n str = str.substr(-bits / 4)\n return (str.match(/0/g) || []).length === str.length ? null : str\n }\n\n let elems = Math.ceil(bits / 32),\n str = null,\n arr = new Uint32Array(elems)\n\n while (str === null) {\n crypto.getRandomValues(arr)\n str = construct(bits, arr, 8)\n }\n\n return str\n }\n\n share(secretString: string, numShares: number, threshold: number) {\n if (!this.config.logs.length) {\n this.init()\n }\n\n if (numShares % 1 !== 0 || numShares < 2) {\n throw new Error('Number of shares must be an integer between 2 and 2^bits-1 (' + this.config.max + '), inclusive.')\n }\n if (numShares > this.config.max) {\n var neededBits = Math.ceil(Math.log(numShares + 1) / Math.LN2)\n throw new Error(\n 'Number of shares must be an integer between 2 and 2^bits-1 (' +\n this.config.max +\n '), inclusive. To create ' +\n numShares +\n ' shares, use at least ' +\n neededBits +\n ' bits.'\n )\n }\n if (threshold % 1 !== 0 || threshold < 2) {\n throw new Error('Threshold number of shares must be an integer between 2 and 2^bits-1 (' + this.config.max + '), inclusive.')\n }\n if (threshold > this.config.max) {\n var neededBits = Math.ceil(Math.log(threshold + 1) / Math.LN2)\n throw new Error(\n 'Threshold number of shares must be an integer between 2 and 2^bits-1 (' +\n this.config.max +\n '), inclusive. To use a threshold of ' +\n threshold +\n ', use at least ' +\n neededBits +\n ' bits.'\n )\n }\n\n // append a 1 so that we can preserve the correct number of leading zeros in our secret\n const secret = this.split('1' + this.hex2bin(secretString), 0)\n const x = new Array(numShares),\n y = new Array(numShares)\n for (let i = 0, len = secret.length; i < len; i++) {\n const subShares = this._getShares(secret[i], numShares, threshold)\n for (let j = 0; j < numShares; j++) {\n x[j] = x[j] || subShares[j].x.toString(this.config.radix)\n y[j] = this.padLeft(subShares[j].y.toString(2)) + (y[j] ? y[j] : '')\n }\n }\n const padding = this.config.max.toString(this.config.radix).length\n return y.map((b, idx) => this.config.bits.toString(16).toUpperCase() + this.padLeft(x[idx], padding) + this.bin2hex(b))\n }\n\n // This is the basic polynomial generation and evaluation function\n // for a `config.bits`-length secret (NOT an arbitrary length)\n // Note: no error-checking at this stage! If `secrets` is NOT\n // a NUMBER less than 2^bits-1, the output will be incorrect!\n _getShares(secret: number, numShares: number, threshold: number) {\n const shares = []\n const coeffs = [secret]\n\n for (var i = 1; i < threshold; i++) {\n coeffs[i] = parseInt(this.random(this.config.bits), 16)\n }\n for (var i = 1, len = numShares + 1; i < len; i++) {\n shares[i - 1] = {\n x: i,\n y: this.horner(i, coeffs),\n }\n }\n return shares\n }\n\n // Polynomial evaluation at `x` using Horner's Method\n // TODO: this can possibly be sped up using other methods\n // NOTE: fx=fx * x + coeff[i] -> exp(log(fx) + log(x)) + coeff[i],\n // so if fx===0, just set fx to coeff[i] because\n // using the exp/log form will result in incorrect value\n horner(x: number, coeffs: Array<number>) {\n const logx = this.config.logs[x]\n let fx = 0\n for (let i = coeffs.length - 1; i >= 0; i--) {\n if (fx === 0) {\n fx = coeffs[i]\n continue\n }\n fx = this.config.exps[(logx + this.config.logs[fx]) % this.config.max] ^ coeffs[i]\n }\n return fx\n }\n\n processShare(share: string) {\n const bits = parseInt(share[0], 16)\n if (bits && (bits % 1 !== 0 || bits < this.config.minBits || bits > this.config.maxBits)) {\n throw new Error('Number of bits must be an integer between ' + this.config.minBits + ' and ' + this.config.maxBits + ', inclusive.')\n }\n\n const max = Math.pow(2, bits) - 1\n const idLength = max.toString(this.config.radix).length\n\n const id = parseInt(share.substr(1, idLength), this.config.radix)\n if (id % 1 !== 0 || id < 1 || id > max) {\n throw new Error('Share id must be an integer between 1 and ' + this.config.max + ', inclusive.')\n }\n share = share.substr(idLength + 1)\n if (!share.length) {\n throw new Error('Invalid share: zero-length share.')\n }\n return {\n bits: bits,\n id: id,\n value: share,\n }\n }\n\n _combine(at: number, shares: Array<string>) {\n if (!this.config.logs.length) {\n this.init()\n }\n\n const x: Array<number> = []\n const y: Array<Array<number>> = []\n let result = ''\n let idx: number\n\n for (var i = 0, len = shares.length; i < len; i++) {\n const share = this.processShare(shares[i])\n\n if (x.includes(share['id'])) {\n // repeated x value?\n continue\n }\n\n idx = x.push(share['id']) - 1\n const shareValues = this.split(this.hex2bin(share['value']))\n for (let j = 0, len2 = shareValues.length; j < len2; j++) {\n y[j] = y[j] || []\n y[j][idx] = shareValues[j]\n }\n }\n\n for (var i = 0, len = y.length; i < len; i++) {\n result = this.padLeft(this.lagrange(at, x, y[i]).toString(2)) + result\n }\n\n if (at === 0) {\n // reconstructing the secret\n return this.bin2hex(result.slice(result.indexOf('1') + 1))\n } else {\n // generating a new share\n return this.bin2hex(result)\n }\n }\n\n combine(shares: Array<string>) {\n return this._combine(0, shares)\n }\n\n // Generate a new share with id `id` (a number between 1 and 2^bits-1)\n // `id` can be a Number or a String in the default radix (16)\n newShare(id: number | string, shares: Array<string>) {\n if (typeof id === 'string') {\n id = parseInt(id, this.config.radix)\n }\n\n const share = this.processShare(shares[0])\n const max = Math.pow(2, share['bits']) - 1\n\n if (id % 1 !== 0 || id < 1 || id > max) {\n throw new Error('Share id must be an integer between 1 and ' + this.config.max + ', inclusive.')\n }\n\n const padding = max.toString(this.config.radix).length\n return this.config.bits.toString(16).toUpperCase() + this.padLeft(id.toString(this.config.radix), padding) + this._combine(id, shares)\n }\n\n // Evaluate the Lagrange interpolation polynomial at x = `at`\n // using x and y Arrays that are of the same length, with\n // corresponding elements constituting points on the polynomial.\n lagrange(at: number, x: Array<number>, y: Array<number>) {\n let sum = 0,\n product,\n i,\n j,\n len\n for (i = 0, len = x.length; i < len; i++) {\n if (!y[i]) {\n continue\n }\n\n product = this.config.logs[y[i]]\n for (j = 0; j < len; j++) {\n if (i === j) {\n continue\n }\n if (at === x[j]) {\n // happens when computing a share that is in the list of shares used to compute it\n product = -1 // fix for a zero product term, after which the sum should be sum^0 = sum, not sum^1\n break\n }\n product =\n (product + this.config.logs[at ^ x[j]] - this.config.logs[x[i] ^ x[j]] + this.config.max) /* to make sure it's not negative */ %\n this.config.max\n }\n\n sum = product === -1 ? sum : sum ^ this.config.exps[product] // though exps[-1]= undefined and undefined ^ anything = anything in chrome, this behavior may not hold everywhere, so do the check\n }\n return sum\n }\n}\n\nexport const shamir = new ShamirClass()\n"]}
1
+ {"version":3,"file":"shamir.js","sourceRoot":"","sources":["../../../icc-x-api/crypto/shamir.ts"],"names":[],"mappings":"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","sourcesContent":["export class ShamirClass {\n // Protected settings object\n config = {\n bits: 8, // default number of bits\n radix: 16, // work with HEX by default\n size: Math.pow(2, 8 /* config.bits */),\n max: Math.pow(2, 8 /* config.bits */) - 1,\n minBits: 3,\n maxBits: 16, // this permits 65,535 shares, though going this high is NOT recommended in JS!\n bytesPerChar: 2,\n maxBytesPerChar: 6, // Math.pow(256,7) > Math.pow(2,53)\n // Primitive polynomials (in decimal form) for Galois Fields GF(2^n), for 2 <= n <= 30\n // The index of each term in the array corresponds to the n for that polynomial\n // i.e. to get the polynomial for n=16, use primitivePolynomials[16]\n primitivePolynomials: [null, null, 1, 3, 3, 5, 3, 3, 29, 17, 9, 5, 83, 27, 43, 3, 45, 9, 39, 39, 9, 5, 3, 33, 27, 9, 71, 39, 9, 5, 83],\n // warning for insecure PRNG\n warning: 'WARNING:\\nA secure random number generator was not found.\\nUsing Math.random(), which is NOT cryptographically strong!',\n logs: [] as Array<number>,\n exps: [] as Array<number>,\n }\n private crypto: Crypto\n\n constructor(crypto: Crypto = typeof window !== 'undefined' ? window.crypto : typeof self !== 'undefined' ? self.crypto : ({} as Crypto)) {\n this.crypto = crypto\n }\n\n init() {\n const primitive = this.config.primitivePolynomials[this.config.bits]!\n let x = 1\n\n for (let i = 0; i < this.config.size; i++) {\n this.config.exps[i] = x\n this.config.logs[x] = i\n x <<= 1\n if (x >= this.config.size) {\n x ^= primitive\n x &= this.config.max\n }\n }\n }\n\n // Splits a number string `bits`-length segments, after first\n // optionally zero-padding it to a length that is a multiple of `padLength.\n // Returns array of integers (each less than 2^bits-1), with each element\n // representing a `bits`-length segment of the input string from right to left,\n // i.e. parts[0] represents the right-most `bits`-length segment of the input string.\n split(str: string, padLength = 0) {\n if (padLength) {\n str = this.padLeft(str, padLength)\n }\n const parts = []\n for (var i = str.length; i > this.config.bits; i -= this.config.bits) {\n parts.push(parseInt(str.slice(i - this.config.bits, i), 2))\n }\n parts.push(parseInt(str.slice(0, i), 2))\n return parts\n }\n\n bin2hex(str: string) {\n let hex = '',\n num\n str = this.padLeft(str, 4)\n for (let i = str.length; i >= 4; i -= 4) {\n num = parseInt(str.slice(i - 4, i), 2)\n if (isNaN(num)) {\n throw new Error('Invalid binary character.')\n }\n hex = num.toString(16) + hex\n }\n return hex\n }\n\n hex2bin(str: string) {\n let bin = '',\n num\n for (let i = str.length - 1; i >= 0; i--) {\n num = parseInt(str[i], 16)\n if (isNaN(num)) {\n throw new Error('Invalid hex character.')\n }\n bin = this.padLeft(num.toString(2), 4) + bin\n }\n\n return bin\n }\n\n padLeft(str: string, bits: number = this.config.bits) {\n const missing = str.length % bits\n return (missing ? new Array(bits - missing + 1).join('0') : '') + str\n }\n\n random(bits: number) {\n const construct = (bits: number, arr: Uint32Array, size: number) => {\n let str = '',\n i = 0\n const len = arr.length - 1\n while (i < len || str.length < bits) {\n str += this.padLeft(arr[i].toString(16), size)\n i++\n }\n str = str.substr(-bits / 4)\n return (str.match(/0/g) || []).length === str.length ? null : str\n }\n\n let elems = Math.ceil(bits / 32),\n str = null,\n arr = new Uint32Array(elems)\n\n while (str === null) {\n this.crypto.getRandomValues(arr)\n str = construct(bits, arr, 8)\n }\n\n return str\n }\n\n share(secretString: string, numShares: number, threshold: number) {\n if (!this.config.logs.length) {\n this.init()\n }\n\n if (numShares % 1 !== 0 || numShares < 2) {\n throw new Error('Number of shares must be an integer between 2 and 2^bits-1 (' + this.config.max + '), inclusive.')\n }\n if (numShares > this.config.max) {\n var neededBits = Math.ceil(Math.log(numShares + 1) / Math.LN2)\n throw new Error(\n 'Number of shares must be an integer between 2 and 2^bits-1 (' +\n this.config.max +\n '), inclusive. To create ' +\n numShares +\n ' shares, use at least ' +\n neededBits +\n ' bits.'\n )\n }\n if (threshold % 1 !== 0 || threshold < 2) {\n throw new Error('Threshold number of shares must be an integer between 2 and 2^bits-1 (' + this.config.max + '), inclusive.')\n }\n if (threshold > this.config.max) {\n var neededBits = Math.ceil(Math.log(threshold + 1) / Math.LN2)\n throw new Error(\n 'Threshold number of shares must be an integer between 2 and 2^bits-1 (' +\n this.config.max +\n '), inclusive. To use a threshold of ' +\n threshold +\n ', use at least ' +\n neededBits +\n ' bits.'\n )\n }\n\n // append a 1 so that we can preserve the correct number of leading zeros in our secret\n const secret = this.split('1' + this.hex2bin(secretString), 0)\n const x = new Array(numShares),\n y = new Array(numShares)\n for (let i = 0, len = secret.length; i < len; i++) {\n const subShares = this._getShares(secret[i], numShares, threshold)\n for (let j = 0; j < numShares; j++) {\n x[j] = x[j] || subShares[j].x.toString(this.config.radix)\n y[j] = this.padLeft(subShares[j].y.toString(2)) + (y[j] ? y[j] : '')\n }\n }\n const padding = this.config.max.toString(this.config.radix).length\n return y.map((b, idx) => this.config.bits.toString(16).toUpperCase() + this.padLeft(x[idx], padding) + this.bin2hex(b))\n }\n\n // This is the basic polynomial generation and evaluation function\n // for a `config.bits`-length secret (NOT an arbitrary length)\n // Note: no error-checking at this stage! If `secrets` is NOT\n // a NUMBER less than 2^bits-1, the output will be incorrect!\n _getShares(secret: number, numShares: number, threshold: number) {\n const shares = []\n const coeffs = [secret]\n\n for (var i = 1; i < threshold; i++) {\n coeffs[i] = parseInt(this.random(this.config.bits), 16)\n }\n for (var i = 1, len = numShares + 1; i < len; i++) {\n shares[i - 1] = {\n x: i,\n y: this.horner(i, coeffs),\n }\n }\n return shares\n }\n\n // Polynomial evaluation at `x` using Horner's Method\n // TODO: this can possibly be sped up using other methods\n // NOTE: fx=fx * x + coeff[i] -> exp(log(fx) + log(x)) + coeff[i],\n // so if fx===0, just set fx to coeff[i] because\n // using the exp/log form will result in incorrect value\n horner(x: number, coeffs: Array<number>) {\n const logx = this.config.logs[x]\n let fx = 0\n for (let i = coeffs.length - 1; i >= 0; i--) {\n if (fx === 0) {\n fx = coeffs[i]\n continue\n }\n fx = this.config.exps[(logx + this.config.logs[fx]) % this.config.max] ^ coeffs[i]\n }\n return fx\n }\n\n processShare(share: string) {\n const bits = parseInt(share[0], 16)\n if (bits && (bits % 1 !== 0 || bits < this.config.minBits || bits > this.config.maxBits)) {\n throw new Error('Number of bits must be an integer between ' + this.config.minBits + ' and ' + this.config.maxBits + ', inclusive.')\n }\n\n const max = Math.pow(2, bits) - 1\n const idLength = max.toString(this.config.radix).length\n\n const id = parseInt(share.substr(1, idLength), this.config.radix)\n if (id % 1 !== 0 || id < 1 || id > max) {\n throw new Error('Share id must be an integer between 1 and ' + this.config.max + ', inclusive.')\n }\n share = share.substr(idLength + 1)\n if (!share.length) {\n throw new Error('Invalid share: zero-length share.')\n }\n return {\n bits: bits,\n id: id,\n value: share,\n }\n }\n\n _combine(at: number, shares: Array<string>) {\n if (!this.config.logs.length) {\n this.init()\n }\n\n const x: Array<number> = []\n const y: Array<Array<number>> = []\n let result = ''\n let idx: number\n\n for (var i = 0, len = shares.length; i < len; i++) {\n const share = this.processShare(shares[i])\n\n if (x.includes(share['id'])) {\n // repeated x value?\n continue\n }\n\n idx = x.push(share['id']) - 1\n const shareValues = this.split(this.hex2bin(share['value']))\n for (let j = 0, len2 = shareValues.length; j < len2; j++) {\n y[j] = y[j] || []\n y[j][idx] = shareValues[j]\n }\n }\n\n for (var i = 0, len = y.length; i < len; i++) {\n result = this.padLeft(this.lagrange(at, x, y[i]).toString(2)) + result\n }\n\n if (at === 0) {\n // reconstructing the secret\n return this.bin2hex(result.slice(result.indexOf('1') + 1))\n } else {\n // generating a new share\n return this.bin2hex(result)\n }\n }\n\n combine(shares: Array<string>) {\n return this._combine(0, shares)\n }\n\n // Generate a new share with id `id` (a number between 1 and 2^bits-1)\n // `id` can be a Number or a String in the default radix (16)\n newShare(id: number | string, shares: Array<string>) {\n if (typeof id === 'string') {\n id = parseInt(id, this.config.radix)\n }\n\n const share = this.processShare(shares[0])\n const max = Math.pow(2, share['bits']) - 1\n\n if (id % 1 !== 0 || id < 1 || id > max) {\n throw new Error('Share id must be an integer between 1 and ' + this.config.max + ', inclusive.')\n }\n\n const padding = max.toString(this.config.radix).length\n return this.config.bits.toString(16).toUpperCase() + this.padLeft(id.toString(this.config.radix), padding) + this._combine(id, shares)\n }\n\n // Evaluate the Lagrange interpolation polynomial at x = `at`\n // using x and y Arrays that are of the same length, with\n // corresponding elements constituting points on the polynomial.\n lagrange(at: number, x: Array<number>, y: Array<number>) {\n let sum = 0,\n product,\n i,\n j,\n len\n for (i = 0, len = x.length; i < len; i++) {\n if (!y[i]) {\n continue\n }\n\n product = this.config.logs[y[i]]\n for (j = 0; j < len; j++) {\n if (i === j) {\n continue\n }\n if (at === x[j]) {\n // happens when computing a share that is in the list of shares used to compute it\n product = -1 // fix for a zero product term, after which the sum should be sum^0 = sum, not sum^1\n break\n }\n product =\n (product + this.config.logs[at ^ x[j]] - this.config.logs[x[i] ^ x[j]] + this.config.max) /* to make sure it's not negative */ %\n this.config.max\n }\n\n sum = product === -1 ? sum : sum ^ this.config.exps[product] // though exps[-1]= undefined and undefined ^ anything = anything in chrome, this behavior may not hold everywhere, so do the check\n }\n return sum\n }\n}\n\nexport const shamir = new ShamirClass()\n"]}
@@ -34,7 +34,7 @@ class UtilsClass {
34
34
  }
35
35
  }
36
36
  jwk2pkcs8(jwk) {
37
- return (0, asn1_packer_1.pack)([
37
+ return asn1_packer_1.pack([
38
38
  0x30,
39
39
  [
40
40
  [0x02, '00'],
@@ -46,14 +46,14 @@ class UtilsClass {
46
46
  0x30,
47
47
  [
48
48
  [0x02, '00'],
49
- [0x02, (0, binary_utils_1.ua2hex)((0, binary_utils_1.b64Url2ua)(jwk.n))],
50
- [0x02, (0, binary_utils_1.ua2hex)((0, binary_utils_1.b64Url2ua)(jwk.e))],
51
- [0x02, (0, binary_utils_1.ua2hex)((0, binary_utils_1.b64Url2ua)(jwk.d))],
52
- [0x02, (0, binary_utils_1.ua2hex)((0, binary_utils_1.b64Url2ua)(jwk.p))],
53
- [0x02, (0, binary_utils_1.ua2hex)((0, binary_utils_1.b64Url2ua)(jwk.q))],
54
- [0x02, (0, binary_utils_1.ua2hex)((0, binary_utils_1.b64Url2ua)(jwk.dp))],
55
- [0x02, (0, binary_utils_1.ua2hex)((0, binary_utils_1.b64Url2ua)(jwk.dq))],
56
- [0x02, (0, binary_utils_1.ua2hex)((0, binary_utils_1.b64Url2ua)(jwk.qi))],
49
+ [0x02, binary_utils_1.ua2hex(binary_utils_1.b64Url2ua(jwk.n))],
50
+ [0x02, binary_utils_1.ua2hex(binary_utils_1.b64Url2ua(jwk.e))],
51
+ [0x02, binary_utils_1.ua2hex(binary_utils_1.b64Url2ua(jwk.d))],
52
+ [0x02, binary_utils_1.ua2hex(binary_utils_1.b64Url2ua(jwk.p))],
53
+ [0x02, binary_utils_1.ua2hex(binary_utils_1.b64Url2ua(jwk.q))],
54
+ [0x02, binary_utils_1.ua2hex(binary_utils_1.b64Url2ua(jwk.dp))],
55
+ [0x02, binary_utils_1.ua2hex(binary_utils_1.b64Url2ua(jwk.dq))],
56
+ [0x02, binary_utils_1.ua2hex(binary_utils_1.b64Url2ua(jwk.qi))],
57
57
  ],
58
58
  ],
59
59
  ],
@@ -62,23 +62,23 @@ class UtilsClass {
62
62
  ]);
63
63
  }
64
64
  jwk2pkcs1(jwk) {
65
- return (0, asn1_packer_1.pack)([
65
+ return asn1_packer_1.pack([
66
66
  0x30,
67
67
  [
68
68
  [0x02, '00'],
69
- [0x02, (0, binary_utils_1.ua2hex)((0, binary_utils_1.b64Url2ua)(jwk.n))],
70
- [0x02, (0, binary_utils_1.ua2hex)((0, binary_utils_1.b64Url2ua)(jwk.e))],
71
- [0x02, (0, binary_utils_1.ua2hex)((0, binary_utils_1.b64Url2ua)(jwk.d))],
72
- [0x02, (0, binary_utils_1.ua2hex)((0, binary_utils_1.b64Url2ua)(jwk.p))],
73
- [0x02, (0, binary_utils_1.ua2hex)((0, binary_utils_1.b64Url2ua)(jwk.q))],
74
- [0x02, (0, binary_utils_1.ua2hex)((0, binary_utils_1.b64Url2ua)(jwk.dp))],
75
- [0x02, (0, binary_utils_1.ua2hex)((0, binary_utils_1.b64Url2ua)(jwk.dq))],
76
- [0x02, (0, binary_utils_1.ua2hex)((0, binary_utils_1.b64Url2ua)(jwk.qi))],
69
+ [0x02, binary_utils_1.ua2hex(binary_utils_1.b64Url2ua(jwk.n))],
70
+ [0x02, binary_utils_1.ua2hex(binary_utils_1.b64Url2ua(jwk.e))],
71
+ [0x02, binary_utils_1.ua2hex(binary_utils_1.b64Url2ua(jwk.d))],
72
+ [0x02, binary_utils_1.ua2hex(binary_utils_1.b64Url2ua(jwk.p))],
73
+ [0x02, binary_utils_1.ua2hex(binary_utils_1.b64Url2ua(jwk.q))],
74
+ [0x02, binary_utils_1.ua2hex(binary_utils_1.b64Url2ua(jwk.dp))],
75
+ [0x02, binary_utils_1.ua2hex(binary_utils_1.b64Url2ua(jwk.dq))],
76
+ [0x02, binary_utils_1.ua2hex(binary_utils_1.b64Url2ua(jwk.qi))],
77
77
  ],
78
78
  ]);
79
79
  }
80
80
  jwk2spki(jwk) {
81
- return (0, asn1_packer_1.pack)([
81
+ return asn1_packer_1.pack([
82
82
  0x30,
83
83
  [
84
84
  [0x30, [[0x06, '2a864886f70d010101'], [0x05]]],
@@ -88,8 +88,8 @@ class UtilsClass {
88
88
  [
89
89
  0x30,
90
90
  [
91
- [0x02, (0, binary_utils_1.ua2hex)((0, binary_utils_1.b64Url2ua)(jwk.n))],
92
- [0x02, (0, binary_utils_1.ua2hex)((0, binary_utils_1.b64Url2ua)(jwk.e))],
91
+ [0x02, binary_utils_1.ua2hex(binary_utils_1.b64Url2ua(jwk.n))],
92
+ [0x02, binary_utils_1.ua2hex(binary_utils_1.b64Url2ua(jwk.e))],
93
93
  ],
94
94
  ],
95
95
  ],
@@ -99,13 +99,13 @@ class UtilsClass {
99
99
  }
100
100
  spkiToJwk(buf) {
101
101
  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;
102
- const asn1 = (0, asn1_parser_1.parseAsn1)(new Uint8Array(buf));
102
+ const asn1 = asn1_parser_1.parseAsn1(new Uint8Array(buf));
103
103
  var modulus = undefined;
104
104
  var exponent = undefined;
105
105
  if (asn1.type === 0x30 &&
106
106
  ((_b = (_a = asn1.children) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.type) === 0x30 &&
107
107
  ((_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 &&
108
- (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()) === '2a864886f70d010101') {
108
+ 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()) === '2a864886f70d010101') {
109
109
  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;
110
110
  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;
111
111
  }
@@ -120,26 +120,26 @@ class UtilsClass {
120
120
  kty: 'RSA',
121
121
  alg: 'RSA-OAEP',
122
122
  ext: true,
123
- n: (0, binary_utils_1.ua2b64Url)(this.minimalRep(modulus)),
124
- e: (0, binary_utils_1.ua2b64Url)(this.minimalRep(exponent)),
123
+ n: binary_utils_1.ua2b64Url(this.minimalRep(modulus)),
124
+ e: binary_utils_1.ua2b64Url(this.minimalRep(exponent)),
125
125
  };
126
126
  }
127
127
  pkcs8ToJwk(buf) {
128
128
  var _a, _b;
129
- const parsed = (0, asn1_parser_1.parseAsn1)(new Uint8Array(buf));
129
+ const parsed = asn1_parser_1.parseAsn1(new Uint8Array(buf));
130
130
  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
131
131
  ? parsed.children[2].children[0]
132
132
  : parsed;
133
133
  return {
134
134
  kty: 'RSA',
135
- n: (0, binary_utils_1.ua2b64Url)(this.minimalRep(seq.children[1].value)),
136
- e: (0, binary_utils_1.ua2b64Url)(this.minimalRep(seq.children[2].value)),
137
- d: (0, binary_utils_1.ua2b64Url)(this.minimalRep(seq.children[3].value)),
138
- p: (0, binary_utils_1.ua2b64Url)(this.minimalRep(seq.children[4].value)),
139
- q: (0, binary_utils_1.ua2b64Url)(this.minimalRep(seq.children[5].value)),
140
- dp: (0, binary_utils_1.ua2b64Url)(this.minimalRep(seq.children[6].value)),
141
- dq: (0, binary_utils_1.ua2b64Url)(this.minimalRep(seq.children[7].value)),
142
- qi: (0, binary_utils_1.ua2b64Url)(this.minimalRep(seq.children[8].value)),
135
+ n: binary_utils_1.ua2b64Url(this.minimalRep(seq.children[1].value)),
136
+ e: binary_utils_1.ua2b64Url(this.minimalRep(seq.children[2].value)),
137
+ d: binary_utils_1.ua2b64Url(this.minimalRep(seq.children[3].value)),
138
+ p: binary_utils_1.ua2b64Url(this.minimalRep(seq.children[4].value)),
139
+ q: binary_utils_1.ua2b64Url(this.minimalRep(seq.children[5].value)),
140
+ dp: binary_utils_1.ua2b64Url(this.minimalRep(seq.children[6].value)),
141
+ dq: binary_utils_1.ua2b64Url(this.minimalRep(seq.children[7].value)),
142
+ qi: binary_utils_1.ua2b64Url(this.minimalRep(seq.children[8].value)),
143
143
  };
144
144
  }
145
145
  minimalRep(b) {
@@ -210,7 +210,7 @@ class UtilsClass {
210
210
  crypt(obj, cryptor, keys) {
211
211
  return __awaiter(this, void 0, void 0, function* () {
212
212
  const subObj = _.pick(obj, keys.filter((k) => !k.includes('*')));
213
- obj.encryptedSelf = (0, binary_utils_1.b2a)((0, binary_utils_1.ua2string)(yield cryptor(subObj)));
213
+ obj.encryptedSelf = binary_utils_1.b2a(binary_utils_1.ua2string(yield cryptor(subObj)));
214
214
  Object.keys(subObj).forEach((k) => delete obj[k]);
215
215
  yield keys
216
216
  .filter((k) => k.includes('*'))
@@ -244,7 +244,7 @@ class UtilsClass {
244
244
  }
245
245
  }), Promise.resolve());
246
246
  if (obj.encryptedSelf) {
247
- Object.assign(obj, yield decryptor((0, binary_utils_1.string2ua)((0, binary_utils_1.a2b)(obj.encryptedSelf))));
247
+ Object.assign(obj, yield decryptor(binary_utils_1.string2ua(binary_utils_1.a2b(obj.encryptedSelf))));
248
248
  }
249
249
  return obj;
250
250
  });
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../icc-x-api/crypto/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import * as moment 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 '../utils/asn1-packer'\nimport { parseAsn1 } from '../utils/asn1-parser'\n\nexport class UtilsClass {\n constructor() {}\n\n 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(() => this.notConcurrent(concurrencyMap, key, proc))\n }\n }\n\n 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\n jwk2pkcs1(jwk: any): string {\n return pack([\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 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\n 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()) === '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(this.minimalRep(modulus)),\n e: ua2b64Url(this.minimalRep(exponent)),\n }\n }\n\n 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(this.minimalRep(seq.children![1].value as Uint8Array)),\n e: ua2b64Url(this.minimalRep(seq.children![2].value as Uint8Array)),\n d: ua2b64Url(this.minimalRep(seq.children![3].value as Uint8Array)),\n p: ua2b64Url(this.minimalRep(seq.children![4].value as Uint8Array)),\n q: ua2b64Url(this.minimalRep(seq.children![5].value as Uint8Array)),\n dp: ua2b64Url(this.minimalRep(seq.children![6].value as Uint8Array)),\n dq: ua2b64Url(this.minimalRep(seq.children![7].value as Uint8Array)),\n qi: ua2b64Url(this.minimalRep(seq.children![8].value as Uint8Array)),\n }\n }\n\n 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 */\n 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 */\n 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\n after(d1: number, d2: number): boolean {\n return d1 === null || d2 === null || d1 === undefined || d2 === undefined || this.moment(d1)!.isAfter(this.moment(d2)!)\n }\n\n before(d1: number, d2: number): boolean {\n return d1 === null || d2 === null || d1 === undefined || d2 === undefined || this.moment(d1)!.isBefore(this.moment(d2)!)\n }\n\n moment(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\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 */\n async 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) => this.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 */\n async 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 this.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}\n\nexport const utils = new UtilsClass()\n"]}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../icc-x-api/crypto/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import * as moment 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 '../utils/asn1-packer'\nimport { parseAsn1 } from '../utils/asn1-parser'\n\nexport class UtilsClass {\n constructor() {}\n\n 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(() => this.notConcurrent(concurrencyMap, key, proc))\n }\n }\n\n 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\n jwk2pkcs1(jwk: any): string {\n return pack([\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 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\n 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()) === '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(this.minimalRep(modulus)),\n e: ua2b64Url(this.minimalRep(exponent)),\n }\n }\n\n 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(this.minimalRep(seq.children![1].value as Uint8Array)),\n e: ua2b64Url(this.minimalRep(seq.children![2].value as Uint8Array)),\n d: ua2b64Url(this.minimalRep(seq.children![3].value as Uint8Array)),\n p: ua2b64Url(this.minimalRep(seq.children![4].value as Uint8Array)),\n q: ua2b64Url(this.minimalRep(seq.children![5].value as Uint8Array)),\n dp: ua2b64Url(this.minimalRep(seq.children![6].value as Uint8Array)),\n dq: ua2b64Url(this.minimalRep(seq.children![7].value as Uint8Array)),\n qi: ua2b64Url(this.minimalRep(seq.children![8].value as Uint8Array)),\n }\n }\n\n 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 */\n 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 */\n 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\n after(d1: number, d2: number): boolean {\n return d1 === null || d2 === null || d1 === undefined || d2 === undefined || this.moment(d1)!.isAfter(this.moment(d2)!)\n }\n\n before(d1: number, d2: number): boolean {\n return d1 === null || d2 === null || d1 === undefined || d2 === undefined || this.moment(d1)!.isBefore(this.moment(d2)!)\n }\n\n moment(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\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 */\n async 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) => this.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 */\n async 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 this.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}\n\nexport const utils = new UtilsClass()\n"]}
@@ -0,0 +1,23 @@
1
+ import { AbstractFilterCode } from '../../icc-api/model/AbstractFilterCode';
2
+ /**
3
+ * iCure Data Stack API Documentation
4
+ * The iCure Data Stack Application API is the native interface to iCure. This version is obsolete, please use v2.
5
+ *
6
+ * OpenAPI spec version: v1
7
+ *
8
+ *
9
+ * NOTE: This class is auto generated by the swagger code generator program.
10
+ * https://github.com/swagger-api/swagger-codegen.git
11
+ * Do not edit the class manually.
12
+ */
13
+ export declare class CodeIdsByTypeCodeVersionIntervalFilter extends AbstractFilterCode {
14
+ $type: string;
15
+ constructor(json: JSON | any);
16
+ desc?: string;
17
+ startType?: string;
18
+ startCode?: string;
19
+ startVersion?: string;
20
+ endType?: string;
21
+ endCode?: string;
22
+ endVersion?: string;
23
+ }
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CodeIdsByTypeCodeVersionIntervalFilter = void 0;
4
+ const AbstractFilterCode_1 = require("../../icc-api/model/AbstractFilterCode");
5
+ /**
6
+ * iCure Data Stack API Documentation
7
+ * The iCure Data Stack Application API is the native interface to iCure. This version is obsolete, please use v2.
8
+ *
9
+ * OpenAPI spec version: v1
10
+ *
11
+ *
12
+ * NOTE: This class is auto generated by the swagger code generator program.
13
+ * https://github.com/swagger-api/swagger-codegen.git
14
+ * Do not edit the class manually.
15
+ */
16
+ class CodeIdsByTypeCodeVersionIntervalFilter extends AbstractFilterCode_1.AbstractFilterCode {
17
+ constructor(json) {
18
+ super(json);
19
+ this.$type = 'CodeIdsByTypeCodeVersionIntervalFilter';
20
+ Object.assign(this, json);
21
+ }
22
+ }
23
+ exports.CodeIdsByTypeCodeVersionIntervalFilter = CodeIdsByTypeCodeVersionIntervalFilter;
24
+ //# sourceMappingURL=CodeIdsByTypeCodeVersionIntervalFilter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CodeIdsByTypeCodeVersionIntervalFilter.js","sourceRoot":"","sources":["../../../icc-x-api/filters/CodeIdsByTypeCodeVersionIntervalFilter.ts"],"names":[],"mappings":";;;AAAA,+EAA2E;AAE3E;;;;;;;;;;GAUG;AAEH,MAAa,sCAAuC,SAAQ,uCAAkB;IAE5E,YAAY,IAAgB;QAC1B,KAAK,CAAC,IAAI,CAAC,CAAA;QAFb,UAAK,GAAW,wCAAwC,CAAA;QAItD,MAAM,CAAC,MAAM,CAAC,IAA8C,EAAE,IAAI,CAAC,CAAA;IACrE,CAAC;CASF;AAfD,wFAeC","sourcesContent":["import { AbstractFilterCode } from '../../icc-api/model/AbstractFilterCode'\n\n/**\n * iCure Data Stack API Documentation\n * The iCure Data Stack Application API is the native interface to iCure. This version is obsolete, please use v2.\n *\n * OpenAPI spec version: v1\n *\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport class CodeIdsByTypeCodeVersionIntervalFilter extends AbstractFilterCode {\n $type: string = 'CodeIdsByTypeCodeVersionIntervalFilter'\n constructor(json: JSON | any) {\n super(json)\n\n Object.assign(this as CodeIdsByTypeCodeVersionIntervalFilter, json)\n }\n\n desc?: string\n startType?: string\n startCode?: string\n startVersion?: string\n endType?: string\n endCode?: string\n endVersion?: string\n}\n"]}
@@ -9,7 +9,6 @@ class PatientByHcPartyGenderEducationProfession extends AbstractFilterPatient_1.
9
9
  constructor(json) {
10
10
  super(json);
11
11
  this.$type = 'PatientByHcPartyGenderEducationProfession';
12
- super(json);
13
12
  }
14
13
  }
15
14
  exports.PatientByHcPartyGenderEducationProfession = PatientByHcPartyGenderEducationProfession;
@@ -1 +1 @@
1
- {"version":3,"file":"PatientByHcPartyGenderEducationProfession.js","sourceRoot":"","sources":["../../../icc-x-api/filters/PatientByHcPartyGenderEducationProfession.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,qFAAiF;AAIjF,MAAa,yCAA0C,SAAQ,6CAAqB;IAClF,YAAY,IAAgB;QAC1B,KAAK,CAAC,IAAI,CAAC,CAAA;QAUb,UAAK,GAAG,2CAA2C,CAAA;QARjD,KAAK,CAAC,IAAI,CAAC,CAAA;IACb,CAAC;CAQF;AAbD,8FAaC","sourcesContent":["/*\n * Copyright (c) 2020. Taktik SA, All rights reserved.\n */\nimport { AbstractFilterPatient } from '../../icc-api/model/AbstractFilterPatient'\nimport { Patient } from '../../icc-api/model/Patient'\nimport GenderEnum = Patient.GenderEnum\n\nexport class PatientByHcPartyGenderEducationProfession extends AbstractFilterPatient {\n constructor(json: JSON | any) {\n super(json)\n\n super(json)\n }\n\n healthcarePartyId?: string\n gender?: GenderEnum\n education?: string\n profession?: string\n\n $type = 'PatientByHcPartyGenderEducationProfession'\n}\n"]}
1
+ {"version":3,"file":"PatientByHcPartyGenderEducationProfession.js","sourceRoot":"","sources":["../../../icc-x-api/filters/PatientByHcPartyGenderEducationProfession.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,qFAA+E;AAI/E,MAAa,yCAA0C,SAAQ,6CAAqB;IAClF,YAAY,IAAgB;QAC1B,KAAK,CAAC,IAAI,CAAC,CAAA;QAQb,UAAK,GAAG,2CAA2C,CAAA;IAPnD,CAAC;CAQF;AAXD,8FAWC","sourcesContent":["/*\n * Copyright (c) 2020. Taktik SA, All rights reserved.\n */\nimport {AbstractFilterPatient} from '../../icc-api/model/AbstractFilterPatient'\nimport {Patient} from '../../icc-api/model/Patient'\nimport GenderEnum = Patient.GenderEnum\n\nexport class PatientByHcPartyGenderEducationProfession extends AbstractFilterPatient {\n constructor(json: JSON | any) {\n super(json)\n }\n\n healthcarePartyId?: string\n gender?: GenderEnum\n education?: string\n profession?: string\n\n $type = 'PatientByHcPartyGenderEducationProfession'\n}\n"]}
@@ -0,0 +1,18 @@
1
+ import { AbstractFilterUser } from '../../icc-api/model/AbstractFilterUser';
2
+ /**
3
+ * iCure Data Stack API Documentation
4
+ * The iCure Data Stack Application API is the native interface to iCure. This version is obsolete, please use v2.
5
+ *
6
+ * OpenAPI spec version: v1
7
+ *
8
+ *
9
+ * NOTE: This class is auto generated by the swagger code generator program.
10
+ * https://github.com/swagger-api/swagger-codegen.git
11
+ * Do not edit the class manually.
12
+ */
13
+ export declare class UsersByPatientIdFilter extends AbstractFilterUser {
14
+ $type: string;
15
+ constructor(json: JSON | any);
16
+ patientId?: string;
17
+ desc?: string;
18
+ }
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UsersByPatientIdFilter = void 0;
4
+ const AbstractFilterUser_1 = require("../../icc-api/model/AbstractFilterUser");
5
+ /**
6
+ * iCure Data Stack API Documentation
7
+ * The iCure Data Stack Application API is the native interface to iCure. This version is obsolete, please use v2.
8
+ *
9
+ * OpenAPI spec version: v1
10
+ *
11
+ *
12
+ * NOTE: This class is auto generated by the swagger code generator program.
13
+ * https://github.com/swagger-api/swagger-codegen.git
14
+ * Do not edit the class manually.
15
+ */
16
+ class UsersByPatientIdFilter extends AbstractFilterUser_1.AbstractFilterUser {
17
+ constructor(json) {
18
+ super(json);
19
+ this.$type = 'UsersByPatientIdFilter';
20
+ Object.assign(this, json);
21
+ }
22
+ }
23
+ exports.UsersByPatientIdFilter = UsersByPatientIdFilter;
24
+ //# sourceMappingURL=UsersByPatientIdFilter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UsersByPatientIdFilter.js","sourceRoot":"","sources":["../../../icc-x-api/filters/UsersByPatientIdFilter.ts"],"names":[],"mappings":";;;AAAA,+EAA2E;AAE3E;;;;;;;;;;GAUG;AAEH,MAAa,sBAAuB,SAAQ,uCAAkB;IAE5D,YAAY,IAAgB;QAC1B,KAAK,CAAC,IAAI,CAAC,CAAA;QAFb,UAAK,GAAW,wBAAwB,CAAA;QAItC,MAAM,CAAC,MAAM,CAAC,IAA8B,EAAE,IAAI,CAAC,CAAA;IACrD,CAAC;CAIF;AAVD,wDAUC","sourcesContent":["import { AbstractFilterUser } from '../../icc-api/model/AbstractFilterUser'\n\n/**\n * iCure Data Stack API Documentation\n * The iCure Data Stack Application API is the native interface to iCure. This version is obsolete, please use v2.\n *\n * OpenAPI spec version: v1\n *\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport class UsersByPatientIdFilter extends AbstractFilterUser {\n $type: string = 'UsersByPatientIdFilter'\n constructor(json: JSON | any) {\n super(json)\n\n Object.assign(this as UsersByPatientIdFilter, json)\n }\n\n patientId?: string\n desc?: string\n}\n"]}
@@ -1,11 +1,7 @@
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
- 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);
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
9
5
  }) : (function(o, m, k, k2) {
10
6
  if (k2 === undefined) k2 = k;
11
7
  o[k2] = m[k];
@@ -198,10 +194,10 @@ class PatientFilterBuilder extends FilterBuilder {
198
194
  }), this.hcpId));
199
195
  }
200
196
  olderThan(age) {
201
- return this.withDateOfBirthBetween(10000101, parseInt((0, date_fns_1.format)((0, date_fns_1.add)(new Date(), { years: -age }), 'yyyyMMdd')));
197
+ return this.withDateOfBirthBetween(10000101, parseInt(date_fns_1.format(date_fns_1.add(new Date(), { years: -age }), 'yyyyMMdd')));
202
198
  }
203
199
  youngerThan(age) {
204
- return this.withDateOfBirthBetween(parseInt((0, date_fns_1.format)((0, date_fns_1.add)(new Date(), { years: -age }), 'yyyyMMdd')), 99991231);
200
+ return this.withDateOfBirthBetween(parseInt(date_fns_1.format(date_fns_1.add(new Date(), { years: -age }), 'yyyyMMdd')), 99991231);
205
201
  }
206
202
  byGenderEducationProfession(gender, education, profession) {
207
203
  return this.composer(this, new PatientFilterBuilder(() => new PatientByHcPartyGenderEducationProfession_1.PatientByHcPartyGenderEducationProfession({