ccjk 14.1.7 → 14.1.8
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/ccjk.mjs +3 -2
- package/bin/ccjk.ts +104 -104
- package/dist/chunks/agent.mjs +2 -2
- package/dist/chunks/api-cli.mjs +2 -2
- package/dist/chunks/api-config-selector.mjs +5 -6
- package/dist/chunks/auto-updater.mjs +1 -1
- package/dist/chunks/brain-config.mjs +1 -1
- package/dist/chunks/brain-status.mjs +13 -7
- package/dist/chunks/ccjk-all.mjs +3 -3
- package/dist/chunks/ccjk-mcp.mjs +2 -2
- package/dist/chunks/ccjk-setup.mjs +1 -1
- package/dist/chunks/ccjk-skills.mjs +1 -1
- package/dist/chunks/ccr.mjs +11 -12
- package/dist/chunks/check-updates.mjs +1 -2
- package/dist/chunks/claude-code-incremental-manager.mjs +9 -9
- package/dist/chunks/claude-config.mjs +2 -2
- package/dist/chunks/code-type-resolver.mjs +2 -4
- package/dist/chunks/codex-config-switch.mjs +3 -4
- package/dist/chunks/codex-provider-manager.mjs +1 -2
- package/dist/chunks/codex.mjs +2 -33
- package/dist/chunks/config-switch.mjs +8 -5
- package/dist/chunks/config.mjs +382 -19
- package/dist/chunks/config2.mjs +3 -3
- package/dist/chunks/config3.mjs +1 -1
- package/dist/chunks/context.mjs +2 -2
- package/dist/chunks/doctor.mjs +4 -5
- package/dist/chunks/evolution.mjs +10 -6
- package/dist/chunks/features.mjs +13 -14
- package/dist/chunks/index10.mjs +4 -4
- package/dist/chunks/init.mjs +556 -557
- package/dist/chunks/installer.mjs +2 -2
- package/dist/chunks/mcp-cli.mjs +6 -7
- package/dist/chunks/mcp.mjs +6 -7
- package/dist/chunks/memory-check.mjs +2 -2
- package/dist/chunks/memory-paths.mjs +1 -1
- package/dist/chunks/memory-sync.mjs +2 -2
- package/dist/chunks/memory.mjs +7 -7
- package/dist/chunks/notification.mjs +1 -1
- package/dist/chunks/package.mjs +1 -1
- package/dist/chunks/quick-provider.mjs +37 -7
- package/dist/chunks/quick-setup.mjs +6 -7
- package/dist/chunks/remote.mjs +1 -1
- package/dist/chunks/research.mjs +118 -118
- package/dist/chunks/simple-config.mjs +4 -4
- package/dist/chunks/skill2.mjs +129 -80
- package/dist/chunks/skills-sync.mjs +1 -1
- package/dist/chunks/slash-commands.mjs +1 -1
- package/dist/chunks/uninstall.mjs +1 -1
- package/dist/chunks/update.mjs +10 -11
- package/dist/chunks/zero-config.mjs +8 -9
- package/dist/cli.mjs +1 -1
- package/dist/index.d.mts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.mjs +7 -7
- package/dist/shared/{ccjk.QNhw2Y_5.mjs → ccjk.B9OuS4xZ.mjs} +3 -3
- package/dist/shared/{ccjk.DqlzNDEQ.mjs → ccjk.BEiR3L4C.mjs} +2 -3
- package/dist/shared/{ccjk.4iw1XCF3.mjs → ccjk.BJ3Zpjo5.mjs} +1 -1
- package/dist/shared/{ccjk.Nwf9bR70.mjs → ccjk.BzxpiEPF.mjs} +2 -2
- package/dist/shared/{ccjk.BI-hdI7P.mjs → ccjk.CbWVbtb9.mjs} +1 -1
- package/dist/shared/{ccjk.UhjQ1seV.mjs → ccjk.DMV3x5Sd.mjs} +1 -1
- package/dist/shared/{ccjk.DQXk596F.mjs → ccjk.DuzJZlgj.mjs} +107 -103
- package/dist/shared/{ccjk.DTdjs-qK.mjs → ccjk.MwtjAULc.mjs} +1 -1
- package/dist/shared/{ccjk.DsYaCCx4.mjs → ccjk.i_vn-9C3.mjs} +2 -2
- package/dist/shared/{ccjk.kAZkKbGW.mjs → ccjk.tI_s2uSh.mjs} +2 -3
- package/package.json +5 -5
- package/dist/shared/ccjk.DKXs7Fbm.mjs +0 -361
- package/dist/shared/{ccjk.BBizCO6_.mjs → ccjk.DcMvE7lf.mjs} +1 -1
- package/dist/shared/{ccjk.Dhu8ia5S.mjs → ccjk.zFGcZT7Y.mjs} +1 -1
package/dist/chunks/skill2.mjs
CHANGED
|
@@ -5,7 +5,7 @@ import a from './index5.mjs';
|
|
|
5
5
|
import { c as commonjsRequire } from '../shared/ccjk.COweQ1RR.mjs';
|
|
6
6
|
import require$$0 from 'fs';
|
|
7
7
|
import { i as inquirer } from './index6.mjs';
|
|
8
|
-
import { g as getPluginManager } from '../shared/ccjk.
|
|
8
|
+
import { g as getPluginManager } from '../shared/ccjk.MwtjAULc.mjs';
|
|
9
9
|
import { j as join, d as dirname } from '../shared/ccjk.bQ7Dh1g4.mjs';
|
|
10
10
|
import '../shared/ccjk.BAGoDD49.mjs';
|
|
11
11
|
import 'node:readline';
|
|
@@ -28,7 +28,7 @@ import 'node:stream';
|
|
|
28
28
|
import './constants.mjs';
|
|
29
29
|
import './index2.mjs';
|
|
30
30
|
import '../shared/ccjk.CfKKcvWy.mjs';
|
|
31
|
-
import '../shared/ccjk.
|
|
31
|
+
import '../shared/ccjk.i_vn-9C3.mjs';
|
|
32
32
|
|
|
33
33
|
var handlebars = {exports: {}};
|
|
34
34
|
|
|
@@ -677,7 +677,8 @@ function requireHelpers$1 () {
|
|
|
677
677
|
if (instance.helpers[helperName]) {
|
|
678
678
|
instance.hooks[helperName] = instance.helpers[helperName];
|
|
679
679
|
if (!keepHelper) {
|
|
680
|
-
delete
|
|
680
|
+
// Using delete is slow
|
|
681
|
+
instance.helpers[helperName] = undefined;
|
|
681
682
|
}
|
|
682
683
|
}
|
|
683
684
|
}
|
|
@@ -810,37 +811,6 @@ function requireLogger () {
|
|
|
810
811
|
|
|
811
812
|
var protoAccess = {};
|
|
812
813
|
|
|
813
|
-
var createNewLookupObject = {};
|
|
814
|
-
|
|
815
|
-
var hasRequiredCreateNewLookupObject;
|
|
816
|
-
|
|
817
|
-
function requireCreateNewLookupObject () {
|
|
818
|
-
if (hasRequiredCreateNewLookupObject) return createNewLookupObject;
|
|
819
|
-
hasRequiredCreateNewLookupObject = 1;
|
|
820
|
-
|
|
821
|
-
createNewLookupObject.__esModule = true;
|
|
822
|
-
createNewLookupObject.createNewLookupObject = createNewLookupObject$1;
|
|
823
|
-
|
|
824
|
-
var _utils = requireUtils();
|
|
825
|
-
|
|
826
|
-
/**
|
|
827
|
-
* Create a new object with "null"-prototype to avoid truthy results on prototype properties.
|
|
828
|
-
* The resulting object can be used with "object[property]" to check if a property exists
|
|
829
|
-
* @param {...object} sources a varargs parameter of source objects that will be merged
|
|
830
|
-
* @returns {object}
|
|
831
|
-
*/
|
|
832
|
-
|
|
833
|
-
function createNewLookupObject$1() {
|
|
834
|
-
for (var _len = arguments.length, sources = Array(_len), _key = 0; _key < _len; _key++) {
|
|
835
|
-
sources[_key] = arguments[_key];
|
|
836
|
-
}
|
|
837
|
-
|
|
838
|
-
return _utils.extend.apply(undefined, [Object.create(null)].concat(sources));
|
|
839
|
-
}
|
|
840
|
-
|
|
841
|
-
return createNewLookupObject;
|
|
842
|
-
}
|
|
843
|
-
|
|
844
814
|
var hasRequiredProtoAccess;
|
|
845
815
|
|
|
846
816
|
function requireProtoAccess () {
|
|
@@ -855,7 +825,7 @@ function requireProtoAccess () {
|
|
|
855
825
|
|
|
856
826
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
|
|
857
827
|
|
|
858
|
-
var
|
|
828
|
+
var _utils = requireUtils();
|
|
859
829
|
|
|
860
830
|
var _logger = requireLogger();
|
|
861
831
|
|
|
@@ -864,23 +834,28 @@ function requireProtoAccess () {
|
|
|
864
834
|
var loggedProperties = Object.create(null);
|
|
865
835
|
|
|
866
836
|
function createProtoAccessControl(runtimeOptions) {
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
defaultMethodWhiteList['__defineSetter__'] = false;
|
|
871
|
-
defaultMethodWhiteList['__lookupGetter__'] = false;
|
|
872
|
-
|
|
873
|
-
var defaultPropertyWhiteList = Object.create(null);
|
|
837
|
+
// Create an object with "null"-prototype to avoid truthy results on
|
|
838
|
+
// prototype properties.
|
|
839
|
+
var propertyWhiteList = Object.create(null);
|
|
874
840
|
// eslint-disable-next-line no-proto
|
|
875
|
-
|
|
841
|
+
propertyWhiteList['__proto__'] = false;
|
|
842
|
+
_utils.extend(propertyWhiteList, runtimeOptions.allowedProtoProperties);
|
|
843
|
+
|
|
844
|
+
var methodWhiteList = Object.create(null);
|
|
845
|
+
methodWhiteList['constructor'] = false;
|
|
846
|
+
methodWhiteList['__defineGetter__'] = false;
|
|
847
|
+
methodWhiteList['__defineSetter__'] = false;
|
|
848
|
+
methodWhiteList['__lookupGetter__'] = false;
|
|
849
|
+
methodWhiteList['__lookupSetter__'] = false;
|
|
850
|
+
_utils.extend(methodWhiteList, runtimeOptions.allowedProtoMethods);
|
|
876
851
|
|
|
877
852
|
return {
|
|
878
853
|
properties: {
|
|
879
|
-
whitelist:
|
|
854
|
+
whitelist: propertyWhiteList,
|
|
880
855
|
defaultValue: runtimeOptions.allowProtoPropertiesByDefault
|
|
881
856
|
},
|
|
882
857
|
methods: {
|
|
883
|
-
whitelist:
|
|
858
|
+
whitelist: methodWhiteList,
|
|
884
859
|
defaultValue: runtimeOptions.allowProtoMethodsByDefault
|
|
885
860
|
}
|
|
886
861
|
};
|
|
@@ -949,7 +924,7 @@ function requireBase$1 () {
|
|
|
949
924
|
|
|
950
925
|
var _internalProtoAccess = requireProtoAccess();
|
|
951
926
|
|
|
952
|
-
var VERSION = '4.7.
|
|
927
|
+
var VERSION = '4.7.9';
|
|
953
928
|
base$1.VERSION = VERSION;
|
|
954
929
|
var COMPILER_REVISION = 8;
|
|
955
930
|
base$1.COMPILER_REVISION = COMPILER_REVISION;
|
|
@@ -1181,16 +1156,14 @@ function requireRuntime () {
|
|
|
1181
1156
|
}
|
|
1182
1157
|
partial = env.VM.resolvePartial.call(this, partial, context, options);
|
|
1183
1158
|
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
protoAccessControl: this.protoAccessControl
|
|
1187
|
-
});
|
|
1159
|
+
options.hooks = this.hooks;
|
|
1160
|
+
options.protoAccessControl = this.protoAccessControl;
|
|
1188
1161
|
|
|
1189
|
-
var result = env.VM.invokePartial.call(this, partial, context,
|
|
1162
|
+
var result = env.VM.invokePartial.call(this, partial, context, options);
|
|
1190
1163
|
|
|
1191
1164
|
if (result == null && env.compile) {
|
|
1192
1165
|
options.partials[options.name] = env.compile(partial, templateSpec.compilerOptions, env);
|
|
1193
|
-
result = options.partials[options.name](context,
|
|
1166
|
+
result = options.partials[options.name](context, options);
|
|
1194
1167
|
}
|
|
1195
1168
|
if (result != null) {
|
|
1196
1169
|
if (options.indent) {
|
|
@@ -1239,7 +1212,7 @@ function requireRuntime () {
|
|
|
1239
1212
|
for (var i = 0; i < len; i++) {
|
|
1240
1213
|
var result = depths[i] && container.lookupProperty(depths[i], name);
|
|
1241
1214
|
if (result != null) {
|
|
1242
|
-
return
|
|
1215
|
+
return result;
|
|
1243
1216
|
}
|
|
1244
1217
|
}
|
|
1245
1218
|
},
|
|
@@ -1321,8 +1294,9 @@ function requireRuntime () {
|
|
|
1321
1294
|
|
|
1322
1295
|
ret._setup = function (options) {
|
|
1323
1296
|
if (!options.partial) {
|
|
1324
|
-
var mergedHelpers =
|
|
1325
|
-
|
|
1297
|
+
var mergedHelpers = {};
|
|
1298
|
+
addHelpers(mergedHelpers, env.helpers, container);
|
|
1299
|
+
addHelpers(mergedHelpers, options.helpers, container);
|
|
1326
1300
|
container.helpers = mergedHelpers;
|
|
1327
1301
|
|
|
1328
1302
|
if (templateSpec.usePartial) {
|
|
@@ -1388,21 +1362,21 @@ function requireRuntime () {
|
|
|
1388
1362
|
function resolvePartial(partial, context, options) {
|
|
1389
1363
|
if (!partial) {
|
|
1390
1364
|
if (options.name === '@partial-block') {
|
|
1391
|
-
partial = options.data
|
|
1365
|
+
partial = lookupOwnProperty(options.data, 'partial-block');
|
|
1392
1366
|
} else {
|
|
1393
|
-
partial = options.partials
|
|
1367
|
+
partial = lookupOwnProperty(options.partials, options.name);
|
|
1394
1368
|
}
|
|
1395
1369
|
} else if (!partial.call && !options.name) {
|
|
1396
1370
|
// This is a dynamic partial that returned a string
|
|
1397
1371
|
options.name = partial;
|
|
1398
|
-
partial = options.partials
|
|
1372
|
+
partial = lookupOwnProperty(options.partials, partial);
|
|
1399
1373
|
}
|
|
1400
1374
|
return partial;
|
|
1401
1375
|
}
|
|
1402
1376
|
|
|
1403
1377
|
function invokePartial(partial, context, options) {
|
|
1404
1378
|
// Use the current closure context to save the partial-block if this partial
|
|
1405
|
-
var currentPartialBlock = options.data
|
|
1379
|
+
var currentPartialBlock = lookupOwnProperty(options.data, 'partial-block');
|
|
1406
1380
|
options.partial = true;
|
|
1407
1381
|
if (options.ids) {
|
|
1408
1382
|
options.data.contextPath = options.ids[0] || options.data.contextPath;
|
|
@@ -1444,6 +1418,12 @@ function requireRuntime () {
|
|
|
1444
1418
|
return '';
|
|
1445
1419
|
}
|
|
1446
1420
|
|
|
1421
|
+
function lookupOwnProperty(obj, name) {
|
|
1422
|
+
if (obj && Object.prototype.hasOwnProperty.call(obj, name)) {
|
|
1423
|
+
return obj[name];
|
|
1424
|
+
}
|
|
1425
|
+
}
|
|
1426
|
+
|
|
1447
1427
|
function initData(context, data) {
|
|
1448
1428
|
if (!data || !('root' in data)) {
|
|
1449
1429
|
data = data ? _base.createFrame(data) : {};
|
|
@@ -1461,9 +1441,10 @@ function requireRuntime () {
|
|
|
1461
1441
|
return prog;
|
|
1462
1442
|
}
|
|
1463
1443
|
|
|
1464
|
-
function
|
|
1465
|
-
|
|
1466
|
-
|
|
1444
|
+
function addHelpers(mergedHelpers, helpers, container) {
|
|
1445
|
+
if (!helpers) return;
|
|
1446
|
+
Object.keys(helpers).forEach(function (helperName) {
|
|
1447
|
+
var helper = helpers[helperName];
|
|
1467
1448
|
mergedHelpers[helperName] = passLookupPropertyOption(helper, container);
|
|
1468
1449
|
});
|
|
1469
1450
|
}
|
|
@@ -1471,7 +1452,8 @@ function requireRuntime () {
|
|
|
1471
1452
|
function passLookupPropertyOption(helper, container) {
|
|
1472
1453
|
var lookupProperty = container.lookupProperty;
|
|
1473
1454
|
return _internalWrapHelper.wrapHelper(helper, function (options) {
|
|
1474
|
-
|
|
1455
|
+
options.lookupProperty = lookupProperty;
|
|
1456
|
+
return options;
|
|
1475
1457
|
});
|
|
1476
1458
|
}
|
|
1477
1459
|
|
|
@@ -2305,7 +2287,7 @@ function requireParser () {
|
|
|
2305
2287
|
return 5;
|
|
2306
2288
|
}
|
|
2307
2289
|
};
|
|
2308
|
-
lexer.rules = [/^(?:[^\x00]*?(?=(\{\{)))/, /^(?:[^\x00]+)/, /^(?:[^\x00]{2,}?(?=(\{\{|\\\{\{|\\\\\{\{|$)))/, /^(?:\{\{\{\{(?=[
|
|
2290
|
+
lexer.rules = [/^(?:[^\x00]*?(?=(\{\{)))/, /^(?:[^\x00]+)/, /^(?:[^\x00]{2,}?(?=(\{\{|\\\{\{|\\\\\{\{|$)))/, /^(?:\{\{\{\{(?=[^\/]))/, /^(?:\{\{\{\{\/[^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=[=}\s\/.])\}\}\}\})/, /^(?:[^\x00]+?(?=(\{\{\{\{)))/, /^(?:[\s\S]*?--(~)?\}\})/, /^(?:\()/, /^(?:\))/, /^(?:\{\{\{\{)/, /^(?:\}\}\}\})/, /^(?:\{\{(~)?>)/, /^(?:\{\{(~)?#>)/, /^(?:\{\{(~)?#\*?)/, /^(?:\{\{(~)?\/)/, /^(?:\{\{(~)?\^\s*(~)?\}\})/, /^(?:\{\{(~)?\s*else\s*(~)?\}\})/, /^(?:\{\{(~)?\^)/, /^(?:\{\{(~)?\s*else\b)/, /^(?:\{\{(~)?\{)/, /^(?:\{\{(~)?&)/, /^(?:\{\{(~)?!--)/, /^(?:\{\{(~)?![\s\S]*?\}\})/, /^(?:\{\{(~)?\*?)/, /^(?:=)/, /^(?:\.\.)/, /^(?:\.(?=([=~}\s\/.)|])))/, /^(?:[\/.])/, /^(?:\s+)/, /^(?:\}(~)?\}\})/, /^(?:(~)?\}\})/, /^(?:"(\\["]|[^"])*")/, /^(?:'(\\[']|[^'])*')/, /^(?:@)/, /^(?:true(?=([~}\s)])))/, /^(?:false(?=([~}\s)])))/, /^(?:undefined(?=([~}\s)])))/, /^(?:null(?=([~}\s)])))/, /^(?:-?[0-9]+(?:\.[0-9]+)?(?=([~}\s)])))/, /^(?:as\s+\|)/, /^(?:\|)/, /^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.)|]))))/, /^(?:\[(\\\]|[^\]])*\])/, /^(?:.)/, /^(?:$)/];
|
|
2309
2291
|
lexer.conditions = { "mu": { "rules": [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44], "inclusive": false }, "emu": { "rules": [2], "inclusive": false }, "com": { "rules": [6], "inclusive": false }, "raw": { "rules": [3, 4, 5], "inclusive": false }, "INITIAL": { "rules": [0, 1, 44], "inclusive": true } };
|
|
2310
2292
|
return lexer;
|
|
2311
2293
|
})();
|
|
@@ -2970,6 +2952,10 @@ function requireBase () {
|
|
|
2970
2952
|
|
|
2971
2953
|
var Helpers = _interopRequireWildcard(_helpers);
|
|
2972
2954
|
|
|
2955
|
+
var _exception = requireException();
|
|
2956
|
+
|
|
2957
|
+
var _exception2 = _interopRequireDefault(_exception);
|
|
2958
|
+
|
|
2973
2959
|
var _utils = requireUtils();
|
|
2974
2960
|
|
|
2975
2961
|
base.parser = _parser2['default'];
|
|
@@ -2980,6 +2966,9 @@ function requireBase () {
|
|
|
2980
2966
|
function parseWithoutProcessing(input, options) {
|
|
2981
2967
|
// Just return if an already-compiled AST was passed in.
|
|
2982
2968
|
if (input.type === 'Program') {
|
|
2969
|
+
// When a pre-parsed AST is passed in, validate all node values to prevent
|
|
2970
|
+
// code injection via type-confused literals.
|
|
2971
|
+
validateInputAst(input);
|
|
2983
2972
|
return input;
|
|
2984
2973
|
}
|
|
2985
2974
|
|
|
@@ -3001,6 +2990,58 @@ function requireBase () {
|
|
|
3001
2990
|
|
|
3002
2991
|
return strip.accept(ast);
|
|
3003
2992
|
}
|
|
2993
|
+
|
|
2994
|
+
function validateInputAst(ast) {
|
|
2995
|
+
validateAstNode(ast);
|
|
2996
|
+
}
|
|
2997
|
+
|
|
2998
|
+
function validateAstNode(node) {
|
|
2999
|
+
if (node == null) {
|
|
3000
|
+
return;
|
|
3001
|
+
}
|
|
3002
|
+
|
|
3003
|
+
if (Array.isArray(node)) {
|
|
3004
|
+
node.forEach(validateAstNode);
|
|
3005
|
+
return;
|
|
3006
|
+
}
|
|
3007
|
+
|
|
3008
|
+
if (typeof node !== 'object') {
|
|
3009
|
+
return;
|
|
3010
|
+
}
|
|
3011
|
+
|
|
3012
|
+
if (node.type === 'PathExpression') {
|
|
3013
|
+
if (!isValidDepth(node.depth)) {
|
|
3014
|
+
throw new _exception2['default']('Invalid AST: PathExpression.depth must be an integer');
|
|
3015
|
+
}
|
|
3016
|
+
if (!Array.isArray(node.parts)) {
|
|
3017
|
+
throw new _exception2['default']('Invalid AST: PathExpression.parts must be an array');
|
|
3018
|
+
}
|
|
3019
|
+
for (var i = 0; i < node.parts.length; i++) {
|
|
3020
|
+
if (typeof node.parts[i] !== 'string') {
|
|
3021
|
+
throw new _exception2['default']('Invalid AST: PathExpression.parts must only contain strings');
|
|
3022
|
+
}
|
|
3023
|
+
}
|
|
3024
|
+
} else if (node.type === 'NumberLiteral') {
|
|
3025
|
+
if (typeof node.value !== 'number' || !isFinite(node.value)) {
|
|
3026
|
+
throw new _exception2['default']('Invalid AST: NumberLiteral.value must be a number');
|
|
3027
|
+
}
|
|
3028
|
+
} else if (node.type === 'BooleanLiteral') {
|
|
3029
|
+
if (typeof node.value !== 'boolean') {
|
|
3030
|
+
throw new _exception2['default']('Invalid AST: BooleanLiteral.value must be a boolean');
|
|
3031
|
+
}
|
|
3032
|
+
}
|
|
3033
|
+
|
|
3034
|
+
Object.keys(node).forEach(function (propertyName) {
|
|
3035
|
+
if (propertyName === 'loc') {
|
|
3036
|
+
return;
|
|
3037
|
+
}
|
|
3038
|
+
validateAstNode(node[propertyName]);
|
|
3039
|
+
});
|
|
3040
|
+
}
|
|
3041
|
+
|
|
3042
|
+
function isValidDepth(depth) {
|
|
3043
|
+
return typeof depth === 'number' && isFinite(depth) && Math.floor(depth) === depth && depth >= 0;
|
|
3044
|
+
}
|
|
3004
3045
|
|
|
3005
3046
|
return base;
|
|
3006
3047
|
}
|
|
@@ -7163,12 +7204,10 @@ function requireJavascriptCompiler () {
|
|
|
7163
7204
|
var decorators = _context.decorators;
|
|
7164
7205
|
|
|
7165
7206
|
for (i = 0, l = programs.length; i < l; i++) {
|
|
7166
|
-
|
|
7167
|
-
|
|
7168
|
-
|
|
7169
|
-
|
|
7170
|
-
ret.useDecorators = true;
|
|
7171
|
-
}
|
|
7207
|
+
ret[i] = programs[i];
|
|
7208
|
+
if (decorators[i]) {
|
|
7209
|
+
ret[i + '_d'] = decorators[i];
|
|
7210
|
+
ret.useDecorators = true;
|
|
7172
7211
|
}
|
|
7173
7212
|
}
|
|
7174
7213
|
|
|
@@ -7494,20 +7533,21 @@ function requireJavascriptCompiler () {
|
|
|
7494
7533
|
this.resolvePath('data', parts, 0, true, strict);
|
|
7495
7534
|
},
|
|
7496
7535
|
|
|
7497
|
-
resolvePath: function resolvePath(type, parts,
|
|
7536
|
+
resolvePath: function resolvePath(type, parts, startPartIndex, falsy, strict) {
|
|
7498
7537
|
// istanbul ignore next
|
|
7499
7538
|
|
|
7500
7539
|
var _this2 = this;
|
|
7501
7540
|
|
|
7502
7541
|
if (this.options.strict || this.options.assumeObjects) {
|
|
7503
|
-
this.push(strictLookup(this.options.strict && strict, this, parts,
|
|
7542
|
+
this.push(strictLookup(this.options.strict && strict, this, parts, startPartIndex, type));
|
|
7504
7543
|
return;
|
|
7505
7544
|
}
|
|
7506
7545
|
|
|
7507
7546
|
var len = parts.length;
|
|
7508
|
-
|
|
7547
|
+
|
|
7548
|
+
var _loop = function (i) {
|
|
7509
7549
|
/* eslint-disable no-loop-func */
|
|
7510
|
-
|
|
7550
|
+
_this2.replaceStack(function (current) {
|
|
7511
7551
|
var lookup = _this2.nameLookup(current, parts[i], type);
|
|
7512
7552
|
// We want to ensure that zero and false are handled properly if the context (falsy flag)
|
|
7513
7553
|
// needs to have the special handling for these values.
|
|
@@ -7519,6 +7559,10 @@ function requireJavascriptCompiler () {
|
|
|
7519
7559
|
}
|
|
7520
7560
|
});
|
|
7521
7561
|
/* eslint-enable no-loop-func */
|
|
7562
|
+
};
|
|
7563
|
+
|
|
7564
|
+
for (var i = startPartIndex; i < len; i++) {
|
|
7565
|
+
_loop(i);
|
|
7522
7566
|
}
|
|
7523
7567
|
},
|
|
7524
7568
|
|
|
@@ -7636,7 +7680,12 @@ function requireJavascriptCompiler () {
|
|
|
7636
7680
|
var foundDecorator = this.nameLookup('decorators', name, 'decorator'),
|
|
7637
7681
|
options = this.setupHelperArgs(name, paramSize);
|
|
7638
7682
|
|
|
7639
|
-
|
|
7683
|
+
// Store the resolved decorator in a variable and verify it is a function before
|
|
7684
|
+
// calling it. Without this, unregistered decorators can cause an unhandled TypeError
|
|
7685
|
+
// (calling undefined), which crashes the process — enabling Denial of Service.
|
|
7686
|
+
this.decorators.push(['var decorator = ', foundDecorator, ';']);
|
|
7687
|
+
this.decorators.push(['if (typeof decorator !== "function") { throw new Error(', this.quotedString('Missing decorator: "' + name + '"'), '); }']);
|
|
7688
|
+
this.decorators.push(['fn = ', this.decorators.functionCall('decorator', '', ['fn', 'props', 'container', options]), ' || fn;']);
|
|
7640
7689
|
},
|
|
7641
7690
|
|
|
7642
7691
|
// [invokeHelper]
|
|
@@ -7819,8 +7868,8 @@ function requireJavascriptCompiler () {
|
|
|
7819
7868
|
var existing = this.matchExistingProgram(child);
|
|
7820
7869
|
|
|
7821
7870
|
if (existing == null) {
|
|
7822
|
-
|
|
7823
|
-
var index = this.context.programs.
|
|
7871
|
+
// Placeholder to prevent name conflicts for nested children
|
|
7872
|
+
var index = this.context.programs.push('') - 1;
|
|
7824
7873
|
child.index = index;
|
|
7825
7874
|
child.name = 'program' + index;
|
|
7826
7875
|
this.context.programs[index] = compiler.compile(child, options, this.context, !this.precompile);
|
|
@@ -8140,19 +8189,19 @@ function requireJavascriptCompiler () {
|
|
|
8140
8189
|
return !JavaScriptCompiler.RESERVED_WORDS[name] && /^[a-zA-Z_$][0-9a-zA-Z_$]*$/.test(name);
|
|
8141
8190
|
};
|
|
8142
8191
|
|
|
8143
|
-
function strictLookup(requireTerminal, compiler, parts,
|
|
8192
|
+
function strictLookup(requireTerminal, compiler, parts, startPartIndex, type) {
|
|
8144
8193
|
var stack = compiler.popStack(),
|
|
8145
8194
|
len = parts.length;
|
|
8146
8195
|
if (requireTerminal) {
|
|
8147
8196
|
len--;
|
|
8148
8197
|
}
|
|
8149
8198
|
|
|
8150
|
-
for (; i < len; i++) {
|
|
8199
|
+
for (var i = startPartIndex; i < len; i++) {
|
|
8151
8200
|
stack = compiler.nameLookup(stack, parts[i], type);
|
|
8152
8201
|
}
|
|
8153
8202
|
|
|
8154
8203
|
if (requireTerminal) {
|
|
8155
|
-
return [compiler.aliasable('container.strict'), '(', stack, ', ', compiler.quotedString(parts[
|
|
8204
|
+
return [compiler.aliasable('container.strict'), '(', stack, ', ', compiler.quotedString(parts[len]), ', ', JSON.stringify(compiler.source.currentLocation), ' )'];
|
|
8156
8205
|
} else {
|
|
8157
8206
|
return stack;
|
|
8158
8207
|
}
|
|
@@ -10,7 +10,7 @@ import { writeFileAtomic } from './fs-operations.mjs';
|
|
|
10
10
|
import { readFile, stat } from 'node:fs/promises';
|
|
11
11
|
import { m as matter } from '../shared/ccjk.y-a_1vK4.mjs';
|
|
12
12
|
import { j as join } from '../shared/ccjk.bQ7Dh1g4.mjs';
|
|
13
|
-
import { C as CloudErrorFactory, a as CloudError } from '../shared/ccjk.
|
|
13
|
+
import { C as CloudErrorFactory, a as CloudError } from '../shared/ccjk.DMV3x5Sd.mjs';
|
|
14
14
|
import { s as showImpactReminder } from '../shared/ccjk.C1hANZTu.mjs';
|
|
15
15
|
import '../shared/ccjk.BAGoDD49.mjs';
|
|
16
16
|
import 'node:readline';
|
|
@@ -122,7 +122,7 @@ function getSlashCommands() {
|
|
|
122
122
|
descriptionZh: "\u521B\u5EFA\u914D\u7F6E\u5907\u4EFD",
|
|
123
123
|
category: "system",
|
|
124
124
|
handler: async () => {
|
|
125
|
-
const { backupExistingConfig } = await import('./config.mjs').then(function (n) { return n.
|
|
125
|
+
const { backupExistingConfig } = await import('./config.mjs').then(function (n) { return n.N; });
|
|
126
126
|
const backupPath = backupExistingConfig();
|
|
127
127
|
if (backupPath) {
|
|
128
128
|
console.log(a.green(`\u2705 Backup created: ${backupPath}`));
|
|
@@ -616,7 +616,7 @@ async function uninstall(options = {}) {
|
|
|
616
616
|
}
|
|
617
617
|
const uninstaller = new ZcfUninstaller(lang);
|
|
618
618
|
if (codeType === "codex") {
|
|
619
|
-
const { runCodexUninstall } = await import('./codex.mjs').then(function (n) { return n.
|
|
619
|
+
const { runCodexUninstall } = await import('./codex.mjs').then(function (n) { return n.t; });
|
|
620
620
|
await runCodexUninstall();
|
|
621
621
|
return;
|
|
622
622
|
}
|
package/dist/chunks/update.mjs
CHANGED
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
import { existsSync } from 'node:fs';
|
|
2
2
|
import a from './index5.mjs';
|
|
3
3
|
import { i as inquirer } from './index6.mjs';
|
|
4
|
-
import { M as MCP_SERVICE_CONFIGS, g as getMcpServices } from '
|
|
4
|
+
import { n as copyConfigFiles, r as readMcpConfig, M as MCP_SERVICE_CONFIGS, g as getMcpServices } from './config.mjs';
|
|
5
5
|
import { DEFAULT_CODE_TOOL_TYPE, resolveCodeToolType as resolveCodeToolType$1, isCodeToolType } from './constants.mjs';
|
|
6
6
|
import { i18n } from './index2.mjs';
|
|
7
7
|
import { displayBanner } from './banner.mjs';
|
|
8
8
|
import { readZcfConfig, updateZcfConfig } from './ccjk-config.mjs';
|
|
9
|
-
import {
|
|
10
|
-
import { c as runCodexUpdate } from './codex.mjs';
|
|
9
|
+
import { b as runCodexUpdate } from './codex.mjs';
|
|
11
10
|
import { n as needsMigration, m as migrateSettingsForTokenRetrieval, d as displayMigrationResult, p as promptMigration } from '../shared/ccjk.Hwoicrh8.mjs';
|
|
12
|
-
import { u as updatePromptOnly } from '../shared/ccjk.
|
|
11
|
+
import { u as updatePromptOnly } from '../shared/ccjk.BzxpiEPF.mjs';
|
|
13
12
|
import { a as handleExitPromptError, h as handleGeneralError } from '../shared/ccjk.DGllfVCZ.mjs';
|
|
14
|
-
import { a as installMcpServices } from '../shared/ccjk.
|
|
13
|
+
import { a as installMcpServices } from '../shared/ccjk.tI_s2uSh.mjs';
|
|
15
14
|
import { resolveAiOutputLanguage } from './prompts.mjs';
|
|
16
15
|
import { g as getRuntimeVersion } from '../shared/ccjk.gDEDGD_t.mjs';
|
|
17
16
|
import { r as resolveClaudeFamilySettingsTarget } from '../shared/ccjk.Di1IYU3u.mjs';
|
|
@@ -33,25 +32,25 @@ import 'node:os';
|
|
|
33
32
|
import 'node:crypto';
|
|
34
33
|
import 'buffer';
|
|
35
34
|
import 'string_decoder';
|
|
36
|
-
import 'node:child_process';
|
|
37
|
-
import '../shared/ccjk.bQ7Dh1g4.mjs';
|
|
38
35
|
import 'node:url';
|
|
39
|
-
import '../shared/ccjk.
|
|
40
|
-
import '
|
|
36
|
+
import '../shared/ccjk.RyizuzOI.mjs';
|
|
37
|
+
import 'node:child_process';
|
|
41
38
|
import './fs-operations.mjs';
|
|
42
39
|
import 'node:fs/promises';
|
|
40
|
+
import '../shared/ccjk.bQ7Dh1g4.mjs';
|
|
43
41
|
import './json-config.mjs';
|
|
44
|
-
import '../shared/ccjk.RyizuzOI.mjs';
|
|
45
42
|
import './platform.mjs';
|
|
46
43
|
import './main.mjs';
|
|
47
44
|
import 'module';
|
|
48
45
|
import 'node:stream';
|
|
46
|
+
import '../shared/ccjk.BBtCGd_g.mjs';
|
|
47
|
+
import './index3.mjs';
|
|
49
48
|
import './index8.mjs';
|
|
50
49
|
import '../shared/ccjk.DeWpAShp.mjs';
|
|
51
50
|
import '../shared/ccjk.CxpGa6MC.mjs';
|
|
52
51
|
import '../shared/ccjk.BFQ7yr5S.mjs';
|
|
53
52
|
import '../shared/ccjk.DZ2LLOa-.mjs';
|
|
54
|
-
import '../shared/ccjk.
|
|
53
|
+
import '../shared/ccjk.BJ3Zpjo5.mjs';
|
|
55
54
|
|
|
56
55
|
const ccjkVersion = getRuntimeVersion();
|
|
57
56
|
function resolveCodeToolType(optionValue, savedValue) {
|
|
@@ -8,9 +8,9 @@ import { d as dirname } from '../shared/ccjk.bQ7Dh1g4.mjs';
|
|
|
8
8
|
import { isCodeToolType, isClaudeFamilyCodeTool, CODEX_CONFIG_FILE, ZCF_CONFIG_FILE } from './constants.mjs';
|
|
9
9
|
import { i18n } from './index2.mjs';
|
|
10
10
|
import { readZcfConfig, buildUpdatedTomlConfig, stringifyTomlConfig } from './ccjk-config.mjs';
|
|
11
|
-
import { e as ensureClaudeFamilyCoreFeatures } from '../shared/ccjk.
|
|
11
|
+
import { e as ensureClaudeFamilyCoreFeatures } from '../shared/ccjk.BEiR3L4C.mjs';
|
|
12
12
|
import { r as resolveClaudeFamilySettingsTarget, n as normalizeClaudeFamilySettings } from '../shared/ccjk.Di1IYU3u.mjs';
|
|
13
|
-
import {
|
|
13
|
+
import { h as buildCodexGoalsFeatureConfigContent } from './codex.mjs';
|
|
14
14
|
import { a as addNumbersToChoices } from '../shared/ccjk.BFQ7yr5S.mjs';
|
|
15
15
|
import '../shared/ccjk.BAGoDD49.mjs';
|
|
16
16
|
import 'node:readline';
|
|
@@ -33,22 +33,21 @@ import '../shared/ccjk.BBtCGd_g.mjs';
|
|
|
33
33
|
import './index3.mjs';
|
|
34
34
|
import './json-config.mjs';
|
|
35
35
|
import '../shared/ccjk.RyizuzOI.mjs';
|
|
36
|
-
import '
|
|
36
|
+
import './config.mjs';
|
|
37
37
|
import 'node:child_process';
|
|
38
|
+
import './platform.mjs';
|
|
39
|
+
import './main.mjs';
|
|
40
|
+
import 'module';
|
|
41
|
+
import 'node:stream';
|
|
38
42
|
import '../shared/ccjk.B8oqkakg.mjs';
|
|
39
43
|
import '../shared/ccjk.DFRPtmK_.mjs';
|
|
40
44
|
import './auto-updater.mjs';
|
|
41
45
|
import './index8.mjs';
|
|
42
46
|
import '../shared/ccjk.DeWpAShp.mjs';
|
|
43
|
-
import './main.mjs';
|
|
44
|
-
import 'module';
|
|
45
|
-
import 'node:stream';
|
|
46
|
-
import './platform.mjs';
|
|
47
47
|
import '../shared/ccjk.DZ2LLOa-.mjs';
|
|
48
48
|
import './version-checker.mjs';
|
|
49
49
|
import '../shared/ccjk.CxpGa6MC.mjs';
|
|
50
|
-
import '
|
|
51
|
-
import '../shared/ccjk.4iw1XCF3.mjs';
|
|
50
|
+
import '../shared/ccjk.BJ3Zpjo5.mjs';
|
|
52
51
|
import './prompts.mjs';
|
|
53
52
|
import '../shared/ccjk.gDEDGD_t.mjs';
|
|
54
53
|
|
package/dist/cli.mjs
CHANGED
package/dist/index.d.mts
CHANGED
|
@@ -394,7 +394,7 @@ declare function convertParameterDefault(value: unknown): TemplateParameterValue
|
|
|
394
394
|
/**
|
|
395
395
|
* Convert raw recommendation to typed recommendation
|
|
396
396
|
*/
|
|
397
|
-
declare function convertRecommendation(raw: RawRecommendation,
|
|
397
|
+
declare function convertRecommendation(raw: RawRecommendation, _preferredLang?: 'en' | 'zh-CN'): Recommendation;
|
|
398
398
|
/**
|
|
399
399
|
* Convert raw template parameter to typed parameter
|
|
400
400
|
*/
|
|
@@ -408,7 +408,7 @@ declare function convertTemplateParameter(raw: {
|
|
|
408
408
|
/**
|
|
409
409
|
* Convert raw template to typed template
|
|
410
410
|
*/
|
|
411
|
-
declare function convertTemplate(raw: RawTemplate,
|
|
411
|
+
declare function convertTemplate(raw: RawTemplate, _preferredLang?: 'en' | 'zh-CN'): TemplateResponse;
|
|
412
412
|
/**
|
|
413
413
|
* Convert raw project analysis response to typed response
|
|
414
414
|
*/
|
|
@@ -1411,7 +1411,7 @@ declare function isRateLimitError(error: unknown): boolean;
|
|
|
1411
1411
|
/**
|
|
1412
1412
|
* Handle cloud error with logging and user-friendly message
|
|
1413
1413
|
*/
|
|
1414
|
-
declare function handleCloudError(error: unknown, context?: string,
|
|
1414
|
+
declare function handleCloudError(error: unknown, context?: string, _language?: string): CloudError;
|
|
1415
1415
|
/**
|
|
1416
1416
|
* Get retry delay for error (exponential backoff)
|
|
1417
1417
|
*/
|
package/dist/index.d.ts
CHANGED
|
@@ -394,7 +394,7 @@ declare function convertParameterDefault(value: unknown): TemplateParameterValue
|
|
|
394
394
|
/**
|
|
395
395
|
* Convert raw recommendation to typed recommendation
|
|
396
396
|
*/
|
|
397
|
-
declare function convertRecommendation(raw: RawRecommendation,
|
|
397
|
+
declare function convertRecommendation(raw: RawRecommendation, _preferredLang?: 'en' | 'zh-CN'): Recommendation;
|
|
398
398
|
/**
|
|
399
399
|
* Convert raw template parameter to typed parameter
|
|
400
400
|
*/
|
|
@@ -408,7 +408,7 @@ declare function convertTemplateParameter(raw: {
|
|
|
408
408
|
/**
|
|
409
409
|
* Convert raw template to typed template
|
|
410
410
|
*/
|
|
411
|
-
declare function convertTemplate(raw: RawTemplate,
|
|
411
|
+
declare function convertTemplate(raw: RawTemplate, _preferredLang?: 'en' | 'zh-CN'): TemplateResponse;
|
|
412
412
|
/**
|
|
413
413
|
* Convert raw project analysis response to typed response
|
|
414
414
|
*/
|
|
@@ -1411,7 +1411,7 @@ declare function isRateLimitError(error: unknown): boolean;
|
|
|
1411
1411
|
/**
|
|
1412
1412
|
* Handle cloud error with logging and user-friendly message
|
|
1413
1413
|
*/
|
|
1414
|
-
declare function handleCloudError(error: unknown, context?: string,
|
|
1414
|
+
declare function handleCloudError(error: unknown, context?: string, _language?: string): CloudError;
|
|
1415
1415
|
/**
|
|
1416
1416
|
* Get retry delay for error (exponential backoff)
|
|
1417
1417
|
*/
|
package/dist/index.mjs
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
export { P as ProjectAnalyzer, T as TemplatesClient, d as analyzeDependencies, a as analyzeProject, h as batchAnalyze, b as createTemplatesClient, e as detectProject, f as detectProjectType, g as getTemplatesClient } from './shared/ccjk.Cv13QsGp.mjs';
|
|
2
|
-
import { a as createCloudClient } from './shared/ccjk.
|
|
3
|
-
export { C as CachedCloudClient, b as CloudCache, d as CloudClient, F as FallbackCloudClient, R as RetryableCloudClient, T as TelemetryReporter, c as createCompleteCloudClient, g as getTelemetry, i as initializeTelemetry, r as retryUtils, s as stopTelemetry, t as telemetryUtils, e as trackEvent, w as withRetry } from './shared/ccjk.
|
|
2
|
+
import { a as createCloudClient } from './shared/ccjk.zFGcZT7Y.mjs';
|
|
3
|
+
export { C as CachedCloudClient, b as CloudCache, d as CloudClient, F as FallbackCloudClient, R as RetryableCloudClient, T as TelemetryReporter, c as createCompleteCloudClient, g as getTelemetry, i as initializeTelemetry, r as retryUtils, s as stopTelemetry, t as telemetryUtils, e as trackEvent, w as withRetry } from './shared/ccjk.zFGcZT7Y.mjs';
|
|
4
4
|
import { T as ToolRegistry } from './shared/ccjk.lG3ccFjm.mjs';
|
|
5
5
|
export { A as AiderTool, B as BaseCodeTool, C as ClaudeCodeTool, b as ClavueTool, c as ClineTool, d as CodexTool, e as ContinueTool, f as CursorTool, a as getRegistry, g as getRuntimeCapabilityDescriptor } from './shared/ccjk.lG3ccFjm.mjs';
|
|
6
6
|
import { CLOUD_ENDPOINTS } from './chunks/constants.mjs';
|
|
7
|
-
export { a as CloudError, b as CloudErrorCode, C as CloudErrorFactory, f as formatErrorForLogging, g as getRetryDelay, h as handleCloudError, i as isAuthError, c as isRateLimitError, d as isRetryableError, e as isRetryableErrorCode } from './shared/ccjk.
|
|
7
|
+
export { a as CloudError, b as CloudErrorCode, C as CloudErrorFactory, f as formatErrorForLogging, g as getRetryDelay, h as handleCloudError, i as isAuthError, c as isRateLimitError, d as isRetryableError, e as isRetryableErrorCode } from './shared/ccjk.DMV3x5Sd.mjs';
|
|
8
8
|
import { e as extractString } from './shared/ccjk.C2jHOZVP.mjs';
|
|
9
9
|
export { a as extractDisplayName, i as i18nHelpers, n as normalizeRecommendation, b as normalizeRecommendations } from './shared/ccjk.C2jHOZVP.mjs';
|
|
10
10
|
import a from './chunks/index5.mjs';
|
|
@@ -15,7 +15,7 @@ import * as os from 'node:os';
|
|
|
15
15
|
import { homedir } from 'node:os';
|
|
16
16
|
import { j as join$1 } from './shared/ccjk.bQ7Dh1g4.mjs';
|
|
17
17
|
import { b as buildCommand, c as commandExists, a as escapeArgument, e as executeCommand, d as executeCommandParallel, f as executeCommandSequence, g as executeCommandStream, h as getCommandPath, i as getCommandVersion, p as parseVersion } from './shared/ccjk.BnsY5WxD.mjs';
|
|
18
|
-
export {
|
|
18
|
+
export { N as config } from './chunks/config.mjs';
|
|
19
19
|
import * as path from 'node:path';
|
|
20
20
|
export { a as loggerUtils } from './shared/ccjk.8oaxX4iR.mjs';
|
|
21
21
|
export { p as platform } from './chunks/platform.mjs';
|
|
@@ -24,8 +24,8 @@ import { pipeline } from 'node:stream/promises';
|
|
|
24
24
|
import './chunks/index9.mjs';
|
|
25
25
|
import 'tinyglobby';
|
|
26
26
|
import './shared/ccjk.BBtCGd_g.mjs';
|
|
27
|
-
import 'node:url';
|
|
28
27
|
import 'node:crypto';
|
|
28
|
+
import 'node:url';
|
|
29
29
|
import 'node:util';
|
|
30
30
|
import './chunks/index2.mjs';
|
|
31
31
|
import 'node:process';
|
|
@@ -184,7 +184,7 @@ function convertParameterDefault(value) {
|
|
|
184
184
|
}
|
|
185
185
|
return null;
|
|
186
186
|
}
|
|
187
|
-
function convertRecommendation(raw,
|
|
187
|
+
function convertRecommendation(raw, _preferredLang = "en") {
|
|
188
188
|
return {
|
|
189
189
|
id: raw.id,
|
|
190
190
|
name: typeof raw.name === "string" ? { en: raw.name } : raw.name,
|
|
@@ -206,7 +206,7 @@ function convertTemplateParameter(raw) {
|
|
|
206
206
|
description: typeof raw.description === "string" ? { en: raw.description } : raw.description
|
|
207
207
|
};
|
|
208
208
|
}
|
|
209
|
-
function convertTemplate(raw,
|
|
209
|
+
function convertTemplate(raw, _preferredLang = "en") {
|
|
210
210
|
return {
|
|
211
211
|
id: raw.id,
|
|
212
212
|
type: raw.type,
|