@accounter/server 0.0.9-alpha-20251210155614-e6e65aaecafef9e8fedd0b933f613ffcf478cecf → 0.0.9-alpha-20251210171954-c9c0e7693ebe08d3643d9ee2c00c03606a53e334
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.
- package/CHANGELOG.md +43 -5
- package/dist/server/src/__tests__/factories/business.d.ts +2 -2
- package/dist/server/src/__tests__/factories/business.js +5 -4
- package/dist/server/src/__tests__/factories/business.js.map +1 -1
- package/dist/server/src/__tests__/factories/business.test.js +2 -2
- package/dist/server/src/__tests__/factories/business.test.js.map +1 -1
- package/dist/server/src/__tests__/factories/charge.d.ts +9 -9
- package/dist/server/src/__tests__/factories/charge.js +15 -15
- package/dist/server/src/__tests__/factories/charge.js.map +1 -1
- package/dist/server/src/__tests__/factories/charge.test.js +14 -14
- package/dist/server/src/__tests__/factories/charge.test.js.map +1 -1
- package/dist/server/src/__tests__/factories/document.d.ts +9 -9
- package/dist/server/src/__tests__/factories/document.js +11 -11
- package/dist/server/src/__tests__/factories/document.js.map +1 -1
- package/dist/server/src/__tests__/factories/document.test.js +38 -38
- package/dist/server/src/__tests__/factories/document.test.js.map +1 -1
- package/dist/server/src/__tests__/factories/financial-account.js +2 -2
- package/dist/server/src/__tests__/factories/financial-account.js.map +1 -1
- package/dist/server/src/__tests__/factories/financial-account.test.js +7 -7
- package/dist/server/src/__tests__/factories/financial-account.test.js.map +1 -1
- package/dist/server/src/__tests__/factories/index.d.ts +2 -2
- package/dist/server/src/__tests__/factories/index.js +2 -2
- package/dist/server/src/__tests__/factories/index.js.map +1 -1
- package/dist/server/src/__tests__/factories/index.test.js +12 -12
- package/dist/server/src/__tests__/factories/index.test.js.map +1 -1
- package/dist/server/src/__tests__/factories/tax-category.d.ts +3 -3
- package/dist/server/src/__tests__/factories/tax-category.js +6 -5
- package/dist/server/src/__tests__/factories/tax-category.js.map +1 -1
- package/dist/server/src/__tests__/factories/tax-category.test.js +4 -4
- package/dist/server/src/__tests__/factories/tax-category.test.js.map +1 -1
- package/dist/server/src/__tests__/factories/transaction.d.ts +7 -7
- package/dist/server/src/__tests__/factories/transaction.js +11 -11
- package/dist/server/src/__tests__/factories/transaction.js.map +1 -1
- package/dist/server/src/__tests__/factories/transaction.test.js +27 -27
- package/dist/server/src/__tests__/factories/transaction.test.js.map +1 -1
- package/dist/server/src/__tests__/fixtures/expenses/expense-scenario-a.js +20 -20
- package/dist/server/src/__tests__/fixtures/expenses/expense-scenario-a.js.map +1 -1
- package/dist/server/src/__tests__/fixtures/expenses/expense-scenario-b.js +20 -20
- package/dist/server/src/__tests__/fixtures/expenses/expense-scenario-b.js.map +1 -1
- package/dist/server/src/__tests__/fixtures/expenses/expense-scenario-b.test.js +8 -8
- package/dist/server/src/__tests__/fixtures/expenses/expense-scenario-b.test.js.map +1 -1
- package/dist/server/src/__tests__/helpers/db-setup.d.ts +0 -1
- package/dist/server/src/__tests__/helpers/db-setup.js +0 -2
- package/dist/server/src/__tests__/helpers/db-setup.js.map +1 -1
- package/dist/server/src/__tests__/helpers/fixture-loader.js +2 -2
- package/dist/server/src/__tests__/helpers/fixture-loader.js.map +1 -1
- package/dist/server/src/__tests__/helpers/fixture-loader.test.js +32 -29
- package/dist/server/src/__tests__/helpers/fixture-loader.test.js.map +1 -1
- package/dist/server/src/__tests__/helpers/fixture-validation.test.js +50 -50
- package/dist/server/src/__tests__/helpers/fixture-validation.test.js.map +1 -1
- package/dist/server/src/__tests__/helpers/seed-helpers.business.test.js +23 -31
- package/dist/server/src/__tests__/helpers/seed-helpers.business.test.js.map +1 -1
- package/dist/server/src/__tests__/helpers/seed-helpers.concurrent.test.js +8 -8
- package/dist/server/src/__tests__/helpers/seed-helpers.concurrent.test.js.map +1 -1
- package/dist/server/src/__tests__/helpers/seed-helpers.financial-entity.test.js +41 -50
- package/dist/server/src/__tests__/helpers/seed-helpers.financial-entity.test.js.map +1 -1
- package/dist/server/src/__tests__/helpers/seed-helpers.tax-category.test.js +23 -31
- package/dist/server/src/__tests__/helpers/seed-helpers.tax-category.test.js.map +1 -1
- package/dist/server/src/__tests__/helpers/test-db-config.js +1 -1
- package/dist/server/src/__tests__/helpers/test-db-config.js.map +1 -1
- package/dist/server/src/__tests__/seed-admin-context.integration.test.js +128 -131
- package/dist/server/src/__tests__/seed-admin-context.integration.test.js.map +1 -1
- package/dist/server/src/demo-fixtures/__tests__/deterministic-uuid.test.js +58 -0
- package/dist/server/src/demo-fixtures/__tests__/deterministic-uuid.test.js.map +1 -0
- package/dist/server/src/demo-fixtures/helpers/deterministic-uuid.d.ts +50 -0
- package/dist/server/src/demo-fixtures/helpers/deterministic-uuid.js +66 -0
- package/dist/server/src/demo-fixtures/helpers/deterministic-uuid.js.map +1 -0
- package/dist/server/src/modules/admin-context/{heplers → helpers}/admin-context.helper.d.ts +1 -1
- package/dist/server/src/modules/admin-context/{heplers → helpers}/admin-context.helper.js +2 -2
- package/dist/server/src/modules/admin-context/{heplers → helpers}/admin-context.helper.js.map +1 -1
- package/dist/server/src/modules/admin-context/resolvers/admin-context.resolvers.js +1 -1
- package/dist/server/src/modules/business-trips/providers/business-trips.provider.d.ts +1 -1
- package/dist/server/src/modules/business-trips/providers/business-trips.provider.js +1 -1
- package/dist/server/src/modules/business-trips/providers/business-trips.provider.js.map +1 -1
- package/dist/server/src/modules/charges/helpers/common.helper.js +3 -3
- package/dist/server/src/modules/charges/helpers/common.helper.js.map +1 -1
- package/dist/server/src/modules/charges/helpers/{merge-charges.hepler.js → merge-charges.helper.js} +6 -6
- package/dist/server/src/modules/charges/helpers/{merge-charges.hepler.js.map → merge-charges.helper.js.map} +1 -1
- package/dist/server/src/modules/charges/resolvers/charges.resolver.js +1 -1
- package/dist/server/src/modules/charges-matcher/__tests__/auto-match-integration.test.js +2 -2
- package/dist/server/src/modules/charges-matcher/__tests__/auto-match-integration.test.js.map +1 -1
- package/dist/server/src/modules/charges-matcher/providers/charges-matcher.provider.js +1 -1
- package/dist/server/src/modules/charges-matcher/providers/charges-matcher.provider.js.map +1 -1
- package/dist/server/src/modules/corn-jobs/resolvers/corn-jobs.resolver.js +1 -1
- package/dist/server/src/modules/corn-jobs/resolvers/corn-jobs.resolver.js.map +1 -1
- package/dist/server/src/modules/ledger/__tests__/helpers/ledger-assertions.d.ts +0 -2
- package/dist/server/src/modules/ledger/__tests__/helpers/ledger-assertions.js +0 -4
- package/dist/server/src/modules/ledger/__tests__/helpers/ledger-assertions.js.map +1 -1
- package/dist/server/src/modules/ledger/__tests__/ledger-scenario-a.integration.test.js +20 -20
- package/dist/server/src/modules/ledger/__tests__/ledger-scenario-a.integration.test.js.map +1 -1
- package/dist/server/src/modules/ledger/__tests__/ledger-scenario-b.integration.test.js +21 -21
- package/dist/server/src/modules/ledger/__tests__/ledger-scenario-b.integration.test.js.map +1 -1
- package/dist/server/src/modules/transactions/helpers/common.helper.js +11 -6
- package/dist/server/src/modules/transactions/helpers/common.helper.js.map +1 -1
- package/package.json +1 -1
- package/src/__tests__/factories/business.test.ts +3 -3
- package/src/__tests__/factories/business.ts +5 -4
- package/src/__tests__/factories/charge.test.ts +14 -14
- package/src/__tests__/factories/charge.ts +16 -16
- package/src/__tests__/factories/document.test.ts +38 -38
- package/src/__tests__/factories/document.ts +11 -11
- package/src/__tests__/factories/financial-account.test.ts +7 -7
- package/src/__tests__/factories/financial-account.ts +3 -3
- package/src/__tests__/factories/index.test.ts +12 -12
- package/src/__tests__/factories/index.ts +2 -2
- package/src/__tests__/factories/tax-category.test.ts +4 -4
- package/src/__tests__/factories/tax-category.ts +7 -6
- package/src/__tests__/factories/transaction.test.ts +27 -27
- package/src/__tests__/factories/transaction.ts +11 -11
- package/src/__tests__/fixtures/expenses/expense-scenario-a.ts +20 -20
- package/src/__tests__/fixtures/expenses/expense-scenario-b.test.ts +8 -8
- package/src/__tests__/fixtures/expenses/expense-scenario-b.ts +20 -20
- package/src/__tests__/helpers/db-setup.ts +0 -3
- package/src/__tests__/helpers/fixture-loader.test.ts +31 -29
- package/src/__tests__/helpers/fixture-loader.ts +2 -2
- package/src/__tests__/helpers/fixture-validation.test.ts +50 -50
- package/src/__tests__/helpers/seed-helpers.business.test.ts +145 -147
- package/src/__tests__/helpers/seed-helpers.concurrent.test.ts +10 -10
- package/src/__tests__/helpers/seed-helpers.financial-entity.test.ts +218 -231
- package/src/__tests__/helpers/seed-helpers.tax-category.test.ts +162 -164
- package/src/__tests__/helpers/test-db-config.ts +1 -1
- package/src/__tests__/seed-admin-context.integration.test.ts +199 -208
- package/src/demo-fixtures/__tests__/deterministic-uuid.test.ts +75 -0
- package/src/demo-fixtures/helpers/deterministic-uuid.ts +68 -0
- package/src/modules/admin-context/{heplers → helpers}/admin-context.helper.ts +3 -3
- package/src/modules/admin-context/resolvers/admin-context.resolvers.ts +1 -1
- package/src/modules/business-trips/providers/business-trips.provider.ts +1 -1
- package/src/modules/charges/helpers/common.helper.ts +3 -3
- package/src/modules/charges/helpers/{merge-charges.hepler.ts → merge-charges.helper.ts} +5 -5
- package/src/modules/charges/resolvers/charges.resolver.ts +1 -1
- package/src/modules/charges-matcher/__tests__/auto-match-integration.test.ts +2 -2
- package/src/modules/charges-matcher/providers/charges-matcher.provider.ts +1 -1
- package/src/modules/corn-jobs/resolvers/corn-jobs.resolver.ts +1 -1
- package/src/modules/ledger/__tests__/helpers/ledger-assertions.ts +0 -5
- package/src/modules/ledger/__tests__/ledger-scenario-a.integration.test.ts +20 -20
- package/src/modules/ledger/__tests__/ledger-scenario-b.integration.test.ts +21 -21
- package/src/modules/transactions/helpers/common.helper.ts +12 -6
- package/dist/server/src/__tests__/factories/ids.d.ts +0 -22
- package/dist/server/src/__tests__/factories/ids.js +0 -46
- package/dist/server/src/__tests__/factories/ids.js.map +0 -1
- package/dist/server/src/__tests__/factories/ids.test.js +0 -71
- package/dist/server/src/__tests__/factories/ids.test.js.map +0 -1
- package/src/__tests__/factories/ids.test.ts +0 -80
- package/src/__tests__/factories/ids.ts +0 -49
- /package/dist/server/src/{__tests__/factories/ids.test.d.ts → demo-fixtures/__tests__/deterministic-uuid.test.d.ts} +0 -0
- /package/dist/server/src/modules/charges/helpers/{merge-charges.hepler.d.ts → merge-charges.helper.d.ts} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @accounter/server
|
|
2
2
|
|
|
3
|
-
## 0.0.9-alpha-
|
|
3
|
+
## 0.0.9-alpha-20251210171954-c9c0e7693ebe08d3643d9ee2c00c03606a53e334
|
|
4
4
|
|
|
5
5
|
### Patch Changes
|
|
6
6
|
|
|
@@ -122,6 +122,22 @@
|
|
|
122
122
|
utilize the `businessId` when constructing links to business detail pages, resolving the issue
|
|
123
123
|
of incorrect navigation.
|
|
124
124
|
|
|
125
|
+
- [#2802](https://github.com/Urigo/accounter-fullstack/pull/2802)
|
|
126
|
+
[`b385a79`](https://github.com/Urigo/accounter-fullstack/commit/b385a79f96fe9435b30511bea0af76407e375da6)
|
|
127
|
+
Thanks [@gilgardosh](https://github.com/gilgardosh)! - - **Centralized Test Database Management**:
|
|
128
|
+
Integration tests now leverage a `TestDatabase` utility class, centralizing database connection,
|
|
129
|
+
pooling, and transaction management for improved consistency and isolation.
|
|
130
|
+
- **Transactional Test Isolation**: Individual test cases are now wrapped in `db.withTransaction`
|
|
131
|
+
blocks, ensuring that each test runs within its own transaction and automatically rolls back
|
|
132
|
+
changes, preventing data leakage between tests.
|
|
133
|
+
- **Simplified Test Setup/Teardown**: The `beforeAll`, `afterAll`, `beforeEach`, and `afterEach`
|
|
134
|
+
hooks in several test files have been streamlined, removing manual `pg.Pool` and `pg.PoolClient`
|
|
135
|
+
management in favor of the `TestDatabase` class's methods.
|
|
136
|
+
- **Removed Obsolete Function**: The `resetSetupFlags` function, previously a no-op, has been
|
|
137
|
+
removed from `db-setup.ts`.
|
|
138
|
+
- **Import Path Correction**: A minor import path correction for `DBProvider` was made in
|
|
139
|
+
`business-trips.provider.ts`.
|
|
140
|
+
|
|
125
141
|
- [#2750](https://github.com/Urigo/accounter-fullstack/pull/2750)
|
|
126
142
|
[`98b8b85`](https://github.com/Urigo/accounter-fullstack/commit/98b8b859ad566372ec3cd65bc57bcc0d6fcdd6fb)
|
|
127
143
|
Thanks [@gilgardosh](https://github.com/gilgardosh)! - - **Database Schema Update**: A new `users`
|
|
@@ -202,6 +218,28 @@
|
|
|
202
218
|
dependencies, which can simplify module resolution and enhance code readability and
|
|
203
219
|
maintainability.
|
|
204
220
|
|
|
221
|
+
- [#2800](https://github.com/Urigo/accounter-fullstack/pull/2800)
|
|
222
|
+
[`d08379c`](https://github.com/Urigo/accounter-fullstack/commit/d08379c1762d9af8ed085b25f84af34f423e3f69)
|
|
223
|
+
Thanks [@gilgardosh](https://github.com/gilgardosh)! - - **Centralized UUID Generation**: The
|
|
224
|
+
deterministic UUID generation logic has been centralized into a new file,
|
|
225
|
+
`packages/server/src/demo-fixtures/helpers/deterministic-uuid.ts`, replacing the previous
|
|
226
|
+
`packages/server/src/__tests__/factories/ids.ts`.
|
|
227
|
+
- **UUID v5 Implementation**: The new `makeUUID` function now generates UUID v5, which is
|
|
228
|
+
specifically designed for deterministic UUIDs based on a namespace and a name. This ensures
|
|
229
|
+
stable and reproducible IDs across environments.
|
|
230
|
+
- **Structured ID Generation**: The `makeUUID` function now requires two arguments: a `namespace`
|
|
231
|
+
(e.g., 'business', 'charge') and a `name` (a semantic identifier). This provides better
|
|
232
|
+
organization and prevents ID collisions between different entity types.
|
|
233
|
+
- **Backward Compatibility**: A `makeUUIDLegacy` function has been introduced to maintain
|
|
234
|
+
compatibility with older calls that used a single seed or generated random UUIDs when no seed
|
|
235
|
+
was provided.
|
|
236
|
+
- **Codebase Migration**: All existing calls to `makeUUID` across various factory files, test
|
|
237
|
+
files, and fixture definitions have been updated to use the new centralized `makeUUID` or
|
|
238
|
+
`makeUUIDLegacy` functions with appropriate namespaces.
|
|
239
|
+
- **Improved Test Fixture Stability**: This change enhances the stability and reproducibility of
|
|
240
|
+
test fixtures and demo data, making it easier to reference specific entities in documentation
|
|
241
|
+
and external links without fear of IDs changing.
|
|
242
|
+
|
|
205
243
|
- [#2754](https://github.com/Urigo/accounter-fullstack/pull/2754)
|
|
206
244
|
[`92d8cb1`](https://github.com/Urigo/accounter-fullstack/commit/92d8cb161398c2681d22fc1d390143f1cdc2e8eb)
|
|
207
245
|
Thanks [@gilgardosh](https://github.com/gilgardosh)! - - **Database Cleanup**: A new migration has
|
|
@@ -249,10 +287,10 @@
|
|
|
249
287
|
[`ef68321`](https://github.com/Urigo/accounter-fullstack/commit/ef68321608d60a7208e82a2c413f27beb502e3cc),
|
|
250
288
|
[`ef68321`](https://github.com/Urigo/accounter-fullstack/commit/ef68321608d60a7208e82a2c413f27beb502e3cc),
|
|
251
289
|
[`c7d6f21`](https://github.com/Urigo/accounter-fullstack/commit/c7d6f21ed62658159b1323334501daca03c8d3e5)]:
|
|
252
|
-
- @accounter/green-invoice-graphql@0.8.3-alpha-
|
|
253
|
-
- @accounter/pcn874-generator@0.6.4-alpha-
|
|
254
|
-
- @accounter/shaam-uniform-format-generator@0.2.3-alpha-
|
|
255
|
-
- @accounter/shaam6111-generator@0.1.5-alpha-
|
|
290
|
+
- @accounter/green-invoice-graphql@0.8.3-alpha-20251210171954-c9c0e7693ebe08d3643d9ee2c00c03606a53e334
|
|
291
|
+
- @accounter/pcn874-generator@0.6.4-alpha-20251210171954-c9c0e7693ebe08d3643d9ee2c00c03606a53e334
|
|
292
|
+
- @accounter/shaam-uniform-format-generator@0.2.3-alpha-20251210171954-c9c0e7693ebe08d3643d9ee2c00c03606a53e334
|
|
293
|
+
- @accounter/shaam6111-generator@0.1.5-alpha-20251210171954-c9c0e7693ebe08d3643d9ee2c00c03606a53e334
|
|
256
294
|
|
|
257
295
|
## 0.0.8
|
|
258
296
|
|
|
@@ -17,11 +17,11 @@ import type { IInsertBusinessesParams } from '../../modules/financial-entities/_
|
|
|
17
17
|
* @example
|
|
18
18
|
* ```typescript
|
|
19
19
|
* // Minimal business (uses defaults)
|
|
20
|
-
* const business = createBusiness({ id: makeUUID('supplier-1') });
|
|
20
|
+
* const business = createBusiness({ id: makeUUID('business', 'supplier-1') });
|
|
21
21
|
*
|
|
22
22
|
* // Business with custom fields
|
|
23
23
|
* const supplier = createBusiness({
|
|
24
|
-
* id: makeUUID('supplier-usd'),
|
|
24
|
+
* id: makeUUID('business', 'supplier-usd'),
|
|
25
25
|
* hebrewName: 'ספק אמריקאי',
|
|
26
26
|
* country: 'USA',
|
|
27
27
|
* isReceiptEnough: true,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { makeUUIDLegacy } from '../../demo-fixtures/helpers/deterministic-uuid.js';
|
|
2
2
|
import { CountryCode } from '../../modules/countries/types.js';
|
|
3
3
|
/**
|
|
4
4
|
* Business factory for test fixtures
|
|
@@ -18,11 +18,11 @@ import { CountryCode } from '../../modules/countries/types.js';
|
|
|
18
18
|
* @example
|
|
19
19
|
* ```typescript
|
|
20
20
|
* // Minimal business (uses defaults)
|
|
21
|
-
* const business = createBusiness({ id: makeUUID('supplier-1') });
|
|
21
|
+
* const business = createBusiness({ id: makeUUID('business', 'supplier-1') });
|
|
22
22
|
*
|
|
23
23
|
* // Business with custom fields
|
|
24
24
|
* const supplier = createBusiness({
|
|
25
|
-
* id: makeUUID('supplier-usd'),
|
|
25
|
+
* id: makeUUID('business', 'supplier-usd'),
|
|
26
26
|
* hebrewName: 'ספק אמריקאי',
|
|
27
27
|
* country: 'USA',
|
|
28
28
|
* isReceiptEnough: true,
|
|
@@ -30,8 +30,9 @@ import { CountryCode } from '../../modules/countries/types.js';
|
|
|
30
30
|
* ```
|
|
31
31
|
*/
|
|
32
32
|
export function createBusiness(overrides) {
|
|
33
|
+
const defaultId = makeUUIDLegacy();
|
|
33
34
|
return {
|
|
34
|
-
id:
|
|
35
|
+
id: defaultId,
|
|
35
36
|
hebrewName: null,
|
|
36
37
|
address: null,
|
|
37
38
|
email: null,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"business.js","sourceRoot":"","sources":["../../../../../src/__tests__/factories/business.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"business.js","sourceRoot":"","sources":["../../../../../src/__tests__/factories/business.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,mDAAmD,CAAC;AACnF,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAE/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,UAAU,cAAc,CAC5B,SAAkE;IAElE,MAAM,SAAS,GAAG,cAAc,EAAE,CAAC;IACnC,OAAO;QACL,EAAE,EAAE,SAAS;QACb,UAAU,EAAE,IAAI;QAChB,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,IAAI;QACX,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,IAAI;QACjB,YAAY,EAAE,IAAI;QAClB,YAAY,EAAE,KAAK;QACnB,WAAW,EAAE,IAAI;QACjB,WAAW,EAAE,KAAK,EAAE,6BAA6B;QACjD,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,gDAAgD;QAC7E,wBAAwB,EAAE,IAAI;QAC9B,eAAe,EAAE,KAAK;QACtB,mBAAmB,EAAE,KAAK;QAC1B,GAAG,SAAS;KACb,CAAC;AACJ,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { describe, expect, it } from 'vitest';
|
|
2
2
|
import { UUID_REGEX } from '../../shared/constants.js';
|
|
3
3
|
import { createBusiness } from './business.js';
|
|
4
|
-
import { makeUUID } from '
|
|
4
|
+
import { makeUUID } from '../../demo-fixtures/helpers/deterministic-uuid.js';
|
|
5
5
|
import { CountryCode } from '../../modules/countries/types.js';
|
|
6
6
|
describe('Factory: Business', () => {
|
|
7
7
|
describe('createBusiness', () => {
|
|
@@ -32,7 +32,7 @@ describe('Factory: Business', () => {
|
|
|
32
32
|
expect(business1.id).not.toBe(business2.id);
|
|
33
33
|
});
|
|
34
34
|
it('should apply overrides correctly', () => {
|
|
35
|
-
const customId = makeUUID('custom-business');
|
|
35
|
+
const customId = makeUUID('business', 'custom-business');
|
|
36
36
|
const business = createBusiness({
|
|
37
37
|
id: customId,
|
|
38
38
|
hebrewName: 'עסק ישראלי',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"business.test.js","sourceRoot":"","sources":["../../../../../src/__tests__/factories/business.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"business.test.js","sourceRoot":"","sources":["../../../../../src/__tests__/factories/business.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,24 +38,24 @@ export interface ChargeInsertParams {
|
|
|
38
38
|
* - tax_category_id defaults to deterministic UUID if not provided
|
|
39
39
|
* - user_description defaults to null (will be auto-generated by database if needed)
|
|
40
40
|
* - type defaults to null (database will determine based on related records)
|
|
41
|
-
* - accountant_status defaults to
|
|
42
|
-
* - optional_vat defaults to
|
|
43
|
-
* - documents_optional_flag defaults to
|
|
41
|
+
* - accountant_status defaults to 'PENDING' (database requires NOT NULL)
|
|
42
|
+
* - optional_vat defaults to false (database requires NOT NULL)
|
|
43
|
+
* - documents_optional_flag defaults to false (database requires NOT NULL)
|
|
44
44
|
* - id defaults to deterministic UUID if not provided
|
|
45
45
|
*
|
|
46
46
|
* @example
|
|
47
47
|
* ```typescript
|
|
48
48
|
* // Minimal charge with required fields
|
|
49
49
|
* const charge = createCharge({
|
|
50
|
-
* owner_id: makeUUID('test-owner'),
|
|
51
|
-
* tax_category_id: makeUUID('tax-cat-1'),
|
|
50
|
+
* owner_id: makeUUID('business', 'test-owner'),
|
|
51
|
+
* tax_category_id: makeUUID('tax-category', 'tax-cat-1'),
|
|
52
52
|
* });
|
|
53
53
|
*
|
|
54
54
|
* // Charge with user description
|
|
55
55
|
* const descCharge = createCharge(
|
|
56
56
|
* {
|
|
57
|
-
* owner_id: makeUUID('test-owner'),
|
|
58
|
-
* tax_category_id: makeUUID('tax-cat-1'),
|
|
57
|
+
* owner_id: makeUUID('business', 'test-owner'),
|
|
58
|
+
* tax_category_id: makeUUID('tax-category', 'tax-cat-1'),
|
|
59
59
|
* user_description: 'Office supplies purchase',
|
|
60
60
|
* }
|
|
61
61
|
* );
|
|
@@ -63,8 +63,8 @@ export interface ChargeInsertParams {
|
|
|
63
63
|
* // Charge with overrides
|
|
64
64
|
* const customCharge = createCharge(
|
|
65
65
|
* {
|
|
66
|
-
* owner_id: makeUUID('test-owner'),
|
|
67
|
-
* tax_category_id: makeUUID('tax-cat-1'),
|
|
66
|
+
* owner_id: makeUUID('business', 'test-owner'),
|
|
67
|
+
* tax_category_id: makeUUID('tax-category', 'tax-cat-1'),
|
|
68
68
|
* },
|
|
69
69
|
* {
|
|
70
70
|
* type: 'PAYROLL',
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* @see packages/server/src/modules/charges/providers/charges.provider.ts (generateCharge query)
|
|
11
11
|
* @see packages/migrations/src/actions/*-charges-*.ts (migrations)
|
|
12
12
|
*/
|
|
13
|
-
import { makeUUID } from '
|
|
13
|
+
import { makeUUID, makeUUIDLegacy } from '../../demo-fixtures/helpers/deterministic-uuid.js';
|
|
14
14
|
/**
|
|
15
15
|
* Create a charge for test fixtures
|
|
16
16
|
*
|
|
@@ -23,24 +23,24 @@ import { makeUUID } from './ids.js';
|
|
|
23
23
|
* - tax_category_id defaults to deterministic UUID if not provided
|
|
24
24
|
* - user_description defaults to null (will be auto-generated by database if needed)
|
|
25
25
|
* - type defaults to null (database will determine based on related records)
|
|
26
|
-
* - accountant_status defaults to
|
|
27
|
-
* - optional_vat defaults to
|
|
28
|
-
* - documents_optional_flag defaults to
|
|
26
|
+
* - accountant_status defaults to 'PENDING' (database requires NOT NULL)
|
|
27
|
+
* - optional_vat defaults to false (database requires NOT NULL)
|
|
28
|
+
* - documents_optional_flag defaults to false (database requires NOT NULL)
|
|
29
29
|
* - id defaults to deterministic UUID if not provided
|
|
30
30
|
*
|
|
31
31
|
* @example
|
|
32
32
|
* ```typescript
|
|
33
33
|
* // Minimal charge with required fields
|
|
34
34
|
* const charge = createCharge({
|
|
35
|
-
* owner_id: makeUUID('test-owner'),
|
|
36
|
-
* tax_category_id: makeUUID('tax-cat-1'),
|
|
35
|
+
* owner_id: makeUUID('business', 'test-owner'),
|
|
36
|
+
* tax_category_id: makeUUID('tax-category', 'tax-cat-1'),
|
|
37
37
|
* });
|
|
38
38
|
*
|
|
39
39
|
* // Charge with user description
|
|
40
40
|
* const descCharge = createCharge(
|
|
41
41
|
* {
|
|
42
|
-
* owner_id: makeUUID('test-owner'),
|
|
43
|
-
* tax_category_id: makeUUID('tax-cat-1'),
|
|
42
|
+
* owner_id: makeUUID('business', 'test-owner'),
|
|
43
|
+
* tax_category_id: makeUUID('tax-category', 'tax-cat-1'),
|
|
44
44
|
* user_description: 'Office supplies purchase',
|
|
45
45
|
* }
|
|
46
46
|
* );
|
|
@@ -48,8 +48,8 @@ import { makeUUID } from './ids.js';
|
|
|
48
48
|
* // Charge with overrides
|
|
49
49
|
* const customCharge = createCharge(
|
|
50
50
|
* {
|
|
51
|
-
* owner_id: makeUUID('test-owner'),
|
|
52
|
-
* tax_category_id: makeUUID('tax-cat-1'),
|
|
51
|
+
* owner_id: makeUUID('business', 'test-owner'),
|
|
52
|
+
* tax_category_id: makeUUID('tax-category', 'tax-cat-1'),
|
|
53
53
|
* },
|
|
54
54
|
* {
|
|
55
55
|
* type: 'PAYROLL',
|
|
@@ -61,14 +61,14 @@ import { makeUUID } from './ids.js';
|
|
|
61
61
|
*/
|
|
62
62
|
export function createCharge(params, overrides) {
|
|
63
63
|
return {
|
|
64
|
-
id:
|
|
64
|
+
id: makeUUIDLegacy(),
|
|
65
65
|
owner_id: params.owner_id,
|
|
66
66
|
type: null,
|
|
67
|
-
accountant_status: 'PENDING',
|
|
67
|
+
accountant_status: 'PENDING',
|
|
68
68
|
user_description: params.user_description ?? null,
|
|
69
|
-
tax_category_id: params.tax_category_id ?? makeUUID('default-tax-category'),
|
|
70
|
-
optional_vat: false,
|
|
71
|
-
documents_optional_flag: false,
|
|
69
|
+
tax_category_id: params.tax_category_id ?? makeUUID('tax-category', 'default-tax-category'),
|
|
70
|
+
optional_vat: false,
|
|
71
|
+
documents_optional_flag: false,
|
|
72
72
|
...overrides,
|
|
73
73
|
};
|
|
74
74
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"charge.js","sourceRoot":"","sources":["../../../../../src/__tests__/factories/charge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"charge.js","sourceRoot":"","sources":["../../../../../src/__tests__/factories/charge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,mDAAmD,CAAC;AAmB7F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,MAAM,UAAU,YAAY,CAC1B,MAIC,EACD,SAAuC;IAEvC,OAAO;QACL,EAAE,EAAE,cAAc,EAAE;QACpB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,IAAI,EAAE,IAAI;QACV,iBAAiB,EAAE,SAAS;QAC5B,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,IAAI,IAAI;QACjD,eAAe,EAAE,MAAM,CAAC,eAAe,IAAI,QAAQ,CAAC,cAAc,EAAE,sBAAsB,CAAC;QAC3F,YAAY,EAAE,KAAK;QACnB,uBAAuB,EAAE,KAAK;QAC9B,GAAG,SAAS;KACb,CAAC;AACJ,CAAC"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { describe, expect, it } from 'vitest';
|
|
2
2
|
import { UUID_REGEX } from '../../shared/constants.js';
|
|
3
3
|
import { createCharge } from './charge.js';
|
|
4
|
-
import { makeUUID } from '
|
|
4
|
+
import { makeUUID } from '../../demo-fixtures/helpers/deterministic-uuid.js';
|
|
5
5
|
describe('Factory: Charge', () => {
|
|
6
6
|
describe('createCharge', () => {
|
|
7
7
|
it('should create charge with required fields', () => {
|
|
8
|
-
const ownerId = makeUUID('test-owner');
|
|
8
|
+
const ownerId = makeUUID('business', 'test-owner');
|
|
9
9
|
const charge = createCharge({ owner_id: ownerId });
|
|
10
10
|
// Required field
|
|
11
11
|
expect(charge.owner_id).toBe(ownerId);
|
|
@@ -22,14 +22,14 @@ describe('Factory: Charge', () => {
|
|
|
22
22
|
expect(charge.documents_optional_flag).toBe(false); // NOT NULL constraint
|
|
23
23
|
});
|
|
24
24
|
it('should generate unique IDs by default', () => {
|
|
25
|
-
const ownerId = makeUUID('test-owner');
|
|
25
|
+
const ownerId = makeUUID('business', 'test-owner');
|
|
26
26
|
const charge1 = createCharge({ owner_id: ownerId });
|
|
27
27
|
const charge2 = createCharge({ owner_id: ownerId });
|
|
28
28
|
expect(charge1.id).not.toBe(charge2.id);
|
|
29
29
|
});
|
|
30
30
|
it('should accept tax_category_id in params', () => {
|
|
31
|
-
const ownerId = makeUUID('test-owner');
|
|
32
|
-
const taxCategoryId = makeUUID('tax-cat-1');
|
|
31
|
+
const ownerId = makeUUID('business', 'test-owner');
|
|
32
|
+
const taxCategoryId = makeUUID('tax-category', 'tax-cat-1');
|
|
33
33
|
const charge = createCharge({
|
|
34
34
|
owner_id: ownerId,
|
|
35
35
|
tax_category_id: taxCategoryId,
|
|
@@ -37,7 +37,7 @@ describe('Factory: Charge', () => {
|
|
|
37
37
|
expect(charge.tax_category_id).toBe(taxCategoryId);
|
|
38
38
|
});
|
|
39
39
|
it('should accept user_description in params', () => {
|
|
40
|
-
const ownerId = makeUUID('test-owner');
|
|
40
|
+
const ownerId = makeUUID('business', 'test-owner');
|
|
41
41
|
const charge = createCharge({
|
|
42
42
|
owner_id: ownerId,
|
|
43
43
|
user_description: 'Office supplies',
|
|
@@ -45,8 +45,8 @@ describe('Factory: Charge', () => {
|
|
|
45
45
|
expect(charge.user_description).toBe('Office supplies');
|
|
46
46
|
});
|
|
47
47
|
it('should apply overrides correctly', () => {
|
|
48
|
-
const ownerId = makeUUID('test-owner');
|
|
49
|
-
const customId = makeUUID('custom-charge');
|
|
48
|
+
const ownerId = makeUUID('business', 'test-owner');
|
|
49
|
+
const customId = makeUUID('charge', 'custom-charge');
|
|
50
50
|
const charge = createCharge({ owner_id: ownerId }, {
|
|
51
51
|
id: customId,
|
|
52
52
|
type: 'PAYROLL',
|
|
@@ -61,7 +61,7 @@ describe('Factory: Charge', () => {
|
|
|
61
61
|
expect(charge.documents_optional_flag).toBe(true);
|
|
62
62
|
});
|
|
63
63
|
it('should allow partial overrides', () => {
|
|
64
|
-
const ownerId = makeUUID('test-owner');
|
|
64
|
+
const ownerId = makeUUID('business', 'test-owner');
|
|
65
65
|
const charge = createCharge({
|
|
66
66
|
owner_id: ownerId,
|
|
67
67
|
user_description: 'Consulting fee',
|
|
@@ -74,7 +74,7 @@ describe('Factory: Charge', () => {
|
|
|
74
74
|
expect(charge.accountant_status).toBe('PENDING'); // Default value
|
|
75
75
|
});
|
|
76
76
|
it('should preserve all required fields', () => {
|
|
77
|
-
const ownerId = makeUUID('test-owner');
|
|
77
|
+
const ownerId = makeUUID('business', 'test-owner');
|
|
78
78
|
const charge = createCharge({ owner_id: ownerId });
|
|
79
79
|
// Verify structure matches expected interface
|
|
80
80
|
expect(charge).toHaveProperty('id');
|
|
@@ -87,9 +87,9 @@ describe('Factory: Charge', () => {
|
|
|
87
87
|
expect(charge).toHaveProperty('documents_optional_flag');
|
|
88
88
|
});
|
|
89
89
|
it('should handle all params and overrides together', () => {
|
|
90
|
-
const ownerId = makeUUID('test-owner');
|
|
91
|
-
const taxCategoryId = makeUUID('tax-cat-2');
|
|
92
|
-
const customId = makeUUID('custom-charge-2');
|
|
90
|
+
const ownerId = makeUUID('business', 'test-owner');
|
|
91
|
+
const taxCategoryId = makeUUID('tax-category', 'tax-cat-2');
|
|
92
|
+
const customId = makeUUID('charge', 'custom-charge-2');
|
|
93
93
|
const charge = createCharge({
|
|
94
94
|
owner_id: ownerId,
|
|
95
95
|
tax_category_id: taxCategoryId,
|
|
@@ -111,7 +111,7 @@ describe('Factory: Charge', () => {
|
|
|
111
111
|
expect(charge.documents_optional_flag).toBe(false);
|
|
112
112
|
});
|
|
113
113
|
it('should allow explicit null overrides', () => {
|
|
114
|
-
const ownerId = makeUUID('test-owner');
|
|
114
|
+
const ownerId = makeUUID('business', 'test-owner');
|
|
115
115
|
const charge = createCharge({ owner_id: ownerId }, {
|
|
116
116
|
user_description: null,
|
|
117
117
|
optional_vat: null,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"charge.test.js","sourceRoot":"","sources":["../../../../../src/__tests__/factories/charge.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"charge.test.js","sourceRoot":"","sources":["../../../../../src/__tests__/factories/charge.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -63,9 +63,9 @@ export interface DocumentInsertParams {
|
|
|
63
63
|
* ```typescript
|
|
64
64
|
* // Minimal invoice document
|
|
65
65
|
* const invoice = createDocument({
|
|
66
|
-
* charge_id: makeUUID('charge-1'),
|
|
67
|
-
* creditor_id: makeUUID('supplier-1'),
|
|
68
|
-
* debtor_id: makeUUID('my-business'),
|
|
66
|
+
* charge_id: makeUUID('charge', 'charge-1'),
|
|
67
|
+
* creditor_id: makeUUID('business', 'supplier-1'),
|
|
68
|
+
* debtor_id: makeUUID('business', 'my-business'),
|
|
69
69
|
* type: 'INVOICE',
|
|
70
70
|
* total_amount: 1000.0,
|
|
71
71
|
* currency_code: 'ILS',
|
|
@@ -74,9 +74,9 @@ export interface DocumentInsertParams {
|
|
|
74
74
|
*
|
|
75
75
|
* // Receipt with VAT
|
|
76
76
|
* const receipt = createDocument({
|
|
77
|
-
* charge_id: makeUUID('charge-2'),
|
|
78
|
-
* creditor_id: makeUUID('customer-1'),
|
|
79
|
-
* debtor_id: makeUUID('my-business'),
|
|
77
|
+
* charge_id: makeUUID('charge', 'charge-2'),
|
|
78
|
+
* creditor_id: makeUUID('business', 'customer-1'),
|
|
79
|
+
* debtor_id: makeUUID('business', 'my-business'),
|
|
80
80
|
* type: 'RECEIPT',
|
|
81
81
|
* total_amount: 500.0,
|
|
82
82
|
* currency_code: 'USD',
|
|
@@ -89,9 +89,9 @@ export interface DocumentInsertParams {
|
|
|
89
89
|
* // Invoice with full metadata
|
|
90
90
|
* const detailedInvoice = createDocument(
|
|
91
91
|
* {
|
|
92
|
-
* charge_id: makeUUID('charge-3'),
|
|
93
|
-
* creditor_id: makeUUID('supplier-2'),
|
|
94
|
-
* debtor_id: makeUUID('my-business'),
|
|
92
|
+
* charge_id: makeUUID('charge', 'charge-3'),
|
|
93
|
+
* creditor_id: makeUUID('business', 'supplier-2'),
|
|
94
|
+
* debtor_id: makeUUID('business', 'my-business'),
|
|
95
95
|
* type: 'INVOICE',
|
|
96
96
|
* total_amount: 2500.0,
|
|
97
97
|
* currency_code: 'EUR',
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* @see packages/migrations/src/actions/2024-01-29T13-15-23.initial.ts (documents table)
|
|
11
11
|
* @see packages/server/src/modules/documents/providers/documents.provider.ts (insertDocuments query)
|
|
12
12
|
*/
|
|
13
|
-
import {
|
|
13
|
+
import { makeUUIDLegacy } from '../../demo-fixtures/helpers/deterministic-uuid.js';
|
|
14
14
|
/**
|
|
15
15
|
* Create a document for test fixtures
|
|
16
16
|
*
|
|
@@ -36,9 +36,9 @@ import { makeUUID } from './ids.js';
|
|
|
36
36
|
* ```typescript
|
|
37
37
|
* // Minimal invoice document
|
|
38
38
|
* const invoice = createDocument({
|
|
39
|
-
* charge_id: makeUUID('charge-1'),
|
|
40
|
-
* creditor_id: makeUUID('supplier-1'),
|
|
41
|
-
* debtor_id: makeUUID('my-business'),
|
|
39
|
+
* charge_id: makeUUID('charge', 'charge-1'),
|
|
40
|
+
* creditor_id: makeUUID('business', 'supplier-1'),
|
|
41
|
+
* debtor_id: makeUUID('business', 'my-business'),
|
|
42
42
|
* type: 'INVOICE',
|
|
43
43
|
* total_amount: 1000.0,
|
|
44
44
|
* currency_code: 'ILS',
|
|
@@ -47,9 +47,9 @@ import { makeUUID } from './ids.js';
|
|
|
47
47
|
*
|
|
48
48
|
* // Receipt with VAT
|
|
49
49
|
* const receipt = createDocument({
|
|
50
|
-
* charge_id: makeUUID('charge-2'),
|
|
51
|
-
* creditor_id: makeUUID('customer-1'),
|
|
52
|
-
* debtor_id: makeUUID('my-business'),
|
|
50
|
+
* charge_id: makeUUID('charge', 'charge-2'),
|
|
51
|
+
* creditor_id: makeUUID('business', 'customer-1'),
|
|
52
|
+
* debtor_id: makeUUID('business', 'my-business'),
|
|
53
53
|
* type: 'RECEIPT',
|
|
54
54
|
* total_amount: 500.0,
|
|
55
55
|
* currency_code: 'USD',
|
|
@@ -62,9 +62,9 @@ import { makeUUID } from './ids.js';
|
|
|
62
62
|
* // Invoice with full metadata
|
|
63
63
|
* const detailedInvoice = createDocument(
|
|
64
64
|
* {
|
|
65
|
-
* charge_id: makeUUID('charge-3'),
|
|
66
|
-
* creditor_id: makeUUID('supplier-2'),
|
|
67
|
-
* debtor_id: makeUUID('my-business'),
|
|
65
|
+
* charge_id: makeUUID('charge', 'charge-3'),
|
|
66
|
+
* creditor_id: makeUUID('business', 'supplier-2'),
|
|
67
|
+
* debtor_id: makeUUID('business', 'my-business'),
|
|
68
68
|
* type: 'INVOICE',
|
|
69
69
|
* total_amount: 2500.0,
|
|
70
70
|
* currency_code: 'EUR',
|
|
@@ -81,7 +81,7 @@ import { makeUUID } from './ids.js';
|
|
|
81
81
|
*/
|
|
82
82
|
export function createDocument(params, overrides) {
|
|
83
83
|
return {
|
|
84
|
-
id:
|
|
84
|
+
id: makeUUIDLegacy(),
|
|
85
85
|
image_url: null,
|
|
86
86
|
file_url: null,
|
|
87
87
|
type: params.type,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document.js","sourceRoot":"","sources":["../../../../../src/__tests__/factories/document.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"document.js","sourceRoot":"","sources":["../../../../../src/__tests__/factories/document.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,mDAAmD,CAAC;AA+BnF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmEG;AACH,MAAM,UAAU,cAAc,CAC5B,MAQC,EACD,SAAyC;IAEzC,OAAO;QACL,EAAE,EAAE,cAAc,EAAE;QACpB,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,aAAa,EAAE,IAAI;QACnB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,UAAU,EAAE,IAAI;QAChB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,wBAAwB,EAAE,IAAI;QAC9B,aAAa,EAAE,IAAI;QACnB,iBAAiB,EAAE,IAAI;QACvB,sBAAsB,EAAE,IAAI;QAC5B,SAAS,EAAE,IAAI;QACf,GAAG,SAAS;KACb,CAAC;AACJ,CAAC"}
|