@notabene/javascript-sdk 2.0.0-next.2 → 2.0.0-next.20

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 (64) hide show
  1. package/LICENSE.md +21 -0
  2. package/README.md +281 -231
  3. package/dist/js/notabene.js +1 -0
  4. package/dist/notabene.cjs +1 -1
  5. package/dist/notabene.d.ts +1052 -209
  6. package/dist/notabene.js +275 -105
  7. package/dist/tsdoc-metadata.json +1 -1
  8. package/package.json +36 -26
  9. package/src/__tests__/notabene.test.ts +43 -0
  10. package/src/components/EmbeddedComponent.ts +141 -22
  11. package/src/components/__tests__/EmbeddedComponent.test.ts +73 -20
  12. package/src/ivms/types.ts +230 -152
  13. package/src/locales.ts +47 -0
  14. package/src/notabene.ts +243 -90
  15. package/src/types.ts +723 -144
  16. package/src/utils/MessageEventManager.ts +70 -12
  17. package/src/utils/__tests__/MessageEventManager.test.ts +13 -5
  18. package/src/utils/arbitraries.ts +9 -4
  19. package/.editorconfig +0 -10
  20. package/.gitlab-ci.yml +0 -85
  21. package/.husky/commit-msg +0 -4
  22. package/.husky/pre-commit +0 -4
  23. package/.husky/pre-push +0 -4
  24. package/.prettierrc +0 -4
  25. package/.releaserc.json +0 -16
  26. package/.vscode/extensions.json +0 -3
  27. package/.vscode/settings.json +0 -11
  28. package/.yarn/releases/yarn-berry.cjs +0 -925
  29. package/.yarnrc.yml +0 -3
  30. package/CODEOWNERS +0 -1
  31. package/api-extractor.json +0 -434
  32. package/eslint.config.js +0 -24
  33. package/etc/javascript-sdk.api.md +0 -363
  34. package/index.html +0 -137
  35. package/temp/javascript-sdk.api.json +0 -3509
  36. package/temp/javascript-sdk.api.md +0 -363
  37. package/ts-out/src/__tests__/notabene.test.d.ts +0 -1
  38. package/ts-out/src/__tests__/notabene.test.js +0 -88
  39. package/ts-out/src/arbitraries.d.ts +0 -4
  40. package/ts-out/src/arbitraries.js +0 -8
  41. package/ts-out/src/components/EmbeddedComponent.d.ts +0 -25
  42. package/ts-out/src/components/EmbeddedComponent.js +0 -87
  43. package/ts-out/src/components/__tests__/EmbeddedComponent.test.d.ts +0 -1
  44. package/ts-out/src/components/__tests__/EmbeddedComponent.test.js +0 -132
  45. package/ts-out/src/ivms/types.d.ts +0 -252
  46. package/ts-out/src/ivms/types.js +0 -1
  47. package/ts-out/src/notabene.d.ts +0 -35
  48. package/ts-out/src/notabene.js +0 -59
  49. package/ts-out/src/types.d.ts +0 -357
  50. package/ts-out/src/types.js +0 -85
  51. package/ts-out/src/utils/MessageEventManager.d.ts +0 -12
  52. package/ts-out/src/utils/MessageEventManager.js +0 -45
  53. package/ts-out/src/utils/__tests__/MessageEventManager.test.d.ts +0 -1
  54. package/ts-out/src/utils/__tests__/MessageEventManager.test.js +0 -73
  55. package/ts-out/src/utils/arbitraries.d.ts +0 -6
  56. package/ts-out/src/utils/arbitraries.js +0 -7
  57. package/ts-out/src/utils/caip.d.ts +0 -13
  58. package/ts-out/src/utils/caip.js +0 -15
  59. package/ts-out/src/utils/urls.d.ts +0 -1
  60. package/ts-out/src/utils/urls.js +0 -14
  61. package/ts-out/tsconfig.tsbuildinfo +0 -1
  62. package/tsconfig.json +0 -22
  63. package/tsconfig.tsbuildinfo +0 -1
  64. package/vite.config.js +0 -13
