@abyss-project/main 4.0.0 → 5.1.0

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 (95) hide show
  1. package/dist/api/token-history.admin.api.d.ts +3 -3
  2. package/dist/api/token-history.admin.api.js +2 -2
  3. package/dist/api/token-history.admin.api.js.map +1 -1
  4. package/dist/translate/en.translate.d.ts +4 -0
  5. package/dist/translate/en.translate.js +4 -0
  6. package/dist/translate/en.translate.js.map +1 -1
  7. package/dist/translate/fr.translate.d.ts +4 -0
  8. package/dist/translate/fr.translate.js +4 -0
  9. package/dist/translate/fr.translate.js.map +1 -1
  10. package/dist/types/enum/email-type.enum.d.ts +1 -0
  11. package/dist/types/enum/email-type.enum.js +1 -0
  12. package/dist/types/enum/email-type.enum.js.map +1 -1
  13. package/dist/types/enum/user-notification-category.enum.js +2 -0
  14. package/dist/types/enum/user-notification-category.enum.js.map +1 -1
  15. package/dist/types/enum/user-notification-content-type.enum.d.ts +13 -0
  16. package/dist/types/enum/user-notification-content-type.enum.js +2 -1
  17. package/dist/types/enum/user-notification-content-type.enum.js.map +1 -1
  18. package/dist/types/interface/api/requests/token-history.admin.request.d.ts +2 -2
  19. package/dist/types/interface/api/responses/token-history.admin.response.d.ts +16 -6
  20. package/package.json +15 -11
  21. package/dist/constants/tests/billing-catalog.constants.spec.d.ts +0 -1
  22. package/dist/constants/tests/billing-catalog.constants.spec.js +0 -330
  23. package/dist/constants/tests/billing-catalog.constants.spec.js.map +0 -1
  24. package/dist/constants/tests/catalog-plan-quotas.coherence.spec.d.ts +0 -1
  25. package/dist/constants/tests/catalog-plan-quotas.coherence.spec.js +0 -101
  26. package/dist/constants/tests/catalog-plan-quotas.coherence.spec.js.map +0 -1
  27. package/dist/constants/tests/metric-price-scale.constants.spec.d.ts +0 -1
  28. package/dist/constants/tests/metric-price-scale.constants.spec.js +0 -83
  29. package/dist/constants/tests/metric-price-scale.constants.spec.js.map +0 -1
  30. package/dist/constants/tests/module-calibration.constants.spec.d.ts +0 -1
  31. package/dist/constants/tests/module-calibration.constants.spec.js +0 -78
  32. package/dist/constants/tests/module-calibration.constants.spec.js.map +0 -1
  33. package/dist/constants/tests/module-catalog.constants.spec.d.ts +0 -1
  34. package/dist/constants/tests/module-catalog.constants.spec.js +0 -196
  35. package/dist/constants/tests/module-catalog.constants.spec.js.map +0 -1
  36. package/dist/constants/tests/overage-pricing-single-source.spec.d.ts +0 -1
  37. package/dist/constants/tests/overage-pricing-single-source.spec.js +0 -23
  38. package/dist/constants/tests/overage-pricing-single-source.spec.js.map +0 -1
  39. package/dist/constants/tests/pack-catalog.constants.spec.d.ts +0 -1
  40. package/dist/constants/tests/pack-catalog.constants.spec.js +0 -68
  41. package/dist/constants/tests/pack-catalog.constants.spec.js.map +0 -1
  42. package/dist/constants/tests/password-policy.constants.spec.d.ts +0 -1
  43. package/dist/constants/tests/password-policy.constants.spec.js +0 -67
  44. package/dist/constants/tests/password-policy.constants.spec.js.map +0 -1
  45. package/dist/server/tests/after-commit-emit.util.spec.d.ts +0 -1
  46. package/dist/server/tests/after-commit-emit.util.spec.js +0 -99
  47. package/dist/server/tests/after-commit-emit.util.spec.js.map +0 -1
  48. package/dist/server/tests/encrypt-secret.util.spec.d.ts +0 -6
  49. package/dist/server/tests/encrypt-secret.util.spec.js +0 -148
  50. package/dist/server/tests/encrypt-secret.util.spec.js.map +0 -1
  51. package/dist/types/enum/tests/billing-addon-status.enum.spec.d.ts +0 -1
  52. package/dist/types/enum/tests/billing-addon-status.enum.spec.js +0 -66
  53. package/dist/types/enum/tests/billing-addon-status.enum.spec.js.map +0 -1
  54. package/dist/types/enum/tests/report-notification-type.enum.spec.d.ts +0 -1
  55. package/dist/types/enum/tests/report-notification-type.enum.spec.js +0 -18
  56. package/dist/types/enum/tests/report-notification-type.enum.spec.js.map +0 -1
  57. package/dist/types/enum/tests/user-notification-content-type.enum.spec.d.ts +0 -1
  58. package/dist/types/enum/tests/user-notification-content-type.enum.spec.js +0 -13
  59. package/dist/types/enum/tests/user-notification-content-type.enum.spec.js.map +0 -1
  60. package/dist/utils/tests/billing-deep-link.utils.spec.d.ts +0 -1
  61. package/dist/utils/tests/billing-deep-link.utils.spec.js +0 -91
  62. package/dist/utils/tests/billing-deep-link.utils.spec.js.map +0 -1
  63. package/dist/utils/tests/billing.utils.spec.d.ts +0 -1
  64. package/dist/utils/tests/billing.utils.spec.js +0 -81
  65. package/dist/utils/tests/billing.utils.spec.js.map +0 -1
  66. package/dist/utils/tests/invoice-amounts.utils.spec.d.ts +0 -1
  67. package/dist/utils/tests/invoice-amounts.utils.spec.js +0 -97
  68. package/dist/utils/tests/invoice-amounts.utils.spec.js.map +0 -1
  69. package/dist/utils/tests/module-lot-price.utils.spec.d.ts +0 -1
  70. package/dist/utils/tests/module-lot-price.utils.spec.js +0 -56
  71. package/dist/utils/tests/module-lot-price.utils.spec.js.map +0 -1
  72. package/dist/utils/tests/module-price.utils.spec.d.ts +0 -1
  73. package/dist/utils/tests/module-price.utils.spec.js +0 -79
  74. package/dist/utils/tests/module-price.utils.spec.js.map +0 -1
  75. package/dist/utils/tests/overage-negotiated-rate.utils.spec.d.ts +0 -1
  76. package/dist/utils/tests/overage-negotiated-rate.utils.spec.js +0 -59
  77. package/dist/utils/tests/overage-negotiated-rate.utils.spec.js.map +0 -1
  78. package/dist/utils/tests/plan-capacity.utils.spec.d.ts +0 -1
  79. package/dist/utils/tests/plan-capacity.utils.spec.js +0 -81
  80. package/dist/utils/tests/plan-capacity.utils.spec.js.map +0 -1
  81. package/dist/utils/tests/pricing.utils.spec.d.ts +0 -1
  82. package/dist/utils/tests/pricing.utils.spec.js +0 -219
  83. package/dist/utils/tests/pricing.utils.spec.js.map +0 -1
  84. package/dist/utils/tests/quota-ceiling.utils.spec.d.ts +0 -1
  85. package/dist/utils/tests/quota-ceiling.utils.spec.js +0 -119
  86. package/dist/utils/tests/quota-ceiling.utils.spec.js.map +0 -1
  87. package/dist/utils/tests/quote-overage-rate.spec.d.ts +0 -1
  88. package/dist/utils/tests/quote-overage-rate.spec.js +0 -39
  89. package/dist/utils/tests/quote-overage-rate.spec.js.map +0 -1
  90. package/dist/utils/tests/resolve-user.utils.spec.d.ts +0 -1
  91. package/dist/utils/tests/resolve-user.utils.spec.js +0 -98
  92. package/dist/utils/tests/resolve-user.utils.spec.js.map +0 -1
  93. package/dist/utils/tests/shifted-tiers.utils.spec.d.ts +0 -1
  94. package/dist/utils/tests/shifted-tiers.utils.spec.js +0 -176
  95. package/dist/utils/tests/shifted-tiers.utils.spec.js.map +0 -1
