@twin.org/merge-locales 0.0.1-next.9 → 0.0.2-next.10

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/bin/index.js CHANGED
File without changes
@@ -98,7 +98,7 @@ async function mergeLocales(workingDirectory, config) {
98
98
  for (const localeDictionary in localeDictionaries) {
99
99
  const localeFile = path.join(outputDirectory, `${localeDictionary}.json`);
100
100
  cliCore.CLIDisplay.value(core.I18n.formatMessage("commands.merge-locales.labels.writingLocale"), localeFile, 1);
101
- await promises.writeFile(localeFile, JSON.stringify(localeDictionaries[localeDictionary], null, 2), "utf8");
101
+ await promises.writeFile(localeFile, `${JSON.stringify(localeDictionaries[localeDictionary], undefined, "\t")}\n`, "utf8");
102
102
  }
103
103
  cliCore.CLIDisplay.break();
104
104
  }
@@ -117,9 +117,7 @@ async function mergePackageLocales(packageLocalDirectory, packageName, locales,
117
117
  if (await cliCore.CLIUtils.dirExists(localeFile)) {
118
118
  cliCore.CLIDisplay.value(core.I18n.formatMessage("commands.merge-locales.labels.mergingLocale"), locale.code, 1);
119
119
  const localeDictionary = await cliCore.CLIUtils.readJsonFile(localeFile);
120
- if (!localeDictionaries[locale.code]) {
121
- localeDictionaries[locale.code] = {};
122
- }
120
+ localeDictionaries[locale.code] ??= {};
123
121
  localeDictionaries[locale.code] = core.ObjectHelper.merge(localeDictionaries[locale.code], localeDictionary);
124
122
  }
125
123
  }
@@ -145,6 +143,15 @@ async function findDependencies(npmRoot, packageJsonPath, packageNames) {
145
143
  }
146
144
  }
147
145
  }
146
+ if (core.Is.objectValue(packageJson?.peerDependencies)) {
147
+ for (const pkg in packageJson.peerDependencies) {
148
+ if (pkg.startsWith("@twin.org") && !packageNames.includes(pkg)) {
149
+ packageNames.push(pkg);
150
+ const packagePath = path.join(npmRoot, pkg, "package.json");
151
+ await findDependencies(npmRoot, packagePath, packageNames);
152
+ }
153
+ }
154
+ }
148
155
  return packageJson ?? {};
149
156
  }
150
157
 
@@ -166,7 +173,7 @@ class CLI extends cliCore.CLIBase {
166
173
  return this.execute({
167
174
  title: "TWIN Merge Locales",
168
175
  appName: "merge-locales",
169
- version: "0.0.1-next.9",
176
+ version: "0.0.2-next.10", // x-release-please-version
170
177
  icon: "⚙️ ",
171
178
  supportsEnvFiles: false,
172
179
  overrideOutputWidth: options?.overrideOutputWidth
@@ -95,7 +95,7 @@ async function mergeLocales(workingDirectory, config) {
95
95
  for (const localeDictionary in localeDictionaries) {
96
96
  const localeFile = path.join(outputDirectory, `${localeDictionary}.json`);
97
97
  CLIDisplay.value(I18n.formatMessage("commands.merge-locales.labels.writingLocale"), localeFile, 1);
98
- await writeFile(localeFile, JSON.stringify(localeDictionaries[localeDictionary], null, 2), "utf8");
98
+ await writeFile(localeFile, `${JSON.stringify(localeDictionaries[localeDictionary], undefined, "\t")}\n`, "utf8");
99
99
  }
100
100
  CLIDisplay.break();
101
101
  }
@@ -114,9 +114,7 @@ async function mergePackageLocales(packageLocalDirectory, packageName, locales,
114
114
  if (await CLIUtils.dirExists(localeFile)) {
115
115
  CLIDisplay.value(I18n.formatMessage("commands.merge-locales.labels.mergingLocale"), locale.code, 1);
116
116
  const localeDictionary = await CLIUtils.readJsonFile(localeFile);
117
- if (!localeDictionaries[locale.code]) {
118
- localeDictionaries[locale.code] = {};
119
- }
117
+ localeDictionaries[locale.code] ??= {};
120
118
  localeDictionaries[locale.code] = ObjectHelper.merge(localeDictionaries[locale.code], localeDictionary);
121
119
  }
122
120
  }
@@ -142,6 +140,15 @@ async function findDependencies(npmRoot, packageJsonPath, packageNames) {
142
140
  }
143
141
  }
144
142
  }
143
+ if (Is.objectValue(packageJson?.peerDependencies)) {
144
+ for (const pkg in packageJson.peerDependencies) {
145
+ if (pkg.startsWith("@twin.org") && !packageNames.includes(pkg)) {
146
+ packageNames.push(pkg);
147
+ const packagePath = path.join(npmRoot, pkg, "package.json");
148
+ await findDependencies(npmRoot, packagePath, packageNames);
149
+ }
150
+ }
151
+ }
145
152
  return packageJson ?? {};
146
153
  }
147
154
 