package/src/ivms/types.ts CHANGED
@@ -1,283 +1,349 @@
1
1
  /**
2
- * 5.3.8
3
- * NaturalPersonNameTypeCode
2
+ * ISO-3166 Alpha-2 country code
3
+ * @example "US" for United States, "GB" for United Kingdom
4
+ * @public
5
+ */
6
+ export type ISOCountryCode = string;
7
+
8
+ /**
9
+ * A point in time, represented as a day within the calendar year. Compliant with ISO 8601.
10
+ * Format: YYYY-MM-DD
11
+ * @example "2023-05-15" for May 15, 2023
12
+ * @public
13
+ */
14
+ export type ISODate = `${number}-${number}-${number}`;
15
+
16
+ /**
17
+ * Natural Person Name Type Code
18
+ * Specifies the type of name for a natural person
4
19
  *
5
- * `ALIA` Alias name - A name other than the legal name by which a natural person is also known.
6
- * `BIRT` Name at birth - The name given to a natural person at birth.
7
- * `MAID` Maiden name - The original name of a natural person who has changed their name after marriage.
8
- * `LEGL` Legal name - The name that identifies a natural person for legal, official or administrative purposes.
9
- * `MISC` Unspecified - A name by which a natural person may be known but which cannot otherwise be categorized or the category of which the sender is unable to determine.
20
+ * @public
10
21
  */
11
22
  export type NaturalPersonNameTypeCode =
12
- | 'ALIA'
13
- | 'BIRT'
14
- | 'MAID'
15
- | 'LEGL'
16
- | 'MISC';
23
+ | 'ALIA' // Alias name: A name other than the legal name by which a natural person is also known
24
+ | 'BIRT' // Name at birth: The name given to a natural person at birth
25
+ | 'MAID' // Maiden name: The original name of a natural person who has changed their name after marriage
26
+ | 'LEGL' // Legal name: The name that identifies a natural person for legal, official or administrative purposes
27
+ | 'MISC'; // Unspecified: A name by which a natural person may be known but which cannot otherwise be categorized
17
28
 
18
29
  /**
19
- * 5.3.9
20
- * LegalPersonNameTypeCode
21
- *
22
- * `LEGL` Legal name - Official name under which an organisation is registered.
23
- * `SHRT` Short name - Specifies the short name of the organisation.
24
- * `TRAD` Trading name - Name used by a business for commercial purposes, although its registered legal name, used for contracts and other formal situations, may be another.
30
+ * Legal Person Name Type Code
31
+ * Specifies the type of name for a legal person
32
+ * @public
25
33
  */
26
- export type LegalPersonNameTypeCode = 'LEGL' | 'SHRT' | 'TRAD';
34
+ export type LegalPersonNameTypeCode =
35
+ | 'LEGL' // Legal name: Official name under which an organisation is registered
36
+ | 'SHRT' // Short name: Specifies the short name of the organisation
37
+ | 'TRAD'; // Trading name: Name used by a business for commercial purposes
27
38
 
28
39
  /**
29
- * 5.3.11
30
- * AddressTypeCode
31
- *
32
- * `HOME` Residential - Address is the home address.
33
- * `BIZZ` Business - Address is the business address.
34
- * `GEOG` Geographic - Address is the unspecified physical (geographical) address suitable for identification of the natural or legal person.
40
+ * Address Type Code
41
+ * Specifies the type of address
42
+ * @public
35
43
  */
36
- export type AddressTypeCode = 'HOME' | 'BIZZ' | 'GEOG';
44
+ export type AddressTypeCode =
45
+ | 'HOME' // Residential: Address is the home address
46
+ | 'BIZZ' // Business: Address is the business address
47
+ | 'GEOG'; // Geographic: Address is the unspecified physical (geographical) address
37
48
 
38
49
  /**
39
- * 5.3.14
40
- * NationalIdentifierTypeCode
41
- *
42
- * `ARNU` Alien registration number - Number assigned by a government agency to identify foreign nationals.
43
- * `CCPT` Passport number - Number assigned by a passport authority.
44
- * `RAID` Registration authority identifier - Identifier of a legal entity as maintained by a registration authority.
45
- * `DRLC` Driver license number - Number assigned to a driver's license.
46
- * `FIIN` Foreign investment identity number - Number assigned to a foreign investor (other than the alien number).
47
- * `TXID` Tax identification number - Number assigned by a tax authority to an entity.
48
- * `SOCS` Social security number - Number assigned by a social security agency.
49
- * `IDCD` Identity card number - Number assigned by a national authority to an identity card.
50
- * `LEIX` Legal Entity Identifier - Legal Entity Identifier (LEI) assigned in accordance with ISO 17442 11 .
51
- * `MISC` Unspecified - A national identifier which may be known but which cannot otherwise be categorized or the category of which the sender is unable to determine.
50
+ * National Identifier Type Code
51
+ * Specifies the type of national identifier
52
+ * @public
52
53
  */