@@ -1,148 +0,0 @@
1
- "use strict";
2
- const VALID_KEY = 'XUY5cvb7nmC/1mJPYaxLXR3K14anIKaN3AitJx3Ux/s=';
3
- const loadModule = (key) => {
4
- const previous = process.env.ABYSS_SECRET_ENCRYPTION_KEY;
5
- if (key === undefined) {
6
- delete process.env.ABYSS_SECRET_ENCRYPTION_KEY;
7
- }
8
- else {
9
- process.env.ABYSS_SECRET_ENCRYPTION_KEY = key;
10
- }
11
- let mod;
12
- try {
13
- jest.isolateModules(() => {
14
- mod = require('../encrypt-secret.util');
15
- });
16
- }
17
- finally {
18
- if (previous === undefined) {
19
- delete process.env.ABYSS_SECRET_ENCRYPTION_KEY;
20
- }
21
- else {
22
- process.env.ABYSS_SECRET_ENCRYPTION_KEY = previous;
23
- }
24
- }
25
- if (!mod) {
26
- throw new Error('module failed to load');
27
- }
28
- return mod;
29
- };
30
- const tamperCiphertext = (payload) => {
31
- const [version, body] = payload.split(':');
32
- const [iv, tag, ct] = body.split('.');
33
- const bytes = Buffer.from(ct, 'base64');
34
- bytes[0] = bytes[0] ^ 0xff;
35
- return `${version}:${iv}.${tag}.${bytes.toString('base64')}`;
36
- };
37
- const tamperTag = (payload) => {
38
- const [version, body] = payload.split(':');
39
- const [iv, tag, ct] = body.split('.');
40
- const bytes = Buffer.from(tag, 'base64');
41
- bytes[0] = bytes[0] ^ 0xff;
42
- return `${version}:${iv}.${bytes.toString('base64')}.${ct}`;
43
- };
44
- const callWithKey = (key, fn) => {
45
- const previous = process.env.ABYSS_SECRET_ENCRYPTION_KEY;
46
- if (key === undefined) {
47
- delete process.env.ABYSS_SECRET_ENCRYPTION_KEY;
48
- }
49
- else {
50
- process.env.ABYSS_SECRET_ENCRYPTION_KEY = key;
51
- }
52
- try {
53
- let mod;
54
- jest.isolateModules(() => {
55
- mod = require('../encrypt-secret.util');
56
- });
57
- if (!mod) {
58
- throw new Error('module failed to load');
59
- }
60
- fn(mod);
61
- }
62
- finally {
63
- if (previous === undefined) {
64
- delete process.env.ABYSS_SECRET_ENCRYPTION_KEY;
65
- }
66
- else {
67
- process.env.ABYSS_SECRET_ENCRYPTION_KEY = previous;
68
- }
69
- }
70
- };
71
- describe('encrypt-secret util — master key loading (lazy, boot-safe)', () => {
72
- it('does NOT throw at module load when the env key is missing', () => {
73
- expect(() => loadModule(undefined)).not.toThrow();
74
- });
75
- it('throws on first use when the env key is missing', () => {
76
- callWithKey(undefined, (mod) => {
77
- expect(() => mod.encryptSecret('x')).toThrow(/ABYSS_SECRET_ENCRYPTION_KEY is not set/);
78
- });
79
- });
80
- it('throws on first use when the env key does not decode to 32 bytes', () => {
81
- callWithKey(Buffer.from('short').toString('base64'), (mod) => {
82
- expect(() => mod.encryptSecret('x')).toThrow(/32 bytes/);
83
- });
84
- });
85
- it('encrypts when the env key decodes to exactly 32 bytes', () => {
86
- callWithKey(VALID_KEY, (mod) => {
87
- expect(() => mod.encryptSecret('x')).not.toThrow();
88
- });
89
- });
90
- });
91
- describe('encrypt-secret util — encrypt / decrypt', () => {
92
- it('round-trips a plaintext', () => {
93
- callWithKey(VALID_KEY, ({ encryptSecret, decryptSecret }) => {
94
- const plaintext = 'abyk_super-secret-value-123';
95
- expect(decryptSecret(encryptSecret(plaintext))).toBe(plaintext);
96
- });
97
- });
98
- it('produces a version-prefixed envelope', () => {
99
- callWithKey(VALID_KEY, ({ encryptSecret }) => {
100
- const payload = encryptSecret('hello');
101
- expect(payload.startsWith('v1:')).toBe(true);
102
- expect(payload.split(':')[1].split('.')).toHaveLength(3);
103
- });
104
- });
105
- it('yields a different ciphertext for the same plaintext (random IV)', () => {
106
- callWithKey(VALID_KEY, ({ encryptSecret }) => {
107
- expect(encryptSecret('same-input')).not.toBe(encryptSecret('same-input'));
108
- });
109
- });
110
- it('throws when the ciphertext is tampered', () => {
111
- callWithKey(VALID_KEY, ({ encryptSecret, decryptSecret }) => {
112
- const tampered = tamperCiphertext(encryptSecret('secret'));
113
- expect(() => decryptSecret(tampered)).toThrow();
114
- });
115
- });
116
- it('throws when the auth tag is tampered', () => {
117
- callWithKey(VALID_KEY, ({ encryptSecret, decryptSecret }) => {
118
- const tampered = tamperTag(encryptSecret('secret'));
119
- expect(() => decryptSecret(tampered)).toThrow();
120
- });
121
- });
122
- it('throws on an unknown version prefix', () => {
123
- callWithKey(VALID_KEY, ({ encryptSecret, decryptSecret }) => {
124
- const payload = encryptSecret('secret').replace(/^v1:/, 'v2:');
125
- expect(() => decryptSecret(payload)).toThrow(/Unsupported secret payload version/);
126
- });
127
- });
128
- it('throws on a malformed payload', () => {
129
- callWithKey(VALID_KEY, ({ decryptSecret }) => {
130
- expect(() => decryptSecret('v1:only-one-segment')).toThrow();
131
- });
132
- });
133
- });
134
- describe('encrypt-secret util — sha256Hex', () => {
135
- it('returns a deterministic 64-char hex digest', () => {
136
- callWithKey(VALID_KEY, ({ sha256Hex }) => {
137
- const a = sha256Hex('abyk_key');
138
- expect(a).toBe(sha256Hex('abyk_key'));
139
- expect(a).toMatch(/^[0-9a-f]{64}$/);
140
- });
141
- });
142
- it('differs for different inputs', () => {
143
- callWithKey(VALID_KEY, ({ sha256Hex }) => {
144
- expect(sha256Hex('a')).not.toBe(sha256Hex('b'));
145
- });
146
- });
147
- });
148
- //# sourceMappingURL=encrypt-secret.util.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"encrypt-secret.util.spec.js","sourceRoot":"","sources":["../../../src/server/tests/encrypt-secret.util.spec.ts"],"names":[],"mappings":"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"}
@@ -1,66 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const organization_billing_enum_1 = require("../organization-billing.enum");
4
- const TOUTES_LES_PAIRES = Object.values(organization_billing_enum_1.BillingAddonStatus).flatMap((from) => Object.values(organization_billing_enum_1.BillingAddonAction).map((action) => [from, action]));
5
- const PAIRES_LEGALES = [
6
- [
7
- organization_billing_enum_1.BillingAddonStatus.ACTIVE,
8
- organization_billing_enum_1.BillingAddonAction.SUSPEND_AS_INCLUDED,
9
- organization_billing_enum_1.BillingAddonStatus.SUSPENDED_BY_PLAN,
10
- ],
11
- [
12
- organization_billing_enum_1.BillingAddonStatus.ACTIVE,
13
- organization_billing_enum_1.BillingAddonAction.SCHEDULE_REMOVAL,
14
- organization_billing_enum_1.BillingAddonStatus.PENDING_REMOVAL,
15
- ],
16
- [
17
- organization_billing_enum_1.BillingAddonStatus.SUSPENDED_BY_PLAN,
18
- organization_billing_enum_1.BillingAddonAction.RESUME_AS_UNCOVERED,
19
- organization_billing_enum_1.BillingAddonStatus.ACTIVE,
20
- ],
21
- [
22
- organization_billing_enum_1.BillingAddonStatus.PENDING_REMOVAL,
23
- organization_billing_enum_1.BillingAddonAction.CANCEL_REMOVAL,
24
- organization_billing_enum_1.BillingAddonStatus.ACTIVE,
25
- ],
26
- ];
27
- const estLegale = (from, action) => PAIRES_LEGALES.some(([f, a]) => f === from && a === action);
28
- describe('BillingAddonStatus — les transitions autorisées', () => {
29
- it.each(PAIRES_LEGALES)('%s + %s → %s', (from, action, attendu) => {
30
- expect((0, organization_billing_enum_1.nextAddonStatus)(from, action)).toBe(attendu);
31
- });
32
- it('les quatre moves légaux sont les SEULS que la table porte', () => {
33
- const depuisLaTable = Object.entries(organization_billing_enum_1.VALID_ADDON_TRANSITIONS).flatMap(([from, moves]) => Object.entries(moves).map(([action, to]) => `${from}+${action}=${to}`));
34
- const tenusALaMain = PAIRES_LEGALES.map(([f, a, t]) => `${f}+${a}=${t}`);
35
- expect(depuisLaTable.sort()).toStrictEqual(tenusALaMain.sort());
36
- });
37
- });
38
- describe('BillingAddonStatus — les transitions refusées', () => {
39
- const interdites = TOUTES_LES_PAIRES.filter(([from, action]) => !estLegale(from, action));
40
- it('il y en a huit sur douze — la table refuse plus qu’elle n’autorise', () => {
41
- expect(TOUTES_LES_PAIRES).toHaveLength(12);
42
- expect(interdites).toHaveLength(8);
43
- });
44
- it.each(interdites)('%s + %s est refusé', (from, action) => {
45
- expect((0, organization_billing_enum_1.nextAddonStatus)(from, action)).toBeNull();
46
- });
47
- it('SUSPENDED_BY_PLAN ne peut PAS passer en retrait programmé', () => {
48
- expect((0, organization_billing_enum_1.nextAddonStatus)(organization_billing_enum_1.BillingAddonStatus.SUSPENDED_BY_PLAN, organization_billing_enum_1.BillingAddonAction.SCHEDULE_REMOVAL)).toBeNull();
49
- });
50
- it('PENDING_REMOVAL ne peut PAS être suspendu — le refus le plus facile à croire inoffensif', () => {
51
- expect((0, organization_billing_enum_1.nextAddonStatus)(organization_billing_enum_1.BillingAddonStatus.PENDING_REMOVAL, organization_billing_enum_1.BillingAddonAction.SUSPEND_AS_INCLUDED)).toBeNull();
52
- });
53
- it('aucun état ne boucle sur lui-même', () => {
54
- for (const [from, moves] of Object.entries(organization_billing_enum_1.VALID_ADDON_TRANSITIONS)) {
55
- for (const to of Object.values(moves)) {
56
- expect(to).not.toBe(from);
57
- }
58
- }
59
- });
60
- });
61
- describe('BillingAccountStatus — une seule valeur, et c’est voulu', () => {
62
- it('ne porte plus que ACTIVE', () => {
63
- expect(Object.values(organization_billing_enum_1.BillingAccountStatus)).toStrictEqual(['ACTIVE']);
64
- });
65
- });
66
- //# sourceMappingURL=billing-addon-status.enum.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"billing-addon-status.enum.spec.js","sourceRoot":"","sources":["../../../../src/types/enum/tests/billing-addon-status.enum.spec.ts"],"names":[],"mappings":"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"}
@@ -1,18 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const report_notification_type_enum_1 = require("../report-notification-type.enum");
4
- const report_notification_audience_mode_enum_1 = require("../report-notification-audience-mode.enum");
5
- describe('ReportNotificationType', () => {
6
- it('has the expected values', () => {
7
- expect(report_notification_type_enum_1.ReportNotificationType.DAILY_DIGEST).toBe('daily_digest');
8
- expect(report_notification_type_enum_1.ReportNotificationType.MONTHLY_DIGEST).toBe('monthly_digest');
9
- expect(report_notification_type_enum_1.ReportNotificationType.RETROSPECTIVE).toBe('retrospective');
10
- });
11
- });
12
- describe('ReportAudienceMode', () => {
13
- it('has the expected values', () => {
14
- expect(report_notification_audience_mode_enum_1.ReportAudienceMode.ALL_WITH_ACCESS).toBe('all_with_access');
15
- expect(report_notification_audience_mode_enum_1.ReportAudienceMode.MEMBER_LIST).toBe('member_list');
16
- });
17
- });
18
- //# sourceMappingURL=report-notification-type.enum.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"report-notification-type.enum.spec.js","sourceRoot":"","sources":["../../../../src/types/enum/tests/report-notification-type.enum.spec.ts"],"names":[],"mappings":";;AAAA,oFAA0E;AAC1E,sGAA+E;AAE/E,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACjC,MAAM,CAAC,sDAAsB,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACjE,MAAM,CAAC,sDAAsB,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACrE,MAAM,CAAC,sDAAsB,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACjC,MAAM,CAAC,2DAAkB,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACnE,MAAM,CAAC,2DAAkB,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const user_notification_content_type_enum_1 = require("../user-notification-content-type.enum");
4
- const user_notification_category_enum_1 = require("../user-notification-category.enum");
5
- describe('BEAM_EXPIRING notification content type', () => {
6
- it('exists with the beam-expiring value', () => {
7
- expect(user_notification_content_type_enum_1.UserNotificationContentType.BEAM_EXPIRING).toBe('beam-expiring');
8
- });
9
- it('is classified OPERATIONAL (mirrors BEAM_DOWNLOADED)', () => {
10
- expect(user_notification_category_enum_1.USER_NOTIFICATION_CONTENT_TYPE_CATEGORY[user_notification_content_type_enum_1.UserNotificationContentType.BEAM_EXPIRING]).toBe(user_notification_category_enum_1.UserNotificationCategory.OPERATIONAL);
11
- });
12
- });
13
- //# sourceMappingURL=user-notification-content-type.enum.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"user-notification-content-type.enum.spec.js","sourceRoot":"","sources":["../../../../src/types/enum/tests/user-notification-content-type.enum.spec.ts"],"names":[],"mappings":";;AAAA,gGAAqF;AACrF,wFAG4C;AAE5C,QAAQ,CAAC,yCAAyC,EAAE,GAAG,EAAE;IACvD,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,CAAC,iEAA2B,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,CAAC,yEAAuC,CAAC,iEAA2B,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAC7F,0DAAwB,CAAC,WAAW,CACrC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,91 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const billing_deep_link_utils_1 = require("../billing-deep-link.utils");
4
- const BASE = 'https://app.abyss.dev';
5
- describe('le lien profond de facturation', () => {
6
- it('porte la métrique, l’action et le retour', () => {
7
- const url = new URL((0, billing_deep_link_utils_1.buildBillingDeepLink)({
8
- billingBaseUrl: BASE,
9
- service: 'ABYSS_STORAGE',
10
- metric: 'ACCOUNT_STORAGE_GB',
11
- action: billing_deep_link_utils_1.BillingDeepLinkAction.EXTENSION,
12
- returnUrl: 'https://storage.abyss.dev/files',
13
- }));
14
- expect(url.pathname).toStrictEqual('/dashboard/account/billing/consumption');
15
- expect(url.searchParams.get('metric')).toStrictEqual('ACCOUNT_STORAGE_GB');
16
- expect(url.searchParams.get('action')).toStrictEqual('extension');
17
- expect(url.searchParams.get('return')).toStrictEqual('https://storage.abyss.dev/files');
18
- });
19
- it('ENCODE une URL de retour qui porte ses propres paramètres', () => {
20
- const retour = 'https://storage.abyss.dev/files?folder=42&sort=name';
21
- const url = new URL((0, billing_deep_link_utils_1.buildBillingDeepLink)({
22
- billingBaseUrl: BASE,
23
- service: 'ABYSS_STORAGE',
24
- metric: 'FILES_COUNT',
25
- action: billing_deep_link_utils_1.BillingDeepLinkAction.CEILING,
26
- returnUrl: retour,
27
- }));
28
- expect(url.searchParams.get('return')).toStrictEqual(retour);
29
- expect(url.searchParams.get('folder')).toBeNull();
30
- expect(url.searchParams.get('sort')).toBeNull();
31
- expect(url.searchParams.get('action')).toStrictEqual('ceiling');
32
- });
33
- it('omet `return` quand il n’y a nulle part où revenir', () => {
34
- const url = new URL((0, billing_deep_link_utils_1.buildBillingDeepLink)({
35
- billingBaseUrl: BASE,
36
- service: 'ABYSS_STORAGE',
37
- metric: 'MEMBERS_COUNT',
38
- action: billing_deep_link_utils_1.BillingDeepLinkAction.THRESHOLD,
39
- }));
40
- expect(url.searchParams.has('return')).toBe(false);
41
- });
42
- it('NORMALISE la barre finale, quel que soit le satellite qui appelle', () => {
43
- const avec = (0, billing_deep_link_utils_1.buildBillingDeepLink)({
44
- billingBaseUrl: 'https://app.abyss.dev/',
45
- service: 'ABYSS_STORAGE',
46
- metric: 'M',
47
- action: billing_deep_link_utils_1.BillingDeepLinkAction.OVERAGE,
48
- });
49
- const sans = (0, billing_deep_link_utils_1.buildBillingDeepLink)({
50
- billingBaseUrl: 'https://app.abyss.dev',
51
- service: 'ABYSS_STORAGE',
52
- metric: 'M',
53
- action: billing_deep_link_utils_1.BillingDeepLinkAction.OVERAGE,
54
- });
55
- expect(avec).toStrictEqual(sans);
56
- expect(avec).not.toContain('//dashboard');
57
- });
58
- it('CHAQUE action du contrat produit un lien', () => {
59
- for (const action of Object.values(billing_deep_link_utils_1.BillingDeepLinkAction)) {
60
- const url = new URL((0, billing_deep_link_utils_1.buildBillingDeepLink)({
61
- billingBaseUrl: BASE,
62
- service: 'ABYSS_STORAGE',
63
- metric: 'M',
64
- action,
65
- }));
66
- expect(url.searchParams.get('action')).toStrictEqual(action);
67
- }
68
- });
69
- it('ROUTE VERS L’ORGANISATION quand le quota est celui d’une organisation', () => {
70
- const url = new URL((0, billing_deep_link_utils_1.buildBillingDeepLink)({
71
- billingBaseUrl: BASE,
72
- service: 'ABYSS_STORAGE',
73
- metric: 'MEMBERS_COUNT',
74
- action: billing_deep_link_utils_1.BillingDeepLinkAction.EXTENSION,
75
- organizationId: 'org-42',
76
- }));
77
- expect(url.pathname).toStrictEqual('/org/org-42/billing/consumption');
78
- expect(url.searchParams.get('metric')).toStrictEqual('MEMBERS_COUNT');
79
- });
80
- it('ENCODE l’identifiant d’organisation dans le chemin', () => {
81
- const url = new URL((0, billing_deep_link_utils_1.buildBillingDeepLink)({
82
- billingBaseUrl: BASE,
83
- service: 'ABYSS_STORAGE',
84
- metric: 'M',
85
- action: billing_deep_link_utils_1.BillingDeepLinkAction.CEILING,
86
- organizationId: 'a/b',
87
- }));
88
- expect(url.pathname).toStrictEqual('/org/a%2Fb/billing/consumption');
89
- });
90
- });
91
- //# sourceMappingURL=billing-deep-link.utils.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"billing-deep-link.utils.spec.js","sourceRoot":"","sources":["../../../src/utils/tests/billing-deep-link.utils.spec.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,81 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const billing_utils_1 = require("../billing.utils");
4
- describe('parseQuotaUnit', () => {
5
- it('splits a "Nk" block unit into multiplier + base unit', () => {
6
- expect((0, billing_utils_1.parseQuotaUnit)('1k encryptions')).toEqual({
7
- multiplier: 1_000,
8
- baseUnit: 'encryptions',
9
- });
10
- expect((0, billing_utils_1.parseQuotaUnit)('10k clicks')).toEqual({
11
- multiplier: 10_000,
12
- baseUnit: 'clicks',
13
- });
14
- });
15
- it('parses space-grouped thousands (localized units)', () => {
16
- expect((0, billing_utils_1.parseQuotaUnit)('1 000 chiffrements')).toEqual({
17
- multiplier: 1_000,
18
- baseUnit: 'chiffrements',
19
- });
20
- expect((0, billing_utils_1.parseQuotaUnit)('10 000 clics')).toEqual({
21
- multiplier: 10_000,
22
- baseUnit: 'clics',
23
- });
24
- });
25
- it('parses a "million" prefix, with or without a leading factor', () => {
26
- expect((0, billing_utils_1.parseQuotaUnit)('million events')).toEqual({
27
- multiplier: 1_000_000,
28
- baseUnit: 'events',
29
- });
30
- expect((0, billing_utils_1.parseQuotaUnit)('2 million events')).toEqual({
31
- multiplier: 2_000_000,
32
- baseUnit: 'events',
33
- });
34
- });
35
- it('leaves a plain unit untouched (multiplier 1)', () => {
36
- expect((0, billing_utils_1.parseQuotaUnit)('GB')).toEqual({ multiplier: 1, baseUnit: 'GB' });
37
- expect((0, billing_utils_1.parseQuotaUnit)('submissions/day')).toEqual({
38
- multiplier: 1,
39
- baseUnit: 'submissions/day',
40
- });
41
- expect((0, billing_utils_1.parseQuotaUnit)('MB')).toEqual({ multiplier: 1, baseUnit: 'MB' });
42
- expect((0, billing_utils_1.parseQuotaUnit)('OCR pages')).toEqual({
43
- multiplier: 1,
44
- baseUnit: 'OCR pages',
45
- });
46
- });
47
- it('handles empty / nullish units', () => {
48
- expect((0, billing_utils_1.parseQuotaUnit)('')).toEqual({ multiplier: 1, baseUnit: '' });
49
- expect((0, billing_utils_1.parseQuotaUnit)(null)).toEqual({ multiplier: 1, baseUnit: '' });
50
- expect((0, billing_utils_1.parseQuotaUnit)(undefined)).toEqual({ multiplier: 1, baseUnit: '' });
51
- });
52
- });
53
- describe('resolveQuotaAmount', () => {
54
- it('scales a raw limit by the unit multiplier', () => {
55
- expect((0, billing_utils_1.resolveQuotaAmount)(100, '1k encryptions')).toEqual({
56
- amount: 100_000,
57
- baseUnit: 'encryptions',
58
- unlimited: false,
59
- });
60
- expect((0, billing_utils_1.resolveQuotaAmount)(5, '10k clicks')).toEqual({
61
- amount: 50_000,
62
- baseUnit: 'clicks',
63
- unlimited: false,
64
- });
65
- });
66
- it('passes plain-unit limits through unchanged', () => {
67
- expect((0, billing_utils_1.resolveQuotaAmount)(50, 'GB')).toEqual({
68
- amount: 50,
69
- baseUnit: 'GB',
70
- unlimited: false,
71
- });
72
- });
73
- it('preserves the -1 unlimited sentinel', () => {
74
- expect((0, billing_utils_1.resolveQuotaAmount)(-1, '1k encryptions')).toEqual({
75
- amount: -1,
76
- baseUnit: 'encryptions',
77
- unlimited: true,
78
- });
79
- });
80
- });
81
- //# sourceMappingURL=billing.utils.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"billing.utils.spec.js","sourceRoot":"","sources":["../../../src/utils/tests/billing.utils.spec.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,97 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const index_1 = require("../../index");
4
- const facture = (params) => {
5
- const depassement = params.depassement ?? 0;
6
- const credits = params.credits ?? 0;
7
- const portefeuille = params.portefeuille ?? 0;
8
- const subtotalStripe = params.planBrut + depassement - credits - portefeuille;
9
- return {
10
- billingAccountId: 'acc',
11
- invoiceNumber: 'INV-1',
12
- status: index_1.InvoiceStatus.PAID,
13
- type: params.type ?? index_1.InvoiceType.MONTHLY_BILLING,
14
- periodStart: new Date('2026-05-01'),
15
- periodEnd: new Date('2026-05-31'),
16
- subtotalEur: subtotalStripe - depassement,
17
- overageTotalEur: depassement,
18
- totalEur: subtotalStripe,
19
- stripeInvoiceId: null,
20
- stripeInvoiceUrl: null,
21
- stripePaymentIntentId: null,
22
- dueDate: null,
23
- paidAt: new Date('2026-06-01'),
24
- metadata: {},
25
- creditTransactions: credits
26
- ? [
27
- {
28
- billingAccountId: 'acc',
29
- type: index_1.CreditTransactionType.OVERAGE_DEDUCTION,
30
- amount: -credits,
31
- balanceAfter: 0,
32
- description: 'credits',
33
- },
34
- ]
35
- : [],
36
- eurTransactions: portefeuille
37
- ? [
38
- {
39
- billingAccountId: 'acc',
40
- type: index_1.EurTransactionType.INVOICE_DEDUCTION,
41
- amount: -portefeuille,
42
- balanceAfter: 0,
43
- description: 'portefeuille',
44
- },
45
- ]
46
- : [],
47
- };
48
- };
49
- describe('computeInvoiceAmounts', () => {
50
- it('ne retranche jamais deux fois : un cycle regle en totalite au portefeuille sort a zero', () => {
51
- const amounts = (0, index_1.computeInvoiceAmounts)(facture({ planBrut: 2900, portefeuille: 2900 }));
52
- expect(amounts.netTotalEur).toBe(0);
53
- expect(amounts.grossEur).toBe(2900);
54
- expect(amounts.eurWalletUsed).toBe(2900);
55
- });
56
- it('le tableau se raccorde au total : brut + depassements - credits - portefeuille === total', () => {
57
- const a = (0, index_1.computeInvoiceAmounts)(facture({ planBrut: 2000, depassement: 500, credits: 300, portefeuille: 200 }));
58
- expect(a.grossEur).toBe(2000);
59
- expect(a.overageEur).toBe(500);
60
- expect(a.creditUsed).toBe(300);
61
- expect(a.eurWalletUsed).toBe(200);
62
- expect(a.netTotalEur).toBe(2000);
63
- expect(a.grossEur + a.overageEur - a.creditUsed - a.eurWalletUsed).toBe(a.netTotalEur);
64
- });
65
- it('sans deduction, le brut est le total', () => {
66
- const a = (0, index_1.computeInvoiceAmounts)(facture({ planBrut: 1900 }));
67
- expect(a.grossEur).toBe(1900);
68
- expect(a.netTotalEur).toBe(1900);
69
- expect(a.creditUsed).toBe(0);
70
- expect(a.eurWalletUsed).toBe(0);
71
- });
72
- it('ne lit jamais un mouvement EUR positif comme une deduction', () => {
73
- const invoice = facture({ planBrut: 5000, type: index_1.InvoiceType.EUR_TOPUP });
74
- invoice.eurTransactions = [
75
- {
76
- billingAccountId: 'acc',
77
- type: index_1.EurTransactionType.STRIPE_PURCHASE,
78
- amount: 5000,
79
- balanceAfter: 5000,
80
- description: 'rechargement',
81
- },
82
- ];
83
- const a = (0, index_1.computeInvoiceAmounts)(invoice);
84
- expect(a.eurWalletUsed).toBe(0);
85
- expect(a.netTotalEur).toBe(5000);
86
- expect(a.grossEur).toBe(5000);
87
- });
88
- it('n echoue pas quand les associations ne sont pas chargees', () => {
89
- const invoice = facture({ planBrut: 1200 });
90
- delete invoice.creditTransactions;
91
- delete invoice.eurTransactions;
92
- const a = (0, index_1.computeInvoiceAmounts)(invoice);
93
- expect(a.grossEur).toBe(1200);
94
- expect(a.netTotalEur).toBe(1200);
95
- });
96
- });
97
- //# sourceMappingURL=invoice-amounts.utils.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"invoice-amounts.utils.spec.js","sourceRoot":"","sources":["../../../src/utils/tests/invoice-amounts.utils.spec.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};