@@ -163,7 +170,7 @@ class CLI extends CLIBase {
163
170
  return this.execute({
164
171
  title: "TWIN Merge Locales",
165
172
  appName: "merge-locales",
166
- version: "0.0.1-next.9",
173
+ version: "0.0.2-next.10", // x-release-please-version
167
174
  icon: "⚙️ ",
168
175
  supportsEnvFiles: false,
169
176
  overrideOutputWidth: options?.overrideOutputWidth
@@ -1,244 +1,272 @@
1
1
  {
2
- "error": {
3
- "commands": {
4
- "common": {
5
- "missingEnv": "The \"{option}\" option is configured as an environment variable, but there is no environment variable with the name \"{value}\" set.",
6
- "optionInvalidHex": "The \"{option}\" does not appear to be hex. \"{value}\"",
7
- "optionInvalidBase64": "The \"{option}\" does not appear to be base64. \"{value}\"",
8
- "optionInvalidHexBase64": "The \"{option}\" does not appear to be hex or base64. \"{value}\"",
9
- "optionInvalidBech32": "The \"{option}\" does not appear to be bech32. \"{value}\"",
10
- "optionMinValue": "The \"{option}\" option must be greater than or equal to {minValue}, it is {value}.",
11
- "optionMaxValue": "The \"{option}\" option must be less than or equal to {maxValue}, it is {value}."
12
- },
13
- "merge-locales": {
14
- "configFailed": "Configuration failed to load."
15
- }
16
- },
17
- "validation": {
18
- "beEmpty": "{fieldName} must be empty",
19
- "beNotEmpty": "{fieldName} must not be empty",
20
- "beText": "{fieldName} must be text",
21
- "beTextValue": "{fieldName} must contain some text",
22
- "beTextMinMax": "{fieldName} must be longer than {minLength} and shorter than {maxLength} characters",
23
- "beTextMin": "{fieldName} must be longer than {minLength} characters",
24
- "beTextMax": "{fieldName} must be shorter than {maxLength} characters",
25
- "beNumber": "{fieldName} must be a number",
26
- "beNumberMinMax": "{fieldName} must be >= {minValue} and <= {maxValue}",
27
- "beNumberMin": "{fieldName} must be >= {minValue}",
28
- "beNumberMax": "{fieldName} must be <= {maxValue}",
29
- "beWholeNumber": "{fieldName} must be a whole number",
30
- "beWholeNumberMinMax": "{fieldName} must be a whole number >= {minValue} and <= {maxValue}",
31
- "beWholeNumberMin": "{fieldName} must be a whole number >= {minValue}",
32
- "beWholeNumberMax": "{fieldName} must be a whole number <= {maxValue}",
33
- "beBigInteger": "{fieldName} must be a bigint",
34
- "beBigIntegerMinMax": "{fieldName} must be a bigint >= {minValue} and <= {maxValue}",
35
- "beBigIntegerMin": "{fieldName} must be a bigint >= {minValue}",
36
- "beBigIntegerMax": "{fieldName} must be a bigint <= {maxValue}",
37
- "beBoolean": "{fieldName} must be true or false",
38
- "beDate": "{fieldName} must be a date",
39
- "beDateTime": "{fieldName} must be a date/time",
40
- "beTime": "{fieldName} must be a time",
41
- "beTimestampMilliseconds": "{fieldName} must be a timestamp in milliseconds",
42
- "beTimestampSeconds": "{fieldName} must be a timestamp in seconds",
43
- "beObject": "{fieldName} must be an object",
44
- "beArray": "{fieldName} must be an array",
45
- "beArrayValue": "{fieldName} must be an array with at least one item",
46
- "beIncluded": "{fieldName} is unrecognised",
47
- "beByteArray": "{fieldName} must be a byte array",
48
- "beUrn": "{fieldName} must be a correctly formatted urn",
49
- "beUrl": "{fieldName} must be a correctly formatted url",
50
- "beJSON": "{fieldName} must be correctly formatted JSON",
51
- "beEmail": "{fieldName} must be a correctly formatted e-mail address",
52
- "failed": "Validation failed",
53
- "failedObject": "Validation of \"{objectName}\" failed"
54
- },
55
- "guard": {
56
- "undefined": "Property \"{property}\" must be defined, it is \"{value}\"",
57
- "string": "Property \"{property}\" must be a string, it is \"{value}\"",
58
- "stringEmpty": "Property \"{property}\" must have a value, it is empty",
59
- "stringBase64": "Property \"{property}\" must be a base64 encoded string, it is \"{value}\"",
60
- "stringBase64Url": "Property \"{property}\" must be a base64 url encoded string, it is \"{value}\"",
61
- "stringHex": "Property \"{property}\" must be a hex string, it is \"{value}\"",
62
- "stringHexLength": "Property \"{property}\" must be a hex string of length \"{options}\", it is \"{value}\"",
63
- "number": "Property \"{property}\" must be a number, it is \"{value}\"",
64
- "integer": "Property \"{property}\" must be an integer, it is \"{value}\"",
65
- "bigint": "Property \"{property}\" must be a bigint, it is \"{value}\"",
66
- "boolean": "Property \"{property}\" must be a boolean, it is \"{value}\"",
67
- "date": "Property \"{property}\" must be a date, it is \"{value}\"",
68
- "timestampMilliseconds": "Property \"{property}\" must be a timestamp in milliseconds, it is \"{value}\"",
69
- "timestampSeconds": "Property \"{property}\" must be a timestamp in seconds, it is \"{value}\"",
70
- "objectUndefined": "Property \"{property}\" must be an object, it is \"undefined\"",
71
- "object": "Property \"{property}\" must be an object, it is \"{value}\"",
72
- "objectValue": "Property \"{property}\" must be an object, with at least one property, it is \"{value}\"",
73
- "array": "Property \"{property}\" must be an array, it is \"{value}\"",
74
- "arrayValue": "Property \"{property}\" must be an array with at least one item",
75
- "arrayOneOf": "Property \"{property}\" must be one of [{options}], it is \"{value}\"",
76
- "uint8Array": "Property \"{property}\" must be a Uint8Array, it is \"{value}\"",
77
- "function": "Property \"{property}\" must be a function, it is \"{value}\"",
78
- "urn": "Property \"{property}\" must be a Urn formatted string, it is \"{value}\"",
79
- "url": "Property \"{property}\" must be a Url formatted string, it is \"{value}\"",
80
- "email": "Property \"{property}\" must be string in e-mail format, it is \"{value}\"",
81
- "length32Multiple": "Property \"{property}\" should be a multiple of 32, it is {value}",
82
- "lengthEntropy": "Property \"{property}\" should be a multiple of 4, >=16 and <= 32, it is {value}",
83
- "length3Multiple": "Property \"{property}\" should be a multiple of 3, it is {value}",
84
- "greaterThan0": "Property \"{property}\" must be greater than zero, it is {value}"
85
- },
86
- "objectHelper": {
87
- "failedBytesToJSON": "Failed converting bytes to JSON"
88
- },
89
- "common": {
90
- "notImplementedMethod": "The method \"{method}\" has not been implemented",
91
- "validation": "Validation failed"
92
- },
93
- "factory": {
94
- "noUnregister": "There is no {typeName} registered with the name \"{name}\"",
95
- "noGet": "The requested {typeName} \"{name}\" does not exist in the factory"
96
- },
97
- "bitString": {
98
- "outOfRange": "The index should be >= 0 and less than the length of the bit string"
99
- },
100
- "bip39": {
101
- "missingMnemonicWord": "The mnemonic contains a word not in the wordlist, \"{value}\"",
102
- "checksumMismatch": "The checksum does not match \"{newChecksum}\" != \"{checksumBits}\""
103
- },
104
- "ed25519": {
105
- "privateKeyLength": "The private key length is incorrect, it should be \"{requiredSize}\" but is \"{actualSize}\"",
106
- "publicKeyLength": "The public key length is incorrect, it should be \"{requiredSize}\" but is \"{actualSize}\""
107
- },
108
- "secp256k1": {
109
- "privateKeyLength": "The private key length is incorrect, it should be \"{requiredSize}\" but is \"{actualSize}\"",
110
- "publicKeyLength": "The public key length is incorrect, it should be \"{requiredSize}\" but is \"{actualSize}\""
111
- },
112
- "x25519": {
113
- "invalidPublicKey": "Invalid Ed25519 Public Key"
114
- },
115
- "blake2b": {
116
- "outputLength64": "The output length should be between 1 and 64, it is \"{outputLength}\"",
117
- "keyLength64": "The key length should be between 1 and 64, it is \"{keyLength}\""
118
- },
119
- "sha512": {
120
- "bitSize": "Only 224, 256, 384 or 512 bits are supported, it is \"{bitSize}\""
121
- },
122
- "sha256": {
123
- "bitSize": "Only 224 or 256 bits are supported, it is \"{bitSize}\""
124
- },
125
- "hmacSha256": {
126
- "bitSize": "Only 224 or 256 bits are supported, it is \"{bitSize}\""
127
- },
128
- "hmacSha512": {
129
- "bitSize": "Only 224, 256, 384 or 512 bits are supported, it is \"{bitSize}\""
130
- },
131
- "base32": {
132
- "invalidCharacter": "Data contains a character \"{invalidCharacter}\" which is not in the charset"
133
- },
134
- "base64": {
135
- "length4Multiple": "Invalid length should be a multiple of 4, it is \"{value}\""
136
- },
137
- "bech32": {
138
- "decodeFailed": "The address contains decoding failed for address \"{bech32}\"",
139
- "invalidChecksum": "The address contains an invalid checksum in address, \"{bech32}\"",
140
- "separatorMisused": "The separator character '1' should only be used between hrp and data, \"{bech32}\"",
141
- "lowerUpper": "The address my use either lowercase or uppercase, \"{bech32}\"",
142
- "dataTooShort": "The address does not contain enough data to decode, \"{bech32}\""
143
- },
144
- "pbkdf2": {
145
- "keyTooLong": "The requested key length \"{keyLength}\" is too long, based on the \"{macLength}\""
146
- },
147
- "chaCha20Poly1305": {
148
- "noAadWithData": "You can not set the aad when there is already data",
149
- "noAuthTag": "Can not finalise when the auth tag is not set",
150
- "authenticationFailed": "The data could not be authenticated",
151
- "authTagDecrypting": "Can not get the auth tag when decrypting",
152
- "authTagEncrypting": "Can not set the auth tag when encrypting",
153
- "noAuthTagSet": "The auth tag has not been set"
154
- },
155
- "bip44": {
156
- "unsupportedKeyType": "The key type \"{keyType}\" is not supported"
157
- },
158
- "slip0010": {
159
- "invalidSeed": "The seed is invalid \"{seed}\""
160
- }
161
- },
162
- "cli": {
163
- "progress": {
164
- "done": "Done.",
165
- "error": "Error",
166
- "loadingEnvFiles": "Loading env files",
167
- "pleaseWait": "Please wait...",
168
- "writingJsonFile": "Writing JSON file",
169
- "writingEnvFile": "Writing env file",
170
- "readingJsonFile": "Reading JSON file",
171
- "readingEnvFile": "Reading env file"
172
- },
173
- "options": {
174
- "lang": {
175
- "param": "--lang '<'lang'>'",
176
- "description": "The language to display the output in."
177
- },
178
- "load-env": {
179
- "param": "--load-env [env...]",
180
- "description": "Load the env files to initialise any environment variables."
181
- },
182
- "no-console": {
183
- "param": "--no-console",
184
- "description": "Hides the output in the console."
185
- },
186
- "json": {
187
- "param": "--json '<'filename'>'",
188
- "description": "Creates a JSON file containing the output."
189
- },
190
- "env": {
191
- "param": "--env '<'filename'>'",
192
- "description": "Creates an env file containing the output."
193
- },
194
- "merge-json": {
195
- "param": "--merge-json",
196
- "description": "If the JSON file already exists merge the data instead of overwriting."
197
- },
198
- "merge-env": {
199
- "param": "--merge-env",
200
- "description": "If the env file already exists merge the data instead of overwriting."
201
- }
202
- }
203
- },
204
- "errorNames": {
205
- "error": "Error",
206
- "generalError": "General",
207
- "guardError": "Guard",
208
- "conflictError": "Conflict",
209
- "notFoundError": "Not Found",
210
- "notSupportedError": "Not Supported",
211
- "alreadyExistsError": "Already Exists",
212
- "notImplementedError": "Not Implemented",
213
- "validationError": "Validation",
214
- "unprocessableError": "Unprocessable"
215
- },
216
- "validation": {
217
- "defaultFieldName": "The field"
218
- },
219
- "commands": {
220
- "merge-locales": {
221
- "options": {
222
- "config": {
223
- "param": "--config '<'file'>'",
224
- "description": "Path to the JSON configuration file."
225
- }
226
- },
227
- "progress": {
228
- "loadingConfigJson": "Loading Config JSON",
229
- "creatingOutputDirectory": "Creating Output Directory",
230
- "writingMergedLocales": "Writing Merged Locales",
231
- "mergingLocalesForPackage": "Merging Locales for Package"
232
- },
233
- "labels": {
234
- "configJson": "Config JSON",
235
- "workingDirectory": "Working Directory",
236
- "outputDirectory": "Output Directory",
237
- "npmRoot": "NPM Root",
238
- "sourcePackages": "Source Packages",
239
- "writingLocale": "Writing Locale",
240
- "mergingLocale": "Merging Locale"
241
- }
242
- }
243
- }
244
- }
2
+ "error": {
3
+ "commands": {
4
+ "common": {
5
+ "missingEnv": "The \"{option}\" option is configured as an environment variable, but there is no environment variable with the name \"{value}\" set.",
6
+ "optionInvalidHex": "The \"{option}\" does not appear to be hex. \"{value}\"",
7
+ "optionInvalidBase64": "The \"{option}\" does not appear to be base64. \"{value}\"",
8
+ "optionInvalidHexBase64": "The \"{option}\" does not appear to be hex or base64. \"{value}\"",
9
+ "optionInvalidBech32": "The \"{option}\" does not appear to be bech32. \"{value}\"",
10
+ "optionMinValue": "The \"{option}\" option must be greater than or equal to {minValue}, it is {value}.",
11
+ "optionMaxValue": "The \"{option}\" option must be less than or equal to {maxValue}, it is {value}."
12
+ },
13
+ "merge-locales": {
14
+ "configFailed": "Configuration failed to load."
15
+ }
16
+ },
17
+ "validation": {
18
+ "beEmpty": "{fieldName} must be empty",
19
+ "beNotEmpty": "{fieldName} must not be empty",
20
+ "beText": "{fieldName} must be text",
21
+ "beTextValue": "{fieldName} must contain some text",
22
+ "beTextMinMax": "{fieldName} must be longer than {minLength} and shorter than {maxLength} characters",
23
+ "beTextMin": "{fieldName} must be longer than {minLength} characters",
24
+ "beTextMax": "{fieldName} must be shorter than {maxLength} characters",
25
+ "beTextBase58": "{fieldName} must be text formatted using Base58 characters",
26
+ "beTextBase64": "{fieldName} must be text formatted using Base64 characters",
27
+ "beTextHex": "{fieldName} must be text formatted using Hex characters",
28
+ "beTextRegExp": "{fieldName} must be text formatted using the matching pattern {format}",
29
+ "beNumber": "{fieldName} must be a number",
30
+ "beNumberMinMax": "{fieldName} must be >= {minValue} and <= {maxValue}",
31
+ "beNumberMin": "{fieldName} must be >= {minValue}",
32
+ "beNumberMax": "{fieldName} must be <= {maxValue}",
33
+ "beWholeNumber": "{fieldName} must be a whole number",
34
+ "beWholeNumberMinMax": "{fieldName} must be a whole number >= {minValue} and <= {maxValue}",
35
+ "beWholeNumberMin": "{fieldName} must be a whole number >= {minValue}",
36
+ "beWholeNumberMax": "{fieldName} must be a whole number <= {maxValue}",
37
+ "beBigInteger": "{fieldName} must be a bigint",
38
+ "beBigIntegerMinMax": "{fieldName} must be a bigint >= {minValue} and <= {maxValue}",
39
+ "beBigIntegerMin": "{fieldName} must be a bigint >= {minValue}",
40
+ "beBigIntegerMax": "{fieldName} must be a bigint <= {maxValue}",
41
+ "beBoolean": "{fieldName} must be true or false",
42
+ "beDate": "{fieldName} must be a date",
43
+ "beDateTime": "{fieldName} must be a date/time",
44
+ "beTime": "{fieldName} must be a time",
45
+ "beTimestampMilliseconds": "{fieldName} must be a timestamp in milliseconds",
46
+ "beTimestampSeconds": "{fieldName} must be a timestamp in seconds",
47
+ "beObject": "{fieldName} must be an object",
48
+ "beArray": "{fieldName} must be an array",
49
+ "beArrayValue": "{fieldName} must be an array with at least one item",
50
+ "beIncluded": "{fieldName} is unrecognised",
51
+ "beByteArray": "{fieldName} must be a byte array",
52
+ "beUrn": "{fieldName} must be a correctly formatted urn",
53
+ "beUrl": "{fieldName} must be a correctly formatted url",
54
+ "beJSON": "{fieldName} must be correctly formatted JSON",
55
+ "beEmail": "{fieldName} must be a correctly formatted e-mail address",
56
+ "failed": "Validation failed",
57
+ "failedObject": "Validation of \"{objectName}\" failed"
58
+ },
59
+ "guard": {
60
+ "undefined": "Property \"{property}\" must be defined, it is \"{value}\"",
61
+ "string": "Property \"{property}\" must be a string, it is \"{value}\"",
62
+ "stringEmpty": "Property \"{property}\" must have a value, it is empty",
63
+ "stringBase64": "Property \"{property}\" must be a base64 encoded string, it is \"{value}\"",
64
+ "stringBase64Url": "Property \"{property}\" must be a base64 url encoded string, it is \"{value}\"",
65
+ "stringBase58": "Property \"{property}\" must be a base58 encoded string, it is \"{value}\"",
66
+ "stringHex": "Property \"{property}\" must be a hex string, it is \"{value}\"",
67
+ "stringHexLength": "Property \"{property}\" must be a hex string of length \"{options}\", it is \"{value}\"",
68
+ "stringJson": "Property \"{property}\" must be a JSON string",
69
+ "number": "Property \"{property}\" must be a number, it is \"{value}\"",
70
+ "integer": "Property \"{property}\" must be an integer, it is \"{value}\"",
71
+ "bigint": "Property \"{property}\" must be a bigint, it is \"{value}\"",
72
+ "boolean": "Property \"{property}\" must be a boolean, it is \"{value}\"",
73
+ "date": "Property \"{property}\" must be a date, it is \"{value}\"",
74
+ "timestampMilliseconds": "Property \"{property}\" must be a timestamp in milliseconds, it is \"{value}\"",
75
+ "timestampSeconds": "Property \"{property}\" must be a timestamp in seconds, it is \"{value}\"",
76
+ "objectUndefined": "Property \"{property}\" must be an object, it is \"undefined\"",
77
+ "object": "Property \"{property}\" must be an object, it is \"{value}\"",
78
+ "objectValue": "Property \"{property}\" must be an object, with at least one property, it is \"{value}\"",
79
+ "array": "Property \"{property}\" must be an array, it is \"{value}\"",
80
+ "arrayValue": "Property \"{property}\" must be an array with at least one item",
81
+ "arrayOneOf": "Property \"{property}\" must be one of [{options}], it is \"{value}\"",
82
+ "arrayStartsWith": "Property \"{property}\" must be an array starting with [{startValues}], it is \"{value}\"",
83
+ "arrayEndsWith": "Property \"{property}\" must be an array ending with [{endValues}], it is \"{value}\"",
84
+ "uint8Array": "Property \"{property}\" must be a Uint8Array, it is \"{value}\"",
85
+ "function": "Property \"{property}\" must be a function, it is \"{value}\"",
86
+ "urn": "Property \"{property}\" must be a Urn formatted string, it is \"{value}\"",
87
+ "url": "Property \"{property}\" must be a Url formatted string, it is \"{value}\"",
88
+ "email": "Property \"{property}\" must be string in e-mail format, it is \"{value}\"",
89
+ "length32Multiple": "Property \"{property}\" should be a multiple of 32, it is {value}",
90
+ "lengthEntropy": "Property \"{property}\" should be a multiple of 4, >=16 and <= 32, it is {value}",
91
+ "length3Multiple": "Property \"{property}\" should be a multiple of 3, it is {value}",
92
+ "greaterThan0": "Property \"{property}\" must be greater than zero, it is {value}"
93
+ },
94
+ "objectHelper": {
95
+ "failedBytesToJSON": "Failed converting bytes to JSON",
96
+ "cannotSetArrayIndex": "Cannot set property \"{property}\" using index \"{index}\" as it is not an array",
97
+ "cannotSetProperty": "Cannot set property \"{property}\" when the target is not an object"
98
+ },
99
+ "common": {
100
+ "notImplementedMethod": "The method \"{method}\" has not been implemented",
101
+ "validation": "Validation failed"
102
+ },
103
+ "factory": {
104
+ "noUnregister": "There is no {typeName} registered with the name \"{name}\"",
105
+ "noGet": "The requested {typeName} \"{name}\" does not exist in the factory"
106
+ },
107
+ "bitString": {
108
+ "outOfRange": "The index should be >= 0 and less than the length of the bit string"
109
+ },
110
+ "base32": {
111
+ "invalidCharacter": "Data contains a character \"{invalidCharacter}\" which is not in the charset"
112
+ },
113
+ "base64": {
114
+ "length4Multiple": "Invalid length should be a multiple of 4, it is \"{value}\""
115
+ },
116
+ "base58": {
117
+ "invalidCharacter": "Data contains a character \"{invalidCharacter}\" which is not in the charset"
118
+ },
119
+ "jsonHelper": {
120
+ "failedPatch": "Failed to patch the JSON object, patch index \"{index}\" failed"
121
+ },
122
+ "bip39": {
123
+ "missingMnemonicWord": "The mnemonic contains a word not in the wordlist, \"{value}\"",
124
+ "checksumMismatch": "The checksum does not match \"{newChecksum}\" != \"{checksumBits}\""
125
+ },
126
+ "ed25519": {
127
+ "privateKeyLength": "The private key length is incorrect, it should be \"{requiredSize}\" but is \"{actualSize}\"",
128
+ "publicKeyLength": "The public key length is incorrect, it should be \"{requiredSize}\" but is \"{actualSize}\""
129
+ },
130
+ "secp256k1": {
131
+ "privateKeyLength": "The private key length is incorrect, it should be \"{requiredSize}\" but is \"{actualSize}\"",
132
+ "publicKeyLength": "The public key length is incorrect, it should be \"{requiredSize}\" but is \"{actualSize}\""
133
+ },
134
+ "x25519": {
135
+ "invalidPublicKey": "Invalid Ed25519 Public Key"
136
+ },
137
+ "blake2b": {
138
+ "outputLength64": "The output length should be between 1 and 64, it is \"{outputLength}\"",
139
+ "keyLength64": "The key length should be between 1 and 64, it is \"{keyLength}\""
140
+ },
141
+ "sha512": {
142
+ "bitSize": "Only 224, 256, 384 or 512 bits are supported, it is \"{bitSize}\""
143
+ },
144
+ "sha256": {
145
+ "bitSize": "Only 224 or 256 bits are supported, it is \"{bitSize}\""
146
+ },
147
+ "sha3": {
148
+ "bitSize": "Only 224, 256, 384 or 512 bits are supported, it is \"{bitSize}\""
149
+ },
150
+ "hmacSha256": {
151
+ "bitSize": "Only 224 or 256 bits are supported, it is \"{bitSize}\""
152
+ },
153
+ "hmacSha512": {
154
+ "bitSize": "Only 224, 256, 384 or 512 bits are supported, it is \"{bitSize}\""
155
+ },
156
+ "bech32": {
157
+ "decodeFailed": "The address contains decoding failed for address \"{bech32}\"",
158
+ "invalidChecksum": "The address contains an invalid checksum in address, \"{bech32}\"",
159
+ "separatorMisused": "The separator character '1' should only be used between hrp and data, \"{bech32}\"",
160
+ "lowerUpper": "The address my use either lowercase or uppercase, \"{bech32}\"",
161
+ "dataTooShort": "The address does not contain enough data to decode, \"{bech32}\""
162
+ },
163
+ "pbkdf2": {
164
+ "keyTooLong": "The requested key length \"{keyLength}\" is too long, based on the \"{macLength}\""
165
+ },
166
+ "chaCha20Poly1305": {
167
+ "noAadWithData": "You can not set the aad when there is already data",
168
+ "noAuthTag": "Can not finalise when the auth tag is not set",
169
+ "authenticationFailed": "The data could not be authenticated",
170
+ "authTagDecrypting": "Can not get the auth tag when decrypting",
171
+ "authTagEncrypting": "Can not set the auth tag when encrypting",
172
+ "noAuthTagSet": "The auth tag has not been set"
173
+ },
174
+ "bip44": {
175
+ "unsupportedKeyType": "The key type \"{keyType}\" is not supported"
176
+ },
177
+ "slip0010": {
178
+ "invalidSeed": "The seed is invalid \"{seed}\""
179
+ },
180
+ "rsa": {
181
+ "noPrivateKey": "Private key is required for this operation",
182
+ "invalidKeySize": "Invalid RSA key size"
183
+ }
184
+ },
185
+ "warn": {
186
+ "common": {
187
+ "devOnlyTool": "This tool is intended to be used for development purposes, it is not recommended for use in production scenarios."
188
+ }
189
+ },
190
+ "cli": {
191
+ "progress": {
192
+ "done": "Done.",
193
+ "error": "Error",
194
+ "loadingEnvFiles": "Loading env files",
195
+ "pleaseWait": "Please wait...",
196
+ "writingJsonFile": "Writing JSON file",
197
+ "writingEnvFile": "Writing env file",
198
+ "readingJsonFile": "Reading JSON file",
199
+ "readingEnvFile": "Reading env file"
200
+ },
201
+ "options": {
202
+ "lang": {
203
+ "param": "--lang '<'lang'>'",
204
+ "description": "The language to display the output in."
205
+ },
206
+ "load-env": {
207
+ "param": "--load-env [env...]",
208
+ "description": "Load the env files to initialise any environment variables."
209
+ },
210
+ "no-console": {
211
+ "param": "--no-console",
212
+ "description": "Hides the output in the console."
213
+ },
214
+ "json": {
215
+ "param": "--json '<'filename'>'",
216
+ "description": "Creates a JSON file containing the output."
217
+ },
218
+ "env": {
219
+ "param": "--env '<'filename'>'",
220
+ "description": "Creates an env file containing the output."
221
+ },
222
+ "merge-json": {
223
+ "param": "--merge-json",
224
+ "description": "If the JSON file already exists merge the data instead of overwriting."
225
+ },
226
+ "merge-env": {
227
+ "param": "--merge-env",
228
+ "description": "If the env file already exists merge the data instead of overwriting."
229
+ }
230
+ }
231
+ },
232
+ "errorNames": {
233
+ "error": "Error",
234
+ "generalError": "General",
235
+ "guardError": "Guard",
236
+ "conflictError": "Conflict",
237
+ "notFoundError": "Not Found",
238
+ "notSupportedError": "Not Supported",
239
+ "alreadyExistsError": "Already Exists",
240
+ "notImplementedError": "Not Implemented",
241
+ "validationError": "Validation",
242
+ "unprocessableError": "Unprocessable"
243
+ },
244
+ "validation": {
245
+ "defaultFieldName": "The field"
246
+ },
247
+ "commands": {
248
+ "merge-locales": {
249
+ "options": {
250
+ "config": {
251
+ "param": "--config '<'file'>'",
252
+ "description": "Path to the JSON configuration file."
253
+ }
254
+ },
255
+ "progress": {
256
+ "loadingConfigJson": "Loading Config JSON",
257
+ "creatingOutputDirectory": "Creating Output Directory",
258
+ "writingMergedLocales": "Writing Merged Locales",
259
+ "mergingLocalesForPackage": "Merging Locales for Package"
260
+ },
261
+ "labels": {
262
+ "configJson": "Config JSON",
263
+ "workingDirectory": "Working Directory",
264
+ "outputDirectory": "Output Directory",
265
+ "npmRoot": "NPM Root",
266
+ "sourcePackages": "Source Packages",
267
+ "writingLocale": "Writing Locale",
268
+ "mergingLocale": "Merging Locale"
269
+ }
270
+ }
271
+ }
272
+ }
@@ -12,4 +12,10 @@ export interface IPackageJson {
12
12
  dependencies?: {
13
13
  [id: string]: string;
14
14
  };
15
+ /**
16
+ * The peer dependencies for the package.
17
+ */
18
+ peerDependencies?: {
19
+ [id: string]: string;
20
+ };
15
21
  }
package/docs/changelog.md CHANGED
@@ -1,5 +1,470 @@
1
1
  # @twin.org/ts-to-openapi - Changelog
2
2
 
3
- ## v0.0.1-next.9
3
+ ## [0.0.2-next.10](https://github.com/twinfoundation/framework/compare/merge-locales-v0.0.2-next.9...merge-locales-v0.0.2-next.10) (2025-09-11)
4
+
5
+
6
+ ### Miscellaneous Chores
7
+
8
+ * **merge-locales:** Synchronize repo versions
9
+
10
+
11
+ ### Dependencies
12
+
13
+ * The following workspace dependencies were updated
14
+ * dependencies
15
+ * @twin.org/cli-core bumped from 0.0.2-next.9 to 0.0.2-next.10
16
+ * @twin.org/core bumped from 0.0.2-next.9 to 0.0.2-next.10
17
+ * @twin.org/nameof bumped from 0.0.2-next.9 to 0.0.2-next.10
18
+ * devDependencies
19
+ * @twin.org/nameof-transformer bumped from 0.0.2-next.9 to 0.0.2-next.10
20
+ * @twin.org/nameof-vitest-plugin bumped from 0.0.2-next.9 to 0.0.2-next.10
21
+
22
+ ## [0.0.2-next.9](https://github.com/twinfoundation/framework/compare/merge-locales-v0.0.2-next.8...merge-locales-v0.0.2-next.9) (2025-09-08)
23
+
24
+
25
+ ### Miscellaneous Chores
26
+
27
+ * **merge-locales:** Synchronize repo versions
28
+
29
+
30
+ ### Dependencies
31
+
32
+ * The following workspace dependencies were updated
33
+ * dependencies
34
+ * @twin.org/cli-core bumped from 0.0.2-next.8 to 0.0.2-next.9
35
+ * @twin.org/core bumped from 0.0.2-next.8 to 0.0.2-next.9
36
+ * @twin.org/nameof bumped from 0.0.2-next.8 to 0.0.2-next.9
37
+ * devDependencies
38
+ * @twin.org/nameof-transformer bumped from 0.0.2-next.8 to 0.0.2-next.9
39
+ * @twin.org/nameof-vitest-plugin bumped from 0.0.2-next.8 to 0.0.2-next.9
40
+
41
+ ## [0.0.2-next.8](https://github.com/twinfoundation/framework/compare/merge-locales-v0.0.2-next.7...merge-locales-v0.0.2-next.8) (2025-09-05)
42
+
43
+
44
+ ### Miscellaneous Chores
45
+
46
+ * **merge-locales:** Synchronize repo versions
47
+
48
+
49
+ ### Dependencies
50
+
51
+ * The following workspace dependencies were updated
52
+ * dependencies
53
+ * @twin.org/cli-core bumped from 0.0.2-next.7 to 0.0.2-next.8
54
+ * @twin.org/core bumped from 0.0.2-next.7 to 0.0.2-next.8
55
+ * @twin.org/nameof bumped from 0.0.2-next.7 to 0.0.2-next.8
56
+ * devDependencies
57
+ * @twin.org/nameof-transformer bumped from 0.0.2-next.7 to 0.0.2-next.8
58
+ * @twin.org/nameof-vitest-plugin bumped from 0.0.2-next.7 to 0.0.2-next.8
59
+
60
+ ## [0.0.2-next.7](https://github.com/twinfoundation/framework/compare/merge-locales-v0.0.2-next.6...merge-locales-v0.0.2-next.7) (2025-08-29)
61
+
62
+
63
+ ### Features
64
+
65
+ * eslint migration to flat config ([74427d7](https://github.com/twinfoundation/framework/commit/74427d78d342167f7850e49ab87269326355befe))
66
+
67
+
68
+ ### Dependencies
69
+
70
+ * The following workspace dependencies were updated
71
+ * dependencies
72
+ * @twin.org/cli-core bumped from 0.0.2-next.6 to 0.0.2-next.7
73
+ * @twin.org/core bumped from 0.0.2-next.6 to 0.0.2-next.7
74
+ * @twin.org/nameof bumped from 0.0.2-next.6 to 0.0.2-next.7
75
+ * devDependencies
76
+ * @twin.org/nameof-transformer bumped from 0.0.2-next.6 to 0.0.2-next.7
77
+ * @twin.org/nameof-vitest-plugin bumped from 0.0.2-next.6 to 0.0.2-next.7
78
+
79
+ ## [0.0.2-next.6](https://github.com/twinfoundation/framework/compare/merge-locales-v0.0.2-next.5...merge-locales-v0.0.2-next.6) (2025-08-27)
80
+
81
+
82
+ ### Miscellaneous Chores
83
+
84
+ * **merge-locales:** Synchronize repo versions
85
+
86
+
87
+ ### Dependencies
88
+
89
+ * The following workspace dependencies were updated
90
+ * dependencies
91
+ * @twin.org/cli-core bumped from 0.0.2-next.5 to 0.0.2-next.6
92
+ * @twin.org/core bumped from 0.0.2-next.5 to 0.0.2-next.6
93
+ * @twin.org/nameof bumped from 0.0.2-next.5 to 0.0.2-next.6
94
+ * devDependencies
95
+ * @twin.org/nameof-transformer bumped from 0.0.2-next.5 to 0.0.2-next.6
96
+ * @twin.org/nameof-vitest-plugin bumped from 0.0.2-next.5 to 0.0.2-next.6
97
+
98
+ ## [0.0.2-next.5](https://github.com/twinfoundation/framework/compare/merge-locales-v0.0.2-next.4...merge-locales-v0.0.2-next.5) (2025-08-19)
99
+
100
+
101
+ ### Features
102
+
103
+ * use cause instead of inner for errors ([1f4acc4](https://github.com/twinfoundation/framework/commit/1f4acc4d7a6b71a134d9547da9bf40de1e1e49da))
104
+
105
+
106
+ ### Dependencies
107
+
108
+ * The following workspace dependencies were updated
109
+ * dependencies
110
+ * @twin.org/cli-core bumped from 0.0.2-next.4 to 0.0.2-next.5
111
+ * @twin.org/core bumped from 0.0.2-next.4 to 0.0.2-next.5
112
+ * @twin.org/nameof bumped from 0.0.2-next.4 to 0.0.2-next.5
113
+ * devDependencies
114
+ * @twin.org/nameof-transformer bumped from 0.0.2-next.4 to 0.0.2-next.5
115
+ * @twin.org/nameof-vitest-plugin bumped from 0.0.2-next.4 to 0.0.2-next.5
116
+
117
+ ## [0.0.2-next.4](https://github.com/twinfoundation/framework/compare/merge-locales-v0.0.2-next.3...merge-locales-v0.0.2-next.4) (2025-08-15)
118
+
119
+
120
+ ### Miscellaneous Chores
121
+
122
+ * **merge-locales:** Synchronize repo versions
123
+
124
+
125
+ ### Dependencies
126
+
127
+ * The following workspace dependencies were updated
128
+ * dependencies
129
+ * @twin.org/cli-core bumped from 0.0.2-next.3 to 0.0.2-next.4
130
+ * @twin.org/core bumped from 0.0.2-next.3 to 0.0.2-next.4
131
+ * @twin.org/nameof bumped from 0.0.2-next.3 to 0.0.2-next.4
132
+ * devDependencies
133
+ * @twin.org/nameof-transformer bumped from 0.0.2-next.3 to 0.0.2-next.4
134
+ * @twin.org/nameof-vitest-plugin bumped from 0.0.2-next.3 to 0.0.2-next.4
135
+
136
+ ## [0.0.2-next.3](https://github.com/twinfoundation/framework/compare/merge-locales-v0.0.2-next.2...merge-locales-v0.0.2-next.3) (2025-08-06)
137
+
138
+
139
+ ### Features
140
+
141
+ * relocate core packages from tools ([bcab8f3](https://github.com/twinfoundation/framework/commit/bcab8f3160442ea4fcaf442947462504f3d6a17d))
142
+ * update dependencies ([f3bd015](https://github.com/twinfoundation/framework/commit/f3bd015efd169196b7e0335f5cab876ba6ca1d75))
143
+
144
+
145
+ ### Bug Fixes
146
+
147
+ * repo urls in package.json for moved packages ([31ae463](https://github.com/twinfoundation/framework/commit/31ae463095dfa8c0e48bb5bb12316f1e8abb9a4c))
148
+
149
+
150
+ ### Dependencies
151
+
152
+ * The following workspace dependencies were updated
153
+ * dependencies
154
+ * @twin.org/cli-core bumped from 0.0.2-next.2 to 0.0.2-next.3
155
+ * @twin.org/core bumped from 0.0.2-next.2 to 0.0.2-next.3
156
+ * @twin.org/nameof bumped from 0.0.2-next.2 to 0.0.2-next.3
157
+ * devDependencies
158
+ * @twin.org/nameof-transformer bumped from 0.0.2-next.2 to 0.0.2-next.3
159
+ * @twin.org/nameof-vitest-plugin bumped from 0.0.2-next.2 to 0.0.2-next.3
160
+
161
+ ## [0.0.2-next.2](https://github.com/twinfoundation/framework/compare/merge-locales-v0.0.2-next.1...merge-locales-v0.0.2-next.2) (2025-08-06)
162
+
163
+
164
+ ### Features
165
+
166
+ * relocate core packages from tools ([bcab8f3](https://github.com/twinfoundation/framework/commit/bcab8f3160442ea4fcaf442947462504f3d6a17d))
167
+ * update dependencies ([f3bd015](https://github.com/twinfoundation/framework/commit/f3bd015efd169196b7e0335f5cab876ba6ca1d75))
168
+
169
+
170
+ ### Bug Fixes
171
+
172
+ * repo urls in package.json for moved packages ([31ae463](https://github.com/twinfoundation/framework/commit/31ae463095dfa8c0e48bb5bb12316f1e8abb9a4c))
173
+
174
+
175
+ ### Dependencies
176
+
177
+ * The following workspace dependencies were updated
178
+ * dependencies
179
+ * @twin.org/cli-core bumped from 0.0.2-next.1 to 0.0.2-next.2
180
+ * @twin.org/core bumped from 0.0.2-next.1 to 0.0.2-next.2
181
+ * @twin.org/nameof bumped from 0.0.2-next.1 to 0.0.2-next.2
182
+ * devDependencies
183
+ * @twin.org/nameof-transformer bumped from 0.0.2-next.1 to 0.0.2-next.2
184
+ * @twin.org/nameof-vitest-plugin bumped from 0.0.2-next.1 to 0.0.2-next.2
185
+
186
+ ## [0.0.2-next.1](https://github.com/twinfoundation/framework/compare/merge-locales-v0.0.2-next.0...merge-locales-v0.0.2-next.1) (2025-08-06)
187
+
188
+
189
+ ### Features
190
+
191
+ * relocate core packages from tools ([bcab8f3](https://github.com/twinfoundation/framework/commit/bcab8f3160442ea4fcaf442947462504f3d6a17d))
192
+ * update dependencies ([f3bd015](https://github.com/twinfoundation/framework/commit/f3bd015efd169196b7e0335f5cab876ba6ca1d75))
193
+
194
+
195
+ ### Bug Fixes
196
+
197
+ * repo urls in package.json for moved packages ([31ae463](https://github.com/twinfoundation/framework/commit/31ae463095dfa8c0e48bb5bb12316f1e8abb9a4c))
198
+
199
+
200
+ ### Dependencies
201
+
202
+ * The following workspace dependencies were updated
203
+ * dependencies
204
+ * @twin.org/cli-core bumped from 0.0.2-next.0 to 0.0.2-next.1
205
+ * @twin.org/core bumped from 0.0.2-next.0 to 0.0.2-next.1
206
+ * @twin.org/nameof bumped from 0.0.2-next.0 to 0.0.2-next.1
207
+ * devDependencies
208
+ * @twin.org/nameof-transformer bumped from 0.0.2-next.0 to 0.0.2-next.1
209
+ * @twin.org/nameof-vitest-plugin bumped from 0.0.2-next.0 to 0.0.2-next.1
210
+
211
+ ## 0.0.1 (2025-07-03)
212
+
213
+
214
+ ### Features
215
+
216
+ * release to production ([829d53d](https://github.com/twinfoundation/framework/commit/829d53d3953b1e1b40b0243c04cfdfd3842aac7b))
217
+ * release to production ([5cf3a76](https://github.com/twinfoundation/framework/commit/5cf3a76a09eff2e6414d0cba846c7c37400a11d6))
218
+
219
+
220
+ ### Dependencies
221
+
222
+ * The following workspace dependencies were updated
223
+ * dependencies
224
+ * @twin.org/cli-core bumped from ^0.0.0 to ^0.0.1
225
+ * @twin.org/core bumped from ^0.0.0 to ^0.0.1
226
+ * @twin.org/nameof bumped from ^0.0.0 to ^0.0.1
227
+ * devDependencies
228
+ * @twin.org/nameof-transformer bumped from ^0.0.0 to ^0.0.1
229
+ * @twin.org/nameof-vitest-plugin bumped from ^0.0.0 to ^0.0.1
230
+
231
+ ## [0.0.1-next.70](https://github.com/twinfoundation/framework/compare/merge-locales-v0.0.1-next.69...merge-locales-v0.0.1-next.70) (2025-07-02)
232
+
233
+
234
+ ### Features
235
+
236
+ * relocate core packages from tools ([bcab8f3](https://github.com/twinfoundation/framework/commit/bcab8f3160442ea4fcaf442947462504f3d6a17d))
237
+
238
+
239
+ ### Bug Fixes
240
+
241
+ * repo urls in package.json for moved packages ([31ae463](https://github.com/twinfoundation/framework/commit/31ae463095dfa8c0e48bb5bb12316f1e8abb9a4c))
242
+
243
+
244
+ ### Dependencies
245
+
246
+ * The following workspace dependencies were updated
247
+ * dependencies
248
+ * @twin.org/cli-core bumped from 0.0.1-next.69 to 0.0.1-next.70
249
+ * @twin.org/core bumped from 0.0.1-next.69 to 0.0.1-next.70
250
+ * @twin.org/nameof bumped from 0.0.1-next.69 to 0.0.1-next.70
251
+ * devDependencies
252
+ * @twin.org/nameof-transformer bumped from 0.0.1-next.69 to 0.0.1-next.70
253
+ * @twin.org/nameof-vitest-plugin bumped from 0.0.1-next.69 to 0.0.1-next.70
254
+
255
+ ## [0.0.1-next.69](https://github.com/twinfoundation/framework/compare/merge-locales-v0.0.1-next.68...merge-locales-v0.0.1-next.69) (2025-07-02)
256
+
257
+
258
+ ### Features
259
+
260
+ * relocate core packages from tools ([bcab8f3](https://github.com/twinfoundation/framework/commit/bcab8f3160442ea4fcaf442947462504f3d6a17d))
261
+
262
+
263
+ ### Bug Fixes
264
+
265
+ * repo urls in package.json for moved packages ([31ae463](https://github.com/twinfoundation/framework/commit/31ae463095dfa8c0e48bb5bb12316f1e8abb9a4c))
266
+
267
+
268
+ ### Dependencies
269
+
270
+ * The following workspace dependencies were updated
271
+ * dependencies
272
+ * @twin.org/cli-core bumped from 0.0.1-next.68 to 0.0.1-next.69
273
+ * @twin.org/core bumped from 0.0.1-next.68 to 0.0.1-next.69
274
+ * @twin.org/nameof bumped from 0.0.1-next.68 to 0.0.1-next.69
275
+ * devDependencies
276
+ * @twin.org/nameof-transformer bumped from 0.0.1-next.68 to 0.0.1-next.69
277
+ * @twin.org/nameof-vitest-plugin bumped from 0.0.1-next.68 to 0.0.1-next.69
278
+
279
+ ## [0.0.1-next.68](https://github.com/twinfoundation/framework/compare/merge-locales-v0.0.1-next.67...merge-locales-v0.0.1-next.68) (2025-07-02)
280
+
281
+
282
+ ### Features
283
+
284
+ * relocate core packages from tools ([bcab8f3](https://github.com/twinfoundation/framework/commit/bcab8f3160442ea4fcaf442947462504f3d6a17d))
285
+
286
+
287
+ ### Dependencies
288
+
289
+ * The following workspace dependencies were updated
290
+ * dependencies
291
+ * @twin.org/cli-core bumped from 0.0.1-next.67 to 0.0.1-next.68
292
+ * @twin.org/core bumped from 0.0.1-next.67 to 0.0.1-next.68
293
+ * @twin.org/nameof bumped from 0.0.1-next.67 to 0.0.1-next.68
294
+ * devDependencies
295
+ * @twin.org/nameof-transformer bumped from 0.0.1-next.67 to 0.0.1-next.68
296
+ * @twin.org/nameof-vitest-plugin bumped from 0.0.1-next.67 to 0.0.1-next.68
297
+
298
+ ## [0.0.1-next.28](https://github.com/twinfoundation/tools/compare/merge-locales-v0.0.1-next.27...merge-locales-v0.0.1-next.28) (2025-06-18)
299
+
300
+
301
+ ### Miscellaneous Chores
302
+
303
+ * **merge-locales:** Synchronize repo versions
304
+
305
+
306
+ ### Dependencies
307
+
308
+ * The following workspace dependencies were updated
309
+ * dependencies
310
+ * @twin.org/nameof bumped from 0.0.1-next.27 to 0.0.1-next.28
311
+ * devDependencies
312
+ * @twin.org/nameof-transformer bumped from 0.0.1-next.27 to 0.0.1-next.28
313
+ * @twin.org/nameof-vitest-plugin bumped from 0.0.1-next.27 to 0.0.1-next.28
314
+
315
+ ## [0.0.1-next.27](https://github.com/twinfoundation/tools/compare/merge-locales-v0.0.1-next.26...merge-locales-v0.0.1-next.27) (2025-06-17)
316
+
317
+
318
+ ### Miscellaneous Chores
319
+
320
+ * **merge-locales:** Synchronize repo versions
321
+
322
+
323
+ ### Dependencies
324
+
325
+ * The following workspace dependencies were updated
326
+ * dependencies
327
+ * @twin.org/nameof bumped from 0.0.1-next.26 to 0.0.1-next.27
328
+ * devDependencies
329
+ * @twin.org/nameof-transformer bumped from 0.0.1-next.26 to 0.0.1-next.27
330
+ * @twin.org/nameof-vitest-plugin bumped from 0.0.1-next.26 to 0.0.1-next.27
331
+
332
+ ## [0.0.1-next.26](https://github.com/twinfoundation/tools/compare/merge-locales-v0.0.1-next.25...merge-locales-v0.0.1-next.26) (2025-06-11)
333
+
334
+
335
+ ### Miscellaneous Chores
336
+
337
+ * **merge-locales:** Synchronize repo versions
338
+
339
+
340
+ ### Dependencies
341
+
342
+ * The following workspace dependencies were updated
343
+ * dependencies
344
+ * @twin.org/nameof bumped from 0.0.1-next.25 to 0.0.1-next.26
345
+ * devDependencies
346
+ * @twin.org/nameof-transformer bumped from 0.0.1-next.25 to 0.0.1-next.26
347
+ * @twin.org/nameof-vitest-plugin bumped from 0.0.1-next.25 to 0.0.1-next.26
348
+
349
+ ## [0.0.1-next.25](https://github.com/twinfoundation/tools/compare/merge-locales-v0.0.1-next.24...merge-locales-v0.0.1-next.25) (2025-06-10)
350
+
351
+
352
+ ### Features
353
+
354
+ * add ts-to-schema overrides ([3c54504](https://github.com/twinfoundation/tools/commit/3c5450468eb998204a75576b7791a7ca4027da62))
355
+
356
+
357
+ ### Dependencies
358
+
359
+ * The following workspace dependencies were updated
360
+ * dependencies
361
+ * @twin.org/nameof bumped from 0.0.1-next.24 to 0.0.1-next.25
362
+ * devDependencies
363
+ * @twin.org/nameof-transformer bumped from 0.0.1-next.24 to 0.0.1-next.25
364
+ * @twin.org/nameof-vitest-plugin bumped from 0.0.1-next.24 to 0.0.1-next.25
365
+
366
+ ## [0.0.1-next.24](https://github.com/twinfoundation/tools/compare/merge-locales-v0.0.1-next.23...merge-locales-v0.0.1-next.24) (2025-06-05)
367
+
368
+
369
+ ### Miscellaneous Chores
370
+
371
+ * **merge-locales:** Synchronize repo versions
372
+
373
+
374
+ ### Dependencies
375
+
376
+ * The following workspace dependencies were updated
377
+ * dependencies
378
+ * @twin.org/nameof bumped from 0.0.1-next.23 to 0.0.1-next.24
379
+ * devDependencies
380
+ * @twin.org/nameof-transformer bumped from 0.0.1-next.23 to 0.0.1-next.24
381
+ * @twin.org/nameof-vitest-plugin bumped from 0.0.1-next.23 to 0.0.1-next.24
382
+
383
+ ## [0.0.1-next.23](https://github.com/twinfoundation/tools/compare/merge-locales-v0.0.1-next.22...merge-locales-v0.0.1-next.23) (2025-06-03)
384
+
385
+
386
+ ### Miscellaneous Chores
387
+
388
+ * **merge-locales:** Synchronize repo versions
389
+
390
+
391
+ ### Dependencies
392
+
393
+ * The following workspace dependencies were updated
394
+ * dependencies
395
+ * @twin.org/nameof bumped from 0.0.1-next.22 to 0.0.1-next.23
396
+ * devDependencies
397
+ * @twin.org/nameof-transformer bumped from 0.0.1-next.22 to 0.0.1-next.23
398
+ * @twin.org/nameof-vitest-plugin bumped from 0.0.1-next.22 to 0.0.1-next.23
399
+
400
+ ## [0.0.1-next.22](https://github.com/twinfoundation/tools/compare/merge-locales-v0.0.1-next.21...merge-locales-v0.0.1-next.22) (2025-06-03)
401
+
402
+
403
+ ### Miscellaneous Chores
404
+
405
+ * **merge-locales:** Synchronize repo versions
406
+
407
+
408
+ ### Dependencies
409
+
410
+ * The following workspace dependencies were updated
411
+ * dependencies
412
+ * @twin.org/nameof bumped from 0.0.1-next.21 to 0.0.1-next.22
413
+ * devDependencies
414
+ * @twin.org/nameof-transformer bumped from 0.0.1-next.21 to 0.0.1-next.22
415
+ * @twin.org/nameof-vitest-plugin bumped from 0.0.1-next.21 to 0.0.1-next.22
416
+
417
+ ## [0.0.1-next.21](https://github.com/twinfoundation/tools/compare/merge-locales-v0.0.1-next.20...merge-locales-v0.0.1-next.21) (2025-04-17)
418
+
419
+
420
+ ### Features
421
+
422
+ * use shared store mechanism ([#31](https://github.com/twinfoundation/tools/issues/31)) ([d9fe68b](https://github.com/twinfoundation/tools/commit/d9fe68b903d1268c7cb3c64772df5cb78fd63667))
423
+
424
+
425
+ ### Dependencies
426
+
427
+ * The following workspace dependencies were updated
428
+ * dependencies
429
+ * @twin.org/nameof bumped from 0.0.1-next.20 to 0.0.1-next.21
430
+ * devDependencies
431
+ * @twin.org/nameof-transformer bumped from 0.0.1-next.20 to 0.0.1-next.21
432
+ * @twin.org/nameof-vitest-plugin bumped from 0.0.1-next.20 to 0.0.1-next.21
433
+
434
+ ## [0.0.1-next.20](https://github.com/twinfoundation/tools/compare/merge-locales-v0.0.1-next.19...merge-locales-v0.0.1-next.20) (2025-03-28)
435
+
436
+
437
+ ### Miscellaneous Chores
438
+
439
+ * **merge-locales:** Synchronize repo versions
440
+
441
+
442
+ ### Dependencies
443
+
444
+ * The following workspace dependencies were updated
445
+ * dependencies
446
+ * @twin.org/nameof bumped from 0.0.1-next.19 to 0.0.1-next.20
447
+ * devDependencies
448
+ * @twin.org/nameof-transformer bumped from 0.0.1-next.19 to 0.0.1-next.20
449
+ * @twin.org/nameof-vitest-plugin bumped from 0.0.1-next.19 to 0.0.1-next.20
450
+
451
+ ## [0.0.1-next.19](https://github.com/twinfoundation/tools/compare/merge-locales-v0.0.1-next.18...merge-locales-v0.0.1-next.19) (2025-03-26)
452
+
453
+
454
+ ### Miscellaneous Chores
455
+
456
+ * **merge-locales:** Synchronize repo versions
457
+
458
+
459
+ ### Dependencies
460
+
461
+ * The following workspace dependencies were updated
462
+ * dependencies
463
+ * @twin.org/nameof bumped from 0.0.1-next.18 to 0.0.1-next.19
464
+ * devDependencies
465
+ * @twin.org/nameof-transformer bumped from 0.0.1-next.18 to 0.0.1-next.19
466
+ * @twin.org/nameof-vitest-plugin bumped from 0.0.1-next.18 to 0.0.1-next.19
467
+
468
+ ## v0.0.1-next.18
4
469
 
5
470
  - Initial Release
@@ -8,13 +8,13 @@ The main entry point for the CLI.
8
8
 
9
9
  ## Constructors
10
10
 
11
- ### new CLI()
11
+ ### Constructor
12
12
 
13
- > **new CLI**(): [`CLI`](CLI.md)
13
+ > **new CLI**(): `CLI`
14
14
 
15
15
  #### Returns
16
16
 
17
- [`CLI`](CLI.md)
17
+ `CLI`
18
18
 
19
19
  #### Inherited from
20
20
 
@@ -24,25 +24,31 @@ The main entry point for the CLI.
24
24
 
25
25
  ### run()
26
26
 
27
- > **run**(`argv`, `localesDirectory`?, `options`?): `Promise`\<`number`\>
27
+ > **run**(`argv`, `localesDirectory?`, `options?`): `Promise`\<`number`\>
28
28
 
29
29
  Run the app.
30
30
 
31
31
  #### Parameters
32
32
 
33
- **argv**: `string`[]
33
+ ##### argv
34
+
35
+ `string`[]
34
36
 
35
37
  The process arguments.
36
38
 
37
- **localesDirectory?**: `string`
39
+ ##### localesDirectory?
40
+
41
+ `string`
38
42
 
39
43
  The directory for the locales, default to relative to the script.
40
44
 
41
- **options?**
45
+ ##### options?
42
46
 
43
47
  Additional options.
44
48
 
45
- **options.overrideOutputWidth?**: `number`
49
+ ###### overrideOutputWidth?
50
+
51
+ `number`
46
52
 
47
53
  Override the output width.
48
54
 
@@ -62,7 +68,9 @@ Configure any options or actions at the root program level.
62
68
 
63
69
  #### Parameters
64
70
 
65
- **program**: `Command`
71
+ ##### program
72
+
73
+ `Command`
66
74
 
67
75
  The root program command.
68
76
 
@@ -6,11 +6,13 @@ Action the root command.
6
6
 
7
7
  ## Parameters
8
8
 
9
- **opts**
9
+ ### opts
10
10
 
11
11
  The options for the command.
12
12
 
13
- **opts.config?**: `string`
13
+ #### config?
14
+
15
+ `string`
14
16
 
15
17
  The optional configuration file.
16
18
 
@@ -6,7 +6,9 @@ Build the root command to be consumed by the CLI.
6
6
 
7
7
  ## Parameters
8
8
 
9
- **program**: `Command`
9
+ ### program
10
+
11
+ `Command`
10
12
 
11
13
  The command to build on.
12
14
 
@@ -6,11 +6,15 @@ Merge the locales.
6
6
 
7
7
  ## Parameters
8
8
 
9
- **workingDirectory**: `string`
9
+ ### workingDirectory
10
+
11
+ `string`
10
12
 
11
13
  The folder the app was run from.
12
14
 
13
- **config**: [`IMergeLocalesConfig`](../interfaces/IMergeLocalesConfig.md)
15
+ ### config
16
+
17
+ [`IMergeLocalesConfig`](../interfaces/IMergeLocalesConfig.md)
14
18
 
15
19
  The configuration for the app.
16
20
 
package/locales/en.json CHANGED
@@ -35,6 +35,12 @@
35
35
  "progress": {
36
36
  "done": "Done.",
37
37
  "error": "Error"
38
+ },
39
+ "options": {
40
+ "lang": {
41
+ "param": "--lang '<'lang'>'",
42
+ "description": "The language to display the output in."
43
+ }
38
44
  }
39
45
  }
40
46
  }
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@twin.org/merge-locales",
3
- "version": "0.0.1-next.9",
3
+ "version": "0.0.2-next.10",
4
4
  "description": "Tool to merge locale files from all dependencies",
5
5
  "repository": {
6
6
  "type": "git",
7
- "url": "git+https://github.com/twinfoundation/tools.git",
8
- "directory": "packages/merge-locales"
7
+ "url": "git+https://github.com/twinfoundation/framework.git",
8
+ "directory": "apps/merge-locales"
9
9
  },
10
10
  "author": "martyn.janes@iota.org",
11
11
  "license": "Apache-2.0",
@@ -14,20 +14,20 @@
14
14
  "node": ">=20.0.0"
15
15
  },
16
16
  "dependencies": {
17
- "@twin.org/cli-core": "next",
18
- "@twin.org/core": "next",
19
- "@twin.org/nameof": "0.0.1-next.9",
20
- "commander": "12.1.0",
21
- "glob": "11.0.0"
17
+ "@twin.org/cli-core": "0.0.2-next.10",
18
+ "@twin.org/core": "0.0.2-next.10",
19
+ "@twin.org/nameof": "0.0.2-next.10",
20
+ "commander": "14.0.0",
21
+ "glob": "11.0.3"
22
22
  },
23
23
  "main": "./dist/cjs/index.cjs",
24
24
  "module": "./dist/esm/index.mjs",
25
25
  "types": "./dist/types/index.d.ts",
26
26
  "exports": {
27
27
  ".": {
28
+ "types": "./dist/types/index.d.ts",
28
29
  "require": "./dist/cjs/index.cjs",
29
- "import": "./dist/esm/index.mjs",
30
- "types": "./dist/types/index.d.ts"
30
+ "import": "./dist/esm/index.mjs"
31
31
  }
32
32
  },
33
33
  "files": [