53
54
  export type NationalIdentifierTypeCode =
54
- | 'ARNU'
55
- | 'CCPT'
56
- | 'RAID'
57
- | 'DRLC'
58
- | 'FIIN'
59
- | 'TXID'
60
- | 'SOCS'
61
- | 'IDCD'
62
- | 'LEIX'
63
- | 'MISC';
55
+ | 'ARNU' // Alien registration number
56
+ | 'CCPT' // Passport number
57
+ | 'RAID' // Registration authority identifier
58
+ | 'DRLC' // Driver license number
59
+ | 'FIIN' // Foreign investment identity number
60
+ | 'TXID' // Tax identification number
61
+ | 'SOCS' // Social security number
62
+ | 'IDCD' // Identity card number
63
+ | 'LEIX' // Legal Entity Identifier
64
+ | 'MISC'; // Unspecified
64
65
 
65
66
  /**
66
- * 5.3.16
67
- * TransliterationMethodCode
68
- *
69
- * `arab` Arabic (Arabic language) - ISO 233-2:1993
70
- * `aran` Arabic (Persian language) - ISO 233-3:1999
71
- * `armn` Armenian - ISO 9985:1996
72
- * `cyrl` Cyrillic - ISO 9:1995
73
- * `deva` Devanagari & related Indic - ISO 15919:2001
74
- * `geor` Georgian - ISO 9984:1996
75
- * `grek` Greek - ISO 843:1997
76
- * `hani` Han (Hanzi, Kanji, Hanja) - ISO 7098:2015
77
- * `hebr` Hebrew - ISO 259-2:1994
78
- * `kana` Kana - ISO 3602:1989
79
- * `kore` Korean - Revised Romanization of Korean
80
- * `thai` Thai - ISO 11940-2:2007
81
- * `othr` Script other than those listed above - Unspecified
67
+ * Transliteration Method Code
68
+ * Specifies the method used to transliterate text
69
+ * @public
82
70
  */
83
71
  export type TransliterationMethodCode =
84
- | 'arab'
85
- | 'aran'
86
- | 'armn'
87
- | 'cyrl'
88
- | 'deva'
89
- | 'geor'
90
- | 'grek'
91
- | 'hani'
92
- | 'hebr'
93
- | 'kana'
94
- | 'kore'
95
- | 'thai'
96
- | 'othr';
72
+ | 'arab' // Arabic (Arabic language) - ISO 233-2:1993
73
+ | 'aran' // Arabic (Persian language) - ISO 233-3:1999
74
+ | 'armn' // Armenian - ISO 9985:1996
75
+ | 'cyrl' // Cyrillic - ISO 9:1995
76
+ | 'deva' // Devanagari & related Indic - ISO 15919:2001
77
+ | 'geor' // Georgian - ISO 9984:1996
78
+ | 'grek' // Greek - ISO 843:1997
79
+ | 'hani' // Han (Hanzi, Kanji, Hanja) - ISO 7098:2015
80
+ | 'hebr' // Hebrew - ISO 259-2:1994
81
+ | 'kana' // Kana - ISO 3602:1989
82
+ | 'kore' // Korean - Revised Romanization of Korean
83
+ | 'thai' // Thai - ISO 11940-2:2007
84
+ | 'othr'; // Script other than those listed above - Unspecified
97
85
 
98
86
  /**
99
- * 5.2.8
100
- * NationalIdentification
87
+ * National Identification
88
+ * Represents a national identifier for a person or entity
89
+ * @public
101
90
  */
