locize-cli 11.1.0 → 12.0.1
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/.github/workflows/node.yml +25 -0
- package/CHANGELOG.md +13 -1
- package/LICENSE +1 -1
- package/README.md +2 -0
- package/dist/cjs/add.js +90 -0
- package/{bin/locize → dist/cjs/cli.js} +391 -671
- package/dist/cjs/combineSubkeyPreprocessor.js +155 -0
- package/dist/cjs/convertToDesiredFormat.js +205 -0
- package/dist/cjs/convertToFlatFormat.js +231 -0
- package/dist/cjs/copyVersion.js +60 -0
- package/dist/cjs/createBranch.js +59 -0
- package/dist/cjs/deleteBranch.js +89 -0
- package/dist/cjs/deleteNamespace.js +37 -0
- package/dist/cjs/download.js +376 -0
- package/dist/cjs/filterNamespaces.js +13 -0
- package/dist/cjs/format.js +156 -0
- package/dist/cjs/formats.js +33 -0
- package/dist/cjs/get.js +66 -0
- package/dist/cjs/getBranches.js +37 -0
- package/dist/cjs/getJob.js +37 -0
- package/dist/cjs/getProjectStats.js +37 -0
- package/dist/cjs/getRemoteLanguages.js +38 -0
- package/dist/cjs/getRemoteNamespace.js +125 -0
- package/dist/cjs/index.js +37 -0
- package/dist/cjs/isValidUuid.js +6 -0
- package/dist/cjs/lngs.js +215 -0
- package/dist/cjs/mapLimit.js +22 -0
- package/dist/cjs/mergeBranch.js +80 -0
- package/dist/cjs/migrate.js +239 -0
- package/dist/cjs/missing.js +165 -0
- package/dist/cjs/package.json +5 -0
- package/{parseLocalLanguage.js → dist/cjs/parseLocalLanguage.js} +135 -142
- package/dist/cjs/parseLocalLanguages.js +18 -0
- package/dist/cjs/parseLocalReference.js +11 -0
- package/dist/cjs/publishVersion.js +42 -0
- package/dist/cjs/removeUndefinedFromArrays.js +19 -0
- package/dist/cjs/removeVersion.js +42 -0
- package/dist/cjs/request.js +66 -0
- package/dist/cjs/shouldUnflatten.js +21 -0
- package/dist/cjs/sortFlatResources.js +13 -0
- package/dist/cjs/sync.js +772 -0
- package/dist/cjs/unflatten.js +81 -0
- package/dist/esm/add.js +88 -0
- package/dist/esm/cli.js +1020 -0
- package/{combineSubkeyPreprocessor.js → dist/esm/combineSubkeyPreprocessor.js} +70 -73
- package/dist/esm/convertToDesiredFormat.js +203 -0
- package/dist/esm/convertToFlatFormat.js +229 -0
- package/dist/esm/copyVersion.js +58 -0
- package/dist/esm/createBranch.js +57 -0
- package/dist/esm/deleteBranch.js +87 -0
- package/dist/esm/deleteNamespace.js +35 -0
- package/dist/esm/download.js +374 -0
- package/{filterNamespaces.js → dist/esm/filterNamespaces.js} +4 -4
- package/dist/esm/format.js +154 -0
- package/{formats.js → dist/esm/formats.js} +7 -11
- package/dist/esm/get.js +64 -0
- package/dist/esm/getBranches.js +35 -0
- package/dist/esm/getJob.js +35 -0
- package/dist/esm/getProjectStats.js +35 -0
- package/dist/esm/getRemoteLanguages.js +36 -0
- package/dist/esm/getRemoteNamespace.js +123 -0
- package/dist/esm/index.js +16 -0
- package/dist/esm/isValidUuid.js +4 -0
- package/dist/esm/lngs.js +213 -0
- package/dist/esm/mapLimit.js +20 -0
- package/dist/esm/mergeBranch.js +78 -0
- package/dist/esm/migrate.js +237 -0
- package/dist/esm/missing.js +160 -0
- package/dist/esm/parseLocalLanguage.js +194 -0
- package/dist/esm/parseLocalLanguages.js +16 -0
- package/dist/esm/parseLocalReference.js +9 -0
- package/dist/esm/publishVersion.js +40 -0
- package/{removeUndefinedFromArrays.js → dist/esm/removeUndefinedFromArrays.js} +5 -5
- package/dist/esm/removeVersion.js +40 -0
- package/dist/esm/request.js +64 -0
- package/{shouldUnflatten.js → dist/esm/shouldUnflatten.js} +7 -7
- package/dist/esm/sortFlatResources.js +11 -0
- package/dist/esm/sync.js +770 -0
- package/{unflatten.js → dist/esm/unflatten.js} +36 -34
- package/package.json +41 -18
- package/rollup.config.js +58 -0
- package/add.js +0 -105
- package/convertToDesiredFormat.js +0 -252
- package/convertToFlatFormat.js +0 -298
- package/copyVersion.js +0 -69
- package/createBranch.js +0 -61
- package/deleteBranch.js +0 -97
- package/deleteNamespace.js +0 -39
- package/download.js +0 -516
- package/format.js +0 -206
- package/get.js +0 -81
- package/getBranches.js +0 -40
- package/getJob.js +0 -40
- package/getProjectStats.js +0 -40
- package/getRemoteLanguages.js +0 -40
- package/getRemoteNamespace.js +0 -122
- package/index.js +0 -9
- package/isValidUuid.js +0 -2
- package/lngs.json +0 -211
- package/mergeBranch.js +0 -102
- package/migrate.js +0 -314
- package/missing.js +0 -169
- package/parseLocalLanguages.js +0 -22
- package/parseLocalReference.js +0 -10
- package/publishVersion.js +0 -64
- package/removeVersion.js +0 -64
- package/request.js +0 -64
- package/sortFlatResources.js +0 -9
- package/sync.js +0 -786
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
name: node
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
test:
|
|
10
|
+
name: Test on node ${{ matrix.node }} and ${{ matrix.os }}
|
|
11
|
+
runs-on: ${{ matrix.os }}
|
|
12
|
+
strategy:
|
|
13
|
+
matrix:
|
|
14
|
+
node: [ '24.x', '22.x' ]
|
|
15
|
+
# os: [ubuntu-latest, windows-latest, macOS-latest]
|
|
16
|
+
os: [ubuntu-latest, windows-latest, macOS-latest]
|
|
17
|
+
steps:
|
|
18
|
+
- uses: actions/checkout@v4
|
|
19
|
+
- name: Setup Node.js
|
|
20
|
+
uses: actions/setup-node@v4
|
|
21
|
+
with:
|
|
22
|
+
node-version: ${{ matrix.node }}
|
|
23
|
+
- run: npm install
|
|
24
|
+
- run: npm run build
|
|
25
|
+
- run: npm test
|
package/CHANGELOG.md
CHANGED
|
@@ -5,7 +5,19 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
Project versioning adheres to [Semantic Versioning](http://semver.org/).
|
|
6
6
|
Change log format is based on [Keep a Changelog](http://keepachangelog.com/).
|
|
7
7
|
|
|
8
|
-
## [
|
|
8
|
+
## [12.0.1](https://github.com/locize/locize-cli/compare/v12.0.0...v12.0.1) - 2026-01-13
|
|
9
|
+
|
|
10
|
+
- update dependencies
|
|
11
|
+
|
|
12
|
+
## [12.0.0](https://github.com/locize/locize-cli/compare/v11.1.0...v12.0.0) - 2026-01-04
|
|
13
|
+
|
|
14
|
+
- changed default cdnType to "standard" instead of "prod"
|
|
15
|
+
- fixed some wrong cli short arguments
|
|
16
|
+
- removed deprecated arguments
|
|
17
|
+
- converted to ESM source
|
|
18
|
+
- update node.js version for binary generation (but use cjs for that because pkg is not yet ready for esm)
|
|
19
|
+
|
|
20
|
+
## [11.1.0](https://github.com/locize/locize-cli/compare/v11.0.0...v11.1.0) - 2025-12-11
|
|
9
21
|
|
|
10
22
|
- replace internal csv library to address security advisory #110
|
|
11
23
|
|
package/LICENSE
CHANGED
package/README.md
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
[](https://github.com/locize/locize-cli/actions?query=workflow%3Anode)
|
|
1
2
|
[](https://npmjs.org/package/locize-cli)
|
|
2
3
|
|
|
4
|
+
|
|
3
5
|
# Getting started with the locize-cli
|
|
4
6
|
|
|
5
7
|
## Step 0: Install the cli
|
package/dist/cjs/add.js
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var colors = require('colors');
|
|
4
|
+
var flatten = require('flat');
|
|
5
|
+
var getRemoteLanguages = require('./getRemoteLanguages.js');
|
|
6
|
+
var request = require('./request.js');
|
|
7
|
+
|
|
8
|
+
const _add = async (opt) => {
|
|
9
|
+
const url = `${opt.apiEndpoint}/update/{{projectId}}/{{version}}/{{lng}}/{{ns}}`
|
|
10
|
+
.replace('{{projectId}}', opt.projectId)
|
|
11
|
+
.replace('{{ver}}', opt.version)
|
|
12
|
+
.replace('{{version}}', opt.version)
|
|
13
|
+
.replace('{{language}}', opt.language)
|
|
14
|
+
.replace('{{lng}}', opt.language)
|
|
15
|
+
.replace('{{ns}}', opt.namespace)
|
|
16
|
+
.replace('{{namespace}}', opt.namespace);
|
|
17
|
+
|
|
18
|
+
if (!opt.data && (opt.value === undefined || opt.value === null)) {
|
|
19
|
+
console.log(colors.yellow(`removing ${opt.key} from ${opt.version}/${opt.language}/${opt.namespace}...`));
|
|
20
|
+
} else {
|
|
21
|
+
console.log(colors.yellow(`adding ${opt.key} to ${opt.version}/${opt.language}/${opt.namespace}...`));
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
const data = flatten(opt.data || {});
|
|
25
|
+
if (!opt.data) {
|
|
26
|
+
data[opt.key] = opt.value || null; // null will remove the key
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
try {
|
|
30
|
+
const { res, obj } = await request(url, {
|
|
31
|
+
method: 'post',
|
|
32
|
+
headers: {
|
|
33
|
+
Authorization: opt.apiKey
|
|
34
|
+
},
|
|
35
|
+
body: data
|
|
36
|
+
});
|
|
37
|
+
if (res.status >= 300 && res.status !== 412) {
|
|
38
|
+
if (!opt.data && (opt.value === undefined || opt.value === null)) {
|
|
39
|
+
console.log(colors.red(`remove failed for ${opt.key} from ${opt.version}/${opt.language}/${opt.namespace}...`));
|
|
40
|
+
} else {
|
|
41
|
+
console.log(colors.red(`add failed for ${opt.key} to ${opt.version}/${opt.language}/${opt.namespace}...`));
|
|
42
|
+
}
|
|
43
|
+
if (obj && (obj.errorMessage || obj.message)) {
|
|
44
|
+
console.error(colors.red((obj.errorMessage || obj.message)));
|
|
45
|
+
process.exit(1);
|
|
46
|
+
} else {
|
|
47
|
+
console.error(colors.red(res.statusText + ' (' + res.status + ')'));
|
|
48
|
+
process.exit(1);
|
|
49
|
+
}
|
|
50
|
+
return
|
|
51
|
+
}
|
|
52
|
+
if (!opt.data && (opt.value === undefined || opt.value === null)) {
|
|
53
|
+
console.log(colors.green(`removed ${opt.key} from ${opt.version}/${opt.language}/${opt.namespace}...`));
|
|
54
|
+
} else {
|
|
55
|
+
console.log(colors.green(`added ${opt.key} to ${opt.version}/${opt.language}/${opt.namespace}...`));
|
|
56
|
+
}
|
|
57
|
+
} catch (err) {
|
|
58
|
+
if (!opt.data && (opt.value === undefined || opt.value === null)) {
|
|
59
|
+
console.log(colors.red(`remove failed for ${opt.key} from ${opt.version}/${opt.language}/${opt.namespace}...`));
|
|
60
|
+
} else {
|
|
61
|
+
console.log(colors.red(`add failed for ${opt.key} to ${opt.version}/${opt.language}/${opt.namespace}...`));
|
|
62
|
+
}
|
|
63
|
+
console.error(colors.red(err.message));
|
|
64
|
+
process.exit(1);
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
const add = async (opt) => {
|
|
69
|
+
if (opt.language) return _add(opt)
|
|
70
|
+
|
|
71
|
+
let lngs;
|
|
72
|
+
try {
|
|
73
|
+
lngs = await getRemoteLanguages(opt);
|
|
74
|
+
} catch (err) {
|
|
75
|
+
console.error(colors.red(err.message));
|
|
76
|
+
process.exit(1);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
for (const lng of lngs) {
|
|
80
|
+
opt.language = lng;
|
|
81
|
+
await _add(opt);
|
|
82
|
+
}
|
|
83
|
+
if (!opt.data && (opt.value === undefined || opt.value === null)) {
|
|
84
|
+
console.log(colors.green(`removed ${opt.namespace}/${opt.key} (${opt.version}) from all languages...`));
|
|
85
|
+
} else {
|
|
86
|
+
console.log(colors.green(`added ${opt.namespace}/${opt.key} (${opt.version}) in all languages...`));
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
module.exports = add;
|