@explorins/pers-shared 2.1.9 → 2.1.11

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 (230) hide show
  1. package/README.md +62 -13
  2. package/dist/cjs/dto/auth.dto.d.ts +2 -6
  3. package/dist/cjs/dto/auth.dto.d.ts.map +1 -1
  4. package/dist/cjs/dto/auth.dto.js +17 -23
  5. package/dist/cjs/dto/auth.dto.js.map +1 -1
  6. package/dist/cjs/index.d.ts +1 -3
  7. package/dist/cjs/index.d.ts.map +1 -1
  8. package/dist/cjs/index.js +0 -4
  9. package/dist/cjs/index.js.map +1 -1
  10. package/dist/cjs/interfaces/token-transaction-input-data.interface.d.ts +12 -3
  11. package/dist/cjs/interfaces/token-transaction-input-data.interface.d.ts.map +1 -1
  12. package/dist/cjs/internal/database/index.d.ts +6 -0
  13. package/dist/cjs/internal/database/index.d.ts.map +1 -0
  14. package/dist/cjs/internal/database/index.js +24 -0
  15. package/dist/cjs/internal/database/index.js.map +1 -0
  16. package/dist/cjs/internal/database/models/base.model.d.ts +7 -0
  17. package/dist/cjs/internal/database/models/base.model.d.ts.map +1 -0
  18. package/dist/cjs/internal/database/models/base.model.js +11 -0
  19. package/dist/cjs/internal/database/models/base.model.js.map +1 -0
  20. package/dist/cjs/internal/database/models/fixture.model.d.ts +4 -0
  21. package/dist/cjs/internal/database/models/fixture.model.d.ts.map +1 -0
  22. package/dist/cjs/internal/database/models/fixture.model.js +8 -0
  23. package/dist/cjs/internal/database/models/fixture.model.js.map +1 -0
  24. package/dist/cjs/internal/database/schemas/fixture-fields.schema.d.ts +5 -0
  25. package/dist/cjs/internal/database/schemas/fixture-fields.schema.d.ts.map +1 -0
  26. package/dist/cjs/internal/database/schemas/fixture-fields.schema.js +11 -0
  27. package/dist/cjs/internal/database/schemas/fixture-fields.schema.js.map +1 -0
  28. package/dist/cjs/internal/database/schemas/shared-fields.schema.d.ts +44 -0
  29. package/dist/cjs/internal/database/schemas/shared-fields.schema.d.ts.map +1 -0
  30. package/dist/cjs/internal/database/schemas/shared-fields.schema.js +64 -0
  31. package/dist/cjs/internal/database/schemas/shared-fields.schema.js.map +1 -0
  32. package/dist/cjs/internal/database/schemas/tenant-fields.schema.d.ts +51 -0
  33. package/dist/cjs/internal/database/schemas/tenant-fields.schema.d.ts.map +1 -0
  34. package/dist/cjs/internal/database/schemas/tenant-fields.schema.js +57 -0
  35. package/dist/cjs/internal/database/schemas/tenant-fields.schema.js.map +1 -0
  36. package/dist/cjs/internal/enums/lambda.enum.d.ts +28 -0
  37. package/dist/cjs/internal/enums/lambda.enum.d.ts.map +1 -0
  38. package/dist/cjs/internal/enums/lambda.enum.js +34 -0
  39. package/dist/cjs/internal/enums/lambda.enum.js.map +1 -0
  40. package/dist/cjs/internal/exceptions/base/error-classification-enums.d.ts +118 -0
  41. package/dist/cjs/internal/exceptions/base/error-classification-enums.d.ts.map +1 -0
  42. package/dist/cjs/internal/exceptions/base/error-classification-enums.js +111 -0
  43. package/dist/cjs/internal/exceptions/base/error-classification-enums.js.map +1 -0
  44. package/dist/cjs/internal/exceptions/base/error-classification.interface.d.ts +48 -0
  45. package/dist/cjs/internal/exceptions/base/error-classification.interface.d.ts.map +1 -0
  46. package/dist/cjs/internal/exceptions/base/error-classification.interface.js +6 -0
  47. package/dist/cjs/internal/exceptions/base/error-classification.interface.js.map +1 -0
  48. package/dist/cjs/internal/exceptions/base/error-classifier.d.ts +23 -0
  49. package/dist/cjs/internal/exceptions/base/error-classifier.d.ts.map +1 -0
  50. package/dist/cjs/internal/exceptions/base/error-classifier.js +149 -0
  51. package/dist/cjs/internal/exceptions/base/error-classifier.js.map +1 -0
  52. package/dist/cjs/internal/exceptions/index.d.ts +3 -0
  53. package/dist/cjs/internal/exceptions/index.d.ts.map +1 -0
  54. package/dist/cjs/internal/exceptions/index.js +24 -0
  55. package/dist/cjs/internal/exceptions/index.js.map +1 -0
  56. package/dist/cjs/internal/functions/crypto.functions.d.ts +16 -0
  57. package/dist/cjs/internal/functions/crypto.functions.d.ts.map +1 -0
  58. package/dist/cjs/internal/functions/crypto.functions.js +110 -0
  59. package/dist/cjs/internal/functions/crypto.functions.js.map +1 -0
  60. package/dist/cjs/internal/functions/helper.functions.d.ts +10 -0
  61. package/dist/cjs/internal/functions/helper.functions.d.ts.map +1 -0
  62. package/dist/cjs/internal/functions/helper.functions.js +38 -0
  63. package/dist/cjs/internal/functions/helper.functions.js.map +1 -0
  64. package/dist/cjs/internal/functions/index.d.ts +4 -0
  65. package/dist/cjs/internal/functions/index.d.ts.map +1 -0
  66. package/dist/cjs/internal/functions/index.js +21 -0
  67. package/dist/cjs/internal/functions/index.js.map +1 -0
  68. package/dist/cjs/internal/functions/request.functions.d.ts +14 -0
  69. package/dist/cjs/internal/functions/request.functions.d.ts.map +1 -0
  70. package/dist/cjs/internal/functions/request.functions.js +69 -0
  71. package/dist/cjs/internal/functions/request.functions.js.map +1 -0
  72. package/dist/cjs/internal/index.d.ts +14 -0
  73. package/dist/cjs/internal/index.d.ts.map +1 -0
  74. package/dist/cjs/internal/index.js +42 -0
  75. package/dist/cjs/internal/index.js.map +1 -0
  76. package/dist/cjs/internal/interfaces/index.d.ts +3 -0
  77. package/dist/cjs/internal/interfaces/index.d.ts.map +1 -0
  78. package/dist/cjs/internal/interfaces/index.js +19 -0
  79. package/dist/cjs/internal/interfaces/index.js.map +1 -0
  80. package/dist/cjs/internal/interfaces/request.interface.d.ts +21 -0
  81. package/dist/cjs/internal/interfaces/request.interface.d.ts.map +1 -0
  82. package/dist/cjs/internal/interfaces/request.interface.js +15 -0
  83. package/dist/cjs/internal/interfaces/request.interface.js.map +1 -0
  84. package/dist/cjs/internal/interfaces/stripe-payment-intent-metadata.interface.d.ts +9 -0
  85. package/dist/cjs/internal/interfaces/stripe-payment-intent-metadata.interface.d.ts.map +1 -0
  86. package/dist/cjs/internal/interfaces/stripe-payment-intent-metadata.interface.js +3 -0
  87. package/dist/cjs/internal/interfaces/stripe-payment-intent-metadata.interface.js.map +1 -0
  88. package/dist/cjs/internal/internal-index.d.ts +8 -0
  89. package/dist/cjs/internal/internal-index.d.ts.map +1 -0
  90. package/dist/cjs/internal/internal-index.js +33 -0
  91. package/dist/cjs/internal/internal-index.js.map +1 -0
  92. package/dist/cjs/internal/orchestrators/base-orchestrator.d.ts +90 -0
  93. package/dist/cjs/internal/orchestrators/base-orchestrator.d.ts.map +1 -0
  94. package/dist/cjs/internal/orchestrators/base-orchestrator.js +124 -0
  95. package/dist/cjs/internal/orchestrators/base-orchestrator.js.map +1 -0
  96. package/dist/cjs/internal/orchestrators/base-workflow.d.ts +50 -0
  97. package/dist/cjs/internal/orchestrators/base-workflow.d.ts.map +1 -0
  98. package/dist/cjs/internal/orchestrators/base-workflow.js +68 -0
  99. package/dist/cjs/internal/orchestrators/base-workflow.js.map +1 -0
  100. package/dist/cjs/internal/orchestrators/index.d.ts +26 -0
  101. package/dist/cjs/internal/orchestrators/index.d.ts.map +1 -0
  102. package/dist/cjs/internal/orchestrators/index.js +46 -0
  103. package/dist/cjs/internal/orchestrators/index.js.map +1 -0
  104. package/dist/cjs/internal/utils/index.d.ts +2 -0
  105. package/dist/cjs/internal/utils/index.d.ts.map +1 -0
  106. package/dist/cjs/internal/utils/index.js +19 -0
  107. package/dist/cjs/internal/utils/index.js.map +1 -0
  108. package/dist/cjs/internal/utils/validation.utils.d.ts +49 -0
  109. package/dist/cjs/internal/utils/validation.utils.d.ts.map +1 -0
  110. package/dist/cjs/internal/utils/validation.utils.js +76 -0
  111. package/dist/cjs/internal/utils/validation.utils.js.map +1 -0
  112. package/dist/cjs/value-objects/token-transaction-input.vo.d.ts +2 -3
  113. package/dist/cjs/value-objects/token-transaction-input.vo.d.ts.map +1 -1
  114. package/dist/cjs/value-objects/token-transaction-input.vo.js +12 -20
  115. package/dist/cjs/value-objects/token-transaction-input.vo.js.map +1 -1
  116. package/dist/esm/dto/auth.dto.d.ts +2 -6
  117. package/dist/esm/dto/auth.dto.d.ts.map +1 -1
  118. package/dist/esm/dto/auth.dto.js +14 -18
  119. package/dist/esm/dto/auth.dto.js.map +1 -1
  120. package/dist/esm/index.d.ts +1 -3
  121. package/dist/esm/index.d.ts.map +1 -1
  122. package/dist/esm/index.js +0 -4
  123. package/dist/esm/index.js.map +1 -1
  124. package/dist/esm/interfaces/token-transaction-input-data.interface.d.ts +12 -3
  125. package/dist/esm/interfaces/token-transaction-input-data.interface.d.ts.map +1 -1
  126. package/dist/esm/internal/database/index.d.ts +6 -0
  127. package/dist/esm/internal/database/index.d.ts.map +1 -0
  128. package/dist/esm/internal/database/index.js +8 -0
  129. package/dist/esm/internal/database/index.js.map +1 -0
  130. package/dist/esm/internal/database/models/base.model.d.ts +7 -0
  131. package/dist/esm/internal/database/models/base.model.d.ts.map +1 -0
  132. package/dist/esm/internal/database/models/base.model.js +7 -0
  133. package/dist/esm/internal/database/models/base.model.js.map +1 -0
  134. package/dist/esm/internal/database/models/fixture.model.d.ts +4 -0
  135. package/dist/esm/internal/database/models/fixture.model.d.ts.map +1 -0
  136. package/dist/esm/internal/database/models/fixture.model.js +4 -0
  137. package/dist/esm/internal/database/models/fixture.model.js.map +1 -0
  138. package/dist/esm/internal/database/schemas/fixture-fields.schema.d.ts +5 -0
  139. package/dist/esm/internal/database/schemas/fixture-fields.schema.d.ts.map +1 -0
  140. package/dist/esm/internal/database/schemas/fixture-fields.schema.js +8 -0
  141. package/dist/esm/internal/database/schemas/fixture-fields.schema.js.map +1 -0
  142. package/dist/esm/internal/database/schemas/shared-fields.schema.d.ts +44 -0
  143. package/dist/esm/internal/database/schemas/shared-fields.schema.d.ts.map +1 -0
  144. package/dist/esm/internal/database/schemas/shared-fields.schema.js +61 -0
  145. package/dist/esm/internal/database/schemas/shared-fields.schema.js.map +1 -0
  146. package/dist/esm/internal/database/schemas/tenant-fields.schema.d.ts +51 -0
  147. package/dist/esm/internal/database/schemas/tenant-fields.schema.d.ts.map +1 -0
  148. package/dist/esm/internal/database/schemas/tenant-fields.schema.js +54 -0
  149. package/dist/esm/internal/database/schemas/tenant-fields.schema.js.map +1 -0
  150. package/dist/esm/internal/enums/lambda.enum.d.ts +28 -0
  151. package/dist/esm/internal/enums/lambda.enum.d.ts.map +1 -0
  152. package/dist/esm/internal/enums/lambda.enum.js +31 -0
  153. package/dist/esm/internal/enums/lambda.enum.js.map +1 -0
  154. package/dist/esm/internal/exceptions/base/error-classification-enums.d.ts +118 -0
  155. package/dist/esm/internal/exceptions/base/error-classification-enums.d.ts.map +1 -0
  156. package/dist/esm/internal/exceptions/base/error-classification-enums.js +108 -0
  157. package/dist/esm/internal/exceptions/base/error-classification-enums.js.map +1 -0
  158. package/dist/esm/internal/exceptions/base/error-classification.interface.d.ts +48 -0
  159. package/dist/esm/internal/exceptions/base/error-classification.interface.d.ts.map +1 -0
  160. package/dist/esm/internal/exceptions/base/error-classification.interface.js +5 -0
  161. package/dist/esm/internal/exceptions/base/error-classification.interface.js.map +1 -0
  162. package/dist/esm/internal/exceptions/base/error-classifier.d.ts +23 -0
  163. package/dist/esm/internal/exceptions/base/error-classifier.d.ts.map +1 -0
  164. package/dist/esm/internal/exceptions/base/error-classifier.js +145 -0
  165. package/dist/esm/internal/exceptions/base/error-classifier.js.map +1 -0
  166. package/dist/esm/internal/exceptions/index.d.ts +3 -0
  167. package/dist/esm/internal/exceptions/index.d.ts.map +1 -0
  168. package/dist/esm/internal/exceptions/index.js +6 -0
  169. package/dist/esm/internal/exceptions/index.js.map +1 -0
  170. package/dist/esm/internal/functions/crypto.functions.d.ts +16 -0
  171. package/dist/esm/internal/functions/crypto.functions.d.ts.map +1 -0
  172. package/dist/esm/internal/functions/crypto.functions.js +67 -0
  173. package/dist/esm/internal/functions/crypto.functions.js.map +1 -0
  174. package/dist/esm/internal/functions/helper.functions.d.ts +10 -0
  175. package/dist/esm/internal/functions/helper.functions.d.ts.map +1 -0
  176. package/dist/esm/internal/functions/helper.functions.js +32 -0
  177. package/dist/esm/internal/functions/helper.functions.js.map +1 -0
  178. package/dist/esm/internal/functions/index.d.ts +4 -0
  179. package/dist/esm/internal/functions/index.d.ts.map +1 -0
  180. package/dist/esm/internal/functions/index.js +5 -0
  181. package/dist/esm/internal/functions/index.js.map +1 -0
  182. package/dist/esm/internal/functions/request.functions.d.ts +14 -0
  183. package/dist/esm/internal/functions/request.functions.d.ts.map +1 -0
  184. package/dist/esm/internal/functions/request.functions.js +61 -0
  185. package/dist/esm/internal/functions/request.functions.js.map +1 -0
  186. package/dist/esm/internal/index.d.ts +14 -0
  187. package/dist/esm/internal/index.d.ts.map +1 -0
  188. package/dist/esm/internal/index.js +26 -0
  189. package/dist/esm/internal/index.js.map +1 -0
  190. package/dist/esm/internal/interfaces/index.d.ts +3 -0
  191. package/dist/esm/internal/interfaces/index.d.ts.map +1 -0
  192. package/dist/esm/internal/interfaces/index.js +3 -0
  193. package/dist/esm/internal/interfaces/index.js.map +1 -0
  194. package/dist/esm/internal/interfaces/request.interface.d.ts +21 -0
  195. package/dist/esm/internal/interfaces/request.interface.d.ts.map +1 -0
  196. package/dist/esm/internal/interfaces/request.interface.js +11 -0
  197. package/dist/esm/internal/interfaces/request.interface.js.map +1 -0
  198. package/dist/esm/internal/interfaces/stripe-payment-intent-metadata.interface.d.ts +9 -0
  199. package/dist/esm/internal/interfaces/stripe-payment-intent-metadata.interface.d.ts.map +1 -0
  200. package/dist/esm/internal/interfaces/stripe-payment-intent-metadata.interface.js +2 -0
  201. package/dist/esm/internal/interfaces/stripe-payment-intent-metadata.interface.js.map +1 -0
  202. package/dist/esm/internal/internal-index.d.ts +8 -0
  203. package/dist/esm/internal/internal-index.d.ts.map +1 -0
  204. package/dist/esm/internal/internal-index.js +17 -0
  205. package/dist/esm/internal/internal-index.js.map +1 -0
  206. package/dist/esm/internal/orchestrators/base-orchestrator.d.ts +90 -0
  207. package/dist/esm/internal/orchestrators/base-orchestrator.d.ts.map +1 -0
  208. package/dist/esm/internal/orchestrators/base-orchestrator.js +116 -0
  209. package/dist/esm/internal/orchestrators/base-orchestrator.js.map +1 -0
  210. package/dist/esm/internal/orchestrators/base-workflow.d.ts +50 -0
  211. package/dist/esm/internal/orchestrators/base-workflow.d.ts.map +1 -0
  212. package/dist/esm/internal/orchestrators/base-workflow.js +64 -0
  213. package/dist/esm/internal/orchestrators/base-workflow.js.map +1 -0
  214. package/dist/esm/internal/orchestrators/index.d.ts +26 -0
  215. package/dist/esm/internal/orchestrators/index.d.ts.map +1 -0
  216. package/dist/esm/internal/orchestrators/index.js +30 -0
  217. package/dist/esm/internal/orchestrators/index.js.map +1 -0
  218. package/dist/esm/internal/utils/index.d.ts +2 -0
  219. package/dist/esm/internal/utils/index.d.ts.map +1 -0
  220. package/dist/esm/internal/utils/index.js +3 -0
  221. package/dist/esm/internal/utils/index.js.map +1 -0
  222. package/dist/esm/internal/utils/validation.utils.d.ts +49 -0
  223. package/dist/esm/internal/utils/validation.utils.d.ts.map +1 -0
  224. package/dist/esm/internal/utils/validation.utils.js +70 -0
  225. package/dist/esm/internal/utils/validation.utils.js.map +1 -0
  226. package/dist/esm/value-objects/token-transaction-input.vo.d.ts +2 -3
  227. package/dist/esm/value-objects/token-transaction-input.vo.d.ts.map +1 -1
  228. package/dist/esm/value-objects/token-transaction-input.vo.js +10 -18
  229. package/dist/esm/value-objects/token-transaction-input.vo.js.map +1 -1
  230. package/package.json +7 -1
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
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);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.decryptData = exports.encryptData = exports.generateDecryptedPrivateKey = exports.generatePseudoRandomData = exports.hashPassword = exports.checkMatching = exports.hashString = void 0;
37
+ const crypto = __importStar(require("crypto"));
38
+ const crypto_1 = require("crypto");
39
+ const bcrypt = require('bcryptjs');
40
+ const defaultSaltRounds = 10;
41
+ const hashString = (input, maxLength = null, algorithm = 'sha256') => {
42
+ // Generate a hash of the input string
43
+ let hash = crypto.createHash(algorithm).update(input).digest('hex');
44
+ if (typeof maxLength === 'number' && hash.length > maxLength) {
45
+ hash = hash.substring(0, maxLength);
46
+ }
47
+ return hash;
48
+ };
49
+ exports.hashString = hashString;
50
+ const checkMatching = async (plainString, hashedString) => {
51
+ const match = await bcrypt.compare(plainString, hashedString);
52
+ return match;
53
+ };
54
+ exports.checkMatching = checkMatching;
55
+ const hashPassword = async (password, saltRounds = defaultSaltRounds) => {
56
+ return await bcrypt.hash(password, saltRounds);
57
+ };
58
+ exports.hashPassword = hashPassword;
59
+ const generatePseudoRandomData = (size = 32) => {
60
+ // Convert the byte array into a hexadecimal string
61
+ let salt = (0, crypto_1.randomBytes)(size).toString('hex');
62
+ return salt;
63
+ };
64
+ exports.generatePseudoRandomData = generatePseudoRandomData;
65
+ const generateDecryptedPrivateKey = (privateKey, passphrase, keyType = 'pkcs8', keyFormat = 'pem') => {
66
+ const decryptedPrivateKey = crypto.createPrivateKey({
67
+ key: privateKey,
68
+ format: keyFormat,
69
+ type: keyType,
70
+ passphrase: passphrase,
71
+ });
72
+ return decryptedPrivateKey.export({ format: keyFormat, type: keyType }).toString();
73
+ };
74
+ exports.generateDecryptedPrivateKey = generateDecryptedPrivateKey;
75
+ const encryptData = (data, encryptionKey) => {
76
+ try {
77
+ const key = Buffer.from(encryptionKey, 'hex');
78
+ const iv = crypto.randomBytes(16);
79
+ const cipher = crypto.createCipheriv('aes-256-gcm', key, iv);
80
+ let encryptedData = cipher.update(data, 'utf8', 'hex');
81
+ encryptedData += cipher.final('hex');
82
+ const authTag = cipher.getAuthTag().toString('hex');
83
+ return {
84
+ encryptedData,
85
+ iv: iv.toString('hex'),
86
+ authTag
87
+ };
88
+ }
89
+ catch (error) {
90
+ throw new Error('Error encrypting data: ' + error.message);
91
+ }
92
+ };
93
+ exports.encryptData = encryptData;
94
+ const decryptData = (encryptedDataObject, encryptionKey) => {
95
+ try {
96
+ const key = Buffer.from(encryptionKey, 'hex');
97
+ const ivBuffer = Buffer.from(encryptedDataObject.iv, 'hex');
98
+ const authTagBuffer = Buffer.from(encryptedDataObject.authTag, 'hex');
99
+ const decipher = crypto.createDecipheriv('aes-256-gcm', key, ivBuffer);
100
+ decipher.setAuthTag(authTagBuffer);
101
+ let decryptedData = decipher.update(encryptedDataObject.encryptedData, 'hex', 'utf8');
102
+ decryptedData += decipher.final('utf8');
103
+ return decryptedData;
104
+ }
105
+ catch (error) {
106
+ throw new Error('Error decrypting data: ' + error.message);
107
+ }
108
+ };
109
+ exports.decryptData = decryptData;
110
+ //# sourceMappingURL=crypto.functions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto.functions.js","sourceRoot":"","sources":["../../../../src/internal/functions/crypto.functions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Parses a comma-separated string into an array of strings.
3
+ *
4
+ * @param commaSeparatedString - The string to parse.
5
+ * @returns An array of trimmed, non-empty strings.
6
+ */
7
+ export declare const parseCommaSeparatedStringToStringArray: (commaSeparatedString: string | null) => string[];
8
+ export declare const checkIfTokenIdIsUri: (tokenId: string | null) => boolean;
9
+ export declare const compareVersions: (version1: string, version2: string) => number;
10
+ //# sourceMappingURL=helper.functions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helper.functions.d.ts","sourceRoot":"","sources":["../../../../src/internal/functions/helper.functions.ts"],"names":[],"mappings":"AAEA;;;;;KAKK;AACL,eAAO,MAAM,sCAAsC,GAAI,sBAAsB,MAAM,GAAG,IAAI,KAAG,MAAM,EAI9F,CAAA;AAGL,eAAO,MAAM,mBAAmB,GAAI,SAAS,MAAM,GAAG,IAAI,KAAG,OAM5D,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,UAAU,MAAM,EAAE,UAAU,MAAM,KAAG,MAWpE,CAAA"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.compareVersions = exports.checkIfTokenIdIsUri = exports.parseCommaSeparatedStringToStringArray = void 0;
4
+ /**
5
+ * Parses a comma-separated string into an array of strings.
6
+ *
7
+ * @param commaSeparatedString - The string to parse.
8
+ * @returns An array of trimmed, non-empty strings.
9
+ */
10
+ const parseCommaSeparatedStringToStringArray = (commaSeparatedString) => {
11
+ return commaSeparatedString
12
+ ? commaSeparatedString.split(',').map((s) => s.trim()).filter(Boolean)
13
+ : [];
14
+ };
15
+ exports.parseCommaSeparatedStringToStringArray = parseCommaSeparatedStringToStringArray;
16
+ const checkIfTokenIdIsUri = (tokenId) => {
17
+ const uriRegex = /^(https?|ipfs):\/\/.*/;
18
+ if (!tokenId || !uriRegex.test(tokenId)) {
19
+ return false;
20
+ }
21
+ return true;
22
+ };
23
+ exports.checkIfTokenIdIsUri = checkIfTokenIdIsUri;
24
+ const compareVersions = (version1, version2) => {
25
+ const v1 = version1.split('.').map(Number);
26
+ const v2 = version2.split('.').map(Number);
27
+ for (let i = 0; i < Math.max(v1.length, v2.length); i++) {
28
+ const num1 = v1[i] || 0;
29
+ const num2 = v2[i] || 0;
30
+ if (num1 > num2)
31
+ return 1;
32
+ if (num1 < num2)
33
+ return -1;
34
+ }
35
+ return 0;
36
+ };
37
+ exports.compareVersions = compareVersions;
38
+ //# sourceMappingURL=helper.functions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helper.functions.js","sourceRoot":"","sources":["../../../../src/internal/functions/helper.functions.ts"],"names":[],"mappings":";;;AAEA;;;;;KAKK;AACE,MAAM,sCAAsC,GAAG,CAAC,oBAAmC,EAAY,EAAE;IACpG,OAAO,oBAAoB;QACzB,CAAC,CAAC,oBAAoB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QACtE,CAAC,CAAC,EAAE,CAAC;AACP,CAAC,CAAA;AAJQ,QAAA,sCAAsC,0CAI9C;AAGE,MAAM,mBAAmB,GAAG,CAAC,OAAsB,EAAW,EAAE;IACnE,MAAM,QAAQ,GAAG,uBAAuB,CAAC;IAC3C,IAAI,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACxC,OAAO,KAAK,CAAA;IACd,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AANY,QAAA,mBAAmB,uBAM/B;AAEM,MAAM,eAAe,GAAG,CAAC,QAAgB,EAAE,QAAgB,EAAU,EAAE;IAC5E,MAAM,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAE3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACtD,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACxB,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,IAAI,GAAG,IAAI;YAAE,OAAO,CAAC,CAAC;QAC1B,IAAI,IAAI,GAAG,IAAI;YAAE,OAAO,CAAC,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC,CAAA;AAXY,QAAA,eAAe,mBAW3B"}
@@ -0,0 +1,4 @@
1
+ export * from './helper.functions';
2
+ export * from './request.functions';
3
+ export * from './crypto.functions';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/internal/functions/index.ts"],"names":[],"mappings":"AACA,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
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);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ // Functions Barrel - Auto-exports all functions
18
+ __exportStar(require("./helper.functions"), exports);
19
+ __exportStar(require("./request.functions"), exports);
20
+ __exportStar(require("./crypto.functions"), exports);
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/internal/functions/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAAgD;AAChD,qDAAmC;AACnC,sDAAoC;AACpC,qDAAmC"}
@@ -0,0 +1,14 @@
1
+ import { AllowedAppRequestHeaders, ExtendedAppRequest } from "../interfaces/request.interface";
2
+ export declare const extractTokenFromHeader: (request: Request, tokenName: keyof AllowedAppRequestHeaders) => string | undefined;
3
+ export declare const getIpFromRequest: (request: Request | ExtendedAppRequest) => string | null;
4
+ /**
5
+ * Anonymize IP address for privacy compliance (GDPR/CCPA)
6
+ * Removes last octet for IPv4, last 80 bits for IPv6
7
+ */
8
+ export declare const anonymizeIp: (ip: string | null) => string | null;
9
+ export declare const getTenantFromStripeRequest: (req: Request) => {
10
+ tenantId: string;
11
+ isTestnet: boolean;
12
+ } | undefined;
13
+ export declare const setRequestValue: (request: Request, key: keyof ExtendedAppRequest, value: any) => void;
14
+ //# sourceMappingURL=request.functions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request.functions.d.ts","sourceRoot":"","sources":["../../../../src/internal/functions/request.functions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAI/F,eAAO,MAAM,sBAAsB,GAAI,SAAS,OAAO,EAAE,WAAW,MAAM,wBAAwB,KAAG,MAAM,GAAG,SAI3G,CAAA;AAGH,eAAO,MAAM,gBAAgB,GAAI,SAAS,OAAO,GAAG,kBAAkB,KAAG,MAAM,GAAG,IAejF,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,WAAW,GAAI,IAAI,MAAM,GAAG,IAAI,KAAG,MAAM,GAAG,IAoBxD,CAAA;AAED,eAAO,MAAM,0BAA0B,GAAI,KAAK,OAAO;cASnB,MAAM;eACJ,OAAO;aAE5C,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,SAAS,OAAO,EAAE,KAAK,MAAM,kBAAkB,EAAE,OAAO,GAAG,SAE1F,CAAA"}
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.setRequestValue = exports.getTenantFromStripeRequest = exports.anonymizeIp = exports.getIpFromRequest = exports.extractTokenFromHeader = void 0;
4
+ const extractTokenFromHeader = (request, tokenName) => {
5
+ // get key from header
6
+ const token = request?.headers ? (request?.headers)[tokenName] || '' : '';
7
+ return token;
8
+ };
9
+ exports.extractTokenFromHeader = extractTokenFromHeader;
10
+ // Enhanced IP extraction with better proxy support
11
+ const getIpFromRequest = (request) => {
12
+ // Try multiple IP sources in order of preference
13
+ const ip = request.ip ||
14
+ request.headers['x-forwarded-for']?.split(',')[0]?.trim() ||
15
+ request.headers['x-real-ip']?.trim() ||
16
+ request.connection?.remoteAddress?.trim() ||
17
+ request.socket?.remoteAddress?.trim() ||
18
+ null;
19
+ // Clean IPv6 mapped IPv4 addresses
20
+ if (ip?.startsWith('::ffff:')) {
21
+ return ip.substring(7);
22
+ }
23
+ return ip;
24
+ };
25
+ exports.getIpFromRequest = getIpFromRequest;
26
+ /**
27
+ * Anonymize IP address for privacy compliance (GDPR/CCPA)
28
+ * Removes last octet for IPv4, last 80 bits for IPv6
29
+ */
30
+ const anonymizeIp = (ip) => {
31
+ if (!ip)
32
+ return null;
33
+ // IPv4 anonymization - remove last octet
34
+ if (ip.includes('.') && !ip.includes(':')) {
35
+ const parts = ip.split('.');
36
+ if (parts.length === 4) {
37
+ return `${parts[0]}.${parts[1]}.${parts[2]}.0`;
38
+ }
39
+ }
40
+ // IPv6 anonymization - remove last 80 bits (keep first 48 bits)
41
+ if (ip.includes(':')) {
42
+ const parts = ip.split(':');
43
+ if (parts.length >= 3) {
44
+ return `${parts[0]}:${parts[1]}:${parts[2]}::`;
45
+ }
46
+ }
47
+ return ip; // Return as-is if format not recognized
48
+ };
49
+ exports.anonymizeIp = anonymizeIp;
50
+ const getTenantFromStripeRequest = (req) => {
51
+ const sig = req?.headers ? (req?.headers)['stripe-signature'] || '' : '';
52
+ if (!sig)
53
+ return;
54
+ const body = req?.body;
55
+ const data = body?.data;
56
+ const object = data?.object;
57
+ const metadata = object?.metadata;
58
+ return {
59
+ tenantId: metadata?.tenantId,
60
+ isTestnet: metadata?.isTestnet,
61
+ };
62
+ };
63
+ exports.getTenantFromStripeRequest = getTenantFromStripeRequest;
64
+ const setRequestValue = (request, key, value) => {
65
+ if (request)
66
+ request[key] = value;
67
+ };
68
+ exports.setRequestValue = setRequestValue;
69
+ //# sourceMappingURL=request.functions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request.functions.js","sourceRoot":"","sources":["../../../../src/internal/functions/request.functions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ export * from './orchestrators';
2
+ export * from './database';
3
+ export * from './utils';
4
+ export * from './exceptions';
5
+ export * from './enums/lambda.enum';
6
+ export * from './functions';
7
+ export * from './interfaces';
8
+ export * from '../enum';
9
+ export * from '../value-objects';
10
+ export * from '../interfaces';
11
+ export * from '../types';
12
+ export * from '../dto';
13
+ export * from '../errors';
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/internal/index.ts"],"names":[],"mappings":"AAIA,cAAc,iBAAiB,CAAC;AAGhC,cAAc,YAAY,CAAC;AAG3B,cAAc,SAAS,CAAC;AAGxB,cAAc,cAAc,CAAC;AAG7B,cAAc,qBAAqB,CAAC;AAEpC,cAAc,aAAa,CAAC;AAE5B,cAAc,cAAc,CAAC;AAK7B,cAAc,SAAS,CAAC;AACxB,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AAGvB,cAAc,WAAW,CAAC"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ // PERS Shared Patterns Library - Internal Architecture Components
3
+ // 🔒 PRIVATE: For internal PERS microservices only
4
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
5
+ if (k2 === undefined) k2 = k;
6
+ var desc = Object.getOwnPropertyDescriptor(m, k);
7
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
8
+ desc = { enumerable: true, get: function() { return m[k]; } };
9
+ }
10
+ Object.defineProperty(o, k2, desc);
11
+ }) : (function(o, m, k, k2) {
12
+ if (k2 === undefined) k2 = k;
13
+ o[k2] = m[k];
14
+ }));
15
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
17
+ };
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ // Orchestrators - Business coordination patterns
20
+ __exportStar(require("./orchestrators"), exports);
21
+ // Database - Shared entity models and schemas
22
+ __exportStar(require("./database"), exports);
23
+ // Utils - Validation and utility functions
24
+ __exportStar(require("./utils"), exports);
25
+ // Exceptions - Business and technical error classes
26
+ __exportStar(require("./exceptions"), exports);
27
+ // Enums - Internal business enums for microservice communication
28
+ __exportStar(require("./enums/lambda.enum"), exports);
29
+ __exportStar(require("./functions"), exports);
30
+ __exportStar(require("./interfaces"), exports);
31
+ // Shared Pattern
32
+ // Core domain contracts
33
+ __exportStar(require("../enum"), exports);
34
+ __exportStar(require("../value-objects"), exports);
35
+ __exportStar(require("../interfaces"), exports);
36
+ __exportStar(require("../types"), exports);
37
+ __exportStar(require("../dto"), exports);
38
+ // Error handling system
39
+ __exportStar(require("../errors"), exports);
40
+ // Note: This library contains proprietary business logic and architecture patterns
41
+ // It should only be used within PERS internal microservices
42
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/internal/index.ts"],"names":[],"mappings":";AAAA,kEAAkE;AAClE,mDAAmD;;;;;;;;;;;;;;;;AAEnD,iDAAiD;AACjD,kDAAgC;AAEhC,8CAA8C;AAC9C,6CAA2B;AAE3B,2CAA2C;AAC3C,0CAAwB;AAExB,oDAAoD;AACpD,+CAA6B;AAE7B,iEAAiE;AACjE,sDAAoC;AAEpC,8CAA4B;AAE5B,+CAA6B;AAG7B,iBAAiB;AACjB,wBAAwB;AACxB,0CAAwB;AACxB,mDAAiC;AACjC,gDAA8B;AAC9B,2CAAyB;AACzB,yCAAuB;AAEvB,wBAAwB;AACxB,4CAA0B;AAE1B,mFAAmF;AACnF,4DAA4D"}
@@ -0,0 +1,3 @@
1
+ export * from './stripe-payment-intent-metadata.interface';
2
+ export * from './request.interface';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/internal/interfaces/index.ts"],"names":[],"mappings":"AAEA,cAAc,4CAA4C,CAAC;AAC3D,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
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);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./stripe-payment-intent-metadata.interface"), exports);
18
+ __exportStar(require("./request.interface"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/internal/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAEA,6EAA2D;AAC3D,sDAAoC"}
@@ -0,0 +1,21 @@
1
+ import { UserDTO, TenantDTO, BusinessDTO, AdminDTO } from '@explorins/pers-shared';
2
+ export interface ExtendedAppRequest extends Request {
3
+ tenant?: TenantDTO;
4
+ business?: BusinessDTO;
5
+ user?: UserDTO;
6
+ admin?: AdminDTO;
7
+ isVerifiedTenantAdmin?: boolean;
8
+ originalIp?: string;
9
+ anonymizedIp?: string;
10
+ }
11
+ export declare class AllowedAppRequestHeaders {
12
+ 'x-project-key': string;
13
+ 'x-api-key': string;
14
+ 'Authorization': string;
15
+ 'Origin': string;
16
+ 'X-Requested-With': string;
17
+ 'Content-Type': string;
18
+ 'Accept': string;
19
+ 'stripe-signature': string;
20
+ }
21
+ //# sourceMappingURL=request.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request.interface.d.ts","sourceRoot":"","sources":["../../../../src/internal/interfaces/request.interface.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAEjF,MAAM,WAAW,kBAAmB,SAAQ,OAAO;IAC/C,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,KAAK,CAAC,EAAE,QAAQ,CAAA;IAChB,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAE/B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;CACxB;AACD,qBAAa,wBAAwB;IACjC,eAAe,EAAE,MAAM,CAAkB;IACzC,WAAW,EAAE,MAAM,CAAc;IACjC,eAAe,EAAE,MAAM,CAAkB;IACzC,QAAQ,EAAE,MAAM,CAAW;IAC3B,kBAAkB,EAAE,MAAM,CAAqB;IAC/C,cAAc,EAAE,MAAM,CAAiB;IACvC,QAAQ,EAAE,MAAM,CAAW;IAC3B,kBAAkB,EAAE,MAAM,CAAqB;CAClD"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AllowedAppRequestHeaders = void 0;
4
+ class AllowedAppRequestHeaders {
5
+ 'x-project-key' = 'x-project-key';
6
+ 'x-api-key' = 'x-api-key';
7
+ 'Authorization' = 'Authorization';
8
+ 'Origin' = 'Origin';
9
+ 'X-Requested-With' = 'X-Requested-With';
10
+ 'Content-Type' = 'Content-Type';
11
+ 'Accept' = 'Accept';
12
+ 'stripe-signature' = 'stripe-signature';
13
+ }
14
+ exports.AllowedAppRequestHeaders = AllowedAppRequestHeaders;
15
+ //# sourceMappingURL=request.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request.interface.js","sourceRoot":"","sources":["../../../../src/internal/interfaces/request.interface.ts"],"names":[],"mappings":";;;AAaA,MAAa,wBAAwB;IACjC,eAAe,GAAW,eAAe,CAAA;IACzC,WAAW,GAAW,WAAW,CAAA;IACjC,eAAe,GAAW,eAAe,CAAA;IACzC,QAAQ,GAAW,QAAQ,CAAA;IAC3B,kBAAkB,GAAW,kBAAkB,CAAA;IAC/C,cAAc,GAAW,cAAc,CAAA;IACvC,QAAQ,GAAW,QAAQ,CAAA;IAC3B,kBAAkB,GAAW,kBAAkB,CAAA;CAClD;AATD,4DASC"}
@@ -0,0 +1,9 @@
1
+ export interface StripePaymentIntentMetadata {
2
+ accountAddress: string;
3
+ tokenAddress: string;
4
+ tokenId: string | null;
5
+ minterAddress: string;
6
+ tenantId: string;
7
+ isTestnet: boolean;
8
+ }
9
+ //# sourceMappingURL=stripe-payment-intent-metadata.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stripe-payment-intent-metadata.interface.d.ts","sourceRoot":"","sources":["../../../../src/internal/interfaces/stripe-payment-intent-metadata.interface.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,2BAA2B;IACxC,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;CACtB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=stripe-payment-intent-metadata.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stripe-payment-intent-metadata.interface.js","sourceRoot":"","sources":["../../../../src/internal/interfaces/stripe-payment-intent-metadata.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ export * from './orchestrators';
2
+ export * from './database';
3
+ export * from './utils';
4
+ export * from './exceptions';
5
+ export * from './enums/lambda.enum';
6
+ export * from './functions';
7
+ export * from './interfaces';
8
+ //# sourceMappingURL=internal-index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal-index.d.ts","sourceRoot":"","sources":["../../../src/internal/internal-index.ts"],"names":[],"mappings":"AAIA,cAAc,iBAAiB,CAAC;AAGhC,cAAc,YAAY,CAAC;AAG3B,cAAc,SAAS,CAAC;AAGxB,cAAc,cAAc,CAAC;AAG7B,cAAc,qBAAqB,CAAC;AAEpC,cAAc,aAAa,CAAC;AAE5B,cAAc,cAAc,CAAC"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ // PERS Shared Patterns Library - Internal Architecture Components
3
+ // 🔒 PRIVATE: For internal PERS microservices only
4
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
5
+ if (k2 === undefined) k2 = k;
6
+ var desc = Object.getOwnPropertyDescriptor(m, k);
7
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
8
+ desc = { enumerable: true, get: function() { return m[k]; } };
9
+ }
10
+ Object.defineProperty(o, k2, desc);
11
+ }) : (function(o, m, k, k2) {
12
+ if (k2 === undefined) k2 = k;
13
+ o[k2] = m[k];
14
+ }));
15
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
17
+ };
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ // Orchestrators - Business coordination patterns
20
+ __exportStar(require("./orchestrators"), exports);
21
+ // Database - Shared entity models and schemas
22
+ __exportStar(require("./database"), exports);
23
+ // Utils - Validation and utility functions
24
+ __exportStar(require("./utils"), exports);
25
+ // Exceptions - Business and technical error classes
26
+ __exportStar(require("./exceptions"), exports);
27
+ // Enums - Internal business enums for microservice communication
28
+ __exportStar(require("./enums/lambda.enum"), exports);
29
+ __exportStar(require("./functions"), exports);
30
+ __exportStar(require("./interfaces"), exports);
31
+ // Note: This library contains proprietary business logic and architecture patterns
32
+ // It should only be used within PERS internal microservices
33
+ //# sourceMappingURL=internal-index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal-index.js","sourceRoot":"","sources":["../../../src/internal/internal-index.ts"],"names":[],"mappings":";AAAA,kEAAkE;AAClE,mDAAmD;;;;;;;;;;;;;;;;AAEnD,iDAAiD;AACjD,kDAAgC;AAEhC,8CAA8C;AAC9C,6CAA2B;AAE3B,2CAA2C;AAC3C,0CAAwB;AAExB,oDAAoD;AACpD,+CAA6B;AAE7B,iEAAiE;AACjE,sDAAoC;AAEpC,8CAA4B;AAE5B,+CAA6B;AAE7B,mFAAmF;AACnF,4DAA4D"}
@@ -0,0 +1,90 @@
1
+ import { Logger } from '@nestjs/common';
2
+ import { CommandBus, QueryBus } from '@nestjs/cqrs';
3
+ import { OrchestrationError } from '@explorins/pers-shared';
4
+ /**
5
+ * BaseOrchestrator - Centralized Application Layer Orchestration Pattern
6
+ *
7
+ * @description Foundation for all domain orchestrators following PERS DDD principles:
8
+ * - Application layer orchestrates cross-domain operations via CQRS
9
+ * - Domain services contain pure business logic only
10
+ * - Microservice boundary preparation through clean abstractions
11
+ * - Consistent patterns across all domains (transaction, user, wallet, token, etc.)
12
+ * - Smart error handling that preserves business context
13
+ *
14
+ * @usage Extend this class in domain-specific orchestrators:
15
+ * ```typescript
16
+ * @Injectable()
17
+ * export class UserOrchestrator extends BaseOrchestrator {
18
+ * constructor(commandBus: CommandBus, queryBus: QueryBus) {
19
+ * super(commandBus, queryBus, UserOrchestrator.name);
20
+ * }
21
+ * }
22
+ * ```
23
+ *
24
+ * @library @explorins/pers-shared
25
+ * @version 2.0.0
26
+ * @since August 2025
27
+ */
28
+ export declare abstract class BaseOrchestrator {
29
+ protected readonly commandBus: CommandBus;
30
+ protected readonly queryBus: QueryBus;
31
+ protected readonly logger: Logger;
32
+ protected constructor(commandBus: CommandBus, queryBus: QueryBus, loggerContext: string);
33
+ /**
34
+ * Enhanced error handling that preserves business errors while wrapping technical errors
35
+ * Business errors (with category: DOMAIN_RULE) are passed through unchanged
36
+ * Technical errors are wrapped in OrchestrationError for consistent handling
37
+ */
38
+ protected executeWithErrorHandling<T>(operation: () => Promise<T>, operationName: string, context?: Record<string, any>): Promise<T>;
39
+ /**
40
+ * Execute CQRS command with consistent error handling and logging
41
+ * Standardizes command execution across all orchestrators
42
+ */
43
+ protected executeCommand<T>(command: any, operationName?: string): Promise<T>;
44
+ /**
45
+ * Execute CQRS query with consistent error handling and logging
46
+ * Standardizes query execution across all orchestrators
47
+ */
48
+ protected executeQuery<T>(query: any, operationName?: string): Promise<T>;
49
+ /**
50
+ * Execute multiple operations in parallel with error handling
51
+ * Useful for batch operations across domains
52
+ */
53
+ protected executeParallel<T>(operations: (() => Promise<T>)[], operationName: string): Promise<T[]>;
54
+ }
55
+ /**
56
+ * Result pattern for orchestrator operations (optional - for complex flows)
57
+ * Provides type-safe error handling without exceptions
58
+ */
59
+ export type OrchestrationResult<T> = {
60
+ success: true;
61
+ data: T;
62
+ operation?: string;
63
+ } | {
64
+ success: false;
65
+ error: OrchestrationError;
66
+ operation?: string;
67
+ };
68
+ /**
69
+ * Helper function to create success result
70
+ */
71
+ export declare function createSuccessResult<T>(data: T, operation?: string): OrchestrationResult<T>;
72
+ /**
73
+ * Helper function to create error result
74
+ */
75
+ export declare function createErrorResult<T>(error: OrchestrationError, operation?: string): OrchestrationResult<T>;
76
+ /**
77
+ * Utility function to check if result is successful
78
+ * Provides type guard for TypeScript
79
+ */
80
+ export declare function isSuccessResult<T>(result: OrchestrationResult<T>): result is {
81
+ success: true;
82
+ data: T;
83
+ operation?: string;
84
+ };
85
+ /**
86
+ * Utility function to extract data from result or throw error
87
+ * Useful for converting result pattern back to exception-based flow
88
+ */
89
+ export declare function unwrapResult<T>(result: OrchestrationResult<T>): T;
90
+ //# sourceMappingURL=base-orchestrator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-orchestrator.d.ts","sourceRoot":"","sources":["../../../../src/internal/orchestrators/base-orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAiB,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAiB,MAAM,wBAAwB,CAAC;AAE3E;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,8BAAsB,gBAAgB;IAIlC,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU;IACzC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ;IAJvC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAElC,SAAS,aACY,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,QAAQ,EACrC,aAAa,EAAE,MAAM;IAKvB;;;;OAIG;cACa,wBAAwB,CAAC,CAAC,EACxC,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,aAAa,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC5B,OAAO,CAAC,CAAC,CAAC;IAwBb;;;OAGG;cACa,cAAc,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IASnF;;;OAGG;cACa,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAS/E;;;OAGG;cACa,eAAe,CAAC,CAAC,EAC/B,UAAU,EAAE,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAChC,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,CAAC,EAAE,CAAC;CAOhB;AAED;;;GAGG;AACH,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI;IACnC,OAAO,EAAE,IAAI,CAAC;IACd,IAAI,EAAE,CAAC,CAAC;IACR,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG;IACF,OAAO,EAAE,KAAK,CAAC;IACf,KAAK,EAAE,kBAAkB,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAE1F;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAE1G;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,CAAC,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAE3H;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,CAAC,CAKjE"}