102
91
  export type NationalIdentification = {
103
- nationalIdentifier?: string; //Max35Text
92
+ /** National identifier (max 35 characters) */
93
+ nationalIdentifier?: string;
94
+ /** Type of national identifier */
104
95
  nationalIdentifierType?: NationalIdentifierTypeCode;
105
- countryOfIssue?: string; //CountryCode (^[A-Z]{2}$)
106
- registrationAuthority?: string; //RegistrationAuthority (^RA([0-9]{6})$)
96
+ /** Country that issued the national identifier */
97
+ countryOfIssue?: ISOCountryCode;
98
+ /** Registration authority (format: RA followed by 6 digits) */
99
+ registrationAuthority?: string;
107
100
  };
108
101
 
109
102
  /**
110
- * 5.2.7
111
- * DateAndPlaceOfBirth
103
+ * Date and Place of Birth
104
+ * Represents the date and place of birth for a natural person
105
+ * @public
112
106
  */
113
107
  export type DateAndPlaceOfBirth = {
114
- dateOfBirth?: string; //YYYY-MM-DD
115
- placeOfBirth?: string; //Max70Text
108
+ /** Date of birth in ISO 8601 format (YYYY-MM-DD) */
109
+ dateOfBirth?: ISODate;
110
+ /** Place of birth (max 70 characters) */
111
+ placeOfBirth?: string;
116
112
  };
117
113
 
118
114
  /**
119
- * 5.2.6
120
115
  * Address
116
+ * Represents a physical address
117
+ * @public
121
118
  */
122
119
  export type Address = {
123
- addressType?: AddressTypeCode;
124
- department?: string; //Max50Text
125
- subDepartment?: string; //Max70Text
126
- streetName?: string; //Max70Text
127
- buildingNumber?: string; //Max16Text
128
- buildingName?: string; //Max35Text
129
- floor?: string; //Max70Text
130
- postBox?: string; //Max16Text
131
- room?: string; //Max70Text
132
- postCode?: string; //Max16Text
133
- townName?: string; //Max35Text
134
- townLocationName?: string; //Max35Text
135
- districtName?: string; //Max35Text
136
- countrySubDivision?: string; //Max35Text
137
- addressLine?: string[]; //Max35Text max 7 items in array
138
- country?: string; //CountryCode (^[A-Z]= {2}$)
120
+ /** Identifies the nature of the address. */
121
+ addressType: AddressTypeCode;
122
+ /** Identification of a division of a large organisation or building. */
123
+ department?: string;
124
+ /** Identification of a sub-division of a large organisation or building. */
125
+ subDepartment?: string;
126
+ /** Name of a street or thoroughfare. */
127
+ streetName?: string;
128
+ /** Number that identifies the position of a building on a street. */
129
+ buildingNumber?: string;
130
+ /** Name of the building or house. */
131
+ buildingName?: string;
132
+ /** Floor or storey within a building. */
133
+ floor?: string;
134
+ /** Numbered box in a post office. */
135
+ postBox?: string;
136
+ /** Building room number. */
137
+ room?: string;
138
+ /** Identifier consisting of a group of letters and/or numbers that is added to a postal address to assist the sorting of mail. */
139
+ postcode?: string;
140
+ /** Name of a built-up area, with defined boundaries, and a local government. */
141
+ townName: string;
142
+ /** Specific location name within the town. */
143
+ townLocationName?: string;
144
+ /** Identifies a subdivision within a country subdivision. */
145
+ districtName?: string;
146
+ /** Identifies a subdivision of a country such as state, region, province. */
147
+ countrySubDivision?: string;
148
+ /** Information that locates and identifies a specific address, presented in free format text. */
149
+ addressLine?: string[];
150
+ /** Nation with its own government. */
151
+ country: ISOCountryCode;
139
152
  };
140
153
 
141
154
  /**
142
- * 5.2.5
143
- * LocalNaturalPersonNameID
155
+ * Local Natural Person Name ID
156
+ * Represents a local name identifier for a natural person
157
+ * @public
144
158
  */
145
159
  export type LocalNaturalPersonNameID = {
146
- primaryIdentifier?: string; //LocalMax100Text
147
- secondaryIdentifier?: string; //LocalMax100Text
160
+ /** Primary identifier, maximum 100 characters in local format */
161
+ primaryIdentifier?: string;
162
+ /** Secondary identifier, maximum 100 characters in local format */
163
+ secondaryIdentifier?: string;
164
+ /** Type of name identifier */
148
165
  nameIdentifierType?: NaturalPersonNameTypeCode;
149
166
  };
