@cobre-npm/library-portal-core 0.66.0 → 0.68.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.
- package/README.md +21 -2
- package/dist/cjs/accounts/status/utils/account-status.utils.d.ts +4 -1
- package/dist/cjs/accounts/status/utils/account-status.utils.js +6 -7
- package/dist/cjs/accounts/types/utils/account-type.utils.d.ts +4 -1
- package/dist/cjs/accounts/types/utils/account-type.utils.js +6 -11
- package/dist/cjs/blockchains/utils/blockchain.utils.d.ts +4 -1
- package/dist/cjs/blockchains/utils/blockchain.utils.js +6 -7
- package/dist/cjs/canonicalTransactions/nature/utils/nature.utils.d.ts +4 -1
- package/dist/cjs/canonicalTransactions/nature/utils/nature.utils.js +4 -6
- package/dist/cjs/canonicalTransactions/productType/utils/product-type.utils.d.ts +4 -1
- package/dist/cjs/canonicalTransactions/productType/utils/product-type.utils.js +4 -6
- package/dist/cjs/counterparties/types/utils/counterparty-type.utils.d.ts +4 -1
- package/dist/cjs/counterparties/types/utils/counterparty-type.utils.js +6 -7
- package/dist/cjs/countries/base/utils/country.utils.d.ts +4 -1
- package/dist/cjs/countries/base/utils/country.utils.js +6 -7
- package/dist/cjs/countries/iso/utils/country-iso.utils.d.ts +4 -1
- package/dist/cjs/countries/iso/utils/country-iso.utils.js +6 -7
- package/dist/cjs/documentTypes/utils/document-type.utils.d.ts +4 -1
- package/dist/cjs/documentTypes/utils/document-type.utils.js +7 -11
- package/dist/cjs/filterClassification/categoryFamilies/utils/filter-classification-category-family.utils.d.ts +4 -1
- package/dist/cjs/filterClassification/categoryFamilies/utils/filter-classification-category-family.utils.js +4 -6
- package/dist/cjs/filterClassification/sections/utils/filter-classification-section.utils.d.ts +4 -1
- package/dist/cjs/filterClassification/sections/utils/filter-classification-section.utils.js +4 -7
- package/dist/cjs/financialInstitutions/catalog.d.ts +7 -6
- package/dist/cjs/financialInstitutions/catalog.js +2 -2
- package/dist/cjs/financialInstitutions/locales/en.json +1 -1
- package/dist/cjs/financialInstitutions/locales/es-mex.json +1 -1
- package/dist/cjs/financialInstitutions/utils/financial-institution.utils.d.ts +6 -3
- package/dist/cjs/financialInstitutions/utils/financial-institution.utils.js +11 -7
- package/dist/cjs/lang/index.d.ts +8 -0
- package/dist/cjs/lang/index.js +11 -1
- package/dist/cjs/movements/status/utils/movement-status.utils.d.ts +4 -1
- package/dist/cjs/movements/status/utils/movement-status.utils.js +5 -6
- package/dist/cjs/movements/types/utils/movement-type.utils.d.ts +4 -1
- package/dist/cjs/movements/types/utils/movement-type.utils.js +5 -6
- package/dist/cjs/subclients/status/utils/subclient-status.utils.d.ts +4 -1
- package/dist/cjs/subclients/status/utils/subclient-status.utils.js +4 -6
- package/dist/cjs/transactions/types/utils/transaction-type.utils.d.ts +4 -1
- package/dist/cjs/transactions/types/utils/transaction-type.utils.js +5 -10
- package/dist/cjs/utils/catalog-label.utils.d.ts +8 -0
- package/dist/cjs/utils/catalog-label.utils.js +2 -0
- package/dist/esm/accounts/status/utils/account-status.utils.js +3 -4
- package/dist/esm/accounts/types/utils/account-type.utils.js +3 -8
- package/dist/esm/blockchains/utils/blockchain.utils.js +3 -4
- package/dist/esm/canonicalTransactions/nature/utils/nature.utils.js +3 -4
- package/dist/esm/canonicalTransactions/productType/utils/product-type.utils.js +3 -4
- package/dist/esm/counterparties/types/utils/counterparty-type.utils.js +3 -4
- package/dist/esm/countries/base/utils/country.utils.js +3 -4
- package/dist/esm/countries/iso/utils/country-iso.utils.js +3 -4
- package/dist/esm/documentTypes/utils/document-type.utils.js +4 -8
- package/dist/esm/filterClassification/categoryFamilies/utils/filter-classification-category-family.utils.js +3 -4
- package/dist/esm/filterClassification/sections/utils/filter-classification-section.utils.js +3 -5
- package/dist/esm/financialInstitutions/catalog.js +2 -2
- package/dist/esm/financialInstitutions/locales/en.json +1 -1
- package/dist/esm/financialInstitutions/locales/es-mex.json +1 -1
- package/dist/esm/financialInstitutions/utils/financial-institution.utils.js +9 -5
- package/dist/esm/lang/index.js +9 -0
- package/dist/esm/movements/status/utils/movement-status.utils.js +3 -4
- package/dist/esm/movements/types/utils/movement-type.utils.js +3 -4
- package/dist/esm/subclients/status/utils/subclient-status.utils.js +3 -4
- package/dist/esm/transactions/types/utils/transaction-type.utils.js +3 -8
- package/dist/esm/utils/catalog-label.utils.js +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -55,7 +55,7 @@ import { getCountries } from "@cobre-npm/library-portal-core/countries"
|
|
|
55
55
|
| `@cobre-npm/library-portal-core/trustedSessions` | Trusted session (OTP elevation window) interfaces + constants |
|
|
56
56
|
| `@cobre-npm/library-portal-core/exports` | Export request/response entity + the engine's format/operator allow-lists |
|
|
57
57
|
| `@cobre-npm/library-portal-core/financialInstitutions` | Financial institutions (banks) by country, with labels |
|
|
58
|
-
| `@cobre-npm/library-portal-core/lang` | Supported locales (`Locale`, defaults) |
|
|
58
|
+
| `@cobre-npm/library-portal-core/lang` | Supported locales (`Locale`, defaults) and `toSupportedLocale` |
|
|
59
59
|
| `@cobre-npm/library-portal-core` (root) | ⚠️ **Legacy / deprecated** — see [below](#legacy-code--and-its-deprecation) |
|
|
60
60
|
|
|
61
61
|
---
|
|
@@ -125,6 +125,7 @@ Every use case comes out of this, without the consumer having to walk internal s
|
|
|
125
125
|
|
|
126
126
|
| I need… | How |
|
|
127
127
|
|---|---|
|
|
128
|
+
| A code or its metadata, no text (compare, filter, send to an API) | `getX()[code].code` — no language |
|
|
128
129
|
| The label of a code | `getX(lang)[code].label` |
|
|
129
130
|
| The full list (dropdown, table) | `Object.values(getX(lang))` |
|
|
130
131
|
| Filter by some property | `Object.values(getX(lang)).filter(x => …)` |
|
|
@@ -155,12 +156,30 @@ one-off predicates even where `queryX()` exists.
|
|
|
155
156
|
|
|
156
157
|
`currencies`/`providers` **don't take `lang`** because there's no translation — the signature is honest.
|
|
157
158
|
|
|
159
|
+
**An i18n getter can also be called without `lang`**, and then it returns the same records **with no `label`**:
|
|
160
|
+
|
|
161
|
+
```ts
|
|
162
|
+
getAccountStatuses().connected.code // "connected" → codes and metadata, no language needed
|
|
163
|
+
getAccountStatuses().connected.label // ✗ compile error: without a language there is no text
|
|
164
|
+
getAccountStatuses("en").connected.label // "Connected"
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
Use it where only codes are read — module-level constants, filters sent to an API — instead of passing a
|
|
168
|
+
placeholder language. Without a language there is no label, so text in the wrong language cannot leak out.
|
|
169
|
+
`ReturnType<typeof getX>` still resolves to the labeled shape (the overload with `lang` is declared last).
|
|
170
|
+
|
|
171
|
+
The active language rarely arrives as a library literal (`en-US` from the browser, a user preference saved
|
|
172
|
+
unvalidated). Narrow it once with `toSupportedLocale(value)` from `/lang` — an exact `Locale` passes through,
|
|
173
|
+
anything else falls back to `es-mex` — before handing it to any `getX(lang)` / `queryX({ lang })`.
|
|
174
|
+
|
|
158
175
|
### Type convention
|
|
159
176
|
|
|
160
177
|
- **`XOption`** = the catalog record **+ `label`** (what `getX(lang)` returns in i18n domains). This is the type
|
|
161
178
|
consumers use to type results.
|
|
162
179
|
- **`XRecord`** = the raw record. In non-i18n domains (currencies/providers) it is the result type
|
|
163
180
|
(the label is already inline); in i18n domains it is **internal** (only input to `XOption`) and is not exported.
|
|
181
|
+
`getX()` without `lang` in an i18n domain is typed `WithoutLabel<XOption>` (a distributive `Omit`, so fields only
|
|
182
|
+
some records carry, like `filterDisplay`, survive), and `XRecord` stays internal.
|
|
164
183
|
- **`X`** (e.g. `AccountType`, `Currency`) = the union of codes. Always public (for typing variables/params).
|
|
165
184
|
|
|
166
185
|
---
|
|
@@ -561,7 +580,7 @@ options.filter(isGroupOption) // only the group opt
|
|
|
561
580
|
- **Family** (`FilterClassificationCategoryFamily`): the chips of the grouped type filter, in chip order: `payments`, `collections`,
|
|
562
581
|
`international`, `conversions`, `top_up`, `between_accounts` and `unclassified`. Each family lists the
|
|
563
582
|
`categories` it groups, and a category belongs to exactly one family (`adjustment` and `reward` fold into
|
|
564
|
-
`between_accounts`). `getFilterClassificationCategoryFamilies(lang)` returns each family with its label and categories; `lang
|
|
583
|
+
`between_accounts`). `getFilterClassificationCategoryFamilies(lang)` returns each family with its label and categories; without `lang`, the same families with no label.
|
|
565
584
|
- **Category** (`FilterClassificationCategory`): derived from the families' lists: `payments`, `collections`, `conversions`,
|
|
566
585
|
`international`, `between_accounts`, `top_up`, `adjustment`, `reward`, `unclassified`. The family is never stored
|
|
567
586
|
per record: group types by family with `getFilterClassificationCategoryFamilies(lang)[family].categories.includes(type.category)`.
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import type { AccountStatus, AccountStatusRecord } from "../catalog";
|
|
2
2
|
import type { Locale } from "../../../lang";
|
|
3
3
|
import type { CatalogQuery } from "../../../utils/catalog-query.utils";
|
|
4
|
+
import type { WithoutLabel } from "../../../utils/catalog-label.utils";
|
|
4
5
|
export type AccountStatusOption = AccountStatusRecord & {
|
|
5
6
|
label: string;
|
|
6
7
|
};
|
|
7
|
-
|
|
8
|
+
/** Without `lang`: the records with no `label`, to read codes and metadata where no language applies. */
|
|
9
|
+
export declare function getAccountStatuses(): Record<AccountStatus, WithoutLabel<AccountStatusOption>>;
|
|
10
|
+
export declare function getAccountStatuses(lang: Locale): Record<AccountStatus, AccountStatusOption>;
|
|
8
11
|
/** `lang` is required (i18n domain, no default) and travels inside the query object, never positional. */
|
|
9
12
|
export type AccountStatusQuery = CatalogQuery<AccountStatusRecord> & {
|
|
10
13
|
lang: Locale;
|
|
@@ -3,25 +3,24 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.queryAccountStatuses =
|
|
6
|
+
exports.queryAccountStatuses = void 0;
|
|
7
|
+
exports.getAccountStatuses = getAccountStatuses;
|
|
7
8
|
const catalog_1 = require("../catalog");
|
|
8
9
|
const en_json_1 = __importDefault(require("../locales/en.json"));
|
|
9
10
|
const es_mex_json_1 = __importDefault(require("../locales/es-mex.json"));
|
|
10
11
|
const catalog_query_utils_1 = require("../../../utils/catalog-query.utils");
|
|
11
12
|
const locales = { en: en_json_1.default, "es-mex": es_mex_json_1.default };
|
|
12
|
-
|
|
13
|
-
const locale = locales[lang];
|
|
13
|
+
function getAccountStatuses(...args) {
|
|
14
14
|
const result = {};
|
|
15
15
|
for (const record of Object.values(catalog_1.ACCOUNT_STATUSES)) {
|
|
16
|
-
result[record.code] = { ...record, label:
|
|
16
|
+
result[record.code] = args.length === 0 ? { ...record } : { ...record, label: locales[args[0]].accountStatuses[record.code] };
|
|
17
17
|
}
|
|
18
18
|
return result;
|
|
19
|
-
}
|
|
20
|
-
exports.getAccountStatuses = getAccountStatuses;
|
|
19
|
+
}
|
|
21
20
|
/** The catalog as a list, narrowed by the query — see `matchesQuery` for the matching rules. */
|
|
22
21
|
const queryAccountStatuses = (query) => {
|
|
23
22
|
const { lang, ...criteria } = query;
|
|
24
|
-
const statuses =
|
|
23
|
+
const statuses = getAccountStatuses(lang);
|
|
25
24
|
return Object.values(statuses).filter(status => (0, catalog_query_utils_1.matchesQuery)(status, criteria));
|
|
26
25
|
};
|
|
27
26
|
exports.queryAccountStatuses = queryAccountStatuses;
|
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
import type { AccountType, AccountTypeRecord } from "../catalog";
|
|
2
2
|
import type { Locale } from "../../../lang";
|
|
3
3
|
import type { CatalogQuery } from "../../../utils/catalog-query.utils";
|
|
4
|
+
import type { WithoutLabel } from "../../../utils/catalog-label.utils";
|
|
4
5
|
export type AccountTypeOption = AccountTypeRecord & {
|
|
5
6
|
label: string;
|
|
6
7
|
};
|
|
8
|
+
/** Without `lang`: the records with no `label`, to read codes and metadata where no language applies. */
|
|
9
|
+
export declare function getAccountTypes(): Record<AccountType, WithoutLabel<AccountTypeOption>>;
|
|
7
10
|
/**
|
|
8
11
|
* The catalog indexed by code (same shape as ACCOUNT_TYPES), each record enriched
|
|
9
12
|
* with its label for the given language. Access by code directly, or Object.values for a list.
|
|
10
13
|
*/
|
|
11
|
-
export declare
|
|
14
|
+
export declare function getAccountTypes(lang: Locale): Record<AccountType, AccountTypeOption>;
|
|
12
15
|
/** `lang` is required (i18n domain, no default) and travels inside the query object, never positional. */
|
|
13
16
|
export type AccountTypeQuery = CatalogQuery<AccountTypeRecord> & {
|
|
14
17
|
lang: Locale;
|
|
@@ -3,29 +3,24 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.queryAccountTypes =
|
|
6
|
+
exports.queryAccountTypes = void 0;
|
|
7
|
+
exports.getAccountTypes = getAccountTypes;
|
|
7
8
|
const catalog_1 = require("../catalog");
|
|
8
9
|
const en_json_1 = __importDefault(require("../locales/en.json"));
|
|
9
10
|
const es_mex_json_1 = __importDefault(require("../locales/es-mex.json"));
|
|
10
11
|
const catalog_query_utils_1 = require("../../../utils/catalog-query.utils");
|
|
11
12
|
const locales = { en: en_json_1.default, "es-mex": es_mex_json_1.default };
|
|
12
|
-
|
|
13
|
-
* The catalog indexed by code (same shape as ACCOUNT_TYPES), each record enriched
|
|
14
|
-
* with its label for the given language. Access by code directly, or Object.values for a list.
|
|
15
|
-
*/
|
|
16
|
-
const getAccountTypes = (lang) => {
|
|
17
|
-
const locale = locales[lang];
|
|
13
|
+
function getAccountTypes(...args) {
|
|
18
14
|
const result = {};
|
|
19
15
|
for (const record of Object.values(catalog_1.ACCOUNT_TYPES)) {
|
|
20
|
-
result[record.code] = { ...record, label:
|
|
16
|
+
result[record.code] = args.length === 0 ? { ...record } : { ...record, label: locales[args[0]].accountTypes[record.code] };
|
|
21
17
|
}
|
|
22
18
|
return result;
|
|
23
|
-
}
|
|
24
|
-
exports.getAccountTypes = getAccountTypes;
|
|
19
|
+
}
|
|
25
20
|
/** The catalog as a list, narrowed by the query — see `matchesQuery` for the matching rules. */
|
|
26
21
|
const queryAccountTypes = (query) => {
|
|
27
22
|
const { lang, ...criteria } = query;
|
|
28
|
-
const types =
|
|
23
|
+
const types = getAccountTypes(lang);
|
|
29
24
|
return Object.values(types).filter(type => (0, catalog_query_utils_1.matchesQuery)(type, criteria));
|
|
30
25
|
};
|
|
31
26
|
exports.queryAccountTypes = queryAccountTypes;
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import type { Blockchain, BlockchainRecord } from "../catalog";
|
|
2
2
|
import type { Locale } from "../../lang";
|
|
3
3
|
import type { CatalogQuery } from "../../utils/catalog-query.utils";
|
|
4
|
+
import type { WithoutLabel } from "../../utils/catalog-label.utils";
|
|
4
5
|
export type BlockchainOption = BlockchainRecord & {
|
|
5
6
|
label: string;
|
|
6
7
|
};
|
|
7
|
-
|
|
8
|
+
/** Without `lang`: the records with no `label`, to read codes and metadata where no language applies. */
|
|
9
|
+
export declare function getBlockchains(): Record<Blockchain, WithoutLabel<BlockchainOption>>;
|
|
10
|
+
export declare function getBlockchains(lang: Locale): Record<Blockchain, BlockchainOption>;
|
|
8
11
|
/** `lang` is required (i18n domain, no default) and travels inside the query object, never positional. */
|
|
9
12
|
export type BlockchainQuery = CatalogQuery<BlockchainRecord> & {
|
|
10
13
|
lang: Locale;
|
|
@@ -3,25 +3,24 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.queryBlockchains =
|
|
6
|
+
exports.queryBlockchains = void 0;
|
|
7
|
+
exports.getBlockchains = getBlockchains;
|
|
7
8
|
const catalog_1 = require("../catalog");
|
|
8
9
|
const en_json_1 = __importDefault(require("../locales/en.json"));
|
|
9
10
|
const es_mex_json_1 = __importDefault(require("../locales/es-mex.json"));
|
|
10
11
|
const catalog_query_utils_1 = require("../../utils/catalog-query.utils");
|
|
11
12
|
const locales = { en: en_json_1.default, "es-mex": es_mex_json_1.default };
|
|
12
|
-
|
|
13
|
-
const locale = locales[lang];
|
|
13
|
+
function getBlockchains(...args) {
|
|
14
14
|
const result = {};
|
|
15
15
|
for (const record of Object.values(catalog_1.BLOCKCHAINS)) {
|
|
16
|
-
result[record.code] = { ...record, label:
|
|
16
|
+
result[record.code] = args.length === 0 ? { ...record } : { ...record, label: locales[args[0]].blockchains[record.code] };
|
|
17
17
|
}
|
|
18
18
|
return result;
|
|
19
|
-
}
|
|
20
|
-
exports.getBlockchains = getBlockchains;
|
|
19
|
+
}
|
|
21
20
|
/** The catalog as a list, narrowed by the query — see `matchesQuery` for the matching rules. */
|
|
22
21
|
const queryBlockchains = (query) => {
|
|
23
22
|
const { lang, ...criteria } = query;
|
|
24
|
-
const blockchains =
|
|
23
|
+
const blockchains = getBlockchains(lang);
|
|
25
24
|
return Object.values(blockchains).filter(blockchain => (0, catalog_query_utils_1.matchesQuery)(blockchain, criteria));
|
|
26
25
|
};
|
|
27
26
|
exports.queryBlockchains = queryBlockchains;
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import type { Nature, NatureRecord } from "../catalog";
|
|
2
2
|
import type { Locale } from "../../../lang";
|
|
3
|
+
import type { WithoutLabel } from "../../../utils/catalog-label.utils";
|
|
3
4
|
export type NatureOption = NatureRecord & {
|
|
4
5
|
label: string;
|
|
5
6
|
};
|
|
6
|
-
|
|
7
|
+
/** Without `lang`: the records with no `label`, to read codes and metadata where no language applies. */
|
|
8
|
+
export declare function getNatures(): Record<Nature, WithoutLabel<NatureOption>>;
|
|
9
|
+
export declare function getNatures(lang: Locale): Record<Nature, NatureOption>;
|
|
@@ -3,17 +3,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.getNatures =
|
|
6
|
+
exports.getNatures = getNatures;
|
|
7
7
|
const catalog_1 = require("../catalog");
|
|
8
8
|
const en_json_1 = __importDefault(require("../locales/en.json"));
|
|
9
9
|
const es_mex_json_1 = __importDefault(require("../locales/es-mex.json"));
|
|
10
10
|
const locales = { en: en_json_1.default, "es-mex": es_mex_json_1.default };
|
|
11
|
-
|
|
12
|
-
const locale = locales[lang];
|
|
11
|
+
function getNatures(...args) {
|
|
13
12
|
const result = {};
|
|
14
13
|
for (const record of Object.values(catalog_1.NATURES)) {
|
|
15
|
-
result[record.code] = { ...record, label:
|
|
14
|
+
result[record.code] = args.length === 0 ? { ...record } : { ...record, label: locales[args[0]].natures[record.code] };
|
|
16
15
|
}
|
|
17
16
|
return result;
|
|
18
|
-
}
|
|
19
|
-
exports.getNatures = getNatures;
|
|
17
|
+
}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import type { ProductType, ProductTypeRecord } from "../catalog";
|
|
2
2
|
import type { Locale } from "../../../lang";
|
|
3
|
+
import type { WithoutLabel } from "../../../utils/catalog-label.utils";
|
|
3
4
|
export type ProductTypeOption = ProductTypeRecord & {
|
|
4
5
|
label: string;
|
|
5
6
|
};
|
|
6
|
-
|
|
7
|
+
/** Without `lang`: the records with no `label`, to read codes and metadata where no language applies. */
|
|
8
|
+
export declare function getProductTypes(): Record<ProductType, WithoutLabel<ProductTypeOption>>;
|
|
9
|
+
export declare function getProductTypes(lang: Locale): Record<ProductType, ProductTypeOption>;
|
|
@@ -3,17 +3,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.getProductTypes =
|
|
6
|
+
exports.getProductTypes = getProductTypes;
|
|
7
7
|
const catalog_1 = require("../catalog");
|
|
8
8
|
const en_json_1 = __importDefault(require("../locales/en.json"));
|
|
9
9
|
const es_mex_json_1 = __importDefault(require("../locales/es-mex.json"));
|
|
10
10
|
const locales = { en: en_json_1.default, "es-mex": es_mex_json_1.default };
|
|
11
|
-
|
|
12
|
-
const locale = locales[lang];
|
|
11
|
+
function getProductTypes(...args) {
|
|
13
12
|
const result = {};
|
|
14
13
|
for (const record of Object.values(catalog_1.PRODUCT_TYPES)) {
|
|
15
|
-
result[record.code] = { ...record, label:
|
|
14
|
+
result[record.code] = args.length === 0 ? { ...record } : { ...record, label: locales[args[0]].productTypes[record.code] };
|
|
16
15
|
}
|
|
17
16
|
return result;
|
|
18
|
-
}
|
|
19
|
-
exports.getProductTypes = getProductTypes;
|
|
17
|
+
}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import type { CounterpartyType, CounterpartyTypeRecord } from "../catalog";
|
|
2
2
|
import type { Locale } from "../../../lang";
|
|
3
3
|
import type { CatalogQuery } from "../../../utils/catalog-query.utils";
|
|
4
|
+
import type { WithoutLabel } from "../../../utils/catalog-label.utils";
|
|
4
5
|
export type CounterpartyTypeOption = CounterpartyTypeRecord & {
|
|
5
6
|
label: string;
|
|
6
7
|
};
|
|
7
|
-
|
|
8
|
+
/** Without `lang`: the records with no `label`, to read codes and metadata where no language applies. */
|
|
9
|
+
export declare function getCounterpartyTypes(): Record<CounterpartyType, WithoutLabel<CounterpartyTypeOption>>;
|
|
10
|
+
export declare function getCounterpartyTypes(lang: Locale): Record<CounterpartyType, CounterpartyTypeOption>;
|
|
8
11
|
/** `lang` is required (i18n domain, no default) and travels inside the query object, never positional. */
|
|
9
12
|
export type CounterpartyTypeQuery = CatalogQuery<CounterpartyTypeRecord> & {
|
|
10
13
|
lang: Locale;
|
|
@@ -3,25 +3,24 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.queryCounterpartyTypes =
|
|
6
|
+
exports.queryCounterpartyTypes = void 0;
|
|
7
|
+
exports.getCounterpartyTypes = getCounterpartyTypes;
|
|
7
8
|
const catalog_1 = require("../catalog");
|
|
8
9
|
const en_json_1 = __importDefault(require("../locales/en.json"));
|
|
9
10
|
const es_mex_json_1 = __importDefault(require("../locales/es-mex.json"));
|
|
10
11
|
const catalog_query_utils_1 = require("../../../utils/catalog-query.utils");
|
|
11
12
|
const locales = { en: en_json_1.default, "es-mex": es_mex_json_1.default };
|
|
12
|
-
|
|
13
|
-
const locale = locales[lang];
|
|
13
|
+
function getCounterpartyTypes(...args) {
|
|
14
14
|
const result = {};
|
|
15
15
|
for (const record of Object.values(catalog_1.COUNTERPARTY_TYPES)) {
|
|
16
|
-
result[record.code] = { ...record, label:
|
|
16
|
+
result[record.code] = args.length === 0 ? { ...record } : { ...record, label: locales[args[0]].counterpartyTypes[record.code] };
|
|
17
17
|
}
|
|
18
18
|
return result;
|
|
19
|
-
}
|
|
20
|
-
exports.getCounterpartyTypes = getCounterpartyTypes;
|
|
19
|
+
}
|
|
21
20
|
/** The catalog as a list, narrowed by the query — see `matchesQuery` for the matching rules. */
|
|
22
21
|
const queryCounterpartyTypes = (query) => {
|
|
23
22
|
const { lang, ...criteria } = query;
|
|
24
|
-
const types =
|
|
23
|
+
const types = getCounterpartyTypes(lang);
|
|
25
24
|
return Object.values(types).filter(type => (0, catalog_query_utils_1.matchesQuery)(type, criteria));
|
|
26
25
|
};
|
|
27
26
|
exports.queryCounterpartyTypes = queryCounterpartyTypes;
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import type { Country, CountryRecord } from "../catalog";
|
|
2
2
|
import type { Locale } from "../../../lang";
|
|
3
3
|
import type { CatalogQuery } from "../../../utils/catalog-query.utils";
|
|
4
|
+
import type { WithoutLabel } from "../../../utils/catalog-label.utils";
|
|
4
5
|
export type CountryOption = CountryRecord & {
|
|
5
6
|
label: string;
|
|
6
7
|
};
|
|
7
|
-
|
|
8
|
+
/** Without `lang`: the records with no `label`, to read codes and metadata where no language applies. */
|
|
9
|
+
export declare function getCountries(): Record<Country, WithoutLabel<CountryOption>>;
|
|
10
|
+
export declare function getCountries(lang: Locale): Record<Country, CountryOption>;
|
|
8
11
|
/** `lang` is required (i18n domain, no default) and travels inside the query object, never positional. */
|
|
9
12
|
export type CountryQuery = CatalogQuery<CountryRecord> & {
|
|
10
13
|
lang: Locale;
|
|
@@ -3,25 +3,24 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.queryCountries =
|
|
6
|
+
exports.queryCountries = void 0;
|
|
7
|
+
exports.getCountries = getCountries;
|
|
7
8
|
const catalog_1 = require("../catalog");
|
|
8
9
|
const en_json_1 = __importDefault(require("../locales/en.json"));
|
|
9
10
|
const es_mex_json_1 = __importDefault(require("../locales/es-mex.json"));
|
|
10
11
|
const catalog_query_utils_1 = require("../../../utils/catalog-query.utils");
|
|
11
12
|
const locales = { en: en_json_1.default, "es-mex": es_mex_json_1.default };
|
|
12
|
-
|
|
13
|
-
const locale = locales[lang];
|
|
13
|
+
function getCountries(...args) {
|
|
14
14
|
const result = {};
|
|
15
15
|
for (const record of Object.values(catalog_1.COUNTRIES)) {
|
|
16
|
-
result[record.code] = { ...record, label:
|
|
16
|
+
result[record.code] = args.length === 0 ? { ...record } : { ...record, label: locales[args[0]].countries[record.code] };
|
|
17
17
|
}
|
|
18
18
|
return result;
|
|
19
|
-
}
|
|
20
|
-
exports.getCountries = getCountries;
|
|
19
|
+
}
|
|
21
20
|
/** The catalog as a list, narrowed by the query — see `matchesQuery` for the matching rules. */
|
|
22
21
|
const queryCountries = (query) => {
|
|
23
22
|
const { lang, ...criteria } = query;
|
|
24
|
-
const countries =
|
|
23
|
+
const countries = getCountries(lang);
|
|
25
24
|
return Object.values(countries).filter(country => (0, catalog_query_utils_1.matchesQuery)(country, criteria));
|
|
26
25
|
};
|
|
27
26
|
exports.queryCountries = queryCountries;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { CountryISO, CountryISORecord } from "../catalog";
|
|
2
2
|
import type { Locale } from "../../../lang";
|
|
3
3
|
import type { CatalogQuery } from "../../../utils/catalog-query.utils";
|
|
4
|
+
import type { WithoutLabel } from "../../../utils/catalog-label.utils";
|
|
4
5
|
export declare const hasCountryISOFlag: (code: CountryISO) => boolean;
|
|
5
6
|
export type CountryISOOption = CountryISORecord & {
|
|
6
7
|
label: string;
|
|
@@ -12,7 +13,9 @@ export interface IndicativeWithCode {
|
|
|
12
13
|
country: string;
|
|
13
14
|
isoCode: string | undefined;
|
|
14
15
|
}
|
|
15
|
-
|
|
16
|
+
/** Without `lang`: the records with no `label`, to read codes and metadata where no language applies. */
|
|
17
|
+
export declare function getCountriesISO(): Record<CountryISO, WithoutLabel<CountryISOOption>>;
|
|
18
|
+
export declare function getCountriesISO(lang: Locale): Record<CountryISO, CountryISOOption>;
|
|
16
19
|
/** `lang` is required (i18n domain, no default) and travels inside the query object, never positional. */
|
|
17
20
|
export type CountryISOQuery = CatalogQuery<CountryISORecord> & {
|
|
18
21
|
lang: Locale;
|
|
@@ -3,7 +3,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.getIndicativesWithCodes = exports.queryCountriesISO = exports.
|
|
6
|
+
exports.getIndicativesWithCodes = exports.queryCountriesISO = exports.hasCountryISOFlag = void 0;
|
|
7
|
+
exports.getCountriesISO = getCountriesISO;
|
|
7
8
|
const catalog_1 = require("../catalog");
|
|
8
9
|
const en_json_1 = __importDefault(require("../locales/en.json"));
|
|
9
10
|
const es_mex_json_1 = __importDefault(require("../locales/es-mex.json"));
|
|
@@ -12,19 +13,17 @@ const locales = { en: en_json_1.default, "es-mex": es_mex_json_1.default };
|
|
|
12
13
|
const AVAILABLE_FLAG_CODES = new Set(["col", "mex", "usa"]);
|
|
13
14
|
const hasCountryISOFlag = (code) => AVAILABLE_FLAG_CODES.has(code);
|
|
14
15
|
exports.hasCountryISOFlag = hasCountryISOFlag;
|
|
15
|
-
|
|
16
|
-
const locale = locales[lang];
|
|
16
|
+
function getCountriesISO(...args) {
|
|
17
17
|
const result = {};
|
|
18
18
|
for (const record of Object.values(catalog_1.COUNTRIES_ISO)) {
|
|
19
|
-
result[record.code] = { ...record, label:
|
|
19
|
+
result[record.code] = args.length === 0 ? { ...record } : { ...record, label: locales[args[0]].countriesISO[record.code] };
|
|
20
20
|
}
|
|
21
21
|
return result;
|
|
22
|
-
}
|
|
23
|
-
exports.getCountriesISO = getCountriesISO;
|
|
22
|
+
}
|
|
24
23
|
/** The catalog as a list, narrowed by the query — see `matchesQuery` for the matching rules. */
|
|
25
24
|
const queryCountriesISO = (query) => {
|
|
26
25
|
const { lang, ...criteria } = query;
|
|
27
|
-
const countries =
|
|
26
|
+
const countries = getCountriesISO(lang);
|
|
28
27
|
return Object.values(countries).filter(country => (0, catalog_query_utils_1.matchesQuery)(country, criteria));
|
|
29
28
|
};
|
|
30
29
|
exports.queryCountriesISO = queryCountriesISO;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { DocumentType, DocumentTypeGeo, DocumentTypeRecord, DocumentTypeUsage } from "../catalog";
|
|
2
2
|
import type { Locale } from "../../lang";
|
|
3
3
|
import type { CatalogQuery } from "../../utils/catalog-query.utils";
|
|
4
|
+
import type { WithoutLabel } from "../../utils/catalog-label.utils";
|
|
4
5
|
type DocumentTypeValidation = Omit<DocumentTypeRecord, "geo">;
|
|
5
6
|
export type DocumentTypeOption = DocumentTypeValidation & {
|
|
6
7
|
label: string;
|
|
@@ -12,11 +13,13 @@ type DocumentTypeGeoRecord = DocumentTypeValidation & {
|
|
|
12
13
|
export type DocumentTypeGeoOption = DocumentTypeGeoRecord & {
|
|
13
14
|
label: string;
|
|
14
15
|
};
|
|
16
|
+
/** Without `lang`: the records with no `label`, to read codes and metadata where no language applies. */
|
|
17
|
+
export declare function getDocumentTypes(): Record<DocumentType, WithoutLabel<DocumentTypeOption>>;
|
|
15
18
|
/**
|
|
16
19
|
* Documents indexed by code (definition + label). For the unique list (Object.values),
|
|
17
20
|
* validation ([code].minLength / maxLength / type) and label ([code].label).
|
|
18
21
|
*/
|
|
19
|
-
export declare
|
|
22
|
+
export declare function getDocumentTypes(lang: Locale): Record<DocumentType, DocumentTypeOption>;
|
|
20
23
|
/** i18n domain: `lang` is required, inside the query object — see matchesQuery for the matching rules. */
|
|
21
24
|
export type DocumentTypeQuery = CatalogQuery<DocumentTypeGeoRecord> & {
|
|
22
25
|
lang: Locale;
|
|
@@ -3,25 +3,21 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.getDocumentTypesByGeo = exports.queryDocumentTypes =
|
|
6
|
+
exports.getDocumentTypesByGeo = exports.queryDocumentTypes = void 0;
|
|
7
|
+
exports.getDocumentTypes = getDocumentTypes;
|
|
7
8
|
const catalog_1 = require("../catalog");
|
|
8
9
|
const en_json_1 = __importDefault(require("../locales/en.json"));
|
|
9
10
|
const es_mex_json_1 = __importDefault(require("../locales/es-mex.json"));
|
|
10
11
|
const catalog_query_utils_1 = require("../../utils/catalog-query.utils");
|
|
11
12
|
const locales = { en: en_json_1.default, "es-mex": es_mex_json_1.default };
|
|
12
|
-
|
|
13
|
-
* Documents indexed by code (definition + label). For the unique list (Object.values),
|
|
14
|
-
* validation ([code].minLength / maxLength / type) and label ([code].label).
|
|
15
|
-
*/
|
|
16
|
-
const getDocumentTypes = (lang) => {
|
|
17
|
-
const locale = locales[lang];
|
|
13
|
+
function getDocumentTypes(...args) {
|
|
18
14
|
const result = {};
|
|
19
15
|
for (const { code, minLength, maxLength, type } of Object.values(catalog_1.DOCUMENT_TYPES)) {
|
|
20
|
-
|
|
16
|
+
const validation = { code, minLength, maxLength, type };
|
|
17
|
+
result[code] = args.length === 0 ? validation : { ...validation, label: locales[args[0]].documentTypes[code] };
|
|
21
18
|
}
|
|
22
19
|
return result;
|
|
23
|
-
}
|
|
24
|
-
exports.getDocumentTypes = getDocumentTypes;
|
|
20
|
+
}
|
|
25
21
|
/** DOCUMENT_TYPES flattened by geo, one row per (code, geo) pair — no label, so it is what gets filtered. */
|
|
26
22
|
const flattenByGeo = () => Object.values(catalog_1.DOCUMENT_TYPES).flatMap(({ geo, ...record }) => {
|
|
27
23
|
const entries = Object.entries(geo);
|
|
@@ -30,7 +26,7 @@ const flattenByGeo = () => Object.values(catalog_1.DOCUMENT_TYPES).flatMap(({ ge
|
|
|
30
26
|
/** The catalog flattened by geo, narrowed by the query, each record enriched with its label for `query.lang`. */
|
|
31
27
|
const queryDocumentTypes = (query) => {
|
|
32
28
|
const { lang, ...filters } = query;
|
|
33
|
-
const docs =
|
|
29
|
+
const docs = getDocumentTypes(lang);
|
|
34
30
|
return flattenByGeo()
|
|
35
31
|
.filter(record => (0, catalog_query_utils_1.matchesQuery)(record, filters))
|
|
36
32
|
.map(record => ({ ...record, label: docs[record.code].label }));
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import type { FilterClassificationCategory, FilterClassificationCategoryFamily } from "../catalog";
|
|
2
2
|
import type { Locale } from "../../../lang";
|
|
3
|
+
import type { WithoutLabel } from "../../../utils/catalog-label.utils";
|
|
3
4
|
export type FilterClassificationCategoryFamilyOption = {
|
|
4
5
|
code: FilterClassificationCategoryFamily;
|
|
5
6
|
categories: readonly FilterClassificationCategory[];
|
|
6
7
|
label: string;
|
|
7
8
|
};
|
|
8
|
-
|
|
9
|
+
/** Without `lang`: the records with no `label`, to read codes and metadata where no language applies. */
|
|
10
|
+
export declare function getFilterClassificationCategoryFamilies(): Record<FilterClassificationCategoryFamily, WithoutLabel<FilterClassificationCategoryFamilyOption>>;
|
|
11
|
+
export declare function getFilterClassificationCategoryFamilies(lang: Locale): Record<FilterClassificationCategoryFamily, FilterClassificationCategoryFamilyOption>;
|
|
@@ -3,17 +3,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.getFilterClassificationCategoryFamilies =
|
|
6
|
+
exports.getFilterClassificationCategoryFamilies = getFilterClassificationCategoryFamilies;
|
|
7
7
|
const catalog_1 = require("../catalog");
|
|
8
8
|
const en_json_1 = __importDefault(require("../locales/en.json"));
|
|
9
9
|
const es_mex_json_1 = __importDefault(require("../locales/es-mex.json"));
|
|
10
10
|
const locales = { en: en_json_1.default, "es-mex": es_mex_json_1.default };
|
|
11
|
-
|
|
12
|
-
const locale = locales[lang];
|
|
11
|
+
function getFilterClassificationCategoryFamilies(...args) {
|
|
13
12
|
const result = {};
|
|
14
13
|
for (const record of Object.values(catalog_1.FILTER_CLASSIFICATION_CATEGORY_FAMILIES)) {
|
|
15
|
-
result[record.code] = { ...record, label:
|
|
14
|
+
result[record.code] = args.length === 0 ? { ...record } : { ...record, label: locales[args[0]].categoryFamilies[record.code] };
|
|
16
15
|
}
|
|
17
16
|
return result;
|
|
18
|
-
}
|
|
19
|
-
exports.getFilterClassificationCategoryFamilies = getFilterClassificationCategoryFamilies;
|
|
17
|
+
}
|
package/dist/cjs/filterClassification/sections/utils/filter-classification-section.utils.d.ts
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import type { FilterClassificationSection, FilterClassificationSectionRecord } from "../catalog";
|
|
2
2
|
import type { Locale } from "../../../lang";
|
|
3
|
+
import type { WithoutLabel } from "../../../utils/catalog-label.utils";
|
|
3
4
|
export type FilterClassificationSectionOption = FilterClassificationSectionRecord & {
|
|
4
5
|
label: string;
|
|
5
6
|
};
|
|
7
|
+
/** Without `lang`: the records with no `label`, to read codes and metadata where no language applies. */
|
|
8
|
+
export declare function getFilterClassificationSections(): Record<FilterClassificationSection, WithoutLabel<FilterClassificationSectionOption>>;
|
|
6
9
|
/** The section headings indexed by code, each with its label. A section is a heading: never selectable, never sent to an API. */
|
|
7
|
-
export declare
|
|
10
|
+
export declare function getFilterClassificationSections(lang: Locale): Record<FilterClassificationSection, FilterClassificationSectionOption>;
|
|
@@ -3,18 +3,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.getFilterClassificationSections =
|
|
6
|
+
exports.getFilterClassificationSections = getFilterClassificationSections;
|
|
7
7
|
const catalog_1 = require("../catalog");
|
|
8
8
|
const en_json_1 = __importDefault(require("../locales/en.json"));
|
|
9
9
|
const es_mex_json_1 = __importDefault(require("../locales/es-mex.json"));
|
|
10
10
|
const locales = { en: en_json_1.default, "es-mex": es_mex_json_1.default };
|
|
11
|
-
|
|
12
|
-
const getFilterClassificationSections = (lang) => {
|
|
13
|
-
const locale = locales[lang];
|
|
11
|
+
function getFilterClassificationSections(...args) {
|
|
14
12
|
const result = {};
|
|
15
13
|
for (const record of Object.values(catalog_1.FILTER_CLASSIFICATION_SECTIONS)) {
|
|
16
|
-
result[record.code] = { ...record, label:
|
|
14
|
+
result[record.code] = args.length === 0 ? { ...record } : { ...record, label: locales[args[0]].sections[record.code] };
|
|
17
15
|
}
|
|
18
16
|
return result;
|
|
19
|
-
}
|
|
20
|
-
exports.getFilterClassificationSections = getFilterClassificationSections;
|
|
17
|
+
}
|
|
@@ -40,6 +40,7 @@ export declare const FINANCIAL_INSTITUTIONS: {
|
|
|
40
40
|
readonly code: "pr_col_1819";
|
|
41
41
|
readonly rawCode: "1819";
|
|
42
42
|
readonly geo: "col";
|
|
43
|
+
readonly scope: "checkout";
|
|
43
44
|
};
|
|
44
45
|
readonly pr_col_1066: {
|
|
45
46
|
readonly code: "pr_col_1066";
|
|
@@ -211,6 +212,12 @@ export declare const FINANCIAL_INSTITUTIONS: {
|
|
|
211
212
|
readonly geo: "col";
|
|
212
213
|
readonly scope: "checkout";
|
|
213
214
|
};
|
|
215
|
+
readonly pr_col_1019: {
|
|
216
|
+
readonly code: "pr_col_1019";
|
|
217
|
+
readonly rawCode: "1019";
|
|
218
|
+
readonly geo: "col";
|
|
219
|
+
readonly scope: "checkout";
|
|
220
|
+
};
|
|
214
221
|
readonly pr_col_1551: {
|
|
215
222
|
readonly code: "pr_col_1551";
|
|
216
223
|
readonly rawCode: "1551";
|
|
@@ -310,12 +317,6 @@ export declare const FINANCIAL_INSTITUTIONS: {
|
|
|
310
317
|
readonly rawCode: "1813";
|
|
311
318
|
readonly geo: "col";
|
|
312
319
|
};
|
|
313
|
-
readonly pr_col_1019: {
|
|
314
|
-
readonly code: "pr_col_1019";
|
|
315
|
-
readonly rawCode: "1019";
|
|
316
|
-
readonly geo: "col";
|
|
317
|
-
readonly scope: "checkout";
|
|
318
|
-
};
|
|
319
320
|
readonly pr_col_1804: {
|
|
320
321
|
readonly code: "pr_col_1804";
|
|
321
322
|
readonly rawCode: "1804";
|