150
167
 
151
168
  /**
152
- * 5.2.4
153
- * NaturalPersonNameID
169
+ * Natural Person Name ID
170
+ * Represents a name identifier for a natural person
171
+ * @public
154
172
  */
155
173
  export type NaturalPersonNameID = {
156
- primaryIdentifier?: string; //Max100Text
157
- secondaryIdentifier?: string; //Max100Text
174
+ /** Primary identifier, maximum 100 characters */
175
+ primaryIdentifier?: string;
176
+ /** Secondary identifier, maximum 100 characters */
177
+ secondaryIdentifier?: string;
178
+ /** Type of name identifier */
158
179
  nameIdentifierType?: NaturalPersonNameTypeCode;
159
180
  };
160
181
 
161
182
  /**
162
- * 5.2.3
163
- * NaturalPersonName
183
+ * Natural Person Name
184
+ * Represents the full name structure for a natural person
185
+ * @public
164
186
  */
165
187
  export type NaturalPersonName = {
188
+ /** Array of name identifiers */
166
189
  nameIdentifier?: NaturalPersonNameID[];
190
+ /** Array of local name identifiers */
167
191
  localNameIdentifier?: LocalNaturalPersonNameID[];
192
+ /** Array of phonetic name identifiers */
168
193
  phoneticNameIdentifier?: LocalNaturalPersonNameID[];
169
194
  };
170
195
 
171
196
  /**
172
- * 5.2.2
173
- * NaturalPerson
197
+ * Natural Person
198
+ * Represents a natural person with all associated information
199
+ * @public
174
200
  */
175
201
  export type NaturalPerson = {
176
- name?: NaturalPersonName[];
202
+ /** The distinct words used as identification for an individual */
203
+ name: NaturalPersonName;
204
+ /** The particulars of a location at which a person may be communicated with */
177
205
  geographicAddress?: Address[];
206
+ /** A distinct identifier used by governments to uniquely identify a natural person */
178
207
  nationalIdentification?: NationalIdentification;
179
- customerIdentification?: string; //Max50Text
208
+ /** A distinct identifier that uniquely identifies the person to the institution in context */
209
+ customerIdentification?: string;
210
+ /** Date and place of birth of a person */
180
211
  dateAndPlaceOfBirth?: DateAndPlaceOfBirth;
181
- countryOfResidence?: string; //CountryCode (^[A-Z]{2}$)
212
+ /** Country in which a person resides (the place of a person's home) */
213
+ countryOfResidence?: ISOCountryCode;
182
214
  };
183
215
 
184
216
  /**
185
- * 5.2.12
186
- * LocalLegalPersonNameID
217
+ * Local Legal Person Name ID
218
+ * Represents a local name identifier for a legal person
219
+ * @public
187
220
  */
188
221
  export type LocalLegalPersonNameID = {
189
- legalPersonName?: string; //LocalMax100Text
222
+ /** Name of the legal person, maximum 100 characters in local format */
223
+ legalPersonName?: string;
224
+ /** Type of legal person name identifier */
190
225
  legalPersonNameIdentifierType?: LegalPersonNameTypeCode;
191
226
  };
192
227
 
193
228
  /**
194
- * 5.2.11
195
- * LegalPersonNameID
229
+ * Legal Person Name ID
230
+ * Represents a name identifier for a legal person
231
+ * @public
196
232
  */
197
233
  export type LegalPersonNameID = {
198
- legalPersonName?: string; //Max100Text
199
- legalPersonNameIdentifierType?: LegalPersonNameTypeCode;
234
+ /** Name by which the legal person is known */
235
+ legalPersonName: string;
236
+ /** The nature of the name specified */
237
+ legalPersonNameIdentifierType: LegalPersonNameTypeCode;
200
238
  };
201
239
 
202
240
  /**
203
- * 5.2.10
204
- * LegalPersonName
241
+ * Legal Person Name
242
+ * Represents the full name structure for a legal person
243
+ * @public
205
244
  */
206
245
  export type LegalPersonName = {
207
- nameIdentifier?: LegalPersonNameID[];
246
+ /** Array of name identifiers */
247
+ nameIdentifier: LegalPersonNameID[];
248
+ /** Array of local name identifiers */
208
249
  localNameIdentifier?: LocalLegalPersonNameID[];
250
+ /** Array of phonetic name identifiers */
209
251
  phoneticNameIdentifier?: LocalLegalPersonNameID[];
210
252
  };
211
253
 
212
254
  /**
213
- * 5.2.9
214
- * LegalPerson
255
+ * Legal Person
256
+ * Represents a legal person with all associated information
257
+ * @public
215
258
  */
216
259
  export type LegalPerson = {
217
- name?: LegalPersonName;
260
+ /** The name of the legal person */
261
+ name: LegalPersonName;
262
+ /** The address of the legal person */
218
263
  geographicAddress?: Address[];
219
- customerNumber?: string; //Max50Text
264
+ /** A distinct identifier that uniquely identifies the person to the institution in context */
265
+ customerNumber?: string;
266
+ /** A distinct identifier used by governments to uniquely identify a legal person */
220
267
  nationalIdentification?: NationalIdentification;
221
- countryOfRegistration?: string; //CountryCode (^[A-Z]{2}$);
268
+ /** The country in which the legal person is registered */
269
+ countryOfRegistration?: ISOCountryCode;
222
270
  };
223
271
 
224
272
  /**
225
- * 5.2.1
226
273
  * Person
274
+ * Represents either a natural person or a legal person
275
+ * @public
227
276
  */
228
277
  export type Person = {
278
+ /** Natural person information */
229
279
  naturalPerson?: NaturalPerson;
280
+ /** Legal person information */
230
281
  legalPerson?: LegalPerson;
231
282
  };
232
283
 
233
284
  /**
234
- * 5.2.13
235
- * IntermediaryVASP
285
+ * Intermediary VASP
286
+ * Represents an intermediary Virtual Asset Service Provider
287
+ * @public
236
288
  */
237
289
  export type IntermediaryVASP = {
290
+ /** The intermediary VASP information */
238
291
  intermediaryVASP?: Person;
292
+ /** The sequence number of this VASP in the transfer path */
239
293
  sequence?: number;
240
294
  };
241
295
 
242
296
  /**
243
- * 6.2
244
- * The originator is defined in Section 1.1 as the account holder who allows the VA transfer from that account or, where there is no account, the natural or legal person that places the order with the originating VASP to perform the VA transfer.
297
+ * Originator
298
+ * Represents the account holder who initiates the VA transfer
299
+ * @public
245
300
  */
246
301
  export type Originator = {
302
+ /** Array of persons associated with the originator */
247
303
  originatorPersons?: Person[];
248
- accountNumber?: string[]; //Max100Text
304
+ /** Array of account numbers, maximum 100 characters each */
305
+ accountNumber?: string[];
249
306
  };
250
307
 
251
308
  /**
252
- * 6.3
253
- * The beneficiary is defined in Section 1.1 as the natural or legal person or legal arrangement who is identified by the originator as the receiver of the requested VA transfer.
309
+ * Beneficiary
310
+ * Represents the receiver of the requested VA transfer
311
+ * @public
254
312
  */
255
313
  export type Beneficiary = {
314
+ /** Array of persons associated with the beneficiary */
256
315
  beneficiaryPersons?: Person[];
257
- accountNumber?: string[]; //max100
316
+ /** Array of account numbers, maximum 100 characters each */
317
+ accountNumber?: string[];
258
318
  };
259
319
 
260
320
  /**
261
- * 6.4
262
- * The originating VASP is defined in Section 1.1 as the VASP which initiates the VA transfer, and transfers the VA upon receiving the request for a VA transfer on behalf of the originator.
321
+ * Originating VASP
322
+ * Represents the VASP which initiates the VA transfer
323
+ * @public
263
324
  */
264
325
  export type OriginatingVASP = {
326
+ /** The originating VASP information */
265
327
  originatingVASP?: Person;
266
328
  };
267
329
 
268
330
  /**
269
- * 6.5
270
- * The originating VASP is defined in Section 1.1 as the VASP which initiates the VA transfer, and transfers the VA upon receiving the request for a VA transfer on behalf of the originator.
331
+ * Beneficiary VASP
332
+ * Represents the VASP which receives the VA transfer
333
+ * @public
271
334
  */
272
335
  export type BeneficiaryVASP = {
336
+ /** The beneficiary VASP information */
273
337
  beneficiaryVASP?: Person;
274
338
  };
275
339
 
276
340
  /**
277
- * 6.6
278
- * The transfer path refers to the intermediary VASP(s) participating in a serial chain that receive(s) and retransmit(s) a VA transfer on behalf of the originating VASP and the beneficiary VASP, or another intermediary VASP, together with their corresponding sequence number.
341
+ * Transfer Path
342
+ * Represents the path of intermediary VASPs in a transfer
343
+ * @public
279
344
  */
280
345
  export type TransferPath = {
346
+ /** Array of intermediary VASPs involved in the transfer */
281
347
  transferPath?: IntermediaryVASP[];
282
348
  };
283
349
 
@@ -285,9 +351,21 @@ export type TransferPath = {
285
351
  * 6.7
286
352
  * Data describing the contents of the payload.
287
353
  */
288
- export type PayloadMetadata = {
289
- transferPath?: TransliterationMethodCode[];
290
- };
354
+ export interface PayloadMetadata {
355
+ /** The method used to map from a national system of writing to Latin script. */
356
+ transliterationMethod?: TransliterationMethodCode[];
357
+ /** The version of IVMS 101 to which the payload complies. */
358
+ payloadVersion: PayloadVersionCode;
359
+ }
360
+ /**
361
+ * The version of IVMS 101 to which the payload complies.
362
+ */
363
+ export enum PayloadVersionCode {
364
+ /** Published May 2020 */
365
+ V101 = '101',
366
+ /** Published August 2023 */
367
+ V101_2023 = '101.2023',
368
+ }
291
369
 
292
370
  /**
293
371
  * IVMS101 definition
package/src/locales.ts ADDED
@@ -0,0 +1,47 @@
1
+ export const languages = {
2
+ ar: 'العربية (Arabic)',
3
+ bg: 'български (Bulgarian)',
4
+ ca: 'Català (Catalan)',
5
+ cs: 'Čeština (Czech)',
6
+ da: 'Dansk (Danish)',
7
+ de: 'Deutsch (German)',
8
+ el: 'Ελληνικά (Greek)',
9
+ en: 'English (English)',
10
+ es: 'Español (Spanish)',
11
+ et: 'Eesti (Estonian)',
12
+ fa: 'فارسی (Persian)',
13
+ fi: 'Suomi (Finnish)',
14
+ fr: 'Français (French)',
15
+ he: 'עברית (Hebrew)',
16
+ hr: 'Hrvatski (Croatian)',
17
+ hu: 'Magyar (Hungarian)',
18
+ hy: 'Հայերեն (Armenian)',
19
+ id: 'Bahasa Indonesia (Indonesian)',
20
+ is: 'Íslenska (Icelandic)',
21
+ it: 'Italiano (Italian)',
22
+ ja: '日本語 (Japanese)',
23
+ ka: 'ქართული (Georgian)',
24
+ ko: '한국어 (Korean)',
25
+ lt: 'Lietuvių (Lithuanian)',
26
+ lv: 'Latviešu (Latvian)',
27
+ mn: 'Монгол (Mongolian)',
28
+ ms: 'Bahasa Melayu (Malay)',
29
+ mt: 'Malti (Maltese)',
30
+ nl: 'Nederlands (Dutch)',
31
+ no: 'Norsk (Norwegian)',
32
+ pl: 'Polski (Polish)',
33
+ pt: 'Português (Portuguese)',
34
+ ro: 'Română (Romanian)',
35
+ ru: 'Русский (Russian)',
36
+ sk: 'Slovenčina (Slovak)',
37
+ sl: 'Slovenščina (Slovenian)',
38
+ sr: 'Српски (Serbian)',
39
+ sv: 'Svenska (Swedish)',
40
+ sw: 'Kiswahili (Swahili)',
41
+ th: 'ไทย (Thai)',
42
+ tl: 'Tagalog (Tagalog)',
43
+ tr: 'Türkçe (Turkish)',
44
+ uk: 'Українська (Ukrainian)',
45
+ vi: 'Tiếng Việt (Vietnamese)',
46
+ zh: '中文 (Chinese)',
47
+ };